public override void RegisteMouseEvent(ref UnityAction mapEnterAction, ref UnityAction <Land, PointerEventData> mapClickAction, ref UnityAction mapExitAction)
    {
        base.RegisteMouseEvent(ref mapEnterAction, ref mapClickAction, ref mapExitAction);
        mapEnterAction = delegate()
        {
            tip      = GlobalUImanager.Instance.LandTip.GetComponent <LandTip>();
            _showTip = true;
        };


        mapClickAction = delegate(Land clickLand, PointerEventData eventData)
        {
            Camp myCamp = BattleManager.Instance.MyCamp;
            if (eventData.button == PointerEventData.InputButton.Left && clickLand.CampID == myCamp.campID)
            {
                _lockUpdateMouse = true;
                tip.ShowSelf(false);
                GameObject MsgBoxObj = GlobalUImanager.Instance.OpenMsgBox(MsgBoxEnum.MsgBox2Btns);
                MsgBoxObj.GetComponent <MsgBox2Btns>().SetMsgBox("确定选择该地为首都吗?",
                                                                 () =>
                {
                    _lockUpdateMouse   = false;
                    myCamp.capitalLand = clickLand;
                    BattleManager.Instance.BattleMap.SetCapital(clickLand);
                    GlobalUImanager.Instance.CloseMsgBox(MsgBoxObj);

                    //发出战斗开始的事件
                    if (BattleManager.Instance.BattleStart != null)
                    {
                        BattleManager.Instance.BattleStart();
                    }
                    //进入我的回合状态
                    BattleMap battleMap = BattleManager.Instance.BattleMap;
                    BattleManager.Instance.CurBattleState = BattleManager.Instance.BattleStateDictionary[BattleStateEnum.MyRound];
                    BattleManager.Instance.CurBattleState.EnterStateWithMouse(ref battleMap.mapEnterAction, ref battleMap.mapClickAction, ref battleMap.mapExitAction);
                },
                                                                 () =>
                {
                    GlobalUImanager.Instance.CloseMsgBox(MsgBoxObj);
                    _lockUpdateMouse = false;
                });
            }
        };

        mapExitAction = delegate()
        {
            _showTip = false;
            tip      = null;
        };
    }
Пример #2
0
 public void ShowTip(bool isShow = true)
 {
     LandTip.SetActive(isShow);
 }