Example #1
0
        public void KillPlayer(GameTime gameTime)
        {
            MustUpdate(gameTime);

            if (!deathTimer.HitMax())
            {
                chopperBase.scale    -= ((float)gameTime.ElapsedGameTime.TotalSeconds / 3 / deathTimer.MaxSecond);
                chopperBase.Rotation += 2.25f / 60.0f;
                chopperBase.Update(gameTime);
                deathTimer.Update(gameTime);
                Vector2 generated = new Vector2(r.Next(101) - 50, r.Next(101) - 50);
                effects.Add(EffectsList.GetEffect(EffectType.Smoke, new Vector2(chopperBase.Center.X + generated.X, chopperBase.Center.Y - generated.Y)));
            }
            else
            {
                Vector2 generated = new Vector2(r.Next(25) - 12, r.Next(25) - 12);
                effects.Add(EffectsList.GetEffect(EffectType.Smoke, new Vector2(chopperBase.Center.X + generated.X, chopperBase.Center.Y - generated.Y)));
                if (!triggeredExplosion)
                {
                    effects.Add(EffectsList.GetEffect(0, chopperBase.Center));
                    triggeredExplosion = true;
                }
            }
            if (onLand)
            {
                deathTimer.GoToEnd();
            }
        }
        public NWLayer(NWGameSpace space, int layerID)
            : base(0, 0)
        {
            fSpace = space;

            fEntry = (LayerEntry)GlobalVars.nwrDB.GetEntry(layerID);
            fW     = fEntry.W;
            fH     = fEntry.H;

            Resize(fW * StaticData.FieldWidth, fH * StaticData.FieldHeight);

            EntryID = layerID;

            fFields = new NWField[fH, fW];

            for (int y = 0; y < fH; y++)
            {
                for (int x = 0; x < fW; x++)
                {
                    fFields[y, x] = new NWField(space, this, new ExtPoint(x, y));
                }
            }

            fEffects = new EffectsList(this, true);
        }
Example #3
0
        public void UpdateEnemyExplosionBullets(GameTime gameTime)
        {
            //level.Update(gameTime, player.PlayerSprite);
            List <Bullet> tmp = level.GetExplosiveBulletsAndClear();

            for (int i = 0; i < tmp.Count; i++)
            {
                explosiveBullets.Add(tmp[i]);
            }

            for (int i = 0; i < explosiveBullets.Count; i++)
            {
                Bullet currentBullet = explosiveBullets[i];
                currentBullet.Update(gameTime);

                if (currentBullet.IsDead())
                {
                    explosiveBullets.RemoveAt(i);
                    i--;
                    effects.Add(EffectsList.GetEffect(0, currentBullet.Center));
                }
                else if (currentBullet.PossibleHit(player.PlayerSprite))
                {
                    player.GotHit(currentBullet);
                    effects.Add(EffectsList.GetEffect(0, currentBullet.Center));
                    explosiveBullets.RemoveAt(i);
                    i--;
                }
            }
        }
Example #4
0
        public NWField(NWGameSpace space, NWLayer layer, ExtPoint coords)
            : base(StaticData.FieldWidth, StaticData.FieldHeight)
        {
            fSpace  = space;
            fLayer  = layer;
            fCoords = coords;

            fCreatures     = new CreaturesList(this, true);
            fItems         = new ItemsList(this, true);
            fEffects       = new EffectsList(this, true);
            fEmitters      = new EmitterList();
            ValidCreatures = new List <int>();

            if (Layer != null)
            {
                LayerEntry layerEntry = (LayerEntry)GlobalVars.nwrDB.GetEntry(Layer.EntryID);
                fEntry = layerEntry.GetFieldEntry(fCoords.X, fCoords.Y);

                EntryID = fEntry.GUID;

                fLandEntry = (LandEntry)GlobalVars.nwrDB.FindEntryBySign(fEntry.LandSign);
                LandID     = fLandEntry.GUID;

                PrepareCreatures();
            }
            else
            {
                fEntry     = null;
                EntryID    = -1;
                fLandEntry = null;
                LandID     = -1;
            }
        }
Example #5
0
 public void Play()
 {
     EffectsList.Sort(delegate(UIEffect leftEffect, UIEffect rightEffect)
     {
         return(leftEffect.order - rightEffect.order);
     });
     StartCoroutine(StepShowEffect());
     _isPlaying = true;
 }
Example #6
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            UI.LoadContent(Content, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
            UIClass.LoadContent(Content);
            UpgradeSystem.LoadContent(Content, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);

            WeaponList.LoadContent(Content);
            ChopperList.LoadContent(Content);
            EffectsList.LoadContent(Content);

            EnemyMaker.LoadContent(Content);

            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            Level level = new Level(500, 500);


            Player player = new Player(ChopperList.GetChopper(ChopperType.Training), new Vector2(500, 2000));

            //Player player = new Player(ChopperList.GetChopper(0), new Vector2(0, 0));
            hud    = new Hud(Content.Load <SpriteFont>("hudFont"));
            camera = new Camera();
            //camera.Position = player.PlayerSpriteCenter;
            camera.Position = player.PlayerCenter;
            gameManager     = new GameManager(level, player);

            List <Sprite> listOfEnemies = new List <Sprite>();

            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.MGun, new Vector2(0, 0), 0, 0));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.MGun, new Vector2(0, 700), 0, 0));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.MGun, new Vector2(700, 700), 0, 0));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.MGun, new Vector2(700, 0), 0, 0));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.Rocket, new Vector2(350, 350), 0, 0));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.RocketHoming, new Vector2(800, 800), 0, 0));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.ShotGun, new Vector2(500, 500), 3, 1));
            listOfEnemies.Add(EnemyMaker.GetTurret(TurretType.ShotGun, new Vector2(250, 450), 5, 0.5f));

            level.AddEntity(listOfEnemies, true, true, true);

            listOfEnemies.Clear();
            listOfEnemies.Add(new Building(Content.Load <Texture2D>("building"), new Vector2(1000, 1000)));
            List <Helipad> listOfHelipads = new List <Helipad>();

            listOfHelipads.Add(new Helipad(Content.Load <Texture2D>("Allies\\helipad"), new Vector2(500, 2000)));
            level.AddLandingPad(listOfHelipads);

            level.AddEntity(listOfEnemies, true, true, false);

            missionScreen      = new MissionScreen(1, "GameTest", "Yarrr mission is to blow up\nevery turret. Then return\nto the base\n\nWASD - Move \nLeft\\Right arrow - rotate\nSpace - fire \nX and L - land\\lift \nU - upgrade (on helipad)\nP- developer stats\n+ and - - zoom ", graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, Color.SaddleBrown);
            GameData.menuState = MenuState.MissionMenu;
            // TODO: use this.Content to load your game content here
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                fEffects.Dispose();
                fEffects = null;

                for (int y = 0; y < fH; y++)
                {
                    for (int x = 0; x < fW; x++)
                    {
                        fFields[y, x].Dispose();
                    }
                }
                fFields = null;
            }
            base.Dispose(disposing);
        }
Example #8
0
        public void UpdateFriendlyExplosiveBullets(GameTime gameTime)
        {
            List <Bullet> tmp = player.GetExplosiveBullets();


            for (int i = 0; i < tmp.Count; i++)
            {
                friendlyExplosiveBullets.Add(tmp[i]);
            }

            for (int i = 0; i < friendlyExplosiveBullets.Count; i++)
            {
                Bullet currentBullet = friendlyExplosiveBullets[i];
                currentBullet.Update(gameTime);

                if (currentBullet.IsDead())
                {
                    friendlyExplosiveBullets.RemoveAt(i);
                    i--;
                    effects.Add(EffectsList.GetEffect(0, currentBullet.Center));
                }
                else
                {
                    for (int j = 0; j < level.TurretEnemies.Count; j++)
                    {
                        if (currentBullet.PossibleHit(level.TurretEnemies[j]))
                        {
                            level.TurretEnemies[j].GotHit(currentBullet);
                            friendlyExplosiveBullets.RemoveAt(i);
                            effects.Add(EffectsList.GetEffect(0, currentBullet.Center));
                            currentBullet.kill();
                            i--;
                            j = level.TurretEnemies.Count;
                        }


                        //if (level.TurretEnemies[j].InRadius(currentBullet))
                    }
                }
            }
            //player.EmptyBullets();
        }
Example #9
0
 public void MustUpdate(GameTime gameTime)
 {
     healthSystem.Update(gameTime);
     if (healthSystem.Danger())
     {
         /*This can be used when you are falling down
          * Vector2 generated = new Vector2(r.Next(101)-50, r.Next(101)-50);
          * effects.Add(EffectsList.GetEffect(1, new Vector2(chopperBase.Center.X+ generated.X,chopperBase.Center.Y- generated.Y)));*/
         Vector2 generated = new Vector2(r.Next(25) - 12, r.Next(25) - 12);
         effects.Add(EffectsList.GetEffect(EffectType.Smoke, new Vector2(chopperBase.Center.X + generated.X, chopperBase.Center.Y - generated.Y)));
     }
     for (int i = 0; i < effects.Count; i++)
     {
         effects[i].Update(gameTime);
         if (effects[i].finished())
         {
             effects.RemoveAt(i);
             i--;
         }
     }
 }
Example #10
0
    // Add a new randomly generated skillGem
    public void AddSkillGem()
    {
        int randomNum = UnityEngine.Random.Range(1, MAX_GEMTYPE_COUNT);

        // Since skillGem category is based on range of ints, check which gem should be created whether
        // randomNum is less than or equal to the category num
        int  randomTier = UnityEngine.Random.Range(0, 100);
        Tier tier       = Tier.common;

        if (randomTier <= 5)
        {
            tier = Tier.legendary;
        }
        else if (randomTier <= 25)
        {
            tier = Tier.unique;
        }
        else if (randomTier <= 60)
        {
            tier = Tier.rare;
        }

        SkillGemType gemType = (SkillGemType)Enum.ToObject(typeof(SkillGemType), randomNum);
        string       gemName = ((SkillGemType)randomNum).ToString();

        Debug.Log("Generating " + tier + " " + gemName);
        if (randomNum <= (int)SkillGemCategory.elementGem)
        {
            // Grab random castEffect and hitEffect
            EffectsList   effectsList = GetEffectsList(tier);
            EffectGraphic effect      = effectsList.RandomEffect;

            string castEffect = "", hitEffect = "";
            castEffect = effect.cast.name;
            hitEffect  = effect.hit.name;
            ElementGem gem = new ElementGem(gemName,
                                            "Random generated skillGem",
                                            "",
                                            tier,
                                            ItemType.skillGem,
                                            gemType,
                                            effect.castOffset,
                                            castEffect,
                                            hitEffect);
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.damageEffect)
        {
            float min = UnityEngine.Random.Range(1, 100);
            float max = min + UnityEngine.Random.Range(3, 50);

            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new Damage(min, max, 1, false));
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.healEffect)
        {
            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new Heal(UnityEngine.Random.Range(10, 100), false));
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.buffEffect)
        {
            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new Buff(false,
                                                   60,
                                                   new AttributeStats(),
                                                   new CharStats(),
                                                   new CombatStats()));
            Player.instance.inventory.AddItem(gem, 1);
        }
        else if (randomNum <= (int)SkillGemCategory.statusEffect)
        {
            EffectGem gem = new EffectGem(gemName,
                                          "Random generated skillGem",
                                          "",
                                          tier,
                                          ItemType.skillGem,
                                          gemType,
                                          new StatusEffect());
            Player.instance.inventory.AddItem(gem, 1);
        }

        GenerateList();
    }