Exemple #1
0
        public static void CheckCollision()
        {
            for (int i = 0; i < entities.Count; i++)
            {
                for (int j = i + 1; j < entities.Count; j++)
                {
                    if (entities[i] is ClotSide || entities[j] is ClotSide)
                    {
                        if (entities[i] is ClotSide)
                        {
                            ClotSide cs = entities[i] as ClotSide;
                            if (cs.SmallSphere.Intersects(entities[j].sphere) && !entities[i].isDead && !entities[j].isDead)
                            {
                                entities[i].Collision(entities[j]);
                            }
                        }
                        else
                        {
                            ClotSide cs = entities[j] as ClotSide;
                            if (cs.SmallSphere.Intersects(entities[i].sphere) && !entities[i].isDead && !entities[j].isDead)
                            {
                                entities[j].Collision(entities[i]);
                            }
                        }
                    }

                    if (entities[i] is Infector || entities[j] is Infector)
                    {
                        if (entities[i] is Infector)
                        {
                            Infector inf = entities[i] as Infector;
                            if (inf.CellSphere.Intersects(entities[j].sphere) && !inf.isDead && !entities[j].isDead)
                            {
                                inf.inRange(entities[j]);
                            }
                        }
                        else
                        {
                            Infector inf = entities[j] as Infector;
                            if (inf.CellSphere.Intersects(entities[i].sphere) && !inf.isDead && !entities[i].isDead)
                            {
                                inf.inRange(entities[i]);
                            }
                        }
                    }
                    if (entities[i].sphere.Intersects(entities[j].sphere) && !entities[i].isDead && !entities[j].isDead)
                    {
                        entities[i].Collision(entities[j]);
                    }
                }
            }
        }
Exemple #2
0
        public Level1(ContentManager content, SpriteBatch sb)
        {
            levelEnded   = false;
            lastShot     = false;
            lastCharge   = false;
            this.content = content;
            spriteBatch  = sb;
            geometry     = this.content.Load <Model>(@"levels/level1");
            levelTexture = this.content.Load <Texture2D>(@"textures/levelTexture");
            position     = new Vector3(-45, -755, 8200);
            timeToResume = TimeSpan.FromSeconds(timeToResumeSeconds);

            switchedToBoss     = false;
            switchedToMiniBoss = false;
            switchedToStart    = false;
            switchedToClot     = false;

            startGameZ   = 7645;
            infectorZ    = 2800;
            clotZ        = 2200;
            thirdPersonZ = 650;
            preBossZ     = 1300;

            reachedClotZ      = false;
            infectorAdded     = false;
            reachedPreBossZ   = false;
            infectorDestroyed = false;
            movePreInfector   = false;

            endingMove1 = endingMove2 = endingMove3 = false;

            velocity      = Vector3.Zero;
            firstMove     = false;
            secondMove    = false;
            thirdMove     = false;
            fourthMove    = false;
            rotatedBehind = false;
            fifthMove     = false;
            beginDescentZ = -430;

            reachedBoss  = false;
            enemySpawner = new EnemySpawner(1, content);
            bossAdded    = false;
            clotsAdded   = false;
            firstStart   = false;

            introRot1 = false;
            introRot2 = false;
            introRot3 = false;
            introRot4 = false;

            thirdPersonRot    = false;
            thirdPersonTrans  = false;
            setRot            = false;
            setTrans          = false;
            returnedToTopDown = false;
            enemiesReenabled  = false;

            miniBoss  = new Infector(content, new Vector3(0, 0, 250));
            rightClot = new ClotSide(content, new Vector3(-60, 0, 20), Side.Right);
            leftClot  = new ClotSide(content, new Vector3(60, 0, 20), Side.Left);

            preloadedStraightCell = new StraightCell(content, new Vector3(0, 500, 0));
            preloadedLatchingCell = new LatchingCell(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedChargingCell = new ChargingCell(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedMeleeBot     = new MeleeBot(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedMissileBot   = new MissileBot(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedTokenPickup  = new TokenPickup(content, new Vector3(0, 500, 0));
            preloadedMissile      = new Missle(content, Vector3.Zero, Vector3.Zero);
            preloadedBotMissile   = new BotMissile(content, Vector3.Zero, Vector3.Zero);
            preloadedNeedle       = new Needle(content, Vector3.Zero, Vector3.Zero);
            preloadedLaser        = new Laser(content, Vector3.Zero, Vector3.Zero);
            preloadedExplosion    = new Explosion(0, 0, 0, Vector3.Zero, content, false);
            preloadedChargeBall   = new ChargeBall(content, Vector3.Zero);

            clotsDestroyed = false;

            Camera.Instance.setPosition(new Vector3(-7, 7, 7));
        }
Exemple #3
0
        public virtual void Update(GameTime gameTime)
        {
            Player p = entities[0] as Player;

            if (p.SwitchedFromShield)
            {
                for (int j = 0; j < entities.Count; j++)
                {
                    if (entities[j] is Shield)
                    {
                        entities.Remove(entities[j]);
                        j = 0;
                    }
                }
                p.SwitchedFromShield = false;
            }
            for (int i = 0; i < entities.Count; i++)
            {
                if (!entities[i].isDead)
                {
                    if (entities[i] is ChargeBall)
                    {
                        ChargeBall cb = entities[i] as ChargeBall;
                        cb.Update(gameTime, p.Position, p.Rotation);
                    }
                    if (entities[i] is Laser)
                    {
                        Laser l = entities[i] as Laser;
                        l.Update(gameTime, p.Position, p.Rotation);
                    }
                    if (entities[i] is Boss)
                    {
                        Boss b = entities[i] as Boss;
                        b.Update(gameTime, p.Position);
                    }
                    if (entities[i] is ClotSide)
                    {
                        ClotSide cs = entities[i] as ClotSide;
                        cs.Update(gameTime, velocity);
                    }
                    if (entities[i] is Infector)
                    {
                        Infector inf = entities[i] as Infector;
                        inf.Update(gameTime, p.Position);
                    }
                    if (entities[i] is TokenPickup)
                    {
                        TokenPickup tp = entities[i] as TokenPickup;
                        tp.Update(gameTime);
                    }
                    if (entities[i] is PlayerWeapon)
                    {
                        PlayerWeapon w = entities[i] as PlayerWeapon;
                        w.Update(gameTime, p.Position, p.Rotation);
                    }
                    if (entities[i] is BotWeapon)
                    {
                        BotWeapon bw = entities[i] as BotWeapon;
                        bw.Update(gameTime, p.Position, p.Rotation);
                    }
                    if (entities[i] is Shield)
                    {
                        Shield s = entities[i] as Shield;
                        s.Update(gameTime, p.Velocity, p.controls.isPlayerFiring());
                    }
                    if (entities[i] is LatchingCell || entities[i] is MeleeBot || entities[i] is MissileBot)
                    {
                        if (entities[i] is LatchingCell)
                        {
                            LatchingCell lc = entities[i] as LatchingCell;
                            lc.Update(gameTime, p.Position);
                        }
                        else if (entities[i] is MeleeBot)
                        {
                            MeleeBot mb = entities[i] as MeleeBot;
                            mb.Update(gameTime, p.Position);
                        }
                        else
                        {
                            MissileBot missBot = entities[i] as MissileBot;
                            missBot.Update(gameTime, p.Position);
                        }
                    }
                    entities[i].Update(gameTime);
                }
                else
                {
                    if (entities[i] is EnemiesAndPlayer)
                    {
                        EnemiesAndPlayer ep = entities[i] as EnemiesAndPlayer;
                        if (ep.killedBy())
                        {
                            p.addScore(ep.Score);
                            p.AddPowerup(15);
                            if (ep is MeleeBot || ep is MissileBot)
                            {
                                if (random.Next(2) == 0)
                                {
                                    Add(new TokenPickup(content, ep.Position));
                                }
                            }
                        }
                    }
                    entities.Remove(entities[i]);
                }
            }
        }
        public Level1(ContentManager content, SpriteBatch sb)
        {
            levelEnded = false;
            lastShot = false;
            lastCharge = false;
            this.content = content;
            spriteBatch = sb;
            geometry = this.content.Load<Model>(@"levels/level1");
            levelTexture = this.content.Load<Texture2D>(@"textures/levelTexture");
            position = new Vector3(-45, -755, 8200);
            timeToResume = TimeSpan.FromSeconds(timeToResumeSeconds);

            switchedToBoss = false;
            switchedToMiniBoss = false;
            switchedToStart = false;
            switchedToClot = false;

            startGameZ = 7645;
            infectorZ = 2800;
            clotZ = 2200;
            thirdPersonZ = 650;
            preBossZ = 1300;

            reachedClotZ = false;
            infectorAdded = false;
            reachedPreBossZ = false;
            infectorDestroyed = false;
            movePreInfector = false;

            endingMove1 = endingMove2 = endingMove3 = false;

            velocity = Vector3.Zero;
            firstMove = false;
            secondMove = false;
            thirdMove = false;
            fourthMove = false;
            rotatedBehind = false;
            fifthMove = false;
            beginDescentZ = -430;

            reachedBoss = false;
            enemySpawner = new EnemySpawner(1, content);
            bossAdded = false;
            clotsAdded = false;
            firstStart = false;

            introRot1 = false;
            introRot2 = false;
            introRot3 = false;
            introRot4 = false;

            thirdPersonRot = false;
            thirdPersonTrans = false;
            setRot = false;
            setTrans = false;
            returnedToTopDown = false;
            enemiesReenabled = false;

            miniBoss = new Infector(content, new Vector3(0, 0, 250));
            rightClot = new ClotSide(content, new Vector3(-60, 0, 20), Side.Right);
            leftClot = new ClotSide(content, new Vector3(60, 0, 20), Side.Left);

            preloadedStraightCell = new StraightCell(content, new Vector3(0, 500, 0));
            preloadedLatchingCell = new LatchingCell(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedChargingCell = new ChargingCell(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedMeleeBot = new MeleeBot(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedMissileBot = new MissileBot(content, new Vector3(0, 500, 0), Vector3.Zero);
            preloadedTokenPickup = new TokenPickup(content, new Vector3(0, 500, 0));
            preloadedMissile = new Missle(content, Vector3.Zero, Vector3.Zero);
            preloadedBotMissile = new BotMissile(content, Vector3.Zero, Vector3.Zero);
            preloadedNeedle = new Needle(content, Vector3.Zero, Vector3.Zero);
            preloadedLaser = new Laser(content, Vector3.Zero, Vector3.Zero);
            preloadedExplosion = new Explosion(0, 0, 0, Vector3.Zero, content, false);
            preloadedChargeBall = new ChargeBall(content, Vector3.Zero);

            clotsDestroyed = false;

            Camera.Instance.setPosition(new Vector3(-7, 7, 7));
        }