エフェクトは要素がクッソ多いし、ようわからん紐づけがされているんでそこらへんはもう細かく調べないとわからん状態です
・・・正直7年前のゲームなのにここらへんの情報って微妙にないんですよねぇ・・・
まぁ面白ければいいだろってかんじでいろいろ調べつつ試してみたいなと
とりあえず基本
.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が発動しなくなる、ってことかと。いや知らんけど
よくわからん要素
.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関係
.dotBleed :出血 .dotPoison :毒 .dotStress :ストレス .dotHpHeal :HP回復
これらは.durationで何ターン持続するのか指定する必要があります
即時効果的なやつ
.stress :ストレスを増加 .healstress :ストレスの回復 .heal :回復 .heal_percent :HPを%で回復
.cure :出血、毒の回復 .cure_bleed :出血の回復 .cure_poison :毒の回復 .clearDotStress
otストレスの回復
.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を指定すると死体を消す
条件分岐
.keyStatus :ターゲットに特定の効果が付属している時に発動というようにできる
poisoned :毒の時 bleeding :出血の時 stunned:気絶の時 dazed:呆然としている時?わからん
virtued :美徳発動時かな? afflicted :たぶん悪徳発動時? transformed:変身してるときかな?
.monsterType :モンスターのタイプによって発動するかどうか
unholy :アンデッド man :人間 beast :獣 eldritch :わからん、入江の敵?それとも異形?
vampire :CCかな? husk :こっちが入江関係かな?わからん
BUFF関係
.combat_stat_buff :これないとバフ扱いにならんのかも
.damage_low_multiply :最低ダメージに対するバフ .damage_high_multiply :最高ダメージに対するバフ
.max_hp_multiply :最大HPを上昇させる .attack_rating_add :ACCを増加 .crit_chance_add:クリティカル率増加
.defense_rating_add
EF増加 .protection_rating_add
rot増加 .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