Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    /// <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);
            }
        }
    }