| System/Chat/UIFrame.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/HeadPortraitTip.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/UpgradeWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmBreakWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmBreakWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmPromoteWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Effect/TimeMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Chat/UIFrame.cs
@@ -19,6 +19,8 @@ private float m_Interval = 0.1f; private int loopCount = 0; //0表示无限循环 private void Awake() { m_Image = GetComponent<Image>(); @@ -50,6 +52,7 @@ } run = true; int timeLoopCount = loopCount * sprites.Count; //计算总循环次数 动画的一个循环是所有图片播放一遍 m_Image.overrideSprite = sprites[0]; if (sprites.Count == 1) @@ -63,13 +66,20 @@ } TimeMgr.Instance.Register(m_Image, OnSpriteAnim, m_Interval, 0); TimeMgr.Instance.Register(m_Image, OnSpriteAnim, m_Interval, timeLoopCount); } void OnSpriteAnim(Component comp) { if (!run) return; if(sprites==null) { if (!TimeMgr.Instance.IsRegister(comp)) { this.SetActive(false); return; } if (sprites==null) { TimeMgr.Instance.UnRegister(m_Image); return; } @@ -78,9 +88,16 @@ } m_Image.overrideSprite = sprites[index]; index++; if (index >= sprites.Count) index = 0; if (index >= sprites.Count) index = 0; } public void SetLoopCount(int count) { loopCount = count; } private void OnDisable() { run = false; System/MainInterfacePanel/HeadPortraitTip.cs
@@ -346,10 +346,20 @@ } } void ShowLV() { var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel); var beforeConfig = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel - 1); int newRankLV = PlayerDatas.Instance.baseData.LV - beforeConfig.LVMax; _LVText.text = Language.Get("RealmLV1", Language.Get("LoadIconLV", PlayerDatas.Instance.baseData.LV), config.Name, Language.Get("L1091", UIHelper.ChineseNumber(newRankLV))); } void Initialize()//关于数据的初始化 { GetLv = PlayerDatas.Instance.baseData.LV; _LVText.text = PlayerDatas.Instance.baseData.LV.ToString();//等级的初始化 //_LVText.text = PlayerDatas.Instance.baseData.LV.ToString();//等级的初始化 ShowLV(); DisplayHp(); _PowerNumbern.text = PlayerDatas.Instance.baseData.FightPoint.ToString(); @@ -376,7 +386,7 @@ _PowerNumbern.text = PlayerDatas.Instance.baseData.FightPoint.ToString(); break; case PlayerDataType.LV://等级的刷新8 _LVText.text = PlayerDatas.Instance.baseData.LV.ToString(); ShowLV(); if (PlayerDatas.Instance.baseData.LV > GetLv) { GetLv = PlayerDatas.Instance.baseData.LV; System/MainInterfacePanel/UpgradeWin.cs
@@ -38,7 +38,7 @@ protected override void OnPreOpen() { m_UIAlphaTween.SetStartState(); m_UIAlphaTween2.SetStartState(); //m_UIAlphaTween2.SetStartState(); m_TextLV.text = PlayerDatas.Instance.baseData.LV.ToString(); m_TextLV2.SetActive(false); @@ -93,7 +93,7 @@ { yield return new WaitForSeconds(Delay); m_UIAlphaTween.Play(); m_UIAlphaTween2.Play(); //m_UIAlphaTween2.Play(); } #endregion private void windowBeforeClose(Window _window) System/Realm/RealmBreakWin.cs
New file @@ -0,0 +1,181 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, April 22, 2019 //-------------------------------------------------------- using System; using UnityEngine; using UnityEngine.UI; using DG.Tweening; using System.Text; namespace vnxbqy.UI { //渡劫界面 // 1. 计算有几道天雷 // 2. 过场云打开 // 3. 播放天雷动画 第几道 - 雷击动画 - 飘血动画(进度条变化) public class RealmBreakWin : Window { [SerializeField] RawImage rawPlayer; [SerializeField] UIEffect guochangyun; [SerializeField] RectTransform tianleiWord; [SerializeField] Image numImage; [SerializeField] UIFrame leiJiFrame; [SerializeField] Text hurtText; [SerializeField] IntensifySmoothSlider expSlider; [SerializeField] Text expText; //战力 int flashCount = 0; int currentFlash = 0; ulong hurtValue = 0; ulong curFightPointValue = 0; ulong maxFightPointValue = 0; RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { leiJiFrame.SetActive(false); hurtText.SetActive(false); tianleiWord.SetActive(false); //3-10道天雷,跨大境界就多一次 flashCount = Math.Min(PlayerDatas.Instance.baseData.realmLevel / 4 + 3, 9); //每道天雷伤害为 战力的 flashCount+1分之一 hurtValue = PlayerDatas.Instance.baseData.FightPoint / (ulong)(flashCount + 1); curFightPointValue = maxFightPointValue = PlayerDatas.Instance.baseData.FightPoint; currentFlash = 1; Display(); WholeAnimate(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { UI3DModelExhibition.Instance.StopShow(); } protected override void OnAfterClose() { } //protected override void LateUpdate() //{ //} #endregion void Display() { UI3DModelExhibition.Instance.ShowSitDownPlayer(rawPlayer, PlayerDatas.Instance.baseData.Job); } void WholeAnimate() { var squences = DOTween.Sequence(); if (currentFlash == 1) { guochangyun.Play(); guochangyun.target.GetAnimator().speed = 2f; expText.text = StringUtility.Contact(Language.Get("MainInterfacePanel_HeadPortraitTip_ZL"), Language.Get("BlessedLand036", curFightPointValue, maxFightPointValue)); expSlider.value = 1; squences.AppendInterval(0.5f); } //天道字 squences.AppendCallback(() => { numImage.SetSprite("DujieNum" + currentFlash); tianleiWord.transform.localScale = Vector3.one * 0.4f; tianleiWord.SetActive(true); }); squences.Append(tianleiWord.transform.DOScale(1, 0.2f)); squences.AppendInterval(0.2f); //雷击播放一次 squences.AppendCallback(() => { tianleiWord.SetActive(false); leiJiFrame.SetLoopCount(1); leiJiFrame.SetActive(true); SoundPlayer.Instance.PlayUIAudio(859); }); squences.AppendInterval(0.2f); // 进度条变化 squences.AppendCallback(() => { curFightPointValue = curFightPointValue - hurtValue; expText.text = StringUtility.Contact(Language.Get("MainInterfacePanel_HeadPortraitTip_ZL"), Language.Get("BlessedLand036", curFightPointValue, maxFightPointValue)); expSlider.delay = 0; expSlider.value = (float)curFightPointValue / maxFightPointValue; }); //飘血动画 squences.AppendCallback(() => { hurtText.SetActive(true); hurtText.text = ConvertToArtFont("EnemyAttack", hurtValue + (ulong)UnityEngine.Random.Range(0, (int)hurtValue / (flashCount * 2))); hurtText.transform.localPosition = new Vector3(0, -100, 0); hurtText.transform.localScale = Vector3.one * 0.5f; }); squences.Append(hurtText.transform.DOScale(2f, 0.1f)); squences.Join(hurtText.transform.DOLocalMoveY(60, 0.1f)); squences.Join(hurtText.DOFade(1, 0.1f)); squences.Append(hurtText.transform.DOPunchPosition(new Vector3(0,30,0), 0.3f, 10)); squences.AppendInterval(0.1f); squences.Append(hurtText.transform.DOScale(0.5f, 0.2f)); squences.Join(hurtText.DOFade(0, 0.2f)); //继续下一次到天雷结束 squences.onComplete = () => { currentFlash++; if (currentFlash <= flashCount) { WholeAnimate(); } else { Close(); WindowCenter.Instance.Open<RealmPromoteWin>(); } }; } string ConvertToArtFont(string _key, ulong _num) { var config = DamageNumConfig.Get(_key); var stringBuild = new StringBuilder(); stringBuild.Append((char)config.minus); var chars = _num.ToString(); for (var i = 0; i < chars.Length; i++) { var numChar = config.nums[(int)chars[i] - 48]; if (numChar > 0) { stringBuild.Append((char)numChar); } } return stringBuild.ToString(); } } } System/Realm/RealmBreakWin.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 8b5e413d7809cb74880d68bdcb1023e1 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Realm/RealmModel.cs
@@ -169,14 +169,15 @@ void ParseConfig() { realmMaxLevel = 0; List<int> stages = new List<int>(); m_RealmStages.Add(stages); var configs = RealmConfig.GetValues(); realmMaxLevel = configs.Count - 1; foreach (var config in configs) { if (config.Lv > realmMaxLevel) { realmMaxLevel = config.Lv; break; } if (config.Lv != 0) System/Realm/RealmPromoteWin.cs
@@ -68,7 +68,7 @@ protected override void LateUpdate() { timer += Time.deltaTime; if (timer >= 2f) if (timer >= 1f) { if (!m_CloseRemind.gameObject.activeSelf) { System/Realm/RealmWin.cs
@@ -301,7 +301,7 @@ // TryStartAnimation(); //} WindowCenter.Instance.Open<RealmPromoteWin>(); WindowCenter.Instance.Open<RealmBreakWin>(); } m_RealmBrief.Display(); UI/Effect/TimeMgr.cs
@@ -183,6 +183,11 @@ } } public bool IsRegister(Component comp) { return timeItems.ContainsKey(comp); } public void Register(SyntonyType type, float _totalTime, Action _func = null) { int index;