示例#1
0
 public Projectile(int ID, int projectileTypeId,
                   VTankObject.Point position, double angle)
 {
     this.ID          = ID;
     ProjectileTypeID = projectileTypeId;
     this.Data        = WeaponLoader.GetProjectile(ProjectileTypeID);
     StartingPosition = position;
     Angle            = angle;
 }
示例#2
0
 public CreateProjectileEvent(VTankBot _game, int projectileTypeId,
                              VTankObject.Point point, int ownerId,
                              int projectileId)
     : base(_game)
 {
     this.type         = WeaponLoader.GetProjectile(projectileTypeId);
     this.point        = point;
     this.ownerId      = ownerId;
     this.projectileId = projectileId;
 }
示例#3
0
        public override void DoAction()
        {
            PlayerTank owner;

            if (!Game.Players.TryGetValue(ownerId, out owner))
            {
                // Player not found.
                Game.Players.RefreshPlayerList();
                return;
            }

            float angle = (float)Math.Atan2(owner.Position.Y - point.y, owner.Position.X - point.x);

            if (Game.LocalPlayer != owner)
            {
                new TurretSpinningEvent(Game, ownerId, angle, VTankObject.Direction.NONE).DoAction();
            }

            this.type = WeaponLoader.GetProjectile(projectileTypeId);

            if (this.type.Name == "Laser Beam")
            {
                Vector3 startPosition = owner.Turret.MountPosition("Emitter0");
                Vector3 endPosition   = new Vector3((float)point.x, (float)point.y, startPosition.Z);
                Color   color         = Toolkit.GetColor(owner.Attributes.color);
                Game.Lazers.AddLazer(startPosition, endPosition, color);
                ProjectileManager.PlayProjectileSound(type, owner, angle);

                /*
                 * MobileEmitter _emitter = new MobileEmitter(15000, new ParticleEmitter("LaserBeam"), startPosition, endPosition);
                 * _emitter.RenderID = ServiceManager.Scene.Add(_emitter, 3);Game.Projectiles[projectileId] = ProjectileManager.CreateProjectileObject(
                 * type, point, angle, owner);
                 * Projectile proj = Game.Projectiles[projectileId];
                 *
                 * ParticleEmitter p = new ParticleEmitter(type.ParticleEffect, proj.Position);
                 * proj.ParticleEmitter = p; */
            }
            else
            {
                Game.Projectiles[projectileId] = ProjectileManager.CreateProjectileObject(
                    type, point, angle, owner);
            }
        }