public override void OnInitialize(IResourceLoader loader, params object[] pars) { TurnAgent agent = pars[0] as TurnAgent; m_TurnFSM = new FSMMachine(); m_TurnFSM.AddState(new SLGTransitionTurn(agent)); m_TurnFSM.AddState(new SLGPlayerTurn(agent)); m_TurnFSM.AddState(new SLGOppositeTurn(agent)); }
void StartNewGame() { if (p1AgentSelection == 0) { p1 = humanP1; } else if (p1AgentSelection == 1) { p1 = aiP1; } else if (p1AgentSelection == 2) { p1 = randomP1; } if (p2AgentSelection == 0) { p2 = humanP2; } else if (p2AgentSelection == 1) { p2 = aiP2; } else if (p2AgentSelection == 2) { p2 = randomP2; } preGame = false; //create our internal board representation board = new ConnectKBoard(width, height, matches); InitBoard(); lastPieces = new List <GameObject>(); //initialise our turn agents p1.Init(board); p2.Init(board); //register to receive and process turns p1.TurnReadyEvent += ReceiveTurn; p2.TurnReadyEvent += ReceiveTurn; //start the turn loop PlayTurn(); }
public void Load(GridMap2D mapData, Transform rootTf) { m_RootTf = rootTf; m_MapData = mapData; m_TurnAgent = new TurnAgent(); m_TurnAgent.Cursor = new GameCursor(m_RootTf); m_MapSystem = GameManager.Instance.CreateSystem <SLGMapSystem>(m_MapData); m_TurnAgent.Arrow = new GameArrow(m_RootTf); m_TurnAgent.WorldCamera = new WorldCamera(GameObject.Find("GameLoop/Camera").transform); GameManager.Instance.AddInputEvent(OnInputMsg, 0); m_CharacterSystem = GameManager.Instance.CreateSystem <SLGCharacterSystem>(m_RootTf); m_TurnSystem = GameManager.Instance.CreateSystem <SLGTurnSystem>(m_TurnAgent); m_TurnAgent.TurnSystem = m_TurnSystem; Character ch = CS_CreateCharacterAtPoint(ECharacterRelation.OwnSide, 1); ch.SetCellPos(new IPoint(12, 2)); Character ch2 = CS_CreateCharacterAtPoint(ECharacterRelation.OwnSide, 2); ch2.SetCellPos(new IPoint(14, 2)); m_TurnAgent.Cursor_SetCellPos(ch.Point); m_TurnAgent.WorldCamera_FollowCellPos(ch.Point); GameManager.Instance.UIMgr.OpenUI <GameHud>(); m_TurnSystem.SwitchTurn(Common.ETurnType.OwnSide); }
public SLGPlayerTurn(TurnAgent agent) : base(agent, TurnDefines.PLAYER_TURN) { }
public SLGOppositeTurn(TurnAgent agent) : base(agent, TurnDefines.OPPOSITE_TURN) { }
public SLGTransitionTurn(TurnAgent agent) : base(agent, TurnDefines.TRANSITION_TURN) { }
public SLGTurn(TurnAgent agent, int id) : base(id) { m_Agent = agent; }