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; }
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; }
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); } }