code:
<?xml version="1.0" encoding="utf-8"?>
<data>
  <command skillDefName="SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「渾身の一撃っ、ええいっ！」</contents>
  </command>
  <command skillDefName="SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「基本を極めれば、奥義にもなるんだよっ！」</contents>
  </command>
  <command skillDefName="WPN_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「重い一撃っ、行くよっ！」</contents>
  </command>
  <command skillDefName="ACT_FATAL_ATTACK" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「隙ありっ、もらったよ！」</contents>
  </command>
  <command skillDefName="WPN_BREAK_CAST" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「その詠唱、ここで止めるっ！」</contents>
  </command>
  <command skillDefName="WPN_BREAK_CAST" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「その魔法、撃たせないからっ！」</contents>
  </command>
  <command skillDefName="BURN_ATTACK" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「秘技、火炎斬っ！」</contents>
  </command>
  <command skillDefName="BURN_ATTACK" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「炎よっ、巻きあがれ！」</contents>
  </command>
  <command skillDefName="ACT_STUN_ENEMY" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「そこっ！　――と見せかけて、こっちだよっ！」</contents>
  </command>
  <command skillDefName="ACT_STUN_ENEMY" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「鬼さんこちらっ――なんてねっ！」</contents>
  </command>
  <command skillDefName="ACT_FRONT_DEFENCE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「皆、私が前に出るからっ！」</contents>
  </command>
  <command skillDefName="ACT_FRONT_DEFENCE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「私が護るからっ！」</contents>
  </command>
  <command skillDefName="ACT_FRONT_DEFENCE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「皆は傷つけさせないっ！」</contents>
  </command>
  <command skillDefName="WPN_FRONT_DEFENCE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「皆、私が前に出るからっ！」</contents>
  </command>
  <command skillDefName="WPN_FRONT_DEFENCE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「私が護るからっ！」</contents>
  </command>
  <command skillDefName="WPN_FRONT_DEFENCE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「皆は傷つけさせないっ！」</contents>
  </command>
  <command skillDefName="ACT_ARROW_RAIN" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「矢の雨よっ、降り注げっ！」</contents>
  </command>
  <command skillDefName="ACT_ARROW_RAIN" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「皆、私が弓で援護するからねっ！」</contents>
  </command>
  <command skillDefName="ACT_COUNTER_ATTACK" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「ここは守り通す――私の反撃を恐れないならかかってきなさいっ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_FIRE_BALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「世界に満ちる火のマナよ……我と汝の力を以って目の前の敵を焼き払わん！　火球よ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_FIRE_BALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これは燃える魂の一投！　えええいっ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_STONE_RAIN" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「大地のマナよ！　天より降り注ぎ、敵を打ち倒せ！　石の雨っ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_STONE_RAIN" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「投石って下手な武器より怖いよね……えいっ、石の雨っ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「マナの一撃よ、我が前の敵を射貫けっ！　マナボルトっ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「もらった、そこっ！」</contents>
  </command>
  <command skillDefName="ACT_IGNITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「炎の一矢っ、いっけええっ！」</contents>
  </command>
  <command skillDefName="ACT_IGNITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「せーのっ、イグニッション！」</contents>
  </command>
  <command skillDefName="ACT_CAST_ATTACK_ALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「マナの奔流よ、我と汝の敵を打ち払え！　マナストーム！」</contents>
  </command>
  <command skillDefName="ACT_CAST_ATTACK_ALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「この一撃で流れを変えるっ！　皆下がって！　マナストーム！」</contents>
  </command>
  <command skillDefName="ACT_CAST_ADD_DECOY" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「世界に満ちるマナよ……彼の者を護る幻影を作り出して！　アルカナミラージュ！」</contents>
  </command>
  <command skillDefName="ACT_CAST_ADD_HIDE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「世界に満ちるマナよ……彼の者を隠す衣を作り出して！　アルカナクローク！」</contents>
  </command>
  <command skillDefName="ACT_SONG_OF_RECOVER_STUN_ALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「勇気を与える旋律を……皆、恐れないでっ！」</contents>
  </command>
  <command skillDefName="ACT_SONG_OF_RECOVER_STUN_ALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「魂を震わせる歌を……皆、負けないでっ！」</contents>
  </command>
  <command skillDefName="ACT_EAGLE_EYE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「相手を良く見据えないと……！」</contents>
  </command>
  <command skillDefName="ACT_EAGLE_EYE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「焦っちゃダメ……まずは相手を理解しないと」</contents>
  </command>
  <command skillDefName="ACT_REACT" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「まだ私のターンだよっ！」</contents>
  </command>
  <command skillDefName="ACT_REACT" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「主導権は――渡さないよっ！」</contents>
  </command>
  <command skillDefName="ACT_TRACKING" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「逃さないからっ！」</contents>
  </command>
  <command skillDefName="ACT_BINDINGTRAP" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「間違ってもみんながかからないようにっと……ここかな？」</contents>
  </command>
  <command skillDefName="WPN_RECOVER_STUN_ALL" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「私が前に出るよ！　みんなっ、ついてきて！」</contents>
  </command>
  <command skillDefName="WPN_ELECTRIC_ARROW" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「地神様！　今一度力を借りますっ！」</contents>
  </command>
  <command skillDefName="WPN_ELECTRIC_ARROW" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「雷霆の一矢っ！　いっけええええっ！」</contents>
  </command>
  <command skillDefName="WPN_ADD_FRAGILE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「守りの隙見つけた……！　そこっ！」</contents>
  </command>
  <command skillDefName="WPN_ADD_CAST_SELF" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「詠唱陣展開っ！」</contents>
  </command>
  <command skillDefName="WPN_ADD_CAST_SELF" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「次の一手……いくよっ！」</contents>
  </command>
  <command skillDefName="ACT_SONG_OF_ADD_BARRIER" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「私がこの歌で護るからねっ！」</contents>
  </command>
  <command skillDefName="WPN_FROST_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「賢狼さん、力を貸してもらうねっ！」</contents>
  </command>
  <command skillDefName="WPN_FROST_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これは凍てつく一閃――霜の一閃！」</contents>
  </command>
  <command skillDefName="WPN_MANA_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「あなたの剣、貸してもらうねっ！」</contents>
  </command>
  <command skillDefName="WPN_MANA_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これこそ、あなたと私の合体攻撃っ！　……え、違う？」</contents>
  </command>
  <command skillDefName="WPN_MANA_SMITE" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これは星の煌めきの剣……魔刃一閃っ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MAGIC_BREAK_SWORD" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「私達は絶対に負けないから！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MAGIC_BREAK_SWORD" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これは魔法を断つ青き剣！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MAGIC_BREAK_SWORD" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これが私の……ううん、私達の魔法だよ！」</contents>
  </command>
  <command skillDefName="OPENIN_SHIELD_SWORD" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「来たよっ、応戦しないとっ！」</contents>
  </command>
  <command skillDefName="OPENIN_SHIELD_SWORD" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「いくよ、みんなっ！　破魔の剣！」</contents>
  </command>
  <command skillDefName="OPENIN_SHIELD_SWORD" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「この剣でみんなを守るんだからっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_STAR" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「この剣で、みんなを守って見せる！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_STAR" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「蒼く輝く星の剣――秘剣『蒼星』！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_STAR" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「自分ができる精一杯を……いっけえええええぇ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_STAR" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「その護りごと切り払う！　ええええいっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_LIGHT_PURFICATION" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「みんな、しっかりして！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_LIGHT_PURFICATION" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「清浄なるマナよ……大切な人達の体を冒すものを消し去って！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_LIGHT_PURFICATION" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「聖なる光よ、皆を助けてっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_SLASH" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これが、私の全力だああああっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_SLASH" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「奥義――『蒼刃一閃』！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_SLASH" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0">
    <contents>「これは大切な人達を守るための剣――えええええいっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_BLUE_SLASH" actionName="ANY" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10" sequence="0" eval="{QST_SV_QUEST_FLAG:72}">
    <contents>「今の私なら[$MNAME]の剣の力を借りなくても撃てるはず……！　『蒼刃一閃』！」</contents>
  </command>
  <command skillDefName="ANY" actionName="CC_ACTION_ATTACK" name="発動" ACTorTGT="TARGET" kojoPlace="RESULT" priority="10" eval="{[$DAMAGE] == 0 && CC_AFLAG(ACTION_DID, "AVOIDED_BY_PARRY")}">
    <contents>「ここっ、見切ったよっ！」</contents>
  </command>
  <command skillDefName="ANY" actionName="CC_ACTION_ATTACK" name="発動" ACTorTGT="TARGET" kojoPlace="RESULT" priority="10" eval="{[$DAMAGE] == 0 && CC_AFLAG(ACTION_DID, "AVOIDED_BY_PARRY")}">
    <contents>「防いでみせるっ！」</contents>
  </command>
  <command skillDefName="ANY" actionName="CC_ACTION_ATTACK" name="発動" ACTorTGT="TARGET" kojoPlace="RESULT" priority="10" eval="{[$DAMAGE] == 0 && CC_AFLAG(ACTION_DID, "AVOIDED_BY_PARRY")}">
    <contents>「見えたっ、そこっ！」</contents>
  </command>
  <command skillDefName="ANY" actionName="CC_ACTION_ATTACK" name="発動" ACTorTGT="TARGET" kojoPlace="RESULT" priority="10" eval="{[$DAMAGE] == 0 && CC_AFLAG(ACTION_DID, "AVOIDED_BY_PARRY")}">
    <contents>「やらせないからっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MULTI" actionName="CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10">
    <contents>「ここで押し切るっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MULTI" actionName="CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10">
    <contents>「まだっ、もう一撃っ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MULTI" actionName="CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10">
    <contents>「これで終わりじゃないからっ！」</contents>
  </command>
  <command skillDefName="K9_UNIQUE_SKILL_MULTI" actionName="CC_ACTION_ADD_NORMAL_ATTACK_BASE_PARAM" name="実行" ACTorTGT="ACTOR" kojoPlace="EXEC" priority="10">
    <contents>「続けて行くよっ！」</contents>
  </command>
</data>

repo_name: napo/erafl

license: unknown


code:
<?xml version="1.0" encoding="utf-8"?>
<data>
  <command eventId="2" name="告白成功" priority="1" eval="{TALENT:[$KC]:恋慕==1}">
    <contents>「……嬉しい」
[$W]
「え、えっと……あれ？　嬉しいはずなのに……上手く言葉が出てこないや」
「もし[$MNAME]に告白されたらって、何度も考えてたのに、本当にそうなると頭が真っ白になっちゃった」
[$W]
「だから、思っていることをそのまま言うね」
[$W]
「私も、[$MNAME]が好きです。とっても、大好きです」
「こちらからも、お願いします。私を、[$MNAME]の恋人にしてください」
[$W]
もちろんと、差し出してきた彼女の手を取る
[$W]
「……ふふっ。私達、恋人どうしになったんだよね？」
「嬉しいはずなのに、まだ実感が湧かないの」
[$W]
「だから、これから恋人らしいこと沢山したいな。そうすれば、[$MNAME]と恋人になれたんだって実感できると思うから」
「私、今までよりも[$MNAME]に積極的になってみたい」
[$W]
そう言うと、フィーはそっと口づけをしてきた
そっと、触れるようなキス
[$W]
唇を離すと、フィーは顔を真っ赤にしつつも、幸せそうに微笑む
[$W]
「だから、覚悟しててね。私の恋人さんっ」</contents>
  </command>
  <command eventId="60" name="恋慕" priority="1" eval="{TALENT:[$KC]:恋人==0 && IS_MALE(MASTER)}">
    <contents>「はあ……どうしよう」
[$W]
[$KNAME]は一人、思考にふける
[$W]
「だめだなぁ……私、[$MNAME]のことばっかり考えてる」
[$W]
「どんなに練習しても、どんなに知識を学んでも……魔法が使えなくて、それでも使えるように頑張って……」
「でもやっぱり魔法は使えないって分かったら、剣術や知識で、妹と弟、お父様、お母様、皆の役に立てるようにって頑張って……」
[$W]
だが、どんなに魔法以外の分野で努力したとしても
魔法が使えない[$KNAME]は――魔術師の家に居続けるのは難しかった
[$W]
いや、両親や周りの人達は[$KNAME]に対して温かったけれど
……だからこそ、魔術師として成長することで恩返しができないことが辛かった
[$W]
「それでも、なんとかやってきたはずなのに……今度はどうすればいいのか……分かんないよ」
[$W]
「そもそも……私はどうしたいんだろう？」
[$W]
物心ついた頃から、ひたすら研鑽と自らのあり方の模索の日々を送ってきた[$KNAME]にとって……異性への感情というものは、未知のものだった
[$W]
「……私は[$MNAME]のことを、どう思っているの？」
「……私は[$MNAME]と、どうなりたいの？」
[$W]
[$KNAME]は、自らに問いかける。魔法が使えないと覚り、魔法以外のことで研鑽を積むと決めた日のように
ハーベスト家を出て、冒険者として生きると決めた日のように
[$W]
「……私は、[$MNAME]が好き？」
[$W]
どくん。心臓がはねる
[$W]
「……え？　あれ？」
[$W]
だめだ。それ以上はダメだ。
[$KNAME]が。無垢に、純粋に、ひたむきに。真っ直ぐに生きてきた[$KNAME]という少女が……変わってしまう
[$W]
……どくん、どくん
[$W]
「え……うそ。やだ……頭が……心臓が……熱いよ」
[$W]
それでも。本人さえ気づかずに、積もりに積もった恋心は――
[$W]
「好き……？　わたしは、好き……[$MNAME]が好き……なの？」
[$W]
自覚してしまった以上、もう止まらない
[$W]
「わたしは……好き……なんだ。私は[$MNAME]が好き、大好き」
[$W]
「私は……[$MNAME]と、恋人になりたい」
[$W]
道を決めたなら、真っ直ぐに迷わない
[$W]
「よし！　[$MNAME]に好きになってもらえるように頑張ろう」
「……ううん、もらうんじゃない、振り向かせてみせるんだ！」
[$W]
例え、恋する少女になったとしても。[$KNAME]の真っ直ぐなあり方は変わらない
[$W]
「……でも、男の人へのアピールってどうすれば良いんだろう？」
[$W]
それはそれとして、まだまだ恋愛に関しては、初心者もいいところの[$KNAME]だった
</contents>
  </command>
  <command eventId="60" name="恋慕" priority="1" eval="{TALENT:[$KC]:恋人==1 && IS_MALE(MASTER)}">
    <contents>「はあ……どうしよう」
[$W]
[$KNAME]は一人、思考にふける
[$W]
「だめだなぁ……私、[$MNAME]のことばっかり考えてる」
[$W]
「どんなに練習しても、どんなに知識を学んでも……魔法が使えなくて、それでも使えるように頑張って……」
「でもやっぱり魔法は使えないって分かったら、剣術や知識で、妹と弟、お父様、お母様、皆の役に立てるようにって頑張って……」
[$W]
だが、どんなに魔法以外の分野で努力したとしても
魔法が使えない[$KNAME]は――魔術師の家に居続けるのは難しかった
[$W]
いや、両親や周りの人達は[$KNAME]に対して温かったけれど
……だからこそ、魔術師として成長することで恩返しができないことが辛かった
[$W]
「それでも、なんとかやってきたはずなのに……今度はどうすればいいのか……分かんないよ」
[$W]
「そもそも……私はどうしたいんだろう？」
[$W]
物心ついた頃から、ひたすら研鑽と自らのあり方の模索の日々を送ってきた[$KNAME]にとって……異性への感情というものは、未知のものだった
[$W]
「[$MNAME]と恋人になって、私も[$MNAME]のこと好きなんだなってなんとなく思ってきたんだけど……」
「……なんだろう、最近は良く分からない気持ちが、どんどん大きくなってきちゃってる」
[$W]
「自分でも分からない、この気持ちはいったいなに？」
[$W]
[$KNAME]は、自らに問いかける。魔法が使えないと覚り、魔法以外のことで研鑽を積むと決めた日のように
ハーベスト家を出て、冒険者として生きると決めた日のように
[$W]
「……私は、[$MNAME]が好き？」
[$W]
どくん。心臓がはねる
[$W]
「……え？　あれ？」
[$W]
だめだ。それ以上はダメだ。
[$KNAME]が。無垢に、純粋に、ひたむきに。真っ直ぐに生きてきた[$KNAME]という少女が……変わってしまう
[$W]
……どくん、どくん
[$W]
「え……うそ。やだ……頭が……心臓が……熱いよ」
[$W]
それでも。本人さえ気づかずに、積もりに積もった恋心は――
[$W]
「好き……？　わたしは、好き……[$MNAME]が好き……なの？」
[$W]
自覚してしまった以上、もう止まらない
[$W]
「わたしは……こんなに[$MNAME]のことが好き……なんだ。私は[$MNAME]が好き、大好き」
[$W]
「私は……[$MNAME]と、もっと仲良くなりたい」
[$W]
道を決めたなら、真っ直ぐに迷わない
[$W]
「よし！　[$MNAME]にもっともっと好きになってもらえるように頑張ろう」
「……ううん、もらうんじゃない、振り向かせてみせるんだ！」
[$W]
例え、恋する少女になったとしても。[$KNAME]の真っ直ぐなあり方は変わらない
[$W]
「……でも、男の人へのアピールってどうすれば良いんだろう？」
[$W]
それはそれとして、まだまだ恋愛に関しては、初心者もいいところの[$KNAME]だった</contents>
  </command>
  <command eventId="60" name="恋慕" priority="1" eval="{TALENT:[$KC]:恋人==1 && IS_FEMALE(MASTER)}">
    <contents>「うう……私、どうしたら」
[$W]
[$KNAME]は一人、思考にふける
[$W]
「まさか[$MNAME]に告白されるなんて……」
「[$MNAME]は女の子で、私も女の子……なのに、うう、どうしよう……」
[$W]
物心ついた頃から、ひたすら研鑽と自らのあり方の模索の日々を送ってきた[$KNAME]にとって、恋愛というものは未知の領域だった
ましてや、相手が同性ともなればなおさらだ
[$W]
「たしかに誰かを好きになったことなんてないけど、もし恋するとしたら男の人にだって思ったんだけど」
「女の子と恋人になんて、想像すらしたことなかったなあ……」
[$W]
「でも、それなら[$MNAME]からの告白を受ける必要はなかったよね？」
「……だめだ、頭がこんがらがってきた」
「……うん、悩むのはやめたっ！　もっと[$MNAME]と仲良くなれるように頑張ろうっ！」</contents>
  </command>
  <command eventId="61" name="親友" priority="1">
    <contents>「あのね、[$MNAME]。私、[$MNAME]とずっと前から仲良しでいる感じがするの」
「変かな？　でも、なんだかとっても気が合うっていうか、一緒にいて楽しいなって」
「ふふっ、これからも仲良くしてくれると、嬉しいな」</contents>
  </command>
  <command eventId="90" name="婚姻（選択時）" priority="1" isFall="親愛">
    <contents>「……結婚、私と？」
「本当に？　本当に私で良いの？」
「……嬉しい、約束覚えててくれたんだ」
[$W]
「……ありがとう。喜んで、お受けします。私を、[$MNAME]のお嫁さんにしてください」
「私、これまで以上に[$MNAME]を支えるからね。領主の補佐として、そして奥さんとしてもね」
「うんっ、一緒に幸せになろうねっ、[$MNAME]！」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1">
    <contents>「うん、一緒に行こっか！」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1">
    <contents>「[$MNAME]、どこに連れて行ってくれるの？」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="5" emotion="NEGATIVE">
    <contents>「もしかして心配かけちゃったかな？　……[$MNAME]、ありがとうね」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1" isFall="LOVER">
    <contents>「わーい、[$MNAME]とデートだっ」
「え、違う？　もー、そこは空気読んでくれてもいいじゃない」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1" isFall="LOVER">
    <contents>「りょーかい、それじゃあしゅっぱーつ！」
そう言うと、フィーはこちらの手を握ってきた</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1" isFall="LOVER">
    <contents>「[$MNAME]、つまり私の力が必要ってことだねっ」
「なーんてね、ごめんごめん。ほら、一緒にいこっ！」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1" isFall="LOVER">
    <contents>「はーいっ！　それじゃあ一緒に行こっ、[$MNAME]！」</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1" isFall="親愛">
    <contents>「りょーかい！　[$MNAME]とならどこまでも！」
そう言うと、フィーが腕に抱きついてきた
</contents>
  </command>
  <command eventId="300" name="同行に誘う" priority="1" isFall="親愛" eval="{TALENT:[$KC]:正妻==1}">
    <contents>「はーい、それじゃあ行きましょ。あ・な・た（はぁと）」
[$W]
それじゃあ一緒に行こうかマイ・スイート・ハニー！
[$W]
「ふえ！？　その返しはちょっと予想外だった！？」
こちらも恥ずかしかったが、照れているフィーが見られたのでよしとしよう</contents>
  </command>
  <command eventId="320" name="押し倒し_誘惑" priority="1" isFall="LOVER">
    <contents>「[$MNAME]、その……今日はしないの？」
「私……[$MNAME]が欲しいな。ねえ……しよ？」</contents>
  </command>
  <command eventId="320" name="押し倒し_誘惑" priority="1" isFall="LOVER">
    <contents>「あ、あのね？　[$MNAME]。今日はちょっと暑くないかな？」
「あはは、私ちょっと体が火照っちゃってるみたい……」
[$W]
フィーはらしくもなく、胸の谷間を強調させて[$MNAME]に見せている……</contents>
  </command>
  <command eventId="321" name="押し倒し_実行" priority="1" isFall="LOVER">
    <contents>「ごめんね、[$MNAME]。私、体が熱いの」
「[$MNAME]と一つになりたくて、体も、心もうずうずしちゃってる」
[$W]
「[$MNAME]が受け入れてくれるなら……今日は私の方からしちゃうね？」</contents>
  </command>
  <command eventId="321" name="押し倒し_実行" priority="1" isFall="LOVER">
    <contents>「ねえ、[$MNAME]……私の胸に、手を当ててみて？」
フィーの手に導かれ、自分の手をフィーの柔らかな膨らみに当てる
[$W]
「ね……私、こんなに心臓がどきどきしてるの」
[$W]
「私の体が、[$MNAME]を求めてるの……ねえ、[$MNAME]……しよ？　[$MNAME]をちょうだい？」</contents>
  </command>
  <command eventId="321" name="押し倒し_実行" priority="1" isFall="LOVER">
    <contents>「くすくす、[$MNAME]はいつも私にいろんなところでエッチなことしてるよね？」
「だから……たまには私から[$MNAME]にエッチなことしちゃっても、良いよね？」
[$W]
「[$MNAME]は楽にしてて良いよ？　私が気持ち良くしてあげるね？」</contents>
  </command>
  <command eventId="330" name="モーニングコール実行前" priority="1" eval="{HAS_PENIS(MASTER)}">
    <contents>「ふふっ、おはよっ。[$MNAME]」
[$W]
「なにしてるって……だって朝起こしに来たら、[$MNAME]のここ、こんなに大きくしちゃってるんだもん」
[$W]
「だから……私が責任持ってすっきりさせてあげようかなって」
[$W]
「ね……良いよね？」</contents>
  </command>
  <command eventId="330" name="モーニングコール実行前" priority="1" eval="{HAS_PENIS(MASTER)}">
    <contents>「あ、起きた？　おはよう、[$MNAME]。今日も良い天気だよ」
[$W]
「びっくりしちゃった。私が[$MNAME]を起こしに来たら、[$MNAME]のここ……物欲しそうにおっきくなっちゃってるんだもん」
[$W]
「こんなに大きくしちゃってると、収まるまで時間がかかるでしょ？」
[$W]
「だからね……ちゃんと収まるように私が協力してあげるね……どうかな？」</contents>
  </command>
  <command eventId="334" name="モーニングコール終了" priority="1">
    <contents>「[$MNAME]、気持ち良かった？」
「そっか……ふふっ、良かった」
[$W]
「……えっと、今更ながら恥ずかしくなってきちゃった！　私、もしかしなくてもとんでもないことしちゃった！？」</contents>
  </command>
  <command eventId="334" name="モーニングコール終了" priority="1" eval="{HAS_PENIS(MASTER)}">
    <contents>「どうかな、[$MNAME]。ちゃんと[$MNAME]のここ、収まったかな？」
[$W]
「……まだ大きいね。くすっ、まだ物足りないんだ？　でも、もうそろそろ起きないとだめだし……」
[$W]
「そんな物足りなさそうな顔しないの、領主さまでしょ？　ちゃんとしないと、めっ」
[$W]
「続きは夜にしてあげるから……ね？」</contents>
  </command>
  <command eventId="335" name="モーニングコール延長" priority="1" isFall="LOVER">
    <contents>「ふふっ、[$MNAME]は欲張りさんなんだから」
「物欲しそうな顔しないの。ちゃんと、[$MNAME]が満足するまでしてあげるから……ね？」</contents>
  </command>
  <command eventId="335" name="モーニングコール延長" priority="1" isFall="LOVER" eval="{HAS_PENIS(MASTER)}">
    <contents>「くすっ、[$MNAME]のここ、まだ物足りないようって言ってるもんね」
「じゃあ、続けるね？　[$MNAME]は私に身を任せてくれてていいからね？」</contents>
  </command>
  <command eventId="501" name="行為判定成功" priority="1">
    <contents>「よかった、うまくできたっ」</contents>
  </command>
  <command eventId="501" name="行為判定成功" priority="1">
    <contents>「うんっ、大成功！」</contents>
  </command>
  <command eventId="501" name="行為判定成功" priority="1" eval="{QST_PARTYNUM >= 2}">
    <contents>「よしっ、みんなの役に立てたかな？」</contents>
  </command>
  <command eventId="502" name="行為判定失敗" priority="1">
    <contents>「失敗しちゃった、もっとしっかりしなきゃ……！」</contents>
  </command>
  <command eventId="502" name="行為判定失敗" priority="1">
    <contents>「やっちゃった……もっと鍛えないと……！」</contents>
  </command>
  <command eventId="502" name="行為判定失敗" priority="1" eval="{QST_PARTYNUM >= 2}">
    <contents>「きゃあっ！？　みんなごめんね！」</contents>
  </command>
  <command eventId="651" name="公演_脱衣拒否" priority="1">
    <contents>「するわけないでしょ、そんなことっ！」</contents>
  </command>
  <command eventId="651" name="公演_脱衣拒否" priority="1">
    <contents>「変なこと言わないっ！　いい子にして健全に鑑賞してるのっ！」</contents>
  </command>
  <command eventId="651" name="公演_脱衣拒否" priority="2" isFall="LOVER" eval="{TALENT:[$KC]:合意==1}">
    <contents>「するわけないでしょ、そんなことっ！」
「……私のを見ていいのは[$MNAME]だけなんだから」

後半は[$MNAME]だけに聞こえるような小さい声で、フィーは呟いた</contents>
  </command>
</data>


code:
@EVENT_KOJO_DAILY()
#DIM EVENT_NUM
#DIMS NAME_ENG
#DIMS NAME_JAP
#DIM EVENT_COUNT
#DIM EVENT_CHARA, VARSIZE("SHAFFLE_ARRAY")
#DIM EVENT_ARRAY, VARSIZE("SHAFFLE_ARRAY")
#DIM 対象
#DIM 対象NO
VARI KOJO_ID
VARI EVENT_DID, 100

SIF !IS_DAILY_EVENT_HAPPEN(MASTER)
	RETURN 0

SIF FLAG:観戦モード
	RETURN 0

SIF DAILY_CANCEL
	RETURN 0

CALL KOJO_DAILY_DERIVATION()

DAILY_CANCEL = 0
EVENT_COUNT = KOJO_DAILY_EVENT_COUNT

;口上用デイリー MASTERのものは発動しない
;順番決定
CALL FISHER_YATES_SHAFFLE(CHARANUM)

ARRAYCOPY "SHAFFLE_ARRAY", "EVENT_CHARA"

FOR LOCAL, 0, CHARANUM
	;ターンエンド調教が有効な場合は後続のデイリーイベントを実行しない
	SIF FLAG:ターンエンド調教
		BREAK
	対象 = EVENT_CHARA:LOCAL
	対象NO = NO:対象
	IF IS_UNIQUE_CHARA(対象)
		SIF KOJO_DAILY_EVENT_NUM:対象NO:デイリー_通常 == 0
			CONTINUE
		EVENT_NUM = KOJO_DAILY_EVENT_NUM:対象NO:デイリー_通常
	ELSE
		KOJO_ID = KOJO_NO(対象)
		SIF !KOJO_ID
			CONTINUE
		VARSET RESULTS
		EVENT_NUM = DT_SELECT("KOJO_DAILY", @"KOJO_ID = {KOJO_ID}",,EVENT_DID)
		SIF !EVENT_NUM
			CONTINUE
	ENDIF
	CALL FISHER_YATES_SHAFFLE(EVENT_NUM)
	ARRAYCOPY "SHAFFLE_ARRAY", "EVENT_ARRAY"

	FOR LOCAL:1, 0, EVENT_NUM
		SIF EVENT_COUNT == 0
			BREAK
		IF IS_UNIQUE_CHARA(対象)
			NAME_ENG '= KOJO_DAILY_EVENT_NAME_ENG:対象NO:デイリー_通常:(EVENT_ARRAY:(LOCAL:1))
			NAME_JAP '= KOJO_DAILY_EVENT_NAME:対象NO:デイリー_通常:(EVENT_ARRAY:(LOCAL:1))
			SIF KOJO_DAILY_GET_DISABLE_CONFIG(対象, NAME_ENG)
				CONTINUE
		ELSE
			NAME_ENG = %DT_CELL_GETS("KOJO_DAILY", EVENT_DID:(LOCAL:1), "EVENT_NAME_ENG", 1)%
			NAME_JAP = %DT_CELL_GETS("KOJO_DAILY", EVENT_DID:(LOCAL:1), "EVENT_NAME_JP", 1)%
			対象NO = KOJO_ID
			SIF DT_SELECT("KOJO_DAILY_DISABLE", @"KOJO_ID = {KOJO_ID} AND EVENT_NAME_ENG = '%NAME_ENG%'")
				CONTINUE
		ENDIF

		TRYCCALLFORM KOJO_DAILY_K{対象NO}_%NAME_ENG%_RATE(対象)
			SIF RESULT * KOJO_DAILY_EVENT_ODDS <= RAND:1000
				CONTINUE
		CATCH
		ENDCATCH
		;放浪中の拠点フェイズデイリーは特殊な関数が必要
		IF !CFLAG:MASTER:所属
			RESULT = 0
			TRYCALLFORM KOJO_DAILY_K{対象NO}_%NAME_ENG%_ALLOW_WHEN_WANDERING()
			SIF RESULT == 0
				CONTINUE
		ENDIF

		RESULT = 1
		TRYCALLFORM KOJO_DAILY_K{対象NO}_%NAME_ENG%_DECISION(対象)
		SIF RESULT == 0
			CONTINUE

		VARSET DAILY_TARGET, -1
		VARSET DAILY_TARGET_NUM
		RESULT = 1
		TRYCALLFORM KOJO_DAILY_K{対象NO}_%NAME_ENG%_SETTARGET(対象)
		SIF RESULT == 0
			CONTINUE
		;デイリーイベントの実行が確定
		;キャラ情報の初期化
		FOR LOCAL, 0, CHARANUM
			CALL SET_CHARA_CLOTH_DATA(LOCAL)
		NEXT
		;
		RESULTS '= ""
		TRYCALLFORM KOJO_DAILY_K{対象NO}_%NAME_ENG%_NAME(対象)
		IF RESULTS == ""
			CALL KOJO_DAILY_START(NAME_JAP, 対象)
		ELSE
			CALL KOJO_DAILY_START(RESULTS, 対象)
		ENDIF
		CALLFORM KOJO_DAILY_K{対象NO}_%NAME_ENG%(対象)
		IF RESULT == 1
			EVENT_COUNT --
		ENDIF
		;
		SIF DAILY_CANCEL
			RETURN
	NEXT
NEXT

;共通デイリーイベント：派生処理
@KOJO_DAILY_DERIVATION()
#DIM EVENT_NUM
#DIMS NAME_ENG
#DIMS NAME_JAP
#DIM EVENT_CHARA, VARSIZE("SHAFFLE_ARRAY")
#DIM EVENT_ARRAY, VARSIZE("SHAFFLE_ARRAY")
#DIM 対象
#DIM 対象NO

SIF !IS_DAILY_EVENT_HAPPEN(MASTER)
	RETURN 0

SIF FLAG:観戦モード
	RETURN 0

SIF DAILY_CANCEL
	RETURN 0

DAILY_CANCEL = 0

;口上用デイリー MASTERのものは発動しない
;順番決定
CALL FISHER_YATES_SHAFFLE(CHARANUM)

ARRAYCOPY "SHAFFLE_ARRAY", "EVENT_CHARA"

FOR LOCAL, 0, CHARANUM
	対象 = EVENT_CHARA:LOCAL
	対象NO = NO:対象
	SIF !IS_UNIQUE_CHARA(対象)
		CONTINUE

	EVENT_NUM = KOJO_DAILY_EVENT_NUM:対象NO:デイリー_通常派生

	FOR LOCAL:1, 0, EVENT_NUM
		NAME_ENG '= KOJO_DAILY_EVENT_NAME_ENG:対象NO:デイリー_通常派生:(LOCAL:1)
		NAME_JAP '= KOJO_DAILY_EVENT_NAME:対象NO:デイリー_通常派生:(LOCAL:1	)

		RESULT = 0
		TRYCCALLFORM KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%_DISABLE(対象)
			SIF RESULT == 1
				CONTINUE

			;放浪中の拠点フェイズデイリーは特殊な関数が必要
			IF !CFLAG:MASTER:所属
				RESULT = 0
				TRYCALLFORM KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%_ALLOW_WHEN_WANDERING()
				SIF RESULT == 0
					CONTINUE
			ENDIF

			TRYCALLFORM KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%_DECISION(対象)
			SIF RESULT == 0
				CONTINUE

			VARSET DAILY_TARGET, -1
			VARSET DAILY_TARGET_NUM
			RESULT = 1
			TRYCALLFORM KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%_SETTARGET(対象)
			SIF RESULT == 0
				CONTINUE

			RESULTS =
			TRYCALLFORM KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%_NAME(対象)
			IF RESULTS == ""
				CALL KOJO_DAILY_START_DERIVATION(NAME_JAP, 対象)
			ELSE
				CALL KOJO_DAILY_START_DERIVATION(RESULTS, 対象)
			ENDIF

			CALLFORM KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%(対象)
			SIF DAILY_CANCEL
				RETURN
		CATCH
			;DEBUGPRINTFORML KOJO_DAILY_K{対象NO}_DERIVATION_%NAME_ENG%_DECISIONみつからず
		ENDCATCH
	NEXT
NEXT


code:
;-------------------------------------------------
;口上デイリーイベント開始時の汎用演出。
;-------------------------------------------------
@KOJO_DAILY_START(ARGS:0, ARG:1)
CALL SINGLE_DRAWLINE
CALL COLOR_PRINTL(@"-%ANAME(ARG:1)%口上デイリーイベント『%ARGS:0%』発生-", カラー_注意)
FORCEWAIT
CALL SINGLE_DRAWLINE
PRINTFORML ・
PRINTFORML ・
PRINTFORML ・

;-------------------------------------------------
;口上デイリーイベント開始時の汎用演出。
;-------------------------------------------------
@KOJO_DAILY_START_DERIVATION(ARGS:0, ARG:1)
CALL SINGLE_DRAWLINE
CALL COLOR_PRINTL(@"-%ANAME(ARG:1)%派生口上デイリーイベント『%ARGS:0%』発生-", カラー_注意)
FORCEWAIT
CALL SINGLE_DRAWLINE
PRINTFORML ・
PRINTFORML ・
PRINTFORML ・

;-------------------------------------------------
;desc  :口上デイリーのインデックスを英語名から取得する
;param :対象    :対象キャラ
;PARAM :ジャンル:口上デイリーのジャンル
;param :アクセサ:口上デイリーの英語名
;return:口上デイリーのインデックス
;-------------------------------------------------
@GET_KOJO_DAILY_INDEX_FROM_ENG(対象, ジャンル,アクセサ)
#FUNCTION
#DIM 対象
#DIM 対象NO
#DIM ジャンル
#DIMS アクセサ

対象NO = NO:対象

FOR LOCAL, 0, VARSIZE("KOJO_DAILY_EVENT_NAME_ENG", 2)
	SIF KOJO_DAILY_EVENT_NAME_ENG:対象NO:ジャンル:LOCAL == アクセサ
		RETURNF LOCAL
NEXT
RETURNF -1

;-------------------------------------------------
;desc  :口上デイリーの表示名を英語名から取得する
;param :対象    :対象キャラ
;PARAM :ジャンル:口上デイリーのジャンル
;param :アクセサ:口上デイリーの英語名
;return:口上デイリーのインデックス
;-------------------------------------------------
@GET_KOJO_DAILY_NAME_FROM_ENG(対象, ジャンル, アクセサ)
#FUNCTIONS
#DIM 対象
#DIM 対象NO
#DIM ジャンル
#DIMS アクセサ

対象NO = NO:対象
FOR LOCAL, 0, VARSIZE("KOJO_DAILY_EVENT_NAME_ENG", 2)
	SIF KOJO_DAILY_EVENT_NAME_ENG:対象NO:ジャンル:LOCAL == アクセサ
		RETURNF KOJO_DAILY_EVENT_NAME:対象NO:ジャンル:LOCAL
NEXT
RETURNF "未定義"

;-------------------------------------------------
;desc  :口上デイリーのオンオフを英語名から取得する
;param :対象    :対象キャラ
;param :アクセサ:口上デイリーの英語名
;return:口上デイリーのオンオフ
;-------------------------------------------------
@KOJO_DAILY_GET_DISABLE_CONFIG(対象, アクセサ)
#FUNCTION
#DIM 対象
#DIM 対象NO
#DIMS アクセサ
#DIM 番号

IF IS_UNIQUE_CHARA(対象)
	対象NO = NO:対象
	番号 = -1
	FOR LOCAL, 0, VARSIZE("KOJO_DAILY_DISABLE_NAME", 1)
		IF KOJO_DAILY_DISABLE_NAME:対象NO:LOCAL == アクセサ
			番号 = LOCAL
			BREAK
		ENDIF
	NEXT
	SIF 番号 >= 0
		RETURNF KOJO_DAILY_DISABLE:対象NO:番号
	THROW KOJO_DAILY_DISABLE_NAME上に存在しない名前%アクセサ%が渡されました
ELSE
	対象NO = KOJO_NO(対象)
	RETURNF DT_SELECT("KOJO_DAILY_DISABLE", @"KOJO_ID = {対象NO} AND EVENT_NAME_ENG = '%アクセサ%'")
ENDIF

;-------------------------------------------------
;desc  :指定したキャラの指定した英語名の口上デイリーのオンオフを指定する
;param :対象:対象キャラ
;param :アクセサ:口上デイリーの英語名
;param :状態:オン = 0 オフ = 1
;return:戻り値:オンオフに成功したか（変動したかは問わない）
;-------------------------------------------------
@KOJO_DAILY_SET_DISABLE(対象, アクセサ, TURN_OFF)
#DIM 対象
#DIM 対象NO
#DIMS アクセサ
#DIM 番号
#DIM TURN_OFF
VARI DID, 100
VARI I
VARI REC_COUNT

IF IS_UNIQUE_CHARA(対象)
	対象NO = NO:対象
	番号 = -1
	FOR LOCAL, 0, VARSIZE("KOJO_DAILY_DISABLE_NAME", 1)
		IF KOJO_DAILY_DISABLE_NAME:対象NO:LOCAL == アクセサ
			番号 = LOCAL
			BREAK
		ENDIF
	NEXT

	SIF 番号 < 0
		RETURN 0

	KOJO_DAILY_DISABLE:対象NO:番号 = TURN_OFF
	RETURN 1
ELSE
	対象NO = KOJO_NO(対象)
	REC_COUNT = DT_SELECT("KOJO_DAILY_DISABLE", @"KOJO_ID = {対象NO} AND EVENT_NAME_ENG = '%アクセサ%'",, DID)
	IF REC_COUNT > 0 && !TURN_OFF
		FOR I, 0, REC_COUNT
			;口上デイリーをオンにしたときDISABLEからレコードを削除する
			IF !TURN_OFF
				DT_ROW_REMOVE "KOJO_DAILY_DISABLE", DID:I
			ENDIF
		NEXT
	ELSE
		;口上をオフにしたときDISABLEにレコードを追加する
		IF !REC_COUNT
			{
				DT_ROW_ADD "KOJO_DAILY_DISABLE"
					, @"KOJO_ID", 対象NO
					, @"EVENT_NAME_ENG", @"%アクセサ%"
			}
		ENDIF
	ENDIF
ENDIF

;-------------------------------------------------
;desc  :デイリーのマップを生成するためのハブ
;-------------------------------------------------
@CREATE_KOJO_DAILY_MAP()
#DIMS KOJO, 1000
VARI I

FOR I, 0, CHARANUM
	SIF !IS_UNIQUE_CHARA(I)
		CONTINUE
	TRYCALLFORM CREATE_KOJO_DAILY_MAP_K{NO:I}(I)
NEXT
;汎用口上のデイリーマップ作成
ENUMFUNCBEGINSWITH "CREATE_COMMON_KOJO_DAILY_MAP_K"
ARRAYCOPY "RESULTS", "KOJO"
FOR I, 0, RESULT
	DEBUGPRINTFORML %KOJO:I%
	TRYCALLFORM %KOJO:I%
NEXT

;-------------------------------------------------
;desc  :口上デイリーを登録する
;param :対象:対象キャラ
;param :ジャンル:デイリーのジャンル
;param :アクセサ:口上デイリーの英語名
;param :名前:口上デイリーの日本語名
;-------------------------------------------------
@REGISTER_KOJO_DAILY(対象, ジャンル, アクセサ, 名前)
#DIM 対象
#DIM 対象NO
#DIM ジャンル
#DIMS アクセサ
#DIMS 名前
#DIMS ＳＬＧ
#DIMS 派生
#DIM 番号

対象NO = NO:対象

SIF !INRANGE(ジャンル, デイリー_通常, デイリー_通常派生)
	THROW KOJO_DAILY_REGISTERに存在しないジャンル{ジャンル}が渡されました

SIF !IS_UNIQUE_CHARA(対象)
	RETURN

IF ジャンル == デイリー_通常派生
	派生 = DERIVATION_
ELSE
	派生 =
ENDIF

IF ジャンル == デイリー_通常
	TRYCCALLFORM KOJO_DAILY_K{対象NO}_%派生%%アクセサ%_RATE(対象)
	CATCH
		SETCOLOR カラー_警告
		PRINTFORMW KOJO_DAILY_REGISTERに渡された%名前%,%アクセサ%のRATE関数が見つかりません
		PRINTFORMW あなたがプレイヤーなら、パッチに抜けがないか、競合がないかを確認してください
		PRINTFORMW あなたが開発者なら、RATE関数以下の必須関数を設定したかを確認してください
		RETURN
	ENDCATCH
ELSE
	TRYCCALLFORM KOJO_DAILY_K{対象NO}_%派生%%アクセサ%_DISABLE(対象)
	CATCH
		SETCOLOR カラー_警告
		PRINTFORMW KOJO_DAILY_REGISTERに渡された%名前%,%アクセサ%のDISABLE関数が見つかりません
		PRINTFORMW あなたがプレイヤーなら、パッチに抜けがないか、競合がないかを確認してください
		PRINTFORMW あなたが開発者なら、RATE関数以下の必須関数を設定したかを確認してください
		RETURN
	ENDCATCH
ENDIF
RESETCOLOR

KOJO_DAILY_EVENT_NAME_ENG:対象NO:ジャンル:(KOJO_DAILY_EVENT_NUM:対象NO:ジャンル) = %アクセサ%
KOJO_DAILY_EVENT_NAME:対象NO:ジャンル:(KOJO_DAILY_EVENT_NUM:対象NO:ジャンル) = %名前%

;派生形はDISABLE_NAMEに登録する必要がないのでFINALLYへ
SIF ジャンル == デイリー_通常派生
	GOTO FINALLY

番号 = -1
FOR LOCAL, 0, VARSIZE("KOJO_DAILY_DISABLE_NAME", 1)
	IF KOJO_DAILY_DISABLE_NAME:対象NO:LOCAL == アクセサ
		番号 = LOCAL
		BREAK
	ENDIF
NEXT

;登録済みならFINALLYへ
SIF 番号 != -1
	GOTO FINALLY

;まだ登録していないなら、空いている番号を探して登録
FOR LOCAL, 0, VARSIZE("KOJO_DAILY_DISABLE_NAME", 1)
	IF KOJO_DAILY_DISABLE_NAME:対象NO:LOCAL == ""
		KOJO_DAILY_DISABLE_NAME:対象NO:LOCAL = %アクセサ%
		BREAK
	ENDIF
NEXT

$FINALLY

KOJO_DAILY_EVENT_NUM:対象NO:ジャンル ++

;-------------------------------------------------
;;; 汎用口上デイリーを登録する
;;; - ARGS
;;;     - KOJO_ID {int}: 汎用口上番号
;;;     - GENRE {int}: デイリーのジャンル
;;;     - EVENT_NAME_ENG {string}: 口上デイリーの英語名
;;;     - EVENT_NAME_JP {string}: 口上デイリーの日本語名
;;; - RETURN
;;;     - RESULT {int}: 0 失敗 1 成功
;-------------------------------------------------
@REGISTER_COMMON_KOJO_DAILY(KOJO_ID, GENRE, EVENT_NAME_ENG, EVENT_NAME_JP)
#DIM KOJO_ID
#DIM GENRE
#DIMS EVENT_NAME_ENG
#DIMS EVENT_NAME_JP

VARS DERIVATION

SIF !INRANGE(GENRE, デイリー_通常, デイリー_通常派生)
	THROW KOJO_DAILY_REGISTERに存在しないジャンル{GENRE}が渡されました

IF GENRE== デイリー_通常派生
	DERIVATION '= "DERIVATION_"
ELSE
	DERIVATION '= ""
ENDIF

DEBUGPRINTFORML %@"KOJO_DAILY_K{KOJO_ID}_%DERIVATION%%EVENT_NAME_ENG%_RATE"%
IF GENRE== デイリー_通常
	TRYCCALLFORM KOJO_DAILY_K{KOJO_ID}_%DERIVATION%%EVENT_NAME_ENG%_RATE()
	CATCH
		SETCOLOR カラー_注意
		PRINTFORMW KOJO_DAILY_REGISTERに渡された%EVENT_NAME_JP%,%EVENT_NAME_ENG%のRATE関数が見つかりません
		PRINTFORMW あなたがプレイヤーなら、パッチに抜けがないか、競合がないかを確認してください
		PRINTFORMW あなたが開発者なら、RATE関数以下の必須関数を設定したかを確認してください
		RESETCOLOR
		RETURN
	ENDCATCH
ELSE
	TRYCCALLFORM KOJO_DAILY_K{KOJO_ID}_%DERIVATION%%EVENT_NAME_ENG%_DISABLE()
	CATCH
		SETCOLOR カラー_注意
		PRINTFORMW KOJO_DAILY_REGISTERに渡された%EVENT_NAME_JP%,%EVENT_NAME_ENG%のDISABLE関数が見つかりません
		PRINTFORMW あなたがプレイヤーなら、パッチに抜けがないか、競合がないかを確認してください
		PRINTFORMW あなたが開発者なら、RATE関数以下の必須関数を設定したかを確認してください
		RESETCOLOR
		RETURN
	ENDCATCH
ENDIF
{
	DT_ROW_ADD "KOJO_DAILY"
		,"KOJO_ID", KOJO_ID
		,"GENRE", GENRE
		,"EVENT_NAME_ENG", EVENT_NAME_ENG
		,"EVENT_NAME_JP", EVENT_NAME_JP
}

RETURN 1


code:
;-------------------------------------------------
; 口上出力時に頻繁に参照する状態や属性を包括的に管理する連想配列
;-------------------------------------------------
@C_COND_CREATE_MAP(CHARA_ID)
#DIM CHARA_ID

IF !MAP_EXIST(@"C_COND_{CHARA_ID}")
    MAP_CREATE @"C_COND_{CHARA_ID}"
    DEBUGPRINTFORML C_COND_{CHARA_ID} CREATED
    RETURN 1
ENDIF
RETURN 0

@C_COND_MAP_GET(CHARA_ID, KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS KEYS

RETURNF TOINT(MAP_GET(@"C_COND_{CHARA_ID}", KEYS))

@C_COND_MAP_GETS(CHARA_ID, KEYS)
#FUNCTIONS
#DIM CHARA_ID
#DIMS KEYS

RETURNF MAP_GET(@"C_COND_{CHARA_ID}", KEYS)

@C_COND_MAP_SET(CHARA_ID, KEYS, VALUES)
#DIM CHARA_ID
#DIMS KEYS
#DIMS VALUES

MAP_SET @"C_COND_{CHARA_ID}", KEYS, VALUES

@C_COND_MAP_REMOVE(CHARA_ID, KEYS)
#DIM CHARA_ID
#DIMS KEYS
MAP_REMOVE @"C_COND_{CHARA_ID}", KEYS

@C_COND_RELEASE_ALL_MAP()
FOR LOCAL, 0, CHARANUM
    MAP_RELEASE @"C_COND_{LOCAL}"
NEXT

@C_COND_SET_INFO_TO_MAP(CHARA_ID, CALLPLACE)
#DIM CHARA_ID
#DIMS CALLPLACE
;連想配列が存在しない場合は生成
CALL C_COND_CREATE_MAP(CHARA_ID)
;CSTRリフレッシュ
CALL HOKJ_SET_CHARADATA_TO_CSTR(CHARA_ID)
SELECTCASE CALLPLACE
    CASE "COM_BEFORE", "SHOW_STATUS_TOP", "CHARAACT_DESC", "USE_MODULE", "STOP_USE_MODULE", "BEFORE_COMBAT"
        ;領内活動関連の情報
        ;-------------------------------------------------
        IF FLAG:ハウジングモード
            CALL C_COND_MAP_SET(CHARA_ID, "エリアIDX", CSTR:CHARA_ID:USE_ROOM_IDX)
            CALL C_COND_MAP_SET(CHARA_ID, "エリア", CSTR:CHARA_ID:USE_ROOM_ID)
            CALL C_COND_MAP_SET(CHARA_ID, "エリア名", CSTR:CHARA_ID:USE_ROOM_NAME)
            CALL C_COND_MAP_SET(CHARA_ID, "エリアタグ", CSTR:CHARA_ID:_LIST_USE_ROOM_TAG)
            CALL C_COND_MAP_SET(CHARA_ID, "設備IDX", CSTR:CHARA_ID:USE_MODULE_IDX)
            CALL C_COND_MAP_SET(CHARA_ID, "設備", CSTR:CHARA_ID:USE_MODULE_ID)
            CALL C_COND_MAP_SET(CHARA_ID, "設備名", CSTR:CHARA_ID:USE_MODULE_NAME)
            CALL C_COND_MAP_SET(CHARA_ID, "設備用途", CSTR:CHARA_ID:_LIST_USE_MODULE_USAGE)
            CALL C_COND_MAP_SET(CHARA_ID, "設備属性", CSTR:CHARA_ID:_LIST_USE_MODULE_ELEMENT)
            CALL C_COND_MAP_SET(CHARA_ID, "行動", HOKJ_IS_DOING(CHARA_ID))
            CALL HO_CHECK_PUBLIC_EYE(CHARA_ID)
            CALL C_COND_MAP_SET(CHARA_ID, "人目", TOSTR(RESULT))
        ENDIF
        ;衣装状態
        ;-------------------------------------------------
        CALL C_COND_SET_CLOTH_COVERRAGE(CHARA_ID)
    CASE "COM"
        ;衣装状態
        ;-------------------------------------------------
        CALL C_COND_SET_CLOTH_COVERRAGE(CHARA_ID)
    CASE "COM_AFTER"
        ;衣装状態
        ;-------------------------------------------------
        CALL C_COND_SET_CLOTH_COVERRAGE(CHARA_ID)
ENDSELECT

;-------------------------------------------------
;;;@C_COND
;;;@概要 :キャラクターの状態を包括的に判定するものぐさな関数
;;;@ARGS:1 … 能力名、素質、コマンド名など,ARGS:2 … "OR","AND"(省略時OR), ARG:3…キャラ登録番号(CHARA_ID)
;;;@RETURN :真偽
;;;@EX :C_COND("絶頂:Ｃ,絶頂:Ｖ","AND",0) …　MASTERがＣ絶頂かつＶ絶頂の場合TRUE
;-------------------------------------------------
@C_COND(STRKEYS, ANDOR = "OR", CHARA_ID = -1)
#FUNCTION
#DIMS STRKEYS
#DIMS ANDOR
#DIM  CHARA_ID
#DIMS DYNAMIC KEYS, 10
#DIM  DYNAMIC KEYS_NUM
#DIMS DYNAMIC S_KEYS, 6
#DIM  DYNAMIC S_KEYS_NUM
#DIMS DYNAMIC P_KEYS

;ここにCHARA_ID省略時の取得処理
SIF CHARA_ID == -1
    CHARA_ID = TARGET

;スペース除去
SIF STRFIND(STRKEYS, " ") != -1
    STRKEYS = %REPLACE(STRKEYS, "[!\\s]", "")%
SPLIT STRKEYS, ",", KEYS
KEYS_NUM = RESULT
FOR LOCAL, 0, KEYS_NUM
    VARSET S_KEYS
    SPLIT KEYS:LOCAL, ":", S_KEYS
    S_KEYS_NUM = RESULT
    P_KEYS = %S_KEYS:0%
    SELECTCASE P_KEYS
        CASE "コマンド", "継続"
            RESULT = C_COND_COM(CHARA_ID, S_KEYS)
        CASE "絶頂"
            RESULT = C_COND_NOWEX(CHARA_ID, S_KEYS)
        CASE "絶頂回数"
            RESULT = C_COND_EX(CHARA_ID, S_KEYS)
        CASE "設備用途", "設備属性", "エリアタグ"
            RESULT = C_COND_LIST(CHARA_ID, S_KEYS)
        CASE "能力", "ソース", "快感", "快感ＬＶ", "経験", "取得快感", "素質"
            RESULT = C_COND_PALAMS(CHARA_ID, S_KEYS)
        CASE "衣装属性"
            RESULT = C_COND_CLOTH(CHARA_ID, S_KEYS)
        CASE "エリア効果"
            RESULT = C_COND_MAP_EFFECT(CHARA_ID, S_KEYS)
        CASE "設備効果"
            RESULT = C_COND_MODULE_EFFECT(CHARA_ID, S_KEYS)
        CASEELSE
            IF MAP_HAS(@"C_COND_{CHARA_ID}", P_KEYS)
                RESULT = S_KEYS:1 == C_COND_MAP_GETS(CHARA_ID, P_KEYS) ? 1 # 0
            ELSE
                RESULT = 0
            ENDIF
    ENDSELECT
    IF ANDOR == "OR" && RESULT
        RETURNF 1
    ELSEIF ANDOR == "AND" && !RESULT
        RETURNF 0
    ENDIF
NEXT
IF ANDOR == "AND"
    RETURNF 1
ENDIF
RETURNF 0

;コマンドの実行継続状態
;S_KEYS:0 "コマンド"or"継続"
;S_KEYS:1 Train.csvのコマンド名称
;S_KEYS:2 ""or"実行"or"対象", 空白時実行対象を問わない
@C_COND_COM(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS

IF S_KEYS:0 == "コマンド"
    IF S_KEYS:2 == "実行"
        RETURNF IS_MPLY(CHARA_ID) && SELECTCOM == T_N(S_KEYS:1)
    ELSEIF S_KEYS:2 == "対象"
        RETURNF IS_MTAR(CHARA_ID) && SELECTCOM == T_N(S_KEYS:1)
    ELSE
        RETURNF (IS_MPLY(CHARA_ID) || IS_MTAR(CHARA_ID) ) && SELECTCOM == T_N(S_KEYS:1)
    ENDIF
ELSE
    IF S_KEYS:2 == "実行"
        RETURNF IS_EQUIP_PLAYER(CHARA_ID, T_N(S_KEYS:1))
    ELSEIF S_KEYS:2 == "対象"
        RETURNF IS_EQUIP_TARGET(CHARA_ID, T_N(S_KEYS:1))
    ELSE
        RETURNF IS_EQUIP(CHARA_ID, T_N(S_KEYS:1))
    ENDIF
ENDIF
RETURNF 0

;絶頂回数の合計
@C_COND_EX(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS

SIF S_KEYS:2 == ""
    S_KEYS:2 '= ">0"
IF S_KEYS:1 == ""
    SELECTCASE S_KEYS:0
        CASE "絶頂回数"
            LOCALS '= @"{SUM_EX(CHARA_ID, 0, 0)}%S_KEYS:2%"
        CASEELSE
            RETURNF 0
    ENDSELECT
    RETURNF TOINT(STRFORM(@"\{%LOCALS%\}"))
ELSE
    SELECTCASE S_KEYS:1
        CASE "噴乳", "射精", "潮吹き"
            LOCALS '= @"{GETVAR(@"EX:CHARA_ID:%S_KEYS:1%")}%S_KEYS:2%"
        CASEELSE
            LOCALS '= @"{GETVAR(@"EX:CHARA_ID:%S_KEYS:1%絶頂")}%S_KEYS:2%"
    ENDSELECT
    RETURNF TOINT(STRFORM(@"\{%LOCALS%\}"))
ENDIF
RETURNF 0

;コマンド実行時に絶頂した回数。@SOURCE_CHECK の絶頂処理後でないと値を取得できない点に注意
@C_COND_NOWEX(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS

SIF S_KEYS:2 == ""
    S_KEYS:2 '= ">0"
IF S_KEYS:1 == ""
    SELECTCASE S_KEYS:0
        CASE "絶頂合計"
            LOCALS '= @"{SUM_NOWEX(CHARA_ID, 0, 0)}%S_KEYS:2%"
        CASEELSE
            RETURNF 0
    ENDSELECT
    RETURNF TOINT(STRFORM(@"\{%LOCALS%\}"))
ELSE
    SELECTCASE S_KEYS:1
        CASE "噴乳", "射精", "潮吹き"
            LOCALS '= @"{GETVAR(@"NOWEX:CHARA_ID:%S_KEYS:1%")}%S_KEYS:2%"
        CASEELSE
            LOCALS '= @"{GETVAR(@"NOWEX:CHARA_ID:%S_KEYS:1%絶頂")}%S_KEYS:2%"
    ENDSELECT
    RETURNF TOINT(STRFORM(@"\{%LOCALS%\}"))
ENDIF
RETURNF 0

;リスト格納情報との照合
@C_COND_LIST(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS
#DIMS DYNAMIC KEYS
#DIMS DYNAMIC _LIST

IF LIST_INDEXOF(C_COND_MAP_GETS(CHARA_ID, S_KEYS:0), S_KEYS:1) != -1
    RETURNF 1
ELSE
    RETURNF 0
ENDIF

;各パラメータとの照合
@C_COND_PALAMS(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS
#DIMS PALAM_NAME
SIF S_KEYS:2 == ""
    S_KEYS:2 '= ">0"
SELECTCASE S_KEYS:0
    CASE "能力"
        PALAM_NAME '= "ABL"
    CASE "取得快感"
        PALAM_NAME '= "CUP"
    CASE "快感"
        PALAM_NAME '= "PALAM"
    CASE "快感ＬＶ"
        PALAM_NAME '= "PALAMLV"
    CASE "ソース"
        PALAM_NAME '= "SOURCE"
    CASE "経験"
        PALAM_NAME '= "EXP"
    CASE "素質"
        PALAM_NAME '= "TALENT"
    CASEELSE
        RETURNF 0
ENDSELECT
;GET_PALAMLV(PALAM:(ARG:0):欲情)
IF PALAM_NAME == "PALAMLV"
    LOCALS '= @"{G_PLV(CHARA_ID, S_KEYS:1)}%S_KEYS:2%"
ELSEIF PALAM_NAME == "TALENT"
    ;淫乱系素質の判定
    LOCAL = FINDELEMENT(SEX_TALENT_NAME, S_KEYS:1,,,1)
    IF LOCAL != -1
        LOCALS '= @"GETBIT({GETVAR(@"%PALAM_NAME%:CHARA_ID:淫乱系")},{LOCAL})"
    ELSE
        LOCALS '= @"{GETVAR(@"%PALAM_NAME%:CHARA_ID:%S_KEYS:1%")}%S_KEYS:2%"
    ENDIF
ELSE
    LOCALS '= @"{GETVAR(@"%PALAM_NAME%:CHARA_ID:%S_KEYS:1%")}%S_KEYS:2%"
ENDIF
RETURNF TOINT(STRFORM(@"\{%LOCALS%\}"))

;衣装属性の照合
;(衣装属性:部位名:属性)
@C_COND_CLOTH(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS
#DIMS LIST_TAG
#DIM  衣装部位
#DIM  衣装ID
SELECTCASE S_KEYS:1
    CASE "胸"
        衣装部位 = C_COND_MAP_GET(CHARA_ID, "被覆衣装部位_胸")
        衣装ID = C_COND_MAP_GET(CHARA_ID, "被覆衣装ID_胸")
        SIF 衣装ID <= 0
            RETURNF 0
        RETURNF HAS_CLOTH_TAG(衣装部位, 衣装ID,, S_KEYS:2)
    CASE "胸_下着"
        衣装部位 = C_COND_MAP_GET(CHARA_ID, "被覆衣装部位_胸_下着")
        衣装ID = C_COND_MAP_GET(CHARA_ID, "被覆衣装ID_胸_下着")
        SIF 衣装ID <= 0
            RETURNF 0
        RETURNF HAS_CLOTH_TAG(衣装部位, 衣装ID,, S_KEYS:2)
    CASE "秘部"
        衣装部位 = C_COND_MAP_GET(CHARA_ID, "被覆衣装部位_秘部")
        衣装ID = C_COND_MAP_GET(CHARA_ID, "被覆衣装ID_秘部")
        SIF 衣装ID <= 0
            RETURNF 0
        RETURNF HAS_CLOTH_TAG(衣装部位, 衣装ID,, S_KEYS:2)
    CASE "秘部_下着"
        衣装部位 = C_COND_MAP_GET(CHARA_ID, "被覆衣装部位_秘部_下着")
        衣装ID = C_COND_MAP_GET(CHARA_ID, "被覆衣装ID_秘部_下着")
        SIF 衣装ID <= 0
            RETURNF 0
        RETURNF HAS_CLOTH_TAG(衣装部位, 衣装ID,, S_KEYS:2)
    CASEELSE
        IF EXISTVAR(@"衣装部位_%S_KEYS:1%")
            衣装部位 = GETVAR(@"衣装部位_%S_KEYS:1%")
            衣装ID = 調教用衣装:CHARA_ID:衣装部位
            SIF 衣装ID <= 0
                RETURNF 0
            RETURNF HAS_CLOTH_TAG(衣装部位, 衣装ID,, S_KEYS:2)
        ELSE
            RETURNF 0
        ENDIF
ENDSELECT

@C_COND_SET_CLOTH_COVERRAGE(CHARA_ID)
#DIM CHARA_ID
#DIMS DYNAMIC 上半身露出度
#DIMS DYNAMIC 下半身露出度
#DIM  DYNAMIC 衣装部位
#DIM  DYNAMIC 衣装ID
#DIMS DYNAMIC 衣装名
#DIMS DYNAMIC 衣装描写
#DIMS DYNAMIC 衣装属性
;胸
CALL IS_COVERED(CHARA_ID, 被覆部位_乳首)
衣装部位 = RESULT:0
衣装ID = RESULT:1
衣装名 = %RESULTS:0%
衣装描写 = %RESULTS:1%
衣装属性 = %GET_CLOTH_TAG(衣装部位, 衣装ID)%

IF 衣装ID
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_胸", TOSTR(衣装部位))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_胸", TOSTR(衣装ID))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_胸", 衣装名)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_胸", 衣装描写)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装属性_胸", 衣装属性)
    CALL C_COND_MAP_SET(CHARA_ID, "露出_胸", "")
    SIF GROUPMATCH(衣装部位, 衣装部位_下着上, 衣装部位_下着下, 衣装部位_上下下着)
        CALL C_COND_MAP_SET(CHARA_ID, "露出_胸", "下着")
ELSE
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_胸", "-1")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_胸", "0")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_胸", "")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_胸", "")
    CALL C_COND_MAP_SET(CHARA_ID, "露出_胸", "露出")
ENDIF
;胸_下着
CALL IS_COVERED(CHARA_ID, 被覆部位_乳首, 1)
衣装部位 = RESULT:0
衣装ID = RESULT:1
衣装名 = %RESULTS:0%
衣装描写 = %RESULTS:1%
衣装属性 = %GET_CLOTH_TAG(衣装部位, 衣装ID)%

IF 衣装ID
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_胸_下着", TOSTR(衣装部位))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_胸_下着", TOSTR(衣装ID))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_胸_下着", 衣装名)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_胸_下着", 衣装描写)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装属性_胸_下着", 衣装属性)
ELSE
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_胸_下着", "-1")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_胸_下着", "0")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_胸_下着", "")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_胸_下着", "")

ENDIF
;秘部
CALL IS_COVERED(CHARA_ID, 被覆部位_秘部)
衣装部位 = RESULT:0
衣装ID = RESULT:1
衣装名 = %RESULTS:0%
衣装描写 = %RESULTS:1%
衣装属性 = %GET_CLOTH_TAG(衣装部位, 衣装ID)%

IF 衣装ID
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_秘部", TOSTR(衣装部位))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_秘部", TOSTR(衣装ID))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_秘部", 衣装名)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_秘部", 衣装描写)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装属性_秘部", 衣装属性)

    CALL C_COND_MAP_SET(CHARA_ID, "露出_秘部", "")
    SIF GROUPMATCH(衣装部位, 衣装部位_下着上, 衣装部位_下着下, 衣装部位_上下下着)
        CALL C_COND_MAP_SET(CHARA_ID, "露出_秘部", "下着")
ELSE
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_秘部", "-1")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_秘部", "0")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_秘部", "")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_秘部", "")
    CALL C_COND_MAP_SET(CHARA_ID, "露出_秘部", "露出")
ENDIF
;秘部_下着
CALL IS_COVERED(CHARA_ID, 被覆部位_秘部, 1)
衣装部位 = RESULT:0
衣装ID = RESULT:1
衣装名 = %RESULTS:0%
衣装描写 = %RESULTS:1%
衣装属性 = %GET_CLOTH_TAG(衣装部位, 衣装ID)%

IF 衣装ID
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_秘部_下着", TOSTR(衣装部位))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_秘部_下着", TOSTR(衣装ID))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_秘部_下着", 衣装名)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_秘部_下着", 衣装描写)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装属性_秘部_下着", 衣装属性)
ELSE
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_秘部_下着", "-1")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_秘部_下着", "0")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_秘部_下着", "")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_秘部_下着", "")
ENDIF
;尻
CALL IS_COVERED(CHARA_ID, 被覆部位_尻)
衣装部位 = RESULT:0
衣装ID = RESULT:1
衣装名 = %RESULTS:0%
衣装描写 = %RESULTS:1%
衣装属性 = %GET_CLOTH_TAG(衣装部位, 衣装ID)%

IF 衣装ID
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_尻", TOSTR(衣装部位))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_尻", TOSTR(衣装ID))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_尻", 衣装名)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_尻", 衣装描写)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装属性_尻", 衣装属性)

    CALL C_COND_MAP_SET(CHARA_ID, "露出_尻", "")
    SIF GROUPMATCH(衣装部位, 衣装部位_下着上, 衣装部位_下着下, 衣装部位_上下下着)
        CALL C_COND_MAP_SET(CHARA_ID, "露出_尻", "下着")
ELSE
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_尻", "-1")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_尻", "0")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_尻", "")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_尻", "")
    CALL C_COND_MAP_SET(CHARA_ID, "露出_尻", "露出")
ENDIF
;尻_下着
CALL IS_COVERED(CHARA_ID, 被覆部位_尻, 1)
衣装部位 = RESULT:0
衣装ID = RESULT:1
衣装名 = %RESULTS:0%
衣装描写 = %RESULTS:1%
衣装属性 = %GET_CLOTH_TAG(衣装部位, 衣装ID)%

IF 衣装ID
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_尻_下着", TOSTR(衣装部位))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_尻_下着", TOSTR(衣装ID))
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_尻_下着", 衣装名)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_尻_下着", 衣装描写)
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装属性_尻_下着", 衣装属性)
ELSE
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装部位_尻_下着", "-1")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装ID_尻_下着", "0")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装名_尻_下着", "")
    CALL C_COND_MAP_SET(CHARA_ID, "被覆衣装描写_尻_下着", "")
ENDIF

;その他の衣装
FOR LOCAL, 0, CLOTH_PART_NUM
    CALL C_COND_MAP_SET(CHARA_ID, @"衣装ID_%CLOTH_PART_NAME:LOCAL%", TOSTR(調教用衣装:CHARA_ID:LOCAL))
    CALL C_COND_MAP_SET(CHARA_ID, @"衣装状態_%CLOTH_PART_NAME:LOCAL%", TOSTR(衣装状態:CHARA_ID:LOCAL))
    CALL GET_CLOTH_NAME(LOCAL, 調教用衣装:CHARA_ID:LOCAL)
    CALL C_COND_MAP_SET(CHARA_ID, @"衣装名_%CLOTH_PART_NAME:LOCAL%", RESULTS)
    CALL GET_CLOTH_DESC(LOCAL, 調教用衣装:CHARA_ID:LOCAL)
    CALL C_COND_MAP_SET(CHARA_ID, @"衣装描写_%CLOTH_PART_NAME:LOCAL%",RESULTS)
NEXT

;エリア効果の適用状況
@C_COND_MAP_EFFECT(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS
#DIM  DYNAMIC ROOM_IDX
#DIMS DYNAMIC MAP

ROOM_IDX = C_COND_MAP_GET(CHARA_ID, "エリアIDX")
MAP '= @"MAP_{ROOM_IDX}_ROOM_EFFECT"
DEBUGPRINTFORML MAP = %MAP%
RETURNF MAP_HAS(MAP, S_KEYS:1) > 0

;設備効果の適用状況
@C_COND_MODULE_EFFECT(CHARA_ID, S_KEYS)
#FUNCTION
#DIM CHARA_ID
#DIMS REF S_KEYS
#DIM  DYNAMIC MODULE_IDX
#DIMS DYNAMIC MAP

MODULE_IDX = C_COND_MAP_GET(CHARA_ID, "設備IDX")
MAP '= @"MAP_{MODULE_IDX}_MODULE_EFFECT"

RETURNF MAP_HAS(MAP, S_KEYS:1) > 0


code:
;-------------------------------------------------
;desc  :口上デイリーのコンフィグ設定
;-------------------------------------------------
@CONFIG_KOJO_DAILY
#DIM 対象
#DIM FIRST_LINE, 2
FIRST_LINE:0 = LINECOUNT

CALL ASK_MULTI("通常の設定", "全口上デイリーオン", "全口上デイリーオフ", "戻る")

SELECTCASE RESULT
	CASE 1
		PRINTFORML 全口上デイリーをオンにしますか？
		CALL ASK_YN()
		SIF RESULT == 1
			RESTART
		CALL SET_ALL_KOJO_DAILY(1)
		RESTART
	CASE 2
		PRINTFORML 全口上デイリーをオフにしますか？
		CALL ASK_YN()
		SIF RESULT == 1
			RESTART
		CALL SET_ALL_KOJO_DAILY(0)
		RESTART
	CASE 3
		RETURN
ENDSELECT

FIRST_LINE:1 = LINECOUNT
$SHOW_LOOP

CALL SINGLE_DRAWLINE
PRINTFORML 各口上のデイリーイベントの発生を制御できます（クリックでONOFF）
CALL SINGLE_DRAWLINE

CALL SELECT_CHARA_LIST("CONFIG_KOJO_DAILY", "NONE", "DEFAULT")
対象 = RESULT

IF RESULT == -1
	CLEARLINE FIRST_LINE:0 - LINECOUNT
	RESTART
ENDIF

CALL CONFIG_KOJO_DAILY_EACH(対象)

CLEARLINE FIRST_LINE:1 - LINECOUNT
GOTO SHOW_LOOP

@SET_ALL_KOJO_DAILY(オンオフ)
#DIM オンオフ
#DIM 配列要素
#DIMS EVENT_NAME_ENG
#DIM  EVENT_DID, 100
#DIM  EVENT_NUM

VARI CHARA_ID
VARI I
配列要素 = デイリー_通常
FOR CHARA_ID, 0, CHARANUM
	IF !IS_COMMON_KOJO_CHARA(CHARA_ID)
		FOR I, 0, VARSIZE("KOJO_DAILY_EVENT_NAME_ENG", 2)
			EVENT_NAME_ENG = %KOJO_DAILY_EVENT_NAME_ENG:(NO:CHARA_ID):配列要素:(I)%
			CALL KOJO_DAILY_SET_DISABLE(CHARA_ID, EVENT_NAME_ENG, !オンオフ)
		NEXT
	ELSE
		EVENT_NUM = DT_SELECT("KOJO_DAILY", @"KOJO_ID = {KOJO_NO(CHARA_ID)}",,EVENT_DID)
		FOR I, 0, EVENT_NUM
			EVENT_NAME_ENG = %DT_CELL_GETS("KOJO_DAILY", EVENT_DID:I, "EVENT_NAME_ENG", 1)%
			CALL KOJO_DAILY_SET_DISABLE(CHARA_ID, EVENT_NAME_ENG, !オンオフ)
		NEXT
	ENDIF
NEXT

;-------------------------------------------------
;desc  :各キャラごとの口上デイリー設定
;param :対象:対象のキャラ番号
;-------------------------------------------------
@CONFIG_KOJO_DAILY_EACH(対象)
#DIM FIRST_LINE
#DIM 対象

FIRST_LINE = LINECOUNT

CALL SINGLE_DRAWLINE
PRINTFORML %ANAME(対象)%のコンフィグ
CALL SINGLE_DRAWLINE

CALL LISTUP_KOJO_DAILY_EACH(対象, 0)

CALL SINGLE_DRAWLINE
PRINTFORML [97] 全てオン
PRINTFORML [98] 全てオフ
PRINTFORML [99] 戻る

INPUT

IF RESULT == 99
	RETURN
ELSEIF RESULT == 97
	CALL SET_ALL_KOJO_DAILY_EACH(対象, 0)
	GOTO SET_END
ELSEIF RESULT == 98
	CALL SET_ALL_KOJO_DAILY_EACH(対象, 1)
	GOTO SET_END
ENDIF

CALL TOGGLE_KOJO_DAILY(対象, RESULT)

$SET_END

CLEARLINE LINECOUNT - FIRST_LINE
RESTART

@SELECT_CHARA_LIST_SHOW_LOGIC_CONFIG_KOJO_DAILY(対象)
#DIM 対象
RETURN IS_UNIQUE_CHARA(対象)

@LISTUP_KOJO_DAILY_EACH(対象, ボタン値)
#DIM 対象
#DIM 対象NO
#DIM EVENT_NUM
#DIM ボタン値
#DIM 配列要素
#DIM オフ
#DIMS EVENT_NAME_JAP
#DIMS EVENT_NAME_ENG
#DIM EVENT_DID, 100

対象NO = KOJO_NO(対象)
配列要素 = デイリー_通常
IF !IS_COMMON_KOJO_CHARA(対象)
	EVENT_NUM = KOJO_DAILY_EVENT_NUM:対象NO:配列要素
	FOR LOCAL, 0, EVENT_NUM
		EVENT_NAME_JAP = %KOJO_DAILY_EVENT_NAME:対象NO:配列要素:LOCAL%
		EVENT_NAME_ENG = %KOJO_DAILY_EVENT_NAME_ENG:対象NO:配列要素:LOCAL%
		オフ = KOJO_DAILY_GET_DISABLE_CONFIG(対象, EVENT_NAME_ENG)
		PRINTFORML [{LOCAL + ボタン値}] - %EVENT_NAME_JAP, 40, LEFT% - \@ オフ ? オフ # オン\@
	NEXT
ELSE
	EVENT_NUM = DT_SELECT("KOJO_DAILY", @"KOJO_ID = {対象NO} AND GENRE = {配列要素}",,EVENT_DID)
	FOR LOCAL, 0, EVENT_NUM
		EVENT_NAME_JAP = %DT_CELL_GETS("KOJO_DAILY", EVENT_DID:LOCAL, "EVENT_NAME_JP", 1)%
		EVENT_NAME_ENG = %DT_CELL_GETS("KOJO_DAILY", EVENT_DID:LOCAL, "EVENT_NAME_ENG", 1)%
		オフ = KOJO_DAILY_GET_DISABLE_CONFIG(対象, EVENT_NAME_ENG)
		PRINTFORML [{LOCAL + ボタン値}] - %EVENT_NAME_JAP, 40, LEFT% - \@ オフ ? オフ # オン\@
	NEXT
ENDIF

@TOGGLE_KOJO_DAILY(対象, 指定NO)
#DIM 対象
#DIM 配列要素
#DIM EVENT_NUM
#DIM オフ
#DIMS EVENT_NAME_ENG
#DIM 対象NO
#DIM 指定NO

対象NO = KOJO_NO(対象)
配列要素 = デイリー_通常
IF !IS_COMMON_KOJO_CHARA(対象)
	EVENT_NUM = KOJO_DAILY_EVENT_NUM:対象NO:配列要素

	SIF !INRANGE(指定NO, 0, EVENT_NUM)
		RETURN 0

	EVENT_NAME_ENG = %KOJO_DAILY_EVENT_NAME_ENG:対象NO:配列要素:指定NO%
ELSE
	DT_SELECT "KOJO_DAILY", @"KOJO_ID = {対象NO} AND GENRE = {配列要素}"
	IF RESULT
		EVENT_NAME_ENG = %DT_CELL_GETS("KOJO_DAILY", RESULT:(1 + 指定NO), "EVENT_NAME_ENG", 1)%
	ENDIF
ENDIF

オフ = KOJO_DAILY_GET_DISABLE_CONFIG(対象, EVENT_NAME_ENG)
CALL KOJO_DAILY_SET_DISABLE(対象, EVENT_NAME_ENG, !オフ)

RETURN 1

@SET_ALL_KOJO_DAILY_EACH(対象, オンオフ)
#DIM 対象
#DIM 配列要素
#DIM EVENT_NUM
#DIMS EVENT_NAME_ENG
#DIM オンオフ
#DIM 対象NO
#DIM EVENT_DID, 100

配列要素 = デイリー_通常
対象NO = KOJO_NO(対象)
VARI I
IF !IS_COMMON_KOJO_CHARA(対象)
	EVENT_NUM = KOJO_DAILY_EVENT_NUM:対象NO:配列要素
	FOR I, 0, EVENT_NUM
		EVENT_NAME_ENG = %KOJO_DAILY_EVENT_NAME_ENG:対象NO:配列要素:I%
		CALL KOJO_DAILY_SET_DISABLE(対象, EVENT_NAME_ENG, オンオフ)
	NEXT
ELSE
	EVENT_NUM = DT_SELECT("KOJO_DAILY", @"KOJO_ID = {対象NO} AND GENRE = {配列要素}",,EVENT_DID)
	FOR I, 0, EVENT_NUM
		EVENT_NAME_ENG = %DT_CELL_GETS("KOJO_DAILY", EVENT_DID:I, "EVENT_NAME_ENG", 1)%
		CALL KOJO_DAILY_SET_DISABLE(対象, EVENT_NAME_ENG, オンオフ)
	NEXT
ENDIF