void OnKeep(Object sender, EventArgs _e) { Magic.CurrentGameWin.DeleteWidget(msgBox); msgBox = null; CurrentState = PlayerStates.Ready; MagicEngine e = MagicEngine.CurrentEngine; e.RaiseMagicEvent(new MagicEventArg(MagicEventType.PlayerIsReady, this)); }
public override void Process() { MagicEngine e = MagicEngine.CurrentEngine; switch (CurrentState) { case PlayerStates.Init: return; case PlayerStates.PlayDrawChoice: //chose to play first e.currentPlayerIndex = e.getPlayerIndex(this); CurrentState = PlayerStates.InitialDraw; return; case PlayerStates.InitialDraw: initialDraw(); CurrentState = PlayerStates.KeepMuliganChoice; return; case PlayerStates.KeepMuliganChoice: //choose to keep CurrentState = PlayerStates.Ready; e.RaiseMagicEvent(new MagicEventArg(MagicEventType.PlayerIsReady, this)); return; } if (e.pp != this || e.State < EngineStates.CurrentPlayer) { return; } if (HasActionPending) { ActivateAvailableMana(e); return; } if (e.cp == this) { switch (e.CurrentPhase) { case GamePhases.Untap: PhaseDone = true; break; case GamePhases.Upkeep: PhaseDone = true; break; case GamePhases.Draw: PhaseDone = true; break; case GamePhases.Main1: case GamePhases.Main2: if (AllowedLandsToBePlayed > 0) { if (AITryToPlayLand()) { break; } } if (!CastAvailableAndAllowedCreature()) { PhaseDone = true; } break; case GamePhases.BeforeCombat: PhaseDone = true; break; case GamePhases.DeclareAttacker: AITryToAttack(); PhaseDone = true; break; case GamePhases.DeclareBlocker: PhaseDone = true; break; case GamePhases.FirstStrikeDame: PhaseDone = true; break; case GamePhases.CombatDamage: PhaseDone = true; break; case GamePhases.EndOfCombat: PhaseDone = true; break; case GamePhases.EndOfTurn: PhaseDone = true; break; case GamePhases.CleanUp: PhaseDone = true; break; } } else { if (e.pp == this) { Magic.AddLog("AI just had priority"); e.GivePriorityToNextPlayer(); } // switch (e.CurrentPhase) // { // case GamePhases.Untap: // PhaseDone = true; // break; // case GamePhases.Upkeep: // PhaseDone = true; // break; // case GamePhases.Draw: // PhaseDone = true; // break; // case GamePhases.Main1: // PhaseDone = true; // break; // case GamePhases.BeforeCombat: // PhaseDone = true; // break; // case GamePhases.DeclareAttacker: // PhaseDone = true; // break; // case GamePhases.DeclareBlocker: // PhaseDone = true; // break; // case GamePhases.FirstStrikeDame: // PhaseDone = true; // break; // case GamePhases.CombatDamage: // PhaseDone = true; // break; // case GamePhases.EndOfCombat: // PhaseDone = true; // break; // case GamePhases.Main2: // PhaseDone = true; // break; // case GamePhases.EndOfTurn: // PhaseDone = true; // break; // case GamePhases.CleanUp: // PhaseDone = true; // break; // } } }