| | |
| | | |
| | | if (num >= T) |
| | | { |
| | | return StringUtility.Contact(numto2Decimals(num / T).ToString("0.##"), Language.Get("L1070_0")); |
| | | return StringUtility.Contact(numto2Decimals(num / T).ToString("0.##"), Language.Get("L1070_0")); |
| | | } |
| | | else if (num >= B) |
| | | { |
| | |
| | | public static readonly Color s_BrightPurpleColor = new Color32(218, 72, 213, 255); |
| | | public static readonly Color s_BrightBlueColor = new Color32(0, 107, 227, 255); //006BE3FF |
| | | public static readonly Color s_BrightOrangeColor = new Color32(255, 103, 1, 255); //FF6701FF |
| | | public static readonly Color s_BrightWhiteColor = new Color32(104, 104, 104, 255); //686868 |
| | | public static readonly Color s_BrightWhiteColor = new Color32(255, 255, 255, 255); //ffffff //new Color32(104, 104, 104, 255); //686868 |
| | | public static readonly Color s_BrightGreenColor = new Color32(36, 139, 18, 255); //248b12 |
| | | |
| | | public static readonly Color s_DarkPinkColor = new Color32(255, 124, 124, 255); |
| | |
| | | // return name; |
| | | // } |
| | | |
| | | //物品 各功能品质 |
| | | |
| | | |
| | | //物品 各功能品质 从精良1品质 对应 3开始 |
| | | public static Color GetUIColorByFunc(int itemColor, bool bright = true) |
| | | { |
| | | return GetUIColor(itemColor + 1, bright); |
| | | return GetUIColor(itemColor + 2, bright); |
| | | } |
| | | |
| | | |
| | | //对应品质(树);物品 各功能品质从2开始 用GetUIColorByFunc |
| | | //对应品质(树);物品 各功能品质 用GetUIColorByFunc |
| | | public static Color GetUIColor(int itemColor, bool bright = true) |
| | | { |
| | | switch (itemColor) |
| | | { |
| | | case 0: |
| | | return GetUIColor(TextColType.Gray, bright); |
| | | case 1: |
| | | return GetUIColor(TextColType.White, bright); |
| | | return GetUIColor(TextColType.Gray, bright); |
| | | case 2: |
| | | return GetUIColor(TextColType.itemjingliang, bright); |
| | | return GetUIColor(TextColType.White, bright); |
| | | case 3: |
| | | return GetUIColor(TextColType.itemxiyou, bright); |
| | | return GetUIColor(TextColType.itemjingliang, bright); |
| | | case 4: |
| | | return GetUIColor(TextColType.itemshishi, bright); |
| | | return GetUIColor(TextColType.itemxiyou, bright); |
| | | case 5: |
| | | return GetUIColor(TextColType.itemchuanqi, bright); |
| | | return GetUIColor(TextColType.itemshishi, bright); |
| | | case 6: |
| | | return GetUIColor(TextColType.itemshenhua, bright); |
| | | return GetUIColor(TextColType.itemchuanqi, bright); |
| | | case 7: |
| | | return GetUIColor(TextColType.itemwuxia, bright); |
| | | return GetUIColor(TextColType.itemshenhua, bright); |
| | | case 8: |
| | | return GetUIColor(TextColType.itemanjin, bright); |
| | | return GetUIColor(TextColType.itemwuxia, bright); |
| | | case 9: |
| | | return GetUIColor(TextColType.itemjueyi, bright); |
| | | return GetUIColor(TextColType.itemanjin, bright); |
| | | case 10: |
| | | return GetUIColor(TextColType.itemyuanzu, bright); |
| | | case 11: |
| | | return GetUIColor(TextColType.itembuxiu, bright); |
| | | case 12: |
| | | case 13: |
| | | case 14: |
| | | return GetUIColor(TextColType.itemjueyi, bright); |
| | | case 15: |
| | | case 16: |
| | | case 17: |
| | | case 18: |
| | | case 19: |
| | | return GetUIColor(TextColType.itemyuanzu, bright); |
| | | case 20: |
| | | case 21: |
| | | case 22: |
| | | case 23: |
| | | case 24: |
| | | return GetUIColor(TextColType.itembuxiu, bright); |
| | | case 25: |
| | | case 26: |
| | | case 27: |
| | | case 28: |
| | | case 29: |
| | | return GetUIColor(TextColType.itemyonghen, bright); |
| | | |
| | | |
| | |
| | | return bright ? s_BrightWhiteColor : s_DarkWhiteColor; |
| | | } |
| | | |
| | | //对应品质(树);物品 各功能品质从2开始 用GetUIOutlineColorByFunc |
| | | //对应品质(树);物品 各功能品质 用GetUIOutlineColorByFunc |
| | | public static Color GetUIOutlineColor(int quality) |
| | | { |
| | | return GetUIOutlineColor((QualityTextColType)quality); |
| | | switch (quality) |
| | | { |
| | | case 1: |
| | | case 2: |
| | | case 3: |
| | | case 4: |
| | | case 5: |
| | | case 6: |
| | | case 7: |
| | | case 8: |
| | | case 9: |
| | | return GetUIOutlineColor((QualityTextColType)quality); |
| | | case 10: |
| | | case 11: |
| | | case 12: |
| | | case 13: |
| | | case 14: |
| | | return GetUIOutlineColor(QualityTextColType.itemjueyi); |
| | | case 15: |
| | | case 16: |
| | | case 17: |
| | | case 18: |
| | | case 19: |
| | | return GetUIOutlineColor(QualityTextColType.itemyuanzu); |
| | | case 20: |
| | | case 21: |
| | | case 22: |
| | | case 23: |
| | | case 24: |
| | | return GetUIOutlineColor(QualityTextColType.itembuxiu); |
| | | case 25: |
| | | case 26: |
| | | case 27: |
| | | case 28: |
| | | case 29: |
| | | return GetUIOutlineColor(QualityTextColType.itemyonghen); |
| | | } |
| | | return GetUIOutlineColor(QualityTextColType.itemputong); |
| | | } |
| | | |
| | | //物品 各功能品质 |
| | | //物品 各功能品质 从精良1品质 对应 3开始 |
| | | public static Color GetUIOutlineColorByFunc(int quality) |
| | | { |
| | | return GetUIOutlineColor((QualityTextColType)(quality + 1)); |
| | | return GetUIOutlineColor((QualityTextColType)(quality + 2)); |
| | | } |
| | | |
| | | //描边颜色,对应品质(树) |
| | |
| | | return new Color32(0, 0, 0, 128); |
| | | } |
| | | |
| | | private static Regex m_TextColorRegex = new Regex("<color=#[0-9a-zA-Z]+>(.*)</color>", RegexOptions.Singleline); |
| | | // private static Regex m_TextColorRegex = new Regex("<color=#[0-9a-zA-Z]+>(.*)</color>", RegexOptions.Singleline); |
| | | |
| | | public static string AppendColor(TextColType type, string msg, bool bright = true) |
| | | { |
| | |
| | | { |
| | | case TextColType.None: |
| | | case TextColType.White: |
| | | return StringUtility.Contact("<color=#", bright ? "686868" : "f7f7f7", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#", bright ? "ffffff" : "ffffff", ">", msg, "</color>"); |
| | | case TextColType.titleSelectColor: |
| | | return StringUtility.Contact("<color=#7F4139>", msg, "</color>"); |
| | | case TextColType.titleUnSelectColor: |
| | |
| | | case TextColType.Pink: |
| | | return StringUtility.Contact("<color=#", bright ? "f6408d" : "ff7c7c", ">", msg, "</color>"); |
| | | case TextColType.Green: |
| | | return StringUtility.Contact("<color=#", bright ? "109d06" : "35e122", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#", bright ? "109d06" : "2ae337", ">", msg, "</color>"); |
| | | case TextColType.NavyBrown: |
| | | return StringUtility.Contact("<color=#", "6e4c31", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#6e4c31>", msg, "</color>"); |
| | | case TextColType.DarkGreen: |
| | | return StringUtility.Contact("<color=#", "109d06", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#109d06>", msg, "</color>"); |
| | | case TextColType.Black: |
| | | return StringUtility.Contact("<color=#", "000000", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#000000>", msg, "</color>"); |
| | | case TextColType.LightWhite: |
| | | return StringUtility.Contact("<color=#", "f5f646", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=f5f646>", msg, "</color>"); |
| | | case TextColType.LightGreen: |
| | | return StringUtility.Contact("<color=#", "8ddc11", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#8ddc11>", msg, "</color>"); |
| | | case TextColType.Gray: |
| | | return StringUtility.Contact("<color=#", "84797b", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#84797b>", msg, "</color>"); |
| | | case TextColType.lightYellow: |
| | | return StringUtility.Contact("<color=#", "fcedb9", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#fcedb9>", msg, "</color>"); |
| | | case TextColType.NavyYellow: |
| | | return StringUtility.Contact("<color=#", "f2ee02", ">", msg, "</color>"); |
| | | return StringUtility.Contact("<color=#f2ee02>", msg, "</color>"); |
| | | case TextColType.itemjingliang: |
| | | // 729de4 精良 |
| | | return StringUtility.Contact("<color=#729de4>", msg, "</color>"); |
| | | case TextColType.itemxiyou: |
| | | // c87bfa稀有 |
| | | return StringUtility.Contact("<color=#c87bfa>", msg, "</color>"); |
| | | case TextColType.itemshishi: |
| | | // f6de56 史诗 |
| | | return StringUtility.Contact("<color=#f6de56>", msg, "</color>"); |
| | | case TextColType.itemchuanqi: |
| | | // fe8534 传奇 |
| | | return StringUtility.Contact("<color=#fe8534>", msg, "</color>"); |
| | | case TextColType.itemshenhua: |
| | | // fe4a47 神话 |
| | | return StringUtility.Contact("<color=#fe4a47>", msg, "</color>"); |
| | | case TextColType.itemwuxia: |
| | | // eb5ce9 无瑕 |
| | | return StringUtility.Contact("<color=#eb5ce9>", msg, "</color>"); |
| | | case TextColType.itemanjin: |
| | | // f9e29f 暗金 |
| | | return StringUtility.Contact("<color=#f9e29f>", msg, "</color>"); |
| | | case TextColType.itemjueyi: |
| | | // cdfef2 绝艺 |
| | | return StringUtility.Contact("<color=#cdfef2>", msg, "</color>"); |
| | | case TextColType.itemyuanzu: |
| | | // dfbbed 元祖 |
| | | return StringUtility.Contact("<color=#dfbbed>", msg, "</color>"); |
| | | case TextColType.itembuxiu: |
| | | // 5eeff2 不朽 |
| | | return StringUtility.Contact("<color=#5eeff2>", msg, "</color>"); |
| | | case TextColType.itemyonghen: |
| | | // f5b4ea 永恒 |
| | | return StringUtility.Contact("<color=#f5b4ea>", msg, "</color>"); |
| | | } |
| | | return msg; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public static string AppendColor(int itemColor, string msg, bool bright = true) |
| | | //物品 各功能品质 从精良1品质 对应 3开始 |
| | | /// <summary> |
| | | /// 颜色定义根据分组处理,如普通物品的颜色精良是1开始,树和装备也是粗糙1开始,需要调整匹配 |
| | | /// </summary> |
| | | /// <param name="itemColor"></param> |
| | | /// <param name="msg"></param> |
| | | /// <param name="bright"></param> |
| | | /// <param name="colorGroupType"></param> |
| | | /// <returns></returns> |
| | | public static string AppendColor(int itemColor, string msg, bool bright = true, int colorGroupType = 0) |
| | | { |
| | | if (colorGroupType == 0) |
| | | { |
| | | itemColor = itemColor + 2; |
| | | } |
| | | |
| | | switch (itemColor) |
| | | { |
| | | |
| | | case 0: |
| | | return AppendColor(TextColType.Gray, msg, bright); |
| | | case 1: |
| | | return AppendColor(TextColType.White, msg, bright); |
| | | return AppendColor(TextColType.Gray, msg, bright); |
| | | case 2: |
| | | return AppendColor(TextColType.itemjingliang, msg, bright); |
| | | return AppendColor(TextColType.White, msg, bright); |
| | | case 3: |
| | | return AppendColor(TextColType.itemxiyou, msg, bright); |
| | | return AppendColor(TextColType.itemjingliang, msg, bright); |
| | | case 4: |
| | | return AppendColor(TextColType.itemshishi, msg, bright); |
| | | return AppendColor(TextColType.itemxiyou, msg, bright); |
| | | case 5: |
| | | return AppendColor(TextColType.itemchuanqi, msg, bright); |
| | | return AppendColor(TextColType.itemshishi, msg, bright); |
| | | case 6: |
| | | return AppendColor(TextColType.itemshenhua, msg, bright); |
| | | return AppendColor(TextColType.itemchuanqi, msg, bright); |
| | | case 7: |
| | | return AppendColor(TextColType.itemwuxia, msg, bright); |
| | | return AppendColor(TextColType.itemshenhua, msg, bright); |
| | | case 8: |
| | | return AppendColor(TextColType.itemanjin, msg, bright); |
| | | return AppendColor(TextColType.itemwuxia, msg, bright); |
| | | case 9: |
| | | return AppendColor(TextColType.itemjueyi, msg, bright); |
| | | return AppendColor(TextColType.itemanjin, msg, bright); |
| | | case 10: |
| | | return AppendColor(TextColType.itemyuanzu, msg, bright); |
| | | case 11: |
| | | return AppendColor(TextColType.itembuxiu, msg, bright); |
| | | case 12: |
| | | case 13: |
| | | case 14: |
| | | return AppendColor(TextColType.itemjueyi, msg, bright); |
| | | case 15: |
| | | case 16: |
| | | case 17: |
| | | case 18: |
| | | case 19: |
| | | return AppendColor(TextColType.itemyuanzu, msg, bright); |
| | | case 20: |
| | | case 21: |
| | | case 22: |
| | | case 23: |
| | | case 24: |
| | | return AppendColor(TextColType.itembuxiu, msg, bright); |
| | | case 25: |
| | | case 26: |
| | | case 27: |
| | | case 28: |
| | | case 29: |
| | | return AppendColor(TextColType.itemyonghen, msg, bright); |
| | | |
| | | } |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 计算战斗力 |
| | | public static readonly string FightPowerFormula = "FightpowerFormula"; |
| | | |
| | | // public static int GetFightPower(Dictionary<int, int> _propertyDict) |
| | | // { |
| | | // Equation.Instance.Clear(); |
| | | // if (_propertyDict == null || _propertyDict.Count == 0) |
| | | // { |
| | | // return 0; |
| | | // } |
| | | |
| | | // foreach (var _key in _propertyDict.Keys) |
| | | // { |
| | | // PlayerPropertyConfig cfg = PlayerPropertyConfig.Get(_key); |
| | | // if (cfg != null) |
| | | // { |
| | | // if (_key == 7) |
| | | // { |
| | | // Equation.Instance.AddKeyValue("MinAtk", _propertyDict[_key]); |
| | | // Equation.Instance.AddKeyValue("MaxAtk", _propertyDict[_key]); |
| | | // } |
| | | // else if (_key == 24) |
| | | // { |
| | | // Equation.Instance.AddKeyValue("PetMinAtk", _propertyDict[_key]); |
| | | // Equation.Instance.AddKeyValue("PetMaxAtk", _propertyDict[_key]); |
| | | // } |
| | | // else |
| | | // { |
| | | // ulong attrValue = (ulong)_propertyDict[_key]; |
| | | // var fightParm = GetFightPowerParmByAttrId(_key); |
| | | // if (_key == 11) |
| | | // { |
| | | // var playerLv = PlayerDatas.Instance.baseData.LV; |
| | | // var paramConfig = FightPowerParamConfig.Get(playerLv); |
| | | // Equation.Instance.AddKeyValue("AtkSpeedParameter", paramConfig.AtkSpeedParameter); |
| | | // } |
| | | // else |
| | | // { |
| | | // if (fightParm != 0) |
| | | // { |
| | | // attrValue = attrValue * (ulong)fightParm; |
| | | // } |
| | | // } |
| | | // Equation.Instance.AddKeyValue(cfg.Parameter, attrValue); |
| | | // } |
| | | // } |
| | | |
| | | // } |
| | | // FuncConfigConfig funcCfg = FuncConfigConfig.Get(FightPowerFormula); |
| | | // return Equation.Instance.Eval<int>(funcCfg.Numerical1); |
| | | // } |
| | | |
| | | // public static int GetFightPowerParmByAttrId(int attrId) |
| | | // { |
| | | // int playerLv = PlayerDatas.Instance.baseData.LV; |
| | | // FightPowerParamConfig paramConfig = FightPowerParamConfig.Get(playerLv); |
| | | // PlayerPropertyConfig cfg = PlayerPropertyConfig.Get(attrId); |
| | | // if (paramConfig == null || cfg == null) return 0; |
| | | |
| | | // switch (cfg.Parameter) |
| | | // { |
| | | // case "Hit": |
| | | // return paramConfig.Hit; |
| | | // case "Miss": |
| | | // return paramConfig.Miss; |
| | | // case "IgnoreDefRate": |
| | | // return paramConfig.IgnoreDefRate; |
| | | // case "DamChanceDef": |
| | | // return paramConfig.DamChanceDef; |
| | | // case "FaintRate": |
| | | // return paramConfig.FaintRate; |
| | | // case "LuckyHitRateReduce": |
| | | // return paramConfig.LuckyHitRateReduce; |
| | | // case "SkillAtkRate": |
| | | // return paramConfig.SkillAtkRate; |
| | | // case "SkillAtkRateReduce": |
| | | // return paramConfig.SkillAtkRateReduce; |
| | | // case "DamagePerPVP": |
| | | // return paramConfig.DamagePerPVP; |
| | | // case "DamagePerPVPReduce": |
| | | // return paramConfig.DamagePerPVPReduce; |
| | | // case "DamBackPer": |
| | | // return paramConfig.DamBackPer; |
| | | // case "IgnoreDefRateReduce": |
| | | // return paramConfig.IgnoreDefRateReduce; |
| | | // case "FaintDefRate": |
| | | // return paramConfig.FaintDefRate; |
| | | // case "AtkSpeedParameter": |
| | | // return paramConfig.AtkSpeedParameter; |
| | | // case "JobAHurtAddPer": |
| | | // return paramConfig.JobAHurtAddPer; |
| | | // case "JobBHurtAddPer": |
| | | // return paramConfig.JobBHurtAddPer; |
| | | // case "JobCHurtAddPer": |
| | | // return paramConfig.JobCHurtAddPer; |
| | | // case "JobAAtkReducePer": |
| | | // return paramConfig.JobAAtkReducePer; |
| | | // case "JobBAtkReducePer": |
| | | // return paramConfig.JobBAtkReducePer; |
| | | // case "JobCAtkReducePer": |
| | | // return paramConfig.JobCAtkReducePer; |
| | | // case "SuperHitRate": |
| | | // return paramConfig.SuperHitRate; |
| | | // case "LuckyHitRate": |
| | | // return paramConfig.LuckyHitRate; |
| | | // case "SuperHitRateReduce": |
| | | // return paramConfig.SuperHitRateReduce; |
| | | // case "FinalHurtPer": |
| | | // return paramConfig.FinalHurtPer; |
| | | // case "FinalHurtReducePer": |
| | | // return paramConfig.FinalHurtReducePer; |
| | | // case "NPCHurtAddPer": |
| | | // return paramConfig.NPCHurtAddPer; |
| | | // case "NormalHurtPer": |
| | | // return paramConfig.NormalHurtPer; |
| | | // case "FabaoHurtPer": |
| | | // return paramConfig.FabaoHurtPer; |
| | | // case "AffairSpeedPer": |
| | | // return paramConfig.AffairSpeedPer; |
| | | // case "FamilyBossHurtPer": |
| | | // return paramConfig.FamilyBossHurtPer; |
| | | // case "FamilyWarHPPer": |
| | | // return paramConfig.FamilyWarHPPer; |
| | | // case "FamilyWarAtkPer": |
| | | // return paramConfig.FamilyWarAtkPer; |
| | | // case "FamilySitExpPer": |
| | | // return paramConfig.FamilySitExpPer; |
| | | // case "BossFinalHurtPer": |
| | | // return paramConfig.BossFinalHurtPer; |
| | | // } |
| | | |
| | | // return 0; |
| | | // } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region 得到金钱数量根据金钱类型 |
| | | |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 得到装备位对应的部位名称 |
| | | public static string GetEquipPlaceName(int place) |
| | | #region 得到装备位或者祝福树品质名称 带颜色 |
| | | public static string GetQualityNameWithColor(int quality, string format="{0}") |
| | | { |
| | | if (GeneralDefine.equipPlaceNameDict.ContainsKey(place)) |
| | | { |
| | | return GeneralDefine.equipPlaceNameDict[place]; |
| | | } |
| | | return ""; |
| | | return AppendColor(quality, string.Format(format, Language.Get("equipQuality" + quality)), true, 1); |
| | | } |
| | | #endregion |
| | | |