public override void Swing(Damageable target) { if (fireCooldown < 0) { hitting = true; if (target is Unit) { AggroEvent e = new AggroEvent(this, target, true); ((Unit)target).OnAggroRecieved(e); this.OnAggro(e); } SoundManager.GetInstance().PlaySFX(SoundManager.GetInstance().lanceSounds); DamageEvent dmgEvent = new DamageEvent(new MeleeSwing(PathfindingTest.Combat.DamageEvent.DamageType.Melee, baseDamage), target, this); target.OnDamage(dmgEvent); this.fireCooldown = this.rateOfFire; // We already know that this unit is local if (Game1.GetInstance().IsMultiplayerGame()) { Synchronizer.GetInstance().QueueDamageEvent(dmgEvent); } } }
/// <summary> /// Attempt to fire the weapon! /// </summary> public override void Swing() { if (this.fireCooldown < 0) { AggroEvent e = new AggroEvent(this, unitToStalk, true); unitToStalk.OnAggroRecieved(e); this.OnAggro(e); this.projectiles.AddLast(new Arrow(this, unitToStalk)); this.fireCooldown = this.rateOfFire; } }
public override void OnAggroRecieved(AggroEvent e) { if (unitToStalk == null) { unitToStalk = e.from; } if (friendliesProtectingMe.Count() > 0) { for( int i = 0; i < this.friendliesProtectingMe.Count(); i++){ this.friendliesProtectingMe.ElementAt(i).OnAggroRecieved(e); } } //Console.Out.WriteLine("Recieved aggro from something! D="); }
/// <summary> /// Attempt to fire the weapon! /// </summary> public override void Fire() { if (this.fireCooldown < 0) { CheckForEnemiesInRange(); if (this.enemiesInRange.Count == 0) { return; } Unit targetUnit = this.enemiesInRange.ElementAt(0); AggroEvent e = new AggroEvent(this, targetUnit, true); targetUnit.OnAggroRecieved(e); this.OnAggro(e); this.projectiles.AddLast(new Arrow(this, targetUnit)); this.fireCooldown = this.rateOfFire; } }
/// <summary> /// Attempt to swing the weapon! /// </summary> public override void Swing() { AggroEvent e = new AggroEvent(this, unitToStalk, true); unitToStalk.OnAggroRecieved(e); this.OnAggro(e); DamageEvent dmgEvent = new DamageEvent(new MeleeSwing(PathfindingTest.Combat.DamageEvent.DamageType.Melee, baseDamage), unitToStalk, this); unitToStalk.OnDamage(dmgEvent); this.fireCooldown = this.rateOfFire; // We already know that this unit is local if (Game1.GetInstance().IsMultiplayerGame()) { Synchronizer.GetInstance().QueueDamageEvent(dmgEvent); } }
public override void OnAggroRecieved(AggroEvent e) { if (unitToStalk == null) { unitToStalk = e.from; } if (friendliesProtectingMe.Count > 0) { foreach (Unit unit in friendliesProtectingMe) { unit.OnAggroRecieved(e); } } //Console.Out.WriteLine("Recieved aggro from something! D="); }
public override void OnAggro(AggroEvent e) { // Console.Out.WriteLine("Aggroing something, *grins*"); }
public abstract void OnAggroRecieved(AggroEvent e);
public abstract void OnAggro(AggroEvent e);
public override void OnAggroRecieved(AggroEvent e) { //todo flee // Console.Out.WriteLine("Recieved aggro from something! D="); }
/// <summary> /// Attempt to fire the weapon! /// </summary> public override void Swing(Damageable target) { if (this.fireCooldown < 0) { if (target is Unit) { AggroEvent e = new AggroEvent(this, target, true); ((Unit)target).OnAggroRecieved(e); this.OnAggro(e); } this.projectiles.AddLast(new Arrow(this, target)); this.fireCooldown = this.rateOfFire; } }