예제 #1
0
 public override bool Update(float dt)
 {
     if (Movement.Update(dt))
     {
         //普攻伤害
         if (damage > 0)
         {
             if (isAttack)
             {
                 Target.removeExpectedDamage(damage);
             }
             Target.LostHP(damage, Shooter, damageType, isAttack);
         }
         //给目标上buff
         if (buffs != null)
         {
             for (int i = 0; i < buffs.Length; ++i)
             {
                 Target.AddBuff(buffs[i], Shooter);
             }
         }
         //AOE
         if (aoeRadius > 0)
         {
             AoeRegion region = new CircleRegion(BattleInterface.Instance.world, position.x, position.y, aoeRadius);
             AoeField  aoe    = new AoeField(Shooter, region, duration, interval, emitters);
             BattleInterface.Instance.AddAoeField(aoe);
         }
         return(true);
     }
     return(false);
 }
예제 #2
0
 internal BehaviorResult ApproachToAttackTarget()
 {
     if (mTrackMovement.Update(BattleInterface.Instance.deltaTime))
     {
         return(BehaviorResult.success);
     }
     else
     {
         return(BehaviorResult.running);
     }
 }