From 40beae8380dc59e5f5bc7f29b202ed2ed4ea839e Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 13 四月 2019 10:47:52 +0800
Subject: [PATCH] 6498 【前端】【2.0】主界面技能转盘修改
---
Core/GameEngine/DataToCtl/ConnectedState.cs | 6
System/AssetVersion/AssetVersionUtility.cs | 2
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs | 15
Core/GameEngine/Login/Launch.cs | 2
Fight/Actor/Skill/SkillManager.cs | 4
System/MainWin/MainWinSkillController.cs | 304 +++++++++++
System/MainWin/SkillButton.cs | 327 ++++++++---
System/NewBieGuidance/NewBieWin.cs | 2
System/Team/TeamModel.cs | 6
System/MainWin/AttackButton.cs | 1
System/MainInterfacePanel/IsShowXpButton.cs | 9
Fight/Actor/Status/Status_Base.cs | 3
System/Skill/TreasureSkillWin.cs | 9
System/Dungeon/DungeonModel.cs | 4
System/MainInterfacePanel/SkillButtonEffects.cs | 493 ------------------
Fight/Actor/Skill/Skill.cs | 54 -
System/Login/CrossServerLogin.cs | 11
System/MainWin/SkillContainer.cs | 108 ++-
Utility/Clock.cs | 119 ++--
System/CrossServerOneVsOne/CrossServerOneVsOneCyclicScroll.cs | 6
Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs | 10
Core/GameEngine/DataToCtl/CreateOrSelectRoleState.cs | 6
System/MainInterfacePanel/LongPressShowPanel.cs | 33 +
System/MainWin/MainWinSkillController.cs.meta | 12
Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB403_tagMCAttackFail.cs | 4
System/AssetVersion/InGameDownLoad.cs | 7
System/MainInterfacePanel/MainInterfaceWin.cs | 3
Fight/Actor/Status/StatusMgr.cs | 3
System/ClientVersion/VersionUtility.cs | 10
System/Login/ServerListCenter.cs | 6
System/Dungeon/NormalDungeonEntranceWin.cs | 2
31 files changed, 777 insertions(+), 804 deletions(-)
diff --git a/Core/GameEngine/DataToCtl/ConnectedState.cs b/Core/GameEngine/DataToCtl/ConnectedState.cs
index efebb6b..ad27e81 100644
--- a/Core/GameEngine/DataToCtl/ConnectedState.cs
+++ b/Core/GameEngine/DataToCtl/ConnectedState.cs
@@ -65,7 +65,7 @@
{
if (clock != null)
{
- clock.Stop();
+ Clock.Stop(clock);
}
clock = null;
@@ -90,9 +90,9 @@
if (clock != null)
{
- clock.Stop();
+ Clock.Stop(clock);
}
- clock = Clock.Create(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
+ clock = Clock.AlarmAt(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
}
private void OnDetectEnd()
diff --git a/Core/GameEngine/DataToCtl/CreateOrSelectRoleState.cs b/Core/GameEngine/DataToCtl/CreateOrSelectRoleState.cs
index 761a9c2..97dfbfa 100644
--- a/Core/GameEngine/DataToCtl/CreateOrSelectRoleState.cs
+++ b/Core/GameEngine/DataToCtl/CreateOrSelectRoleState.cs
@@ -60,7 +60,7 @@
{
if (clock != null)
{
- clock.Stop();
+ Clock.Stop(clock);
}
clock = null;
base.OnExit();
@@ -77,9 +77,9 @@
if (clock != null)
{
- clock.Stop();
+ Clock.Stop(clock);
}
- clock = Clock.Create(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
+ clock = Clock.AlarmAt(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
}
private void OnDetectEnd()
diff --git a/Core/GameEngine/Login/Launch.cs b/Core/GameEngine/Login/Launch.cs
index a7d810b..b27ce39 100644
--- a/Core/GameEngine/Login/Launch.cs
+++ b/Core/GameEngine/Login/Launch.cs
@@ -61,7 +61,6 @@
#endif
#endif
-
tasks.Enqueue(checkAssetValidTask);
tasks.Enqueue(downLoadAssetTask);
tasks.Enqueue(assetBundleInitTask);
@@ -361,6 +360,7 @@
GlobalTimeEvent.Instance.Begin();
PackageRegedit.Init();
+ Clock.Init();
// ## PocoManager Start
if (VersionConfig.Get().appId.Equals("test"))
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs b/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
index f0d654e..f74280a 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
@@ -13,10 +13,8 @@
public static event SkillChangeHandler SkillChangeEvent;
MountModel m_HorseModel;
- MountModel horsemodel
- {
- get
- {
+ MountModel horsemodel {
+ get {
return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>());
}
}
@@ -57,9 +55,9 @@
{
Skill _skill = _hero.SkillMgr.Get(vNetData.NewSkillID);
_skill.cd = vNetData.RemainTime * Constants.F_GAMMA;
- if (_skill.RefreshCD != null)
+ if (Skill.RefreshCD != null)
{
- _skill.RefreshCD(vNetData.RemainTime * Constants.F_GAMMA, _skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
+ Skill.RefreshCD(_skill.id, vNetData.RemainTime * Constants.F_GAMMA, _skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
}
if (_skill.skillInfo.config.FuncType == 9)
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB403_tagMCAttackFail.cs b/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB403_tagMCAttackFail.cs
index b885f6f..766e0b6 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB403_tagMCAttackFail.cs
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HB4_Fight/DTCB403_tagMCAttackFail.cs
@@ -41,9 +41,9 @@
_skill.ClearServerHurtList();
_skill.DoPreparingFail(_hero.ServerInstID);
- if (_skill.RefreshCD != null)
+ if (Skill.RefreshCD != null)
{
- _skill.RefreshCD(0, _skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
+ Skill.RefreshCD(_skill.id, 0, _skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
}
}
}
\ No newline at end of file
diff --git a/Fight/Actor/Skill/Skill.cs b/Fight/Actor/Skill/Skill.cs
index ec6b5b9..34e6194 100644
--- a/Fight/Actor/Skill/Skill.cs
+++ b/Fight/Actor/Skill/Skill.cs
@@ -13,27 +13,23 @@
public static event System.Action<int> OnSkillCDFinished;
public static event System.Action<uint, int> OnSkillCast;
- public UnityEngine.Events.UnityAction<float, float> RefreshCD;
+ public static UnityEngine.Events.UnityAction<int, float, float> RefreshCD;
public event System.Action<uint> OnPreparingEnd;
public event System.Action<uint> OnPreparingFail;
public event System.Action OnPreparingCast;
public uint OwnerID { get; private set; }
- public int id
- {
+ public int id {
get; private set;
}
private float m_Cd;
- public float cd
- {
- get
- {
+ public float cd {
+ get {
return m_Cd;
}
- set
- {
+ set {
m_Cd = value;
}
}
@@ -54,14 +50,11 @@
public List<Vector3> warnPosList = new List<Vector3>();// 棰勮鏃跺�欑殑浣嶇疆
private bool m_CSkillPrepareEnd;
- public bool CSkillPrepareEnd
- {
- get
- {
+ public bool CSkillPrepareEnd {
+ get {
return m_CSkillPrepareEnd;
}
- set
- {
+ set {
m_CSkillPrepareEnd = value;
}
}
@@ -75,40 +68,31 @@
}
private E_SkillPrepareStatus m_SSkillPrepareStatus = E_SkillPrepareStatus.None;
- public E_SkillPrepareStatus SSkillPrepareStatus
- {
- get
- {
+ public E_SkillPrepareStatus SSkillPrepareStatus {
+ get {
return m_SSkillPrepareStatus;
}
- set
- {
+ set {
m_SSkillPrepareStatus = value;
}
}
private bool m_SkillPreparing = false;
- public bool SkillPreparing
- {
- get
- {
+ public bool SkillPreparing {
+ get {
return m_SkillPreparing;
}
- set
- {
+ set {
m_SkillPreparing = value;
}
}
private bool m_SkillCompelete = true;
- public bool SkillCompelete
- {
- get
- {
+ public bool SkillCompelete {
+ get {
return m_SkillCompelete;
}
- set
- {
+ set {
m_SkillCompelete = value;
//if (id == 251)
//{
@@ -201,7 +185,7 @@
{
if (RefreshCD != null)
{
- RefreshCD(cd, cd);
+ RefreshCD(id, cd, cd);
}
}
}
@@ -216,7 +200,7 @@
cd = skillInfo.config.CoolDownTime * Constants.F_GAMMA;
if (RefreshCD != null)
{
- RefreshCD(cd, cd);
+ RefreshCD(id,cd, cd);
}
}
}
diff --git a/Fight/Actor/Skill/SkillManager.cs b/Fight/Actor/Skill/SkillManager.cs
index dcd3b13..e521797 100644
--- a/Fight/Actor/Skill/SkillManager.cs
+++ b/Fight/Actor/Skill/SkillManager.cs
@@ -49,10 +49,10 @@
&& _skill.skillInfo != null
&& _skill.skillInfo.config != null)
{
- if (_skill.RefreshCD != null)
+ if ( Skill.RefreshCD != null)
{
_skill.cd = 0;
- _skill.RefreshCD(0, _skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
+ Skill.RefreshCD( _skill.id,0, _skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
}
}
}
diff --git a/Fight/Actor/Status/StatusMgr.cs b/Fight/Actor/Status/StatusMgr.cs
index 904b64b..cf9f470 100644
--- a/Fight/Actor/Status/StatusMgr.cs
+++ b/Fight/Actor/Status/StatusMgr.cs
@@ -175,7 +175,8 @@
for (int i = 0; i < _list.Count; ++i)
{
_skillInfo = SkillHelper.Instance.Get(_list[i].h0605.SkillID);
- if ((_skillInfo.config.ClientSkillSeriesLimit & 2) != 0)
+ if (_skillInfo.config.ClientSkillSeriesLimit == 0
+ || (_skillInfo.config.ClientSkillSeriesLimit & 2) == 0)
{
return true;
}
diff --git a/Fight/Actor/Status/Status_Base.cs b/Fight/Actor/Status/Status_Base.cs
index db1eaed..fa15e82 100644
--- a/Fight/Actor/Status/Status_Base.cs
+++ b/Fight/Actor/Status/Status_Base.cs
@@ -205,6 +205,7 @@
public bool CanUseSkill()
{
- return (m_SkillConfig.ClientSkillSeriesLimit & 2) != 0;
+ return m_SkillConfig.ClientSkillSeriesLimit == 0
+ || (m_SkillConfig.ClientSkillSeriesLimit & 2) == 0;
}
}
diff --git a/System/AssetVersion/AssetVersionUtility.cs b/System/AssetVersion/AssetVersionUtility.cs
index 1b68b8e..eea57e9 100644
--- a/System/AssetVersion/AssetVersionUtility.cs
+++ b/System/AssetVersion/AssetVersionUtility.cs
@@ -87,7 +87,7 @@
}
else
{
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), GetAssetVersionFile);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), GetAssetVersionFile);
}
}
diff --git a/System/AssetVersion/InGameDownLoad.cs b/System/AssetVersion/InGameDownLoad.cs
index 5832b0d..9176e2d 100644
--- a/System/AssetVersion/InGameDownLoad.cs
+++ b/System/AssetVersion/InGameDownLoad.cs
@@ -415,9 +415,10 @@
var endTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 3);
if (netSwitchClock != null)
{
- netSwitchClock.Stop();
+ Clock.Stop(netSwitchClock);
}
- netSwitchClock = Clock.Create(endTime, () =>
+
+ netSwitchClock = Clock.AlarmAt(endTime, () =>
{
if (CheckDominantDownLoad())
{
@@ -454,7 +455,7 @@
{
Pause();
var endTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 10);
- Clock.Create(endTime, () =>
+ Clock.AlarmAt(endTime, () =>
{
if (CheckDominantDownLoad())
{
diff --git a/System/ClientVersion/VersionUtility.cs b/System/ClientVersion/VersionUtility.cs
index 55e56ae..35495e1 100644
--- a/System/ClientVersion/VersionUtility.cs
+++ b/System/ClientVersion/VersionUtility.cs
@@ -97,7 +97,7 @@
else
{
step = Step.None;
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck);
}
}
@@ -144,7 +144,7 @@
}
else
{
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestApkDownConfigs);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestApkDownConfigs);
}
}
@@ -327,20 +327,20 @@
else
{
step = Step.None;
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
}
}
catch (System.Exception ex)
{
Debug.Log(ex);
step = Step.None;
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
}
}
else
{
step = Step.None;
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck);
}
}
diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneCyclicScroll.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneCyclicScroll.cs
index c789d9e..3dd4603 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneCyclicScroll.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneCyclicScroll.cs
@@ -50,7 +50,7 @@
showing = true;
this.enabled = false;
- Clock.Create(DateTime.Now + new TimeSpan((long)(0.5f * TimeSpan.TicksPerSecond)), OnUnfoldShowEnd);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan((long)(0.5f * TimeSpan.TicksPerSecond)), OnUnfoldShowEnd);
}
private void OnUnfoldShowEnd()
@@ -70,7 +70,7 @@
showAchievementBehaviour.alphaTween.SetStartState();
showAchievementBehaviour.alphaTween.Play();
var endTime = DateTime.Now + new TimeSpan((long)(fadeOutTime * TimeSpan.TicksPerSecond));
- Clock.Create(endTime, ReLocateItems);
+ Clock.AlarmAt(endTime, ReLocateItems);
}
void ReLocateItems()
@@ -80,7 +80,7 @@
ReLocateAllItems(showAchievementBehaviour);
var endTime = DateTime.Now + new TimeSpan((long)(relocationTime * TimeSpan.TicksPerSecond));
- Clock.Create(endTime, ShowEnd);
+ Clock.AlarmAt(endTime, ShowEnd);
}
void ShowEnd()
diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
index daf9d70..9af6b8b 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -73,9 +73,11 @@
public void OnSwitchAccount()
{
IsMatching = false;
- if (clientMatchClock!=null )
+
+ if (clientMatchClock != null)
{
- clientMatchClock.Stop();
+ Clock.Stop(clientMatchClock);
+ clientMatchClock = null;
}
}
@@ -470,7 +472,7 @@
var onMatchPackage = new HC002_tagGCCrossRealmPKStartMatch();
GameNetSystem.Instance.PushPackage(onMatchPackage, ServerType.Main);
var randomWaitSeconds = UnityEngine.Random.Range(3, 8);
- clientMatchClock = Clock.Create(DateTime.Now + new TimeSpan(randomWaitSeconds * TimeSpan.TicksPerSecond), () =>
+ clientMatchClock = Clock.AlarmAt(DateTime.Now + new TimeSpan(randomWaitSeconds * TimeSpan.TicksPerSecond), () =>
{
IsMatching = false;
if (GameNetSystem.Instance.netState == GameNetSystem.NetState.Connected)
@@ -489,9 +491,10 @@
}
else
{
- if (clientMatchClock != null && !clientMatchClock.stopped)
+ if (clientMatchClock != null )
{
- clientMatchClock.Stop();
+ Clock.Stop(clientMatchClock);
+ clientMatchClock = null;
IsMatching = false;
}
else
@@ -506,7 +509,7 @@
public void SendBuyMatchCount()
{
- CC102_tagCMCrossRealmPKBuy pKBuy = new CC102_tagCMCrossRealmPKBuy();
+ var pKBuy = new CC102_tagCMCrossRealmPKBuy();
GameNetSystem.Instance.SendInfo(pKBuy);
}
diff --git a/System/Dungeon/DungeonModel.cs b/System/Dungeon/DungeonModel.cs
index 069bc98..037259b 100644
--- a/System/Dungeon/DungeonModel.cs
+++ b/System/Dungeon/DungeonModel.cs
@@ -413,7 +413,7 @@
if (ok)
{
teamModel.RequestExitTeam();
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond),
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond),
() =>
{
m_CurrentDungeon = _dungeon;
@@ -708,7 +708,7 @@
if (_type == DungeonCoolDownType.WaitStart)
{
- Clock.Create(dungeonCoolDowns[_type], OnBeginCoolDownEnd);
+ Clock.AlarmAt(dungeonCoolDowns[_type], OnBeginCoolDownEnd);
}
}
diff --git a/System/Dungeon/NormalDungeonEntranceWin.cs b/System/Dungeon/NormalDungeonEntranceWin.cs
index 5f49d42..3667555 100644
--- a/System/Dungeon/NormalDungeonEntranceWin.cs
+++ b/System/Dungeon/NormalDungeonEntranceWin.cs
@@ -312,7 +312,7 @@
if (_ok)
{
teamModel.RequestExitTeam();
- Clock.Create(DateTime.Now + new TimeSpan(1 * TimeSpan.TicksPerSecond),
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(1 * TimeSpan.TicksPerSecond),
() =>
{
OpenDungeonSuppliesLack(_dungeon);
diff --git a/System/Login/CrossServerLogin.cs b/System/Login/CrossServerLogin.cs
index 2f71002..7822a2d 100644
--- a/System/Login/CrossServerLogin.cs
+++ b/System/Login/CrossServerLogin.cs
@@ -61,7 +61,7 @@
MaxProDef = (int)matchOK.MatchPlayer[0].MaxProDef,
};
- Clock.Create(DateTime.Now + new TimeSpan(3 * TimeSpan.TicksPerSecond), () =>
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(3 * TimeSpan.TicksPerSecond), () =>
{
if (oneVsOnePlayerData.waitForLoginCrossServer)
{
@@ -139,7 +139,7 @@
gamePortBuf = gamePort;
StopLoginOverTimeProcess();
- loginOverTimeClock = Clock.Create(DateTime.Now + new TimeSpan(30 * TimeSpan.TicksPerSecond), () =>
+ loginOverTimeClock = Clock.AlarmAt(DateTime.Now + new TimeSpan(30 * TimeSpan.TicksPerSecond), () =>
{
busy = false;
ReAccountLogin();
@@ -174,7 +174,7 @@
{
this.reconnectBackGround = true;
StopLoginOverTimeProcess();
- loginOverTimeClock = Clock.Create(DateTime.Now + new TimeSpan(30 * TimeSpan.TicksPerSecond), () =>
+ loginOverTimeClock = Clock.AlarmAt(DateTime.Now + new TimeSpan(30 * TimeSpan.TicksPerSecond), () =>
{
busy = false;
ReAccountLogin();
@@ -193,8 +193,9 @@
{
if (loginOverTimeClock != null)
{
- loginOverTimeClock.Stop();
+ Clock.Stop(loginOverTimeClock);
}
+
loginOverTimeClock = null;
}
@@ -263,7 +264,7 @@
var sendInfo = new CC003_tagCGForceQuitCrossState();
GameNetSystem.Instance.SendInfo(sendInfo);
GameNetSystem.Instance.crossServerConnected_Loigc = false;
- Clock.Create(DateTime.Now + new TimeSpan(2 * TimeSpan.TicksPerSecond), () =>
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(2 * TimeSpan.TicksPerSecond), () =>
{
GameNetSystem.Instance.Reconnect();
});
diff --git a/System/Login/ServerListCenter.cs b/System/Login/ServerListCenter.cs
index baa4aab..14e83be 100644
--- a/System/Login/ServerListCenter.cs
+++ b/System/Login/ServerListCenter.cs
@@ -157,7 +157,7 @@
}
else
{
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestJumpUrl);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestJumpUrl);
}
}
@@ -193,7 +193,7 @@
}
else
{
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestServerCommonList);
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestServerCommonList);
}
}
@@ -262,7 +262,7 @@
{
if (StageLoad.Instance.currentStage == null || StageLoad.Instance.currentStage is LoginStage)
{
- Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), () =>
+ Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), () =>
{
RequestServerListPlayer(accountNameBuf);
});
diff --git a/System/MainInterfacePanel/IsShowXpButton.cs b/System/MainInterfacePanel/IsShowXpButton.cs
index c3ad3df..da422b8 100644
--- a/System/MainInterfacePanel/IsShowXpButton.cs
+++ b/System/MainInterfacePanel/IsShowXpButton.cs
@@ -5,9 +5,9 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
-
using System.Collections.Generic;
using System;
+
//鏄惁鏄剧ずXP
namespace Snxxz.UI
{
@@ -72,10 +72,7 @@
Skill.OnSkillCDFinished -= OnSkillCDFinished;
Skill.OnSkillCast -= OnSkillCast;
PlayerMainDate.Event_XpSkill -= OPenXpSkill;
-
-
}
-
private void OPenXpSkill()//鑾峰緱鎶�鑳�
{
@@ -112,9 +109,7 @@
m_UiEffect.Play();
}
}
-
}
-
private void StorageList()
{
@@ -127,9 +122,9 @@
{
ProhibitedToRelease.Add(int.Parse(list[i]));
}
-
}
}
+
}
}
diff --git a/System/MainInterfacePanel/LongPressShowPanel.cs b/System/MainInterfacePanel/LongPressShowPanel.cs
index fbb732b..7442419 100644
--- a/System/MainInterfacePanel/LongPressShowPanel.cs
+++ b/System/MainInterfacePanel/LongPressShowPanel.cs
@@ -6,13 +6,42 @@
using System.Collections;
using UnityEngine.UI;
//鎶�鑳借鎯呴潰鏉�
-namespace Snxxz.UI {
+namespace Snxxz.UI
+{
- public class LongPressShowPanel:MonoBehaviour {
+ public class LongPressShowPanel : MonoBehaviour
+ {
public Image m_Icon;
public Text Name;
public Text Describe;
+ public void Display(int skillId)
+ {
+ var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
+ var treasures = treasureModel.GetAllTreasure();
+ var treasureId = 0;
+
+ for (int i = 0; i < treasures.Count; i++)
+ {
+ Treasure treasure;
+ if (treasureModel.TryGetTreasure(treasures[i], out treasure))
+ {
+ if (treasure.skillId == skillId)
+ {
+ treasureId = treasure.id;
+ break;
+ }
+ }
+ }
+
+
+ var skillConfig = SkillConfig.Get(skillId);
+ Name.text = skillConfig.SkillName;
+ Describe.text = skillConfig.Description;
+
+ var treasureConfig = TreasureConfig.Get(treasureId);
+ m_Icon.SetSprite(treasureConfig.Icon);
+ }
}
diff --git a/System/MainInterfacePanel/MainInterfaceWin.cs b/System/MainInterfacePanel/MainInterfaceWin.cs
index 18d4d20..fa674cc 100644
--- a/System/MainInterfacePanel/MainInterfaceWin.cs
+++ b/System/MainInterfacePanel/MainInterfaceWin.cs
@@ -27,7 +27,6 @@
[SerializeField] TopRightTip m_TopRightTip;
[SerializeField] FunctionForecastTip m_FunctionForecastTip;//鍔熻兘棰勫憡
[SerializeField] IsShowXpButton m_IsShowXp;//XP 鎶�鑳藉父鏄�
- [SerializeField] SkillButtonEffects m_SkillButtonEffects;
[SerializeField] FairyLeagueRemindBehaviour m_FairyLeagueRemind;
[SerializeField] TeamInvitationEntrance m_TeamInvitationEntrance;
[SerializeField] FairyCallMemberBehaviour m_FairyCallBehaviour;
@@ -119,7 +118,6 @@
m_TaskListTip.Init();
m_IsShowXp.Init();
m_TopRightTip.Init();
- m_SkillButtonEffects.Init();
m_AnimationFadeOut.Init();
m_TeamInvitationEntrance.Init();
m_FairyCallBehaviour.Init();
@@ -240,7 +238,6 @@
m_HighSettingFadeInFadeOut.UnInit();
m_TaskListTip.UnInit();
m_TopRightTip.UnInit();
- m_SkillButtonEffects.UnInit();
m_FunctionForecastTip.Unit();
m_AnimationFadeOut.Unit();
m_TeamInvitationEntrance.UnInit();
diff --git a/System/MainInterfacePanel/SkillButtonEffects.cs b/System/MainInterfacePanel/SkillButtonEffects.cs
index 09b380f..c7fe385 100644
--- a/System/MainInterfacePanel/SkillButtonEffects.cs
+++ b/System/MainInterfacePanel/SkillButtonEffects.cs
@@ -11,499 +11,6 @@
public class SkillButtonEffects : MonoBehaviour
{
- [SerializeField] AttackButton m_Attack;
-
- [SerializeField] SkillButton m_BlinkSkill;
- [SerializeField] SkillButton m_Skill1;
- [SerializeField] SkillButton m_Skill2;
- [SerializeField] SkillButton m_Skill3;
- [SerializeField] SkillButton m_Skill4;
- [SerializeField] SkillButton m_Skill5;
- [SerializeField] SkillButton m_Skill6;
- [SerializeField] SkillButton m_Skill7;
- [SerializeField] SkillButton m_SkillXp;
-
- [SerializeField] Transform Skill1Info;
- [SerializeField] Transform Skill2Info;
- [SerializeField] Transform Skill3Info;
- [SerializeField] Transform Skill4Info;
- [SerializeField] Transform Skill5Info;
- [SerializeField] Transform Skill6Info;
- [SerializeField] Transform Skill7Info;
- [SerializeField] Transform XpSkillInfo;
-
- [SerializeField] GameObject SkillSelected1;
- [SerializeField] GameObject SkillSelected2;
- [SerializeField] GameObject SkillSelected3;
- [SerializeField] GameObject SkillSelected4;
- [SerializeField] GameObject SkillSelected5;
- [SerializeField] GameObject SkillSelected6;
- [SerializeField] GameObject SkillSelected7;
- [SerializeField] GameObject SkillSelectedXp;
-
- LongPressShowPanel _LongPressShowPanel;
- public float TimeLong = 1f;
- private bool BoolFb = false;
- private bool AccordingBool = true;//鏄剧ず寮�鍏�
- private int SkillsHole = -1;//鑾峰彇鎶�鑳藉瓟
- private float _currentime = 0;
- private int m_PlayerXpSkillId = 0;
- private bool _bool = false;
- UIEffect effect;
-
- private float preTime = 0;
-
- private void Awake()
- {
- m_PlayerXpSkillId = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("XpSkillID").Numerical1)[PlayerDatas.Instance.baseData.Job];//鑾峰彇鍚勪釜鑱屼笟鐨刋P鎶�鑳�
- MagicWeapon();
- }
-
- public void Init()
- {
- SkillSelected1.SetActive(false);
- SkillSelected2.SetActive(false);
- SkillSelected3.SetActive(false);
- SkillSelected4.SetActive(false);
- SkillSelected5.SetActive(false);
- SkillSelected6.SetActive(false);
- SkillSelected7.SetActive(false);
- SkillSelectedXp.SetActive(false);
- TipShutDown(-1);
-
- Skill.OnSkillCDFinished += OnSkillCDFinished;
- Skill.OnSkillCast += OnSkillCast;
- }
-
- public void UnInit()
- {
- TipShutDown(-1);
- Skill.OnSkillCDFinished -= OnSkillCDFinished;
- Skill.OnSkillCast -= OnSkillCast;
- }
-
- private void OnSkillCast(uint objSID, int obj)
- {
- if (objSID != PlayerDatas.Instance.PlayerId)
- {
- return;
- }
- if (obj != 0 && obj == m_PlayerXpSkillId)
- {
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_SkillXp.transform, false);
- }
- int position = PlayerDatas.Instance.skill.ContainsQuickSkill(obj);
- switch ((SkillEffects)position)
- {
- case SkillEffects.skillEffect_1:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill1.transform, false);
- break;
- case SkillEffects.skillEffect_2:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill2.transform, false);
- break;
- case SkillEffects.skillEffect_3:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill3.transform, false);
- break;
- case SkillEffects.skillEffect_4:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill4.transform, false);
- break;
- case SkillEffects.skillEffect_5:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill5.transform, false);
- break;
- case SkillEffects.skillEffect_6:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill6.transform, false);
- break;
- case SkillEffects.skillEffect_7:
- EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill7.transform, false);
- break;
- case SkillEffects.skillEffect_xp:
- //EffectMgr.Instance.PlayUIEffect(1023, 1500, m_SkillXp.transform, false);
- break;
- default:
- break;
- }
-
- }
-
- private void OnSkillCDFinished(int obj)
- {
- if (obj != 0 && obj == m_PlayerXpSkillId)
- {
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_SkillXp.transform, false);
- }
- int position = PlayerDatas.Instance.skill.ContainsQuickSkill(obj);
- switch ((SkillEffects)position)
- {
- case SkillEffects.skillEffect_1:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill1.transform, false);
- break;
- case SkillEffects.skillEffect_2:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill2.transform, false);
- break;
- case SkillEffects.skillEffect_3:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill3.transform, false);
- break;
- case SkillEffects.skillEffect_4:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill4.transform, false);
- break;
- case SkillEffects.skillEffect_5:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill5.transform, false);
- break;
- case SkillEffects.skillEffect_6:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill6.transform, false);
- break;
- case SkillEffects.skillEffect_7:
- EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill7.transform, false);
- break;
- case SkillEffects.skillEffect_xp:
- //EffectMgr.Instance.PlayUIEffect(1024, 1500, m_SkillXp.transform, false);
- break;
- default:
- break;
- }
- }
-
- private void Start()
- {
- UIEventTrigger.Get(m_Attack.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill1.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill2.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill3.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill4.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill5.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill6.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_Skill7.gameObject).OnDown = DownAttackButton;
- UIEventTrigger.Get(m_SkillXp.gameObject).OnDown = DownAttackButton;
-
- UIEventTrigger.Get(m_Attack.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill1.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill2.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill3.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill4.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill5.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill6.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_Skill7.gameObject).OnUp = UpAttackButton;
- UIEventTrigger.Get(m_SkillXp.gameObject).OnUp = UpAttackButton;
- }
-
- private void OnComplete()
- {
- if (_bool)
- {
- effect = EffectMgr.Instance.PlayUIEffect(1021, 1500, m_Attack.transform, false);
- effect.OnComplete = OnComplete;
- }
- }
-
- void DownAttackButton(GameObject go)
- {
- switch (go.name)
- {
- case "AttackBtn":
- preTime = Time.time;
- effect = EffectMgr.Instance.PlayUIEffect(1021, 1500, m_Attack.transform, false);
- effect.OnComplete = OnComplete;
- _bool = true;
- break;
- case "Btn_Skill1":
- Prompting((int)SkillEffects.skillEffect_1);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_1) == null)
- {
- return;
- }
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_1;
- SkillSelected1.SetActive(true);
- break;
- case "Btn_Skill2":
- Prompting((int)SkillEffects.skillEffect_2);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_2) == null)
- return;
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_2;
- SkillSelected2.SetActive(true);
- break;
- case "Btn_Skill3":
- Prompting((int)SkillEffects.skillEffect_3);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_3) == null)
- return;
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_3;
- SkillSelected3.SetActive(true);
- break;
- case "Btn_Skill4":
- Prompting((int)SkillEffects.skillEffect_4);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_4) == null)
- return;
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_4;
- SkillSelected4.SetActive(true);
- break;
- case "Btn_Skill5":
- Prompting((int)SkillEffects.skillEffect_5);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_5) == null)
- return;
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_5;
- SkillSelected5.SetActive(true);
- break;
- case "Btn_Skill6":
- Prompting((int)SkillEffects.skillEffect_6);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_6) == null)
- return;
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_6;
- SkillSelected6.SetActive(true);
- break;
- case "Btn_Skill7":
- Prompting((int)SkillEffects.skillEffect_7);
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_7) == null)
- return;
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_7;
- SkillSelected7.SetActive(true);
- break;
- case "Btn_SkillXp":
- Prompting((int)SkillEffects.skillEffect_xp);
- var skillModel = ModelCenter.Instance.GetModel<SkillModel>();
- var xpSkillId = skillModel.GetXpSkillID();
- if (PlayerDatas.Instance.skill.GetSKillById(xpSkillId) != null)
- {
- BoolFb = true;
- AccordingBool = true;
- SkillsHole = (int)SkillEffects.skillEffect_xp;
- SkillSelectedXp.SetActive(true);
- }
- break;
- default:
- break;
- }
- }
-
- void UpAttackButton(GameObject go)
- {
- _currentime = 0;
- TipShutDown(-1);
- switch (go.name)
- {
- case "AttackBtn":
- _bool = false;
- if (effect != null)
- {
- if (Time.time - preTime < effect.duration)
- {
- effect.OnComplete = null;
- }
- }
- break;
- case "Btn_Skill1":
- BoolFb = false;
- SkillSelected1.SetActive(false);
- break;
- case "Btn_Skill2":
- BoolFb = false;
- SkillSelected2.SetActive(false);
- break;
- case "Btn_Skill3":
- BoolFb = false;
- SkillSelected3.SetActive(false);
- break;
- case "Btn_Skill4":
- BoolFb = false;
- SkillSelected4.SetActive(false);
- break;
- case "Btn_Skill5":
- BoolFb = false;
- SkillSelected5.SetActive(false);
- break;
- case "Btn_Skill6":
- BoolFb = false;
- SkillSelected6.SetActive(false);
- break;
- case "Btn_Skill7":
- BoolFb = false;
- SkillSelected7.SetActive(false);
- break;
- case "Btn_SkillXp":
- BoolFb = false;
- SkillSelectedXp.SetActive(false);
- break;
- default:
- break;
- }
- }
-
- private Dictionary<int, int> _SkillAndPreTreasure = new Dictionary<int, int>();
- void MagicWeapon()//娉曞疂鑾峰彇
- {
- var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
- var treasures = treasureModel.GetAllTreasure();
-
- for (int i = 0; i < treasures.Count; i++)
- {
- Treasure treasure;
- if (treasureModel.TryGetTreasure(treasures[i], out treasure))
- {
- _SkillAndPreTreasure[treasure.skillId] = treasures[i];
- }
- }
- }
-
- private void LateUpdate()
- {
- if (BoolFb)
- {
- _currentime += Time.deltaTime;
- if (_currentime >= TimeLong)
- {
- if (AccordingBool)
- {
- DynamicallyCreate();
- AccordingBool = false;
- }
-
- }
- }
- }
-
- void DynamicallyCreate()
- {
- TipShutDown(SkillsHole);
- switch ((SkillEffects)SkillsHole)
- {
- case SkillEffects.skillEffect_1:
- _LongPressShowPanel = Skill1Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_2:
- _LongPressShowPanel = Skill2Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_3:
- _LongPressShowPanel = Skill3Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_4:
- _LongPressShowPanel = Skill4Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_5:
- _LongPressShowPanel = Skill5Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_6:
- _LongPressShowPanel = Skill6Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_7:
- _LongPressShowPanel = Skill7Info.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- case SkillEffects.skillEffect_xp:
- _LongPressShowPanel = XpSkillInfo.GetChild(0).GetComponent<LongPressShowPanel>();
- break;
- }
- PlayerSkillData _PlayerSkillData = null;
- if ((SkillEffects)SkillsHole == SkillEffects.skillEffect_xp)
- {
- var skillModel = ModelCenter.Instance.GetModel<SkillModel>();
- var xpSkillId = skillModel.GetXpSkillID();
- _PlayerSkillData = PlayerDatas.Instance.skill.GetSKillById(xpSkillId);
- }
- else
- {
- _PlayerSkillData = PlayerDatas.Instance.skill.GetQuickSkillByPos(SkillsHole);
- }
- if (!_SkillAndPreTreasure.ContainsKey(_PlayerSkillData.id))
- {
- DebugEx.LogError("娉曞疂琛ㄦ病鏈夊搴旂殑鎶�鑳絀D" + _PlayerSkillData.id);
- return;
- }
- else
- {
- int FBID = _SkillAndPreTreasure[_PlayerSkillData.id];
- _LongPressShowPanel.Name.text = SkillConfig.Get(_PlayerSkillData.id).SkillName;
- _LongPressShowPanel.Describe.text = SkillConfig.Get(_PlayerSkillData.id).Description;
-
- var treasureConfig = TreasureConfig.Get(FBID);
- _LongPressShowPanel.m_Icon.SetSprite(treasureConfig.Icon);
- }
-
- }
-
-
- void TipShutDown(int _index)
- {
- Skill1Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_1);
- Skill2Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_2);
- Skill3Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_3);
- Skill4Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_4);
- Skill5Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_5);
- Skill6Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_6);
- Skill7Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_7);
- XpSkillInfo.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_xp);
- }
-
- void Prompting(int _Skillindex)
- {
- if (PlayerDatas.Instance.skill.GetQuickSkillByPos(_Skillindex) == null)
- {
- switch ((SkillEffects)_Skillindex)
- {
- case SkillEffects.skillEffect_1:
- SysNotifyMgr.Instance.ShowTip("Skill1Btn_Unlock");
- break;
- case SkillEffects.skillEffect_2:
- SysNotifyMgr.Instance.ShowTip("Skill2Btn_Unlock");
- break;
- case SkillEffects.skillEffect_3:
- SysNotifyMgr.Instance.ShowTip("Skill3Btn_Unlock");
- break;
- case SkillEffects.skillEffect_4:
- SysNotifyMgr.Instance.ShowTip("Skill4Btn_Unlock");
- break;
- case SkillEffects.skillEffect_5:
- SysNotifyMgr.Instance.ShowTip("Skill5Btn_Unlock");
- break;
- case SkillEffects.skillEffect_6:
- SysNotifyMgr.Instance.ShowTip("Skill6Btn_Unlock");
- break;
- case SkillEffects.skillEffect_7:
- SysNotifyMgr.Instance.ShowTip("Skill7Btn_Unlock");
- break;
- case SkillEffects.skillEffect_xp:
- var skillModel = ModelCenter.Instance.GetModel<SkillModel>();
- var xpSkillId = skillModel.GetXpSkillID();
- if (PlayerDatas.Instance.skill.GetSKillById(xpSkillId) == null)
- {
- SysNotifyMgr.Instance.ShowTip("SkillXpBtn_Unlock");
- }
- break;
- }
- }
- else
- {
- int SkillID = PlayerDatas.Instance.skill.GetQuickSkillByPos(_Skillindex).id;
- Skill _skill = PlayerDatas.Instance.hero.SkillMgr.Get(SkillID);
- if (!_skill.IsValid())
- {
- SysNotifyMgr.Instance.ShowTip("SkillBtn_CD");
- }
- }
-
- }
-
- private enum SkillEffects
- {
- skillEffect_1 = 0,
- skillEffect_2 = 1,
- skillEffect_3 = 2,
- skillEffect_4 = 3,
- skillEffect_5 = 4,
- skillEffect_6 = 5,
- skillEffect_7 = 6,
- skillEffect_xp = 7,
- }
}
}
diff --git a/System/MainWin/AttackButton.cs b/System/MainWin/AttackButton.cs
index 2455036..30a1c5f 100644
--- a/System/MainWin/AttackButton.cs
+++ b/System/MainWin/AttackButton.cs
@@ -93,6 +93,7 @@
attackEvent.Invoke();
}
+ EffectMgr.Instance.PlayUIEffect(1021, 1500, this.transform, false);
clickResponse = false;
}
diff --git a/System/MainWin/MainWinSkillController.cs b/System/MainWin/MainWinSkillController.cs
new file mode 100644
index 0000000..a6e8335
--- /dev/null
+++ b/System/MainWin/MainWinSkillController.cs
@@ -0,0 +1,304 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Snxxz.UI
+{
+ public class MainWinSkillController : Singleton<MainWinSkillController>
+ {
+ const int SKILL_COUNT_MAX = 7;
+
+ public bool enable { get; set; }
+
+ public readonly LogicStruct<SkillCD> skillcd0 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd1 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd2 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd3 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd4 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd5 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd6 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcd7 = new LogicStruct<SkillCD>();
+ public readonly LogicStruct<SkillCD> skillcdxp = new LogicStruct<SkillCD>();
+
+ public readonly LogicBool forbid0 = new LogicBool();
+ public readonly LogicBool forbid1 = new LogicBool();
+ public readonly LogicBool forbid2 = new LogicBool();
+ public readonly LogicBool forbid3 = new LogicBool();
+ public readonly LogicBool forbid4 = new LogicBool();
+ public readonly LogicBool forbid5 = new LogicBool();
+ public readonly LogicBool forbid6 = new LogicBool();
+ public readonly LogicBool forbid7 = new LogicBool();
+ public readonly LogicBool forbidxp = new LogicBool();
+
+ Dictionary<int, int> skillPlaceMap = new Dictionary<int, int>();
+ Dictionary<int, int> placeSkillMap = new Dictionary<int, int>();
+
+ SkillModel model { get { return ModelCenter.Instance.GetModel<SkillModel>(); } }
+
+ public MainWinSkillController()
+ {
+ PlayerSkillDatas.OnRefreshSkill -= OnSkillRefresh;
+ Skill.RefreshCD += OnSkillCDRefresh;
+
+ GA_Hero.OnStateEnter += OnSkillStateEnter;
+ GA_Hero.OnStateEnd += OnSkillStateEnd;
+
+ StatusMgr.OnGainCantCastSkillStatus += OnGainCantCastSkillStatus;
+ StatusMgr.OnReleaseCantCastSkillStatus += OnReleaseCantCastSkillStatus;
+ }
+
+ public void InitSkill()
+ {
+ skillPlaceMap.Clear();
+ placeSkillMap.Clear();
+ for (int i = 0; i < SKILL_COUNT_MAX; i++)
+ {
+ var skillData = PlayerDatas.Instance.skill.GetQuickSkillByPos(i);
+ placeSkillMap[i + 1] = skillData != null ? skillData.id : 0;
+ if (skillData != null)
+ {
+ skillPlaceMap[skillData.id] = i + 1;
+ }
+ }
+
+ var blinkSkill = PlayerDatas.Instance.skill.GetSKillById(190);
+ placeSkillMap[0] = blinkSkill != null ? blinkSkill.id : 0;
+ if (blinkSkill != null)
+ {
+ skillPlaceMap[blinkSkill.id] = 0;
+ }
+
+ var skillXpId = model.GetXpSkillID();
+ var skillXpData = PlayerDatas.Instance.skill.GetSKillById(skillXpId);
+ placeSkillMap[8] = skillXpData != null ? skillXpData.id : 0;
+ if (skillXpData != null)
+ {
+ skillPlaceMap[skillXpId] = 8;
+ }
+
+ if (PlayerDatas.Instance.hero != null)
+ {
+ foreach (var skillId in skillPlaceMap.Keys)
+ {
+ var skill = PlayerDatas.Instance.hero.SkillMgr.Get(skillId);
+ if (skill != null)
+ {
+ UpdateSkillExclusiveCountDown(skillId, skill.cd, skill.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
+ }
+ }
+ }
+
+ UpdateSkillForbidStates();
+ }
+
+ public void Reset()
+ {
+ skillcd0.value = default(SkillCD);
+ skillcd1.value = default(SkillCD);
+ skillcd2.value = default(SkillCD);
+ skillcd3.value = default(SkillCD);
+ skillcd4.value = default(SkillCD);
+ skillcd5.value = default(SkillCD);
+ skillcd6.value = default(SkillCD);
+ skillcd7.value = default(SkillCD);
+ skillcdxp.value = default(SkillCD);
+
+ forbid0.value = false;
+ forbid1.value = false;
+ forbid2.value = false;
+ forbid3.value = false;
+ forbid4.value = false;
+ forbid5.value = false;
+ forbid6.value = false;
+ forbid7.value = false;
+ forbidxp.value = false;
+
+ skillPlaceMap.Clear();
+ placeSkillMap.Clear();
+ }
+
+ public LogicStruct<SkillCD> GetSkillCD(int index)
+ {
+ switch (index)
+ {
+ case 0:
+ return skillcd0;
+ case 1:
+ return skillcd1;
+ case 2:
+ return skillcd2;
+ case 3:
+ return skillcd3;
+ case 4:
+ return skillcd4;
+ case 5:
+ return skillcd5;
+ case 6:
+ return skillcd6;
+ case 7:
+ return skillcd7;
+ case 8:
+ return skillcdxp;
+ default:
+ return null;
+ }
+ }
+
+ public LogicBool GetSkillForbid(int index)
+ {
+ switch (index)
+ {
+ case 0:
+ return forbid0;
+ case 1:
+ return forbid1;
+ case 2:
+ return forbid2;
+ case 3:
+ return forbid3;
+ case 4:
+ return forbid4;
+ case 5:
+ return forbid5;
+ case 6:
+ return forbid6;
+ case 7:
+ return forbid7;
+ case 8:
+ return forbidxp;
+ default:
+ return null;
+ }
+ }
+
+ private void OnSkillRefresh()
+ {
+ InitSkill();
+ }
+
+ private void OnSkillCDRefresh(int skillId, float cd, float total)
+ {
+ UpdateSkillExclusiveCountDown(skillId, cd, total);
+ }
+
+ private void OnSkillStateEnter(float time)
+ {
+ UpdateSkillCommonCountDown(time);
+ }
+
+ private void OnSkillStateEnd()
+ {
+ UpdateSkillCommonCountDown(0);
+ }
+
+ private void OnGainCantCastSkillStatus(float duration)
+ {
+ UpdateSkillForbidStates();
+ }
+
+ private void OnReleaseCantCastSkillStatus()
+ {
+ UpdateSkillForbidStates();
+ }
+
+ private void UpdateSkillExclusiveCountDown(int skillId, float cd, float total)
+ {
+ if (skillPlaceMap.ContainsKey(skillId))
+ {
+ var place = skillPlaceMap[skillId];
+ var skillcd = GetSkillCD(place);
+ skillcd.value = skillcd.value.SetExclusiveCountDown(cd, total);
+ }
+ }
+
+ private void UpdateSkillCommonCountDown(float time)
+ {
+ for (int i = 0; i <= 8; i++)
+ {
+ if (placeSkillMap.ContainsKey(i) && placeSkillMap[i] != 0)
+ {
+ var skillcd = GetSkillCD(i);
+ skillcd.value = skillcd.value.SetCommonCountDown(time);
+ }
+ }
+ }
+
+ private void UpdateSkillForbidStates()
+ {
+ var forbid = !StatusMgr.Instance.CanCastSkill(PlayerDatas.Instance.baseData.PlayerID);
+ for (int i = 0; i <= 8; i++)
+ {
+ var skillForbid = GetSkillForbid(i);
+ skillForbid.value = forbid;
+ }
+ }
+
+ public struct SkillCD
+ {
+ public float exclusiveTotal;
+ public float exclusiveOverTime;
+ public float commonTotal;
+ public float commonOverTime;
+
+ public SkillCD SetCommonCountDown(float time)
+ {
+ commonTotal = time;
+ commonOverTime = Time.realtimeSinceStartup + time;
+
+ return this;
+ }
+
+ public SkillCD SetExclusiveCountDown(float cd, float total)
+ {
+ exclusiveTotal = total;
+ exclusiveOverTime = Time.realtimeSinceStartup + cd;
+
+ return this;
+ }
+
+ public bool IsCountDown()
+ {
+ if (exclusiveOverTime > Time.realtimeSinceStartup)
+ {
+ return true;
+ }
+
+ if (commonOverTime > Time.realtimeSinceStartup)
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ public float GetCountDownFillAmount()
+ {
+ if (exclusiveOverTime > Time.realtimeSinceStartup)
+ {
+ return (exclusiveOverTime - Time.realtimeSinceStartup) / exclusiveTotal;
+ }
+
+ if (commonOverTime > Time.realtimeSinceStartup)
+ {
+ return (commonOverTime - Time.realtimeSinceStartup) / commonTotal;
+ }
+
+ return 0f;
+ }
+
+ public float GetCountDown()
+ {
+ if (exclusiveOverTime > Time.realtimeSinceStartup)
+ {
+ return exclusiveOverTime - Time.realtimeSinceStartup;
+ }
+
+ return 0f;
+ }
+
+ }
+
+
+ }
+}
+
diff --git a/System/MainWin/MainWinSkillController.cs.meta b/System/MainWin/MainWinSkillController.cs.meta
new file mode 100644
index 0000000..3cff3c0
--- /dev/null
+++ b/System/MainWin/MainWinSkillController.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 78c5929158f09c74dbdc5e481afcb400
+timeCreated: 1555070239
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/MainWin/SkillButton.cs b/System/MainWin/SkillButton.cs
index 6732b95..9866027 100644
--- a/System/MainWin/SkillButton.cs
+++ b/System/MainWin/SkillButton.cs
@@ -6,7 +6,6 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
-
using UnityEngine.EventSystems;
using UnityEngine.Events;
@@ -28,64 +27,32 @@
public class SkillButton : SkillButtonInterface, IPointerExitHandler
{
+ [SerializeField] int m_Index;
[SerializeField] SkillTurnplate m_SkillTurnplate;
- [SerializeField] Image m_Icon;
- public Image icon { get { return m_Icon; } }
+ [SerializeField] ImageEx m_Icon;
[SerializeField] Transform m_Locked;
- public Transform locked
- {
- get
- {
- return m_Locked;
- }
- }
-
[SerializeField] Text m_CoolDown;
[SerializeField] Image m_CoolDownMask;
[SerializeField] ScaleTween m_ScaleTween;
+ [SerializeField] Image m_Selected;
+ [SerializeField] LongPressShowPanel m_SkillTip;
- [Header("閬僵鏄惁鍙嶅悜")]
- public bool Isreverse = false;
+ public Image icon { get { return m_Icon; } }
+ public Transform locked { get { return m_Locked; } }
+
UIEvent skillEvent1 = new UIEvent();
UIEvent skillEvent2 = new UIEvent();
bool isExit = false;
- float m_TotalCoolDown = 0f;
- public float totalCoolDown
- {
- get
- {
- return m_TotalCoolDown;
- }
- set
- {
- m_TotalCoolDown = value;
- }
- }
-
- float m_CoolDownCompleteTime = 0f;
- public float coolDownCompleteTime
- {
- get
- {
- return m_CoolDownCompleteTime;
- }
- set
- {
- m_CoolDownCompleteTime = value;
- }
- }
-
+ bool inCountDown = false;
float timer = 0f;
- PlayerSkillData m_SkillData = null;
- Skill skillBuf = null;
- float fillAmountRevise = 1f;
+ int skillId = 0;
- public void SetSkillData(PlayerSkillData _skillData)
+ public void Initialize(int skillId)
{
- m_SkillData = _skillData;
- if (m_SkillData == null)
+ this.skillId = skillId;
+ if (this.skillId == 0)
{
locked.gameObject.SetActive(true);
m_Icon.gameObject.SetActive(false);
@@ -98,30 +65,32 @@
locked.gameObject.SetActive(false);
m_Icon.gameObject.SetActive(true);
}
- var skillConfig = m_SkillData.skillCfg;
+
+ var skillConfig = SkillConfig.Get(this.skillId);
m_Icon.SetSprite(skillConfig.IconName);
-
- if (skillBuf != null)
- {
- skillBuf.RefreshCD -= OnSkillCDRefresh;
- }
-
- if (PlayerDatas.Instance.hero != null)
- {
- skillBuf = PlayerDatas.Instance.hero.SkillMgr.Get(m_SkillData.id);
- OnSkillCDRefresh(skillBuf.cd, skillBuf.skillInfo.config.CoolDownTime * Constants.F_GAMMA);
- skillBuf.RefreshCD += OnSkillCDRefresh;
- }
}
+ DisplaySkillDynamicInfo(true);
+ m_Selected.gameObject.SetActive(false);
+ HideSkillTip();
+
+ this.enabled = true;
}
public void Dispose()
{
- if (skillBuf != null)
+ if (showSkillTipClock != null)
{
- skillBuf.RefreshCD -= OnSkillCDRefresh;
+ Clock.Stop(showSkillTipClock);
+ showSkillTipClock = null;
}
+
+ if (m_Index != 0)
+ {
+ HideSkillTip();
+ }
+
+ this.enabled = false;
}
public void AddDownListener(UnityAction _action)
@@ -140,72 +109,55 @@
skillEvent2.RemoveAllListeners();
}
- /// <summary>
- /// 鍓╀綑CD鍜屾�籆D閮芥槸姣
- /// </summary>
- /// <param name="_cd"></param>
- /// <param name="_totalCD"></param>
- private void OnSkillCDRefresh(float _cd, float _totalCD)
- {
- totalCoolDown = _totalCD;
- coolDownCompleteTime = Time.time + _cd;
- timer = 0f;
- }
-
private void LateUpdate()
{
- if (m_CoolDownCompleteTime > Time.time)
+ DisplaySkillDynamicInfo(false);
+
+ if (inCountDown)
{
- var cd = m_CoolDownCompleteTime - Time.time;
- if (!m_CoolDown.gameObject.activeInHierarchy)
+ if (!m_CoolDown.gameObject.activeSelf)
{
m_CoolDown.gameObject.SetActive(true);
}
- if (m_CoolDownMask != null && !m_CoolDownMask.gameObject.activeInHierarchy)
+ if (m_CoolDownMask != null && !m_CoolDownMask.gameObject.activeSelf)
{
m_CoolDownMask.gameObject.SetActive(true);
}
if (m_CoolDownMask != null)
{
- if (Isreverse)
- {
- float flo = cd / totalCoolDown;
- m_CoolDownMask.fillAmount = 1.0f - flo;
- }
- else
- {
- m_CoolDownMask.fillAmount = cd / totalCoolDown;
- }
+ m_CoolDownMask.fillAmount = MainWinSkillController.Instance.GetSkillCD(m_Index).value.GetCountDownFillAmount();
}
timer -= Time.deltaTime;
if (timer < 0f)
{
- m_CoolDown.text = cd.ToString("f0");
+ var countDown = MainWinSkillController.Instance.GetSkillCD(m_Index).value.GetCountDown();
+ if (countDown > 1)
+ {
+ m_CoolDown.text = countDown.ToString("f0");
+ }
+ else
+ {
+ m_CoolDown.text = "";
+ }
+
timer += 1f;
}
}
else
{
- if (m_CoolDown.gameObject.activeInHierarchy)
+ if (m_CoolDown.gameObject.activeSelf)
{
m_CoolDown.gameObject.SetActive(false);
}
if (m_CoolDownMask != null)
{
- if (Isreverse)
+ if (m_CoolDownMask.gameObject.activeSelf)
{
- m_CoolDownMask.fillAmount = 1;
- }
- else
- {
- if (m_CoolDownMask.gameObject.activeInHierarchy)
- {
- m_CoolDownMask.gameObject.SetActive(false);
- }
+ m_CoolDownMask.gameObject.SetActive(false);
}
}
@@ -216,21 +168,34 @@
public override void OnPointerDown(PointerEventData eventData)
{
base.OnPointerDown(eventData);
-
+ ProcessForbid();
PassEvent(eventData, ExecuteEvents.pointerDownHandler);
- if (m_SkillData == null)
+ if (this.skillId == 0)
{
return;
}
+
if (m_ScaleTween != null)
{
m_ScaleTween.Play();
}
- skillEvent1.Invoke();
- isExit = false;
+ m_Selected.gameObject.SetActive(true);
+ skillEvent1.Invoke();
+
+ if (m_Index != 0)
+ {
+ if (showSkillTipClock != null)
+ {
+ Clock.Stop(showSkillTipClock);
+ }
+
+ showSkillTipClock = Clock.AlarmAfter(1, ShowSkillTip);
+ }
+
+ isExit = false;
}
public override void OnPointerUp(PointerEventData eventData)
@@ -239,18 +204,32 @@
PassEvent(eventData, ExecuteEvents.pointerUpHandler);
- if (m_SkillData == null)
+ if (this.skillId == 0)
{
return;
}
+
if (m_ScaleTween != null)
{
m_ScaleTween.Play(true);
}
+ m_Selected.gameObject.SetActive(false);
+
if (isExit == false)
{
skillEvent2.Invoke();
+ }
+
+ if (showSkillTipClock != null)
+ {
+ Clock.Stop(showSkillTipClock);
+ showSkillTipClock = null;
+ }
+
+ if (m_Index != 0)
+ {
+ HideSkillTip();
}
}
@@ -283,6 +262,152 @@
}
}
+
+ private void Awake()
+ {
+ Skill.OnSkillCDFinished += OnSkillPrepared;
+ Skill.OnSkillCast += OnSkillCast;
+ }
+
+ private void OnDestroy()
+ {
+ Skill.OnSkillCDFinished += OnSkillPrepared;
+ Skill.OnSkillCast += OnSkillCast;
+ }
+
+ private void OnSkillPrepared(int skillId)
+ {
+ if (!this.enabled)
+ {
+ return;
+ }
+
+ if (this.skillId != skillId)
+ {
+ return;
+ }
+
+ EffectMgr.Instance.PlayUIEffect(1024, 1500, this.transform, false);
+ }
+
+ private void OnSkillCast(uint playerInstanceId, int skillId)
+ {
+ if (!this.enabled)
+ {
+ return;
+ }
+
+ if (playerInstanceId != PlayerDatas.Instance.PlayerId)
+ {
+ return;
+ }
+
+ if (this.skillId != skillId)
+ {
+ return;
+ }
+
+ EffectMgr.Instance.PlayUIEffect(1023, 1500, this.transform, false);
+ }
+
+ private void ProcessForbid()
+ {
+ var isUnLocked = this.skillId != 0;
+ if (!isUnLocked)
+ {
+ switch (m_Index)
+ {
+ case 1:
+ SysNotifyMgr.Instance.ShowTip("Skill1Btn_Unlock");
+ break;
+ case 2:
+ SysNotifyMgr.Instance.ShowTip("Skill2Btn_Unlock");
+ break;
+ case 3:
+ SysNotifyMgr.Instance.ShowTip("Skill3Btn_Unlock");
+ break;
+ case 4:
+ SysNotifyMgr.Instance.ShowTip("Skill4Btn_Unlock");
+ break;
+ case 5:
+ SysNotifyMgr.Instance.ShowTip("Skill5Btn_Unlock");
+ break;
+ case 6:
+ SysNotifyMgr.Instance.ShowTip("Skill6Btn_Unlock");
+ break;
+ case 7:
+ SysNotifyMgr.Instance.ShowTip("Skill7Btn_Unlock");
+ break;
+ case 8:
+ SysNotifyMgr.Instance.ShowTip("SkillXpBtn_Unlock");
+ break;
+ }
+
+ return;
+ }
+
+ if (PlayerDatas.Instance.hero == null)
+ {
+ return;
+ }
+
+ var skill = PlayerDatas.Instance.hero.SkillMgr.Get(this.skillId);
+ if (!skill.IsValid())
+ {
+ SysNotifyMgr.Instance.ShowTip("SkillBtn_CD");
+ return;
+ }
+ }
+
+ Clock showSkillTipClock;
+ private void ShowSkillTip()
+ {
+ if (this.skillId == 0)
+ {
+ return;
+ }
+
+ if (m_SkillTip)
+ {
+ m_SkillTip.gameObject.SetActive(true);
+ m_SkillTip.Display(this.skillId);
+ }
+ }
+
+ private void HideSkillTip()
+ {
+ if (m_SkillTip)
+ {
+ m_SkillTip.gameObject.SetActive(false);
+ }
+ }
+
+ private void DisplaySkillDynamicInfo(bool force)
+ {
+ var skillCd = MainWinSkillController.Instance.GetSkillCD(m_Index);
+ if (force || skillCd.dirty)
+ {
+ var data = skillCd.Fetch();
+ inCountDown = data.IsCountDown();
+
+ var countDown = MainWinSkillController.Instance.GetSkillCD(m_Index).value.GetCountDown();
+ if (countDown > 0)
+ {
+ m_CoolDown.text = countDown.ToString("f0");
+ }
+ else
+ {
+ m_CoolDown.text = "";
+ }
+ }
+
+ var skillForbid = MainWinSkillController.Instance.GetSkillForbid(m_Index);
+ if (force || skillForbid.dirty)
+ {
+ m_Icon.gray = skillForbid.Fetch();
+ }
+ }
+
}
}
diff --git a/System/MainWin/SkillContainer.cs b/System/MainWin/SkillContainer.cs
index 76d8544..8ff1f2a 100644
--- a/System/MainWin/SkillContainer.cs
+++ b/System/MainWin/SkillContainer.cs
@@ -3,7 +3,6 @@
// [ Date ]: Saturday, September 02, 2017
//--------------------------------------------------------
using UnityEngine;
-
using UnityEngine.UI;
using System.Collections.Generic;
@@ -49,7 +48,7 @@
public SkillButton skillXP { get { return m_SkillXP; } }
const int SKILL_COUNT_MAX = 8;
- Dictionary<int, PlayerSkillData> indexSkillDataDict = new Dictionary<int, PlayerSkillData>();
+ Dictionary<int, int> indexSkillDataDict = new Dictionary<int, int>();
public void Init()
{
@@ -77,6 +76,7 @@
m_Skill7.AddUpListener(PrepareCastSkill7);
m_SkillXP.AddUpListener(PrepareCastSkillXp);
+ MainWinSkillController.Instance.InitSkill();
OnSkillRefresh();
HandleAchievement();
PlayerSkillDatas.OnRefreshSkill += OnSkillRefresh;
@@ -95,7 +95,18 @@
m_Skill5.RemoveAllListeners();
m_Skill6.RemoveAllListeners();
m_Skill7.RemoveAllListeners();
- skillXP.RemoveAllListeners();
+ skillXP.RemoveAllListeners();
+
+ m_BlinkSkill.Dispose();
+ m_Skill1.Dispose();
+ m_Skill2.Dispose();
+ m_Skill3.Dispose();
+ m_Skill4.Dispose();
+ m_Skill5.Dispose();
+ m_Skill6.Dispose();
+ m_Skill7.Dispose();
+ skillXP.Dispose();
+
PlayerSkillDatas.OnRefreshSkill -= OnSkillRefresh;
if (AchievementGoto.achievementType == AchievementGoto.ExcuteSkill)
{
@@ -107,22 +118,25 @@
{
for (int i = 0; i < SKILL_COUNT_MAX; i++)
{
- indexSkillDataDict[i] = PlayerDatas.Instance.skill.GetQuickSkillByPos(i);
+ var skillData = PlayerDatas.Instance.skill.GetQuickSkillByPos(i);
+ indexSkillDataDict[i] = skillData == null ? 0 : skillData.id;
}
- m_Skill1.SetSkillData(indexSkillDataDict[0]);
- m_Skill2.SetSkillData(indexSkillDataDict[1]);
- m_Skill3.SetSkillData(indexSkillDataDict[2]);
- m_Skill4.SetSkillData(indexSkillDataDict[3]);
- m_Skill5.SetSkillData(indexSkillDataDict[4]);
- m_Skill6.SetSkillData(indexSkillDataDict[5]);
- m_Skill7.SetSkillData(indexSkillDataDict[6]);
+ m_Skill1.Initialize(indexSkillDataDict[0]);
+ m_Skill2.Initialize(indexSkillDataDict[1]);
+ m_Skill3.Initialize(indexSkillDataDict[2]);
+ m_Skill4.Initialize(indexSkillDataDict[3]);
+ m_Skill5.Initialize(indexSkillDataDict[4]);
+ m_Skill6.Initialize(indexSkillDataDict[5]);
+ m_Skill7.Initialize(indexSkillDataDict[6]);
- m_BlinkSkill.SetSkillData(PlayerDatas.Instance.skill.GetSKillById(190));
+ var blinkSkillData = PlayerDatas.Instance.skill.GetSKillById(190);
+ m_BlinkSkill.Initialize(blinkSkillData == null ? 0 : blinkSkillData.id);
var model = ModelCenter.Instance.GetModel<SkillModel>();
- var skillXpId = model.GetXpSkillID();
- m_SkillXP.SetSkillData(PlayerDatas.Instance.skill.GetSKillById(skillXpId));
+ var skillXpId = model.GetXpSkillID();
+ var skillXpData = PlayerDatas.Instance.skill.GetSKillById(skillXpId);
+ m_SkillXP.Initialize(skillXpData != null ? skillXpId : 0);
}
void SwitchTarget()
@@ -154,86 +168,79 @@
void CastSkill1()
{
- if (indexSkillDataDict[0] == null)
+ if (indexSkillDataDict[0] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[0].id);
-
+ DoCastSkill(indexSkillDataDict[0]);
}
void CastSkill2()
{
-
- if (indexSkillDataDict[1] == null)
+ if (indexSkillDataDict[1] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[1].id);
+ DoCastSkill(indexSkillDataDict[1]);
}
void CastSkill3()
{
-
- if (indexSkillDataDict[2] == null)
+ if (indexSkillDataDict[2] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[2].id);
+ DoCastSkill(indexSkillDataDict[2]);
}
void CastSkill4()
{
-
- if (indexSkillDataDict[3] == null)
+ if (indexSkillDataDict[3] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[3].id);
+ DoCastSkill(indexSkillDataDict[3]);
}
void CastSkill5()
{
-
- if (indexSkillDataDict[4] == null)
+ if (indexSkillDataDict[4] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[4].id);
+ DoCastSkill(indexSkillDataDict[4]);
}
void CastSkill6()
{
-
- if (indexSkillDataDict[5] == null)
+ if (indexSkillDataDict[5] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[5].id);
+ DoCastSkill(indexSkillDataDict[5]);
}
void CastSkill7()
{
-
- if (indexSkillDataDict[6] == null)
+ if (indexSkillDataDict[6] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(indexSkillDataDict[6].id);
+ DoCastSkill(indexSkillDataDict[6]);
}
void CastSkillXp()
@@ -245,86 +252,85 @@
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoCastSkill(skillXpId);
+ DoCastSkill(skillXpId);
}
void PrepareCastSkill1()
{
- if (indexSkillDataDict[0] == null)
+ if (indexSkillDataDict[0] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[0].id);
+ DoPrepareCast(indexSkillDataDict[0]);
}
void PrepareCastSkill2()
{
- if (indexSkillDataDict[1] == null)
+ if (indexSkillDataDict[1] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[1].id);
+ DoPrepareCast(indexSkillDataDict[1]);
}
void PrepareCastSkill3()
{
-
- if (indexSkillDataDict[2] == null)
+ if (indexSkillDataDict[2] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[2].id);
+ DoPrepareCast(indexSkillDataDict[2]);
}
void PrepareCastSkill4()
{
- if (indexSkillDataDict[3] == null)
+ if (indexSkillDataDict[3] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[3].id);
+ DoPrepareCast(indexSkillDataDict[3]);
}
void PrepareCastSkill5()
{
- if (indexSkillDataDict[4] == null)
+ if (indexSkillDataDict[4] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[4].id);
+ DoPrepareCast(indexSkillDataDict[4]);
}
void PrepareCastSkill6()
{
- if (indexSkillDataDict[5] == null)
+ if (indexSkillDataDict[5] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[5].id);
+ DoPrepareCast(indexSkillDataDict[5]);
}
void PrepareCastSkill7()
{
- if (indexSkillDataDict[6] == null)
+ if (indexSkillDataDict[6] == 0)
{
DebugEx.Log("鎶�鑳芥湭瑙i攣");
return;
}
- DoPrepareCast(indexSkillDataDict[6].id);
+ DoPrepareCast(indexSkillDataDict[6]);
}
void PrepareCastSkillXp()
diff --git a/System/NewBieGuidance/NewBieWin.cs b/System/NewBieGuidance/NewBieWin.cs
index 038f960..56a821e 100644
--- a/System/NewBieGuidance/NewBieWin.cs
+++ b/System/NewBieGuidance/NewBieWin.cs
@@ -95,7 +95,7 @@
DisplayFunctionUnLock(config.Condition);
if (config.Steps == null || config.Steps.Length == 0)
{
- Clock.Create(5,
+ Clock.AlarmAfter(5,
() =>
{
var guideId = config.ID;
diff --git a/System/Skill/TreasureSkillWin.cs b/System/Skill/TreasureSkillWin.cs
index dd04b35..e780213 100644
--- a/System/Skill/TreasureSkillWin.cs
+++ b/System/Skill/TreasureSkillWin.cs
@@ -93,9 +93,10 @@
{
m_TreasurePotentials[i].StopUnlock();
}
+
foreach (var clock in clocks)
{
- clock.Stop();
+ Clock.Stop(clock);
}
clocks.Clear();
}
@@ -248,11 +249,13 @@
{
m_TreasurePotentials[i].StopUnlock();
}
+
foreach (var clock in clocks)
{
- clock.Stop();
+ Clock.Stop(clock);
}
clocks.Clear();
+
m_Controller.m_Scorller.RefreshActiveCellViews();
DisplaySkillDetial();
DisplayPotentials();
@@ -278,7 +281,7 @@
{
m_TreasurePotentials[index].StartUnlock();
Clock clock = null;
- clock = Clock.Create(1, () =>
+ clock = Clock.AlarmAfter(1, () =>
{
DisplayPotential(index);
if (clock != null && clocks.Contains(clock))
diff --git a/System/Team/TeamModel.cs b/System/Team/TeamModel.cs
index 42ae1c4..2980abd 100644
--- a/System/Team/TeamModel.cs
+++ b/System/Team/TeamModel.cs
@@ -133,16 +133,16 @@
}
}
- if (m_MatchingClock != null && m_MatchingClock.isActiveAndEnabled)
+ if (m_MatchingClock != null )
{
- m_MatchingClock.Stop();
+ Clock.Stop(m_MatchingClock);
m_MatchingClock = null;
}
if (m_IsMatching)
{
matchingEndTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * GeneralDefine.teamMatchingTimeOut);
- m_MatchingClock = Clock.Create(matchingEndTime, OnMatchingCoolDownEnd);
+ m_MatchingClock = Clock.AlarmAt(matchingEndTime, OnMatchingCoolDownEnd);
}
if (matchingStateChangeEvent != null)
diff --git a/Utility/Clock.cs b/Utility/Clock.cs
index 71158d4..2998e8c 100644
--- a/Utility/Clock.cs
+++ b/Utility/Clock.cs
@@ -1,80 +1,85 @@
锘縰sing System;
using UnityEngine;
+using System.Collections.Generic;
using UnityEngine.Events;
-public class Clock : MonoBehaviour
+public class Clock
{
- public bool stopped { get; private set; }
-
- public DateTime alarmTime {
- get; set;
- }
-
+ DateTime alarmTime;
UnityAction alarmCallBack;
- public void AddListener(UnityAction _action)
+ public Clock(DateTime alarmTime, UnityAction callBack)
{
- alarmCallBack += _action;
+ this.alarmTime = alarmTime;
+ this.alarmCallBack = callBack;
}
- public void Stop()
+ public bool CanAlarm()
{
- stopped = true;
- GameObject.Destroy(this.gameObject);
+ return DateTime.Now >= alarmTime;
}
- private void Awake()
+ public void Execute()
{
- this.gameObject.hideFlags = HideFlags.HideInHierarchy;
- }
-
- private void LateUpdate()
- {
- if (System.DateTime.Now > alarmTime)
+ if (alarmCallBack != null)
{
- try
+ alarmCallBack();
+ alarmCallBack = null;
+ }
+ }
+
+ static List<Clock> clocks = new List<Clock>();
+
+ public static void Init()
+ {
+ new LogicUpdate().Start(OnUpdate);
+ }
+
+ public static Clock AlarmAt(DateTime alarmTime, UnityAction callBack)
+ {
+ var clock = new Clock(alarmTime, callBack);
+
+ clocks.Add(clock);
+ return clock;
+ }
+
+ public static Clock AlarmAfter(int seconds, UnityAction callBack)
+ {
+ var clock = new Clock(DateTime.Now.AddSeconds(seconds), callBack);
+
+ clocks.Add(clock);
+ return clock;
+ }
+
+ public static void Stop(Clock clock)
+ {
+ if (clocks.Contains(clock))
+ {
+ clocks.Remove(clock);
+ }
+ }
+
+ static void OnUpdate()
+ {
+ for (var i = clocks.Count - 1; i >= 0; i--)
+ {
+ var clock = clocks[i];
+ if (clock.CanAlarm())
{
- if (alarmCallBack != null)
+ try
{
- alarmCallBack();
- alarmCallBack = null;
+ clock.Execute();
+ }
+ catch (Exception e)
+ {
+ Debug.LogException(e);
+ }
+ finally
+ {
+ clocks.RemoveAt(i);
}
}
- catch (System.Exception ex)
- {
- DebugEx.Log(ex);
- }
- finally
- {
- Stop();
- }
}
-
- }
-
-
- public static Clock Create(DateTime _alarmTime, UnityAction _action)
- {
- var carrier = new GameObject();
- GameObject.DontDestroyOnLoad(carrier);
-
- var clock = carrier.AddComponent<Clock>();
- clock.alarmTime = _alarmTime;
- clock.AddListener(_action);
-
- return clock;
- }
-
- public static Clock Create(int _seconds, UnityAction _action)
- {
- var carrier = new GameObject();
- GameObject.DontDestroyOnLoad(carrier);
-
- var clock = carrier.AddComponent<Clock>();
- clock.alarmTime = System.DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond);
- clock.AddListener(_action);
-
- return clock;
}
}
--
Gitblit v1.8.0