public Interceptor(long _uniqueId, Vector3 _position, Quaternion _rotation, Team _team, SpawnShip _home) : base(_uniqueId, _position, _rotation, _team, _home) { maxZSpeed = 10000.0f; minZSpeed = 300.0f; normalZSpeed = 500.0f; ZSpeed = NormalZSpeed; MAX_HEALTH = 3; Health = MaxHealth; MAX_SHIELDS = 1; Shields = MaxShields; SHIELD_RECOVER_RATE = 0.2f; rollAccel = 10.0f; rollBreak = 5.0f; rollCap = 2.5f; pitchAccel = 7.5f; pitchBreak = 5.0f; pitchCap = 1.5f; yawAccel = 7.5f; yawBreak = 5.0f; yawCap = 1.5f; baseHeat = 0.55f; heat = 0; overheatHeat = 1.5f; heatingRate = 1.5f; coolingRate = 0.25f; heatDamageRate = 0.1f; heatWarningThreshold = 1.2f; heatDamageThreshold = 1.4f; accelerationRate = 25000.0f; FIRE_RATE = 0.1f; fireTimer = FireRate; SPECIAL_RATE = 0.5f; specialTimer = SpecialRate; PRIMARY_RANGE = 100000000f; CollisionBase = new CollisionSphere(_position, 10); CollisionBase.Parent = this; CollisionBase.addCollisionEvent(collisionEvent); if (ShipTeam == Team.Esxolus) { ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = EsxolusShipGroup; } else { ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = HalkShipGroup; } }
public EsxolusBomber(long _uniqueId, Vector3 _position, Quaternion _rotation, SpawnShip _home) : base(_uniqueId, _position, _rotation, Team.Esxolus, _home) { laserOffsets = new Vector3[] { new Vector3(-2.429f, -9.134f, 67.641f), new Vector3(2.429f, -9.134f, 67.641f) }; MAX_SECONDARY_AMMO = 15; SecondaryAmmo = MaxSecondaryAmmo; SECONDARY_RANGE = 8000000f; leftSecondary = true; secondaryAttackPositions = new Vector3[] { new Vector3(12.325f, -2.762f, 4.149f), new Vector3(-12.325f, -2.762f, 4.149f), }; secondaryAttackForward = new Quaternion[] { Quaternion.CreateFromAxisAngle(Vector3.Forward, 0f) }; trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(3.919f, 0.0f, -14.581f))); trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-3.919f, 0.0f, -14.581f))); setCloseModelByString("Models/Ships/esxolus_bomber_model"); setFarModelByString("Models/Ships/esxolus_bomber_LP_model"); }
public HalkAssaultFighter(long _uniqueId, Vector3 _position, Quaternion _rotation, SpawnShip _home) : base(_uniqueId, _position, _rotation, Team.Halk, _home) { laserOffsets = new Vector3[] { new Vector3(-3.382f, -2.532f, 59.654f), new Vector3(3.382f, -2.532f, 59.654f) }; SECONDARY_RANGE = 8000000f; MAX_SECONDARY_AMMO = 9; SecondaryAmmo = MaxSecondaryAmmo; secondaryAttackPositions = new Vector3[] { new Vector3(0, -4.275f, 11.3f), }; secondaryAttackForward = new Quaternion[] { Quaternion.CreateFromAxisAngle(Vector3.Forward, 0f) }; trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-3.004f, 1.722f, -22.46f))); // -12.46f trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-0.475f, 1.413f, -22.46f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-0.992f, 3.3987f, -22.46f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(1.229f, 4.355f, -22.46f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(2.429f, 2.204f, -22.46f))); setCloseModelByString("Models/Ships/Halk_Assault"); setFarModelByString("Models/Ships/Halk_Assault"); }
public EsxolusAssaultFighter(long _uniqueId, Vector3 _position, Quaternion _rotation, SpawnShip _home) : base(_uniqueId, _position, _rotation, Team.Esxolus, _home) { laserOffsets = new Vector3[] { new Vector3(-0.707f, 2.037f, 44.484f), //54.484f), new Vector3(0.707f, 2.037f, 44.484f), //54.484f), new Vector3(-2.307f, -1.674f, 30.986f), //40.986f), new Vector3(2.307f, -1.674f, 30.986f), //40.986f) }; SECONDARY_RANGE = 6000000f; MAX_SECONDARY_AMMO = 9; SecondaryAmmo = MaxSecondaryAmmo; SPECIAL_RATE = 1.5f; firingSecondaries = false; randomUnitVectors = new Vector3[SECONDARY_LOCATION_COUNT]; for (int i = 0; i < SECONDARY_LOCATION_COUNT; i++) { randomUnitVectors[i] = getRandomUnitVector(); } #region Missle Positions secondaryAttackPositions = new Vector3[] { // Left Top new Vector3(4.706f, 1.16f, 36.627f), // Right Top new Vector3(-4.706f, 1.16f, 36.627f), // Left Mid new Vector3(4.706f, -0.175f, 36.113f), // Right Mid new Vector3(-4.706f, -0.175f, 36.113f), // Left Bottom new Vector3(4.706f, -1.493f, 35.432f), // Right Bottom new Vector3(-4.706f, -1.493f, 35.432f), }; #endregion secondaryAttackForward = new Quaternion[] { Quaternion.CreateFromAxisAngle(Vector3.Forward, 0f) }; /* Currently using HALK Angles; still waiting on the esxolus */ secondaryAttackForward = new Quaternion[]{ Quaternion.CreateFromAxisAngle(Vector3.Forward, 0f) }; trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(4.702f, 0.0f, -11.063f))); trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-4.702f, 0.0f, -11.063f))); setCloseModelByString("Models/Ships/esxolus_assault_fighter_model"); setFarModelByString("Models/Ships/esxolus_assault_fighter_LP_model"); }
public static Bomber createNewBomber(Vector3 position, Quaternion rotation, Ship.Team _team, SpawnShip _home) { Bomber rFighter = null; switch (_team) { case Ship.Team.Esxolus: rFighter = new EsxolusBomber(seed += seedIncrement, position, rotation, _home); break; case Ship.Team.Halk: rFighter = new HalkBomber(seed += seedIncrement, position, rotation, _home); break; } return ((Bomber)rFighter); }
public SpawnShip removeSpawnShip(SpawnShip ship) { using (new WriteLock(shipLock)) { spawnShips.Remove(ship); } return ship; }
public SpawnShip addSpawnShip(SpawnShip ship) { using (new WriteLock(shipLock)) { spawnShips.Add(ship); } return ship; }
public SpawnShipPiece(long _uniqueId, Vector3 _position, Quaternion _rotation, Team _team, Model _part, Model _destroyed, Model _collisionMesh, float _health, List<Turret> _turrets, SpawnShip _parent) : base(_uniqueId, _position, _rotation, _team) { MAX_HEALTH = _health; Health = MaxHealth; destroyedModel = _destroyed; collisionMesh = _collisionMesh; // collisionMesh = ContentLoadManager.loadModel("Models/box"); part = _part; Model = part; parent = _parent; turrets = _turrets; CollisionBase = new CollisionMesh(collisionMesh, Position, Rotation); CollisionBase.Active = true; CollisionBase.addCollisionEvent(collisionEvent); CollisionBase.Parent = this; if (team == Team.Esxolus) { ((MobileMesh)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = EsxolusMeshShipGroup; } else { ((MobileMesh)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = HalkMeshShipGroup; } pieceRotation = Rotation; piecePosition = Position; int hudScale = 2; pieceHUDUnit = new HUDUnit(this, 10 * hudScale, 4 * hudScale, 1 * hudScale); foreach (Turret turret in turrets) { turret.Parent = this; } }
private float zSpeed = 20.0f; // The speed the ship is moving at #endregion Fields #region Constructors public Fighter(long _uniqueId, Vector3 _position, Quaternion _rotation, Team _team, SpawnShip _home) : base(_uniqueId, _position, _rotation, _team) { myAI = new AI(this); SHIELD_RECOVER_RATE /= 5; Damage = 0.5f; MAX_HEALTH = 5; Health = MaxHealth; MAX_SHIELDS = 5; Shields = MaxShields; PRIMARY_RANGE = 1000000f; SECONDARY_RANGE = 800000f; INTEREST_TIME = 20; interestTimer = INTEREST_TIME; maxJitterPosition = new Vector3(0.5f, 0.5f, 0.5f); minJitterPosition = -maxJitterPosition; maxJitterRotation = Quaternion.Identity; minJitterRotation = maxJitterRotation; maxJitterPositionVelocity = new Vector3(0.5f, 0.5f, 0.5f); minJitterPositionVelocity = -maxJitterPositionVelocity; maxJitterRotationVelocity = Quaternion.Identity; minJitterRotationVelocity = maxJitterRotationVelocity; home = _home; random = new Random((int)_uniqueId); dustGenerator = new DustParticleGenerator(this); trailGenerators = new List<EngineTrailParticleGenerator>(); Active = false; }
public Bomber(long _uniqueId, Vector3 _position, Quaternion _rotation, Team _team, SpawnShip _home) : base(_uniqueId, _position, _rotation, _team, _home) { maxZSpeed = 7500.0f; minZSpeed = 150.0f; normalZSpeed = 350.0f; ZSpeed = NormalZSpeed; MAX_HEALTH = 7; Health = MaxHealth; MAX_SHIELDS = 3; Shields = MaxShields; SHIELD_RECOVER_RATE = 0.05f; rollAccel = 5.5f; rollBreak = 4.5f; rollCap = 1.5f; pitchAccel = 4.5f; pitchBreak = 3.5f; pitchCap = 0.75f; yawAccel = 4.5f; yawBreak = 3.5f; yawCap = 0.75f; baseHeat = 0.35f; heat = 0; overheatHeat = 1.5f; heatingRate = 0.5f; coolingRate = 0.1f; heatDamageRate = 0.75f; heatWarningThreshold = 1.2f; heatDamageThreshold = 1.4f; accelerationRate = 10000.0f; FIRE_RATE = 0.35f; fireTimer = FireRate; SPECIAL_RATE = 1.0f; specialTimer = SpecialRate; SecondaryAmmo = MaxSecondaryAmmo; CollisionBase = new CollisionSphere(_position, 10); CollisionBase.Parent = this; CollisionBase.addCollisionEvent(collisionEvent); if (ShipTeam == Team.Esxolus) { ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = EsxolusShipGroup; } else { ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = HalkShipGroup; } INTEREST_TIME = 50; // Default for ship is 20 Shields = 3; // TO SHOW SCALING BARS }
public HalkBomber(long _uniqueId, Vector3 _position, Quaternion _rotation, SpawnShip _home) : base(_uniqueId, _position, _rotation, Team.Halk, _home) { laserOffsets = new Vector3[] { new Vector3(-2.48f, -0.305f, 62.472f), new Vector3(2.48f, -0.305f, 62.472f) }; MAX_SECONDARY_AMMO = 100; SecondaryAmmo = MaxSecondaryAmmo; SECONDARY_RANGE = 7000000f; randomUnitVectors = new Vector3[SECONDARY_LOCATION_COUNT]; for (int i = 0; i < SECONDARY_LOCATION_COUNT; i++) { randomUnitVectors[i] = getRandomUnitVector(i * 30); } #region Bomb Positions secondaryAttackPositions = new Vector3[] { new Vector3(-8.268f, -4.127f+Y_ADJ, 4.685f), new Vector3(-3.615f, -5.795f+Y_ADJ, 4.607f), new Vector3(-6.143f, -4.945f+Y_ADJ, 2.546f), new Vector3(-8.596f, -4.116f+Y_ADJ, 0.959f), new Vector3(-3.291f, -5.071f+Y_ADJ, 1.351f), new Vector3(-5.921f, -5.815f+Y_ADJ, -0.613f), new Vector3(-8.361f, -3.464f+Y_ADJ, -2.266f), new Vector3(-3.354f, -5.013f+Y_ADJ, -2.49f), new Vector3(-8.641f, -4.621f+Y_ADJ, -5.479f), new Vector3(-5.706f, -4.958f+Y_ADJ, -4.815f), new Vector3(-2.866f, -4.106f+Y_ADJ, -5.565f), new Vector3(3.627f, -5.7878f+Y_ADJ, 4.771f), new Vector3(8.073f, -4.125f+Y_ADJ, 4.694f), new Vector3(6.017f, -4.945f+Y_ADJ, 2.546f), new Vector3(3.165f, -5.071f+Y_ADJ, 1.351f), new Vector3( 8.47f, -4.116f+Y_ADJ, 0.959f), new Vector3( 5.795f, -5.815f+Y_ADJ, -0.613f), new Vector3( 3.228f, -5.013f+Y_ADJ, -2.49f), new Vector3( 8.235f, -3.464f+Y_ADJ, -2.266f), new Vector3( 2.666f, -4.496f+Y_ADJ, -5.521f), new Vector3( 5.58f, -4.958f+Y_ADJ, -4.815f), new Vector3( 8.515f, -4.621f+Y_ADJ, -5.479f), }; #endregion #region Bomb Rotations secondaryAttackForward = new Quaternion[] { Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(165.8f), MathHelper.ToRadians(67.621f), MathHelper.ToRadians(6.381f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(168.184f), MathHelper.ToRadians(74.474f), MathHelper.ToRadians(9.495f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(170.968f), MathHelper.ToRadians(68.803f), MathHelper.ToRadians(5.85f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(170.423f), MathHelper.ToRadians(67.126f), MathHelper.ToRadians(0.571f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(181.767f), MathHelper.ToRadians(70.274f), MathHelper.ToRadians(-4.997f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(179.686f), MathHelper.ToRadians(69.068f), MathHelper.ToRadians(-1.972f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(181.435f), MathHelper.ToRadians(65.41f), MathHelper.ToRadians(-4.97f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(189.469f), MathHelper.ToRadians(69.009f), MathHelper.ToRadians(-13.12f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(186.14f), MathHelper.ToRadians(69.205f), MathHelper.ToRadians(-14.322f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(193.884f), MathHelper.ToRadians(65.793f), MathHelper.ToRadians(-16.371f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(208.472f), MathHelper.ToRadians(67.824f), MathHelper.ToRadians(-24.064f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(168.312f), MathHelper.ToRadians(68.03f), MathHelper.ToRadians(12.955f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(169.998f), MathHelper.ToRadians(62.666f), MathHelper.ToRadians(18.547f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(170.241f), MathHelper.ToRadians(64.076f), MathHelper.ToRadians(10.923f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(138.405f), MathHelper.ToRadians(85.942f), MathHelper.ToRadians(44.306f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(175.988f), MathHelper.ToRadians(61.855f), MathHelper.ToRadians(8.656f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(179.789f), MathHelper.ToRadians(64.408f), MathHelper.ToRadians(4.737f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(194.024f), MathHelper.ToRadians(70.003f), MathHelper.ToRadians(-7.678f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(175.682f), MathHelper.ToRadians(61.992f), MathHelper.ToRadians(9.909f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(204.705f), MathHelper.ToRadians(70.345f), MathHelper.ToRadians(-23.08f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(208.82f), MathHelper.ToRadians(75.323f), MathHelper.ToRadians(-24.299f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(189.112f), MathHelper.ToRadians(76.931f), MathHelper.ToRadians(0.881f)), }; #endregion trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(8.455f, -0.823f, -24.89f))); // -14.89f trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(1.154f, 1.198f, -24.89f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-0.231f, 3.664f, -24.89f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-2.671f, 0.458f, -24.89f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-0.881f, -1.909f, -24.89f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(1.87f, -1.911f, -24.89f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-8.455f, -0.823f, -24.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(8.455f, -0.823f, -14.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(1.154f, 1.198f, -14.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-0.231f, 3.664f, -14.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-2.671f, 0.458f, -14.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-0.881f, -1.909f, -14.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(1.87f, -1.911f, -14.89f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-8.455f, -0.823f, -14.89f))); setCloseModelByString("Models/Ships/Halk_Bomber"); setFarModelByString("Models/Ships/Bomber_LoD"); }
public EsxolusInterceptor(long _uniqueId, Vector3 _position, Quaternion _rotation, SpawnShip _home) : base(_uniqueId, _position, _rotation, Team.Esxolus, _home) { laserOffsets = new Vector3[] { new Vector3(-3.342f, -0.594f, 35.574f), new Vector3(3.342f, -0.594f, 35.574f) }; MAX_SECONDARY_AMMO = 9; SecondaryAmmo = MaxSecondaryAmmo; SECONDARY_RANGE = 6000000f; secondaryAttackPositions = new Vector3[] { new Vector3(1.388f, -0.801f, 6.8f), new Vector3(-1.388f, -0.801f, 6.8f), }; secondaryAttackForward = new Quaternion[] { // Left Side Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0f), MathHelper.ToRadians(-1.772f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0f), MathHelper.ToRadians(-0.121f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0f), MathHelper.ToRadians(1.53f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-1.429f), MathHelper.ToRadians(-2.579f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-1.429f), MathHelper.ToRadians(-0.934f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-1.429f), MathHelper.ToRadians(0.711f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-1.429f), MathHelper.ToRadians(2.356f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-2.857f), MathHelper.ToRadians(-3.41f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-2.857f), MathHelper.ToRadians(-1.76f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-2.857f), MathHelper.ToRadians(-0.115f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-2.857f), MathHelper.ToRadians(1.545f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-2.857f), MathHelper.ToRadians(3.18f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-4.281f), MathHelper.ToRadians(-2.579f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-4.281f), MathHelper.ToRadians(-0.934f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-4.281f), MathHelper.ToRadians(0.711f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-4.281f), MathHelper.ToRadians(2.356f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-5.699f), MathHelper.ToRadians(-1.772f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-5.699f), MathHelper.ToRadians(-0.121f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(-5.699f), MathHelper.ToRadians(1.53f), MathHelper.ToRadians(0f)), // Right Side Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0f), MathHelper.ToRadians(-1.772f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0f), MathHelper.ToRadians(-0.121f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(0f), MathHelper.ToRadians(1.53f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(1.429f), MathHelper.ToRadians(-2.579f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(1.429f), MathHelper.ToRadians(-0.934f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(1.429f), MathHelper.ToRadians(0.711f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(1.429f), MathHelper.ToRadians(2.356f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(2.857f), MathHelper.ToRadians(-3.41f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(2.857f), MathHelper.ToRadians(-1.76f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(2.857f), MathHelper.ToRadians(-0.115f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(2.857f), MathHelper.ToRadians(1.545f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(2.857f), MathHelper.ToRadians(3.18f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(4.281f), MathHelper.ToRadians(-2.579f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(4.281f), MathHelper.ToRadians(-0.934f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(4.281f), MathHelper.ToRadians(0.711f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(4.281f), MathHelper.ToRadians(2.356f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(5.699f), MathHelper.ToRadians(-1.772f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(5.699f), MathHelper.ToRadians(-0.121f), MathHelper.ToRadians(0f)), Quaternion.CreateFromYawPitchRoll(MathHelper.ToRadians(5.699f), MathHelper.ToRadians(1.53f), MathHelper.ToRadians(0f)), }; trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(4.041f, -0.191f, -11.169f))); trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-4.041f, -0.191f, -11.169f))); setCloseModelByString("Models/Ships/esxolus_interceptor_model"); setFarModelByString("Models/Ships/esxolus_interceptor__LP_model"); }
public HalkInterceptor(long _uniqueId, Vector3 _position, Quaternion _rotation, SpawnShip _home) : base(_uniqueId, _position, _rotation, Team.Halk, _home) { laserOffsets = new Vector3[] { new Vector3(-3.382f, -2.532f, 59.654f), new Vector3(3.382f, -2.532f, 59.654f) }; MAX_SECONDARY_AMMO = 9; SecondaryAmmo = MaxSecondaryAmmo; SECONDARY_RANGE = 8000000f; randomUnitVectors = new Vector3[SECONDARY_LOCATION_COUNT]; for (int i = 0; i < SECONDARY_LOCATION_COUNT; i++) { randomUnitVectors[i] = getRandomUnitVector((int)(i * RANDOM_SCALE)); } #region Missle Positions secondaryAttackPositions = new Vector3[] { new Vector3(4.874f, 1.64f, 10.611f), new Vector3(5.529f, 1.64f, 10.039f), new Vector3(6.153f, 1.64f, 10.508f), new Vector3(6.809f, 1.64f, 9.08f), new Vector3(4.874f, 0.778f, 10.611f), new Vector3(5.529f, 0.778f, 10.039f), new Vector3(6.153f, 0.778f, 10.508f), new Vector3(6.809f, 0.778f, 9.08f), new Vector3(4.874f, -0.031f, 10.611f), new Vector3(5.529f, -0.031f, 10.039f), new Vector3(6.153f, -0.031f, 10.508f), new Vector3(6.809f, -0.031f, 9.08f), new Vector3(-4.874f, 1.64f, 10.611f), new Vector3(-5.529f, 1.64f, 10.039f), new Vector3(-6.153f, 1.64f, 10.508f), new Vector3(-6.809f, 1.64f, 9.08f), new Vector3(-4.874f, 0.778f, 10.611f), new Vector3(-5.529f, 0.778f, 10.039f), new Vector3(-6.153f, 0.778f, 10.508f), new Vector3(-6.809f, 0.778f, 9.08f), new Vector3(-4.874f, -0.031f, 10.611f), new Vector3(-5.529f, -0.031f, 10.039f), new Vector3(-6.153f, -0.031f, 10.508f), new Vector3(-6.809f, -0.031f, 9.08f), }; #endregion secondaryAttackForward = new Quaternion[]{ Quaternion.CreateFromAxisAngle(Vector3.Right, MathHelper.ToRadians(0.733f)), Quaternion.CreateFromAxisAngle(Vector3.Right, MathHelper.ToRadians(-0.733f)), }; trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(3.39f, 3.917f, -22.27f))); // -12.27f trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-3.39f, 3.917f, -22.27f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(-3.39f, -2.486f, -22.27f))); trailGenerators.Add(new HEngineTrailGenerator(this, new Vector3(3.39f, -2.486f, -22.27f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(3.39f, 3.917f, -12.27f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-3.39f, 3.917f, -12.27f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(-3.39f, -2.486f, -12.27f))); //trailGenerators.Add(new EEngineTrailGenerator(this, new Vector3(3.39f, -2.486f, -12.27f))); setCloseModelByString("Models/Ships/Halk_interceptor"); setFarModelByString("Models/Ships/Halk_interceptor"); }