From a9330418549ede9871b90124641820b82c1ae16c Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 22 一月 2019 19:40:11 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/Realm/ActivateShow.cs | 21 +
System/JadeDynastySkill/JadeDynastySkillWin.cs | 141 +++++++++++
System/JadeDynastySkill/JadeDynastySkillCell.cs | 82 ++++++
Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs.meta | 12 +
System/Realm/RealmPropertyUpWin.cs | 27 ++
System/JadeDynastySkill/JadeDynastySkillWin.cs.meta | 12 +
System/JadeDynastySkill.meta | 9
Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs | 44 +++
System/JadeDynastySkill/JadeDynastySkillModel.cs.meta | 12 +
UI/Common/FrameEffect.cs | 22 +
System/JadeDynastyKnapSack/JadeDynastyKnapSackWin.cs | 9
System/JadeDynastySkill/JadeDynastySkillCell.cs.meta | 12 +
System/JadeDynastySkill/JadeDynastySkillModel.cs | 260 +++++++++++++++++++++
13 files changed, 663 insertions(+), 0 deletions(-)
diff --git a/Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs b/Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs
new file mode 100644
index 0000000..976ed2a
--- /dev/null
+++ b/Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs
@@ -0,0 +1,44 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Tuesday, January 22, 2019
+//--------------------------------------------------------
+
+using UnityEngine;
+using System;
+
+namespace TableConfig {
+
+
+ public partial class SkillFrameAnimationConfig : ConfigBase {
+
+ public int skillTypeId { get ; private set ; }
+ public int totalTime { get ; private set ; }
+ public string[] spriteKeys;
+
+ public override string getKey()
+ {
+ return skillTypeId.ToString();
+ }
+
+ public override void Parse() {
+ try
+ {
+ skillTypeId=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
+
+ totalTime=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
+
+ spriteKeys = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ }
+ catch (Exception ex)
+ {
+ DebugEx.Log(ex);
+ }
+ }
+
+ }
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs.meta b/Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs.meta
new file mode 100644
index 0000000..bfc46f6
--- /dev/null
+++ b/Core/GameEngine/Model/Config/SkillFrameAnimationConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d2052f17dcdee634082ca8f214df0ecd
+timeCreated: 1548147951
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/JadeDynastyKnapSack/JadeDynastyKnapSackWin.cs b/System/JadeDynastyKnapSack/JadeDynastyKnapSackWin.cs
index 221aee7..5153c5b 100644
--- a/System/JadeDynastyKnapSack/JadeDynastyKnapSackWin.cs
+++ b/System/JadeDynastyKnapSack/JadeDynastyKnapSackWin.cs
@@ -7,6 +7,7 @@
public class JadeDynastyKnapSackWin : Window
{
[SerializeField] FunctionButton funcEquip;
+ [SerializeField] FunctionButton m_JadeDynastySkill;
[SerializeField] FunctionButtonGroup funcGroup;
[SerializeField] Button closeBtn;
[SerializeField] Button leftBtn;
@@ -23,6 +24,7 @@
leftBtn.AddListener(ClickLeft);
rightBtn.AddListener(ClickRight);
funcEquip.AddListener(ClickFuncEquip);
+ m_JadeDynastySkill.AddListener(OpenJadeDynastySkill);
}
protected override void OnPreOpen()
@@ -74,6 +76,13 @@
functionOrder = funcEquip.order;
}
+ private void OpenJadeDynastySkill()
+ {
+ CloseSubWindows();
+ WindowCenter.Instance.Open<JadeDynastySkillWin>();
+ functionOrder = m_JadeDynastySkill.order;
+ }
+
private void ClickClose()
{
CloseSubWindows();
diff --git a/System/JadeDynastySkill.meta b/System/JadeDynastySkill.meta
new file mode 100644
index 0000000..5429799
--- /dev/null
+++ b/System/JadeDynastySkill.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2f9ea79536d2476479a4288b9329e172
+folderAsset: yes
+timeCreated: 1548126896
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/JadeDynastySkill/JadeDynastySkillCell.cs b/System/JadeDynastySkill/JadeDynastySkillCell.cs
new file mode 100644
index 0000000..aaf0df9
--- /dev/null
+++ b/System/JadeDynastySkill/JadeDynastySkillCell.cs
@@ -0,0 +1,82 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+ public class JadeDynastySkillCell : CellView
+ {
+ [SerializeField] Transform m_ContainerSelect;
+ [SerializeField] Image m_SkillIcon;
+ [SerializeField] Text m_SkillName;
+ [SerializeField] Transform m_ContainerSkillLock;
+ [SerializeField] Text m_Condition;
+ [SerializeField] Text[] m_EquipPlaceNames;
+ [SerializeField] Transform m_ContainerLock;
+ [SerializeField] Transform m_ContainerUnlockable;
+ [SerializeField] Button m_Unlock;
+ [SerializeField] Transform m_ContainerUnlocked;
+
+ JadeDynastySkillModel model
+ {
+ get { return ModelCenter.Instance.GetModel<JadeDynastySkillModel>(); }
+ }
+
+ public void Display(int skillId)
+ {
+ m_ContainerSelect.gameObject.SetActive(skillId == model.selectSkill);
+
+ m_Unlock.RemoveAllListeners();
+
+ var skillConfig = Config.Instance.Get<SkillConfig>(skillId);
+ if (skillConfig != null)
+ {
+ m_SkillIcon.SetSprite(skillConfig.IconName);
+ m_SkillName.text = skillConfig.SkillName;
+ }
+
+ var skillState = model.GetSkillState(skillId);
+ m_ContainerSkillLock.gameObject.SetActive(skillState != JadeDynastySkillState.Unlocked);
+ JadeDynastySkillCondition condition;
+
+ var index = 0;
+ if (model.TryGetSkillCondition(skillId, out condition))
+ {
+ m_Condition.text = Language.Get("JadeDynastySkillContition", condition.level);
+ foreach (var equipPlace in condition.equipPlaces)
+ {
+ if (index < m_EquipPlaceNames.Length)
+ {
+ m_EquipPlaceNames[index].gameObject.SetActive(true);
+ m_EquipPlaceNames[index].text = Language.Get("", equipPlace);
+ m_EquipPlaceNames[index].color = skillState == JadeDynastySkillState.Unlocked || model.IsSatisfyEquipLevel(equipPlace, condition.level) ?
+ UIHelper.GetUIColor(TextColType.DarkGreen) : UIHelper.GetUIColor(TextColType.Gray, true);
+ }
+ index++;
+ }
+ }
+
+ for (int i = index; i < m_EquipPlaceNames.Length; i++)
+ {
+ m_EquipPlaceNames[i].gameObject.SetActive(false);
+ }
+
+ m_ContainerLock.gameObject.SetActive(skillState == JadeDynastySkillState.Lock);
+ m_ContainerUnlockable.gameObject.SetActive(skillState == JadeDynastySkillState.Unlockable);
+ m_ContainerUnlocked.gameObject.SetActive(skillState == JadeDynastySkillState.Unlocked);
+
+ if (skillState == JadeDynastySkillState.Unlockable)
+ {
+ m_Unlock.AddListener(() =>
+ {
+ C0304_tagCAddSkillPoint pak = new C0304_tagCAddSkillPoint();
+ pak.SkillID = (ushort)skillId;
+ GameNetSystem.Instance.SendInfo(pak);
+ });
+ }
+ }
+ }
+}
+
diff --git a/System/JadeDynastySkill/JadeDynastySkillCell.cs.meta b/System/JadeDynastySkill/JadeDynastySkillCell.cs.meta
new file mode 100644
index 0000000..e0ba1c4
--- /dev/null
+++ b/System/JadeDynastySkill/JadeDynastySkillCell.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 173092759a751964e8bce56c5d62f138
+timeCreated: 1548143731
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/JadeDynastySkill/JadeDynastySkillModel.cs b/System/JadeDynastySkill/JadeDynastySkillModel.cs
new file mode 100644
index 0000000..93d3760
--- /dev/null
+++ b/System/JadeDynastySkill/JadeDynastySkillModel.cs
@@ -0,0 +1,260 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using TableConfig;
+using UnityEngine;
+namespace Snxxz.UI
+{
+ public class JadeDynastySkillModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
+ {
+ Dictionary<int, List<int>> jadeDynastySkills = new Dictionary<int, List<int>>();
+ Dictionary<int, JadeDynastySkillCondition> skillConditions = new Dictionary<int, JadeDynastySkillCondition>();
+ Dictionary<int, Sprite[]> skillFrames = new Dictionary<int, Sprite[]>();
+ List<int> alreadyUnlockSkills = new List<int>();
+
+ bool serverInited = false;
+
+ public List<int> mySkills
+ {
+ get
+ {
+ var job = PlayerDatas.Instance.baseData.Job;
+ var key = (int)Mathf.Pow(2, job);
+ if (jadeDynastySkills.ContainsKey(key))
+ {
+ return jadeDynastySkills[key];
+ }
+ else
+ {
+ jadeDynastySkills[key] = new List<int>();
+ }
+ return jadeDynastySkills[key];
+ }
+ }
+
+ public readonly Redpoint redpoint = new Redpoint(117, 11702);
+
+ int m_SelectSkill;
+ public int selectSkill
+ {
+ get { return m_SelectSkill; }
+ set
+ {
+ if (m_SelectSkill != value)
+ {
+ m_SelectSkill = value;
+ if (selectSkillRefresh != null)
+ {
+ selectSkillRefresh(value);
+ }
+ }
+ }
+ }
+
+ public event Action<int> skillRefresh;
+ public event Action<int> selectSkillRefresh;
+
+ PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
+
+ public override void Init()
+ {
+ ParseConfig();
+ packModel.RefreshItemCountAct += RefreshItemCountAct;
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ }
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ alreadyUnlockSkills.Clear();
+ serverInited = false;
+ }
+
+ public void OnPlayerLoginOk()
+ {
+ serverInited = true;
+ UpdateRedpoint();
+ }
+
+ public override void UnInit()
+ {
+ packModel.RefreshItemCountAct -= RefreshItemCountAct;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ }
+
+ void ParseConfig()
+ {
+ {
+ var config = Config.Instance.Get<FuncConfigConfig>("EquipZhuXian");
+ var json = LitJson.JsonMapper.ToObject(config.Numerical3);
+ foreach (var skillIdKey in json.Keys)
+ {
+ var skillTypeId = int.Parse(skillIdKey);
+ var skillConfig = Config.Instance.Get<SkillConfig>(skillTypeId);
+ if (skillConfig == null)
+ {
+ continue;
+ }
+ List<int> list;
+ if (!jadeDynastySkills.TryGetValue(skillConfig.UseType, out list))
+ {
+ list = new List<int>();
+ jadeDynastySkills.Add(skillConfig.UseType, list);
+ }
+ list.Add(skillTypeId);
+ var levelKey = json[skillIdKey].Keys.First();
+ var level = int.Parse(levelKey);
+ skillConditions.Add(skillTypeId, new JadeDynastySkillCondition()
+ {
+ level = level,
+ equipPlaces = new List<int>(LitJson.JsonMapper.ToObject<int[]>(json[skillIdKey][levelKey].ToJson())),
+ });
+ }
+ }
+
+ foreach (var skills in jadeDynastySkills.Values)
+ {
+ skills.Sort(Compare);
+ }
+ }
+
+ public bool IsSatisfyEquipLevel(int equipPlace, int level)
+ {
+ var itemModel = packModel.GetItemModelByIndex(PackType.rptJadeDynastyEquip, equipPlace);
+ if (itemModel != null)
+ {
+ return itemModel.chinItemModel.LV >= level;
+ }
+ return false;
+ }
+
+ public JadeDynastySkillState GetSkillState(int skillId)
+ {
+ if (alreadyUnlockSkills.Contains(skillId))
+ {
+ return JadeDynastySkillState.Unlocked;
+ }
+ JadeDynastySkillCondition condition;
+ if (TryGetSkillCondition(skillId, out condition))
+ {
+ foreach (var equipPlace in condition.equipPlaces)
+ {
+ if (!IsSatisfyEquipLevel(equipPlace, condition.level))
+ {
+ return JadeDynastySkillState.Lock;
+ }
+ }
+ }
+ return JadeDynastySkillState.Unlockable;
+ }
+
+ public bool TryGetSkillCondition(int skillId, out JadeDynastySkillCondition condition)
+ {
+ return skillConditions.TryGetValue(skillId, out condition);
+ }
+
+ public bool TryGetSkillFrames(int skillId, out Sprite[] _sprites)
+ {
+ if (!skillFrames.ContainsKey(skillId))
+ {
+ var config = Config.Instance.Get<SkillFrameAnimationConfig>(skillId);
+ if (config != null)
+ {
+ Sprite[] sprites = new Sprite[config.spriteKeys.Length];
+ for (int i = 0; i < config.spriteKeys.Length; i++)
+ {
+ var sprite = UILoader.LoadSprite(config.spriteKeys[i]);
+ sprites[i] = sprite;
+ }
+ skillFrames.Add(skillId, sprites);
+ }
+ }
+ return skillFrames.TryGetValue(skillId, out _sprites);
+ }
+
+ public void OnReceivePackage(H0310_tagRoleSkillChange package)
+ {
+ var skillConfig = Config.Instance.Get<SkillConfig>(package.NewSkillID);
+ if (skillConfig != null &&
+ mySkills.Contains(skillConfig.SkillTypeID))
+ {
+ if (!alreadyUnlockSkills.Contains(skillConfig.SkillTypeID))
+ {
+ alreadyUnlockSkills.Add(skillConfig.SkillTypeID);
+ if (skillRefresh != null)
+ {
+ skillRefresh(skillConfig.SkillTypeID);
+ }
+
+ if (serverInited)
+ {
+ if (!NewBieCenter.Instance.inGuiding
+ && !WindowCenter.Instance.IsOpen<RealmPropertyUpWin>())
+ {
+ ActivateShow.JadeDynastySkillUnlock(skillConfig.SkillTypeID);
+ }
+ }
+ }
+ UpdateRedpoint();
+ }
+ }
+
+ private int Compare(int lhs, int rhs)
+ {
+ if (skillConditions.ContainsKey(lhs)
+ && skillConditions.ContainsKey(rhs))
+ {
+ return skillConditions[lhs].level.CompareTo(skillConditions[rhs].level);
+ }
+ return 0;
+ }
+
+ private void RefreshItemCountAct(PackType packType, int arg2, int arg3)
+ {
+ if (packType == PackType.rptJadeDynastyEquip)
+ {
+ UpdateRedpoint();
+ }
+ }
+
+ private void OnFuncStateChangeEvent(int id)
+ {
+ if (id == 167)
+ {
+ UpdateRedpoint();
+ }
+ }
+
+ void UpdateRedpoint()
+ {
+ var unlockable = false;
+ if (FuncOpen.Instance.IsFuncOpen(167))
+ {
+ foreach (var skill in mySkills)
+ {
+ var state = GetSkillState(skill);
+ if (state == JadeDynastySkillState.Unlockable)
+ {
+ unlockable = true;
+ break;
+ }
+ }
+ }
+ redpoint.state = unlockable ? RedPointState.Simple : RedPointState.None;
+ }
+ }
+
+ public struct JadeDynastySkillCondition
+ {
+ public int level;
+ public List<int> equipPlaces;
+ }
+
+ public enum JadeDynastySkillState
+ {
+ Lock,
+ Unlockable,
+ Unlocked,
+ }
+}
+
diff --git a/System/JadeDynastySkill/JadeDynastySkillModel.cs.meta b/System/JadeDynastySkill/JadeDynastySkillModel.cs.meta
new file mode 100644
index 0000000..6f9815d
--- /dev/null
+++ b/System/JadeDynastySkill/JadeDynastySkillModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 54964ff87641376429f6b467cf990d8e
+timeCreated: 1548127288
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/JadeDynastySkill/JadeDynastySkillWin.cs b/System/JadeDynastySkill/JadeDynastySkillWin.cs
new file mode 100644
index 0000000..cfa42e0
--- /dev/null
+++ b/System/JadeDynastySkill/JadeDynastySkillWin.cs
@@ -0,0 +1,141 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Tuesday, January 22, 2019
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI {
+
+ public class JadeDynastySkillWin : Window
+ {
+ [SerializeField] Text m_SkillDescription;
+ [SerializeField] Text m_SkillFightPower;
+ [SerializeField] FrameEffect m_SkillFrame;
+
+ [SerializeField] ScrollerController m_ScrollerControl;
+
+ JadeDynastySkillModel model
+ {
+ get { return ModelCenter.Instance.GetModel<JadeDynastySkillModel>(); }
+ }
+
+ #region Built-in
+ protected override void BindController()
+ {
+ }
+
+ protected override void AddListeners()
+ {
+ m_ScrollerControl.OnRefreshCell += OnRefreshCell;
+ }
+
+ protected override void OnPreOpen()
+ {
+ SetDefaultSelect();
+ Display();
+
+ model.selectSkillRefresh += SelectSkillRefresh;
+ model.skillRefresh += SkillRefresh;
+ }
+
+ protected override void OnAfterOpen()
+ {
+ }
+
+ protected override void OnPreClose()
+ {
+ model.selectSkillRefresh -= SelectSkillRefresh;
+ model.skillRefresh -= SkillRefresh;
+ }
+
+ protected override void OnAfterClose()
+ {
+ }
+ #endregion
+
+ void SetDefaultSelect()
+ {
+ foreach (var skill in model.mySkills)
+ {
+ if (model.GetSkillState(skill) == JadeDynastySkillState.Unlockable)
+ {
+ model.selectSkill = skill;
+ return;
+ }
+ }
+ model.selectSkill = model.mySkills[0];
+ }
+
+ void Display()
+ {
+ DisplaySkills();
+ DisplaySkillDetail();
+ }
+
+ void DisplaySkills()
+ {
+ m_ScrollerControl.Refresh();
+ foreach (var skill in model.mySkills)
+ {
+ m_ScrollerControl.AddCell(ScrollerDataType.Header, skill,OnSelectSkill);
+ }
+ m_ScrollerControl.Restart();
+
+ var index = model.mySkills.IndexOf(model.selectSkill);
+ if (index != -1)
+ {
+ m_ScrollerControl.JumpIndex(index);
+ }
+ }
+
+ void DisplaySkillDetail()
+ {
+ var skillConfig = Config.Instance.Get<SkillConfig>(model.selectSkill);
+ if (skillConfig != null)
+ {
+ m_SkillDescription.text = skillConfig.Description;
+ m_SkillFightPower.text = StringUtility.Contact("+", skillConfig.FightPower);
+
+ Sprite[] sprites;
+ if (model.TryGetSkillFrames(model.selectSkill, out sprites))
+ {
+ var config = Config.Instance.Get<SkillFrameAnimationConfig>(model.selectSkill);
+ m_SkillFrame.SetSprites(sprites, (float)config.totalTime / 1000);
+ }
+ }
+ }
+
+ private void SelectSkillRefresh(int skillId)
+ {
+ DisplaySkillDetail();
+ m_ScrollerControl.m_Scorller.RefreshActiveCellViews();
+ }
+
+ private void OnSelectSkill(CellView cell)
+ {
+ model.selectSkill = cell.index;
+ }
+
+ private void SkillRefresh(int id)
+ {
+ m_ScrollerControl.RefreshSingleCellView(id);
+ }
+
+ private void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var skillCell = cell as JadeDynastySkillCell;
+ skillCell.Display(cell.index);
+ }
+ }
+
+}
+
+
+
+
diff --git a/System/JadeDynastySkill/JadeDynastySkillWin.cs.meta b/System/JadeDynastySkill/JadeDynastySkillWin.cs.meta
new file mode 100644
index 0000000..05a64a0
--- /dev/null
+++ b/System/JadeDynastySkill/JadeDynastySkillWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6ed84d1a53f9ac844be81ad82535b43e
+timeCreated: 1548139898
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/Realm/ActivateShow.cs b/System/Realm/ActivateShow.cs
index e744694..4f5dd6b 100644
--- a/System/Realm/ActivateShow.cs
+++ b/System/Realm/ActivateShow.cs
@@ -361,6 +361,26 @@
}
}
+ public static void JadeDynastySkillUnlock(int skillId)
+ {
+ activateType = ActivateFunc.JadeDynastySkill;
+ skills.Clear();
+ fightPower = 0;
+ skills.Add(skillId);
+ titleIconKey = "UI_JH_6";
+
+ var config = Config.Instance.Get<SkillConfig>(skillId);
+ if (config != null)
+ {
+ fightPower = config.FightPower;
+ }
+
+ if (!WindowCenter.Instance.IsOpen<RealmPropertyUpWin>())
+ {
+ WindowCenter.Instance.Open<RealmPropertyUpWin>();
+ }
+ }
+
public static void PrepareSkillFly()
{
if (prepareFlySkillEvent != null)
@@ -384,6 +404,7 @@
Stove, //鐐间腹鐐夊崌绾�
TreasureSoul,//娉曞疂榄傞鍙栧睘鎬�
GodWeaponEffect,
+ JadeDynastySkill,
}
public struct PropertyCompare
diff --git a/System/Realm/RealmPropertyUpWin.cs b/System/Realm/RealmPropertyUpWin.cs
index 45bfd1a..4fac64c 100644
--- a/System/Realm/RealmPropertyUpWin.cs
+++ b/System/Realm/RealmPropertyUpWin.cs
@@ -30,6 +30,7 @@
[SerializeField] SkillBehaviour[] m_Skills;
[SerializeField] RectTransform m_ContainerNewGotSkill;
[SerializeField] SkillBehaviour m_NewGotSkill;
+ [SerializeField] FrameEffect m_NewGotSkillFrame;
[SerializeField] RectTransform m_NewGotSkillPoint;
[SerializeField] RectTransform m_ContainerRealm;
[SerializeField] RectTransform m_ContainerRealmUp;
@@ -73,6 +74,7 @@
m_ContainerRealm.gameObject.SetActive(false);
m_ContainerTreasureSoul.gameObject.SetActive(false);
m_ContainerGodWeaponEffect.gameObject.SetActive(false);
+ m_NewGotSkillFrame.gameObject.SetActive(false);
m_DisplayAlphaTween.SetStartState();
flying = false;
startFly = false;
@@ -162,6 +164,10 @@
DisplayFightPower();
DisplayLv();
DisplayGodWeaponEffect();
+ DisplayNewGotSkill();
+ break;
+ case ActivateShow.ActivateFunc.JadeDynastySkill:
+ DisplayFightPower();
DisplayNewGotSkill();
break;
}
@@ -365,6 +371,15 @@
}
}
break;
+ case ActivateShow.ActivateFunc.JadeDynastySkill:
+ m_ContainerNewGotSkill.gameObject.SetActive(ActivateShow.skills.Count > 0);
+ if (ActivateShow.skills.Count == 0)
+ {
+ return;
+ }
+ m_NewGotSkill.DisplayNewGot(ActivateShow.skills[0]);
+ DisplaySkillFrame(ActivateShow.skills[0]);
+ break;
default:
{
m_ContainerNewGotSkill.gameObject.SetActive(ActivateShow.skills.Count > 0);
@@ -400,6 +415,18 @@
m_GodWeaponStage.text = Language.Get("MagicWin_9", config.Name, stage);
}
+ void DisplaySkillFrame(int skillId)
+ {
+ m_NewGotSkillFrame.gameObject.SetActive(true);
+ var model = ModelCenter.Instance.GetModel<JadeDynastySkillModel>();
+ Sprite[] sprites;
+ if (model.TryGetSkillFrames(skillId, out sprites))
+ {
+ var config = Config.Instance.Get<SkillFrameAnimationConfig>(skillId);
+ m_NewGotSkillFrame.SetSprites(sprites, (float)config.totalTime / 1000);
+ }
+ }
+
void PrepareFly(int _skillId)
{
ActivateShow.PrepareSkillFly();
diff --git a/UI/Common/FrameEffect.cs b/UI/Common/FrameEffect.cs
index 9e2ee23..61c8786 100644
--- a/UI/Common/FrameEffect.cs
+++ b/UI/Common/FrameEffect.cs
@@ -45,6 +45,11 @@
timer += Time.deltaTime;
tempSumTime -= Time.deltaTime;
+ if (m_Sprites == null || m_Sprites.Length == 0)
+ {
+ return;
+ }
+
if(tempSumTime > 0)
{
if (timer > interval)
@@ -68,6 +73,23 @@
}
}
+ public void SetSprites(Sprite[] sprites,float _totalTime)
+ {
+ m_Sprites = sprites;
+ onceTime = _totalTime;
+ sumTime = _totalTime;
+ if (m_Sprites != null && m_Sprites.Length > 0)
+ {
+ interval = onceTime / m_Sprites.Length;
+ index = 0;
+ timer = 0f;
+ tempSumTime = sumTime;
+
+ m_Behaviour.overrideSprite = m_Sprites[index];
+ m_Behaviour.SetNativeSize();
+ }
+ }
+
}
}
--
Gitblit v1.8.0