From d106f11e7f44c748f595da36e0cdfd54849649e6 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期一, 27 八月 2018 21:13:50 +0800
Subject: [PATCH] 2960 抢Boss活动(提交界面逻辑)
---
Core/GameEngine/Model/ConfigManager.cs | 1
Core/GameEngine/Model/Config/FairyGrabBossConfig.cs.meta | 12 ++
System/FairyAu/FairyGrabBossBehaviour.cs | 79 +++++++++++++
System/FairyAu/FairyGrabBossBehaviour.cs.meta | 12 ++
Utility/EnumHelper.cs | 1
System/FairyAu/FairyGrabBossWin.cs.meta | 12 ++
System/FindPrecious/LootPreciousFrameWin.cs | 35 ++++-
System/FairyAu/FairyGrabBossModel.cs.meta | 12 ++
Core/GameEngine/Model/Config/FairyGrabBossConfig.cs | 41 ++++++
System/FairyAu/FairyGrabBossWin.cs | 70 +++++++++++
System/WindowBase/ModelCenter.cs | 1
System/FairyAu/FairyGrabBossModel.cs | 59 +++++++++
12 files changed, 328 insertions(+), 7 deletions(-)
diff --git a/Core/GameEngine/Model/Config/FairyGrabBossConfig.cs b/Core/GameEngine/Model/Config/FairyGrabBossConfig.cs
new file mode 100644
index 0000000..504edfd
--- /dev/null
+++ b/Core/GameEngine/Model/Config/FairyGrabBossConfig.cs
@@ -0,0 +1,41 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Monday, August 27, 2018
+//--------------------------------------------------------
+
+using UnityEngine;
+using System;
+
+namespace TableConfig {
+
+
+ public partial class FairyGrabBossConfig : ConfigBase {
+
+ public int NPCID { get ; private set ; }
+ public string PortraitID { get ; private set; }
+
+ public override string getKey()
+ {
+ return NPCID.ToString();
+ }
+
+ public override void Parse() {
+ try
+ {
+ NPCID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
+
+ PortraitID = rawContents[1].Trim();
+ }
+ catch (Exception ex)
+ {
+ DebugEx.Log(ex);
+ }
+ }
+
+ }
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/FairyGrabBossConfig.cs.meta b/Core/GameEngine/Model/Config/FairyGrabBossConfig.cs.meta
new file mode 100644
index 0000000..b5a10f7
--- /dev/null
+++ b/Core/GameEngine/Model/Config/FairyGrabBossConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 353bb58b84bc9d74b87bcdbb10330f00
+timeCreated: 1535375170
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Core/GameEngine/Model/ConfigManager.cs b/Core/GameEngine/Model/ConfigManager.cs
index fd45cf7..f85d97b 100644
--- a/Core/GameEngine/Model/ConfigManager.cs
+++ b/Core/GameEngine/Model/ConfigManager.cs
@@ -187,6 +187,7 @@
AddAsyncTask<TrialExchangeConfig>();
AddAsyncTask<TrialRewardsConfig>();
AddAsyncTask<DogzEquipPlusConfig>();
+ AddAsyncTask<FairyGrabBossConfig>();
while (!AllCompleted())
{
var completedCount = 0;
diff --git a/System/FairyAu/FairyGrabBossBehaviour.cs b/System/FairyAu/FairyGrabBossBehaviour.cs
new file mode 100644
index 0000000..48a2c5b
--- /dev/null
+++ b/System/FairyAu/FairyGrabBossBehaviour.cs
@@ -0,0 +1,79 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+ public class FairyGrabBossBehaviour : ScrollItem
+ {
+ [SerializeField] AutoSelectCyclicScroll m_Scroll;
+ [SerializeField] RectTransform m_CenterSign;
+ [SerializeField] RectTransform m_ContainerSelect;
+ [SerializeField] Image m_BossPortrait;
+ [SerializeField] Text m_MapName;
+ [SerializeField] Text m_BossName;
+ [SerializeField] Text m_Progress;
+ [SerializeField] Button m_Select;
+ public int bossId { get; private set; }
+
+ FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
+
+ private void Awake()
+ {
+ m_Select.AddListener(SelectBoss);
+ }
+
+ private void SelectBoss()
+ {
+ m_Scroll.TrySelectData(bossId);
+ }
+
+ public override void Display(object _data)
+ {
+ base.Display(_data);
+ bossId = (int)_data;
+
+ DrawBossBaseInfo();
+ OnSelected(model.selectBoss);
+
+ model.bossSelectedEvent -= OnSelected;
+ model.bossSelectedEvent += OnSelected;
+ }
+
+ public override void Dispose()
+ {
+ base.Dispose();
+ model.bossSelectedEvent -= OnSelected;
+ }
+
+ private void OnSelected(int _bossId)
+ {
+ m_ContainerSelect.gameObject.SetActive(model.selectBoss == bossId);
+ }
+
+ void DrawBossBaseInfo()
+ {
+ var config = Config.Instance.Get<FairyGrabBossConfig>(bossId);
+ var bossInfoConfig = Config.Instance.Get<BossInfoConfig>(bossId);
+ var mapConfig = Config.Instance.Get<MapConfig>(bossInfoConfig.MapID);
+ var npcConfig = Config.Instance.Get<NPCConfig>(bossId);
+ m_BossPortrait.SetSprite(config.PortraitID);
+ m_MapName.text = mapConfig.Name;
+ m_BossName.text = npcConfig.charName;
+ }
+
+ protected virtual void LateUpdate()
+ {
+ if (m_Scroll.autoSelectable && model.selectBoss != bossId && bossId > 0)
+ {
+ if (Mathf.Abs(m_CenterSign.position.y - rectTransform.position.y) * 100f < rectTransform.rect.height * 0.45f)
+ {
+ model.selectBoss = bossId;
+ }
+ }
+ }
+ }
+}
+
diff --git a/System/FairyAu/FairyGrabBossBehaviour.cs.meta b/System/FairyAu/FairyGrabBossBehaviour.cs.meta
new file mode 100644
index 0000000..63d4901
--- /dev/null
+++ b/System/FairyAu/FairyGrabBossBehaviour.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 39b96e40dd3a91d4592771f3254b58af
+timeCreated: 1535372186
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/FairyAu/FairyGrabBossModel.cs b/System/FairyAu/FairyGrabBossModel.cs
new file mode 100644
index 0000000..9bd01a6
--- /dev/null
+++ b/System/FairyAu/FairyGrabBossModel.cs
@@ -0,0 +1,59 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+namespace Snxxz.UI
+{
+ public class FairyGrabBossModel : Model
+ {
+ public List<int> bosses { get; private set; }
+
+ public bool IsOpen
+ {
+ get
+ {
+ return true;
+ }
+ }
+ int m_SelectBoss = 0;
+ public int selectBoss
+ {
+ get { return m_SelectBoss; }
+ set
+ {
+ if (value != m_SelectBoss)
+ {
+ m_SelectBoss = value;
+ if (bossSelectedEvent != null)
+ {
+ bossSelectedEvent(m_SelectBoss);
+ }
+ }
+ }
+ }
+
+ public event Action stateUpdate;
+ public event Action<int> bossSelectedEvent;
+
+ public override void Init()
+ {
+ ParseConfig();
+ }
+
+ public override void UnInit()
+ {
+ }
+
+ void ParseConfig()
+ {
+ bosses = new List<int>();
+ var configs = Config.Instance.GetAllValues<FairyGrabBossConfig>();
+ for (int i = 0; i < configs.Count; i++)
+ {
+ bosses.Add(configs[i].NPCID);
+ }
+ }
+ }
+}
+
diff --git a/System/FairyAu/FairyGrabBossModel.cs.meta b/System/FairyAu/FairyGrabBossModel.cs.meta
new file mode 100644
index 0000000..86772d8
--- /dev/null
+++ b/System/FairyAu/FairyGrabBossModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 7a2dd205b34e1894eadb79449b5eeb65
+timeCreated: 1535369289
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/FairyAu/FairyGrabBossWin.cs b/System/FairyAu/FairyGrabBossWin.cs
new file mode 100644
index 0000000..0ff8187
--- /dev/null
+++ b/System/FairyAu/FairyGrabBossWin.cs
@@ -0,0 +1,70 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Monday, August 27, 2018
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI {
+
+ public class FairyGrabBossWin : Window
+ {
+ [SerializeField] CyclicScroll m_Bosses;
+
+ FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
+ #region Built-in
+ protected override void BindController()
+ {
+ }
+
+ protected override void AddListeners()
+ {
+ }
+
+ protected override void OnPreOpen()
+ {
+ }
+
+ protected override void OnActived()
+ {
+ base.OnActived();
+ DisplayBosses();
+ }
+
+ protected override void OnAfterOpen()
+ {
+ }
+
+ protected override void OnPreClose()
+ {
+ }
+
+ protected override void OnAfterClose()
+ {
+ }
+ #endregion
+
+ void DisplayBosses()
+ {
+ var bosses = new List<int>();
+ bosses.AddRange(model.bosses);
+ model.selectBoss = DefaultSelect();
+ m_Bosses.Init(bosses);
+ m_Bosses.MoveToCenter(bosses.IndexOf(model.selectBoss));
+ }
+
+ int DefaultSelect()
+ {
+ return model.bosses[0];
+ }
+ }
+
+}
+
+
+
+
diff --git a/System/FairyAu/FairyGrabBossWin.cs.meta b/System/FairyAu/FairyGrabBossWin.cs.meta
new file mode 100644
index 0000000..83ad0bf
--- /dev/null
+++ b/System/FairyAu/FairyGrabBossWin.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: adb7f6edfa1466b42a2c498cd4c02a92
+timeCreated: 1535370332
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/FindPrecious/LootPreciousFrameWin.cs b/System/FindPrecious/LootPreciousFrameWin.cs
index e84abe4..a17e4b6 100644
--- a/System/FindPrecious/LootPreciousFrameWin.cs
+++ b/System/FindPrecious/LootPreciousFrameWin.cs
@@ -5,7 +5,8 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
-
+using System;
+
namespace Snxxz.UI
{
@@ -14,10 +15,13 @@
[SerializeField] FunctionButtonGroup m_FunctionGroup;
[SerializeField] FunctionButton m_DemonJar;
+ [SerializeField] FunctionButton m_FairyGrabBoss;
[SerializeField] Button m_Left;
[SerializeField] Button m_Right;
[SerializeField] Button m_Close;
+
+ FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
#region Built-in
protected override void BindController()
@@ -27,15 +31,17 @@
protected override void AddListeners()
{
m_DemonJar.AddListener(ShowDemonJar);
+ m_FairyGrabBoss.AddListener(FairyGrabBoss);
m_Left.AddListener(ShowLastFunction);
m_Right.AddListener(ShowNextFunction);
m_Close.AddListener(CloseClick);
- }
-
+ }
+
protected override void OnPreOpen()
{
-
+ fairyGrabBossModel.stateUpdate += FairyGrabBossUpdate;
+ m_FairyGrabBoss.state = fairyGrabBossModel.IsOpen ? TitleBtnState.Normal : TitleBtnState.Locked;
}
protected override void OnAfterOpen()
@@ -43,14 +49,16 @@
}
protected override void OnPreClose()
- {
+ {
+ fairyGrabBossModel.stateUpdate -= FairyGrabBossUpdate;
+
CloseSubWindows();
if (!WindowJumpMgr.Instance.IsJumpState)
{
WindowCenter.Instance.Open<MainInterfaceWin>();
}
- }
-
+ }
+
protected override void OnAfterClose()
{
@@ -74,9 +82,22 @@
functionOrder = m_DemonJar.order;
}
+ private void FairyGrabBoss()
+ {
+ CloseSubWindows();
+ WindowCenter.Instance.Open<FairyGrabBossWin>();
+ functionOrder = m_FairyGrabBoss.order;
+ }
+
+ private void FairyGrabBossUpdate()
+ {
+ m_FairyGrabBoss.state = fairyGrabBossModel.IsOpen ? TitleBtnState.Normal : TitleBtnState.Locked;
+ }
+
private void CloseSubWindows()
{
WindowCenter.Instance.CloseImmediately<DemonJarWin>();
+ WindowCenter.Instance.CloseImmediately<FairyGrabBossWin>();
}
private void ShowLastFunction()
diff --git a/System/WindowBase/ModelCenter.cs b/System/WindowBase/ModelCenter.cs
index de88d9a..836574e 100644
--- a/System/WindowBase/ModelCenter.cs
+++ b/System/WindowBase/ModelCenter.cs
@@ -189,6 +189,7 @@
RegisterModel<MultipleRealmPointModel>();
RegisterModel<DogzModel>();
RegisterModel<TreasureSoulModel>();
+ RegisterModel<FairyGrabBossModel>();
inited = true;
}
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index bba531e..c8a0384 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -308,6 +308,7 @@
BossHome = 24,
PersonalBoss = 25,
ElderGodArea = 26,
+ FairyGrabBoss = 27,
}
public enum ActivityPrepareType
--
Gitblit v1.8.0