public override Activity Tick(Actor self) { if (IsCanceled || !attack.CanAttack(self, target)) { return(NextActivity); } if (attack.charges == 0) { return(this); } self.Trait <RenderBuildingCharge>().PlayCharge(self); return(Util.SequenceActivities(new Wait(attack.info.InitialChargeDelay), new ChargeFire(attack, target), this)); }
public override Activity Tick(Actor self) { if (IsCanceled || !attack.CanAttack(self, target)) { return(NextActivity); } if (attack.charges == 0) { return(NextActivity); } attack.DoAttack(self, target); return(Util.SequenceActivities(new Wait(attack.info.ChargeDelay), this)); }
public override Activity Tick(Actor self) { if (IsCanceled || !attack.CanAttack(self, target)) { return(NextActivity); } if (attack.charges == 0) { return(this); } foreach (var notify in self.TraitsImplementing <INotifyCharging>()) { notify.Charging(self, target); } if (!string.IsNullOrEmpty(attack.info.ChargeAudio)) { Sound.Play(attack.info.ChargeAudio, self.CenterPosition); } return(Util.SequenceActivities(new Wait(attack.info.InitialChargeDelay), new ChargeFire(attack, target), this)); }