Improve AI

This commit is contained in:
syuilo 2018-09-02 23:16:20 +09:00
parent 70074482f5
commit 9872ef158b
3 changed files with 48 additions and 11 deletions

View file

@ -33,6 +33,7 @@ export default class CoreModule implements IModule {
this.nadenade(msg) || this.nadenade(msg) ||
this.kawaii(msg) || this.kawaii(msg) ||
this.suki(msg) || this.suki(msg) ||
this.hug(msg) ||
this.humu(msg) || this.humu(msg) ||
this.batou(msg) || this.batou(msg) ||
this.ponkotu(msg) this.ponkotu(msg)
@ -223,6 +224,20 @@ export default class CoreModule implements IModule {
return true; return true;
} }
private hug = (msg: MessageLike): boolean => {
if (!msg.or(['ぎゅ'])) return false;
// メッセージのみ
if (!msg.isMessage) return true;
msg.reply(
msg.friend.love >= 5 ? serifs.core.hug.love :
msg.friend.love <= -3 ? serifs.core.hug.hate :
serifs.core.hug.normal);
return true;
}
private humu = (msg: MessageLike): boolean => { private humu = (msg: MessageLike): boolean => {
if (!msg.includes(['踏んで'])) return false; if (!msg.includes(['踏んで'])) return false;

View file

@ -54,6 +54,14 @@ export default {
hate: null hate: null
}, },
hug: {
normal: 'ぎゅー...',
love: 'ぎゅー♪',
hate: '離れてください...'
},
humu: { humu: {
normal: 'え、えっと…… ふみふみ……… どうですか…?', normal: 'え、えっと…… ふみふみ……… どうですか…?',

View file

@ -3,18 +3,32 @@ import { hiraganaToKatagana, hankakuToZenkaku } from './japanese';
export default function(text: string, words: string[]): boolean { export default function(text: string, words: string[]): boolean {
if (text == null) return false; if (text == null) return false;
text = cleanup(hankakuToZenkaku(hiraganaToKatagana(text))); text = hankakuToZenkaku(hiraganaToKatagana(text));
words = words.map(word => hiraganaToKatagana(word)); words = words.map(word => hiraganaToKatagana(word));
return words.some(word => text == word); return words.some(word => {
} /**
*
*
*/
function cleanup(text: string): string { function cleanup(text: string): string {
return text.trim() return text.trim()
.replace(/[!]+$/, '') .replace(/[!]+$/, '')
// 末尾の ー を除去
// 例えば「おはよー」を「おはよ」にする
// ただそのままだと「セーラー」などの本来「ー」が含まれているワードも「ー」が除去され
// 「セーラ」になり、「セーラー」を期待している場合はマッチしなくなり期待する動作にならなくなるので、
// 期待するワードの末尾にもともと「ー」が含まれている場合は(対象のテキストの「ー」をすべて除去した後に)「ー」を付けてあげる
.replace(/ー+$/, '') + (word[word.length - 1] == 'ー' ? 'ー' : '')
.replace(/ッ+$/, '')
.replace(/。$/, '') .replace(/。$/, '')
.replace(/デス$/, '') .replace(/デス$/, '')
.replace(/^藍/, '') .replace(/^藍/, '')
.replace(/^チャン/, '') .replace(/^チャン/, '')
.replace(/、+$/, ''); .replace(/、+$/, '');
} }
return (text == word) || (cleanup(text) == word);
});
}