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); }
private bool EnqueueBattleCommand(int playerId, frmBattle.CommandIssuedEventArg e) { Heroes.Core.Remoting.BattleCommand cmd = new Heroes.Core.Remoting.BattleCommand(e._x, e._y, (int)e._button, e._doubleClick, e._cmdType, e._spell); Heroes.Core.Remoting.RegisterServer register = new Heroes.Core.Remoting.RegisterServer(); register._hostName = Setting._remoteHostName; Heroes.Core.Remoting.Game adp = null; adp = (Heroes.Core.Remoting.Game)register.GetObject( typeof(Heroes.Core.Remoting.Game), Heroes.Core.Remoting.Game.CLASSNAME); if (adp == null) { MessageBox.Show("Error"); return false; } try { adp.EnqueueBattleCommand(playerId, cmd); } catch (Exception ex) { MessageBox.Show(ex.Message); return false; } return true; }
void f_CommandIssued(frmBattle.CommandIssuedEventArg e) { // add battle command to queue if (!EnqueueBattleCommand(this._playerIdMe, e)) { // error return; } }
void f_StartingBattle(Heroes.Core.Map.frmMap.StartingBattleEventArg e) { using (frmBattle f = new frmBattle()) { if (f.ShowDialog(e._attackHero, e._defendHero, e._monster, e._defendCastle) != DialogResult.OK) { return; } e._victory = (int)f._victory; } }
public bool Battle(Heroes.Core.Hero attackHero, Heroes.Core.Hero defendHero, Heroes.Core.Monster monster) { lock (frmGame2._lockMe) { using (frmBattle f = new frmBattle()) { _frmBattle = f; f._playerIdMe = this._playerIdMe; // set multiplayer flag if (defendHero != null) f._isMultiPlayer = true; else f._isMultiPlayer = false; f.CommandIssued += new frmBattle.CommandIssuedEventHandler(f_CommandIssued); f.ShowDialog(attackHero, defendHero, 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._playerIdMe) { // victory f2.ShowDialog(1, f._engine._attacker, this._playerIdMe, f._engine._attacker, f._engine._defender, f._engine._monster); this._frmDuel._currentHero._experience += f2._experience; this._frmDuel.LevelUp(this._frmDuel._currentHero); return true; } else { // defeat f2.ShowDialog(2, f._engine._attacker, this._playerIdMe, f._engine._attacker, f._engine._defender, f._engine._monster); // do not remove hero this._frmDuel.ResurrectHero(this._frmDuel._currentHero); //_currentPlayer._heroes.Remove(this._currentHero); //_currentHero = null; return false; } } else { if (f._engine._defender != null) { if (f._engine._defender._playerId == this._playerIdMe) { // victory f2.ShowDialog(1, f._engine._defender, this._playerIdMe, f._engine._attacker, f._engine._defender, f._engine._monster); this._frmDuel._currentHero._experience += f2._experience; this._frmDuel.LevelUp(this._frmDuel._currentHero); return true; } else { // defeat f2.ShowDialog(2, f._engine._defender, this._playerIdMe, f._engine._attacker, f._engine._defender, f._engine._monster); // do not remove hero this._frmDuel.ResurrectHero(this._frmDuel._currentHero); //_currentPlayer._heroes.Remove(this._currentHero); //_currentHero = null; return false; } } else if (f._engine._monster != null) { // defeat f2.ShowDialog(2, f._engine._monster, this._playerIdMe, f._engine._attacker, f._engine._defender, f._engine._monster); // do not remove hero this._frmDuel.ResurrectHero(this._frmDuel._currentHero); //_currentPlayer._heroes.Remove(this._currentHero); //_currentHero = null; return false; } } } } } return false; }
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; }
private void cmdStart_Click(object sender, EventArgs e) { this.Hide(); Heroes.Core.Player player1 = (Heroes.Core.Player)_players[0]; Heroes.Core.Hero hero1 = (Heroes.Core.Hero)player1._heroes[0]; Heroes.Core.Player player2 = (Heroes.Core.Player)_players[1]; Heroes.Core.Hero hero2 = (Heroes.Core.Hero)player2._heroes[0]; frmBattle f = new frmBattle(); f.ShowDialog(hero1, hero2, null, null); this.Show(); }
void f_CommandIssued(frmBattle.CommandIssuedEventArg e) { // add battle command to queue if (!EnqueueBattleCommand(Remoting.GameSetting._me._id, e)) { // error return; } }
private void StartBattle() { if (Remoting.GameSetting._frmBattle != null) return; { try { using (frmBattle f = new frmBattle()) { //f.ReadOnly = true; f._isMultiPlayer = true; f.CommandIssued += new frmBattle.CommandIssuedEventHandler(f_CommandIssued); // make a copies of battle, to avoid thread issue //Heroes.Core.Player attackPlayer = null; lock (_lockToken) { Remoting.GameSetting._frmBattle = f; Remoting.GameSetting._isBattleStarted = true; // make a copies of battle //attackPlayer = Remoting.GameSetting._attackPlayer.Clone(); } // TODO if (f.ShowDialog(Remoting.GameSetting._attackHero, Remoting.GameSetting._defendHero, null, Remoting.GameSetting._defendCastle) != DialogResult.OK) { //e._isCancel = true; return; } // set battle results lock (_lockToken) { Remoting.GameSetting._victory = f._victory; //Remoting.GameSetting._attackPlayer = attackPlayer; } } } catch { //e._isCancel = true; } } }
private bool Battle(Heroes.Core.Hero attackHero, Heroes.Core.Hero defendHero, Heroes.Core.Monster monster) { lock (frmGame2._lockMe) { using (frmBattle f = new frmBattle()) { f.ShowDialog(attackHero, defendHero, 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._currentPlayer._id) { // victory f2.ShowDialog(1, f._engine._attacker, this._currentPlayer._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._currentPlayer._id, f._engine._attacker, f._engine._defender, f._engine._monster); // do not remove hero ResurrectHero(this._currentHero); //_currentPlayer._heroes.Remove(this._currentHero); //_currentHero = null; return false; } } else { if (f._engine._defender != null) { if (f._engine._defender._playerId == this._currentPlayer._id) { // victory f2.ShowDialog(1, f._engine._defender, this._currentPlayer._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._currentPlayer._id, f._engine._attacker, f._engine._defender, f._engine._monster); // do not remove hero ResurrectHero(this._currentHero); //_currentPlayer._heroes.Remove(this._currentHero); //_currentHero = null; return false; } } else if (f._engine._monster != null) { // defeat f2.ShowDialog(2, f._engine._monster, this._currentPlayer._id, f._engine._attacker, f._engine._defender, f._engine._monster); // do not remove hero ResurrectHero(this._currentHero); //_currentPlayer._heroes.Remove(this._currentHero); //_currentHero = null; return false; } } } } } return false; }