Exemple #1
0
    public void OnTowerEvent(IEvent ievent)
    {
        TowerBtnClickEvent e = ievent as TowerBtnClickEvent;

        if (e == null)
        {
            return;
        }
        if (e.nType == 0)
        {
            var tb = Table.GetClimbingTower(DataModel.NextFloor);
            if (tb != null)
            {
                GameUtils.EnterFuben(tb.FubenId);
            }
        }
        else
        {//扫荡
        }
    }
        private void OnTowerEvent(IEvent ievent)
        {
            TowerBtnClickEvent e = ievent as TowerBtnClickEvent;

            if (e == null)
            {
                return;
            }
            switch (e.nType)
            {
            case 0:
            {    //进入
                var tbDynamic = Table.GetDynamicActivity(10);
                if (tbDynamic != null)
                {
                    if (!GameUtils.CheckIsWeekLoopOk(tbDynamic.WeekLoop))
                    {
                        GameUtils.ShowHintTip(45001);
                        return;
                    }
                }

                if (DataModel.NextFloor != DataModel.CurFloor)
                {
                    var tb = Table.GetClimbingTower(DataModel.NextFloor);
                    if (tb != null)
                    {
                        GameUtils.EnterFuben(tb.FubenId);
                        // ObjManager.Instance.MyPlayer.EnterAutoCombat();
                    }
                }
                else
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(60003));
                }
            }
            break;

            case 1:
            {    //扫荡
                int max   = PlayerDataManager.Instance.GetExData((int)eExdataDefine.e621);
                int cur   = PlayerDataManager.Instance.GetExData((int)eExdataDefine.e623);
                int sweep = PlayerDataManager.Instance.GetExData((int)eExdataDefine.e622);
                var tb    = Table.GetClimbingTower(cur);
                if (tb == null || tb.SweepFloor <= 0)
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(60002));
                }
                else if (sweep <= 0)
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(224701));
                }
                else
                {
                    string str = string.Format(GameUtils.GetDictionaryText(224703), tb.SweepFloor);
                    UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, str, null, () => { NetManager.Instance.StartCoroutine(OnSweepTower()); });
                }
            }
            break;

            case 2:
            {    //扫荡返回
                DataModel.Sweeping = false;
                OnShow();
            }
            break;

            case 3:
            {    //购买扫荡
                int times    = PlayerDataManager.Instance.GetExData((int)eExdataDefine.e624);
                int curFloor = PlayerDataManager.Instance.GetExData((int)eExdataDefine.e623);
                var tbTower  = Table.GetClimbingTower(curFloor);
                if (tbTower == null)
                {
                    return;
                }
                int sweepFloor = tbTower.SweepFloor;
                if (sweepFloor <= 0)
                {
                    return;
                }
                var tbVip = Table.GetVIP(PlayerDataManager.Instance.GetRes((int)eResourcesType.VipLevel));
                if (tbVip != null)
                {
                    if (times >= tbVip.TowerSweepTimes)
                    {
                        EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(60001));
                        return;
                    }
                }
                var    tb   = Table.GetSkillUpgrading(140000);
                int    cost = tb.GetSkillUpgradingValue(sweepFloor - 1);
                string str  = string.Format(GameUtils.GetDictionaryText(60000), cost, tbVip.TowerSweepTimes - times, tbVip.TowerSweepTimes);
                UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, str, "", () =>
                    {
                        if (PlayerDataManager.Instance.GetRes((int)eResourcesType.DiamondRes) < cost)
                        {
                            GameUtils.ShowNetErrorHint((int)ErrorCodes.DiamondNotEnough);
                        }
                        else
                        {
                            NetManager.Instance.StartCoroutine(OnBuySweepTimes());
                        }
                    });
            }
            break;

            case 4:
            {    //刷新
                OnShow();
            }
            break;
            }
        }