Пример #1
0
    protected void SetIndexPath(int index_x, int index_z)
    {
        if (index_x < 0 || index_x > 8 || index_z < 0 || index_z > 9)
        {
            return;
        }

        ChessEntity entity = ChessManager.Instance.FindChessByIndex(index_x, index_z);

        if (entity == this)
        {
            return;
        }

        if (entity != null)
        {
            if (entity.chessObj.chess_owner_player != chessObj.chess_owner_player)
            {
                entity.SetCanAttackClick();
            }
        }
        else
        {
            ChessPathManager.SetPathIndex(index_x, index_z);
        }
    }
Пример #2
0
    public virtual void UnSelect()
    {
        transform.localScale = Vector3.one * 2;
        ChessPathManager.HideAllPath();

        RevertMaterialsColor();
    }
Пример #3
0
    public virtual void BeSelect()
    {
        transform.localScale = Vector3.one * 4;

        ChessPathManager.HideAllPath();
        ShowChessPath();

        MaterialsColor(Color.green);
    }
Пример #4
0
    void Start()
    {
        GameEventManager.CreateInstance();
        LayerManager.CreateInstance();
        TimerManager.CreateInstance();
        GUIManager.CreateInstance();
        GameStateManager.CreateInstance();
        EmitNumberManager.CreateInstance();

        InputManager.CreateInstance();
        ChessManager.CreateInstance();
        ChessPathManager.CreateInstance();

        GameObject reporter = transform.Find("Reporter").gameObject;

        reporter.SetActive(HasReporter);
    }
Пример #5
0
    public void Enter()
    {
        KBEngine.Event.registerOut("OnStartRound", this, "OnStartRound");
        KBEngine.Event.registerOut("AttackChess", this, "OnAttackChess");
        KBEngine.Event.registerOut("OnExitFb", this, "OnExitFb");
        GameEventManager.RegisterEvent(GameEventTypes.KillChess, OnKillChessEvent);

        fightMainUIPanel = GUIManager.Open <FightMainUIPanel>("Fight", "FightMainUIPanel");
        fightMainUIPanel.SetStateInfoString("正在摆盘,请稍候...");

        GUIManager.Open <ChessInfoUIPanel>("ChessInfo", "ChessInfoUIPanel");

        ChessPathManager.CreatePathPoint();
        ChessPathManager.ShowChessBoard();

        Account account = KBEngine.KBEngineApp.app.player() as Account;

        account.baseCall("ClientReady");
    }
Пример #6
0
    void Update()
    {
#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.B))
        {
            Account account = KBEngine.KBEngineApp.app.player() as Account;
            if (account == null)
            {
                return;
            }

            account.baseCall("TestChessEntity", 1);
        }
#endif

        if (Input.GetMouseButtonDown(0))
        {
            if (!CanMove)
            {
                return;
            }

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                Account account = KBEngine.KBEngineApp.app.player() as Account;
                if (account == null)
                {
                    return;
                }

                int        campType      = account.CampType;
                GameObject hitGameObject = hit.collider.gameObject;

                ChessEntity entity = ChessManager.Instance.FindChessByAvatarModel(hitGameObject);
                if (entity != null)
                {
                    if (SelectChess != null && (int)entity.chessObj.chess_owner_player != campType && entity.CanAttackClick)
                    {
                        // 攻击当前选中的棋子
                        account.baseCall("AttackChess", SelectChess.chessObj.id, entity.chessObj.id, entity.chessObj.chess_index_x, entity.chessObj.chess_index_z);
                    }
                    else if ((int)entity.chessObj.chess_owner_player == campType)
                    {
                        // 显示当前棋子可行走路线
                        ClearSelectChess();

                        SelectChess = entity;
                        SelectChess.BeSelect();
                    }
                    else
                    {
                        ClearSelectChess();
                    }
                }
                else if (SelectChess != null)
                {
                    if (hitGameObject.name.Equals("ChessPath"))
                    {
                        int index_x, index_z = 0;
                        if (ChessPathManager.GetChessPathIndex(hitGameObject, out index_x, out index_z))
                        {
                            // 走到这个格子去
                            account.baseCall("ChessMove", SelectChess.chessObj.id, index_x, index_z);
                        }
                    }
                    else
                    {
                        ClearSelectChess();
                    }
                }
                else
                {
                    ClearSelectChess();
                }
            }
        }
    }