コード例 #1
0
ファイル: Horseman.cs プロジェクト: Wotuu/RTS_XNA_v2
        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);
                }
            }
        }
コード例 #2
0
ファイル: Bowman.cs プロジェクト: R3coil/RTS_XNA_v2
 /// <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;
     }
 }
コード例 #3
0
ファイル: Horseman.cs プロジェクト: Wotuu/RTS_XNA_v2
 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=");
 }
コード例 #4
0
ファイル: Bowman.cs プロジェクト: forced1988/RTS_XNA
 /// <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;
     }
 }
コード例 #5
0
ファイル: Swordman.cs プロジェクト: R3coil/RTS_XNA_v2
        /// <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);
            }
        }
コード例 #6
0
ファイル: Swordman.cs プロジェクト: R3coil/RTS_XNA_v2
 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=");
 }
コード例 #7
0
ファイル: Swordman.cs プロジェクト: R3coil/RTS_XNA_v2
 public override void OnAggro(AggroEvent e)
 {
     // Console.Out.WriteLine("Aggroing something, *grins*");
 }
コード例 #8
0
ファイル: Unit.cs プロジェクト: forced1988/RTS_XNA
 public abstract void OnAggroRecieved(AggroEvent e);
コード例 #9
0
ファイル: Unit.cs プロジェクト: forced1988/RTS_XNA
 public abstract void OnAggro(AggroEvent e);
コード例 #10
0
ファイル: Engineer.cs プロジェクト: Wotuu/RTS_XNA_v2
 public override void OnAggroRecieved(AggroEvent e)
 {
     //todo flee
     // Console.Out.WriteLine("Recieved aggro from something! D=");
 }
コード例 #11
0
ファイル: Bowman.cs プロジェクト: Cur10s1ty/RTS_XNA_v2
 /// <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;
     }
 }