Exemple #1
0
        public frmDuel()
        {
            InitializeComponent();

            _players = new ArrayList();

            Random rnd = new Random();
            int heroId = rnd.Next(1, 16);
            CreatePlayer(heroId);
            //CreatePlayer(2);

            _playerMe = (Heroes.Core.Player)_players[0];
            _currentPlayer = (Heroes.Core.Player)_players[0];
            _currentHero = (Heroes.Core.Hero)_currentPlayer._heroes[0];
        }
Exemple #2
0
        public DialogResult ShowDialog(Heroes.Core.Hero hero)
        {
            _hero = hero;

            lblTitle.Text = string.Format("{0} has gain a level.", hero._name);
            lblLevel.Text = string.Format("{0} is now a level {1} {2}.", hero._name, hero._level + 1, hero.GetHeroTypeName());

            if (System.IO.File.Exists(hero._infoImgFileName))
                this.picHero.Image = Image.FromFile(hero._infoImgFileName);
            else
                this.picHero.Image = null;

            GetSkillAv();
            PplSkills();

            return this.ShowDialog();
        }
Exemple #3
0
        public frmHeroInfo()
        {
            InitializeComponent();

            _hero = null;

            _picSkills = new PictureBox[]
            {
                this.picSkill1, this.picSkill2, this.picSkill3, this.picSkill4,
                this.picSkill2, this.picSkill3, this.picSkill4, this.picSkill5
            };

            _picEquipedArtifacts = new Dictionary<Heroes.Core.Heros.EquipPartEnum, PictureBox[]>();
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.RightHand, new PictureBox[] { picRightHand });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.LeftHand, new PictureBox[] { picLeftHand });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Head, new PictureBox[] { picHead });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Torso, new PictureBox[] { picTorso });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Feet, new PictureBox[] { picFeet });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Neck, new PictureBox[] { picNeck });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Shoulder, new PictureBox[] { picShoulder });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Ring, new PictureBox[] { picRingRight, picRingLeft });
            _picEquipedArtifacts.Add(Heroes.Core.Heros.EquipPartEnum.Misc, new PictureBox[] { picMisc1, picMisc2, picMisc3, picMisc4, picMisc5 });

            _picUnequipedArtifacts = new PictureBox[] { picBackPack1, picBackPack2, picBackPack3, picBackPack4, picBackPack5 };
            _pageSize = _picUnequipedArtifacts.Length;

            foreach (Heroes.Core.Heros.EquipPartEnum key in this._picEquipedArtifacts.Keys)
            {
                PictureBox[] picBoxs = this._picEquipedArtifacts[key];

                foreach (PictureBox picBox in picBoxs)
                {
                    picBox.Tag = key;
                    picBox.MouseClick += new MouseEventHandler(picBox_MouseClick);
                }
            }

            foreach (PictureBox picBox in _picUnequipedArtifacts)
            {
                picBox.Tag = Heroes.Core.Heros.EquipPartEnum.BackPack;
                picBox.MouseClick += new MouseEventHandler(picBox_MouseClick);
            }

            _picSelArtifact = null;
            _pageNo = 0;
        }
Exemple #4
0
        public frmDuelNetwork()
        {
            InitializeComponent();

            _playerKIds = new Hashtable();
            _currentPlayer = null;
            _currentHero = null;

            this.ReadOnly = true;

            _isFirstRun = true;
            _hasVisitKnowStone = false;

            _day = 1;
            _week = 1;
            _month = 1;

            this._artifactVisitCounts = new int [4];
        }
Exemple #5
0
        public DialogResult ShowDialog(Heroes.Core.Hero hero)
        {
            _hero = hero;

            if (System.IO.File.Exists(_hero._infoImgFileName))
                picHero.Image = Image.FromFile(_hero._infoImgFileName);
            else
                picHero.Image = null;

            this.lblHeroName.Text = _hero._name;
            this.lblHeroLevel.Text = string.Format("Level {0} {1}", _hero._level, _hero.GetHeroTypeName());
            this.lblExp.Text = _hero._experience.ToString();

            PplAtts();

            PplSkills();

            PplArtifacts();

            return this.ShowDialog();
        }
Exemple #6
0
        public frmGame2()
        {
            InitializeComponent();

            _playerIdMe = 0;
            _playerMe = null;
            _playerKIds = new Hashtable();
            _startingHeroId = 0;
            _isDoingTurn = false;
            _isBattleStarted = false;

            _attackHero = null;
            _defendHero = null;

            _isExit = false;

            _frmDuel = null;
            _frmBattle = null;

            // thread
            ThreadStart entryPoint = new ThreadStart(StartProcess);
            _processThread = new Thread(entryPoint);
            _processThread.Name = "Processing Thread";

            // timer to start game
            _timerGame = new System.Windows.Forms.Timer();
            _timerGame.Interval = 500;
            _timerGame.Tick += new EventHandler(_timerGame_Tick);
            _timerGame.Stop();

            // timer to start battle
            _timerBattle = new System.Windows.Forms.Timer();
            _timerBattle.Interval = 500;
            _timerBattle.Tick += new EventHandler(_timerBattle_Tick);
            _timerBattle.Stop();

            this.FormClosing += new FormClosingEventHandler(frmGame_FormClosing);
            this.FormClosed += new FormClosedEventHandler(frmGame_FormClosed);
        }
Exemple #7
0
 public StartingBattleEventArg(Heroes.Core.Hero attackHero, Heroes.Core.Hero defendHero, Heroes.Core.Monster monster, Heroes.Core.Town defendCastle)
 {
     _attackHero = attackHero;
     _defendHero = defendHero;
     _monster = monster;
     _defendCastle = defendCastle;
     _victory = 0;
 }
Exemple #8
0
        private bool Battle(Heroes.Core.Hero hero, Heroes.Core.Monster monster)
        {
            this.Hide();

            try
            {
                using (frmBattle f = new frmBattle())
                {
                    f.ShowDialog(hero, null, monster, null);

                    using (Heroes.Core.Battle.frmBattleResult f2 = new Heroes.Core.Battle.frmBattleResult())
                    {
                        if (f._victory == Heroes.Core.Battle.BattleSideEnum.Attacker)
                        {
                            if (f._engine._attacker._playerId == this._playerMe._id)
                            {
                                // victory
                                f2.ShowDialog(1, f._engine._attacker, this._playerMe._id,
                                    f._engine._attacker, f._engine._defender, f._engine._monster);

                                this._currentHero._experience += f2._experience;
                                LevelUp(this._currentHero);

                                return true;
                            }
                            else
                            {
                                // defeat
                                f2.ShowDialog(2, f._engine._attacker, this._playerMe._id,
                                    f._engine._attacker, f._engine._defender, f._engine._monster);

                                _currentPlayer._heroes.Remove(this._currentHero);
                                _currentHero = null;

                                return false;
                            }
                        }
                        else
                        {
                            if (f._engine._defender != null)
                            {
                                if (f._engine._defender._playerId == this._playerMe._id)
                                {
                                    // victory
                                    f2.ShowDialog(1, f._engine._defender, this._playerMe._id,
                                        f._engine._attacker, f._engine._defender, f._engine._monster);

                                    this._currentHero._experience += f2._experience;
                                    LevelUp(this._currentHero);

                                    return true;
                                }
                                else
                                {
                                    // defeat
                                    f2.ShowDialog(2, f._engine._defender, this._playerMe._id,
                                        f._engine._attacker, f._engine._defender, f._engine._monster);

                                    _currentPlayer._heroes.Remove(this._currentHero);
                                    _currentHero = null;

                                    return false;
                                }
                            }
                            else if (f._engine._monster != null)
                            {
                                // defeat
                                f2.ShowDialog(2, f._engine._monster, this._playerMe._id,
                                    f._engine._attacker, f._engine._defender, f._engine._monster);

                                _currentPlayer._heroes.Remove(this._currentHero);
                                _currentHero = null;

                                return false;
                            }
                        }
                    }
                }
            }
            finally
            {
                this.Show();
            }

            return false;
        }
Exemple #9
0
        private void cmdNextTurn_Click(object sender, EventArgs e)
        {
            // next player
            int index = _players.IndexOf(this._currentPlayer);
            index += 1;
            if (index >= this._players.Count) index = 0;
            this._currentPlayer = (Heroes.Core.Player)this._players[index];

            if (this._currentPlayer._heroes.Count > 0)
            {
                this._currentHero = (Heroes.Core.Hero)this._currentPlayer._heroes[0];

                // reset to full spell points
                this._currentHero._spellPointLeft = this._currentHero._maxSpellPoint;
            }

            _currentPlayer.AddResources();
            _currentPlayer.AddGrowth();
            _currentPlayer.ResetBuilt();
            _currentPlayer.ResetMovementPoints();
        }
Exemple #10
0
        public static void ConvertBattleToNetwork(Heroes.Core.Player attackPlayerMap, Heroes.Core.Hero attackHeroMap, Hashtable attackArmiesMap,
            Heroes.Core.Player defendPlayerMap, Heroes.Core.Hero defendHeroMap, Heroes.Core.Town defendCastleMap, Hashtable defendArmiesMap,
            out Heroes.Core.Player attackPlayer, out Heroes.Core.Hero attackHero, out Hashtable attackArmies,
            out Heroes.Core.Player defendPlayer, out Heroes.Core.Hero defendHero, out Heroes.Core.Town defendCastle, out Hashtable defendArmies)
        {
            attackPlayer = null;
            attackHero = null;
            attackArmies = new Hashtable();
            defendPlayer = null;
            defendHero = null;
            defendCastle = null;
            defendArmies = new Hashtable();

            if (attackArmiesMap != null)
            {
                foreach (Heroes.Core.Army armyMap in attackArmiesMap.Values)
                {
                    Heroes.Core.Army army = new Heroes.Core.Army();
                    army._id = armyMap._id;
                    army._qty = armyMap._qty;
                    army._slotNo = armyMap._slotNo;
                    attackArmies.Add(army._slotNo, army);
                }
            }

            if (attackPlayerMap != null)
            {
                attackPlayer = new Heroes.Core.Player();
                attackPlayer._id = attackPlayerMap._id;
            }

            if (attackHeroMap != null)
            {
                attackHero = new Heroes.Core.Hero();
                attackHero._id = attackHeroMap._id;
                attackHero._player = attackPlayer;
                attackHero._armyKSlots = attackArmies;
            }

            if (defendArmiesMap != null)
            {
                foreach (Heroes.Core.Army armyMap in defendArmiesMap.Values)
                {
                    Heroes.Core.Army army = new Heroes.Core.Army();
                    army._id = armyMap._id;
                    army._qty = armyMap._qty;
                    army._slotNo = armyMap._slotNo;
                    defendArmies.Add(army._slotNo, army);
                }
            }

            if (defendPlayerMap != null)
            {
                defendPlayer = new Heroes.Core.Player();
                defendPlayer._id = defendPlayerMap._id;
            }

            if (defendHeroMap != null)
            {
                defendHero = new Heroes.Core.Hero();
                defendHero._id = defendHeroMap._id;
                defendHero._player = defendPlayer;
                defendHero._armyKSlots = defendArmies;
            }

            // castle
        }
Exemple #11
0
        public static void ResetAll()
        {
            if (_frmBattle != null)
            {
                _frmBattle.Close();
                _frmBattle = null;
            }

            if (_frmMap != null)
            {
                _frmMap.Close();
                _frmMap = null;
            }

            if (_frmGame != null)
            {
                _frmGame.Close();
                _frmGame = null;
            }

            _isServer = false;
            _me = null;
            _server = null;
            _players.Clear();
            _currentPlayer = null;

            _isNeedToStartGame = false;
            _isGameStarted = false;
            _isInitialized = false;
            _isAllPlayerInitialized = false;
            _needToRunNextPlayer = false;

            _isNeedToStartBattle = false;
            _amIBattle = false;
            _isBattleStarted = false;
            _attackPlayer = null;
            _attackHero = null;
            _attackArmies = null;
            _defendPlayer = null;
            _defendHero = null;
            _defendCastle = null;
            _defendArmies = null;
            _victory = 0;
            _isBattleEnded = false;

            _attackCommands.Clear();
            _defendCommands.Clear();
        }
Exemple #12
0
        public static void ConvertMapToNetwork(ArrayList mapPlayers, ArrayList mapMines, Heroes.Core.Map.Cell[,] mapCells,
            out ArrayList players, out Hashtable heroCells)
        {
            players = new ArrayList();
            heroCells = new Hashtable();

            // copy players and heroes
            foreach (Heroes.Core.Map.Player player in mapPlayers)
            {
                Heroes.Core.Player player2 = new Heroes.Core.Player();
                player2._id = player._id;
                player2._gold = player._gold;
                players.Add(player2);

                foreach (Heroes.Core.Map.Hero hero in player._heroes)
                {
                    Heroes.Core.Hero hero2 = new Heroes.Core.Hero();
                    hero2._id = hero._id;
                    hero2._player = player2;
                    player2._heroes.Add(hero2);

                    // cell in map
                    if (hero._cell != null)
                    {
                        GameCell cell = new GameCell(hero._cell._row, hero._cell._col);
                        heroCells.Add(hero2._id, cell);
                    }

                    foreach (Heroes.Core.Army army in hero._armyKSlots.Values)
                    {
                        Heroes.Core.Army army2 = new Heroes.Core.Army();
                        army2._id = army._id;
                        army2._slotNo = army._slotNo;
                        army2._qty = army._qty;

                        hero2._armyKSlots.Add(army2._slotNo, army2);
                    }
                }
            }

            // copy Towns
            int index = 0;
            foreach (Heroes.Core.Map.Player player in mapPlayers)
            {
                Heroes.Core.Player player2 = (Heroes.Core.Player)players[index];

                foreach (Heroes.Core.Map.Town town in player._castles)
                {
                    Heroes.Core.Town town2 = new Heroes.Core.Town();
                    town2._id = town._id;
                    town2._player = player2;
                    player2._castles.Add(town2);

                    foreach (Heroes.Core.Army army in town._armyAvKIds.Values)
                    {
                        Heroes.Core.Army army2 = new Heroes.Core.Army();
                        army2._id = army._id;
                        army2._qty = army._qty;

                        town2._armyAvKIds.Add(army2._id, army2);
                    }

                    foreach (Heroes.Core.Army army in town._armyInCastleKSlots.Values)
                    {
                        Heroes.Core.Army army2 = new Heroes.Core.Army();
                        army2._id = army._id;
                        army2._slotNo = army._slotNo;
                        army2._qty = army._qty;

                        town2._armyInCastleKSlots.Add(army2._id, army2);
                    }

                    if (town._heroVisit != null)
                    {
                        int indexPlayer = mapPlayers.IndexOf(town._heroVisit._player);
                        Heroes.Core.Map.Player playerVisit = (Heroes.Core.Map.Player)mapPlayers[indexPlayer];
                        int indexHero = playerVisit._heroes.IndexOf(town._heroVisit);

                        Heroes.Core.Player playerVisit2 = (Heroes.Core.Player)players[indexPlayer];
                        Heroes.Core.Hero heroVisit2 = (Heroes.Core.Hero)playerVisit2._heroes[indexHero];
                        town2._heroVisit = heroVisit2;
                    }
                }

                index += 1;
            }

            // copy mines
            foreach (Heroes.Core.Map.Mine mine in mapMines)
            {
                Heroes.Core.Mine mine2 = new Heroes.Core.Mine(mine._id);

                if (mine._player != null)
                {
                    // get player
                    Heroes.Core.Player player2 = GameSetting.FindPlayer(mine._player._id, players);
                    mine2._player = player2;
                    player2._mineKTypes[(int)Heroes.Core.MineTypeEnum.Gold].Add(mine2);
                }
                else
                {
                    mine2._player = null;
                }
            }
        }
Exemple #13
0
        public BattleCommander(Heroes.Core.Player attackPlayer, Heroes.Core.Hero attackHero, 
            Heroes.Core.Player defendPlayer, Heroes.Core.Hero defendHero, Heroes.Core.Monster monster, bool quickCombat)
        {
            _battleTerrain = new BattleTerrain();

            _attackPlayer = attackPlayer;
            _defendPlayer = defendPlayer;

            {
                _attackHeroOriginal = attackHero;

                _attackHero = new Heroes.Core.Battle.Heros.Hero();
                _attackHero.CopyFrom(attackHero);
                _attackHero._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Attacker;
                _attackHero._spells = attackHero._spells;

                foreach (Heroes.Core.Army army in attackHero._armyKSlots.Values)
                {
                    Heroes.Core.Battle.Armies.Army army2 = new Heroes.Core.Battle.Armies.Army();
                    army2.CopyFrom(army);
                    army2._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Attacker;

                    army2._qtyLeft = army2._qty;
                    army2._healthRemain = army2._health;
                    army2._shotRemain = army2._noOfShot;
                    army2._retaliateRemain = army2._noOfRetaliate;

                    army2._cell = GetCell(army2._armySide, army2._slotNo, army2._isBig);
                    army2._cell._character = army2;

                    _attackHero._armyKSlots.Add(army2._slotNo, army2);
                }

                _attackArmies = _attackHero._armyKSlots;
            }

            _defendHeroOriginal = null;
            _defendHero = null;
            if (defendHero != null)
            {
                _defendHeroOriginal = defendHero;

                _defendHero = new Heroes.Core.Battle.Heros.Hero();
                _defendHero.CopyFrom(defendHero);
                _defendHero._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender;
                _defendHero._spells = attackHero._spells;

                foreach (Heroes.Core.Army army in defendHero._armyKSlots.Values)
                {
                    Heroes.Core.Battle.Armies.Army army2 = new Heroes.Core.Battle.Armies.Army();
                    army2.CopyFrom(army);
                    army2._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender;

                    army2._qtyLeft = army2._qty;
                    army2._healthRemain = army2._health;
                    army2._shotRemain = army2._noOfShot;
                    army2._retaliateRemain = army2._noOfRetaliate;

                    army2._cell = GetCell(army2._armySide, army2._slotNo, army2._isBig);
                    army2._cell._character = army2;

                    _defendHero._armyKSlots.Add(army2._slotNo, army2);
                }

                _defendArmies = _defendHero._armyKSlots;
            }

            _monsterOriginal = null;
            _monster = null;
            if (monster != null)
            {
                _monsterOriginal = monster;

                _monster = new Heroes.Core.Battle.Quick.Monster();
                _monster.CopyFrom(monster);
                _monster._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender;

                foreach (Heroes.Core.Army army in monster._armyKSlots.Values)
                {
                    Heroes.Core.Battle.Armies.Army army2 = new Heroes.Core.Battle.Armies.Army();
                    army2.CopyFrom(army);
                    army2._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender;

                    army2._qtyLeft = army2._qty;
                    army2._healthRemain = army2._health;
                    army2._shotRemain = army2._noOfShot;
                    army2._retaliateRemain = army2._noOfRetaliate;

                    army2._cell = GetCell(army2._armySide, army2._slotNo, army2._isBig);
                    army2._cell._character = army2;

                    _monster._armyKSlots.Add(army2._slotNo, army2);
                }

                _defendArmies = _monster._armyKSlots;
            }

            _heroes = new Hashtable();
            _heroes.Add(_attackHero._id, _attackHero);
            if (_defendHero != null) _heroes.Add(_defendHero._id, _defendHero);

            _armies = new ArrayList();
            foreach (Heroes.Core.Army army in _attackArmies.Values)
            {
                _armies.Add(army);
            }
            foreach (Heroes.Core.Army army in _defendArmies.Values)
            {
                _armies.Add(army);
            }

            BattleEngine.SortBySpeed(_armies);

            _quickCombat = quickCombat;

            _turn = new Turn(_armies, _attackHero, _attackArmies, _defendHero, _monster, _defendArmies);
        }
Exemple #14
0
 private void SetCurrentHero()
 {
     if (_currentPlayer._heroes.Count > 0)
         _currentHero = (Heroes.Core.Hero)_currentPlayer._heroes[0];
     else
         _currentHero = null;
 }
Exemple #15
0
 public StartingBattleEventArg(Heroes.Core.Hero attackHero, Heroes.Core.Hero defendHero, Heroes.Core.Monster monster)
 {
     _attackHero = attackHero;
     _defendHero = defendHero;
     _monster = monster;
     _success = false;
 }