エフェクトは要素がクッソ多いし、ようわからん紐づけがされているんでそこらへんはもう細かく調べないとわからん状態です

・・・正直7年前のゲームなのにここらへんの情報って微妙にないんですよねぇ・・・
まぁ面白ければいいだろってかんじでいろいろ調べつつ試してみたいなと

*とりあえず基本 [#r4b5608d]
.name :名前つけないと始まりません。任意の名前でOKと思う
.target :ターゲット選択しないと始まりません。これはあとに続くパラメータが決まっているんで、それから選択するんだけど…
"performer"自分をターゲット
"performer_group"自分のグループ全員をターゲット
"performer_group_other"自分以外のグループ全員をターゲット
"target"選択した敵をターゲット
"target_group"選択した敵のグループ全員をターゲット
"target_group_other"選択した敵以外の敵グループ全員をターゲット
"target_enemy_group"例えばヒールで仲間を選択してもこのエフェクトの効果は敵グループに与えるということ
"grobal"わからん。ライト用?なのかな?

例えば、自分以外の全員を巻き込むような(敵も味方も)攻撃を作るぜ!って場合はこんなかんじになると思います
戦闘スキルで.targetの引数を書かない状態で.effect "bakuhatu_teki" "bakuhatu_mikata"と作る
→戦闘スキルを使うと自分に対して選択するようになる
.effect "bakuhatu_teki"の.targetを"target_enemy_group"にする→ターゲットするのは自分なので、自分の敵→モンスター全員に攻撃
.effect "bakuhatu_mikata"の.targetを"performer_group_other"にする→自分以外の味方をターゲットする
いや、わからんけどね。たぶんこんなかんじじゃない?

.chance :エフェクトの発動率。%で指定します
.on_hit :ターゲットに当たった場合に効果が適用されるかどうか。TrueかFalseで指定します
.on_miss :外れた時に適用されるかどうか。上記に同じ
.queue :これ、スタンの時に必要だった要素なんですが、スキル内にいろんなエフェクトがあった場合に、他のエフェクトの後にこれを適用するかどうかっていうものらしいです。
つまり、エフェクトが2つあったとして(AとBとする)Bでstunを自分に発動するような効果をつけた場合、Aの後にスタンさせないとAとBが適用された瞬間Aが発動しなくなる、ってことかと。いや知らんけど

*よくわからん要素 [#ec5f682a]
.curio_result_type :これよくわからないです。正直別になくても問題ない気もするんだけど…一応英語では
Should an effect be used by a curio, this line followed by either "positive" or "negative" will determine which visual effect the player will see.
となっているんですが、訳してもようわからんのですよね。キュリオを設定する時に関係するかもしれません

*DoT関係 [#k10b5f7a]
.dotBleed :出血 .dotPoison :毒 .dotStress :ストレス .dotHpHeal :HP回復
これらは.durationで何ターン持続するのか指定する必要があります

*即時効果的なやつ [#h92d66ab]
.stress :ストレスを増加 .healstress :ストレスの回復 .heal :回復 .heal_percent :HPを%で回復
.cure :出血、毒の回復 .cure_bleed :出血の回復 .cure_poison :毒の回復 .clearDotStress :Dotストレスの回復
.tag :マークの付与 .untag :マークの解除 .stun :気絶 .unstun :気絶の回復
.riposte :反撃追加。duration必要かも .clear_riposte :反撃の解除 .guard :ガードする。duration必要かも?
.clearguarding :ガード行為のほうの解除かな? .clearguarded :ガードされているほうの解除かな?
.torch_decrease :光量を減らす .torch_increase :光量を増やす
.stealth ステルス状態にする。duration必要かも .unstealth ステルス状態を消す .clear_debuff デバフの解除
.push :突き放す .pull :引き寄せる
.kill_enemy_types :指定したモンスタータイプの敵を一撃で殺す。 corpseを指定すると死体を消す



*条件分岐 [#bf751ef3]
.keyStatus :ターゲットに特定の効果が付属している時に発動というようにできる
poisoned :毒の時 bleeding :出血の時 stunned:気絶の時 dazed:呆然としている時?わからん
virtued :美徳発動時かな? afflicted :たぶん悪徳発動時? transformed:変身してるときかな?

.monsterType :モンスターのタイプによって発動するかどうか
unholy :アンデッド man :人間 beast :獣 eldritch :わからん、入江の敵?それとも異形?
vampire :CCかな? husk :こっちが入江関係かな?わからん

*BUFF関係 [#r8036f4c]

.combat_stat_buff :これないとバフ扱いにならんのかも
.damage_low_multiply :最低ダメージに対するバフ .damage_high_multiply :最高ダメージに対するバフ
.max_hp_multiply :最大HPを上昇させる .attack_rating_add :ACCを増加 .crit_chance_add:クリティカル率増加
.defense_rating_add :DEF増加 .protection_rating_add :prot増加 .speed_rating_add :spd増加
.buff_ids .buffとして作ったIDを呼び出すための要素



まだいっぱいあるんでとりあえず羅列
.can_crit_heal	true or false
.riposte_on_miss_chance_add
.riposte_on_hit_chance_add
.riposte_on_miss_chance_multiply
.riposte_on_hit_chance_multiply	value
.riposte_effect	effect ID
.item	1 or 0
.curio	1 or 0
.dotShuffle	1 or 0
.shuffletarget	
.shuffleparty	
.instant_shuffle	
.buff_amount	value
.buff_type	buff type
.buff_sub_type	buff sub type
.buff_duration_type	buff duration type
.steal_buff_stat_type	buff stat type
hp_dot_bleed
hp_dot_poison
hp_dot_heal
stress_dot
shuffle_dot
.steal_buff_source_type	check buff sources
.swap_source_and_target	true or false
.kill	1 or 0
.immobilize	1 or 0
.unimmobilize	1 or 0
.control	value
.uncontrol	1 or 0
.capture	1 or 0
.capture_remove_from_party	1 or 0
.disease	any
disease ID
.remove_vampire	1 or 0
.summon_monsters	monster IDs
.summon_chances	value
.summon_ranks	value
.summon_limits	value
.summon_count	value
.summon_erase_data_on_roll	1 or 0
.summon_can_spawn_loot	1 or 0
.summon_rank_is_previous_monster_class	1 or 0
.summon_does_roll_initiatives	1 or 0
.crit_doesnt_apply_to_roll	true or false
.virtue_blockable_chance	value
.affliction_blockable_chance	value
.set_mode	mode ID
.can_apply_on_death	true or false
.apply_once	true or false
.rank_target	ranks
.clear_rank_target	ranks
.performer_rank_target	1 or 0
.apply_with_result	true or false
.initiative_change	value
.source_heal_type	check Heal sources
.skill_instant	true or false
.actor_dot	actor dot ID
.health_damage	value
.bark	bark string entry
.set_monster_class_id	monster ID
.set_monster_class_ids	monster IDs
.set_monster_class_chances	values
.set_monster_class_reset_hp	1 or 0
.set_monster_class_reset_buffs	true or false
.set_monster_class_carry_over_hp_min_percent	value
.set_monster_class_clear_initative	true or false
.set_monster_class_clear_monster_brain_cooldowns	true or false
.set_monster_class_reset_scale	true or false
.has_description	true or false
.health_damage_blocks	value
.dotSource	check Buff Sources
.buff_source_type	check Buff Sources
.use_item_id	item ID
.use_item_type	item TYPE
.skips_endless_wave_curio	true or false
.spawn_target_actor_base_class_id	monster or hero class	changes target if it's on a spawn effect
.clearvirtue	1 or 0 probably
.riposte_validate	true or false
.buff_is_clear_debuff_valid	true of false
.refreshes_skill_uses	true of false
.cure_disease	1 or 0
.individual_target_actor_rolls	true or false
.damage_type	check Damage types
.damage_source_type	check Damage sources
.damage_source_data	depends on source_type
e.g. monster ID for monster
or trinket ID for trinket
.daze	1 or 0	Might not work outside of Circus
.undaze






こっからはだいぶん昔に書いたメモ

effectを作る時の要素
ある程度まとめるとわかりやすいかも?
info.darkestのcombat_skillにて基本となる性能を表記する
同じようなエフェクトを、.effectにてまとめて別参照にする




|.name|>|エフェクトの名前。スキルで設定した名前を"NAME"で付ける|
|.target|>|エフェクトのターゲットの設定。ターゲットの種類を"NAME"で付ける|
|~|performer|対象がエフェクトを使用するヒーロ/敵になる|
|~|target|対象がスキルでターゲットされたものになる|
|~|performer_group|対象がスキルを使用したほうの全グループになる|
|~|target_group|対象がスキルを使用されたターゲットのいるグループになる|
|~|performer_group_other|対象が使用したヒーロー/敵を抜かした使用者のグループになる|
|~|target_group_other|対象がターゲットされたヒーロー/敵を抜かしたターゲットのグループになる|
|~|global|ライトの関係のみ?|
|.curio_result_type|>|エフェクト発動におけるグラフィック演出の有無?弱体発動したときに表示するかどうかとかそんなかんじ?|
|~|positive|発動したときに表示する?|
|~|negative|発動したときに表示しない?|
|~|neutral|謎|
|~|none|発動しない?|
|.chance|>|エフェクトの発動確率。100%だと基本値が100%ということ|
|.on_hit|>|スキルが当たった時に発動するかどうか。trueかfalseで設定|
|.on_miss|>|スキルが外れた時に発動するかどうか。trueかfalseで設定|
|.queue|>|自己バフの時に成功判定を無視する?trueかfalseで設定|
|.dotBleed|>|継続出血ダメージの量。3だと3ダメージ。ターン設定は別なので注意|
|.dotPoison|>|継続毒ダメージの量。3だと3ダメージ。ターン設定は別なので注意|
|.dotStress|>|継続ストレスダメージの量。3だと3ストレスダメージ。ターン設定は別なので注意|
|.stress|>|ストレスダメージの量。3だと3ストレスダメージ|
|.healstress|>|ストレス回復の量。3だと3ストレス回復|
|.combat_stat_buff|>|スキルをバフ扱いにするかどうか。0か1で設定。これがないと作用しないeffectがある|
|.damage_low_multiply|>|エフェクトを使用することによって上昇または減少するDMGの最小量。%で設定|
|.damage_high_multiply|>|エフェクトを使用することによって上昇または減少するDMGの最大量。%で設定|
|.max_jp_multiply|>|エフェクトを使用することによって上昇または減少する最大HP。%で設定|
|.attack_rating_add|>|エフェクトを使用することによって上昇または減少するACCの量。%で設定|
|.crit_chance_add|>|エフェクトを使用することによって上昇または減少するクリティカル率の量。%で設定|
|.defence_rating_add|>|エフェクトを使用することによって上昇または減少するDODGEの量。%で設定|
|.protection_rating_add|>|エフェクトを使用することによって上昇または減少するPROTの量。%で設定|
|.speed_rating_add|>|エフェクトを使用することによって上昇または減少するSPDの量。これは1や3等の数値で設定|
|.buff_ids|>|参照するバフのID。|
|.duration|>|継続時間?|
|
|
|
|
|
|
|





|.apply_once|>|マルチターゲットスキル用であり、1回のみ発動したい場合はTrue、複数回発動したい場合はFalseを設定?|


queue、apply_once、tag、cureのtopic
http://www.archives.darkestdungeon.com/topic/guide-to-effects/
http://www.archives.darkestdungeon.com/topic/queue-and-apply_once/

例文
没落者のリベンジ(強化無し)
      combat_skill: .id "revenge" .level 0 .type "melee" .atk 0% .dmg 0% .crit 0% .per_battle_limit 1 .launch 1234 .target  .is_crit_valid True  .effect "Leper Strength 1" "Leper Vulnerability"

まず、リベンジのIDは"revenge"であり(.id "revenge")、強化無し(.level 0)
スキルのタイプは近距離攻撃であり(.type "melee")命中率は0%、ダメージは0%、クリティカルは0%であるので、補正されない限り命中率が0%、ダメージとクリティカルは装備品に依存する(.atk 0% .dmg 0% .crit 0%)
1戦闘につき1回しか使用できず(.per_battle_limit 1)没落者がどこの位置にいても発動可能(.launch 1234)
ターゲットの指定はない(.target)
クリティカル判定を持っており(.is_crit_valid true)エフェクトとしてLeper Strength 1とLeper Vulnerabilityを持つ(.effect "Leper Strength 1" "Leper Vulnerability")

次にeffectsフォルダにおけるLeper Strength 1とLeper Vulnerabirity

Leper Strengthは以下
      effect: .name "Leper Strength 1" .target "performer" .chance 100% .curio_result_type "positive" .duration 1 .buff_duration_type combat_end .combat_stat_buff 1 .attack_rating_add 10% .damage_low_multiply 25% .damage_high_multiply 25% .crit_chance_add 7%	.on_hit true .on_miss true .queue true

このエフェクト名はLeper Strength 1であり(.name "Leper Strength 1")ターゲットは使用者となる(.target "performer")100%の発動率を持ち(change 100%)キュリオが発動したときプレイヤーは確認できる?(.curio_result_type "positive")継続ターン数は1ターンであるが(.duration 1)発動すると戦闘終了まで継続する(.buff_duration_type combat_end)
これはバフ扱いであり(.combat_stat_buff 1)ACCを10上昇させ(.attack_rating_add 10%)使用者のDMGを25%上昇させ(.damage_low_multiply 25% .damage_high_multiply 25%)クリティカル率を7%上昇させる(.crit_chance_add 7%)
スキルが命中してもミスしても発動する(.on_hit_true .on_miss true)
自己バフ扱いにする?(.cueue true)

Leper Vulnerabirityは以下
      effect: .name "Leper Vulnerability" .target "performer" .curio_result_type "negative" .chance 100% .duration 1 .buff_duration_type combat_end .buff_ids "LeperDEFVuln" "LeperDMGVuln" .apply_once true .on_hit true .on_miss true .queue true

このエフェクト名はLeper Vulnerabilityであり、ターゲットは使用者となる。キュリオが発動しても見えない?100%の発動率を持ち、継続ターン数は1であるが、戦闘終了まで継続する。バフのIDであるLeperDEFVulnとLeperDMGVulnを参照し(.buff_ids "LeperDEFVuln" "LeperDMGVuln")1回しか発動せず(.apply_once true)命中しても外れても発動する。自己バフ扱いにする?

ここで、LeperDEFVulnとLeperDMGVulnが新たに出てきたので、shared/buffsの仲にあるbase.buffs.jsonを見る。
LeperDEFVulnは以下
      {
         "id" : "LeperDEFVuln",
         "stat_type" : "combat_stat_add",
         "stat_sub_type" : "defense_rating",
         "amount" : -0.1,
         "remove_if_not_active" : false,
         "rule_type" : "always",
         "is_false_rule" : false,
         "rule_data" : {
            "float" : 0,
            "string" : ""
         },
         "is_clear_debuff_valid": false
      },
これはLeperDEFVulnという名前であり("id" : "LeperDEFVuln")戦闘時にステータスの変化を与え("stat_type" : "combat_stat_add")DODGEの値に("stat_sub_type" : "defence_rating")-10の値を与える("amount" : -0.1)効果が消えることで取り除くことはできず?("remove_if_not_active" : false)常に影響を与える?("rule_type" : "always")指定したルールが失敗しても消えることはない?(is_false_rule" : false)ルールは、特にないものとする?("rule_data" : "float" :0 "string" : "")デバフ解除スキルで消去することはできない(is_clear_debuff_valid":false)

次にLeperDMGVulmを見てみる

      {
         "id" : "LeperDMGVuln",
         "stat_type" : "damage_received_percent",
         "stat_sub_type" : "",
         "amount" : 0.25,
         "remove_if_not_active" : false,
         "rule_type" : "always",
         "is_false_rule" : false,
         "rule_data" : {
            "float" : 0,
            "string" : ""
         },
         "is_clear_debuff_valid": false
      },
これはLeperDMGVulnという名前であり、受けるダメージを+25%する("stat_type~0.25)効果が消えることで取り除くことはできず?常に影響を与え?指定されたルールが失敗しても消えることはない?ルールは特にないものとする?デバフ解除スキルで消去することはできない

とりあえずテスト的にスキルを作ってみる
目標:相手にダメージを与える(100&)。相手を毒にする(1damage 3turn)。自分を出血にする。(1damage 3turn)
攻撃成功時、毒を与える。攻撃が失敗しても出血を受ける。相手が出血の場合、ダメージ上昇(50%)
combat_skill:.id "test" .level 0 .type "ranged" .atk 90% .dmg 0% .crit 3% .launch 321 .target ~12 .is_crit_valid True .effect "Weak Blight 1" "Self Bleed 1" "Bleed Dmg Up 1" .generation_guaranteed True
Weak Blightはbase.effect.darkestに入っているエフェクト。

effect: .name "Self Bleed 1" .target "performer" .chance 100% .dotBleed 1 .duration 3 .on_hit true .on_miss true
effect: .name "Bleed Dmg Up 1" .target "performer" .chanve 100% .curio_result_type "positive" .keyStatus "bleeding" .combat_stat_buff 1 .damage_low_multiply 50% .damage_high_multiply 50% .on_hit true .on_miss false