chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

DefenceMulSetで1HIT目に防御補正を掛ける方法

ウチのキャラで実装している方法です。-2だけでできます。

;------------------------------------------------------------------------------;
; GetHitVar(hitcount)
;------------------------------------------------------------------------------;
[State -2:          Hit Count Reset]
type           = VarSet
triggerall     = !IsHelper
trigger1       = MoveType != H
trigger2       = StateNo = [120, 159]
v              = 33
value          = 0
ignorehitpause = 1

[State -2:          Hit Count]
type           = VarSet
triggerall     = !IsHelper
trigger1       = MoveType = H
trigger1       = StateNo != [120, 159]
v              = 33
value          = GetHitVar(HitCount)
ignorehitpause = 1

;------------------------------------------------------------------------------;
; 一撃目補正
;
; fvar(6) : モードによる防御 (被ダメージ) 補正値。1より大きいとダメージが増える。
; fvar(7) : ライフ残量 (根性値) による補正。
;------------------------------------------------------------------------------;
[State -2:          Calc First Get Hit Damage]
type           = LifeAdd
triggerall     = Alive
triggerall     = var(33) = 1
triggerall     = var(31) := GetHitVar(Damage)                              ; ダメージを取得
trigger1       = var(30) := Floor(var(31) * (1.0 - (fvar(6) * fvar(7))))   ; 補正後ダメージとの差を取得
value          = var(30)
absolute       = 1
persistent     = 0
ignorehitpause = 1

HitCountを変数に入れているのは、GetHitVarトリガーが最後の食らい状態 (MoveType = H) の値を返してくるから。