From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/Guild/XGuildConfig.cs | 244 +++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/Guild/XGuildConfig.cs (limited to 'Client/Assets/Scripts/XMainClient/Guild/XGuildConfig.cs') diff --git a/Client/Assets/Scripts/XMainClient/Guild/XGuildConfig.cs b/Client/Assets/Scripts/XMainClient/Guild/XGuildConfig.cs new file mode 100644 index 00000000..62a72e55 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Guild/XGuildConfig.cs @@ -0,0 +1,244 @@ +using System; +using System.Collections.Generic; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XGuildConfig + { + public uint MaxLevel + { + get + { + return this._MaxLevel; + } + } + + private GuildConfigTable m_ConfigTable; + + private Dictionary m_UnlockLevel = new Dictionary(default(XFastEnumIntEqualityComparer)); + + private XSysDefine[] _LockedSys = new XSysDefine[] + { + XSysDefine.XSys_GuildHall_SignIn, + XSysDefine.XSys_GuildHall_Skill, + XSysDefine.XSys_GuildBoon_RedPacket, + XSysDefine.XSys_GuildRelax_Joker, + XSysDefine.XSys_GuildBoon_Shop, + XSysDefine.XSys_GuildDragon, + XSysDefine.XSys_GuildMine, + XSysDefine.XSys_GuildPvp, + XSysDefine.XSys_GuildBoon_DailyActivity, + XSysDefine.XSys_GuildChallenge, + XSysDefine.XSys_GuildRelax_JokerMatch, + XSysDefine.XSys_GuildBoon_Salay, + XSysDefine.XSys_GuildTerritory, + XSysDefine.XSys_CrossGVG + }; + + private uint _MaxLevel; + + private List m_TotalExp = new List(); + + private List m_BaseExp = new List(); + + private List m_SkillCount = new List(); + + public void Init(GuildConfigTable configTable) + { + this.m_BaseExp.Clear(); + this.m_TotalExp.Clear(); + this.m_SkillCount.Clear(); + this.m_ConfigTable = configTable; + uint num = 0u; + this._MaxLevel = (uint)this.m_ConfigTable.Table.Length; + int num2 = 0; + while ((long)num2 < (long)((ulong)this.MaxLevel)) + { + GuildConfigTable.RowData rowData = this.m_ConfigTable.Table[num2]; + for (int i = 0; i < this._LockedSys.Length; i++) + { + bool flag = !this.m_UnlockLevel.ContainsKey(this._LockedSys[i]); + if (flag) + { + int value = XGuildConfig.GetValue(rowData, this._LockedSys[i]); + bool flag2 = value > 0; + if (flag2) + { + this.m_UnlockLevel.Add(this._LockedSys[i], (uint)(num2 + 1)); + } + } + } + this.m_BaseExp.Add(num); + num += rowData.GuildExpNeed; + this.m_TotalExp.Add(num); + this.m_SkillCount.Add(rowData.StudySkillTimes); + num2++; + } + } + + public GuildConfigTable.RowData GetDataByLevel(uint level) + { + bool flag = level > this._MaxLevel || level == 0u; + GuildConfigTable.RowData result; + if (flag) + { + result = null; + } + else + { + result = this.m_ConfigTable.Table[(int)(level - 1u)]; + } + return result; + } + + public static int GetValue(GuildConfigTable.RowData data, XSysDefine sys) + { + if (sys <= XSysDefine.XSys_GuildRelax_Joker) + { + if (sys <= XSysDefine.XSys_GuildHall_SignIn) + { + switch (sys) + { + case XSysDefine.XSys_GuildDragon: + return (int)data.GuildDragon; + case XSysDefine.XSys_GuildPvp: + return data.GuildArena; + case XSysDefine.XSys_GuildRedPacket: + break; + case XSysDefine.XSys_GuildMine: + return data.GuildMine; + case XSysDefine.XSys_CrossGVG: + return data.CrossGVG; + default: + if (sys == XSysDefine.XSys_GuildHall_SignIn) + { + return data.GuildSign; + } + break; + } + } + else + { + if (sys == XSysDefine.XSys_GuildHall_Skill) + { + return data.GuildSkill; + } + if (sys == XSysDefine.XSys_GuildRelax_Joker) + { + return data.PokerTimes; + } + } + } + else if (sys <= XSysDefine.XSys_GuildBoon_Salay) + { + if (sys == XSysDefine.XSys_GuildRelax_JokerMatch) + { + return data.GuildJokerMatch; + } + switch (sys) + { + case XSysDefine.XSys_GuildBoon_RedPacket: + return data.GuildWelfare; + case XSysDefine.XSys_GuildBoon_Shop: + return data.GuildStore; + case XSysDefine.XSys_GuildBoon_DailyActivity: + return data.GuildActivity; + case XSysDefine.XSys_GuildBoon_Salay: + return data.GuildSalay; + } + } + else + { + if (sys == XSysDefine.XSys_GuildChallenge) + { + return data.GuildChallenge; + } + if (sys == XSysDefine.XSys_GuildTerritory) + { + return data.GuildTerritory; + } + } + return 0; + } + + public bool IsSysUnlock(XSysDefine sys, uint level) + { + uint num = 0u; + bool flag = this.m_UnlockLevel.TryGetValue(sys, out num); + bool result; + if (flag) + { + bool flag2 = level >= num; + result = flag2; + } + else + { + result = true; + } + return result; + } + + public uint GetUnlockLevel(XSysDefine sys) + { + uint num = 1u; + bool flag = this.m_UnlockLevel.TryGetValue(sys, out num); + uint result; + if (flag) + { + result = num; + } + else + { + result = 1u; + } + return result; + } + + public uint GetBaseExp(uint level) + { + bool flag = (ulong)level > (ulong)((long)this.m_BaseExp.Count) || level == 0u; + uint result; + if (flag) + { + result = 0u; + } + else + { + result = this.m_BaseExp[(int)(level - 1u)]; + } + return result; + } + + public uint GetTotalStudyCount(int startLevel, int endLevel) + { + uint num = 0u; + endLevel = Math.Min(endLevel, this.m_SkillCount.Count); + startLevel = 1; + bool flag = startLevel - 1 < endLevel; + if (flag) + { + for (int i = startLevel - 1; i < endLevel; i++) + { + num += this.m_SkillCount[i]; + } + } + return num; + } + + public uint GetTotalExp(uint level) + { + bool flag = (ulong)level > (ulong)((long)this.m_BaseExp.Count) || level == 0u; + uint result; + if (flag) + { + result = 0u; + } + else + { + result = this.m_TotalExp[(int)(level - 1u)]; + } + return result; + } + } +} -- cgit v1.1-26-g67d0