Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
| | |
| | | /// <summary> |
| | | /// 支持渐变效果的文本组件 |
| | | /// </summary> |
| | | public class GradientText : Text |
| | | public class GradientText : RichText |
| | | { |
| | | [Header("渐变设置")] |
| | | [SerializeField] |
| | |
| | | { |
| | | //LoadAsset 已经有缓存SkeletonDataAsset |
| | | spineComp.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("UIEffect/" + effectConfig.packageName, effectConfig.fxName); |
| | | //为true时会有部分特效不显示 如主界面装备特效;改成伽马后不会出现BUG故注释代码 |
| | | // spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA; |
| | | //为true时会有部分特效不显示 如满级经验条;改成伽马后部分特效正常,还有部分依然要改此设置 |
| | | spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA; |
| | | spineComp.raycastTarget = false; |
| | | spineComp.Initialize(true); |
| | | spineComp.timeScale = speedRate; |
| | |
| | | { |
| | | if (m_MaskMaterial == null) |
| | | { |
| | | Shader ellipseShader = Shader.Find("GUI/EllipseMask"); |
| | | Shader ellipseShader = ResManager.Instance.LoadAsset<Shader>("Shader", "GUI_EllipseMask"); |
| | | if (ellipseShader != null) |
| | | { |
| | | m_MaskMaterial = new Material(ellipseShader); |
| | |
| | | { |
| | | if (graphic.material == null || !graphic.material.shader.name.Contains("EllipseMaskedContent")) |
| | | { |
| | | Shader maskedShader = Shader.Find("GUI/EllipseMaskedContent"); |
| | | // Shader maskedShader = Shader.Find("GUI/EllipseMaskedContent"); |
| | | Shader maskedShader = ResManager.Instance.LoadAsset<Shader>("Shader", "GUI_EllipseMaskedContent"); |
| | | if (maskedShader != null) |
| | | { |
| | | Material maskedMaterial = new Material(maskedShader); |
| | |
| | | // 前面有重新InitManagers了 这里就不在做清除
|
| | | // ReleaseMgrs();
|
| | | ClearGameData();
|
| | | //销毁所有战场
|
| | | BattleManager.Instance.DestroyAllBattleField();
|
| | | }
|
| | |
|
| | | private static void ReleaseMgrs()
|
| | |
| | | {typeof(Sprite), "png"}, |
| | | {typeof(Texture2D), "jpg"}, |
| | | {typeof(Texture), "jpg"}, |
| | | { typeof(Shader), "shader"}, |
| | | {typeof(Shader), "shader"}, |
| | | {typeof(TextAsset), "txt"}, |
| | | {typeof(AudioClip), "wav"}, |
| | | {typeof(Font), "ttf"}, |
| | |
| | | //外部用到的自己加后缀,内部统一去除后缀名 |
| | | name = name.Substring(0, name.LastIndexOf(".")); |
| | | } |
| | | |
| | | //TODO: 临时特殊处理打包后的路径读取 |
| | | if (directory == "UI" || directory == "UIComp" || directory.StartsWith("Sprite") |
| | | || directory == "Battle/Prefabs" || directory == "Materials") |
| | | { |
| | |
| | | { |
| | | directory = "maps/" + name; |
| | | } |
| | | else if (directory.Contains("Shader")) |
| | | { |
| | | directory = "graphic/shader"; |
| | | } |
| | | |
| | | |
| | | var assetInfo = new AssetInfo(directory.ToLower(), name.ToLower()); |
| | |
| | | } |
| | | Display(); |
| | | CreateScroller(); |
| | | if (!FirstChargeManager.Instance.GetLocalFail()) |
| | | { |
| | | FirstChargeManager.Instance.SetLocalFail(); |
| | | } |
| | | FirstChargeManager.Instance.TryPopWin("ArenaBattleFailWin"); |
| | | } |
| | | |
| | |
| | | recordPlayer.HaveRest(); |
| | | battleObjMgr.HaveRest(BattleCamp.Red); |
| | | battleObjMgr.DestroyTeam(BattleCamp.Blue); |
| | | SetBattleStartState(); |
| | | SetBattleMode(BattleMode.Stop); |
| | | } |
| | | |
| | | //清场敌方但不终止战斗,用于切换主线BOSS战斗后,正常显示敌方 |
| | | public virtual void CleanBattle() |
| | | { |
| | | battleEffectMgr.HaveRest(); |
| | | battleTweenMgr.HaveRest(); |
| | | recordPlayer.HaveRest(); |
| | | battleObjMgr.HaveRest(BattleCamp.Blue); |
| | | battleObjMgr.DestroyTeam(BattleCamp.Blue); |
| | | SetBattleStartState(); |
| | | } |
| | | |
| | | public bool IsBattleEnd() |
| | | { |
| | | return IsBattleFinish; |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public void DestroyAllBattleField() |
| | | { |
| | | foreach (var kvp in battleFields) |
| | | { |
| | | BattleField battleField = kvp.Value; |
| | | if (battleField == null) |
| | | continue; |
| | | |
| | | DestroyBattleField(battleField); |
| | | } |
| | | } |
| | | } |
| | |
| | | var heroInfoBarScale = heroInfoBar.transform.localScale; |
| | | heroInfoBarScale.x *= Camp == BattleCamp.Red ? 1 : -1; |
| | | heroInfoBar.transform.localScale = heroInfoBarScale; |
| | | |
| | | heroInfoBar.SetActive(true); |
| | | if (battleField is StoryBattleField && (battleField as StoryBattleField).battleState == StoryBattleState.Break) |
| | | { |
| | | //主线关卡休息中的不显示血条 |
| | | heroInfoBar.SetActive(false); |
| | | } |
| | | else |
| | | { |
| | | heroInfoBar.SetActive(true); |
| | | } |
| | | SetFront(); |
| | | } |
| | | |
| | |
| | | var betterAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, totalValue, config.NeedValue, 1); |
| | | for (int i = 0; i < betterAwards.Length; i++) |
| | | { |
| | | int itemID = config.ZLRewardItemList[i][0]; |
| | | betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1])); |
| | | betterAwards[i].button.AddListener(() => |
| | | if (i < config.ZLRewardItemList.Length) |
| | | { |
| | | GetAward(battlePassData, betterAwardState, itemID); |
| | | }); |
| | | betterGotRects[i].SetActive(betterAwardState == 2); |
| | | betterCanGetAwardRects[i].SetActive(betterAwardState == 1); |
| | | betterLockRects[i].SetActive(battlePassData.isActivite == 0); |
| | | betterAwards[i].SetActive(true); |
| | | int itemID = config.ZLRewardItemList[i][0]; |
| | | betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1])); |
| | | betterAwards[i].button.AddListener(() => |
| | | { |
| | | GetAward(battlePassData, betterAwardState, itemID); |
| | | }); |
| | | betterGotRects[i].SetActive(betterAwardState == 2); |
| | | betterCanGetAwardRects[i].SetActive(betterAwardState == 1); |
| | | betterLockRects[i].SetActive(battlePassData.isActivite == 0); |
| | | } |
| | | else |
| | | { |
| | | betterAwards[i].SetActive(false); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | var ctgID = BattlePassManager.Instance.GetCTGIDByType(battlePasstype);
|
| | | var config = CTGConfig.Get(ctgID);
|
| | | welfarePerText.text = config.Percentage + "%";
|
| | | if (!config.GainItemList.IsNullOrEmpty() && config.GainItemList.Length >= 2)
|
| | | {
|
| | | //约定第二个物品
|
| | | itemNameText.text = Language.Get("BattlePass8", config.GainItemList[1][1], ItemConfig.Get(config.GainItemList[1][0]).ItemName);
|
| | | }
|
| | |
|
| | | itemNameText.text = Language.Get("BattlePassAD" + battlePasstype);
|
| | | tabNameText.text = Language.Get("BattlePassTab" + battlePasstype);
|
| | | titleText.text = Language.Get("BattlePassTitle" + battlePasstype);
|
| | | }
|
| | |
| | | lockRect.SetActive(battlePassData.isActivite == 0);
|
| | | scroller.m_Scorller.RefreshActiveCellViews();
|
| | |
|
| | | var _rect = scroller.GetComponent<RectTransform>();
|
| | | if (battlePassData.isActivite == 0)
|
| | | {
|
| | | rechargeRect.SetActive(true);
|
| | |
| | | {
|
| | | ItemTipUtility.Show(itemID);
|
| | | });
|
| | | _rect.sizeDelta = new Vector2(_rect.rect.width, 630);
|
| | | }
|
| | | else
|
| | | {
|
| | | rechargeRect.SetActive(false);
|
| | | _rect.sizeDelta = new Vector2(_rect.rect.width, 757);
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | |
|
| | | void ShowTotalValueStr()
|
| | |
| | | |
| | | public class FirstChargeManager : GameSystemManager<FirstChargeManager> |
| | | { |
| | | public const int FuncID = 21; |
| | | public int taskID; |
| | | public int nextTaskID; |
| | | public int mainItemId { get { return GetMainItemId(); } } |
| | | public int heroItemID; |
| | | public int maxGiftCount |
| | |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; |
| | | DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; |
| | | RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; |
| | | TaskManager.Instance.OnTaskUpdate += OnTaskUpdate; |
| | | InitClickTabDict(); |
| | | InitRedPoint(); |
| | | } |
| | |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; |
| | | DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk; |
| | | RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; |
| | | TaskManager.Instance.OnTaskUpdate -= OnTaskUpdate; |
| | | } |
| | | |
| | | private void OnFuncStateChangeEvent(int obj) |
| | | |
| | | public event Action OnFirstChargeTaskUpdateEvent; |
| | | int beforeMainID; |
| | | private void OnTaskUpdate() |
| | | { |
| | | if (FuncID == obj) |
| | | int currentTaskID = TaskManager.Instance.mainTask.TaskID; |
| | | |
| | | if (beforeMainID == taskID && currentTaskID == nextTaskID) |
| | | { |
| | | string key = $"FirstCharge_FirstTime_{FuncID}_{PlayerDatas.Instance.baseData.PlayerID}"; |
| | | string key = $"FirstCharge_FirstTime_{taskID}_{PlayerDatas.Instance.baseData.PlayerID}"; |
| | | if (!LocalSave.HasKey(key)) |
| | | { |
| | | // 第一次开启功能 |
| | | // 第一次完成任务 |
| | | LocalSave.SetBool(key, true); |
| | | PopupWindowsProcessor.Instance.Add("FirstChargeWin"); |
| | | OnFirstChargeTaskUpdateEvent?.Invoke(); |
| | | } |
| | | } |
| | | beforeMainID = currentTaskID; |
| | | } |
| | | |
| | | public void InitClickTabDict() |
| | |
| | | public void OnBeforePlayerDataInitializeEvent() |
| | | { |
| | | firstChargeInfoDict.Clear(); |
| | | |
| | | FuncConfigConfig config = FuncConfigConfig.Get("FirstCharge"); |
| | | taskID = int.Parse(config.Numerical1); |
| | | nextTaskID = int.Parse(config.Numerical2); |
| | | } |
| | | |
| | | public void OnPlayerLoginOk() |
| | | { |
| | | if (FuncOpen.Instance.IsFuncOpen(FuncID) && TryGetUnBuyFirstId(out int firstId)) |
| | | if (IsFuncOpen() && TryGetUnBuyFirstId(out int firstId)) |
| | | { |
| | | PopupWindowsProcessor.Instance.Add("FirstChargeWin"); |
| | | } |
| | |
| | | return; |
| | | if (battleName == "TianziBillboradBattleField") |
| | | return; |
| | | if (!IsFuncOpen()) |
| | | return; |
| | | if (!TryGetUnBuyFirstId(out int firstId)) |
| | | return; |
| | | if (!UIManager.Instance.IsOpened<FirstChargeWin>()) |
| | |
| | | } |
| | | } |
| | | |
| | | public string loaclKey = "FirstCharge_Fail_"; |
| | | |
| | | public bool GetLocalFail() |
| | | { |
| | | return LocalSave.GetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId)); |
| | | } |
| | | |
| | | public void SetLocalFail() |
| | | { |
| | | LocalSave.SetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId), true); |
| | | } |
| | | |
| | | public bool IsFuncOpen() |
| | | { |
| | | if (IsBuyOne()) |
| | | return true; |
| | | if (TaskConfig.HasKey(taskID) && |
| | | TaskManager.Instance.mainTask != null && |
| | | TaskConfig.HasKey(TaskManager.Instance.mainTask.TaskID) && |
| | | TaskManager.Instance.GetNeedFinishTaskCount(taskID) <= 0) |
| | | return true; |
| | | bool isLocalFail = GetLocalFail(); |
| | | return isLocalFail; |
| | | } |
| | | |
| | | // 有一档被购买就返回true |
| | | public bool IsBuyOne() |
| | | { |
| | | var firstChargeList = FirstChargeConfig.GetKeys(); |
| | | if (firstChargeList != null) |
| | | { |
| | | firstChargeList.Sort(); |
| | | foreach (int item in firstChargeList) |
| | | { |
| | | if (TryGetFirstChargeDataByFirstId(item, out FirstChargeData data)) |
| | | { |
| | | if (data.IsUnlock() && data.IsBuy()) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public bool TryGetUnBuyFirstId(out int firstId) |
| | | { |
| | | firstId = 0; |
| | |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using Cysharp.Threading.Tasks; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | |
| | | RefreshFetter(); |
| | | RefreshGift(); |
| | | RefreshAwake(); |
| | | ForceRefreshLayout(); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 强制刷新Layout,解决嵌套Layout和ContentSizeFitter的重叠问题 |
| | | /// </summary> |
| | | async UniTask ForceRefreshLayout() |
| | | { |
| | | await UniTask.DelayFrame(2); |
| | | // 刷新所有Layout组件 |
| | | var layouts = allAttrScroll.GetComponentsInChildren<LayoutGroup>(true); |
| | | foreach (var layout in layouts) |
| | | { |
| | | LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>()); |
| | | } |
| | | await UniTask.DelayFrame(2); |
| | | // 刷新所有Layout组件 |
| | | foreach (var layout in layouts) |
| | | { |
| | | LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>()); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | void RefreshConn() |
| | |
| | | foldImg.SetActive(true); |
| | | unfoldImg.SetActive(false); |
| | | attrPanel.localPosition = foldPos.localPosition; |
| | | //禁止attrScroll滚动 |
| | | allAttrScroll.enabled = false; |
| | | // //禁止attrScroll滚动 |
| | | // allAttrScroll.enabled = false; |
| | | var _rect = allAttrScroll.GetComponent<RectTransform>(); |
| | | _rect.sizeDelta = new Vector2(_rect.rect.width, 197); |
| | | |
| | | } |
| | | else |
| | |
| | | foldImg.SetActive(false); |
| | | unfoldImg.SetActive(true); |
| | | attrPanel.localPosition = unfoldPos.localPosition; |
| | | allAttrScroll.enabled = true; |
| | | // allAttrScroll.enabled = true; |
| | | var _rect = allAttrScroll.GetComponent<RectTransform>(); |
| | | _rect.sizeDelta = new Vector2(_rect.rect.width, 933); |
| | | } |
| | | } |
| | | |
| | |
| | | //推荐最多6个,存在相同heroid,则跳过 |
| | | List<string> selectHeroList = new List<string>(); |
| | | List<int> selectHeroIDList = new List<int>(); |
| | | |
| | | int maxCnt = TeamConst.MaxTeamHeroCount - lockIndexList.Count; |
| | | for (int i = 0; i < tmpList.Count; i++) |
| | | { |
| | | if (selectHeroList.Count >= TeamConst.MaxTeamHeroCount) |
| | | if (selectHeroList.Count >= maxCnt) |
| | | break; |
| | | |
| | | string guid = tmpList[i]; |
| | |
| | | // Debug.LogError("moneyType == 0"); |
| | | return; |
| | | } |
| | | numText.text = UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(moneyType)); |
| | | double count = UIHelper.GetMoneyCnt(moneyType); |
| | | int decimalPlaces = 1; |
| | | if (moneyType == 99) |
| | | { |
| | | count = count / 100.0; |
| | | decimalPlaces = 2; |
| | | } |
| | | numText.text = UIHelper.ReplaceLargeNum(count, decimalPlaces); |
| | | if (resetIcon) |
| | | { |
| | | moneyIcon.SetIconWithMoneyType(moneyType); |
| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using DG.Tweening; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | |
| | | //经验区 |
| | | [SerializeField] Text playerLevelText; |
| | | [SerializeField] SmoothSlider expSlider; |
| | | [SerializeField] UIEffectPlayer fullEffect; |
| | | [SerializeField] UIEffectPlayer headEffect; |
| | | [SerializeField] Button officialUpBtn; |
| | | [SerializeField] Transform officialTip; |
| | | |
| | |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent; |
| | | OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent; |
| | | FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent += OnFirstChargeTaskUpdateEvent; |
| | | OfficialRankManager.Instance.RealmMissionRefreshEvent += OnOfficialCanLVUpEvent; |
| | | Display(); |
| | | DisplayFirstChargeBtn(); |
| | | |
| | |
| | | GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; |
| | | HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent; |
| | | OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent; |
| | | |
| | | FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent -= OnFirstChargeTaskUpdateEvent; |
| | | OfficialRankManager.Instance.RealmMissionRefreshEvent -= OnOfficialCanLVUpEvent; |
| | | // 关闭的时候把战斗界面也给关了 虽然是在外面开的 |
| | | UIManager.Instance.CloseWindow<BattleWin>(); |
| | | } |
| | |
| | | { |
| | | lastLV = PlayerDatas.Instance.baseData.LV; |
| | | lvUPEffect.Play(); |
| | | fullEffect.Play(closePMA: true); |
| | | headEffect.Stop(); |
| | | } |
| | | playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString(); |
| | | break; |
| | |
| | | private void UpdatePlayerInfo() |
| | | { |
| | | playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString(); |
| | | ShowExp(); |
| | | headEffect.transform.localPosition = new Vector3(400 * expSlider.value - 200 - 24, 0, 0); |
| | | ShowExp(false); |
| | | |
| | | } |
| | | |
| | | void ShowExp() |
| | | void ShowExp(bool showEffect = true) |
| | | { |
| | | var lvConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV); |
| | | expSlider.value = (float)PlayerDatas.Instance.baseData.curExp / lvConfig.EXP; |
| | | expSlider.Text.text = PlayerDatas.Instance.baseData.curExp + "/" + PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV).EXP; |
| | | if (showEffect) |
| | | { |
| | | headEffect.transform.DOLocalMove(new Vector3(400 * expSlider.value - 200 - 24, 0, 0), 0.5f); |
| | | headEffect.Play(closePMA:true); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | getReward.RewardType = 66; |
| | | getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID; |
| | | GameNetSystem.Instance.SendInfo(getReward); |
| | | return; |
| | | } |
| | | |
| | | TaskManager.Instance.ClickTask(); |
| | |
| | | |
| | | private void DisplayFirstChargeBtn() |
| | | { |
| | | bool isFirstChargeFuncOpen = FuncOpen.Instance.IsFuncOpen(FirstChargeManager.FuncID); |
| | | bool isFirstChargeFuncOpen = FirstChargeManager.Instance.IsFuncOpen(); |
| | | if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() && |
| | | FirstChargeManager.Instance.IsNextDayAfterAllClaimed()) |
| | | { |
| | |
| | | { |
| | | FirstChargeBtn.SetActive(isFirstChargeFuncOpen); |
| | | } |
| | | } |
| | | |
| | | private void OnFirstChargeTaskUpdateEvent() |
| | | { |
| | | DisplayFirstChargeBtn(); |
| | | } |
| | | |
| | | private void OnFuncStateChange(int funcId) |
| | | { |
| | | if (funcId == FirstChargeManager.FuncID) |
| | | { |
| | | DisplayFirstChargeBtn(); |
| | | } |
| | | else if (funcId == GeneralDefine.mainRightFuncOpenFuncID) |
| | | if (funcId == GeneralDefine.mainRightFuncOpenFuncID) |
| | | { |
| | | funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID)); |
| | | } |
| | |
| | | if (MainLevelManager.Instance.CanChallengeBoss()) |
| | | { |
| | | BattleManager.Instance.SendTurnFight(2); |
| | | BattleManager.Instance.storyBattleField.CleanBattle(); |
| | | AutoFightModel.Instance.isPause = true; |
| | | } |
| | | CloseWindow(); |
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (_ui.name == "StoryBossBattleWin")
|
| | | {
|
| | | var guides = GuideConfig.GetGuideListByType((int)GuideTriggerType.PassMainBoss);
|
| | | if (guides != null)
|
| | | {
|
| | | TryStartNewBieGuides(guides, true);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void OnTaskUpdateEvent()
|
| | |
| | | return TaskManager.Instance.GetMainTaskType() == config.Condition && TaskManager.Instance.GetMainTaskState() != 2;
|
| | | }
|
| | | return false;
|
| | | case GuideTriggerType.PassMainBoss:
|
| | | return PlayerDatas.Instance.baseData.ExAttr1/100 >= config.Condition;
|
| | | default:
|
| | | return false;
|
| | | }
|
| | |
| | | OpenWindow = 5, //打开界面的时机 如装备替换界面
|
| | | Level = 6, //等级满足条件
|
| | | Realm = 7, //官职所有任务完成时触发引导,如6升7,6的任务全部完成,配置6
|
| | | PassMainBoss = 8, //通关主线BOSS,在关闭界面StoryBossBattleWin时触发,触发条件为通关后的关卡如201
|
| | |
|
| | | } |
| | |
| | | CloseWindow();
|
| | | return;
|
| | | }
|
| | |
|
| | | Debug.Log($"引导ID:{NewBieCenter.Instance.currentGuide} 引导步骤:{step}");
|
| | |
|
| | | lastShowTime = Time.time;
|
| | |
|
| | | if (config.WinName != "EquipExchangeWin" && UIManager.Instance.IsOpened<EquipExchangeWin>())
|
| | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | if (!FirstChargeManager.Instance.GetLocalFail()) |
| | | { |
| | | FirstChargeManager.Instance.SetLocalFail(); |
| | | } |
| | | FirstChargeManager.Instance.TryPopWin("BattleFailWin"); |
| | | } |
| | | |
| | |
| | | { |
| | | int funcId = BoneFieldManager.Instance.funcId; |
| | | txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty; |
| | | if (!FirstChargeManager.Instance.GetLocalFail()) |
| | | { |
| | | FirstChargeManager.Instance.SetLocalFail(); |
| | | } |
| | | FirstChargeManager.Instance.TryPopWin("BoneBattleFailWin"); |
| | | } |
| | | |
| | |
| | | for (int i = 0; i < jsonData["itemInfo"].Count; i++) |
| | | { |
| | | JsonData itemData = jsonData["itemInfo"][i]; |
| | | Item itemInfo = new Item((int)itemData["ItemID"], (long)itemData["ItemID"]); |
| | | Item itemInfo = new Item((int)itemData["ItemID"], (long)itemData["Count"]); |
| | | itemInfos.Add(itemInfo); |
| | | } |
| | | } |
| | |
| | | /// 大数值转化 格式 最多两个小数 ,向下取整 |
| | | /// K -千,M -百萬,B-十億,T -萬億 |
| | | /// </summary> |
| | | public static string ReplaceLargeNum(double num) |
| | | public static string ReplaceLargeNum(double num, int decimalPlaces = 1) |
| | | { |
| | | const long K = 10000; //国内为万,海外为千 |
| | | const long M = K * 10000; |
| | |
| | | } |
| | | else if (num >= M) |
| | | { |
| | | return StringUtility.Contact(FormatWithoutRounding(num / M, 1), Language.Get("L1070")); |
| | | return StringUtility.Contact(FormatWithoutRounding(num / M, decimalPlaces), Language.Get("L1070")); |
| | | } |
| | | else if (num >= K) |
| | | { |
| | | return StringUtility.Contact(FormatWithoutRounding(num / K, 1), Language.Get("L1071")); |
| | | return StringUtility.Contact(FormatWithoutRounding(num / K, decimalPlaces), Language.Get("L1071")); |
| | | } |
| | | else |
| | | { |
| | | return FormatWithoutRounding(num, 1); |
| | | return FormatWithoutRounding(num, decimalPlaces); |
| | | } |
| | | } |
| | | |