public override float Filter(NTGBattlePassive.Filter f, object param, float value)
    {
        if (f == NTGBattlePassive.Filter.Hit)
        {
            var p = (NTGBattlePassive.EventHitParam)param;
            if (p.target == owner && (p.behaviour.type == NTGBattleSkillType.Attack || p.behaviour.type == NTGBattleSkillType.HostileSkill || p.behaviour.type == NTGBattleSkillType.HostilePassive))
            {
                if (value < pShieldAmount)
                {
                    owner.shield  -= pShieldAmount;
                    pShieldAmount -= value;
                    owner.shield  += pShieldAmount;

                    return(0);
                }
                else
                {
                    owner.shield -= pShieldAmount;
                    pShieldAmount = 0;
                    owner.shield += pShieldAmount;

                    return(value - pShieldAmount);
                }
            }
        }

        return(value);
    }
 public override float Filter(NTGBattlePassive.Filter f, object param, float value)
 {
     if (f == NTGBattlePassive.Filter.Hit)
     {
         var p = (NTGBattlePassive.EventHitParam)param;
         if (p.behaviour.effectType == EffectType.HpRecover)
         {
             return(value * (1 - this.param[0]));
         }
     }
     return(value);
 }
Пример #3
0
    public override float Filter(NTGBattlePassive.Filter f, object param, float value)
    {
        if (f == NTGBattlePassive.Filter.Hit)
        {
            var p = (NTGBattlePassive.EventHitParam)param;
            if (p.target == owner && (p.behaviour.type == NTGBattleSkillType.Attack || p.behaviour.type == NTGBattleSkillType.HostileSkill || p.behaviour.type == NTGBattleSkillType.HostilePassive) && p.behaviour.effectType != EffectType.RealDamage)
            {
                return(value * (1.0f - (1.0f - owner.hp / owner.hpMax) / 0.03f * 0.01f));
            }
        }

        return(value);
    }
    public override float Filter(NTGBattlePassive.Filter f, object param, float value)
    {
        if (f == NTGBattlePassive.Filter.Hit)
        {
            var p = (NTGBattlePassive.EventHitParam)param;
            if (p.target == owner && p.shooter == this.shooter && owner.hp / owner.hpMax <= this.param[0])
            {
                value = value * (1 + this.param[1]);
            }
            isAdd = true;
        }

        return(value);
    }
 public override float Filter(NTGBattlePassive.Filter f, object param, float value)
 {
     if (f == NTGBattlePassive.Filter.Hit)
     {
         var p = (NTGBattlePassive.EventHitParam)param;
         if (owner.group == 3 && p.target == owner && p.shooter == shooter)
         {
             pDamage = value * (1 + this.param[0]);
             StartCoroutine(doCount());
             return(pDamage);
         }
     }
     return(value);
 }
Пример #6
0
 public override float Filter(NTGBattlePassive.Filter f, object param, float value)
 {
     if (f == NTGBattlePassive.Filter.Hit)
     {
         var p = (NTGBattlePassive.EventHitParam)param;
         if (p.target == owner && p.behaviour.type == NTGBattleSkillType.Attack)
         {
             //Debug.Log(value);
             pDamage = value * (1 - this.param[0]);
             //Debug.Log(pDamage + " " + this.param[0] + " " + value);
             return(pDamage);
         }
     }
     return(value);
 }
 public override float Filter(NTGBattlePassive.Filter f, object param, float value)
 {
     if (f == NTGBattlePassive.Filter.Hit)
     {
         var p = (NTGBattlePassive.EventHitParam)param;
         if (value > owner.hp && p.target == owner && p.shooter.group != owner.group && skillController.inCd <= 0)
         {
             owner.hp = 1;
             StartCoroutine(doCount());
             skillController.StartCD();
             StartCoroutine(doCd());
             return(0);
         }
     }
     return(value);
 }
 public override float Filter(NTGBattlePassive.Filter f, object param, float value)
 {
     if (f == NTGBattlePassive.Filter.Hit)
     {
         var p = (NTGBattlePassive.EventHitParam)param;
         if (p.shooter != owner &&
             (p.behaviour.type == NTGBattleSkillType.Attack || ((p.behaviour.type == NTGBattleSkillType.HostileSkill) && p.behaviour.effectType == NTGBattleSkillBehaviour.EffectType.PhysicDamage)) &&
             p.shooter.alive && !(p.shooter is NTGBattleMobTowerController))
         {
             pDamage = (p.behaviour.baseValue + p.behaviour.pAdd * p.shooter.pAtk) * pValue;
             ShootBase(p.shooter);
             baseValue  = pDamage;
             effectType = EffectType.MagicDamage;
             p.shooter.Hit(owner, this);
             FXHit(p.shooter);
         }
     }
     return(value);
 }
Пример #9
0
 public virtual float Filter(NTGBattlePassive.Filter f, object param, float value)
 {
     return(value);
 }