|  |  |  | 
|---|
|  |  |  | public static void SetIconWithMoneyType(this Image _image, int moneyType) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (_image == null) return; | 
|---|
|  |  |  | string iconKey = StringUtility.Contact("Money_Type_", moneyType); | 
|---|
|  |  |  | _image.SetSprite(iconKey); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void SetSmallIconWithMoneyType(this Image _image, int moneyType) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (_image == null) return; | 
|---|
|  |  |  | string iconKey = StringUtility.Contact("SmallMoney", moneyType); | 
|---|
|  |  |  | _image.SetSprite(iconKey); | 
|---|
|  |  |  | if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | _image.SetOrgSprite(ItemConfig.Get(GeneralDefine.MoneyDisplayModel[moneyType]).IconKey); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | // 不需要物品的情况补充 | 
|---|
|  |  |  | // string iconKey = StringUtility.Contact("Money_Type_", moneyType); | 
|---|
|  |  |  | Debug.LogError("MoneyDisplayModel 未配置货币类型:" + moneyType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string GetIconNameWithMoneyType(int moneyType) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return StringUtility.Contact("Money_Type_", moneyType); | 
|---|
|  |  |  | if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return ItemConfig.Get(GeneralDefine.MoneyDisplayModel[moneyType]).IconKey; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Debug.LogError("MoneyDisplayModel 未配置货币类型:" + moneyType); | 
|---|
|  |  |  | return ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 检查字符串是不是纯整数 | 
|---|
|  |  |  | public static bool IsNumeric(string input) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return int.TryParse(input, out _); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string GetColorNameByItemColor(int itemColor) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | switch (itemColor) | 
|---|
|  |  |  | 
|---|
|  |  |  | public static readonly Color s_NavyYellow = new Color32(242, 238, 2, 255); //f2ee02 | 
|---|
|  |  |  | public static readonly Color s_LightGreen = new Color32(42, 227, 55, 255);//2ae337 | 
|---|
|  |  |  | public static readonly Color s_LightWhite = new Color32(245, 246, 230, 255); //f5f6e6 | 
|---|
|  |  |  | public static readonly Color s_Gray = new Color32(132, 121, 123, 255);  //84797b | 
|---|
|  |  |  | public static readonly Color s_Gray = new Color32(187, 187, 187, 255); //bbbbbb | 
|---|
|  |  |  | public static readonly Color s_Gold = new Color32(255, 239, 71, 255);//ffef47 | 
|---|
|  |  |  | public static readonly Color s_EarthYellow = new Color32(248, 152, 59, 255);//f8983b | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return s_LightWhite; | 
|---|
|  |  |  | case TextColType.Gray: | 
|---|
|  |  |  | return s_Gray; | 
|---|
|  |  |  | case TextColType.NavyGray: | 
|---|
|  |  |  | return new Color32(121, 121, 121, 255); | 
|---|
|  |  |  | case TextColType.itemjingliang: | 
|---|
|  |  |  | // 729de4 精良 | 
|---|
|  |  |  | return new Color32(114, 157, 228, 255); | 
|---|
|  |  |  | 
|---|
|  |  |  | // 5d1d52 永恒 | 
|---|
|  |  |  | return new Color32(93, 29, 82, 128); | 
|---|
|  |  |  | case QualityTextColType.red: | 
|---|
|  |  |  | return s_BrightRedColor; | 
|---|
|  |  |  | return s_DarkRedColor; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new Color32(0, 0, 0, 128); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | case TextColType.LightGreen: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#8ddc11>", msg, "</color>"); | 
|---|
|  |  |  | case TextColType.Gray: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#84797b>", msg, "</color>"); | 
|---|
|  |  |  | return StringUtility.Contact("<color=#bbbbbb>", msg, "</color>"); | 
|---|
|  |  |  | case TextColType.NavyGray: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#797979>", msg, "</color>"); | 
|---|
|  |  |  | case TextColType.lightYellow: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#fcedb9>", msg, "</color>"); | 
|---|
|  |  |  | case TextColType.NavyYellow: | 
|---|
|  |  |  | 
|---|
|  |  |  | return StringUtility.Contact("<color=#dfbbed>", msg, "</color>"); | 
|---|
|  |  |  | case TextColType.itembuxiu: | 
|---|
|  |  |  | // 5eeff2 不朽 | 
|---|
|  |  |  | return  StringUtility.Contact("<color=#5eeff2>", msg, "</color>"); | 
|---|
|  |  |  | return StringUtility.Contact("<color=#5eeff2>", msg, "</color>"); | 
|---|
|  |  |  | case TextColType.itemyonghen: | 
|---|
|  |  |  | // f5b4ea 永恒 | 
|---|
|  |  |  | return StringUtility.Contact("<color=#f5b4ea>", msg, "</color>"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return msg; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string AppendColor(Color color, string msg) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", ColorToHexWithHash(color), ">", msg, "</color>"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string ColorToHexWithHash(Color color, bool includeAlpha = false) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | int r = Mathf.RoundToInt(color.r * 255); | 
|---|
|  |  |  | int g = Mathf.RoundToInt(color.g * 255); | 
|---|
|  |  |  | int b = Mathf.RoundToInt(color.b * 255); | 
|---|
|  |  |  | if (includeAlpha) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | int a = Mathf.RoundToInt(color.a * 255); | 
|---|
|  |  |  | return string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", r, g, b, a); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return string.Format("{0:X2}{1:X2}{2:X2}", r, g, b); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //needName 指官职0是否需要名称 | 
|---|
|  |  |  | public static string GetRealmName(int realmLv, bool bright = true, bool needName = false) | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return string.Empty; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return GetRealmColorByLv(realmLv, config.Name, bright); | 
|---|
|  |  |  | return AppendColor(realmLv, config.Name, bright); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //strFormat附加 境界名以外的文字 | 
|---|
|  |  |  | 
|---|
|  |  |  | //     return GetRealmColorByLv(realmLv, string.Format(strFormat, config.Name), bright); | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string GetRealmColorByLv(int realmLv, string msg, bool bright = true) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var config = RealmConfig.Get(realmLv); | 
|---|
|  |  |  | if (config == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return string.Empty; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | switch (config.Quality) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", bright ? "666666" : "dddddd", ">", msg, "</color>"); | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", bright ? "00b337" : "66ff00", ">", msg, "</color>"); | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", bright ? "0066ff" : "00c6ff", ">", msg, "</color>"); | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", bright ? "ff00f6" : "f000ff", ">", msg, "</color>"); | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", bright ? "ff6600" : "ff9000", ">", msg, "</color>"); | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | return StringUtility.Contact("<color=#", bright ? "ff0000" : "ff0000", ">", msg, "</color>"); | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return msg; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // public static string GetRealmColorByLv(int realmLv, string msg, bool bright = true) | 
|---|
|  |  |  | // { | 
|---|
|  |  |  | //     var config = RealmConfig.Get(realmLv); | 
|---|
|  |  |  | //     if (config == null) | 
|---|
|  |  |  | //     { | 
|---|
|  |  |  | //         return string.Empty; | 
|---|
|  |  |  | //     } | 
|---|
|  |  |  | //     switch (config.Quality) | 
|---|
|  |  |  | //     { | 
|---|
|  |  |  | //         case 1: | 
|---|
|  |  |  | //             return StringUtility.Contact("<color=#", bright ? "666666" : "dddddd", ">", msg, "</color>"); | 
|---|
|  |  |  | //         case 2: | 
|---|
|  |  |  | //             return StringUtility.Contact("<color=#", bright ? "00b337" : "66ff00", ">", msg, "</color>"); | 
|---|
|  |  |  | //         case 3: | 
|---|
|  |  |  | //             return StringUtility.Contact("<color=#", bright ? "0066ff" : "00c6ff", ">", msg, "</color>"); | 
|---|
|  |  |  | //         case 4: | 
|---|
|  |  |  | //             return StringUtility.Contact("<color=#", bright ? "ff00f6" : "f000ff", ">", msg, "</color>"); | 
|---|
|  |  |  | //         case 5: | 
|---|
|  |  |  | //             return StringUtility.Contact("<color=#", bright ? "ff6600" : "ff9000", ">", msg, "</color>"); | 
|---|
|  |  |  | //         case 6: | 
|---|
|  |  |  | //             return StringUtility.Contact("<color=#", bright ? "ff0000" : "ff0000", ">", msg, "</color>"); | 
|---|
|  |  |  | //         default: | 
|---|
|  |  |  | //             return msg; | 
|---|
|  |  |  | //     } | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //物品 各功能品质  从精良1品质 对应 3开始 | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | 
|---|
|  |  |  | /// <param name="itemColor"></param> | 
|---|
|  |  |  | /// <param name="msg"></param> | 
|---|
|  |  |  | /// <param name="bright"></param> | 
|---|
|  |  |  | /// <param name="colorGroupType"></param> | 
|---|
|  |  |  | /// <param name="colorGroupType">0 通用功能品质分组精良到神话</param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public static string AppendColor(int itemColor, string msg, bool bright = true, int colorGroupType = 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 得到金钱数量根据金钱类型 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | {3, PlayerDataType.Silver}, | 
|---|
|  |  |  | {41, PlayerDataType.default26}, | 
|---|
|  |  |  | {42, PlayerDataType.default33}, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | {53, PlayerDataType.ChallengeVoucher}, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static long GetMoneyCnt(int moneyType) | 
|---|
|  |  |  | 
|---|
|  |  |  | //武将招募积分 | 
|---|
|  |  |  | return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default44); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 52: | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //淘金令 | 
|---|
|  |  |  | return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.GoldRush); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 53: | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //挑战凭证 | 
|---|
|  |  |  | return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.ChallengeVoucher); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 98: | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //过期型代金券 | 
|---|
|  |  |  | 
|---|
|  |  |  | public static string ShowUseMoney(int moneyType, long useCnt, TextColType engoughColor = TextColType.Green) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | long cnt = GetMoneyCnt(moneyType); | 
|---|
|  |  |  | return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}"); | 
|---|
|  |  |  | return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{ReplaceLargeNum(useCnt)}"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string ShowUseItem(PackType type, int itemId, long useCnt, TextColType engoughColor = TextColType.Green) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | long cnt = PackManager.Instance.GetItemCountByID(type, itemId); | 
|---|
|  |  |  | return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}"); | 
|---|
|  |  |  | return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{ReplaceLargeNum(useCnt)}"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <param name="needTips">0 不响应 1 弹提示 2 弹获取途径tips</param> | 
|---|
|  |  |  | public static bool CheckMoneyCount(int moneyType, long needCount, int needTips = 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (needCount <= 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | long haveCount = GetMoneyCnt(moneyType); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | bool isEnough = haveCount >= needCount; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!isEnough) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (needTips == 1) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (needTips == 2) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ItemTipUtility.ShowMoneyTip(moneyType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return isEnough; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 得到装备位或者祝福树品质名称 带颜色 | 
|---|
|  |  |  | public static string GetQualityNameWithColor(int quality, string format="{0}") | 
|---|
|  |  |  | public static string GetQualityNameWithColor(int quality, string format = "{0}") | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return AppendColor(quality, string.Format(format, Language.Get("equipQuality" + quality)), true, 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return content; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //检查名字长度,玩家名和公会名 | 
|---|
|  |  |  | //不同国家长度不同,排版不同 | 
|---|
|  |  |  | public static bool SatisfyNameLength(string name, out int error) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | error = 0; | 
|---|
|  |  |  | //bool pureChinese = Regex.IsMatch(name, "^[\u4e00-\u9fa5]+$"); | 
|---|
|  |  |  | //var chsCount = GetChsCount(name); | 
|---|
|  |  |  | int length = Encoding.Default.GetBytes(name).Length; | 
|---|
|  |  |  | var maxlength = 20; | 
|---|
|  |  |  | var maxlength = 14;  //纯中文不建议超过7个字 | 
|---|
|  |  |  | var minlength = 3; | 
|---|
|  |  |  | if (length > maxlength) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | return money / scale; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static string RemoveColor(string content) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | content = WordAnalysis.Color_Start_Regex.Replace(content, string.Empty); | 
|---|
|  |  |  | content = WordAnalysis.Color_End_Regex.Replace(content, string.Empty); | 
|---|
|  |  |  | return content; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //复制到剪贴板 | 
|---|
|  |  |  | // TODO 暂不支持web后续补充 | 
|---|
|  |  |  | public static void CopyToClipboard(string text) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | GUIUtility.systemCopyBuffer = text; | 
|---|
|  |  |  | Debug.Log("文字已复制到剪贴板: " + text); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取剪切板内容 | 
|---|
|  |  |  | public static string GetClipboardText() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return GUIUtility.systemCopyBuffer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|