summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-05-05 20:31:15 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-05-05 20:31:15 +0900
commitca2949fbb4521bffb6a4d31ea673016ffd55d65a (patch)
tree5da49f0f5f22ee78895bd175f5ab7a3668cc7dc0
parent:v: (diff)
downloadsharkey-ca2949fbb4521bffb6a4d31ea673016ffd55d65a.tar.gz
sharkey-ca2949fbb4521bffb6a4d31ea673016ffd55d65a.tar.bz2
sharkey-ca2949fbb4521bffb6a4d31ea673016ffd55d65a.zip
MisskeyPagesにリストから選択関数を追加
-rw-r--r--locales/ja-JP.yml5
-rw-r--r--src/misc/aiscript/evaluator.ts1
-rw-r--r--src/misc/aiscript/index.ts2
3 files changed, 8 insertions, 0 deletions
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index e337f9383f..c9f7436a9e 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1941,6 +1941,7 @@ pages:
fn: "関数"
text: "テキスト操作"
convert: "変換"
+ list: "リスト"
blocks:
text: "テキスト"
multiLineText: "テキスト(複数行)"
@@ -2062,6 +2063,10 @@ pages:
DRPWPM: "確率付きリストからランダムに選択 (ユーザーごとに日替わり)"
_DRPWPM:
arg1: "テキストのリスト"
+ pick: "リストから選択"
+ _pick:
+ arg1: "リスト"
+ arg2: "位置"
number: "数値"
stringToNumber: "テキストを数値に"
_stringToNumber:
diff --git a/src/misc/aiscript/evaluator.ts b/src/misc/aiscript/evaluator.ts
index e28bf64149..2100b565d4 100644
--- a/src/misc/aiscript/evaluator.ts
+++ b/src/misc/aiscript/evaluator.ts
@@ -169,6 +169,7 @@ export class ASEvaluator {
stringToNumber: (a: string) => parseInt(a),
numberToString: (a: number) => a.toString(),
splitStrByLine: (a: string) => a.split('\n'),
+ pick: (list: any[], i: number) => list[i - 1],
random: (probability: number) => Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * 100) < probability,
rannum: (min: number, max: number) => min + Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * (max - min + 1)),
randomPick: (list: any[]) => list[Math.floor(seedrandom(`${this.opts.randomSeed}:${block.id}`)() * list.length)],
diff --git a/src/misc/aiscript/index.ts b/src/misc/aiscript/index.ts
index 46d0751689..4f66d688ea 100644
--- a/src/misc/aiscript/index.ts
+++ b/src/misc/aiscript/index.ts
@@ -23,6 +23,7 @@ import {
faSortNumericUp,
faExchangeAlt,
faRecycle,
+ faIndent,
} from '@fortawesome/free-solid-svg-icons';
import { faFlag } from '@fortawesome/free-regular-svg-icons';
@@ -72,6 +73,7 @@ export const funcDefs: Record<string, { in: any[]; out: any; category: string; i
stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: faExchangeAlt, },
numberToString: { in: ['number'], out: 'string', category: 'convert', icon: faExchangeAlt, },
splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: faExchangeAlt, },
+ pick: { in: [null], out: null, category: 'list', icon: faIndent, },
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, },
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: faDice, },
seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: faDice, },