private void ExecDivineCircle(Character player, Character target, BuffField target_field_obj) { if (target_field_obj == null) { Debug.Log("target_field_obj is null..."); return; } target_field_obj.AddBuff(prefab_Buff, Fix.DIVINE_CIRCLE, SecondaryLogic.DivineCircle_Turn(player), SecondaryLogic.DivineCircle(player), 0); StartAnimation(target_field_obj.gameObject, Fix.DIVINE_CIRCLE, Fix.COLOR_NORMAL); }
/// <summary> /// 基本ロジックを内包した物理攻撃実行コマンド /// </summary> private bool ExecNormalAttack(Character player, Character target, double magnify, CriticalType critical) { Debug.Log(MethodBase.GetCurrentMethod()); // ターゲットが既に死んでいる場合 if (target.Dead) { StartAnimation(target.objGroup.gameObject, Fix.BATTLE_MISS, Fix.COLOR_NORMAL); this.NowAnimationMode = true; return(false); } // ターゲットに対して命中していない場合 if (player.IsDizzy) { if (AP.Math.RandomInteger(100) > (int)player.IsDizzy.EffectValue) { StartAnimation(target.objGroup.gameObject, Fix.BATTLE_DIZZY_MISS, Fix.COLOR_NORMAL); this.NowAnimationMode = true; return(false); } } // 攻撃コマンドのダメージを算出 double damageValue = PhysicalDamageLogic(player, target, magnify, Fix.DamageSource.Physical, critical); // ディバイン・フィールドによる効果 BuffField panelField = GetPanelFieldFromPlayer(target); if (panelField != null) { BuffImage buffImage = PreCheckFieldEffect(panelField.gameObject, Fix.DIVINE_CIRCLE); if (buffImage != null) { Debug.Log("DivineShiled: " + player.FullName + " -> " + damageValue.ToString("F2") + " " + buffImage.EffectValue.ToString("F2")); buffImage.EffectValue -= damageValue; StartAnimationGroupPanel(buffImage.gameObject, Fix.BATTLE_DIVINE + "\r\n " + (int)(buffImage.EffectValue), Fix.COLOR_NORMAL); if (buffImage.EffectValue <= 0) { buffImage.RemoveBuff(); } return(false); // ディバイン・フィールドで吸収された場合はヒットしたことにならない。 } } // ダメージ適用 ApplyDamage(player, target, damageValue); // 追加効果 if (player.IsFlameBlade && player.Dead == false) { double addDamageValue = MagicDamageLogic(player, target, SecondaryLogic.MagicAttack(player), Fix.DamageSource.Fire, critical); ApplyDamage(player, target, addDamageValue); } BuffImage stanceOfTheBlade = player.IsStanceOfTheBlade; if (stanceOfTheBlade != null) { stanceOfTheBlade.Cumulative++; } BuffImage stanceOfTheGuard = target.IsStanceOfTheGuard; if (target.IsStanceOfTheGuard && target.IsDefense && target.Dead == false) { stanceOfTheGuard.Cumulative++; } return(true); }