From cec8b67d82c2c2c1662d55c818c4a46bcc0487db Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 25 八月 2025 17:36:02 +0800
Subject: [PATCH] 125 【战斗】战斗系统 战斗技能
---
Main/Utility/UIHelper.cs | 392 +++++++++++++++++++++++++++----------------------------
1 files changed, 193 insertions(+), 199 deletions(-)
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index 518c9e5..665b56e 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -372,7 +372,7 @@
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)
{
@@ -507,7 +507,7 @@
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);
@@ -543,7 +543,7 @@
public static readonly Color s_GrayDanLV5 = new Color32(255, 0, 0, 255); //ff0000
public static readonly Color s_GrayDanLV6 = new Color32(240, 0, 255, 255); //f000ff
- // public static Color GetDanLVColor(int danLv, bool bright = false)
+ // public static Color GetDanLVColor(int danLv, bool bright = true)
// {
// var crossDanLVConfig = CrossServerArenaConfig.Get(danLv);
// if (crossDanLVConfig != null)
@@ -569,7 +569,7 @@
// return Color.white;
// }
- // public static string AppendDanLVNameColor(int danLv, bool bright = false)
+ // public static string AppendDanLVNameColor(int danLv, bool bright = true)
// {
// var crossDanLVConfig = CrossServerArenaConfig.Get(danLv);
// if (crossDanLVConfig == null)
@@ -597,43 +597,62 @@
// return name;
// }
- //鐗╁搧 鍚勫姛鑳藉搧璐�
- public static Color GetUIColorByFunc(int itemColor, bool bright = false)
+
+
+ //鐗╁搧 鍚勫姛鑳藉搧璐� 浠庣簿鑹�1鍝佽川 瀵瑰簲 3寮�濮�
+ public static Color GetUIColorByFunc(int itemColor, bool bright = true)
{
- return GetUIColor(itemColor + 1, bright);
+ return GetUIColor(itemColor + 2, bright);
}
- //瀵瑰簲鍝佽川(鏍�)锛涚墿鍝� 鍚勫姛鑳藉搧璐ㄤ粠2寮�濮� 鐢℅etUIColorByFunc
- public static Color GetUIColor(int itemColor, bool bright = false)
+ //瀵瑰簲鍝佽川(鏍�)锛涚墿鍝� 鍚勫姛鑳藉搧璐� 鐢℅etUIColorByFunc
+ 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);
@@ -641,7 +660,7 @@
return GetUIColor(TextColType.White, bright);
}
- public static Color GetUIColor(TextColType type, bool bright = false)
+ public static Color GetUIColor(TextColType type, bool bright = true)
{
//Bright 鍜� Dark鎸囪儗鏅壊绯绘槸鏄庤繕鏄殫锛屾殫搴曚寒瀛楋紝浜簳鏆楀瓧鐨勮鍒�
switch (type)
@@ -712,16 +731,53 @@
return bright ? s_BrightWhiteColor : s_DarkWhiteColor;
}
- //瀵瑰簲鍝佽川(鏍�)锛涚墿鍝� 鍚勫姛鑳藉搧璐ㄤ粠2寮�濮� 鐢℅etUIOutlineColorByFunc
+ //瀵瑰簲鍝佽川(鏍�)锛涚墿鍝� 鍚勫姛鑳藉搧璐� 鐢℅etUIOutlineColorByFunc
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));
}
//鎻忚竟棰滆壊锛屽搴斿搧璐�(鏍�)
@@ -774,9 +830,9 @@
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 = false)
+ public static string AppendColor(TextColType type, string msg, bool bright = true)
{
// if (m_TextColorRegex.IsMatch(msg) && msg.ToLower().StartsWith("<color=#")
// && msg.ToLower().EndsWith("</color>"))
@@ -788,7 +844,7 @@
{
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:
@@ -798,29 +854,62 @@
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;
}
//needName 鎸囧畼鑱�0鏄惁闇�瑕佸悕绉�
- public static string GetRealmName(int realmLv, bool bright = false, bool needName = false)
+ public static string GetRealmName(int realmLv, bool bright = true, bool needName = false)
{
if (realmLv <= 0 && !needName)
{
@@ -850,7 +939,7 @@
// return GetRealmColorByLv(realmLv, string.Format(strFormat, config.Name), bright);
// }
- public static string GetRealmColorByLv(int realmLv, string msg, bool bright = false)
+ public static string GetRealmColorByLv(int realmLv, string msg, bool bright = true)
{
var config = RealmConfig.Get(realmLv);
if (config == null)
@@ -876,36 +965,66 @@
}
}
- public static string AppendColor(int itemColor, string msg, bool bright = false)
+ //鐗╁搧 鍚勫姛鑳藉搧璐� 浠庣簿鑹�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);
}
@@ -931,141 +1050,7 @@
}
#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 寰楀埌閲戦挶鏁伴噺鏍规嵁閲戦挶绫诲瀷
@@ -1190,7 +1175,7 @@
}
case 42:
{
- //缁撴櫠
+ //灏嗘槦鐜夐珦
return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default33);
}
case 43:
@@ -1252,16 +1237,25 @@
return (int)GetMoneyCnt(98) + (int)GetMoneyCnt(99);
}
+ //鏄剧ず鏁伴噺, 鏍煎紡n/m, 瓒冲缁胯壊涓嶈冻绾㈣壊
+ public static string ShowUseMoney(int moneyType, ulong useCnt, TextColType engoughColor = TextColType.Green)
+ {
+ ulong cnt = GetMoneyCnt(moneyType);
+ return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}");
+ }
+
+ public static string ShowUseItem(PackType type, int itemId, ulong useCnt, TextColType engoughColor = TextColType.Green)
+ {
+ ulong cnt = PackManager.Instance.GetItemCountByID(type, itemId);
+ return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}");
+ }
+
#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
@@ -1371,7 +1365,7 @@
return count;
}
- // public static string GetEquipSuitName(int itemId, bool bright = false)
+ // public static string GetEquipSuitName(int itemId, bool bright = true)
// {
// if (ItemLogicUtility.Instance.IsSuitEquip(itemId))
// {
@@ -1381,7 +1375,7 @@
// return string.Empty;
// }
- // public static string GetItemName(int itmeId, bool bright = false)
+ // public static string GetItemName(int itmeId, bool bright = true)
// {
// var itemConfig = ItemConfig.Get(itmeId);
// if (itemConfig == null)
--
Gitblit v1.8.0