From 303f5970d2bef26905c9d6d471cd13f41bc722a7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 22 八月 2025 12:16:40 +0800
Subject: [PATCH] 155 子 【武将】招募系统 - 高级招募
---
Main/Utility/TimeUtility.cs | 124 +-
Main/Component/UI/Effect/UIEffectPlayer.cs | 178 ---
Main/Config/Configs/XBGetItemConfig.cs | 14
Main/System/HappyXB/HappyXBModel.cs | 861 +++-------------
Main/Config/Configs/SkillConfig.cs | 367 +++---
Main/System/HappyXB/HeroCallResultWin.cs | 266 +++++
Main/System/HeroUI/HeroUIManager.Collect.cs | 9
Main/Config/Configs/FightPowerRatioConfig.cs | 72 +
Main/System/HappyXB/HeroCallWin.cs.meta | 2
Main/System/Message/ColorAnalysis.cs | 2
Main/Component/UI/Effect/UISpineEffect.cs.meta | 2
Main/System/HappyXB/HeroCallResultCell.cs.meta | 2
Main/System/HeroUI/HeroScenePosCell.cs | 2
Main/System/HappyXB/HeroCallResultWin.cs.meta | 2
Main/System/Hero/HeroManager.cs | 5
Main/System/ItemTip/OwnMoneyCell.cs | 75 +
Main/Component/UI/Effect/EffectPlayer.cs | 207 +++
Main/Config/Configs/FuncOpenLVConfig.cs | 26
Main/System/Store/StoreModel.cs | 22
Main/Component/UI/Effect/BattleEffectPlayer.cs | 2
Main/System/HeroUI/HeroTrainWin.cs | 2
Main/System/ItemTip/OwnItemCell.cs.meta | 2
Main/Config/Configs/EffectConfig.cs | 18
Main/Utility/EnumHelper.cs | 9
Main/System/Tip/ScrollTip.cs | 208 ++-
Main/System/Hero/UIHeroController.cs | 8
Main/System/HappyXB/HeroCallWin.cs | 118 ++
Main/System/Main/FightPowerManager.cs | 18
Main/System/HeroUI/HeroBaseWin.cs | 10
Main/System/Hero/HeroInfo.Awake.cs | 2
Main/System/HappyXB/HeroCallResultCell.cs | 98 ++
/dev/null | 18
Main/System/ItemTip/OwnMoneyCell.cs.meta | 2
Main/Utility/UIHelper.cs | 15
Main/System/Hero/HeroInfo.Break.cs | 2
Main/System/ItemTip/OwnItemCell.cs | 57 +
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs | 1
Main/Component/UI/Effect/UISpineEffect.cs | 7
Main/System/Main/MainWin.cs | 10
Main/System/HeroUI/HeroUIManager.cs | 39
40 files changed, 1,562 insertions(+), 1,322 deletions(-)
diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index 5dc1a4b..362ac40 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -231,7 +231,7 @@
spineComp.Initialize(true);
spineComp.timeScale = speedRate;
- spineAnimationState = spineComp.AnimationState;
+ spineAnimationState = spineComp.state;
spineAnimationState.Complete -= OnSpineAnimationComplete;
spineAnimationState.Complete += OnSpineAnimationComplete;
diff --git a/Main/Component/UI/Effect/EffectPlayer.cs b/Main/Component/UI/Effect/EffectPlayer.cs
index a86d3b7..6f1d9d5 100644
--- a/Main/Component/UI/Effect/EffectPlayer.cs
+++ b/Main/Component/UI/Effect/EffectPlayer.cs
@@ -5,11 +5,11 @@
using UnityEngine;
using Spine;
using UnityEngine.UI;
+using Cysharp.Threading.Tasks;
-// 鐗规晥鎾斁鍣紝瀵硅薄姹犵鐞嗭細unity鐗规晥鍜宻pine鐗规晥閮芥槸鍋氬ソ鐨勯鍒朵綋
-// unity鐗规晥棰勫埗浣撴槸鐗规晥甯堝湪鍒朵綔鐨勬椂鍊欑敓鎴愮殑锛寀nity鐗规晥蹇呴』鎸傝浇璁剧疆鎾斁鏃堕暱鑴氭湰 EffectTime
-// spine鐗规晥鏄壒鏁堝笀鍒朵綔鐨勫姩鐢绘枃浠跺彲鐩存帴鍔犺浇鐢紝鍒朵綔鎴愰鍒朵綋鍙鍔燘oneFollower涔嬬被鐨勮繘琛岄�昏緫澶勭悊
-// 闈濽I鐗规晥浣跨敤锛孶I鐗规晥UIEffectPlayer缁ф壙EffectPlayer锛屽悗缁鏋滈�昏緫鍐茬獊澶у垯涓嶇敤缁ф壙
+// 鐗规晥鎾斁鍣紝棰勫埗浣撳璞℃睜绠$悊锛寀nity鐨勯鍒朵綋姹犱娇鐢ㄦ湁闂锛�1涓壒鏁�1涓睜浣嗗鐢ㄥ張浣庯級鍚庣画淇敼
+// unity鐗规晥銆婇鍒朵綋銆嬫槸鐗规晥甯堝湪鍒朵綔鐨勬椂鍊欑敓鎴愮殑涓嶅悓棰勫埗浣擄紝unity鐗规晥蹇呴』鎸傝浇璁剧疆鎾斁鏃堕暱鑴氭湰 EffectTime
+// spine鐗规晥鏄壒鏁堝笀鍒朵綔鐨勫姩鐢绘枃浠讹紝鍙叡鍚屽鐢ㄤ竴涓�婇鍒朵綋銆�
public class EffectPlayer : MonoBehaviour
{
[SerializeField]
@@ -36,7 +36,16 @@
public float speedRate = 1f;
+ [Header("鏄惁寰幆鎾斁spine鐗规晥")]
+ public bool isPlaySpineLoop = false;
+ [Header("鏄惁鍦ㄦ樉绀烘椂鎾斁")]
+ public bool isPlayOnEnable = false;
+
+ [Header("寤惰繜鎾斁(姣)")]
+ public int playDelayTime = 0;
+
+ public int playSpineAnimIndex = -1; //鎾斁spine鐗规晥鍔ㄧ敾绱㈠紩,浠g爜鎺у埗
[Header("鎾斁瀹屾瘯绔嬪嵆鍥炴敹")]
@@ -68,10 +77,15 @@
protected virtual void OnEnable()
{
- if (spineComp != null)
+
+ if (isPlayOnEnable)
+ {
+ PlayAsync(false).Forget();
+ }
+ else if (spineComp != null)
{
if (!isPlaying)
- {
+ {
//闅愯棌锛屼細鏈夐潤鎬佹樉绀洪棶棰�
spineComp.enabled = false;
}
@@ -106,18 +120,25 @@
return;
}
-
Clear();
return;
}
protected virtual void Clear()
{
+ isInit = false;
particleList.Clear();
animatorList.Clear();
rendererList.Clear();
+
+ if (spineComp != null)
+ {
+ spineComp.skeletonDataAsset = null;
+ // spineComp.Initialize(false);
+ spineComp.Clear();
+ }
+
spineComp = null;
- pool = null;
}
public virtual void Stop()
@@ -135,17 +156,24 @@
{
spineComp.enabled = false;
}
- isInit = false;
isPlaying = false;
+ playSpineAnimIndex = -1;
+ }
+
+ protected void Release()
+ {
+ Stop();
+
Clear();
- onComplete?.Invoke();
}
public virtual void Play(bool showLog = true)
{
+ isPlaying = true;
if (!isInit)
{
InitComponent(showLog);
+ //effeid 涓�0涔熷垵濮嬪寲鎴愬姛锛岄伩鍏嶉噸澶嶅鐞嗭紝鍦ㄥ彉鏇磂ffectid鏃朵細閲嶆柊鍒濆鍖�
isInit = true;
}
else
@@ -154,6 +182,11 @@
if (!this.gameObject.activeSelf)
{
this.gameObject.SetActive(true);
+ }
+ //闃茶寖effeid 涓�0
+ if (effectConfig != null && effectConfig.isSpine != 0)
+ {
+ PlaySpineEffect();
}
return;
}
@@ -175,28 +208,113 @@
this.gameObject.SetActive(true);
}
- PlayerEffect(true);
+ // 鍔犺浇spine鐗规晥璧勬簮
+ if (effectConfig.isSpine != 0)
+ {
+ PlaySpineEffect();
+ }
+ else
+ {
+ PlayerEffect();
+ }
+
SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
}
- protected virtual void PlaySpineEffect()
+ // protected virtual void PlaySpineEffect()
+ // {
+ // spineComp = gameObject.GetComponentInChildren<SkeletonGraphic>(true);
+ // spineComp.raycastTarget = false;
+ // spineComp.Initialize(true);
+ // spineAnimationState = spineComp.AnimationState;
+ // spineAnimationState.Complete -= OnSpineAnimationComplete;
+ // spineAnimationState.Complete += OnSpineAnimationComplete;
+
+ // // 澶栧眰鎺у埗鍏蜂綋鎾斁鍝釜鍔ㄧ敾
+ // spineComp.enabled = true;
+
+ // return;
+ // }
+
+
+
+ protected void PlaySpineEffect()
{
- spineComp = gameObject.GetComponentInChildren<SkeletonGraphic>(true);
- spineComp.raycastTarget = false;
- spineComp.Initialize(true);
- spineAnimationState = spineComp.AnimationState;
- spineAnimationState.Complete -= OnSpineAnimationComplete;
- spineAnimationState.Complete += OnSpineAnimationComplete;
- // 澶栧眰鎺у埗鍏蜂綋鎾斁鍝釜鍔ㄧ敾
+ // 浠庣壒鏁堥鍒朵綋姹犺幏鍙栫壒鏁�
+ if (spineComp == null)
+ {
+ spineComp = gameObject.AddMissingComponent<SkeletonGraphic>();
+ }
+
+ if (spineComp.skeletonDataAsset == null || spineAnimationState == null)
+ {
+ //LoadAsset 宸茬粡鏈夌紦瀛楽keletonDataAsset
+ spineComp.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
+
+ spineComp.raycastTarget = false;
+ spineComp.Initialize(true);
+ spineComp.timeScale = 1f;
+ // 妫�鏌ュ姩鐢绘槸鍚︽湁鐩稿姞妯″紡
+ // bool hasAdditiveBlend = CheckForAdditiveBlend(spineComp.Skeleton);
+ // if (hasAdditiveBlend)
+ // {
+ // spineComp.material = ResManager.Instance.LoadAsset<Material>("UIEffect/" + effectConfig.packageName, effectConfig.fxName.Split('_')[0] + "_Material-Additive");
+ // }
+ // else
+ // {
+ // spineComp.material = null;
+ // }
+ spineComp.material = ResManager.Instance.LoadAsset<Material>("Materials", "SkeletonGraphicDefault-Straight");
+
+ spineAnimationState = spineComp.AnimationState;
+ spineAnimationState.Data.DefaultMix = 0f;
+ spineAnimationState.Complete -= OnSpineAnimationComplete;
+ spineAnimationState.Complete += OnSpineAnimationComplete;
+ }
+
spineComp.enabled = true;
-
- return;
+ PlayerTheSpineAnim();
}
- protected virtual void PlayerEffect(bool playSpine)
+ // 鎾斁鎸囧畾鍔ㄧ敾
+ void PlayerTheSpineAnim()
+ {
+
+ spineComp.enabled = true;
+ var skeletonData = spineComp.Skeleton.Data;
+ if (skeletonData.Animations.Count > 0)
+ {
+ //鎸夐厤缃垨鑰呴粯璁ょ涓�涓�
+ int defaultAnimIndex = Math.Max(0, effectConfig.animIndex.Length == 0 ? 0 : effectConfig.animIndex[0]);
+ string defaultAnimationName = skeletonData.Animations.Items[playSpineAnimIndex == -1 ? defaultAnimIndex : playSpineAnimIndex].Name;
+ spineAnimationState.SetAnimation(0, defaultAnimationName, isPlaySpineLoop);
+ }
+ else
+ {
+ Debug.LogError("Spine 鏁版嵁涓病鏈夋壘鍒颁换浣曞姩鐢伙紒" + effectConfig.id);
+ }
+ }
+
+
+ private bool CheckForAdditiveBlend(Spine.Skeleton skeleton)
+ {
+ // 閬嶅巻鎵�鏈夋彃妲斤紝妫�鏌ユ槸鍚︽湁鐩稿姞妯″紡
+ foreach (var slot in skeleton.Slots)
+ {
+ if (slot.Data.BlendMode == Spine.BlendMode.Additive)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ //unity鐗规晥
+ protected virtual void PlayerEffect()
{
var effectPrefab = ResManager.Instance.LoadAsset<GameObject>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
if (effectPrefab == null)
@@ -226,19 +344,13 @@
effectTarget.transform.localRotation = Quaternion.identity;
effectTarget.name = $"Effect_{effectConfig.fxName}";
- if (effectConfig.isSpine != 0 && playSpine)
- {
- //棰勫埗浣�
- PlaySpineEffect();
- }
- else
- {
- //鎸傝浇缁勪欢鍚� 寮�濮嬫敹闆�
- particleList.AddRange(gameObject.GetComponentsInChildren<ParticleSystem>(true));
- animatorList.AddRange(gameObject.GetComponentsInChildren<Animator>(true));
- rendererList.AddRange(gameObject.GetComponentsInChildren<Renderer>(true));
- OnUnityAnimationComplete();
- }
+
+ //鎸傝浇缁勪欢鍚� 寮�濮嬫敹闆�
+ particleList.AddRange(gameObject.GetComponentsInChildren<ParticleSystem>(true));
+ animatorList.AddRange(gameObject.GetComponentsInChildren<Animator>(true));
+ rendererList.AddRange(gameObject.GetComponentsInChildren<Renderer>(true));
+ OnUnityAnimationComplete();
+
if (null == canvas)
canvas = GetComponentInParent<Canvas>();
@@ -253,6 +365,18 @@
}
}
+ public async UniTask PlayAsync(bool showLog = true)
+ {
+ await UniTask.Delay(playDelayTime);
+ try
+ {
+ Play(showLog);
+ }
+ catch (Exception e)
+ {
+ Debug.LogError(e);
+ }
+ }
protected void OnDestroy()
{
@@ -262,7 +386,7 @@
onDestroy = null;
}
// 鍋滄鐗规晥骞跺綊杩樺埌姹犱腑
- Stop();
+ Release();
if (spineAnimationState != null)
{
@@ -275,11 +399,16 @@
//鍗曟鎾斁瀹屾瘯灏变細瑙﹀彂锛屽嵆浣挎槸寰幆
protected virtual void OnSpineAnimationComplete(Spine.TrackEntry trackEntry)
{
- if (isReleaseImmediately)
+ if (!isPlaySpineLoop)
{
spineComp.enabled = false;
isPlaying = false;
- Stop();
+ onComplete?.Invoke();
+ if (isReleaseImmediately)
+ {
+ Release();
+ }
+
}
}
@@ -299,7 +428,7 @@
{
this.DoWaitStop();
if (isReleaseImmediately)
- Stop();
+ Release();
}
diff --git a/Main/Component/UI/Effect/UIEffectPlayer.cs b/Main/Component/UI/Effect/UIEffectPlayer.cs
index 35a5bfe..5644c6f 100644
--- a/Main/Component/UI/Effect/UIEffectPlayer.cs
+++ b/Main/Component/UI/Effect/UIEffectPlayer.cs
@@ -11,186 +11,22 @@
//UI鐗规晥澶ч儴鍒嗘儏鍐典笉浼氭敼鍙樼壒鏁堬紝鏃犻渶閿�姣�
public class UIEffectPlayer : EffectPlayer
{
- [Header("鏄惁寰幆鎾斁spine鐗规晥")]
- public bool isPlaySpineLoop = false;
- [Header("鏄惁鍦ㄦ樉绀烘椂鎾斁")]
- public bool isPlayOnEnable = false;
-
- [Header("寤惰繜鎾斁(姣)")]
- public int playDelayTime = 0;
-
- int playSpineAnimIndex = -1; //鎾斁spine鐗规晥鍔ㄧ敾绱㈠紩,
-
-
-
- protected override void OnEnable()
- {
- playSpineAnimIndex = -1;
- if (isPlayOnEnable)
- {
- PlayAsync(false).Forget();
- }
- else if (spineComp != null)
- {
- if (!isPlaying)
- {
- //闅愯棌锛屼細鏈夐潤鎬佹樉绀洪棶棰�
- spineComp.enabled = false;
- }
- }
- }
-
- public override void Play(bool showLog = true)
- {
- isPlaying = true;
- if (!isInit)
- {
- InitComponent(showLog);
- //effeid 涓�0涔熷垵濮嬪寲鎴愬姛锛岄伩鍏嶉噸澶嶅鐞嗭紝鍦ㄥ彉鏇磂ffectid鏃朵細閲嶆柊鍒濆鍖�
- isInit = true;
- }
- else
- {
- //閬垮厤閲嶅鍒涘缓
- if (!this.gameObject.activeSelf)
- {
- this.gameObject.SetActive(true);
- }
- //闃茶寖effeid 涓�0
- if (effectConfig != null && effectConfig.isSpine != 0)
- {
- PlayerTheSpineAnim();
- }
- return;
- }
-
- if (EffectMgr.IsNotShowBySetting(effectId))
- {
- return;
- }
-
- if (null != effectTarget)
- {
- if (pool != null)
- pool.Release(effectTarget);
- effectTarget = null;
- }
-
- if (!this.gameObject.activeSelf)
- {
- this.gameObject.SetActive(true);
- }
-
- // 鍔犺浇spine鐗规晥璧勬簮
- if (effectConfig.isSpine != 0)
- {
- PlaySpineEffect();
- }
- else
- {
- PlayerEffect(false);
- }
- SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
- }
-
-
- protected override void PlaySpineEffect()
- {
- if (spineComp == null)
- {
- spineComp = gameObject.AddMissingComponent<SkeletonGraphic>();
- }
-
- if (spineComp.skeletonDataAsset == null)
- {
- //LoadAsset 宸茬粡鏈夌紦瀛楽keletonDataAsset
- spineComp.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
- spineComp.raycastTarget = false;
- spineComp.Initialize(true);
-
- // 妫�鏌ュ姩鐢绘槸鍚︽湁鐩稿姞妯″紡
- bool hasAdditiveBlend = CheckForAdditiveBlend(spineComp.Skeleton);
- if (hasAdditiveBlend)
- {
- spineComp.material = ResManager.Instance.LoadAsset<Material>("UIEffect/" + effectConfig.packageName, effectConfig.fxName.Split('_')[0] + "_Material-Additive");
- }
- else
- {
- spineComp.material = null;
- }
-
- spineAnimationState = spineComp.AnimationState;
- spineAnimationState.Data.DefaultMix = 0f;
- spineAnimationState.Complete -= OnSpineAnimationComplete;
- spineAnimationState.Complete += OnSpineAnimationComplete;
- }
-
- spineComp.enabled = true;
- PlayerTheSpineAnim();
- }
-
- private bool CheckForAdditiveBlend(Spine.Skeleton skeleton)
- {
- // 閬嶅巻鎵�鏈夋彃妲斤紝妫�鏌ユ槸鍚︽湁鐩稿姞妯″紡
- foreach (var slot in skeleton.Slots)
- {
- if (slot.Data.BlendMode == Spine.BlendMode.Additive)
- {
- return true;
- }
- }
- return false;
- }
-
+
+ //spine閲岀殑绗嚑涓姩鐢�
public void Play(int index, bool showLog = true)
{
playSpineAnimIndex = index;
PlayAsync(showLog).Forget();
}
- async UniTask PlayAsync(bool showLog = true)
+ //閰嶇疆鍔ㄧ敾缁勬暟缁勭储寮�
+ public void PlayByArrIndex(int index, bool showLog = true)
{
- await UniTask.Delay(playDelayTime);
- Play(showLog);
+ var config = EffectConfig.Get(effectId);
+ playSpineAnimIndex = config.animIndex[index];
+ PlayAsync(showLog).Forget();
}
-
- // 鎾斁鎸囧畾鍔ㄧ敾
- void PlayerTheSpineAnim()
- {
- spineComp.enabled = true;
- var skeletonData = spineComp.Skeleton.Data;
- if (skeletonData.Animations.Count > 0)
- {
- string defaultAnimationName = skeletonData.Animations.Items[playSpineAnimIndex == -1 ? effectConfig.animIndex : playSpineAnimIndex].Name;
- spineAnimationState.SetAnimation(0, defaultAnimationName, isPlaySpineLoop);
- }
- else
- {
- Debug.LogError("Spine 鏁版嵁涓病鏈夋壘鍒颁换浣曞姩鐢伙紒" + effectConfig.id);
- }
- }
-
-
-
- //鍗曟鎾斁瀹屾瘯灏变細瑙﹀彂锛屽嵆浣挎槸寰幆
- protected override void OnSpineAnimationComplete(Spine.TrackEntry trackEntry)
- {
- if (!isPlaySpineLoop)
- {
- spineComp.enabled = false;
- isPlaying = false;
- if (isReleaseImmediately)
- {
- Stop();
- }
- else
- {
- onComplete?.Invoke();
- }
- }
- }
-
// 鍒涘缓鍚庣殑鐗规晥浼氳嚜鍔ㄩ殣钘� 闇�瑕佹墜鍔ㄨ皟鐢≒lay鎵嶈兘鎾斁
diff --git a/Main/Component/UI/Effect/UISpineEffect.cs b/Main/Component/UI/Effect/UISpineEffect.cs
new file mode 100644
index 0000000..e7340d4
--- /dev/null
+++ b/Main/Component/UI/Effect/UISpineEffect.cs
@@ -0,0 +1,7 @@
+
+using UnityEngine;
+
+public class UISpineEffect : MonoBehaviour
+{
+ public Material material;
+}
diff --git a/Main/System/Hero/HeroConfigUtility.cs.meta b/Main/Component/UI/Effect/UISpineEffect.cs.meta
similarity index 83%
rename from Main/System/Hero/HeroConfigUtility.cs.meta
rename to Main/Component/UI/Effect/UISpineEffect.cs.meta
index fd3a21a..d7d957b 100644
--- a/Main/System/Hero/HeroConfigUtility.cs.meta
+++ b/Main/Component/UI/Effect/UISpineEffect.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f0e5888e0c25bbc48bbf6aa354fad7b2
+guid: fdbe400d15c065042a16a05cd09dd322
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/Config/Configs/EffectConfig.cs b/Main/Config/Configs/EffectConfig.cs
index d6469e2..2cedfea 100644
--- a/Main/Config/Configs/EffectConfig.cs
+++ b/Main/Config/Configs/EffectConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�19鏃�
+// [ Date ]: Thursday, August 21, 2025
//--------------------------------------------------------
using System.Collections.Generic;
@@ -20,7 +20,7 @@
public string packageName;
public int isSpine;
public string fxName;
- public int animIndex;
+ public int[] animIndex;
public int audio;
public string nodeName;
public int notShow;
@@ -48,7 +48,19 @@
fxName = tables[3];
- int.TryParse(tables[4],out animIndex);
+ if (tables[4].Contains("["))
+ {
+ animIndex = JsonMapper.ToObject<int[]>(tables[4]);
+ }
+ else
+ {
+ string[] animIndexStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ animIndex = new int[animIndexStringArray.Length];
+ for (int i=0;i<animIndexStringArray.Length;i++)
+ {
+ int.TryParse(animIndexStringArray[i],out animIndex[i]);
+ }
+ }
int.TryParse(tables[5],out audio);
diff --git a/Main/Config/Configs/FightPowerRatioConfig.cs b/Main/Config/Configs/FightPowerRatioConfig.cs
index 4f87731..39e72f3 100644
--- a/Main/Config/Configs/FightPowerRatioConfig.cs
+++ b/Main/Config/Configs/FightPowerRatioConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�18鏃�
+// [ Date ]: Friday, August 22, 2025
//--------------------------------------------------------
using System.Collections.Generic;
@@ -32,14 +32,32 @@
public float MissRateDefRatio;
public float ParryRateDefRatio;
public float SuckHPPerDefRatio;
+ public float FinalDamPerRatio;
+ public float FinalDamPerDefRatio;
+ public float PhyDamPerRatio;
+ public float PhyDamPerDefRatio;
+ public float MagDamPerRatio;
+ public float MagDamPerDefRatio;
public float NormalSkillPerRatio;
public float NormalSkillPerDefRatio;
public float AngerSkillPerRatio;
public float AngerSkillPerDefRatio;
public float SuperDamPerRatio;
public float SuperDamPerDefRatio;
+ public float CurePerRatio;
+ public float CurePerDefRatio;
public float ShieldPerRatio;
public float ShieldPerDefRatio;
+ public float DOTPerRatio;
+ public float DOTPerDefRatio;
+ public float WeiFinalDamPerRatio;
+ public float WeiFinalDamPerDefRatio;
+ public float ShuFinalDamPerRatio;
+ public float ShuFinalDamPerDefRatio;
+ public float WuFinalDamPerRatio;
+ public float WuFinalDamPerDefRatio;
+ public float QunFinalDamPerRatio;
+ public float QunFinalDamPerDefRatio;
public override int LoadKey(string _key)
{
@@ -83,21 +101,57 @@
float.TryParse(tables[15],out SuckHPPerDefRatio);
- float.TryParse(tables[16],out NormalSkillPerRatio);
+ float.TryParse(tables[16],out FinalDamPerRatio);
- float.TryParse(tables[17],out NormalSkillPerDefRatio);
+ float.TryParse(tables[17],out FinalDamPerDefRatio);
- float.TryParse(tables[18],out AngerSkillPerRatio);
+ float.TryParse(tables[18],out PhyDamPerRatio);
- float.TryParse(tables[19],out AngerSkillPerDefRatio);
+ float.TryParse(tables[19],out PhyDamPerDefRatio);
- float.TryParse(tables[20],out SuperDamPerRatio);
+ float.TryParse(tables[20],out MagDamPerRatio);
- float.TryParse(tables[21],out SuperDamPerDefRatio);
+ float.TryParse(tables[21],out MagDamPerDefRatio);
- float.TryParse(tables[22],out ShieldPerRatio);
+ float.TryParse(tables[22],out NormalSkillPerRatio);
- float.TryParse(tables[23],out ShieldPerDefRatio);
+ float.TryParse(tables[23],out NormalSkillPerDefRatio);
+
+ float.TryParse(tables[24],out AngerSkillPerRatio);
+
+ float.TryParse(tables[25],out AngerSkillPerDefRatio);
+
+ float.TryParse(tables[26],out SuperDamPerRatio);
+
+ float.TryParse(tables[27],out SuperDamPerDefRatio);
+
+ float.TryParse(tables[28],out CurePerRatio);
+
+ float.TryParse(tables[29],out CurePerDefRatio);
+
+ float.TryParse(tables[30],out ShieldPerRatio);
+
+ float.TryParse(tables[31],out ShieldPerDefRatio);
+
+ float.TryParse(tables[32],out DOTPerRatio);
+
+ float.TryParse(tables[33],out DOTPerDefRatio);
+
+ float.TryParse(tables[34],out WeiFinalDamPerRatio);
+
+ float.TryParse(tables[35],out WeiFinalDamPerDefRatio);
+
+ float.TryParse(tables[36],out ShuFinalDamPerRatio);
+
+ float.TryParse(tables[37],out ShuFinalDamPerDefRatio);
+
+ float.TryParse(tables[38],out WuFinalDamPerRatio);
+
+ float.TryParse(tables[39],out WuFinalDamPerDefRatio);
+
+ float.TryParse(tables[40],out QunFinalDamPerRatio);
+
+ float.TryParse(tables[41],out QunFinalDamPerDefRatio);
}
catch (Exception exception)
{
diff --git a/Main/Config/Configs/FuncOpenLVConfig.cs b/Main/Config/Configs/FuncOpenLVConfig.cs
index 55f1fda..49baa97 100644
--- a/Main/Config/Configs/FuncOpenLVConfig.cs
+++ b/Main/Config/Configs/FuncOpenLVConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�5鏃�
+// [ Date ]: 2025骞�8鏈�20鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -18,15 +18,13 @@
public int FuncId;
public int LimitLV;
- public int LimitMagicWeapon;
public int LimiRealmLV;
public int LimitMissionID;
- public string Remark;
- public string State;
+ public string Name;
+ public string Desc;
public string Tip;
public string Icon;
public int open;
- public int ContinueTask;
public override int LoadKey(string _key)
{
@@ -42,23 +40,19 @@
int.TryParse(tables[1],out LimitLV);
- int.TryParse(tables[2],out LimitMagicWeapon);
+ int.TryParse(tables[2],out LimiRealmLV);
- int.TryParse(tables[3],out LimiRealmLV);
+ int.TryParse(tables[3],out LimitMissionID);
- int.TryParse(tables[4],out LimitMissionID);
+ Name = tables[4];
- Remark = tables[5];
+ Desc = tables[5];
- State = tables[6];
+ Tip = tables[6];
- Tip = tables[7];
+ Icon = tables[7];
- Icon = tables[8];
-
- int.TryParse(tables[9],out open);
-
- int.TryParse(tables[10],out ContinueTask);
+ int.TryParse(tables[8],out open);
}
catch (Exception exception)
{
diff --git a/Main/Config/Configs/SkillConfig.cs b/Main/Config/Configs/SkillConfig.cs
index 002e87f..60f9918 100644
--- a/Main/Config/Configs/SkillConfig.cs
+++ b/Main/Config/Configs/SkillConfig.cs
@@ -1,227 +1,230 @@
-锘�//--------------------------------------------------------
-// [Author]: YYL
-// [ Date ]: Wednesday, August 20, 2025
-//--------------------------------------------------------
-
-using System.Collections.Generic;
-using System;
-using UnityEngine;
-using LitJson;
-
-public partial class SkillConfig : ConfigBase<int, SkillConfig>
-{
- static SkillConfig()
- {
- // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
- visit = true;
- }
-
- public int SkillID;
- public int SkillTypeID;
- public int SkillMaxLV;
- public string SkillName;
- public string Description;
- public int FuncType;
- public int SkillType;
- public int HurtType;
- public int AtkType;
- public int TagAim;
- public int TagFriendly;
- public int TagAffect;
- public int TagCount;
- public int HappenRate;
- public int EffectID1;
- public int[] EffectValues1;
- public int EffectID2;
- public int[] EffectValues2;
- public int EffectID3;
- public int[] EffectValues3;
- public int ConnSkill;
- public int CoolDownTime;
- public int[] EnhanceSkillList;
- public int FightPower;
- public int StartupFrames;
- public int[] ActiveFrames;
- public int RecoveryFrames;
- public int LoopCount;
- public int CastPosition;
- public int CastIndexNum;
- public float CastDistance;
- public int[][] DamageDivide;
- public int BulletEffectId;
- public int BulletPos;
- public int BulletPath;
- public int BulletFlyTime;
- public int ExplosionEffectId;
- public int ExplosionPos;
- public string SkillMotionName;
- public int EffectId;
- public int EffectPos;
- public int EffectType;
- public string IconName;
- public int ExplosionEffect2;
-
- public override int LoadKey(string _key)
- {
- int key = GetKey(_key);
- return key;
- }
-
- public override void LoadConfig(string input)
- {
- try {
- string[] tables = input.Split('\t');
- int.TryParse(tables[0],out SkillID);
-
- int.TryParse(tables[1],out SkillTypeID);
-
- int.TryParse(tables[2],out SkillMaxLV);
-
- SkillName = tables[3];
-
- Description = tables[4];
-
- int.TryParse(tables[5],out FuncType);
-
- int.TryParse(tables[6],out SkillType);
-
- int.TryParse(tables[7],out HurtType);
-
- int.TryParse(tables[8],out AtkType);
-
- int.TryParse(tables[9],out TagAim);
-
- int.TryParse(tables[10],out TagFriendly);
-
- int.TryParse(tables[11],out TagAffect);
-
- int.TryParse(tables[12],out TagCount);
-
- int.TryParse(tables[13],out HappenRate);
-
- int.TryParse(tables[14],out EffectID1);
-
- if (tables[15].Contains("["))
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: Friday, August 22, 2025
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class SkillConfig : ConfigBase<int, SkillConfig>
+{
+ static SkillConfig()
+ {
+ // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+ visit = true;
+ }
+
+ public int SkillID;
+ public int SkillTypeID;
+ public int SkillLV;
+ public int SkillMaxLV;
+ public string SkillName;
+ public string Description;
+ public int FuncType;
+ public int SkillType;
+ public int HurtType;
+ public int AtkType;
+ public int TagAim;
+ public int TagFriendly;
+ public int TagAffect;
+ public int TagCount;
+ public int HappenRate;
+ public int EffectID1;
+ public int[] EffectValues1;
+ public int EffectID2;
+ public int[] EffectValues2;
+ public int EffectID3;
+ public int[] EffectValues3;
+ public int ConnSkill;
+ public int CoolDownTime;
+ public int[] EnhanceSkillList;
+ public int FightPower;
+ public int StartupFrames;
+ public int[] ActiveFrames;
+ public int RecoveryFrames;
+ public int LoopCount;
+ public int CastPosition;
+ public int CastIndexNum;
+ public float CastDistance;
+ public int[][] DamageDivide;
+ public int BulletEffectId;
+ public int BulletPos;
+ public int BulletPath;
+ public int BulletFlyTime;
+ public int ExplosionEffectId;
+ public int ExplosionPos;
+ public string SkillMotionName;
+ public int EffectId;
+ public int EffectPos;
+ public int EffectType;
+ public string IconName;
+ public int ExplosionEffect2;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out SkillID);
+
+ int.TryParse(tables[1],out SkillTypeID);
+
+ int.TryParse(tables[2],out SkillLV);
+
+ int.TryParse(tables[3],out SkillMaxLV);
+
+ SkillName = tables[4];
+
+ Description = tables[5];
+
+ int.TryParse(tables[6],out FuncType);
+
+ int.TryParse(tables[7],out SkillType);
+
+ int.TryParse(tables[8],out HurtType);
+
+ int.TryParse(tables[9],out AtkType);
+
+ int.TryParse(tables[10],out TagAim);
+
+ int.TryParse(tables[11],out TagFriendly);
+
+ int.TryParse(tables[12],out TagAffect);
+
+ int.TryParse(tables[13],out TagCount);
+
+ int.TryParse(tables[14],out HappenRate);
+
+ int.TryParse(tables[15],out EffectID1);
+
+ if (tables[16].Contains("["))
{
- EffectValues1 = JsonMapper.ToObject<int[]>(tables[15]);
+ EffectValues1 = JsonMapper.ToObject<int[]>(tables[16]);
}
else
{
- string[] EffectValues1StringArray = tables[15].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] EffectValues1StringArray = tables[16].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
EffectValues1 = new int[EffectValues1StringArray.Length];
for (int i=0;i<EffectValues1StringArray.Length;i++)
{
int.TryParse(EffectValues1StringArray[i],out EffectValues1[i]);
}
- }
-
- int.TryParse(tables[16],out EffectID2);
-
- if (tables[17].Contains("["))
+ }
+
+ int.TryParse(tables[17],out EffectID2);
+
+ if (tables[18].Contains("["))
{
- EffectValues2 = JsonMapper.ToObject<int[]>(tables[17]);
+ EffectValues2 = JsonMapper.ToObject<int[]>(tables[18]);
}
else
{
- string[] EffectValues2StringArray = tables[17].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] EffectValues2StringArray = tables[18].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
EffectValues2 = new int[EffectValues2StringArray.Length];
for (int i=0;i<EffectValues2StringArray.Length;i++)
{
int.TryParse(EffectValues2StringArray[i],out EffectValues2[i]);
}
- }
-
- int.TryParse(tables[18],out EffectID3);
-
- if (tables[19].Contains("["))
+ }
+
+ int.TryParse(tables[19],out EffectID3);
+
+ if (tables[20].Contains("["))
{
- EffectValues3 = JsonMapper.ToObject<int[]>(tables[19]);
+ EffectValues3 = JsonMapper.ToObject<int[]>(tables[20]);
}
else
{
- string[] EffectValues3StringArray = tables[19].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] EffectValues3StringArray = tables[20].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
EffectValues3 = new int[EffectValues3StringArray.Length];
for (int i=0;i<EffectValues3StringArray.Length;i++)
{
int.TryParse(EffectValues3StringArray[i],out EffectValues3[i]);
}
- }
-
- int.TryParse(tables[20],out ConnSkill);
-
- int.TryParse(tables[21],out CoolDownTime);
-
- if (tables[22].Contains("["))
+ }
+
+ int.TryParse(tables[21],out ConnSkill);
+
+ int.TryParse(tables[22],out CoolDownTime);
+
+ if (tables[23].Contains("["))
{
- EnhanceSkillList = JsonMapper.ToObject<int[]>(tables[22]);
+ EnhanceSkillList = JsonMapper.ToObject<int[]>(tables[23]);
}
else
{
- string[] EnhanceSkillListStringArray = tables[22].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] EnhanceSkillListStringArray = tables[23].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
EnhanceSkillList = new int[EnhanceSkillListStringArray.Length];
for (int i=0;i<EnhanceSkillListStringArray.Length;i++)
{
int.TryParse(EnhanceSkillListStringArray[i],out EnhanceSkillList[i]);
}
- }
-
- int.TryParse(tables[23],out FightPower);
-
- int.TryParse(tables[24],out StartupFrames);
-
- if (tables[25].Contains("["))
+ }
+
+ int.TryParse(tables[24],out FightPower);
+
+ int.TryParse(tables[25],out StartupFrames);
+
+ if (tables[26].Contains("["))
{
- ActiveFrames = JsonMapper.ToObject<int[]>(tables[25]);
+ ActiveFrames = JsonMapper.ToObject<int[]>(tables[26]);
}
else
{
- string[] ActiveFramesStringArray = tables[25].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ string[] ActiveFramesStringArray = tables[26].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
ActiveFrames = new int[ActiveFramesStringArray.Length];
for (int i=0;i<ActiveFramesStringArray.Length;i++)
{
int.TryParse(ActiveFramesStringArray[i],out ActiveFrames[i]);
}
- }
-
- int.TryParse(tables[26],out RecoveryFrames);
-
- int.TryParse(tables[27],out LoopCount);
-
- int.TryParse(tables[28],out CastPosition);
-
- int.TryParse(tables[29],out CastIndexNum);
-
- float.TryParse(tables[30],out CastDistance);
-
- DamageDivide = JsonMapper.ToObject<int[][]>(tables[31].Replace("(", "[").Replace(")", "]"));
-
- int.TryParse(tables[32],out BulletEffectId);
-
- int.TryParse(tables[33],out BulletPos);
-
- int.TryParse(tables[34],out BulletPath);
-
- int.TryParse(tables[35],out BulletFlyTime);
-
- int.TryParse(tables[36],out ExplosionEffectId);
-
- int.TryParse(tables[37],out ExplosionPos);
-
- SkillMotionName = tables[38];
-
- int.TryParse(tables[39],out EffectId);
-
- int.TryParse(tables[40],out EffectPos);
-
- int.TryParse(tables[41],out EffectType);
-
- IconName = tables[42];
-
- int.TryParse(tables[43],out ExplosionEffect2);
- }
- catch (Exception exception)
- {
- Debug.LogError(exception);
- }
- }
-}
+ }
+
+ int.TryParse(tables[27],out RecoveryFrames);
+
+ int.TryParse(tables[28],out LoopCount);
+
+ int.TryParse(tables[29],out CastPosition);
+
+ int.TryParse(tables[30],out CastIndexNum);
+
+ float.TryParse(tables[31],out CastDistance);
+
+ DamageDivide = JsonMapper.ToObject<int[][]>(tables[32].Replace("(", "[").Replace(")", "]"));
+
+ int.TryParse(tables[33],out BulletEffectId);
+
+ int.TryParse(tables[34],out BulletPos);
+
+ int.TryParse(tables[35],out BulletPath);
+
+ int.TryParse(tables[36],out BulletFlyTime);
+
+ int.TryParse(tables[37],out ExplosionEffectId);
+
+ int.TryParse(tables[38],out ExplosionPos);
+
+ SkillMotionName = tables[39];
+
+ int.TryParse(tables[40],out EffectId);
+
+ int.TryParse(tables[41],out EffectPos);
+
+ int.TryParse(tables[42],out EffectType);
+
+ IconName = tables[43];
+
+ int.TryParse(tables[44],out ExplosionEffect2);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/XBGetItemConfig.cs b/Main/Config/Configs/XBGetItemConfig.cs
index 69d43c4..a0204a9 100644
--- a/Main/Config/Configs/XBGetItemConfig.cs
+++ b/Main/Config/Configs/XBGetItemConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�5鏃�
+// [ Date ]: 2025骞�8鏈�20鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -19,9 +19,9 @@
public int ID;
public int TreasureType;
public int MinLV;
- public string GridItemInfo;
- public string GridLibInfo;
- public string JobItemList;
+ public Dictionary<int, int[]> GridItemInfo;
+ public Dictionary<int, int> GridLibInfo;
+ public int[][] JobItemList;
public int[][] GridItemRateList1;
public override int LoadKey(string _key)
@@ -40,11 +40,11 @@
int.TryParse(tables[2],out MinLV);
- GridItemInfo = tables[3];
+ GridItemInfo = ConfigParse.ParseIntArrayDict(tables[3]);
- GridLibInfo = tables[4];
+ GridLibInfo = ConfigParse.ParseIntDict(tables[4]);
- JobItemList = tables[5];
+ JobItemList = JsonMapper.ToObject<int[][]>(tables[5].Replace("(", "[").Replace(")", "]"));
GridItemRateList1 = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
}
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index 84a54ea..2f5220f 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -108,6 +108,7 @@
Register(typeof(H0722_tagItemDeadLockRefresh), typeof(DTC0722_tagItemDeadLockRefresh));
Register(typeof(HB125_tagSCPlayerHeroInfo), typeof(DTCB125_tagSCPlayerHeroInfo));
Register(typeof(HA814_tagMCMakeItemAnswer), typeof(DTCA814_tagMCMakeItemAnswer));
+ Register(typeof(HB122_tagSCHeroInfo), typeof(DTCB122_tagSCHeroInfo));
}
//涓诲伐绋嬫敞鍐屽皝鍖�
diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
index f46f2f9..ee20400 100644
--- a/Main/System/HappyXB/HappyXBModel.cs
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -8,348 +8,79 @@
public class HappyXBModel : GameSystemManager<HappyXBModel>
{
- private Dictionary<string, XBGetItemConfig> xbGetItemDict = new Dictionary<string, XBGetItemConfig>();
- private Dictionary<int, List<XBGetItemConfig>> xbTypeItemDict = new Dictionary<int, List<XBGetItemConfig>>();
- private Dictionary<string, Dictionary<int, XBGetItem>> jobXBItemDict = new Dictionary<string, Dictionary<int, XBGetItem>>();
- private Dictionary<int, XBFuncSet> xbFuncSetDict = new Dictionary<int, XBFuncSet>();
- public Dictionary<int, int> XBCostTypeDict = new Dictionary<int, int>();
- public HappXBTitle title = HappXBTitle.Best;
+ //瀵诲疂浜у嚭搴�
+ private Dictionary<int, Dictionary<int, XBGetItemConfig>> xbGetItemDict = new Dictionary<int, Dictionary<int, XBGetItemConfig>>(); //濂栨睜鐨勬墍鏈夌墿鍝侊紙鎸夌被鍨�+绛夌骇锛�
+ private Dictionary<int, List<XBGetItemConfig>> xbTypeItemDict = new Dictionary<int, List<XBGetItemConfig>>(); //濂栨睜鐨勬墍鏈夌墿鍝侊紙鎸夌被鍨嬶級
+ float xbLastTime = 0; //绛夊緟鏈嶅姟绔洖澶� 濡傛灉澶暱灏遍噸缃负涓嶇瓑寰�
+ bool m_IsWaitServerXB = false; // 绛夊緟鏈嶅姟绔洖澶�
+ public bool isXBCoolTime
+ {
+ get
+ {
+ #if UNITY_EDITOR
+ if (Time.time - xbLastTime > 1)
+ #else
+ if (Time.time - xbLastTime > 10)
+ #endif
+ {
+ m_IsWaitServerXB = false;
+ return m_IsWaitServerXB;
+ }
- public string USETOOLXBKey = string.Empty;
- public static string HAPPYXBITEMKEY;
- public List<ArrayList> XBNotifyParms = new List<ArrayList>();
- public bool isXBCoolTime { get; set; }
+ return m_IsWaitServerXB;
+ }
- public bool isJumpBestXB { get; set; }
- public bool isJumpRuneXB { get; set; }
- public bool isJumpGubaoXB { get; set; }
- public bool isJumpGatherSoulXB { get; set; } //鑱氶瓊瀵诲疂锛氭槸鍚﹁烦杩囧姩鐢�
+ set
+ {
+ m_IsWaitServerXB = value;
+ xbLastTime = Time.time;
+ }
+ }
+ private Dictionary<int, XBTypeInfo> xbTypeInfoDict = new Dictionary<int, XBTypeInfo>(); //鎶藉鐘舵�佺浉鍏崇殑 鏈嶅姟鍣ㄨ褰�
public override void Init()
{
- isJumpBestXB = false;
- isJumpRuneXB = false;
- isJumpGubaoXB = false;
- isJumpGatherSoulXB = false;
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+ FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
+ PackManager.Instance.RefreshItemEvent += RefreshXBTool;
+
xbGetItemDict.Clear();
xbTypeItemDict.Clear();
- xbFuncSetDict.Clear();
List<XBGetItemConfig> list = XBGetItemConfig.GetValues();
for (int i = 0; i < list.Count; i++)
{
- string key = StringUtility.Contact(list[i].TreasureType, list[i].MinLV);
- if (!xbGetItemDict.ContainsKey(key))
+ if (!xbGetItemDict.ContainsKey(list[i].TreasureType))
{
- xbGetItemDict.Add(key, list[i]);
+ xbGetItemDict.Add(list[i].TreasureType, new Dictionary<int, XBGetItemConfig>());
}
+ xbGetItemDict[list[i].TreasureType].Add(list[i].MinLV, list[i]);
+
if (!xbTypeItemDict.ContainsKey(list[i].TreasureType))
{
- List<XBGetItemConfig> typeItemlist = new List<XBGetItemConfig>();
- typeItemlist.Add(list[i]);
- xbTypeItemDict.Add(list[i].TreasureType, typeItemlist);
+ xbTypeItemDict.Add(list[i].TreasureType, new List<XBGetItemConfig>());
}
- else
- {
- xbTypeItemDict[list[i].TreasureType].Add(list[i]);
- }
+
+ xbTypeItemDict[list[i].TreasureType].Add(list[i]);
}
+ }
- SetXBFuncDict(1);
- SetXBFuncDict(2);
- // var treasureIDArr = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("TreasureLuckyDraw").Numerical1);
- // for (int i = 0; i < treasureIDArr.Length; i++)
- // {
- // int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
- // SetXBFuncDict(type);
- // }
-
- SetXBFuncDict(105);
- SetXBFuncDict(106);
- SetXBFuncDict(107);
- SetXBFuncDict(108);
- SysNotifyMgr.Instance.RegisterCondition("HappyXB", SatisfyNotifyCondition);
-
- XBCostTypeDict.Clear();
-
- XBCostTypeDict[(int)HappXBTitle.Best] = TreasureSetConfig.Get(1).CostMoneyType;
- XBCostTypeDict[(int)HappXBTitle.Rune] = TreasureSetConfig.Get(2).CostMoneyType;
- // for (int i = 0; i < treasureIDArr.Length; i++)
- // {
- // int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
- // XBCostTypeDict[(int)HappXBTitle.Gubao1 + i] = TreasureSetConfig.Get(type).CostMoneyType;
- // }
- XBCostTypeDict[(int)HappXBTitle.YunShi1] = TreasureSetConfig.Get(105).CostMoneyType;
- XBCostTypeDict[(int)HappXBTitle.YunShi2] = TreasureSetConfig.Get(106).CostMoneyType;
- XBCostTypeDict[(int)HappXBTitle.YunShi3] = TreasureSetConfig.Get(107).CostMoneyType;
- XBCostTypeDict[(int)HappXBTitle.YunShi4] = TreasureSetConfig.Get(108).CostMoneyType;
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState;
+ PackManager.Instance.RefreshItemEvent -= RefreshXBTool;
}
public void OnBeforePlayerDataInitialize()
{
- PlayerDatas.Instance.playerDataRefreshEvent -= RefreshStoreScore;
- FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState;
- PackManager.Instance.RefreshItemEvent -= RefreshXBTool;
isXBCoolTime = false;
- XBNotifyParms.Clear();
xbTypeInfoDict.Clear();
}
- public void OnAfterPlayerDataInitialize()
- {
- SetXBGetItemModel();
- }
- public void OnPlayerLoginOk()
- {
- int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
- HAPPYXBITEMKEY = StringUtility.Contact(playerId, "HappyXBItemTime");
- USETOOLXBKey = StringUtility.Contact(playerId, "UseToolXB");
- XBWarehouseRedPoint();
- PlayerDatas.Instance.playerDataRefreshEvent += RefreshStoreScore;
- PackManager.Instance.RefreshItemEvent += RefreshXBTool;
- FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
- }
-
- /// <summary>
- /// 妫�娴嬭嚜韬帺瀹舵槸鍚﹂渶瑕佷俊鎭彁绀�
- /// </summary>
- /// <param name="key"></param>
- /// <param name="paramArray"></param>
- /// <returns></returns>
- private bool SatisfyNotifyCondition(string key, ArrayList paramArray)
- {
- switch (title)
- {
- case HappXBTitle.Best:
- if (isJumpBestXB)
- {
- return true;
- }
- break;
- case HappXBTitle.Rune:
- if (isJumpRuneXB)
- {
- return true;
- }
- break;
- case HappXBTitle.Gubao1:
- case HappXBTitle.Gubao2:
- case HappXBTitle.Gubao3:
- case HappXBTitle.Gubao4:
- if (isJumpGubaoXB)
- {
- return true;
- }
- break;
- case HappXBTitle.GatherSoul:
- if (isJumpGatherSoulXB)
- {
- return true;
- }
- break;
- case HappXBTitle.YunShi1:
- case HappXBTitle.YunShi2:
- case HappXBTitle.YunShi3:
- case HappXBTitle.YunShi4:
- // if (ModelCenter.Instance.GetModelEx<YunShiXBActModel>().isSkipXB)
- // {
- // return true;
- // }
- break;
- }
-
- XBNotifyParms.Add(new ArrayList(paramArray));
- if (paramArray != null && paramArray.Count > 0 &&
- paramArray[0].Equals(UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName)))
- {
- return false;
- }
- return true;
- }
-
- public void GetNotifyResult(int itemId, int itemCount)
- {
- int notifyIndex = 0;
- if (CheckNotifyItemByIdAndCnt(itemId, itemCount, out notifyIndex))
- {
- SysNotifyMgr.Instance.ShowTip("HappyXB", XBNotifyParms[notifyIndex].ToArray());
- }
- }
-
- private bool CheckNotifyItemByIdAndCnt(int itemId, int itemCnt, out int notifyIndex)
- {
- notifyIndex = 0;
- for (int i = 0; i < XBNotifyParms.Count; i++)
- {
- if (XBNotifyParms[i] != null && XBNotifyParms[i].Count > 3)
- {
- int notifyItemId = 0;
- int.TryParse(XBNotifyParms[i][1].ToString(), out notifyItemId);
- int notifyItemCnt = 0;
- int.TryParse(XBNotifyParms[i][3].ToString(), out notifyItemCnt);
- if (notifyItemId == itemId && notifyItemCnt == itemCnt)
- {
- notifyIndex = i;
- return true;
- }
- }
- }
- return false;
- }
-
- private void SetXBFuncDict(int type)
- {
- var treasureSetCfg = TreasureSetConfig.Get(type);
- if (!xbFuncSetDict.ContainsKey(type))
- {
- XBFuncSet funcSet = new XBFuncSet();
- funcSet.xbType = type;
- funcSet.xbNums = treasureSetCfg.TreasureCountList;
-
- funcSet.xbPrices = treasureSetCfg.CostMoneyList;
-
- funcSet.costToolIds = new int[] { treasureSetCfg.CostItemID, treasureSetCfg.CostItemID };
- funcSet.costToolNums = treasureSetCfg.CostItemCountList;
- funcSet.dailyFreeCount = treasureSetCfg.DailyFreeCount;
- funcSet.xbScores = new int[] { treasureSetCfg.AwardMoneyValue, treasureSetCfg.AwardMoneyValue * treasureSetCfg.TreasureCountList[1] };
-
- xbFuncSetDict.Add(funcSet.xbType, funcSet);
- }
- }
-
- public XBFuncSet GetXBFuncSet(int type)
- {
- XBFuncSet funcSet = null;
- xbFuncSetDict.TryGetValue(type, out funcSet);
- return funcSet;
- }
-
- //榛樿浼樺厛浣跨敤閬撳叿瀵诲疂
- public bool IsUseToolXB()
- {
- return true;
- //if (!PlayerPrefs.HasKey(USETOOLXBKey))
- //{
- // LocalSave.SetBool(USETOOLXBKey, true);
- // return true;
- //}
- //else
- //{
- // return LocalSave.GetBool(USETOOLXBKey);
- //}
- }
-
- public void SetUseToolXB(bool isToolXB)
- {
- //LocalSave.SetBool(USETOOLXBKey, isToolXB);
- }
-
- private void SetXBGetItemModel()
- {
- jobXBItemDict.Clear();
- Dictionary<int, XBGetItem> getItemDict = new Dictionary<int, XBGetItem>();
- Dictionary<int, List<int>> jobItemDict = new Dictionary<int, List<int>>();
- int playerJob = PlayerDatas.Instance.baseData.Job;
- foreach (var key in xbGetItemDict.Keys)
- {
-
- getItemDict.Clear();
- jobItemDict.Clear();
- Dictionary<int, XBGetItem> jobGetItemDict = new Dictionary<int, XBGetItem>();
- XBGetItemConfig getItemConfig = xbGetItemDict[key];
- jobXBItemDict.Add(key, jobGetItemDict);
- JsonData getItemJson = JsonMapper.ToObject(getItemConfig.GridItemInfo);
- foreach (var grid in getItemJson.Keys)
- {
- int id = int.Parse(getItemJson[grid][0].ToString());
- int count = int.Parse(getItemJson[grid][1].ToString());
- XBGetItem getItem = new XBGetItem();
- getItem.SetModel(int.Parse(grid), id, count);
- getItemDict.Add(getItem.gridIndex, getItem);
- }
- JsonData jobReplaceJson = JsonMapper.ToObject(getItemConfig.JobItemList);
- if (jobReplaceJson.IsArray)
- {
- for (int i = 0; i < jobReplaceJson.Count; i++)
- {
- List<int> itemIdlist = new List<int>();
- jobItemDict.Add(i, itemIdlist);
- if (jobReplaceJson[i].IsArray)
- {
- for (int j = 0; j < jobReplaceJson[i].Count; j++)
- {
- int id = int.Parse(jobReplaceJson[i][j].ToString());
- itemIdlist.Add(id);
- }
- }
- }
- }
-
- foreach (var model in getItemDict.Values)
- {
- ItemConfig itemConfig = ItemConfig.Get(model.itemId);
- if (itemConfig.JobLimit == 0)
- {
- jobGetItemDict.Add(model.gridIndex, model);
- }
- else
- {
- bool isReplace = false;
- foreach (var list in jobItemDict.Values)
- {
- if (list.Contains(model.itemId))
- {
- for (int i = 0; i < list.Count; i++)
- {
- int equipJob = int.Parse(list[i].ToString().Substring(0, 1));
- if (playerJob == equipJob)
- {
- isReplace = true;
- XBGetItem getItem = new XBGetItem();
- getItem.SetModel(model.gridIndex, list[i], model.count);
- jobGetItemDict.Add(getItem.gridIndex, getItem);
- break;
- }
- }
- break;
- }
- }
- if (!isReplace)
- {
- jobGetItemDict.Add(model.gridIndex, model);
- }
- }
-
- }
-
- }
-
- }
-
- public Dictionary<int, XBGetItem> GetXBGetItemByID(int type)
- {
- int lv = 0;
- List<XBGetItemConfig> configlist = null;
- xbTypeItemDict.TryGetValue(type, out configlist);
- if (configlist != null)
- {
- for (int i = configlist.Count - 1; i > -1; i--)
- {
- if (PlayerDatas.Instance.baseData.LV >= configlist[i].MinLV)
- {
- lv = configlist[i].MinLV;
- break;
- }
- }
- }
- string key = StringUtility.Contact(type, lv);
- Dictionary<int, XBGetItem> dict = null;
- jobXBItemDict.TryGetValue(key, out dict);
- return dict;
- }
public XBGetItemConfig GetXBItemConfigByType(int type)
{
@@ -363,14 +94,11 @@
if (PlayerDatas.Instance.baseData.LV >= configlist[i].MinLV)
{
lv = configlist[i].MinLV;
- break;
+ return configlist[i];
}
}
}
- XBGetItemConfig xbItemConfig = null;
- string key = StringUtility.Contact(type, lv);
- xbGetItemDict.TryGetValue(key, out xbItemConfig);
- return xbItemConfig;
+ return null;
}
#region 澶勭悊鏈嶅姟绔暟鎹�
@@ -379,10 +107,9 @@
public int addXBScore { get; private set; }
public int addXBScoreType { get; private set; } //瀵诲疂绉垎璐у竵绫诲瀷
public int addXBLuckValue { get; private set; }
- private Dictionary<int, XBGetItem> xbResultDict = new Dictionary<int, XBGetItem>();
+ public Dictionary<int, XBGetItem> xbResultDict { get; private set; } = new Dictionary<int, XBGetItem>(); //濂栧搧椤哄簭锛氬鍝�
public void GetServerXBResult(HA350_tagMCTreasureResult result)
{
- XBNotifyParms.Clear();
xbResultDict.Clear();
addXBScore = result.AddMoneyValue;
addXBScoreType = result.AddMoneyType;
@@ -410,105 +137,41 @@
}
}
}
- SetXBResultRecord();
isXBCoolTime = false;
if (RefreshXBResultAct != null)
{
RefreshXBResultAct();
}
+ if (!UIManager.Instance.IsOpened<HeroCallResultWin>())
+ {
+ UIManager.Instance.OpenWindow<HeroCallResultWin>();
+ }
}
- List<string> itemGetTimeArray = new List<string>();
- List<string> getNewItemLoglist = new List<string>();
- List<XBGetItem> xbItemRecordlist = new List<XBGetItem>();
- public void SetXBResultRecord()
- {
- if (PlayerPrefs.HasKey(HAPPYXBITEMKEY))
+
+ public int GetCountInResult(int itemID)
+ {
+ int count = 0;
+ if (xbResultDict != null && xbResultDict.Count > 0)
{
- itemGetTimeArray = LocalSave.GeStringArray(HappyXBModel.HAPPYXBITEMKEY).ToList();
- }
- else
- {
- itemGetTimeArray.Clear();
- }
- xbItemRecordlist.Clear();
- getNewItemLoglist.Clear();
- xbItemRecordlist.AddRange(GetXBResultlist());
- if (xbItemRecordlist != null)
- {
- int remianLogNum = (itemGetTimeArray.Count + xbItemRecordlist.Count) - 30;
- if (remianLogNum > 0)
+ foreach (var item in xbResultDict)
{
- int startIndex = itemGetTimeArray.Count - remianLogNum;
- itemGetTimeArray.RemoveRange(startIndex, remianLogNum);
+ if (item.Value.itemId == itemID)
+ {
+ count++;
+ }
}
- xbItemRecordlist.Sort(CompareByTime);
- for (int i = 0; i < xbItemRecordlist.Count; i++)
- {
- string log = Language.Get("HappyXBGetItemTime", xbItemRecordlist[i].createTimeStr, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName),
- xbItemRecordlist[i].itemId, xbItemRecordlist[i].count);
- getNewItemLoglist.Add(log);
- }
- if (getNewItemLoglist.Count > 0)
- {
- itemGetTimeArray.InsertRange(0, getNewItemLoglist);
- LocalSave.SetStringArray(HappyXBModel.HAPPYXBITEMKEY, itemGetTimeArray.ToArray());
- }
-
}
+ return count;
}
- public int CompareByTime(XBGetItem start, XBGetItem end)
- {
- DateTime startTime = start.createTime;
- DateTime endTime = end.createTime;
- if (startTime.CompareTo(endTime) != 0) return -startTime.CompareTo(endTime);
-
- return 0;
- }
-
- public List<XBGetItem> rangelist = new List<XBGetItem>();
- List<int> index = new List<int>();
- public List<XBGetItem> GetXBResultlist()
- {
- rangelist.Clear();
- index.Clear();
- List<XBGetItem> xbItemlist = xbResultDict.Values.ToList();
- for (int i = 0; i < xbItemlist.Count; i++)
- {
- index.Add(i);
- }
- SetRandomList(xbItemlist);
- return rangelist;
- }
-
- public void SetRandomList(List<XBGetItem> xbItemlist)
- {
- int currentRandom = UnityEngine.Random.Range(0, index.Count);
- XBGetItem current = xbItemlist[index[currentRandom]];
- if (!rangelist.Contains(current))
- {
- rangelist.Add(current);
- index.Remove(index[currentRandom]);
-
- }
- if (index.Count > 0)
- {
- SetRandomList(xbItemlist);
- }
- }
-
- public Dictionary<int, XBGetItem> GetXbResultDict()
- {
- return xbResultDict;
- }
public void ClearXBRusltData()
{
xbResultDict.Clear();
}
- private Dictionary<int, XBTypeInfo> xbTypeInfoDict = new Dictionary<int, XBTypeInfo>();
+
public void GetServerXBInfo(HA351_tagMCTreasureInfo info)
{
for (int i = 0; i < info.InfoCount; i++)
@@ -556,7 +219,7 @@
RefreshXBTypeInfoAct();
}
- BestAndRuneXBRedPoint();
+ HeroCallRedPoint();
}
public XBTypeInfo GetXBInfoByType(int type)
@@ -567,14 +230,16 @@
}
/// <summary>
- /// type 1 鏋佸搧瀵诲疂 2 绗﹀嵃瀵诲疂 index 0 鍗曟瀵诲疂 1 澶氭瀵诲疂
- ///costType 0-榛樿浠欑帀锛�1-鍏嶈垂娆℃暟锛�2-瀵诲疂閬撳叿
+ /// 璇锋眰瀵诲疂
/// </summary>
- /// <param name="type"></param>
- /// <param name="index"></param>
+ /// <param name="type">瀵诲疂绫诲瀷</param>
+ /// <param name="index">0 鍗曟瀵诲疂 1 澶氭瀵诲疂</param>
+ /// <param name="costType">0-榛樿浠欑帀锛�1-鍏嶈垂娆℃暟锛�2-瀵诲疂閬撳叿</param>
public event Action<int> StartXBEvent;
public void SendXBQuest(int type, int index, int costType)
{
+ if (isXBCoolTime) return;
+
isXBCoolTime = true;
CA568_tagCMRequestTreasure treasure = new CA568_tagCMRequestTreasure();
treasure.TreasureType = (byte)type;
@@ -593,14 +258,14 @@
{
switch (type)
{
- case PackType.Treasure:
- SinglePack singlePack = PackManager.Instance.GetSinglePack(type);
- if (GeneralDefine.maxXBGridCount - singlePack.GetAllItems().Count < needGrid)
- {
- SysNotifyMgr.Instance.ShowTip("XBWarehouseFull");
- return false;
- }
- break;
+ // case PackType.Treasure:
+ // SinglePack singlePack = PackManager.Instance.GetSinglePack(type);
+ // if (GeneralDefine.maxXBGridCount - singlePack.GetAllItems().Count < needGrid)
+ // {
+ // SysNotifyMgr.Instance.ShowTip("XBWarehouseFull");
+ // return false;
+ // }
+ // break;
case PackType.Item:
if (PackManager.Instance.GetEmptyGridCount(type) < needGrid)
{
@@ -608,11 +273,19 @@
return false;
}
break;
+
+ case PackType.Hero:
+ if (PackManager.Instance.GetEmptyGridCount(type) < needGrid)
+ {
+ SysNotifyMgr.Instance.ShowTip("HeroBagFull");
+ return false;
+ }
+ break;
}
return true;
}
- public void SendOneXBQuest(PackType type, int xbType)
+ public void SendOneXBQuest(int xbType)
{
var config = TreasureSetConfig.Get(xbType);
if (GetXBInfoByType(xbType).treasureCountToday + config.TreasureCountList[0] > config.DailyMaxCount)
@@ -621,38 +294,40 @@
return;
}
- var funcSet = GetXBFuncSet(xbType);
- if (CheckIsEmptyGrid(type))
+ var funcSet = TreasureSetConfig.Get(xbType);
+ if (CheckIsEmptyGrid((PackType)config.PackType))
{
- if (IsHaveOneXBTool(xbType))
+ //閬撳叿瀵诲疂
+ if (funcSet.CostItemID != 0 && IsHaveOneXBTool(xbType))
{
SendXBQuest(xbType, 0, 2);
return;
}
-
-
- int moneyType = XBCostTypeDict[xbType];
- int xbOneMoney = funcSet.xbPrices[0];
+ //璐у竵瀵诲疂
+ int moneyType = funcSet.CostMoneyType;
+ int xbOneMoney = funcSet.CostMoneyList[0];
if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)xbOneMoney)
{
- StoreModel.Instance.UseMoneyCheck(xbOneMoney, () =>
+ StoreModel.Instance.UseMoneyCheck(xbOneMoney, moneyType, () =>
{
SendXBQuest(xbType, 0, 0);
- }, xbType == 1 ? 5 : 6, fullTip: Language.Get("TreasurePavilion08", xbOneMoney, moneyType, funcSet.costToolIds[0], 1));
+ }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, xbOneMoney,
+ UIHelper.GetIconNameWithMoneyType(moneyType), funcSet.CostItemCountList[0]));
}
else
{
SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
-
+ ItemTipUtility.Show(GeneralDefine.MoneyDisplayModel[moneyType], true);
}
}
}
- public void SendXBManyQuest(PackType type, int xbType)
+ public void SendXBManyQuest(int xbType)
{
+
var config = TreasureSetConfig.Get(xbType);
if (GetXBInfoByType(xbType).treasureCountToday + config.TreasureCountList[1] > config.DailyMaxCount)
{
@@ -660,83 +335,61 @@
return;
}
- var funcSet = GetXBFuncSet(xbType);
- if (CheckIsEmptyGrid(type))
+ var funcSet = TreasureSetConfig.Get(xbType);
+ if (CheckIsEmptyGrid((PackType)config.PackType, 10))
{
int toolCnt = 0;
int needToolCnt = 0;
int needMoney = 0;
if (IsHaveManyXBToolEx(xbType, out toolCnt, out needToolCnt, out needMoney))
{
- if (toolCnt >= needToolCnt)
- {
- CheckXBManyLimit(0, xbType, 2);
-
- return;
- }
-
+ SendXBQuest(xbType, 1, 2);
}
- int moneyType = XBCostTypeDict[xbType];
- int xbManyMoney = needMoney == 0 ? funcSet.xbPrices[1] : needMoney;
-
- if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)xbManyMoney)
+ //璐у竵瀵诲疂
+ int moneyType = funcSet.CostMoneyType;
+ if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)needMoney)
{
- StoreModel.Instance.UseMoneyCheck(xbManyMoney, () =>
+ StoreModel.Instance.UseMoneyCheck(needMoney, moneyType, () =>
{
+ //鍙鏈夐亾鍏峰氨鏄亾鍏峰瀹濓紝涓嶈冻閮ㄥ垎鏈嶅姟绔墸璐у竵
SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
- }, xbType == 1 ? 5 : 6, fullTip: Language.Get("TreasurePavilion08", xbManyMoney, moneyType, funcSet.costToolIds[1], needToolCnt - toolCnt));
+ }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, needMoney,
+ UIHelper.GetIconNameWithMoneyType(moneyType), needToolCnt - toolCnt));
}
else
{
SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
-
+ ItemTipUtility.Show(GeneralDefine.MoneyDisplayModel[moneyType], true);
}
}
}
- public void CheckXBManyLimit(int needMoney, int xbtype, int costType)
- {
- int moneyType = XBCostTypeDict[xbtype];
- if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)needMoney)
- {
- SendXBQuest(xbtype, 1, costType);
- }
- else
- {
- //WindowCenter.Instance.Open<RechargeTipWin>();
- SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
- }
- }
+
#endregion
public bool IsHaveFreeXB(int type)
{
+ int freeCountToday = 0;
XBTypeInfo typeInfo = GetXBInfoByType(type);
- if (typeInfo == null)
+ if (typeInfo != null)
{
- typeInfo = new XBTypeInfo()
- {
- xbType = type,
- luckValue = 0,
- freeCountToday = 0,
- treasureCount = 0,
- };
+ freeCountToday = typeInfo.freeCountToday;
}
//鍒ゆ柇鏄惁鏈夊厤璐规鏁帮紝涓斿厤璐规鏁版槸鍚︾敤瀹�
- var funcSet = GetXBFuncSet(type);
- return typeInfo.freeCountToday < funcSet.dailyFreeCount;
+ var funcSet = TreasureSetConfig.Get(type);
+ return freeCountToday < funcSet.DailyFreeCount;
}
public bool CheckIsXBTool(int itemId, int type)
{
- XBFuncSet funcSet = GetXBFuncSet(type);
+ var funcSet = TreasureSetConfig.Get(type);
if (funcSet == null) return false;
- if (funcSet.costToolIds.Contains(itemId))
+ if (funcSet.CostItemID == itemId)
{
return true;
}
@@ -744,11 +397,11 @@
}
public bool IsHaveOneXBTool(int type)
{
- XBFuncSet funcSet = GetXBFuncSet(type);
+ var funcSet = TreasureSetConfig.Get(type);
if (funcSet == null) return false;
- int toolCnt = (int)PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.costToolIds[0]);
- if (toolCnt >= funcSet.costToolNums[0])
+ int toolCnt = (int)PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.CostItemID);
+ if (toolCnt >= funcSet.CostItemCountList[0])
{
return true;
}
@@ -756,22 +409,6 @@
return false;
}
- //needToolCnt 涓洪厤琛ㄤ腑闇�瑕佺殑閬撳叿鏁伴噺
- public bool IsHaveManyXBTool(int type, out int toolCnt, out int needToolCnt)
- {
- toolCnt = 0;
- needToolCnt = 0;
- XBFuncSet funcSet = GetXBFuncSet(type);
- if (funcSet == null) return false;
-
- toolCnt = (int)PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.costToolIds[1]);
- needToolCnt = funcSet.costToolNums[1];
- if (toolCnt > 0)
- {
- return true;
- }
- return false;
- }
//needToolCnt 涓洪厤琛ㄤ腑闇�瑕佺殑閬撳叿鏁伴噺
// 鍙幏寰楃湡姝i渶瑕佽ˉ瓒宠喘涔伴亾鍏风殑閲戦
@@ -780,238 +417,105 @@
toolCnt = 0;
needToolCnt = 0; //閰嶇疆涓渶瑕佺殑閬撳叿鏁伴噺
needMoney = 0; //鐪熸闇�瑕佽ˉ瓒宠喘涔伴亾鍏风殑閲戦
- XBFuncSet funcSet = GetXBFuncSet(type);
+ var funcSet = TreasureSetConfig.Get(type);
if (funcSet == null) return false;
- toolCnt = (int)PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.costToolIds[1]);
- needToolCnt = funcSet.costToolNums[1];
+ toolCnt = (int)PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.CostItemID);
+ needToolCnt = funcSet.CostItemCountList[1];
- if (toolCnt > 0)
+ if (toolCnt >= needToolCnt)
{
- if (toolCnt < needToolCnt)
- {
- needMoney = funcSet.xbPrices[1] / needToolCnt * (needToolCnt - toolCnt);
- }
-
+ //閬撳叿瓒冲
return true;
}
+
+ if (funcSet.CostMoneyType != 0)
+ {
+ if (toolCnt != 0 && toolCnt < needToolCnt)
+ {
+ //閮ㄥ垎涓嶈冻鐨勬寜鍗曟浠锋牸绠�
+ needMoney = funcSet.CostMoneyList[0] * (needToolCnt - toolCnt);
+ }
+ else
+ {
+ //鍏ㄩ儴涓嶈冻鐨勬寜澶氭浠锋牸绠� 鍙兘閰嶇疆浜嗘姌鎵�
+ needMoney = funcSet.CostMoneyList[1];
+ }
+ }
+
return false;
}
-
-
- public event Action<float> RefreshBestXBTimeAct;
- public event Action<float> RefreshRuneXBTimeAct;
- public void RefreshBestXBTime(float time)
+ public int GetCostType(int type)
{
- if (RefreshBestXBTimeAct != null)
- {
- RefreshBestXBTimeAct(time);
- }
-
- if (time <= 0)
- {
- BestAndRuneXBRedPoint();
- }
- }
- public void RefreshRuneXBTime(float time)
- {
- if (RefreshRuneXBTimeAct != null)
- {
- RefreshRuneXBTimeAct(time);
- }
-
- if (time <= 0)
- {
- BestAndRuneXBRedPoint();
- }
+ var funcSet = TreasureSetConfig.Get(type);
+ if (funcSet == null) return 0;
+ return funcSet.CostMoneyType;
}
- public event Action<HappXBTitle, int> RefreshAgainXBAct;
- /// <summary>
- /// xbtype 0-鍗曟 1 澶氭
- /// </summary>
- /// <param name="xBTitle"></param>
- /// <param name="xbType"></param>
- public void SetAgainXBEvent(HappXBTitle xBTitle, int xbType)
- {
- if (RefreshAgainXBAct != null)
- {
- RefreshAgainXBAct(xBTitle, xbType);
- }
+ public int GetCostItemID(int type)
+ {
+ var funcSet = TreasureSetConfig.Get(type);
+ if (funcSet == null) return 0;
+ return funcSet.CostItemID;
}
+
#region 绾㈢偣閫昏緫
public const int HappyXB_RedKey = 203;
- public const int BestXB_RedKey = 20301;
- public const int RuneXB_RedKey = 20302;
- public const int XBStore_RedKey = 20303;
- public const int XBWarehouse_RedKey = 20304;
- public const int BestXB_OneRedKey = 20301001;
- public const int BestXB_ManyRedKey = 20301002;
- public const int BestXB_FreeRedKey = 20301003;
- public const int RuneXB_OneRedKey = 20302001;
- public const int RuneXB_ManyRedKey = 20302002;
- public const int RuneXB_FreeRedKey = 20302003;
+ public const int XBHeroCall1_RedKey = 20300; //姝﹀皢鍏嶈垂鍙敜
+
public Redpoint happyXBRed = new Redpoint(HappyXB_RedKey);
- public Redpoint bestXBRed = new Redpoint(HappyXB_RedKey, BestXB_RedKey);
- public Redpoint runeXBRed = new Redpoint(HappyXB_RedKey, RuneXB_RedKey);
- public Redpoint xbStoreRed = new Redpoint(HappyXB_RedKey, XBStore_RedKey);
- public Redpoint xbWarehouseRed = new Redpoint(HappyXB_RedKey, XBWarehouse_RedKey);
- public Redpoint bestXBOneRed = new Redpoint(BestXB_RedKey, BestXB_OneRedKey);
- public Redpoint bestXBManyRed = new Redpoint(BestXB_RedKey, BestXB_ManyRedKey);
- public Redpoint bestXBFreeRed = new Redpoint(BestXB_RedKey, BestXB_FreeRedKey);
- public Redpoint runeXBOneRed = new Redpoint(RuneXB_RedKey, RuneXB_OneRedKey);
- public Redpoint runeXBManyRed = new Redpoint(RuneXB_RedKey, RuneXB_ManyRedKey);
- public Redpoint runeXBFreeRed = new Redpoint(RuneXB_RedKey, RuneXB_FreeRedKey);
+ public Redpoint bestXBFreeRed = new Redpoint(HappyXB_RedKey, XBHeroCall1_RedKey);
+
private void UpdateFuncState(int funcId)
{
- if (funcId == (int)FuncOpenEnum.HappyFindTreasure
- || funcId == 184)
- {
- XBWarehouseRedPoint();
- BestAndRuneXBRedPoint();
- XBStoreRedPoint();
- }
+ HeroCallRedPoint();
}
- public void RefreshXBWarehouse()
- {
- if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
-
- xbWarehouseRed.state = RedPointState.Simple;
- }
-
- public void XBWarehouseRedPoint()
- {
- if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
-
- SinglePack singlePack = PackManager.Instance.GetSinglePack(PackType.Treasure);
- if (singlePack == null) return;
-
- if (singlePack.GetAllItems().Count > 0)
- {
- xbWarehouseRed.state = RedPointState.Simple;
- }
- else
- {
- xbWarehouseRed.state = RedPointState.None;
- }
- }
private void RefreshXBTool(PackType type, int index, int id)
{
if (type != PackType.Item) return;
- if (!CheckIsXBTool(id, 1) && !CheckIsXBTool(id, 2)) return;
- BestAndRuneXBRedPoint();
+ if (!CheckIsXBTool(id, (int)HappXBTitle.HeroCallAdvanced))
+ return;
+
+ HeroCallRedPoint();
}
- public void BestAndRuneXBRedPoint()
+ //鑻遍泟鎷涘嫙
+ public void HeroCallRedPoint()
{
if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
+ // 鍏嶈垂 10杩� 绉垎
+ happyXBRed.state = RedPointState.None;
- int xbtoolCnt = 0;
- int needtoolCnt = 0;
- if (IsHaveFreeXB(1))
+
+ if (IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
{
bestXBFreeRed.state = RedPointState.Simple;
+ return;
}
else
{
bestXBFreeRed.state = RedPointState.None;
}
- if (IsHaveManyXBTool(1, out xbtoolCnt, out needtoolCnt))
+ if (IsHaveManyXBToolEx((int)HappXBTitle.HeroCallAdvanced, out int xbtoolCnt, out int needtoolCnt, out int needMoney))
{
- if (xbtoolCnt >= needtoolCnt)
- {
- bestXBManyRed.state = RedPointState.Simple;
- }
- else
- {
- bestXBManyRed.state = RedPointState.None;
- }
- bestXBOneRed.state = RedPointState.Simple;
- }
- else
- {
- bestXBOneRed.state = RedPointState.None;
- bestXBManyRed.state = RedPointState.None;
+ happyXBRed.state = RedPointState.Simple;
+ return;
}
- if (FuncOpen.Instance.IsFuncOpen(184) && IsHaveFreeXB(2))
- {
- runeXBFreeRed.state = RedPointState.Simple;
- }
- else
- {
- runeXBFreeRed.state = RedPointState.None;
- }
+ //绉垎瓒冲
- if (FuncOpen.Instance.IsFuncOpen(184) &&
- IsHaveManyXBTool(2, out xbtoolCnt, out needtoolCnt))
- {
- if (xbtoolCnt >= needtoolCnt)
- {
- runeXBManyRed.state = RedPointState.Simple;
- }
- else
- {
- runeXBManyRed.state = RedPointState.None;
- }
- runeXBOneRed.state = RedPointState.Simple;
- }
- else
- {
- runeXBOneRed.state = RedPointState.None;
- runeXBManyRed.state = RedPointState.None;
- }
+
}
- private void RefreshStoreScore(PlayerDataType type)
- {
- if (type != PlayerDataType.CDBPlayerRefresh_TreasureScore) return;
-
- XBStoreRedPoint();
- }
-
- private List<StoreModel.StoreData> storelist = null;
- public void XBStoreRedPoint()
- {
- if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
-
- ulong moneyNum = UIHelper.GetMoneyCnt(25);
- for (int i = 11; i < 14; i++)
- {
- storelist = StoreModel.Instance.TryGetStoreDatas((StoreFunc)i);
- if (storelist.Count > 0)
- {
- List<StoreModel.StoreData> orderlist = new List<StoreModel.StoreData>();
- orderlist.AddRange(storelist);
- orderlist.Sort(CompareByMoney);
- if (moneyNum >= (ulong)orderlist[0].storeConfig.MoneyNumber)
- {
- xbStoreRed.state = RedPointState.Simple;
- return;
- }
- }
- }
- xbStoreRed.state = RedPointState.None;
- }
-
- public int CompareByMoney(StoreModel.StoreData start, StoreModel.StoreData end)
- {
- int money1 = start.storeConfig.MoneyNumber;
- int money2 = end.storeConfig.MoneyNumber;
- if (money1.CompareTo(money2) != 0) return money1.CompareTo(money2);
- int index1 = storelist.IndexOf(start);
- int index2 = storelist.IndexOf(end);
- if (index1.CompareTo(index2) != 0) return index1.CompareTo(index2);
- return 0;
- }
+
#endregion
}
@@ -1026,17 +530,7 @@
public Dictionary<int, int> gridLimitCntDict; //<鏈夐檺鍒舵娊鍙栨鏁扮殑鏍煎瓙缂栧彿,宸叉娊鍒版鏁�> 鏈夐檺鍒舵娊鍙栨鏁扮殑鏍煎瓙娆℃暟淇℃伅
}
-public class XBFuncSet
-{
- public int xbType;// 1 鏋佸搧瀵诲疂 2 绗﹀嵃瀵诲疂
- public int[] xbNums;
- public int[] xbPrices;
- public int[] costToolIds;
- public int[] costToolNums;
- public int[] xbFreeCDs;
- public int[] xbScores;
- public int dailyFreeCount;
-}
+
public class XBGetItem
{
@@ -1044,7 +538,6 @@
public int itemId;
public int count;
public DateTime createTime;
- public string createTimeStr;
public void SetModel(int index, int id, int count)
{
@@ -1052,7 +545,6 @@
this.itemId = id;
this.count = count;
createTime = TimeUtility.ServerNow;
- createTimeStr = TimeUtility.ServerNow.ToString("yyyy-MM-dd HH:mm:ss");
}
}
@@ -1067,6 +559,9 @@
Gubao2 = 6,
Gubao3 = 7,
Gubao4 = 8,
+ HeroCallNormal = 11, //11-鏅�氭嫑鍕�
+ HeroCallAdvanced = 12, //12-楂樼骇鎷涘嫙
+ HeroCallScore = 13, //13-绉垎鎷涘嫙
YunShi1 = 105,
YunShi2 = 106,
YunShi3 = 107,
diff --git a/Main/System/HappyXB/HeroCallResultCell.cs b/Main/System/HappyXB/HeroCallResultCell.cs
new file mode 100644
index 0000000..5766cb4
--- /dev/null
+++ b/Main/System/HappyXB/HeroCallResultCell.cs
@@ -0,0 +1,98 @@
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+
+public class HeroCallResultCell : MonoBehaviour
+{
+ [SerializeField] UIHeroController heroModel;
+ [SerializeField] Image newMarkImg;
+ [SerializeField] UIEffectPlayer starEffect;
+ [SerializeField] UIEffectPlayer lightEffect;
+ [SerializeField] UIEffectPlayer boomEffect;
+ [SerializeField] UIEffectPlayer tableEffect;
+
+
+ /// <summary>
+ /// 鎶藉缁撴灉鐨勫皬浜哄睍绀�
+ /// </summary>
+ /// <param name="heroID"></param>
+ /// <param name="index">绗嚑鎶斤紝0浠h〃鍗曟娊</param>
+ /// <param name="isForceSkip">寮哄埗璺宠繃鍔ㄧ敾</param>
+ public void Display(int heroID, int index, bool isForceSkip=false)
+ {
+ DisplayAsync(heroID, index, isForceSkip).Forget();
+ }
+
+ async UniTask DisplayAsync(int heroID, int index, bool isForceSkip=false)
+ {
+ this.transform.localScale = Vector3.zero;
+ int delaytime = LocalSave.GetBool(HeroUIManager.skipKey, false) ? 0 : 100 * index;
+
+ await UniTask.Delay(delaytime);
+ this.transform.localScale = Vector3.one;
+ //鍏堟樉绀哄彴瀛愶紝鍐嶆樉绀哄皬浜�
+ heroModel.SetActive(false);
+ newMarkImg.SetActive(false);
+ var heroConfig = HeroConfig.Get(heroID);
+ var quality = heroConfig.Quality;
+
+ //鏄惁璺宠繃鍔ㄧ敾
+ if (isForceSkip || LocalSave.GetBool(HeroUIManager.skipKey, false))
+ {
+ //绾㈣壊鐗规畩
+ if (!isForceSkip)
+ {
+ boomEffect.playDelayTime = 0;
+ boomEffect.PlayByArrIndex(quality > 4 ? 0 : 1);
+ }
+ DisplayNewMark(heroID);
+ DisplayHero(heroConfig);
+ tableEffect.Stop();
+ tableEffect.isPlaySpineLoop = true;
+ tableEffect.PlayByArrIndex(quality);
+ return;
+ }
+
+
+ starEffect.PlayByArrIndex(index);
+ //绱壊寮�濮嬫湁鎾斁
+ if (quality <= 1)
+ {
+ lightEffect.Stop();
+ }
+ else
+ {
+ lightEffect.PlayByArrIndex(quality - 2);
+ }
+ boomEffect.playDelayTime = lightEffect.playDelayTime;
+ //绾㈣壊鐗规畩
+ boomEffect.PlayByArrIndex(quality > 4 ? 0 : 1);
+
+ //鍏堟挱鏀剧伆鑹插彴瀛愪笂鍗囷紝鍐嶆挱鏀惧皬浜�
+ tableEffect.onComplete = () =>
+ {
+ DisplayNewMark(heroID);
+ DisplayHero(heroConfig);
+ tableEffect.isPlaySpineLoop = true;
+ tableEffect.PlayByArrIndex(quality);
+ };
+ tableEffect.Stop();
+ tableEffect.isPlaySpineLoop = false;
+ tableEffect.PlayByArrIndex(0);
+
+
+ }
+
+ public void DisplayNewMark(int heroID)
+ {
+ newMarkImg.SetActive(HeroUIManager.Instance.IsNewHero(heroID));
+ }
+
+ public void DisplayHero(HeroConfig heroConfig)
+ {
+ heroModel.SetActive(true);
+ heroModel.Create(heroConfig.SkinIDList[0], 0.7f);
+ }
+}
+
diff --git a/Main/System/Hero/HeroConfigUtility.cs.meta b/Main/System/HappyXB/HeroCallResultCell.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroConfigUtility.cs.meta
copy to Main/System/HappyXB/HeroCallResultCell.cs.meta
index fd3a21a..b23a4e4 100644
--- a/Main/System/Hero/HeroConfigUtility.cs.meta
+++ b/Main/System/HappyXB/HeroCallResultCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f0e5888e0c25bbc48bbf6aa354fad7b2
+guid: 4ba832e02f465a44d9aa977fc15d9f4f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/HappyXB/HeroCallResultWin.cs b/Main/System/HappyXB/HeroCallResultWin.cs
new file mode 100644
index 0000000..a67327b
--- /dev/null
+++ b/Main/System/HappyXB/HeroCallResultWin.cs
@@ -0,0 +1,266 @@
+using System.Collections;
+using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鎷涘嫙缁撴灉灞曠ず
+/// </summary>
+public class HeroCallResultWin : UIBase
+{
+ [SerializeField] GameObject moneyObj; //绔嬬粯鏃跺�欓殣钘�
+ [SerializeField] OwnItemCell ownItemCell;
+ [SerializeField] OwnMoneyCell ownMoneyCell;
+
+ [SerializeField] GameObject result1Obj; //鍗曟娊灞曠ず
+ [SerializeField] HeroCallResultCell result1Cell;
+
+ [SerializeField] GameObject result10Obj; //鍗佽繛灞曠ず
+ [SerializeField] HeroCallResultCell[] result10Cells;
+
+ [SerializeField] GameObject result10LihuiObj; //鍗佽繛绔嬬粯灞曠ず
+ [SerializeField] UIHeroController roleLHModel;
+ [SerializeField] Image qualityImg;
+ [SerializeField] HeroCallResultCell showLHResultCell;
+ [SerializeField] Image newMarkLHImg;
+ [SerializeField] Button showNextlhOrCloseBtn;
+
+ [SerializeField] GameObject heroInfoObj; //姝﹀皢淇℃伅锛屽崟鎶藉拰绔嬬粯鏃跺�欐樉绀�
+ [SerializeField] Text heroNameText;
+ [SerializeField] Image heroCountryImg;
+ [SerializeField] Image heroJobImg;
+ [SerializeField] Text jobPosNameText;
+
+ //鎸夐挳鍖�
+ [SerializeField] GameObject btnsObj;
+ [SerializeField] Button call1Btn;
+ [SerializeField] Image call1ItemIcon;
+ [SerializeField] Text call1Text;
+ [SerializeField] Button call10Btn;
+ [SerializeField] Image call10ItemIcon;
+ [SerializeField] Text call10Text;
+ [SerializeField] Button okBtn;
+
+
+ int resultState = 0; //0鍗曟娊灞曠ず 1鍗佽繛灞曠ず 2 鍗佽繛寮�濮嬪睍绀� 3 鍗佽繛绔嬬粯灞曠ず
+
+ bool isSkip = false;
+ List<int> showLHHeroIDList = new List<int>();
+
+ protected override void InitComponent()
+ {
+ okBtn.AddListener(CloseWindow);
+
+ call1Btn.AddListener(SendHeroCall);
+ call10Btn.AddListener(() =>
+ {
+ HeroUIManager.Instance.selectCallIndex = 1;
+ HappyXBModel.Instance.SendXBManyQuest((int)HeroUIManager.Instance.selectCallType);
+ });
+ showNextlhOrCloseBtn.AddListener(RefreshLihui);
+ }
+
+
+ protected override void OnPreOpen()
+ {
+ isSkip = LocalSave.GetBool(HeroUIManager.skipKey, false);
+ UIManager.Instance.CloseWindow<ScrollTipWin>();
+ HappyXBModel.Instance.RefreshXBResultAct += UpdateState;
+ HappyXBModel.Instance.RefreshXBTypeInfoAct += RefreshBtn;
+ InitMoney();
+ UpdateState();
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ HappyXBModel.Instance.RefreshXBResultAct -= UpdateState;
+ HappyXBModel.Instance.RefreshXBTypeInfoAct -= RefreshBtn;
+ }
+
+ void Display()
+ {
+ // RefreshState();
+ RefreshBtn();
+ }
+
+ void UpdateState()
+ {
+ if (HeroUIManager.Instance.selectCallIndex == 0)
+ {
+ resultState = 0;
+ }
+ else if (isSkip)
+ {
+ resultState = 1;
+ }
+ else
+ {
+ resultState = 2;
+ MoveToNextState().Forget();
+ }
+ RefreshState();
+ }
+
+ async UniTask MoveToNextState()
+ {
+ await UniTask.Delay(1500);
+
+ showLHHeroIDList.Clear();
+ for (int i = 0; i < HappyXBModel.Instance.xbResultDict.Count; i++)
+ {
+ var heroID = HappyXBModel.Instance.xbResultDict[i].itemId;
+ if (HeroConfig.Get(heroID).Quality >= 4)
+ showLHHeroIDList.Add(HappyXBModel.Instance.xbResultDict[i].itemId);
+ }
+
+ resultState = 3;
+ try
+ {
+ RefreshState();
+ }
+ catch (System.Exception e)
+ {
+ Debug.LogWarning(e);
+ }
+ }
+
+ void RefreshState()
+ {
+ if (resultState == 0)
+ {
+ btnsObj.SetActive(true);
+ call1Btn.SetActive(true);
+ call10Btn.SetActive(false);
+
+ result1Obj.SetActive(true);
+ result10Obj.SetActive(false);
+ result10LihuiObj.SetActive(false);
+ moneyObj.SetActive(true);
+ heroInfoObj.SetActive(true);
+
+ result1Cell.Display(HappyXBModel.Instance.xbResultDict[0].itemId, 0);
+ RefreshHeroInfo(HappyXBModel.Instance.xbResultDict[0].itemId);
+ }
+ else if (resultState == 1)
+ {
+ btnsObj.SetActive(true);
+ call1Btn.SetActive(false);
+ call10Btn.SetActive(true);
+
+ result1Obj.SetActive(false);
+ result10Obj.SetActive(true);
+ result10LihuiObj.SetActive(false);
+ moneyObj.SetActive(true);
+ heroInfoObj.SetActive(false);
+ if (isSkip)
+ Refresh10Result();
+ }
+ else if (resultState == 2)
+ {
+ btnsObj.SetActive(false);
+
+ result1Obj.SetActive(false);
+ result10Obj.SetActive(true);
+ result10LihuiObj.SetActive(false);
+ moneyObj.SetActive(false);
+ heroInfoObj.SetActive(false);
+ Refresh10Result();
+ }
+ else if (resultState == 3)
+ {
+ btnsObj.SetActive(false);
+
+ result1Obj.SetActive(false);
+ result10Obj.SetActive(false);
+ result10LihuiObj.SetActive(true);
+ moneyObj.SetActive(false);
+ heroInfoObj.SetActive(true);
+ RefreshLihui();
+ }
+ }
+
+ public void RefreshBtn()
+ {
+ var funcSet = TreasureSetConfig.Get((int)HeroUIManager.Instance.selectCallType);
+ var item = ItemConfig.Get(funcSet.CostItemID);
+ var IconKey = item.IconKey;
+ call1ItemIcon.SetOrgSprite(IconKey);
+
+
+ if (HappyXBModel.Instance.IsHaveFreeXB((int)HeroUIManager.Instance.selectCallType))
+ {
+ call1Text.text = Language.Get("L1127");
+ }
+ else
+ {
+ call1Text.text = Language.Get("L1100", item.ItemName, funcSet.CostItemCountList[0]);
+ }
+
+
+ call10ItemIcon.SetOrgSprite(IconKey);
+ call10Text.text = Language.Get("L1100", item.ItemName, funcSet.CostItemCountList[1]);
+ }
+
+ void Refresh10Result()
+ {
+ for (int i = 0; i < result10Cells.Length; i++)
+ {
+ result10Cells[i].Display(HappyXBModel.Instance.xbResultDict[i].itemId, i + 1);
+ }
+ }
+
+ void InitMoney()
+ {
+ ownItemCell.itemID = TreasureSetConfig.Get((int)HeroUIManager.Instance.selectCallType).CostItemID;
+ ownMoneyCell.moneyType = TreasureSetConfig.Get((int)HeroUIManager.Instance.selectCallType).CostMoneyType;
+ }
+
+ void SendHeroCall()
+ {
+ HeroUIManager.Instance.selectCallIndex = 0;
+ if (HappyXBModel.Instance.IsHaveFreeXB((int)HeroUIManager.Instance.selectCallType))
+ {
+ HappyXBModel.Instance.SendXBQuest((int)HeroUIManager.Instance.selectCallType, 0, 1);
+ }
+ else
+ {
+ HappyXBModel.Instance.SendOneXBQuest((int)HeroUIManager.Instance.selectCallType);
+ }
+ }
+
+ void RefreshLihui()
+ {
+ //姹囨�诲搧璐ㄤ紶璇村強浠ヤ笂鐨勭珛缁�
+ int heroID = 0;
+ if (showLHHeroIDList.Count > 0)
+ {
+ heroID = showLHHeroIDList[0];
+ showLHHeroIDList.RemoveAt(0);
+ }
+ else
+ {
+ resultState = 1;
+ RefreshState();
+ return;
+ }
+ var hero = HeroConfig.Get(heroID);
+ roleLHModel.Create(hero.SkinIDList[0], HeroUIManager.lihuiScale, motionName: "", isLh: true);
+ qualityImg.SetSprite("HeroCallQuality" + hero.Quality);
+ newMarkLHImg.SetActive(HeroUIManager.Instance.IsNewHero(heroID));
+ showLHResultCell.Display(heroID, 0, true);
+ RefreshHeroInfo(heroID);
+ }
+
+ void RefreshHeroInfo(int heroID)
+ {
+ var heroConfig = HeroConfig.Get(heroID);
+
+ heroNameText.text = heroConfig.Name;
+ heroNameText.color = UIHelper.GetUIColorByFunc(heroConfig.Quality);
+ heroCountryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
+ heroJobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
+ jobPosNameText.text = HeroUIManager.Instance.GetJobName(heroConfig.Class) + " " + heroConfig.Desc;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroConfigUtility.cs.meta b/Main/System/HappyXB/HeroCallResultWin.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroConfigUtility.cs.meta
copy to Main/System/HappyXB/HeroCallResultWin.cs.meta
index fd3a21a..ae169df 100644
--- a/Main/System/Hero/HeroConfigUtility.cs.meta
+++ b/Main/System/HappyXB/HeroCallResultWin.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f0e5888e0c25bbc48bbf6aa354fad7b2
+guid: f9f4600eaeadb9d4dac7b5bd662db641
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/HappyXB/HeroCallWin.cs b/Main/System/HappyXB/HeroCallWin.cs
new file mode 100644
index 0000000..4176582
--- /dev/null
+++ b/Main/System/HappyXB/HeroCallWin.cs
@@ -0,0 +1,118 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鎷涘嫙
+/// </summary>
+public class HeroCallWin : UIBase
+{
+ [SerializeField] Button ruleBtn;
+ [SerializeField] OwnItemCell ownItemCell;
+ [SerializeField] Button scoreBtn;
+ [SerializeField] Text scoreText;
+ [SerializeField] GameObject scoreTween;
+ [SerializeField] Toggle skipToggle;
+ [SerializeField] Button call1Btn;
+ [SerializeField] Image call1ItemIcon;
+ [SerializeField] Text call1Text;
+ [SerializeField] Text freeCDTime;
+ [SerializeField] Button call10Btn;
+ [SerializeField] Image call10ItemIcon;
+ [SerializeField] Text call10Text;
+ [SerializeField] Button closeBtn;
+
+
+ protected override void InitComponent()
+ {
+ closeBtn.AddListener(CloseWindow);
+ skipToggle.AddListener((value) =>
+ {
+ LocalSave.SetBool(HeroUIManager.skipKey, value);
+ });
+ ownItemCell.itemID = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced).CostItemID;
+ call1Btn.AddListener(SendHeroCall);
+ call10Btn.AddListener(()=>
+ {
+ HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
+ HeroUIManager.Instance.selectCallIndex = 1;
+ HappyXBModel.Instance.SendXBManyQuest((int)HappXBTitle.HeroCallAdvanced);
+ });
+ }
+
+
+ protected override void OnPreOpen()
+ {
+ HappyXBModel.Instance.RefreshXBTypeInfoAct += Refresh;
+ skipToggle.isOn = LocalSave.GetBool(HeroUIManager.skipKey, false);
+ Refresh();
+ }
+
+ protected override void OnPreClose()
+ {
+ HappyXBModel.Instance.RefreshXBTypeInfoAct -= Refresh;
+ }
+
+
+ public override void Refresh()
+ {
+ var funcSet = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced);
+ var item = ItemConfig.Get(funcSet.CostItemID);
+ var IconKey = item.IconKey;
+ call1ItemIcon.SetOrgSprite(IconKey);
+ call10ItemIcon.SetOrgSprite(IconKey);
+ if (HappyXBModel.Instance.IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
+ {
+ call1Text.text = Language.Get("L1127");
+ }
+ else
+ {
+ call1Text.text = Language.Get("L1100", item.ItemName, funcSet.CostItemCountList[0]);
+ }
+ call10Text.text = Language.Get("L1100", item.ItemName, funcSet.CostItemCountList[1]);
+
+ RefreshFreeTime();
+ }
+
+ //姣忕鍒锋柊鍏嶈垂CD鐨勫�掕鏃�
+ float cdTime = 0;
+
+ void LateUpdate()
+ {
+ //姣忕瑙﹀彂涓�娆�
+ cdTime += Time.deltaTime;
+ if (cdTime < 1) return;
+ cdTime = 0;
+ RefreshFreeTime();
+ }
+
+ void RefreshFreeTime()
+ {
+ if (!HappyXBModel.Instance.IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
+ {
+ freeCDTime.SetActive(false);
+ }
+ else
+ {
+ freeCDTime.SetActive(true);
+ freeCDTime.text = Language.Get("L1128", TimeUtility.SecondsToHMS(TimeUtility.GetTodayRemainSeconds()));
+ }
+ }
+
+ void SendHeroCall()
+ {
+ HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
+ HeroUIManager.Instance.selectCallIndex = 0;
+
+ if (HappyXBModel.Instance.IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
+ {
+ HappyXBModel.Instance.SendXBQuest((int)HappXBTitle.HeroCallAdvanced, 0, 1);
+ }
+ else
+ {
+ HappyXBModel.Instance.SendOneXBQuest((int)HappXBTitle.HeroCallAdvanced);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroConfigUtility.cs.meta b/Main/System/HappyXB/HeroCallWin.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroConfigUtility.cs.meta
copy to Main/System/HappyXB/HeroCallWin.cs.meta
index fd3a21a..4c97e72 100644
--- a/Main/System/Hero/HeroConfigUtility.cs.meta
+++ b/Main/System/HappyXB/HeroCallWin.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f0e5888e0c25bbc48bbf6aa354fad7b2
+guid: 2650df34f133d66499572823d050491e
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/Hero/HeroConfigUtility.cs b/Main/System/Hero/HeroConfigUtility.cs
deleted file mode 100644
index c6716eb..0000000
--- a/Main/System/Hero/HeroConfigUtility.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-using System.Collections.Generic;
-using System;
-
-
-public static class HeroConfigUtility
-{
- // private static Dictionary<>
-
-
- // public static HeroAwakeConfig GetHeroAwakeConfig()
- // {
-
- // }
-
-
-}
diff --git a/Main/System/Hero/HeroInfo.Awake.cs b/Main/System/Hero/HeroInfo.Awake.cs
index 0dd7b23..a0f6f0b 100644
--- a/Main/System/Hero/HeroInfo.Awake.cs
+++ b/Main/System/Hero/HeroInfo.Awake.cs
@@ -52,7 +52,7 @@
if (allSkillTypeIDToID.ContainsKey(skillConfig.SkillTypeID))
{
var tmpSkillConfig = SkillConfig.Get(allSkillTypeIDToID[skillConfig.SkillTypeID]);
- if (skillConfig.SkillID > tmpSkillConfig.SkillID)
+ if (skillConfig.SkillLV > tmpSkillConfig.SkillLV)
{
//鍙栨渶澶ф妧鑳�
allSkillTypeIDToID[skillConfig.SkillTypeID] = tmpAwakeConfig.SkillID;
diff --git a/Main/System/Hero/HeroInfo.Break.cs b/Main/System/Hero/HeroInfo.Break.cs
index 43158c8..d8974d6 100644
--- a/Main/System/Hero/HeroInfo.Break.cs
+++ b/Main/System/Hero/HeroInfo.Break.cs
@@ -52,7 +52,7 @@
if (allSkillTypeIDToID.ContainsKey(skillConfig.SkillTypeID))
{
var tmpSkillConfig = SkillConfig.Get(allSkillTypeIDToID[skillConfig.SkillTypeID]);
- if (skillConfig.SkillID > tmpSkillConfig.SkillID)
+ if (skillConfig.SkillLV > tmpSkillConfig.SkillLV)
{
//鍙栨渶澶ф妧鑳�
allSkillTypeIDToID[skillConfig.SkillTypeID] = tmpBreakConfig.SkillID;
diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs
index 668ba42..71cc845 100644
--- a/Main/System/Hero/HeroManager.cs
+++ b/Main/System/Hero/HeroManager.cs
@@ -155,4 +155,9 @@
{
return PackManager.Instance.GetSinglePack(PackType.Hero).HasItem(heroID);
}
+
+ public int GetHeroCountByID(int heroID)
+ {
+ return (int)PackManager.Instance.GetSinglePack(PackType.Hero).GetCountById(heroID);
+ }
}
\ No newline at end of file
diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index 1b11019..088d5c1 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -13,7 +13,7 @@
private GameObject instanceGO;
private Action onComplete;
- public void Create(int _skinID, float scale = 1f, Action _onComplete = null, string motionName = "idle", bool isLh = false)
+ public void Create(int _skinID, float scale = 0.8f, Action _onComplete = null, string motionName = "idle", bool isLh = false)
{
if (skinID == _skinID)
{
@@ -51,6 +51,12 @@
{
skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.SpineRes);
}
+ if (skeletonGraphic.skeletonDataAsset == null)
+ {
+ this.SetActive(false);
+ Debug.LogError("鏈厤缃畇pine");
+ return;
+ }
skeletonGraphic.Initialize(true);
this.transform.localScale = Vector3.one * scale;
spineAnimationState = skeletonGraphic.AnimationState;
diff --git a/Main/System/HeroUI/HeroBaseWin.cs b/Main/System/HeroUI/HeroBaseWin.cs
index 6f4d8a7..1680606 100644
--- a/Main/System/HeroUI/HeroBaseWin.cs
+++ b/Main/System/HeroUI/HeroBaseWin.cs
@@ -8,11 +8,19 @@
/// </summary>
public class HeroBaseWin : FunctionsBaseWin
{
+ [SerializeField] Button callBtn;
/// </summary>
protected override void InitComponent()
{
base.InitComponent();
+
+ //鎷涘嫙涓哄彟澶栦竴涓晫闈紝閬垮厤鍏抽棴鏃舵樉绀虹┖鐧�
+ callBtn.AddListener(()=>
+ {
+ //鎵撳紑鎷涘嫙鐣岄潰
+ UIManager.Instance.OpenWindow<HeroCallWin>();
+ });
}
@@ -48,6 +56,8 @@
case 1:
//currentSubUI = UIManager.Instance.OpenWindow<HeroCollectionsWin>();
break;
+ case 2:
+ break;
default:
Debug.LogWarning("鏈煡鐨勬爣绛剧储寮�: " + functionOrder);
break;
diff --git a/Main/System/HeroUI/HeroScenePosCell.cs b/Main/System/HeroUI/HeroScenePosCell.cs
index 4b5c6a6..0758b5b 100644
--- a/Main/System/HeroUI/HeroScenePosCell.cs
+++ b/Main/System/HeroUI/HeroScenePosCell.cs
@@ -29,7 +29,7 @@
lvText.text = Language.Get("L1099", hero.heroLevel);
var heroConfig = hero.heroConfig;
countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
- heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex]);
+ heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale);
nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel);
posCircleImg.SetSprite("heroposcircle" + heroConfig.Quality);
diff --git a/Main/System/HeroUI/HeroTrainWin.cs b/Main/System/HeroUI/HeroTrainWin.cs
index 513bb57..45c67a1 100644
--- a/Main/System/HeroUI/HeroTrainWin.cs
+++ b/Main/System/HeroUI/HeroTrainWin.cs
@@ -135,7 +135,7 @@
public override void Refresh()
{
- roleLhModel.Create(hero.SkinID, 0.6f, motionName: "", isLh: true);
+ roleLhModel.Create(hero.SkinID, HeroUIManager.lihuiScale, motionName: "", isLh: true);
roleXsModel.Create(hero.SkinID);
jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(hero.heroConfig.Class));
jobPosNameText.text = HeroUIManager.Instance.GetJobName(hero.heroConfig.Class);
diff --git a/Main/System/HeroUI/HeroUIManager.Collect.cs b/Main/System/HeroUI/HeroUIManager.Collect.cs
index 92a1705..93932c5 100644
--- a/Main/System/HeroUI/HeroUIManager.Collect.cs
+++ b/Main/System/HeroUI/HeroUIManager.Collect.cs
@@ -41,6 +41,15 @@
return per;
}
+ public HB122_tagSCHeroInfo.tagSCHero GetHeroBookInfo(int heroID)
+ {
+ if (heroCollectInfoDic.ContainsKey(heroID))
+ {
+ return heroCollectInfoDic[heroID];
+ }
+ return null;
+ }
+
#endregion
}
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index 8480413..6f16674 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -16,6 +16,9 @@
public WaitHeroFuncResponse waitResponse; //璇锋眰姝﹀皢鍔熻兘锛屼笌鏈嶅姟绔氦浜�
+ public const float lihuiScale = 0.6f; //绔嬬粯缂╂斁澶у皬
+
+
public override void Init()
{
@@ -203,10 +206,42 @@
}
-
+
+ #region 鎷涘嫙
+
+ public HappXBTitle selectCallType; //瀵诲疂鏋氫妇绫诲瀷
+ public int selectCallIndex;//0锛�1鎶� 1锛�10鎶� 瀵瑰簲閰嶇疆椤哄簭
+ public const string skipKey = "SkipHeroCall";
-
+ public bool IsNewHero(int heroID)
+ {
+ var bookInfo = GetHeroBookInfo(heroID);
+ if (bookInfo != null)
+ {
+ if (bookInfo.BookInitState < 2)
+ {
+ //鏇寸簿鍑嗙殑 闇�瑕佹瘮杈冩湰娆℃娊鐨勫悓姝﹀皢涓暟 鍜� 鑳屽寘閲屾湁鐨勪釜鏁板啀姣旇緝
+ if (HappyXBModel.Instance.GetCountInResult(heroID) >= HeroManager.Instance.GetHeroCountByID(heroID))
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ #endregion
+
+
}
public struct WaitHeroFuncResponse
diff --git a/Main/System/ItemTip/OwnItemCell.cs b/Main/System/ItemTip/OwnItemCell.cs
new file mode 100644
index 0000000..3d1a62f
--- /dev/null
+++ b/Main/System/ItemTip/OwnItemCell.cs
@@ -0,0 +1,57 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+
+
+//鎷ユ湁鐨勭墿鍝侊細鏁伴噺鏄剧ず锛岀偣鍑绘寜閽樉绀洪�斿緞tip
+public class OwnItemCell : MonoBehaviour
+{
+ [SerializeField] Image itemIcon;
+ [SerializeField] Text numText;
+ [SerializeField] Button wayBtn;
+ public int itemID;
+
+ void Start()
+ {
+ itemIcon.SetOrgSprite(ItemConfig.Get(itemID).IconKey);
+ wayBtn.AddListener(()=>
+ {
+ ItemTipUtility.Show(itemID, true);
+ });
+ }
+ void OnEnable()
+ {
+ PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
+ Display();
+ }
+
+ void OnDisable()
+ {
+ PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
+ }
+
+ public void RefreshItemEvent(PackType packType, int index, int itemID)
+ {
+ if (packType != PackType.Item && this.itemID != itemID)
+ {
+ return;
+ }
+
+ Display();
+ }
+
+
+ public void Display(bool resetIcon = false)
+ {
+ if (itemID == 0)
+ {
+ Debug.LogError("itemID == 0");
+ return;
+ }
+ numText.text = UIHelper.ReplaceLargeNum(PackManager.Instance.GetItemCountByID(PackType.Item, itemID));
+ if (resetIcon)
+ {
+ itemIcon.SetOrgSprite(ItemConfig.Get(itemID).IconKey);
+ }
+ }
+}
+
diff --git a/Main/System/Hero/HeroConfigUtility.cs.meta b/Main/System/ItemTip/OwnItemCell.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroConfigUtility.cs.meta
copy to Main/System/ItemTip/OwnItemCell.cs.meta
index fd3a21a..2fa8211 100644
--- a/Main/System/Hero/HeroConfigUtility.cs.meta
+++ b/Main/System/ItemTip/OwnItemCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f0e5888e0c25bbc48bbf6aa354fad7b2
+guid: 276c484af2e519e4fa34d4143606ac0c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/ItemTip/OwnMoneyCell.cs b/Main/System/ItemTip/OwnMoneyCell.cs
new file mode 100644
index 0000000..dc9b79a
--- /dev/null
+++ b/Main/System/ItemTip/OwnMoneyCell.cs
@@ -0,0 +1,75 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+
+//鎷ユ湁鐨勮揣甯侊細鏁伴噺鏄剧ず锛岀偣鍑绘寜閽墦寮�瀵瑰簲鑾峰彇鐣岄潰
+public class OwnMoneyCell : MonoBehaviour
+{
+ [SerializeField] Image moneyIcon;
+ [SerializeField] Text numText;
+ [SerializeField] Button wayBtn;
+ public int moneyType;
+
+ void Start()
+ {
+ moneyIcon.SetIconWithMoneyType(moneyType);
+ if (wayBtn != null)
+ {
+ wayBtn.AddListener(()=>
+ {
+ switch (moneyType)
+ {
+ // case 1:
+ // {
+ // //UIManager.Instance.OpenWindow<RechargeWin>();
+ // }
+ // break;
+ default:
+ {
+ if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
+ {
+ ItemTipUtility.Show(GeneralDefine.MoneyDisplayModel[moneyType], true);
+ }
+ }
+ break;
+ }
+ });
+ }
+ }
+ void OnEnable()
+ {
+ PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
+ Display();
+ }
+
+ void OnDisable()
+ {
+ PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
+ }
+
+ void PlayerDataRefresh(PlayerDataType type)
+ {
+ if (type != UIHelper.moneyTypeToPlayerDataType[moneyType])
+ {
+ return;
+ }
+
+ Display();
+
+ }
+
+
+ public void Display(bool resetIcon = false)
+ {
+ if (moneyType == 0)
+ {
+ Debug.LogError("moneyType == 0");
+ return;
+ }
+ numText.text = UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(moneyType));
+ if (resetIcon)
+ {
+ moneyIcon.SetIconWithMoneyType(moneyType);
+ }
+ }
+}
+
diff --git a/Main/System/Hero/HeroConfigUtility.cs.meta b/Main/System/ItemTip/OwnMoneyCell.cs.meta
similarity index 83%
copy from Main/System/Hero/HeroConfigUtility.cs.meta
copy to Main/System/ItemTip/OwnMoneyCell.cs.meta
index fd3a21a..7b0b831 100644
--- a/Main/System/Hero/HeroConfigUtility.cs.meta
+++ b/Main/System/ItemTip/OwnMoneyCell.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f0e5888e0c25bbc48bbf6aa354fad7b2
+guid: 60eea7a00f3be64488810a1daa59c712
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index bd3233f..f1a254d 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -385,6 +385,24 @@
fightPowerVariables["SuperDamPerDefRatio"] = fightPowerRatioConfig.SuperDamPerDefRatio;
fightPowerVariables["ShieldPerRatio"] = fightPowerRatioConfig.ShieldPerRatio;
fightPowerVariables["ShieldPerDefRatio"] = fightPowerRatioConfig.ShieldPerDefRatio;
+ fightPowerVariables["DOTPerRatio"] = fightPowerRatioConfig.DOTPerRatio;
+ fightPowerVariables["DOTPerDefRatio"] = fightPowerRatioConfig.DOTPerDefRatio;
+ fightPowerVariables["WeiFinalDamPerRatio"] = fightPowerRatioConfig.WeiFinalDamPerRatio;
+ fightPowerVariables["WeiFinalDamPerDefRatio"] = fightPowerRatioConfig.WeiFinalDamPerDefRatio;
+ fightPowerVariables["ShuFinalDamPerRatio"] = fightPowerRatioConfig.ShuFinalDamPerRatio;
+ fightPowerVariables["ShuFinalDamPerDefRatio"] = fightPowerRatioConfig.ShuFinalDamPerDefRatio;
+ fightPowerVariables["WuFinalDamPerRatio"] = fightPowerRatioConfig.WuFinalDamPerRatio;
+ fightPowerVariables["WuFinalDamPerDefRatio"] = fightPowerRatioConfig.WuFinalDamPerDefRatio;
+ fightPowerVariables["QunFinalDamPerRatio"] = fightPowerRatioConfig.QunFinalDamPerRatio;
+ fightPowerVariables["QunFinalDamPerDefRatio"] = fightPowerRatioConfig.QunFinalDamPerDefRatio;
+ fightPowerVariables["FinalDamPerRatio"] = fightPowerRatioConfig.FinalDamPerRatio;
+ fightPowerVariables["FinalDamPerDefRatio"] = fightPowerRatioConfig.FinalDamPerDefRatio;
+ fightPowerVariables["PhyDamPerRatio"] = fightPowerRatioConfig.PhyDamPerRatio;
+ fightPowerVariables["PhyDamPerDefRatio"] = fightPowerRatioConfig.PhyDamPerDefRatio;
+ fightPowerVariables["MagDamPerRatio"] = fightPowerRatioConfig.MagDamPerRatio;
+ fightPowerVariables["MagDamPerDefRatio"] = fightPowerRatioConfig.MagDamPerDefRatio;
+ fightPowerVariables["CurePerRatio"] = fightPowerRatioConfig.CurePerRatio;
+ fightPowerVariables["CurePerDefRatio"] = fightPowerRatioConfig.CurePerDefRatio;
long fightPower = (long)JaceCalculator.Calculate(fightPowerFormula, fightPowerVariables);
diff --git a/Main/System/Main/MainWin.cs b/Main/System/Main/MainWin.cs
index 5146ff2..97b6c00 100644
--- a/Main/System/Main/MainWin.cs
+++ b/Main/System/Main/MainWin.cs
@@ -13,8 +13,6 @@
[SerializeField] Text playerNameText;
[SerializeField] Text powerText;
[SerializeField] OfficialTitleCell officialRankText;
- [SerializeField] Text goldText;
- [SerializeField] Text sparText;
public Text hammerText;
@@ -74,12 +72,6 @@
case PlayerDataType.RealmLevel:
officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
break;
- case PlayerDataType.Gold:
- goldText.text = UIHelper.GetMoneyCntEx(1).ToString();
- break;
- case PlayerDataType.default33:
- sparText.text = UIHelper.GetMoneyCnt(42).ToString();
- break;
case PlayerDataType.Face:
case PlayerDataType.FacePic:
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
@@ -101,8 +93,6 @@
private void UpdateCurrency()
{
hammerText.text = UIHelper.GetMoneyCnt(41).ToString();
- goldText.text = UIHelper.GetMoneyCntEx(1).ToString();
- sparText.text = UIHelper.ReplaceLargeNumEx(UIHelper.GetMoneyCnt(42));
}
/// <summary>
diff --git a/Main/System/Message/ColorAnalysis.cs b/Main/System/Message/ColorAnalysis.cs
index 5cda495..6047ab5 100644
--- a/Main/System/Message/ColorAnalysis.cs
+++ b/Main/System/Message/ColorAnalysis.cs
@@ -39,7 +39,7 @@
}
// switch (_value.ToLower())
// {
- // case "109d06":
+ // case "248B12":
// return "35e122";
// case "ff6701":
// return "f8983b";
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index 63460e9..68c176d 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -968,9 +968,9 @@
}
//浠欑帀璐拱鐗╁搧鐨勪簩娆$‘璁ゆ锛屼竴绾ц揣甯佸彧鏈変粰鐜� 榛樿涓轰粰鐜夊嵆鍙�
- Dictionary<int, bool> buyItemCheckDict = new Dictionary<int, bool>();
- //type 瀵瑰簲鏋氫妇 BuyStoreItemCheckType 鏂逛究璁板繂
- public void SendBuyShopItemWithPopCheck(StoreConfig model, int count, int type = 0)
+ Dictionary<int, bool> buyItemCheckDict = new Dictionary<int, bool>(); //璁板綍鍕鹃�変俊鎭�
+ //eventType 浜屾纭妗嗙被鍨嬶紝瀵瑰簲鏋氫妇 BuyStoreItemCheckType
+ public void SendBuyShopItemWithPopCheck(StoreConfig model, int count, int eventType = 0)
{
if (model.MoneyNumber == 0)
{
@@ -979,7 +979,7 @@
return;
}
- if (buyItemCheckDict.ContainsKey(type) && buyItemCheckDict[type])
+ if (buyItemCheckDict.ContainsKey(eventType) && buyItemCheckDict[eventType])
{
SendBuyShopItem(model, count);
return;
@@ -991,15 +991,15 @@
if (isOk)
{
SendBuyShopItem(model, count);
- buyItemCheckDict[type] = isToggle;
+ buyItemCheckDict[eventType] = isToggle;
}
}));
}
- //鑺变粰鐜夎喘涔扮殑浜屾纭妗�(鏈鐧诲綍) 榛樿鎻愮ず MysticalQG104 鏄惁鑺辫垂<color=#109d06>{0}</color>浠欑帀杩涜璐拱锛�
- //type 瀵瑰簲鏋氫妇 BuyStoreItemCheckType 鏂逛究璁板繂
- public void UseMoneyCheck(int money, Action func, int type = 0, string tip = "MysticalQG104", string fullTip = "")
+ //鑺变粰鐜夎喘涔扮殑浜屾纭妗�(鏈鐧诲綍)
+ //eventType 浜屾纭妗嗙被鍨嬶紝瀵瑰簲鏋氫妇 BuyStoreItemCheckType
+ public void UseMoneyCheck(int money, int moneyType, Action func, int eventType = 0, string tip = "CostMoney", string fullTip = "")
{
if (money == 0)
{
@@ -1008,19 +1008,19 @@
return;
}
- if (buyItemCheckDict.ContainsKey(type) && buyItemCheckDict[type])
+ if (buyItemCheckDict.ContainsKey(eventType) && buyItemCheckDict[eventType])
{
func?.Invoke();
return;
}
- ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), fullTip == "" ? Language.Get(tip, money) : fullTip,
+ ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), fullTip == "" ? Language.Get(tip, money, moneyType) : fullTip,
Language.Get("ConfirmCancel102"), (bool isOk, bool isToggle) =>
{
if (isOk)
{
func?.Invoke();
- buyItemCheckDict[type] = isToggle;
+ buyItemCheckDict[eventType] = isToggle;
}
});
diff --git a/Main/System/Tip/ScrollTip.cs b/Main/System/Tip/ScrollTip.cs
index f4937a2..eb6c961 100644
--- a/Main/System/Tip/ScrollTip.cs
+++ b/Main/System/Tip/ScrollTip.cs
@@ -2,114 +2,128 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
- public class ScrollTip
+public class ScrollTip
+{
+ public static List<SystemHintData> m_Hints = new List<SystemHintData>();
+ public static List<ScrollTipDetail> m_ActiveTips = new List<ScrollTipDetail>();
+
+ private static GameObjectPoolManager.GameObjectPool pool = null;
+
+ private static bool inited = false;
+
+ public static float tipMoveTime = 0.2f;
+
+ public static event Action OnTipReceiveEvent;
+
+
+ public static void ShowTip(string tip, ArrayList infoList = null, int _order = 0)
{
- public static List<SystemHintData> m_Hints = new List<SystemHintData>();
- public static List<ScrollTipDetail> m_ActiveTips = new List<ScrollTipDetail>();
-
- private static GameObjectPoolManager.GameObjectPool pool = null;
-
- private static bool inited = false;
-
- public static float tipMoveTime = 0.2f;
-
- public static event Action OnTipReceiveEvent;
-
-
- public static void ShowTip(string tip, ArrayList infoList = null, int _order = 0)
+ int range = Math.Min(m_Hints.Count, 10);
+ int findCnt = 0;
+ for (int i = 1; i <= range; i++)
{
- int range = Math.Min(m_Hints.Count, 10);
- int findCnt = 0;
- for (int i = 1; i <= range; i++)
+ if (m_Hints[m_Hints.Count - i].message == tip)
{
- if (m_Hints[m_Hints.Count - i].message == tip)
+ findCnt++;
+ if (findCnt == 3)
{
- findCnt++;
- if (findCnt == 3)
- {
- //鍒楄〃鍐呴噸澶嶆彁绀烘渶澶�3娆�
- return;
- }
+ //鍒楄〃鍐呴噸澶嶆彁绀烘渶澶�3娆�
+ return;
}
}
-
- m_Hints.Add(new SystemHintData()
- {
- message = tip,
- extentionData = infoList == null ? infoList : new ArrayList(infoList),
- appendTime = DateTime.Now,
- order = _order
- });
-
- //m_Hints.Sort(SysNotifyMgr.Instance.Compare);
-
- if (OnTipReceiveEvent != null)
- {
- OnTipReceiveEvent();
- }
-
- if (!UIManager.Instance.IsOpened<ScrollTipWin>())
- {
- UIManager.Instance.OpenWindow<ScrollTipWin>();
- }
}
- public static ScrollTipDetail Request()
+ m_Hints.Add(new SystemHintData()
{
- ScrollTipDetail tip = null;
- if (pool == null)
- {
- var _prefab = UILoader.LoadPrefab("Tip");
- pool = GameObjectPoolManager.Instance.RequestPool(_prefab);
- }
- if (pool != null)
- {
- tip = pool.Request().AddMissingComponent<ScrollTipDetail>();
- }
- return tip;
+ message = tip,
+ extentionData = infoList == null ? infoList : new ArrayList(infoList),
+ appendTime = DateTime.Now,
+ order = _order
+ });
+
+ //m_Hints.Sort(SysNotifyMgr.Instance.Compare);
+
+ if (OnTipReceiveEvent != null)
+ {
+ OnTipReceiveEvent();
+ }
+ //杩囨护涓嶆挱鏀剧殑鎯呭喌
+ if (!CanOpen())
+ {
+ return;
}
- public static void Release(ScrollTipDetail tip, bool next = true)
+ if (!UIManager.Instance.IsOpened<ScrollTipWin>())
{
- if (m_ActiveTips.Contains(tip))
- {
- tip.presentState = ScrollTipState.None;
- m_ActiveTips.Remove(tip);
- }
- if (tip.gameObject != null && pool != null)
- {
- pool.Release(tip.gameObject);
- }
- if (m_ActiveTips.Count > 0 && next)
- {
- m_ActiveTips[0].Play(ScrollTipState.Hide);
- }
- }
-
- public static void ReleaseAll()
- {
- for (int i = 0; i < m_ActiveTips.Count; i++)
- {
- Release(m_ActiveTips[i]);
- i--;
- }
- }
-
- public static void OnTipComplete()
- {
- if (OnTipReceiveEvent != null) OnTipReceiveEvent();
- }
-
- public static void Close()
- {
- m_Hints.Clear();
- }
-
- public enum ScrollTipState
- {
- None,
- Idle,
- Move,
- Hide
+ UIManager.Instance.OpenWindow<ScrollTipWin>();
}
}
+
+ static bool CanOpen()
+ {
+ if (UIManager.Instance.IsOpened<HeroCallResultWin>())
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public static ScrollTipDetail Request()
+ {
+ ScrollTipDetail tip = null;
+ if (pool == null)
+ {
+ var _prefab = UILoader.LoadPrefab("Tip");
+ pool = GameObjectPoolManager.Instance.RequestPool(_prefab);
+ }
+ if (pool != null)
+ {
+ tip = pool.Request().AddMissingComponent<ScrollTipDetail>();
+ }
+ return tip;
+ }
+
+ public static void Release(ScrollTipDetail tip, bool next = true)
+ {
+ if (m_ActiveTips.Contains(tip))
+ {
+ tip.presentState = ScrollTipState.None;
+ m_ActiveTips.Remove(tip);
+ }
+ if (tip.gameObject != null && pool != null)
+ {
+ pool.Release(tip.gameObject);
+ }
+ if (m_ActiveTips.Count > 0 && next)
+ {
+ m_ActiveTips[0].Play(ScrollTipState.Hide);
+ }
+ }
+
+ public static void ReleaseAll()
+ {
+ for (int i = 0; i < m_ActiveTips.Count; i++)
+ {
+ Release(m_ActiveTips[i]);
+ i--;
+ }
+ }
+
+ public static void OnTipComplete()
+ {
+ if (OnTipReceiveEvent != null) OnTipReceiveEvent();
+ }
+
+ public static void Close()
+ {
+ m_Hints.Clear();
+ }
+
+ public enum ScrollTipState
+ {
+ None,
+ Idle,
+ Move,
+ Hide
+ }
+}
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index e4f43ec..ad7e489 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -697,7 +697,7 @@
default30,
default31,
default32,
- default33, // 261 缁撴櫠
+ default33, // 261 鐜夐珦
default34, // 262 鍑瘉绉垎
default35, // 263 鑱氶瓊绮惧崕
default36, // 264 Boss鏈�缁堜激瀹冲姞鎴�
@@ -862,7 +862,7 @@
SkillTreasure = 95,//鎶�鑳芥硶瀹�
WingCompose = 97,//缈呰唨鍚堟垚
Demon = 98,//娣蜂贡濡栧煙
- HappyFindTreasure = 99,//娆箰瀵诲疂
+ HappyFindTreasure = 99,// 鑻遍泟鎷涘嫙
FightPromote = 100,//鎴樺姏鎻愬崌
AncientBattleGround = 101,//涓婂彜鎴樺満
Chat = 102,//鑱婂ぉ
@@ -1084,7 +1084,7 @@
Green = 9,//缁胯壊
Black = 10,
/// <summary>
- /// 娣辩豢鑹� 109d06 (16, 157, 6, 255)
+ /// 娣辩豢鑹� 248B12 (36, 187, 18, 255)
/// </summary>
DarkGreen = 12,
NavyYellow = 13,
@@ -1924,8 +1924,7 @@
MJXB = 2, //绉樺瀵诲疂
GatherSoulXB = 3, //鑱氶瓊瀵诲疂
TreasurePavilion = 4, //鍙ゅ疂瀵诲疂
- BestXB = 5, //鏋佸搧瀵诲疂
- RuneXB = 6, //绗︽枃瀵诲疂
+ HeroCall = 5, //鑻遍泟鎷涘嫙
}
//鏌ヨ鍏朵粬鐜╁鏁版嵁 鐢ㄩ�旂被鍨�
diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index 734e4b9..6f2678a 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -172,62 +172,62 @@
// Debug.LogFormat("CreateRoleTime {0} CreateDays {1}", createRoleTimeTail, CreateDays);
// }
- public static event Action OnServerTimeRefresh;
- public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
- {
- var dateTime = new DateTime(vNetData.Year, vNetData.Month, vNetData.Day, vNetData.Hour, vNetData.Minute, vNetData.Second);
-
- s_ServerTime = dateTime;
- _checkTime = Time.realtimeSinceStartup;
- if (OnServerTimeRefresh != null)
- {
- OnServerTimeRefresh();
- }
-
- s_CrossServerTime = Convert.ToDateTime(vNetData.CrossServerTime);
- _crossCheckTime = Time.realtimeSinceStartup;
-
- TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
- {
- SyncServerTime();
- }, 60);
+ public static event Action OnServerTimeRefresh;
+ public static void OnRefreshServerTime(HA004_tagServerDateTime vNetData)
+ {
+ var dateTime = new DateTime(vNetData.Year, vNetData.Month, vNetData.Day, vNetData.Hour, vNetData.Minute, vNetData.Second);
+
+ s_ServerTime = dateTime;
+ _checkTime = Time.realtimeSinceStartup;
+ if (OnServerTimeRefresh != null)
+ {
+ OnServerTimeRefresh();
+ }
+
+ s_CrossServerTime = Convert.ToDateTime(vNetData.CrossServerTime);
+ _crossCheckTime = Time.realtimeSinceStartup;
+
+ TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.SyncServerTime, 60, (float tick) =>
+ {
+ SyncServerTime();
+ }, 60);
}
- public static event Action OnServerOpenDayRefresh;
- public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
- {
- {
- OpenDay = package.Day;
- IsMixServer = package.IsMixServer == 1;
- MixOpenDay = package.MixDay;
- openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
- WeekOfYear = package.WeekOfYear;
- }
-
- OnRefreshServerTime(new HA004_tagServerDateTime()
- {
- Year = package.NowYear,
- Month = package.NowMonth,
- Day = package.NowDay,
- Hour = package.NowHour,
- Minute = package.NowMinute,
- Second = package.NowSecond,
- MicSecond = package.NowMicSecond,
- socketType = package.socketType,
- });
-
-
- if (OnServerOpenDayRefresh != null)
- {
- OnServerOpenDayRefresh();
- }
- }
-
- public static void SyncServerTime()
- {
- CA002_tagClientRequestServerTime pak = new CA002_tagClientRequestServerTime();
- GameNetSystem.Instance.SendInfo(pak);
-
+ public static event Action OnServerOpenDayRefresh;
+ public static void OnRefreshServerOpenDay(HA005_tagOpenServerDay package)
+ {
+ {
+ OpenDay = package.Day;
+ IsMixServer = package.IsMixServer == 1;
+ MixOpenDay = package.MixDay;
+ openServerDayOfWeek = package.OpenWeekday == 7 ? DayOfWeek.Sunday : (DayOfWeek)package.OpenWeekday;
+ WeekOfYear = package.WeekOfYear;
+ }
+
+ OnRefreshServerTime(new HA004_tagServerDateTime()
+ {
+ Year = package.NowYear,
+ Month = package.NowMonth,
+ Day = package.NowDay,
+ Hour = package.NowHour,
+ Minute = package.NowMinute,
+ Second = package.NowSecond,
+ MicSecond = package.NowMicSecond,
+ socketType = package.socketType,
+ });
+
+
+ if (OnServerOpenDayRefresh != null)
+ {
+ OnServerOpenDayRefresh();
+ }
+ }
+
+ public static void SyncServerTime()
+ {
+ CA002_tagClientRequestServerTime pak = new CA002_tagClientRequestServerTime();
+ GameNetSystem.Instance.SendInfo(pak);
+
}
/// <summary>
@@ -394,6 +394,16 @@
}
/// <summary>
+ /// 鑾峰彇褰撳ぉ鐨�24鐐规椂闂�
+ /// </summary>
+ /// <returns></returns>
+ public static DateTime GetTodayEndTime()
+ {
+ var now = ServerNow.AddDays(1);
+ return new DateTime(now.Year, now.Month, now.Day);
+ }
+
+ /// <summary>
/// 鑾峰彇涓嬩竴涓噷鏅�5鐐圭殑鏃堕棿
/// </summary>
/// <returns></returns>
@@ -427,4 +437,10 @@
return (ServerNow - startTime).Days;
}
+
+ //浠婃棩鍓╀綑绉掓暟
+ public static int GetTodayRemainSeconds()
+ {
+ return (int)(GetTodayEndTime() - ServerNow).TotalSeconds;
+ }
}
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index 665b56e..fb10fc0 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -854,11 +854,11 @@
case TextColType.Pink:
return StringUtility.Contact("<color=#", bright ? "f6408d" : "ff7c7c", ">", msg, "</color>");
case TextColType.Green:
- return StringUtility.Contact("<color=#", bright ? "109d06" : "2ae337", ">", msg, "</color>");
+ return StringUtility.Contact("<color=#", bright ? "248B12" : "2ae337", ">", msg, "</color>");
case TextColType.NavyBrown:
return StringUtility.Contact("<color=#6e4c31>", msg, "</color>");
case TextColType.DarkGreen:
- return StringUtility.Contact("<color=#109d06>", msg, "</color>");
+ return StringUtility.Contact("<color=#248B12>", msg, "</color>");
case TextColType.Black:
return StringUtility.Contact("<color=#000000>", msg, "</color>");
case TextColType.LightWhite:
@@ -1083,6 +1083,16 @@
return 0;
}
+ //璐у竵瀵瑰簲0418绫诲瀷
+ public static Dictionary<int, PlayerDataType> moneyTypeToPlayerDataType = new Dictionary<int, PlayerDataType>()
+ {
+ {1, PlayerDataType.Gold},
+ {2, PlayerDataType.GoldPaper},
+ {3, PlayerDataType.Silver},
+ {41, PlayerDataType.default26},
+ {42, PlayerDataType.default33},
+
+ };
public static ulong GetMoneyCnt(int moneyType)
{
@@ -1232,6 +1242,7 @@
return 0;
}
+
public static int GetAllVourcher()
{
return (int)GetMoneyCnt(98) + (int)GetMoneyCnt(99);
--
Gitblit v1.8.0