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); }
internal BehaviorResult ApproachToAttackTarget() { if (mTrackMovement.Update(BattleInterface.Instance.deltaTime)) { return(BehaviorResult.success); } else { return(BehaviorResult.running); } }