예제 #1
0
        public MetaProjectile(Projectile projectile)
            : this()
        {
            Projectile = projectile;

            MillisecondsUntilExpiration = (projectile.Data.Range / Projectile.Data.TerminalVelocity)*1000;
            MillisecondsSoFar = 0;
            Position = projectile.StartingPosition;
        }
예제 #2
0
        public void InvokeOnProjectileFired(int projectileID, int ownerID,
            int projectileTypeId, VTankObject.Point projectilePosition)
        {
            Player owner = Game.GetPlayerByID(ownerID);
            if (owner != null)
            {
                double angle = Math.Atan2(owner.Position.y - projectilePosition.y,
                    owner.Position.x - projectilePosition.x);

                Projectile projectile = new Projectile(
                    projectileID, owner.Weapon.ProjectileID, projectilePosition, angle);
                ProjectileFiredEventArgs args = new ProjectileFiredEventArgs(
                    owner, projectile);

                Game.AddProjectile(projectile);

                OnProjectileFired(args);

                args.Dispose();
            }
        }
예제 #3
0
        /// <summary>
        /// Adds a projectile to the game. The projectile is automatically removed from
        /// the game later.
        /// </summary>
        /// <param name="projectile"></param>
        public void AddProjectile(Projectile projectile)
        {
            if (projectiles.ContainsKey(projectile.ID))
            {
                // Do not add duplicates.
                return;
            }

            //projectiles[projectile.ID] = new MetaProjectile(projectile);
            // We currently do not track projectiles.
        }
 public override void Dispose()
 {
     PlayerWhoFired = null;
     Projectile = null;
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="playerWhoFired"></param>
 /// <param name="projectile"></param>
 public ProjectileFiredEventArgs(Player playerWhoFired, Projectile projectile)
 {
     PlayerWhoFired = playerWhoFired;
     Projectile = projectile;
 }