Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
| | |
| | | [SerializeField] Text m_ReBornTimer; |
| | | [SerializeField] Button m_Reborn; |
| | | |
| | | PlayerDeadModel _deadModel; |
| | | PlayerDeadModel DeadModel |
| | | { |
| | | get { return _deadModel ?? (_deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>()); } |
| | | } |
| | | PlayerDeadModel DeadModel { get { return ModelCenter.Instance.GetModel<PlayerDeadModel>(); } } |
| | | |
| | | float rebornTime = 0f; |
| | | float secondTimer = 0f; |
| | | bool sendReborn = false; |
| | | #region Built-in |
| | | protected override void BindController() |
| | | { |
| | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | TimeDownMgr.CoolTimeData coolDown; |
| | | if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.DuplicatesReborn, out coolDown)) |
| | | { |
| | | RefreshTime(Mathf.RoundToInt(coolDown.duration - coolDown.time)); |
| | | } |
| | | secondTimer = 0f; |
| | | sendReborn = false; |
| | | |
| | | DeadModel.RefreshDuplicatesRebornCDEvent = RefreshTime; |
| | | try |
| | | { |
| | | rebornTime = Time.time + GeneralConfig.Instance.dungeonRebornClientTimes[ElderGodAreaModel.ELDERGODAREA_MAPID]; |
| | | if (rebornTime <= Time.time) |
| | | { |
| | | Reborn(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Debug.Log(ex); |
| | | rebornTime = Time.time + 10f; |
| | | } |
| | | } |
| | | |
| | | protected override void OnAfterOpen() |
| | |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | if (!sendReborn) |
| | | { |
| | | Reborn(); |
| | | } |
| | | } |
| | | |
| | | protected override void OnAfterClose() |
| | |
| | | } |
| | | #endregion |
| | | |
| | | private void RefreshTime(int _time) |
| | | |
| | | protected override void LateUpdate() |
| | | { |
| | | if (_time > 0) |
| | | base.LateUpdate(); |
| | | |
| | | if (Time.time >= rebornTime) |
| | | { |
| | | m_ReBornTimer.text = StringUtility.Contact("(", _time, ")"); |
| | | if (!sendReborn) |
| | | { |
| | | Reborn(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Reborn(); |
| | | secondTimer -= Time.deltaTime; |
| | | if (secondTimer < 0f) |
| | | { |
| | | secondTimer = 1f; |
| | | var surplusSecond = Mathf.RoundToInt(rebornTime - Time.time); |
| | | m_ReBornTimer.text = StringUtility.Contact("(", surplusSecond, ")"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void Reborn() |
| | | { |
| | | sendReborn = true; |
| | | DeadModel.SendRebornQuest(0); |
| | | WindowCenter.Instance.Close<ElderGodAreaRebornWin>(); |
| | | } |
| | |
| | |
|
| | | public List<int> dungeonCanUseMoneyIds { get; private set; }
|
| | |
|
| | | public Dictionary<int, int> dungeonRebornClientTimes { get; private set; }
|
| | |
|
| | | public void Init()
|
| | | {
|
| | | try
|
| | |
| | | inGameDownLoadHighestLevelPoint = GetInt("DownReward", 2);
|
| | |
|
| | | dungeonCanUseMoneyIds = new List<int>(GetIntArray("FBEnterTickeyAuto", 1));
|
| | | dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2));
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | |
| | | }
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | XBModel.RefreshAgainXBAct += RefreshAgainXB;
|
| | | XBModel.StartXBEvent += OnStartXB;
|
| | | XBModel.RefreshBestXBTimeAct += RefreshFreeTime;
|
| | | XBModel.RefreshXBTypeInfoAct += RefreshXBTypeInfo;
|
| | | XBModel.RefreshXBResultAct += RefreshXBResult;
|
| | |
| | | XBModel.RefreshBestXBTimeAct -= RefreshFreeTime;
|
| | | XBModel.RefreshXBResultAct -= RefreshXBResult;
|
| | | XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
|
| | | XBModel.RefreshAgainXBAct -= RefreshAgainXB;
|
| | | playerPack.RefreshItemCountAct -= RefreshItemCount;
|
| | | XBModel.StartXBEvent -= OnStartXB;
|
| | | GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
|
| | | }
|
| | | protected override void OnAfterClose()
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | private void RefreshAgainXB(HappXBTitle title, int xbType)
|
| | | {
|
| | | if (title != HappXBTitle.Best) return;
|
| | | if (xbType == 0) ClickXBBtn();
|
| | | else if (xbType == 1) ClickXBManyBtn();
|
| | | }
|
| | |
|
| | | bool isXBMany = false;
|
| | | private void ClickXBManyBtn()
|
| | | {
|
| | | if (XBModel.CheckIsEmptyGrid(PackType.rptTreasure))
|
| | | {
|
| | | int toolCnt = 0;
|
| | | int needToolCnt = 0;
|
| | | if (XBModel.IsHaveManyXBTool(1,out toolCnt,out needToolCnt))
|
| | | {
|
| | | needToolCnt= needToolCnt - toolCnt;
|
| | | int needMoney = needToolCnt * xbOneMoney;
|
| | | if(needToolCnt > 0)
|
| | | {
|
| | | ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(funcSet.costToolIds[1]);
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], itemConfig.ItemName,needMoney, needToolCnt), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | CheckXBManyLimit(needMoney);
|
| | | }
|
| | | return;
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(xbManyMoney);
|
| | | }
|
| | | |
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(xbManyMoney);
|
| | | }
|
| | | |
| | | }
|
| | | XBModel.SendXBManyQuest(PackType.rptTreasure,1);
|
| | | }
|
| | |
|
| | | private void CheckXBManyLimit(int needMoney)
|
| | | private void OnStartXB(int oneOrMany)
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
|
| | | if(oneOrMany == 0)
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = true;
|
| | | XBModel.SendXBQuest(1, 1, 2);
|
| | | isXBMany = false;
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = true;
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | private void ClickFreeXbBtn()
|
| | | {
|
| | | if (XBModel.CheckIsEmptyGrid(PackType.rptTreasure))
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = false;
|
| | | XBModel.SendXBQuest(1, 0, 1);
|
| | | }
|
| | | }
|
| | |
|
| | | private void ClickXBBtn()
|
| | | {
|
| | | if (XBModel.CheckIsEmptyGrid(PackType.rptTreasure))
|
| | | {
|
| | | if(XBModel.IsHaveOneXBTool(1))
|
| | | {
|
| | | XBModel.SendXBQuest(1, 0, 2);
|
| | | }
|
| | | else
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = false;
|
| | | XBModel.SendXBQuest(1, 0, 0);
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | }
|
| | | |
| | | }
|
| | | XBModel.SendOneXBQuest(PackType.rptTreasure, 1);
|
| | | }
|
| | |
|
| | | private void RefreshXBTypeInfo()
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | XBModel.StartXBEvent += OnStartXB;
|
| | | getItem.SetActive(false);
|
| | | isHaveFreeTime = XBModel.IsHaveFreeXBTime((int)XBModel.title);
|
| | | InitUI();
|
| | |
| | | XBModel.RefreshRuneXBTimeAct -= RefreshFreeTime;
|
| | | break;
|
| | | }
|
| | | XBModel.StartXBEvent -= OnStartXB;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | |
| | |
|
| | | private void ClickXBBtn()
|
| | | {
|
| | | if(UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
|
| | | switch (XBModel.title)
|
| | | {
|
| | | XBModel.SetAgainXBEvent(XBModel.title,0);
|
| | | ClickBackBtn();
|
| | | case HappXBTitle.Best:
|
| | | XBModel.SendOneXBQuest(PackType.rptTreasure, 1);
|
| | | break;
|
| | | case HappXBTitle.Rune:
|
| | | XBModel.SendOneXBQuest(PackType.rptRunePack, 2);
|
| | | break;
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | private void ClickXBManyBtn()
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)xbManyMoney)
|
| | | switch (XBModel.title)
|
| | | {
|
| | | XBModel.SetAgainXBEvent(XBModel.title,1);
|
| | | ClickBackBtn();
|
| | | case HappXBTitle.Best:
|
| | | XBModel.SendXBManyQuest(PackType.rptTreasure, 1);
|
| | | break;
|
| | | case HappXBTitle.Rune:
|
| | | XBModel.SendXBManyQuest(PackType.rptRunePack, 2);
|
| | | break;
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnStartXB(int oneOrMany)
|
| | | {
|
| | | ClickBackBtn();
|
| | | }
|
| | |
|
| | | private void ClickBackBtn()
|
| | |
| | | /// </summary>
|
| | | /// <param name="type"></param>
|
| | | /// <param name="index"></param>
|
| | | public event Action<int> StartXBEvent;
|
| | | public void SendXBQuest(int type,int index,int costType)
|
| | | {
|
| | | isXBCoolTime = true;
|
| | |
| | | treasure.TreasureIndex = (byte)index;
|
| | | treasure.CostType = (byte)costType;
|
| | | GameNetSystem.Instance.SendInfo(treasure);
|
| | | if(StartXBEvent != null)
|
| | | {
|
| | | StartXBEvent(index);
|
| | | }
|
| | | }
|
| | |
|
| | | public void SendPutOutXBItem(PackType curType,PackType targetType,int index,int isAll)
|
| | |
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | public void SendOneXBQuest(PackType type,int xbType)
|
| | | {
|
| | | var funcSet = GetXBFuncSet(xbType);
|
| | | if (CheckIsEmptyGrid(type))
|
| | | {
|
| | | if (IsHaveOneXBTool(xbType))
|
| | | {
|
| | | SendXBQuest(xbType, 0, 2);
|
| | | }
|
| | | else
|
| | | {
|
| | | int xbOneMoney = funcSet.xbPrices[0];
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
|
| | | {
|
| | | SendXBQuest(xbType, 0, 0);
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public void SendXBManyQuest(PackType type, int xbType)
|
| | | {
|
| | | var funcSet = GetXBFuncSet(xbType);
|
| | | if (CheckIsEmptyGrid(type))
|
| | | {
|
| | | int toolCnt = 0;
|
| | | int needToolCnt = 0;
|
| | | if (IsHaveManyXBTool(xbType, out toolCnt, out needToolCnt))
|
| | | {
|
| | | needToolCnt = needToolCnt - toolCnt;
|
| | | int needMoney = needToolCnt * funcSet.xbPrices[0];
|
| | | if (needMoney > 0)
|
| | | {
|
| | | ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(funcSet.costToolIds[1]);
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], itemConfig.ItemName, needMoney, needToolCnt), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | CheckXBManyLimit(needMoney, xbType);
|
| | | }
|
| | | return;
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(0, xbType);
|
| | | }
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(funcSet.xbPrices[1],xbType);
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | public void CheckXBManyLimit(int needMoney,int xbtype)
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
|
| | | {
|
| | | SendXBQuest(xbtype, 1, 2);
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | }
|
| | | #endregion
|
| | |
|
| | | public bool IsHaveFreeXB(int type)
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | XBModel.StartXBEvent += OnStartXB;
|
| | | playerPack.RefreshItemCountAct += RefreshItemCount;
|
| | | XBModel.RefreshAgainXBAct += RefreshAgainXB;
|
| | | XBModel.RefreshRuneXBTimeAct += RefreshFreeTime;
|
| | |
| | | XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
|
| | | playerPack.RefreshItemCountAct -= RefreshItemCount;
|
| | | GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
|
| | | XBModel.StartXBEvent -= OnStartXB;
|
| | | }
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | |
| | | bool isXBMany = false;
|
| | | private void ClickXBManyBtn()
|
| | | {
|
| | | if (XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
|
| | | {
|
| | | int toolCnt = 0;
|
| | | int needToolCnt = 0;
|
| | | if (XBModel.IsHaveManyXBTool(2, out toolCnt,out needToolCnt))
|
| | | {
|
| | | needToolCnt = funcSet.costToolNums[1] - toolCnt;
|
| | | int needMoney = needToolCnt * xbOneMoney;
|
| | | if (needToolCnt > 0)
|
| | | {
|
| | | ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(funcSet.costToolIds[1]);
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], itemConfig.ItemName,needMoney, needToolCnt), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | CheckXBManyLimit(needMoney);
|
| | | }
|
| | | return;
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(xbManyMoney);
|
| | | }
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckXBManyLimit(xbManyMoney);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void CheckXBManyLimit(int needMoney)
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = true;
|
| | | XBModel.SendXBQuest(2, 1, 2);
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | XBModel.SendXBManyQuest(PackType.rptRunePack, 2);
|
| | | }
|
| | |
|
| | | private void ClickXBBtn()
|
| | | {
|
| | | if(XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
|
| | | {
|
| | | if (XBModel.IsHaveOneXBTool(2))
|
| | | {
|
| | | XBModel.SendXBQuest(2, 0, 2);
|
| | | }
|
| | | else
|
| | | {
|
| | | if (UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = false;
|
| | | XBModel.SendXBQuest(2, 0, 0);
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | }
|
| | | }
|
| | | }
|
| | | XBModel.SendOneXBQuest(PackType.rptRunePack, 2);
|
| | | }
|
| | |
|
| | | private void ClickFreeXbBtn()
|
| | | {
|
| | | if (XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | isXBMany = false;
|
| | | XBModel.SendXBQuest(2, 0, 1);
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnStartXB(int oneOrMany)
|
| | | {
|
| | | maskObj.SetActive(true);
|
| | | if (oneOrMany == 0)
|
| | | {
|
| | | isXBMany = false;
|
| | | }
|
| | | else
|
| | | {
|
| | | isXBMany = true;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void RefreshXBTypeInfo()
|
| | | {
|
| | | XBTypeInfo typeInfo = XBModel.GetXBInfoByType(2);
|
| | |
| | | SystemSetting.Instance.SetQualityLevel(GameQuality.Low);
|
| | | if (isInited)
|
| | | {
|
| | | SystemSetting.Instance.SetVSyncCount(2);
|
| | | SystemSetting.Instance.SetPlayerSyncCount(5);
|
| | | }
|
| | | }
|
| | |
| | | Shader.DisableKeyword("QUALITY_HGH");
|
| | | Shader.DisableKeyword("QUALITY_MED");
|
| | | Shader.EnableKeyword("QUALITY_LOW");
|
| | | SetVSyncCount(2);
|
| | | break;
|
| | | case GameQuality.Medium:
|
| | | Shader.globalMaximumLOD = 250;
|