Пример #1
0
        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));
        }
Пример #2
0
    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();
    }
Пример #3
0
        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);
        }
Пример #4
0
 public SLGPlayerTurn(TurnAgent agent) : base(agent, TurnDefines.PLAYER_TURN)
 {
 }
Пример #5
0
 public SLGOppositeTurn(TurnAgent agent) : base(agent, TurnDefines.OPPOSITE_TURN)
 {
 }
Пример #6
0
 public SLGTransitionTurn(TurnAgent agent) : base(agent, TurnDefines.TRANSITION_TURN)
 {
 }
Пример #7
0
 public SLGTurn(TurnAgent agent, int id) : base(id)
 {
     m_Agent = agent;
 }