From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Assets/Scripts/XMainClient/XDragonGuildPP.cs | 189 +++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XDragonGuildPP.cs (limited to 'Client/Assets/Scripts/XMainClient/XDragonGuildPP.cs') diff --git a/Client/Assets/Scripts/XMainClient/XDragonGuildPP.cs b/Client/Assets/Scripts/XMainClient/XDragonGuildPP.cs new file mode 100644 index 00000000..86cdb4cd --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XDragonGuildPP.cs @@ -0,0 +1,189 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using XMainClient.UI; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XDragonGuildPP + { + public static int POSITION_COUNT; + + private List PositionName = new List(); + + private List PositionColor = new List(); + + private List PositionNameWithColor = new List(); + + public static int PERMISSION_COUNT; + + private int[][] DragonGuildPermissionMatrix; + + public static int PemissionNameToIndex(string pemstr) + { + return XDragonGuildPP.Permission2Int((DragonGuildPermission)Enum.Parse(typeof(DragonGuildPermission), pemstr)); + } + + public void InitTable(DragonGuildPermissionTable table) + { + this.PositionName.Clear(); + this.PositionColor.Clear(); + this.PositionNameWithColor.Clear(); + XDragonGuildPP.POSITION_COUNT = XDragonGuildPP.Position2Int(DragonGuildPosition.DGPOS_COUNT); + for (int i = 0; i < XDragonGuildPP.POSITION_COUNT; i++) + { + DragonGuildPosition dragonGuildPosition = (DragonGuildPosition)i; + string @string = XStringDefineProxy.GetString(dragonGuildPosition.ToString()); + this.PositionName.Add(@string); + this.PositionColor.Add(XSingleton.singleton.GetItemQualityColor(XDragonGuildPP.POSITION_COUNT - 1 - i)); + this.PositionNameWithColor.Add(string.Format("[{0}]{1}[-]", XSingleton.singleton.GetItemQualityRGB(XDragonGuildPP.POSITION_COUNT - 1 - i), @string)); + } + XDragonGuildPP.PERMISSION_COUNT = XDragonGuildPP.Permission2Int(DragonGuildPermission.DGEM_MAX); + this.DragonGuildPermissionMatrix = new int[XDragonGuildPP.PERMISSION_COUNT][]; + for (int j = 0; j < this.DragonGuildPermissionMatrix.Length; j++) + { + this.DragonGuildPermissionMatrix[j] = new int[XDragonGuildPP.POSITION_COUNT]; + } + for (int k = 0; k < table.Table.Length; k++) + { + DragonGuildPermissionTable.RowData rowData = table.Table[k]; + int num = XDragonGuildPP.PemissionNameToIndex(rowData.DragonGuildID); + this.DragonGuildPermissionMatrix[num][XDragonGuildPP.Position2Int(DragonGuildPosition.DGPOS_LEADER)] = rowData.DGPOS_LEADER; + this.DragonGuildPermissionMatrix[num][XDragonGuildPP.Position2Int(DragonGuildPosition.DGPOS_VICELEADER)] = rowData.DGPOS_VIVELEADER; + this.DragonGuildPermissionMatrix[num][XDragonGuildPP.Position2Int(DragonGuildPosition.DGPOS_MEMBER)] = rowData.DGPOS_MEMBER; + } + } + + public string GetPositionName(DragonGuildPosition position, bool bWithColor = false) + { + bool flag = position == DragonGuildPosition.DGPOS_COUNT; + string result; + if (flag) + { + result = ""; + } + else + { + result = (bWithColor ? this.PositionNameWithColor[XDragonGuildPP.Position2Int(position)] : this.PositionName[XDragonGuildPP.Position2Int(position)]); + } + return result; + } + + public Color GetPositionColor(DragonGuildPosition position) + { + bool flag = position == DragonGuildPosition.DGPOS_COUNT; + Color result; + if (flag) + { + result = Color.white; + } + else + { + result = this.PositionColor[XDragonGuildPP.Position2Int(position)]; + } + return result; + } + + public bool HasPermission(DragonGuildPosition pos, DragonGuildPermission pem) + { + bool flag = pem == DragonGuildPermission.DGEM_DONOTHING; + bool result; + if (flag) + { + result = true; + } + else + { + bool flag2 = pos == DragonGuildPosition.DGPOS_COUNT || pem == DragonGuildPermission.DGEM_MAX || pos == DragonGuildPosition.DGPOS_INVALID || pem == DragonGuildPermission.DGEM_INVALID; + result = (!flag2 && this.DragonGuildPermissionMatrix[XDragonGuildPP.Permission2Int(pem)][XDragonGuildPP.Position2Int(pos)] == 1); + } + return result; + } + + public bool HasLowerPosition(DragonGuildPosition pos) + { + int num = XFastEnumIntEqualityComparer.ToInt(pos); + bool flag = num >= XDragonGuildPP.POSITION_COUNT - 1; + return !flag; + } + + public int GetLowerPosition(DragonGuildPosition pos) + { + int num = XFastEnumIntEqualityComparer.ToInt(pos); + bool flag = num > XDragonGuildPP.POSITION_COUNT - 1; + int result; + if (flag) + { + result = num; + } + else + { + result = num + 1; + } + return result; + } + + public bool HasHigherPosition(DragonGuildPosition pos) + { + int num = XFastEnumIntEqualityComparer.ToInt(pos); + bool flag = num <= 0; + return !flag; + } + + public int GetHigherPosition(DragonGuildPosition pos) + { + int num = XFastEnumIntEqualityComparer.ToInt(pos); + bool flag = num < 0; + int result; + if (flag) + { + result = num; + } + else + { + result = num - 1; + } + return result; + } + + public DragonGuildPermission GetSetPositionPermission(DragonGuildPosition higherPos, DragonGuildPosition targetPos) + { + bool flag = targetPos == DragonGuildPosition.DGPOS_COUNT || targetPos == DragonGuildPosition.DGPOS_INVALID; + DragonGuildPermission result; + if (flag) + { + result = DragonGuildPermission.DGEM_MAX; + } + else + { + switch (higherPos) + { + case DragonGuildPosition.DGPOS_LEADER: + result = DragonGuildPermission.DGEM_CHANGELEADER; + break; + case DragonGuildPosition.DGPOS_VICELEADER: + result = DragonGuildPermission.DGEM_SET_VICELEADER; + break; + case DragonGuildPosition.DGPOS_MEMBER: + result = DragonGuildPermission.DGEM_DONOTHING; + break; + default: + result = DragonGuildPermission.DGEM_MAX; + break; + } + } + return result; + } + + private static int Position2Int(DragonGuildPosition pos) + { + return XFastEnumIntEqualityComparer.ToInt(pos); + } + + private static int Permission2Int(DragonGuildPermission pem) + { + return XFastEnumIntEqualityComparer.ToInt(pem); + } + } +} -- cgit v1.1-26-g67d0