From f5fc680bde88e6cce73a3f153a52358dd9d8aa76 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 19 九月 2018 10:08:59 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/OpenServerActivity/ImpactRankModel.cs | 17 +++++
System/OpenServerActivity/OpenServerActivityWin.cs | 76 +++++++++++++++++-------
Utility/EnumLabelAttribute.cs.meta | 12 ++++
System/OpenServerActivity/OpenServerActivityCell.cs | 2
Utility/EnumLabelAttribute.cs | 47 +++++++++++++++
5 files changed, 130 insertions(+), 24 deletions(-)
diff --git a/System/OpenServerActivity/ImpactRankModel.cs b/System/OpenServerActivity/ImpactRankModel.cs
index 98bc9ad..a3efdac 100644
--- a/System/OpenServerActivity/ImpactRankModel.cs
+++ b/System/OpenServerActivity/ImpactRankModel.cs
@@ -758,15 +758,30 @@
public enum OSActivityType
{
+ [Header("鍏ㄥ悕鍐叉")]
ImpactRank,
+ [Header("娑堣垂杩斿埄")]
ConsumeRebate,
+ [Header("寮�鏈嶇孩鍖�")]
OSRedpack,
+ [Header("寮�鏈嶇壒鎯�")]
OSSale,
+ [Header("闄愭椂鐗规儬")]
FlashSale,
+ [Header("澶氬�嶇粡楠�")]
MultipleExp,
+ [Header("瓒呭�肩ぜ鍖�")]
OSGift,
+ [Header("闄愭椂绀煎寘")]
+ FlashGift,
+ [Header("澶氬�嶄慨琛岀偣")]
MultipleRealmPoint,
- BossReborn
+ [Header("Boss澶嶆椿")]
+ BossReborn,
+ [Header("浠欑帀鎶曡祫")]
+ FairyInvest,
+ [Header("VIP鎶曡祫")]
+ VipInvest
}
}
diff --git a/System/OpenServerActivity/OpenServerActivityCell.cs b/System/OpenServerActivity/OpenServerActivityCell.cs
index 70272e6..57b2631 100644
--- a/System/OpenServerActivity/OpenServerActivityCell.cs
+++ b/System/OpenServerActivity/OpenServerActivityCell.cs
@@ -32,6 +32,8 @@
public Image downArrow { get { return m_DownArrow; } }
[SerializeField] Image m_UpArrow;
public Image upArrow { get { return m_UpArrow; } }
+ [SerializeField] Image m_TitleImg;
+ public Image titleImage { get { return m_TitleImg; } }
private int m_Order = 0;
public int order { get { return m_Order; } set { m_Order = value; } }
diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index 939d0b6..ee7fa88 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -12,7 +12,7 @@
[SerializeField] ScrollerController m_ActivityCtrl;
[SerializeField] Button m_BtnClose;
[SerializeField] Image m_TitleIcon;
- [SerializeField, Header("鎺掑簭")] List<int> m_SortArray;
+ [SerializeField] List<CustomActivityDisplay> m_CustomActivitys;
Dictionary<int, bool> m_ActivitySpreadDict = new Dictionary<int, bool>();
@@ -43,6 +43,7 @@
{
m_ActivityCtrl.OnRefreshCell += OnOpenServerActivityRefresh;
m_ActivityCtrl.OnGetDynamicSize += OnGetDynamicSize;
+ m_ActivityCtrl.lockType = EnhanceLockType.KeepVertical;
m_BtnClose.onClick.AddListener(CloseClick);
}
@@ -51,9 +52,9 @@
TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
- for (int i = 0; i < m_SortArray.Count; i++)
+ for (int i = 0; i < m_CustomActivitys.Count; i++)
{
- m_ActivitySpreadDict[m_SortArray[i]] = false;
+ m_ActivitySpreadDict[(int)m_CustomActivitys[i].activityType] = false;
}
var impactDefaultType= impactRankModel.GetDefaultSelectType();
if (impactRankModel.IsLock(impactDefaultType))
@@ -137,18 +138,18 @@
openActivitys.Clear();
priorityActivitys.Clear();
- for (int i = 0; i < m_SortArray.Count; i++)
+ for (int i = 0; i < m_CustomActivitys.Count; i++)
{
- if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
+ if (OpenServerActivityCenter.Instance.IsActivityOpen((int)m_CustomActivitys[i].activityType))
{
- openActivitys.Add(m_SortArray[i]);
- if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen(m_SortArray[i]))
+ openActivitys.Add((int)m_CustomActivitys[i].activityType);
+ if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen((int)m_CustomActivitys[i].activityType))
{
- priorityActivitys.Add(m_SortArray[i]);
+ priorityActivitys.Add((int)m_CustomActivitys[i].activityType);
- switch (m_SortArray[i])
+ switch (m_CustomActivitys[i].activityType)
{
- case 2:
+ case OpenServerActivityCenter.OSActivityType.OSRedpack:
envelopeModel.selectType = envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple ? 1 : 2;
break;
}
@@ -170,11 +171,11 @@
void CheckAlreadyOpen()
{
alreadyOpenActivitys.Clear();
- for (int i = 0; i < m_SortArray.Count; i++)
+ for (int i = 0; i < m_CustomActivitys.Count; i++)
{
- if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i]))
+ if (OpenServerActivityCenter.Instance.IsActivityOpen((int)m_CustomActivitys[i].activityType))
{
- alreadyOpenActivitys.Add(m_SortArray[i]);
+ alreadyOpenActivitys.Add((int)m_CustomActivitys[i].activityType);
}
}
}
@@ -234,7 +235,22 @@
_cell.ChangeState(_cell.order == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
_cell.downArrow.gameObject.SetActive(false);
_cell.upArrow.gameObject.SetActive(false);
- if(_cell.order == 0 || _cell.order == 2)
+
+ var customActivity = m_CustomActivitys.Find((x) =>
+ {
+ return (int)x.activityType == _cell.index;
+ });
+
+ bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon);
+ _cell.title.gameObject.SetActive(!customIcon);
+ _cell.titleImage.gameObject.SetActive(customIcon);
+ if (customIcon)
+ {
+ _cell.titleImage.SetSprite(customActivity.titleIcon);
+ _cell.titleImage.SetNativeSize();
+ }
+
+ if (_cell.order == 0 || _cell.order == 2)
{
_cell.downArrow.gameObject.SetActive(m_ActivitySpreadDict[_cell.order]);
_cell.upArrow.gameObject.SetActive(!m_ActivitySpreadDict[_cell.order]);
@@ -279,9 +295,9 @@
private void UpdateFunctionBtns()
{
m_ActivityCtrl.Refresh();
- for (int i = 0; i < m_SortArray.Count; i++)
+ for (int i = 0; i < m_CustomActivitys.Count; i++)
{
- var sort = m_SortArray[i];
+ var sort = (int)m_CustomActivitys[i].activityType;
if (!alreadyOpenActivitys.Contains(sort))
{
continue;
@@ -504,10 +520,16 @@
WindowCenter.Instance.CloseImmediately<VipInvestWin>();
}
- private int Compare(int x, int y)
+ private int Compare(int order_x, int order_y)
{
- var index_x = m_SortArray.IndexOf(x);
- var index_y = m_SortArray.IndexOf(y);
+ var index_x = m_CustomActivitys.FindIndex((x) =>
+ {
+ return order_x == (int)x.activityType;
+ });
+ var index_y = m_CustomActivitys.FindIndex((x) =>
+ {
+ return order_y == (int)x.activityType;
+ });
return index_x.CompareTo(index_y);
}
@@ -522,12 +544,12 @@
private void OpenServerActivityStateChange()
{
bool _update = false;
- for (int i = 0; i < m_SortArray.Count; i++)
+ for (int i = 0; i < m_CustomActivitys.Count; i++)
{
- if (OpenServerActivityCenter.Instance.IsActivityOpen(m_SortArray[i])
- && !alreadyOpenActivitys.Contains(m_SortArray[i]))
+ if (OpenServerActivityCenter.Instance.IsActivityOpen((int)m_CustomActivitys[i].activityType)
+ && !alreadyOpenActivitys.Contains((int)m_CustomActivitys[i].activityType))
{
- alreadyOpenActivitys.Add(m_SortArray[i]);
+ alreadyOpenActivitys.Add((int)m_CustomActivitys[i].activityType);
_update = true;
}
}
@@ -536,6 +558,14 @@
UpdateFunctionBtns();
}
}
+
+ [Serializable]
+ public struct CustomActivityDisplay
+ {
+ [Header("娲诲姩绫诲瀷"), EnumLabel(typeof(OpenServerActivityCenter.OSActivityType))]
+ public OpenServerActivityCenter.OSActivityType activityType;
+ public string titleIcon;
+ }
}
}
diff --git a/Utility/EnumLabelAttribute.cs b/Utility/EnumLabelAttribute.cs
new file mode 100644
index 0000000..f2adab0
--- /dev/null
+++ b/Utility/EnumLabelAttribute.cs
@@ -0,0 +1,47 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+#if UNITY_EDITOR
+using UnityEditor;
+using System.Reflection;
+#endif
+
+[AttributeUsage(AttributeTargets.Field)]
+public class EnumLabelAttribute : PropertyAttribute
+{
+ public readonly Type enumType;
+ public EnumLabelAttribute(Type type)
+ {
+ this.enumType = type;
+ }
+}
+
+#if UNITY_EDITOR
+[CustomPropertyDrawer(typeof(EnumLabelAttribute))]
+public class EnumLabelPropertyDrawer : PropertyDrawer
+{
+ List<string> m_EnumLabels = new List<string>();
+ public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
+ {
+ var customAttribute = (EnumLabelAttribute)attribute;
+ if (m_EnumLabels.Count != property.enumNames.Length)
+ {
+ m_EnumLabels.Clear();
+ var enumtype = customAttribute.enumType;
+ foreach (var enumName in property.enumNames)
+ {
+ var enumfield = enumtype.GetField(enumName);
+ var customAttributes = enumfield.GetCustomAttributes(typeof(HeaderAttribute), false);
+ m_EnumLabels.Add(customAttributes.Length <= 0 ? enumName : ((HeaderAttribute)customAttributes[0]).header);
+ }
+ }
+ EditorGUI.BeginChangeCheck();
+ var value = EditorGUI.Popup(position, fieldInfo.Name, property.enumValueIndex, m_EnumLabels.ToArray());
+ if (EditorGUI.EndChangeCheck())
+ {
+ property.enumValueIndex = value;
+ }
+ }
+}
+#endif
diff --git a/Utility/EnumLabelAttribute.cs.meta b/Utility/EnumLabelAttribute.cs.meta
new file mode 100644
index 0000000..1054599
--- /dev/null
+++ b/Utility/EnumLabelAttribute.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: ce694ab87ddaeeb4eaf384d8cc6b284b
+timeCreated: 1537268726
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0