Esempio n. 1
0
        public override void Atack(Player player, GameTime gameTime)
        {
            if (!IsReloading)
            {
                MissileBase missile = new MissileBase(player, AtackPoints, Random.NextDouble() <= Accuracy,
                                                      new Point((int)(2 * (500 - PosX) * (1.5 - (double)player.PlayerID) + 500),
                                                                (int)Force.PosY + (int)(170 * 0.2)),
                                                      new Point((int)(2 * (500 - player.PlayerBase.PosX) * ((double)player.PlayerID - 1.5) + 500),
                                                                (int)Force.PosY + (int)(170 * 0.2)));

                MissileBase missile2 = new MissileBase(player, AtackPoints, Random.NextDouble() <= Accuracy,
                                                       new Point((int)(2 * (500 - PosX) * (1.5 - (double)player.PlayerID) + 500),
                                                                 (int)Force.PosY + (int)(170 * 0.2)),
                                                       new Point((int)(2 * (500 - player.PlayerBase.PosX) * ((double)player.PlayerID - 1.5) + 500),
                                                                 (int)Force.PosY + (int)(170 * 0.2)));

                MissileBase missile3 = new MissileBase(player, AtackPoints, Random.NextDouble() <= Accuracy,
                                                       new Point((int)(2 * (500 - PosX) * (1.5 - (double)player.PlayerID) + 500),
                                                                 (int)Force.PosY + (int)(170 * 0.2)),
                                                       new Point((int)(2 * (500 - player.PlayerBase.PosX) * ((double)player.PlayerID - 1.5) + 500),
                                                                 (int)Force.PosY + (int)(170 * 0.2)));

                GameEffectsEngine.Add(missile);

                GameEventEngine.Add(new GameEventDelayed(() => { GameEffectsEngine.Add(missile2); }, 0.04));

                GameEventEngine.Add(new GameEventDelayed(() => { GameEffectsEngine.Add(missile3); }, 0.08));

                GameEventEngine.Add(new GameEventDelayed(() => { IsReloading = false; }, ReloadTime));
                IsReloading = true;
            }
        }
Esempio n. 2
0
 public Explosion(Force myForce, Player me)
 {
     MyForce    = myForce;
     Me         = me;
     IsFinished = false;
     Texture    = TexturePack.explosion;
     GameEventEngine.Add(new GameEventDelayed(() => { IsFinished = true; }, TimeOfExplosion));
 }
Esempio n. 3
0
 public void AddCash(GameTime gameTime)
 {
     if (IsIncome == true)
     {
         IsIncome = false;
         GameEventEngine.Add(new GameEventDelayed(() => { Cash += Income; IsIncome = true; }, IncomeTime));
     }
 }
Esempio n. 4
0
 public DroneCarrierForce(GameTime gameTime)
 {
     Id          = ForcesType.DroneCarrierForce;
     Hp          = ForceParametrsPack.Hp[(int)Id];
     Range       = 1;
     Speed       = 40;
     Armor       = 0.9;
     AtackPoints = 1;
     Accuracy    = 0.99;
     Texture     = TexturePack.droneCarrierForce;
     ReloadTime  = 0.2;
     IsReloading = true;
     GameEventEngine.Add(new GameEventDelayed(() => { IsReloading = false; }, ReloadTime));
 }
Esempio n. 5
0
 public RifleForce(GameTime gameTime)
 {
     Id          = ForcesType.RifleForce;
     Hp          = ForceParametrsPack.Hp[(int)Id];
     Range       = 2;
     Speed       = 60;
     Armor       = 0.9;
     AtackPoints = 2;
     Accuracy    = 0.9;
     Texture     = TexturePack.rifleForce;
     ReloadTime  = 0.1;
     IsReloading = true;
     GameEventEngine.Add(new GameEventDelayed(() => { IsReloading = false; }, ReloadTime));
 }
Esempio n. 6
0
 public CannonForce(GameTime gameTime)
 {
     Id          = ForcesType.CannonForce;
     Hp          = ForceParametrsPack.Hp[(int)Id];
     Range       = 3;
     Speed       = 20;
     Armor       = 0.65;
     AtackPoints = 90;
     Accuracy    = 0.4;
     Texture     = TexturePack.cannonForce;
     ReloadTime  = 5.0;
     IsReloading = true;
     GameEventEngine.Add(new GameEventDelayed(() => { IsReloading = false; }, ReloadTime));
 }
Esempio n. 7
0
 public RocketForce(GameTime gameTime)
 {
     Id          = ForcesType.RocketForce;
     Hp          = ForceParametrsPack.Hp[(int)Id];
     Range       = 4;
     Speed       = 40;
     Armor       = 0.8;
     AtackPoints = 20;
     Accuracy    = 0.5;
     Texture     = TexturePack.rocketForce;
     ReloadTime  = 3.0;
     IsReloading = true;
     GameEventEngine.Add(new GameEventDelayed(() => { IsReloading = false; }, ReloadTime));
 }
Esempio n. 8
0
 public virtual void Atack(Player player, Force enemyForce, GameTime gameTime)
 {
     if (!IsReloading)
     {
         Missile missile = new Missile(player, enemyForce, AtackPoints, Random.NextDouble() <= Accuracy,
                                       new Point((int)(2 * (500 - PosX) * (1.5 - (double)player.PlayerID) + 500),
                                                 (int)Force.PosY + (int)(170 * 0.2)),
                                       new Point((int)(2 * (500 - enemyForce.PosX) * ((double)player.PlayerID - 1.5) + 500),
                                                 (int)Force.PosY + (int)(170 * 0.2)));
         GameEffectsEngine.Add(missile);
         GameEventEngine.Add(new GameEventDelayed(() => { IsReloading = false; }, ReloadTime));
         IsReloading = true;
     }
 }
Esempio n. 9
0
 /// <summary>
 /// Allows the game to perform any initialization it needs to before starting to run.
 /// This is where it can query for any required services and load any non-graphic
 /// related content.  Calling base.Initialize will enumerate through any components
 /// and initialize them as well.
 /// </summary>
 protected override void Initialize()
 {
     data    = new DataCollector();
     bot     = new Bot();
     win     = new Win();
     player1 = new Player(Size, 1, data);
     player2 = new Player(Size, 2, data);
     TexturePack.TexturePackLoad(this);
     fontPack      = new FontPack(this);
     userInterface = new UserInterface(player1, player2, fontPack, data);
     GameEventEngine.Add(new GameEventCyclic(() => {
         if (player1.IsInactive == true)
         {
             LearnInputOutput learning = new LearnInputOutput(player2.ListOfForces, player1.ListOfForces, player1.Upgrades, player1.Cash, 5);
             data.WriteToFile(learning);
         }
         else
         {
             player1.IsInactive = true;
         }
     }, 15, int.MaxValue));
     base.Initialize();
 }
Esempio n. 10
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            GameEventEngine.Update(gameTime);
            GameEffectsEngine.Update(gameTime);

            //Interface class update
            userInterface.Update(gameTime, bot);

            //Player update logic
            player1.Update(player2, gameTime);
            player2.Update(player1, gameTime);
            player1.DestroyNoHp(player2);
            player2.DestroyNoHp(player1);
            player1.AddCash(gameTime);
            player2.AddCash(gameTime);

            //Win condition
            Winner = win.CheckWin(player1, player2);

            //Bot decisions logic (comment to play player vs player)
            if (bot.IsStarted == true)
            {
                bot.Proceed(bot.Decision(player1, player2), player1, player2, gameTime);
            }

            if (Winner != 0)
            {
                GameEventEngine.Add(new GameEventDelayed(() => { Exit(); }, 10));
            }
            base.Update(gameTime);
        }