public override bool RunScript(RandEventArg argument) { AtkOthersEventArg atkOthersArg = argument as AtkOthersEventArg; ErrorHandler.Parse( SkillDetails.AddSkillEffectByResource(OwnerAttribute, atkOthersArg.Target, skillEffectID), "failed to run script SS_SkillEffectPlacer" ); return(true); }
public override bool RunScript(RandEventArg argument) { AtkOthersEventArg atkEventArg = argument as AtkOthersEventArg; int hpRegenerated = (int)(atkEventArg.FireDamage * percent); if (hpRegenerated != 0) { mOwner.AddDamage(new DamageInfo() { Value = hpRegenerated }, OwnerAttribute); } return(true); }
/// <summary> /// 检查并应用攻击者的随机事件. /// </summary> /// <param name="finalDamage">攻击者对目标造成的伤害值(正数)</param> private void applyAttackerRandEvent(int finalDamage, bool criticalStrike) { BattleUnit attacker = mAttackerAttr.CheckedAttackerObject(); // 如果攻击者, 通过随机事件对对方造成伤害, 那么不触发攻击者的随机事件. if (attacker != null && !mAttackerAttr.StructMadeByRandEvent) { AtkOthersEventArg argument = new AtkOthersEventArg(mOwner, finalDamage); attacker.ApplyRandEvent(mOwner, RandEventTriggerType.OnAtkOthers, argument); if (criticalStrike) { OnCriticalStrikeOthersEventArg criticalStrikeOthersEventArg = new OnCriticalStrikeOthersEventArg(); attacker.ApplyRandEvent(mOwner, RandEventTriggerType.OnCriticalStrikeOthers, criticalStrikeOthersEventArg); } } }