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;
            }
        }
Esempio n. 2
0
        public Laser(long _uniqueID, Vector3 _position, Quaternion _rotation)
            : base(_uniqueID, _position, _rotation, "Models/Lasers/hot_pink_laser_model")
        {
            this.Damage = 1.0f;

            projectileSpeed = 4500.0f;

            if (!modelsSet)
            {
                basicLaserModel = ContentLoadManager.loadModel("Models/Lasers/hot_pink_laser_model");
                esxolusLaserModel = ContentLoadManager.loadModel("Models/Lasers/cyan_laser_model");
                halkLaserModel = ContentLoadManager.loadModel("Models/Lasers/red_laser_model");
                esxolusTurretLaserModel = ContentLoadManager.loadModel("Models/Lasers/cyan_turret_laser_model");
                halkTurretLaserModel = ContentLoadManager.loadModel("Models/Lasers/red_turret_laser_model");
                modelsSet = true;
            }
            else { }

            CollisionBase = new CollisionSphere(Position, (int)(Model.Meshes.First().BoundingSphere.Radius * RESIZE));

            ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;

            CollisionBase.Active = false;
            CollisionBase.Parent = this;
            CollisionBase.addCollisionEvent(collisionEvent);
        }
Esempio n. 3
0
        public Missile(long _uniqueID, Vector3 _position, Quaternion _rotation, String _model)
            : base(_uniqueID, _position, _rotation, _model)
        {
            Damage = 55.0f;

            projectileSpeed = MISSILE_SPEED;

            trailGenerator = new MissileTrailParticleGenerator(this);
            trailGenerator.Active = false;

            detectionSphere = new CollisionSphere(_position, detectionRange);
            detectionSphere.addCollisionEvent(collisionEvent);

            detectionSphere.Active = false;
            detectionSphere.Parent = this;

            CollisionBase.Active = false;
            CollisionBase.Parent = this;

            firstTrailingSphere = new CollisionSphere(_position, BASE_SIZE);
            firstTrailingSphere.addCollisionEvent(collisionEvent);
            firstTrailingSphere.Active = false;
            firstTrailingSphere.Parent = this;
            ((Sphere)firstTrailingSphere.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;

            secondTrailingSphere = new CollisionSphere(_position, BASE_SIZE);
            secondTrailingSphere.addCollisionEvent(collisionEvent);
            secondTrailingSphere.Active = false;
            secondTrailingSphere.Parent = this;
            ((Sphere)secondTrailingSphere.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;
        }
Esempio n. 4
0
        public Explosive(long _uniqueID, Vector3 _position, Quaternion _rotation, String _model)
            : base(_uniqueID, _position, _rotation, _model)
        {
            Damage = 45.0f;

            CollisionBase = new CollisionSphere(_position, BASE_SIZE);
            CollisionBase.Active = false;
            CollisionBase.Parent = this;
            CollisionBase.addCollisionEvent(collisionEvent);

            ((Sphere)CollisionBase.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;

            explosionCollider = new CollisionSphere(_position, 3);
            explosionCollider.Active = false;
            explosionCollider.Parent = this;
            explosionCollider.addCollisionEvent(collisionEvent);

            ((Sphere)explosionCollider.getPhysicsCollider()).CollisionInformation.CollisionRules.Group = projectileGroup;

            ttl = EXPLOSIVE_TTL;
        }
Esempio n. 5
0
        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
        }