예제 #1
0
파일: frmDuel.cs 프로젝트: sakseichek/homm
        private void cmdMercury_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;

            if (this._currentHero._movementPointLeft <= 0)
            {
                MessageBox.Show("No more movement points.");
                return;
            }

            int mineType = 0;
            int level = 0;
            if (cmdWood.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Wood;
                level = 1;
            }
            else if (cmdOre.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Ore;
                level = 1;
            }
            else if (cmdMercury.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Mercury;
                level = 2;
            }
            else if (cmdSulfur.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Sulfur;
                level = 2;
            }
            else if (cmdCrystal.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Crystal;
                level = 2;
            }
            else if (cmdGem.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Gem;
                level = 2;
            }
            else if (cmdGold.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Gold;
                level = 3;
            }
            else
                return;

            this._currentHero._movementPointLeft -= 1;

            ArrayList mines = _currentPlayer._mineKTypes[mineType];

            if (!CaptureMine(mines.Count, level)) return;

            Heroes.Core.Mine mine = new Heroes.Core.Mine();
            mine.CopyFrom((Heroes.Core.Mine)Heroes.Core.Setting._mineTypes[mineType]);
            mines.Add(mine);
        }
예제 #2
0
        private void cmdWood_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;

            if (this._currentHero._movementPointLeft <= 0)
            {
                MessageBox.Show("No more movement points.");
                return;
            }

            int mineType = 0;
            int[] armyLevels = null;
            if (cmdWood.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Wood;
                armyLevels = new int[] { 1, 2 };
            }
            else if (cmdOre.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Ore;
                armyLevels = new int[] { 1, 2 };
            }
            else if (cmdMercury.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Mercury;
                armyLevels = new int[] { 3, 4 };
            }
            else if (cmdSulfur.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Sulfur;
                armyLevels = new int[] { 3, 4 };
            }
            else if (cmdCrystal.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Crystal;
                armyLevels = new int[] { 3, 4 };
            }
            else if (cmdGem.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Gem;
                armyLevels = new int[] { 3, 4 };
            }
            else if (cmdGold.Equals(btn))
            {
                mineType = (int)Heroes.Core.MineTypeEnum.Gold;
                armyLevels = new int[] { 5, 6 };
            }
            else
                return;

            this._currentHero._movementPointLeft -= 1;

            ArrayList mines = _currentPlayer._mineKTypes[mineType];
            int count = mines.Count;
            count += 1;

            Heroes.Core.Monster monster = CreateMonster(armyLevels, 2, count);

            if (chkQuickCombat.Checked)
            {
                Heroes.Core.Battle.Quick.BattleCommander quickBattle = new Heroes.Core.Battle.Quick.BattleCommander(this._currentPlayer, this._currentHero,
                    null, null, monster, true);
                Heroes.Core.Battle.BattleSideEnum victory = quickBattle.Start();

                if (!ShowBattleResult(victory, this._currentPlayer._id,
                    quickBattle._attackHero, quickBattle._defendHero, quickBattle._monster)) return;
            }
            else
            {
                StartingBattleEventArg e2 = new StartingBattleEventArg(this._currentHero, null, monster);
                OnStartingBattle(e2);

                if (!e2._success) return;
            }

            Heroes.Core.Mine mine = new Heroes.Core.Mine();
            mine.CopyFrom((Heroes.Core.Mine)Heroes.Core.Setting._mineTypes[mineType]);
            mines.Add(mine);
        }