From 89343a7a0909e5244a3b69c4db1294de4536243b Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 15 十二月 2025 18:15:22 +0800
Subject: [PATCH] 262 幻境阁系统-客户端 新增仅适用武将解锁的头像和形象的红点移除规则
---
Main/System/Main/FightPowerManager.cs | 374 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 235 insertions(+), 139 deletions(-)
diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index 37b1765..7fe4011 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -1,10 +1,10 @@
-锘縰sing System;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using LitJson;
-using Spine;
+
//锛佸崟鑻遍泟鏌ョ湅鎴樺姏 鍙畻鑷繁鐨勪笂闃靛睘鎬� 涓嶇畻缇佺粖 鎬讳笂闃靛睘鎬� 鍏夌幆
// 鎴樺姏鐨勮绠楁柟寮�
@@ -12,25 +12,99 @@
// 鎵�鏈夋灏嗘垬鍔涘姞璧锋潵 + 鎶�鑳芥垬鍔涙眹鎬伙紙鍏紡锛夊氨鏄暣涓彿鐨勬垬鍔�
public class FightPowerManager : Singleton<FightPowerManager>
{
- public string propertyFormula;
- public string fightPropertyFormula;
- public string fightPowerFormula;
- public string skillFightPowerFormula;
+ // 灞炴�у彉閲忓父閲�
+ private const string LV_VALUE = "lvValue";
+ private const string EQUIP_VALUE = "equipValue";
+ private const string BOOK_VALUE = "bookValue";
+ private const string BOOK_PER = "bookPer";
+ private const string REALM_VALUE = "realmValue";
+ private const string REALM_PER = "realmPer";
+ private const string GUBAO_VALUE = "gubaoValue";
+ private const string GUBAO_PER = "gubaoPer";
+ private const string HJG_VALUE = "hjgValue";
+ private const string HJG_PER = "hjgPer";
+ private const string HORSE_VALUE = "horseValue";
+ private const string HORSE_PER = "horsePer";
+ private const string BEAUTY_VALUE = "beautyValue";
+ private const string BEAUTY_PER = "beautyPer";
+ private const string FATES_VALUE = "fatesValue";
+ private const string FATES_PER = "fatesPer";
+ private const string LINEUP_HALO_VALUE = "lineupHaloValue";
+ private const string LINEUP_HALO_PER = "lineupHaloPer";
+ private const string INHERIT_PER = "inheritPer";
+ private const string HERO_SELF_VALUE = "heroSelfValue";
+ private const string HERO_SELF_PER = "heroSelfPer";
+ private const string STAR_TALENT_VALUE = "starTalentValue";
+ private const string STAR_TALENT_PER = "starTalentPer";
+ private const string BREAK_LV_VALUE = "breakLVValue";
+ private const string BREAK_LV_PER = "breakLVPer";
+ private const string AWAKE_TALENT_VALUE = "awakeTalentValue";
+ private const string AWAKE_TALENT_PER = "awakeTalentPer";
+ private const string FETTER_VALUE = "fetterValue";
+ private const string FETTER_PER = "fetterPer";
+ private const string HERO_LV_VALUE = "heroLVValue";
+ private const string HERO_LV_PER = "heroLVPer";
+ private const string HERO_CARDPER = "cardPer";
+
+ // 鎴樺姏鍙橀噺甯搁噺
+ private const string ATK_RATIO = "AtkRatio";
+ private const string MAX_HP_RATIO = "MaxHPRatio";
+ private const string DEF_RATIO = "DefRatio";
+ private const string STUN_RATE_RATIO = "StunRateRatio";
+ private const string SUPER_HIT_RATE_RATIO = "SuperHitRateRatio";
+ private const string COMBO_RATE_RATIO = "ComboRateRatio";
+ private const string MISS_RATE_RATIO = "MissRateRatio";
+ private const string PARRY_RATE_RATIO = "ParryRateRatio";
+ private const string SUCK_HP_PER_RATIO = "SuckHPPerRatio";
+ private const string STUN_RATE_DEF_RATIO = "StunRateDefRatio";
+ private const string SUPER_HIT_RATE_DEF_RATIO = "SuperHitRateDefRatio";
+ private const string COMBO_RATE_DEF_RATIO = "ComboRateDefRatio";
+ private const string MISS_RATE_DEF_RATIO = "MissRateDefRatio";
+ private const string PARRY_RATE_DEF_RATIO = "ParryRateDefRatio";
+ private const string SUCK_HP_PER_DEF_RATIO = "SuckHPPerDefRatio";
+ private const string NORMAL_SKILL_PER_RATIO = "NormalSkillPerRatio";
+ private const string NORMAL_SKILL_PER_DEF_RATIO = "NormalSkillPerDefRatio";
+ private const string ANGER_SKILL_PER_RATIO = "AngerSkillPerRatio";
+ private const string ANGER_SKILL_PER_DEF_RATIO = "AngerSkillPerDefRatio";
+ private const string SUPER_DAM_PER_RATIO = "SuperDamPerRatio";
+ private const string SUPER_DAM_PER_DEF_RATIO = "SuperDamPerDefRatio";
+ private const string SHIELD_PER_RATIO = "ShieldPerRatio";
+ private const string SHIELD_PER_DEF_RATIO = "ShieldPerDefRatio";
+ private const string DOT_PER_RATIO = "DOTPerRatio";
+ private const string DOT_PER_DEF_RATIO = "DOTPerDefRatio";
+ private const string WEI_FINAL_DAM_PER_RATIO = "WeiFinalDamPerRatio";
+ private const string WEI_FINAL_DAM_PER_DEF_RATIO = "WeiFinalDamPerDefRatio";
+ private const string SHU_FINAL_DAM_PER_RATIO = "ShuFinalDamPerRatio";
+ private const string SHU_FINAL_DAM_PER_DEF_RATIO = "ShuFinalDamPerDefRatio";
+ private const string WU_FINAL_DAM_PER_RATIO = "WuFinalDamPerRatio";
+ private const string WU_FINAL_DAM_PER_DEF_RATIO = "WuFinalDamPerDefRatio";
+ private const string QUN_FINAL_DAM_PER_RATIO = "QunFinalDamPerRatio";
+ private const string QUN_FINAL_DAM_PER_DEF_RATIO = "QunFinalDamPerDefRatio";
+ private const string FINAL_DAM_PER_RATIO = "FinalDamPerRatio";
+ private const string FINAL_DAM_PER_DEF_RATIO = "FinalDamPerDefRatio";
+ private const string PHY_DAM_PER_RATIO = "PhyDamPerRatio";
+ private const string PHY_DAM_PER_DEF_RATIO = "PhyDamPerDefRatio";
+ private const string MAG_DAM_PER_RATIO = "MagDamPerRatio";
+ private const string MAG_DAM_PER_DEF_RATIO = "MagDamPerDefRatio";
+ private const string CURE_PER_RATIO = "CurePerRatio";
+ private const string CURE_PER_DEF_RATIO = "CurePerDefRatio";
+ private const string PVP_DAM_PER_RATIO = "PVPDamPerRatio";
+ private const string PVP_DAM_PER_DEF_RATIO = "PVPDamPerDefRatio";
+ private const string PLAYER_LV = "PlayerLV";
+ private const string OFFICIAL_LV = "OfficialLV";
+ private const string SKILL_POWER = "SkillPower";
+
+
Dictionary<string, double> propertyVariables = new Dictionary<string, double>();
Dictionary<string, double> fightPowerVariables = new Dictionary<string, double>(); //鎬绘垬鍔涗腑鐨勫崟姝﹀皢鎴樺姏
-
-
+ List<PlayerPropertyConfig> pConfig = new List<PlayerPropertyConfig>();
public FightPowerManager()
{
// 鏁板��1锛氬熀纭�涓夌淮灞炴�ц绠楀叕寮�
// 鏁板��2锛氭垬鏂楀睘鎬�/鎴樻枟鎶楁��/鐗规畩灞炴�ц绠楀叕寮�
// 鏁板��3锛氬睘鎬ф垬鍔涜绠楀叕寮忥紝璁$畻鍙傛暟璇﹁ S.灞炴�ф潯鐩厤缃�
- var config = FuncConfigConfig.Get("HeroAttrFormula");
- propertyFormula = config.Numerical1;
- fightPropertyFormula = config.Numerical2;
- fightPowerFormula = config.Numerical3;
- skillFightPowerFormula = config.Numerical4;
+ pConfig = PlayerPropertyConfig.GetValues();
JaceCalculator.Init();
}
@@ -53,7 +127,7 @@
dropIndexCalc = dropindex;
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氬垵濮嬪寲鍙傛暟 dropIndex锛�" + dropIndexCalc + " 闃靛瀷锛�" + teamTypeCalc + " ispreview:" + ispreview);
+ // Debug.Log("鎴樺姏锛氬垵濮嬪寲鍙傛暟 dropIndex锛�" + dropIndexCalc + " 闃靛瀷锛�" + teamTypeCalc + " ispreview:" + ispreview);
#endif
}
#endregion
@@ -68,8 +142,10 @@
//鍒嗗紑瀛樺偍棰勮鍜� 鐪熷疄灞炴��
public Dictionary<int, int> equipAttrs = new Dictionary<int, int>(); //瑁呭灞炴��
- public Dictionary<string, int> lineUpPerDict = new Dictionary<string, int>(); //闃靛灞炴�у姞鎴�
+ // public Dictionary<string, int> lineUpPerDict = new Dictionary<string, int>(); //闃靛灞炴�у姞鎴�
public Dictionary<int, int> countryAttrs = new Dictionary<int, int>(); //闃靛鍥藉锛堝厜鐜級灞炴��
+
+ float allHeroAddPer = 0; //鎵�鏈夋灏嗗姞鎴�
//绛夌骇灞炴��
void RefreshLVAttrs()
@@ -81,7 +157,7 @@
lvAttrs[attrType] = GetPlayerLVValue(playerLVConfig, attrType);
}
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氱瓑绾у睘鎬� " + JsonMapper.ToJson(lvAttrs));
+ // Debug.Log("鎴樺姏锛氱瓑绾у睘鎬� " + JsonMapper.ToJson(lvAttrs));
#endif
}
@@ -115,7 +191,7 @@
officialAttrs[id] = config.AddAttrNum[i];
}
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氬畼鑱屽睘鎬� " + JsonMapper.ToJson(officialAttrs));
+ // Debug.Log("鎴樺姏锛氬畼鑱屽睘鎬� " + JsonMapper.ToJson(officialAttrs));
#endif
}
@@ -175,7 +251,7 @@
}
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氳澶囧睘鎬� " + JsonMapper.ToJson(equipAttrs));
+ // Debug.Log("鎴樺姏锛氳澶囧睘鎬� " + JsonMapper.ToJson(equipAttrs));
#endif
}
@@ -184,15 +260,15 @@
{
//闃靛灞炴��
// 闃靛锛氭墍鏈夋灏嗕笂闃靛睘鎬�
- lineUpPerDict = HeroUIManager.Instance.GetLineupPer(teamTypeCalc, isPreviewTeamPower);
-
+ // lineUpPerDict = HeroUIManager.Instance.GetLineupPer(teamTypeCalc, isPreviewTeamPower);
+ allHeroAddPer = HeroUIManager.Instance.GetAllHeroPer() / 10000.0f;
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氫笂闃靛睘鎬� " + JsonMapper.ToJson(lineUpPerDict));
+ // Debug.Log("鎴樺姏锛氫笂闃靛睘鎬� " + JsonMapper.ToJson(lineUpPerDict));
#endif
// 闃靛锛氬浗瀹讹紙鍏夌幆锛夊睘鎬�
countryAttrs = HeroUIManager.Instance.GetCountryAttrs(teamTypeCalc, isPreviewTeamPower);
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氬浗瀹讹紙鍏夌幆锛夊睘鎬� " + JsonMapper.ToJson(countryAttrs));
+ // Debug.Log("鎴樺姏锛氬浗瀹讹紙鍏夌幆锛夊睘鎬� " + JsonMapper.ToJson(countryAttrs));
#endif
}
@@ -221,68 +297,86 @@
#region 灞炴�у叕寮�
// 鍗曞熀纭�灞炴�ц绠�
- public double GetPropertyVaule(int attrType, HeroInfo hero, string formula)
+ public double GetPropertyVaule(int attrType, HeroInfo hero, int type)
{
- propertyVariables.Clear();
- propertyVariables["lvValue"] = lvAttrs.ContainsKey(attrType) ? lvAttrs[attrType] : 0;
- propertyVariables["equipValue"] = equipAttrs.ContainsKey(attrType) ? equipAttrs[attrType] : 0;
- propertyVariables["bookValue"] = 0;
- propertyVariables["bookPer"] = GetBookPer(attrType) / 10000.0f;
- propertyVariables["realmValue"] = officialAttrs.ContainsKey(attrType) ? officialAttrs[attrType] : 0;
- propertyVariables["realmPer"] = GetOfficialPer(attrType) / 10000.0f;
+ // propertyVariables.Clear();
+
+ propertyVariables[LV_VALUE] = lvAttrs.ContainsKey(attrType) ? lvAttrs[attrType] : 0;
+ propertyVariables[EQUIP_VALUE] = equipAttrs.ContainsKey(attrType) ? equipAttrs[attrType] : 0;
+ // propertyVariables[BOOK_VALUE] = 0;
+ propertyVariables[REALM_VALUE] = officialAttrs.ContainsKey(attrType) ? officialAttrs[attrType] : 0;
+ propertyVariables[REALM_PER] = GetOfficialPer(attrType) / 10000.0f;
+ // propertyVariables[BOOK_PER] = GetBookPer(attrType) / 10000.0f;
+ propertyVariables[GUBAO_VALUE] = 0;
+ propertyVariables[GUBAO_PER] = 0;
+ propertyVariables[HJG_VALUE] = PhantasmPavilionManager.Instance.GetAttrValue(attrType);
+ propertyVariables[HJG_PER] = PhantasmPavilionManager.Instance.GetAttrPer(attrType) / 10000.0f;
+ propertyVariables[HORSE_VALUE] = HorseManager.Instance.GetAttrValue(attrType);
+ propertyVariables[HORSE_PER] = HorseManager.Instance.GetAttrPer(attrType) / 10000.0f;
+ propertyVariables[BEAUTY_VALUE] = 0;
+ propertyVariables[BEAUTY_PER] = 0;
+ propertyVariables[FATES_VALUE] = 0;
+ propertyVariables[FATES_PER] = 0;
+ //鍏ㄤ綋鍗$墝鍔犳垚
+ propertyVariables[HERO_CARDPER] = allHeroAddPer;
//锛侊紒锛佸崟姝﹀皢鎴樺姏棰勮鐨勮瘽闇�瑕佹帓闄ら槦浼嶅奖鍝嶆垬鍔涳紝鍙畻姝﹀皢鑷韩鐨勪笂闃靛睘鎬�
- propertyVariables["lineupInitAddPer"] = GetLineUpPer(attrType, "lineupInitAddPer") / 10000.0f;
- propertyVariables["lineupLVAddPer"] = GetLineUpPer(attrType, "lineupLVAddPer") / 10000.0f;
- propertyVariables["lineupBreakLVAddPer"] = GetLineUpPer(attrType, "lineupBreakLVAddPer") / 10000.0f;
- propertyVariables["lineupStarAddPer"] = GetLineUpPer(attrType, "lineupStarAddPer") / 10000.0f;
+ // propertyVariables[LINEUP_INIT_ADD_PER] = GetLineUpPer(attrType, LINEUP_INIT_ADD_PER) / 10000.0f;
+ // propertyVariables[LINEUP_LV_ADD_PER] = GetLineUpPer(attrType, LINEUP_LV_ADD_PER) / 10000.0f;
+ // propertyVariables[LINEUP_BREAK_LV_ADD_PER] = GetLineUpPer(attrType, LINEUP_BREAK_LV_ADD_PER) / 10000.0f;
+ // propertyVariables[LINEUP_STAR_ADD_PER] = GetLineUpPer(attrType, LINEUP_STAR_ADD_PER) / 10000.0f;
//闃靛鍏夌幆 涓夊洿鐧惧垎姣斿姞鎴�
- propertyVariables["lineupHaloValue"] = countryAttrs.ContainsKey(attrType) ? countryAttrs[attrType] : 0;
- propertyVariables["lineupHaloPer"] = GetCountryPer(attrType) / 10000.0f;
-
+ propertyVariables[LINEUP_HALO_VALUE] = countryAttrs.ContainsKey(attrType) ? countryAttrs[attrType] : 0;
+ propertyVariables[LINEUP_HALO_PER] = GetCountryPer(attrType) / 10000.0f;
//姝﹀皢灞炴��
- propertyVariables["inheritPer"] = hero.GetInheritAttrPer(attrType) / 10000.0f;
- propertyVariables["heroSelfValue"] = hero.GetSelfAddValue(attrType);
- propertyVariables["heroSelfPer"] = hero.GetSelfAddPer(attrType) / 10000.0f;
- propertyVariables["starTalentValue"] = hero.GetTalentAttrValue(attrType);
- propertyVariables["starTalentPer"] = hero.GetTalentAttrPer(attrType) / 10000.0f;
- propertyVariables["breakLVValue"] = hero.GetBreakAttrValue(attrType);
- propertyVariables["breakLVPer"] = hero.GetBreakAttrPer(attrType) / 10000.0f;
- propertyVariables["awakeTalentValue"] = hero.GetAwakeAttrValue(attrType);
- propertyVariables["awakeTalentPer"] = hero.GetAwakeAttrPer(attrType) / 10000.0f;
- propertyVariables["fetterValue"] = hero.GetFetterAttrValue(attrType);
- propertyVariables["fetterPer"] = hero.GetFetterAttrPer(attrType) / 10000.0f;
-
+ propertyVariables[INHERIT_PER] = hero.GetInheritAttrPer(attrType) / 10000.0f;
+ propertyVariables[HERO_SELF_VALUE] = hero.GetSelfAddValue(attrType);
+ propertyVariables[HERO_SELF_PER] = hero.GetSelfAddPer(attrType) / 10000.0f;
+ propertyVariables[STAR_TALENT_VALUE] = hero.GetTalentAttrValue(attrType);
+ propertyVariables[STAR_TALENT_PER] = hero.GetTalentAttrPer(attrType) / 10000.0f;
+ propertyVariables[BREAK_LV_VALUE] = hero.GetBreakAttrValue(attrType);
+ propertyVariables[BREAK_LV_PER] = hero.GetBreakAttrPer(attrType) / 10000.0f;
+ propertyVariables[AWAKE_TALENT_VALUE] = hero.GetAwakeAttrValue(attrType);
+ propertyVariables[AWAKE_TALENT_PER] = hero.GetAwakeAttrPer(attrType) / 10000.0f;
+ propertyVariables[FETTER_VALUE] = hero.GetFetterAttrValue(attrType);
+ propertyVariables[FETTER_PER] = hero.GetFetterAttrPer(attrType) / 10000.0f;
+ propertyVariables[HERO_LV_VALUE] = hero.GetHeroLVValue(attrType);
+ propertyVariables[HERO_LV_PER] = hero.GetHeroLVPer(attrType) / 10000.0f;
#if UNITY_EDITOR
//鎺掗櫎鍊间负0鐨勫睘鎬ц緭鍑�
- var tmpPropertyVariables = propertyVariables.Where(x => x.Value > 0).ToDictionary(x => x.Key, x => x.Value);
- if (!tmpPropertyVariables.IsNullOrEmpty())
- propertyStrForDebug += $"灞炴�D {attrType} - {JsonMapper.ToJson(tmpPropertyVariables)}";
+ // var tmpPropertyVariables = propertyVariables.Where(x => x.Value > 0).ToDictionary(x => x.Key, x => x.Value);
+ // if (!tmpPropertyVariables.IsNullOrEmpty())
+ // propertyStrForDebug += $"灞炴�D {attrType} - {JsonMapper.ToJson(tmpPropertyVariables)}";
#endif
- return JaceCalculator.Calculate(formula, propertyVariables);
+ if (type == 0)
+ return FightPowerFormula.GetBaseAttr(propertyVariables);
+ else
+ return FightPowerFormula.GetFightAttr(propertyVariables);
}
- int GetLineUpPer(int attrType, string key)
- {
- if (!PlayerPropertyConfig.baseAttrs.Contains(attrType))
- {
- return 0;
- }
- return lineUpPerDict[key];
- }
- int GetBookPer(int attrType)
- {
- if (!PlayerPropertyConfig.baseAttrs.Contains(attrType))
- {
- return 0;
- }
- return HeroUIManager.Instance.allHeroBookPer;
- }
+ // int GetLineUpPer(int attrType, string key)
+ // {
+ // if (!PlayerPropertyConfig.baseAttrs.Contains(attrType))
+ // {
+ // return 0;
+ // }
+
+ // return lineUpPerDict[key];
+ // }
+
+ // int GetBookPer(int attrType)
+ // {
+ // if (!PlayerPropertyConfig.baseAttrs.Contains(attrType))
+ // {
+ // return 0;
+ // }
+ // return HeroUIManager.Instance.allHeroBookPer;
+ // }
int GetOfficialPer(int attrType)
{
@@ -319,14 +413,13 @@
public long CalculatePower()
{
#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氬紑濮嬭绠�");
+ // Debug.Log("鎴樺姏锛氬紑濮嬭绠�");
#endif
// --- 鍏堣绠楁墍鏈夊姛鑳界殑姹囨�诲睘鎬� ---
RefreshLVAttrs();
RefreshOfficialAttrs();
RefrehEquipAttrs();
RefreshTeamAttrs();
-
// --- 绠楀崟姝﹀皢鍔熻兘灞炴�ф垬鍔� 鍚庣浉鍔�---
long fightPower = 0;
@@ -352,9 +445,9 @@
}
-#if UNITY_EDITOR
- Debug.Log("鎴樺姏锛氳绠楀畬姣� " + fightPower);
-#endif
+// #if UNITY_EDITOR
+// Debug.Log("鎴樺姏锛氳绠楀畬姣� " + fightPower);
+// #endif
return fightPower;
}
@@ -372,7 +465,7 @@
#if UNITY_EDITOR
propertyStrForDebug = "";
#endif
- foreach (var config in PlayerPropertyConfig.GetValues())
+ foreach (var config in pConfig)
{
if (config.showType < 1 || config.showType > 4)
{
@@ -380,88 +473,90 @@
}
if (config.showType == 1)
{
- fightPowerVariables[config.Parameter] = Math.Round(GetPropertyVaule(config.ID, hero, propertyFormula), 3);
+ fightPowerVariables[config.Parameter] = Math.Round(GetPropertyVaule(config.ID, hero, 0), 3);
}
else
{
- fightPowerVariables[config.Parameter] = Math.Round(GetPropertyVaule(config.ID, hero, fightPropertyFormula), 3);
+ fightPowerVariables[config.Parameter] = Math.Round(GetPropertyVaule(config.ID, hero, 1), 3);
}
}
#if UNITY_EDITOR
- Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 灞炴�т俊鎭� {propertyStrForDebug}");
+ // Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 灞炴�т俊鎭� {propertyStrForDebug}");
#endif
//灞炴�х郴鏁版牴鎹畼鑱岀瓑绾х殑鍔犳垚
var fightPowerRatioConfig = FightPowerRatioConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
- fightPowerVariables["AtkRatio"] = fightPowerRatioConfig.AtkRatio;
- fightPowerVariables["MaxHPRatio"] = fightPowerRatioConfig.MaxHPRatio;
- fightPowerVariables["DefRatio"] = fightPowerRatioConfig.DefRatio;
- fightPowerVariables["StunRateRatio"] = fightPowerRatioConfig.StunRateRatio;
- fightPowerVariables["SuperHitRateRatio"] = fightPowerRatioConfig.SuperHitRateRatio;
- fightPowerVariables["ComboRateRatio"] = fightPowerRatioConfig.ComboRateRatio;
- fightPowerVariables["MissRateRatio"] = fightPowerRatioConfig.MissRateRatio;
- fightPowerVariables["ParryRateRatio"] = fightPowerRatioConfig.ParryRateRatio;
- fightPowerVariables["SuckHPPerRatio"] = fightPowerRatioConfig.SuckHPPerRatio;
- fightPowerVariables["StunRateDefRatio"] = fightPowerRatioConfig.StunRateDefRatio;
- fightPowerVariables["SuperHitRateDefRatio"] = fightPowerRatioConfig.SuperHitRateDefRatio;
- fightPowerVariables["ComboRateDefRatio"] = fightPowerRatioConfig.ComboRateDefRatio;
- fightPowerVariables["MissRateDefRatio"] = fightPowerRatioConfig.MissRateDefRatio;
- fightPowerVariables["ParryRateDefRatio"] = fightPowerRatioConfig.ParryRateDefRatio;
- fightPowerVariables["SuckHPPerDefRatio"] = fightPowerRatioConfig.SuckHPPerDefRatio;
- fightPowerVariables["NormalSkillPerRatio"] = fightPowerRatioConfig.NormalSkillPerRatio;
- fightPowerVariables["NormalSkillPerDefRatio"] = fightPowerRatioConfig.NormalSkillPerDefRatio;
- fightPowerVariables["AngerSkillPerRatio"] = fightPowerRatioConfig.AngerSkillPerRatio;
- fightPowerVariables["AngerSkillPerDefRatio"] = fightPowerRatioConfig.AngerSkillPerDefRatio;
- fightPowerVariables["SuperDamPerRatio"] = fightPowerRatioConfig.SuperDamPerRatio;
- fightPowerVariables["SuperDamPerDefRatio"] = fightPowerRatioConfig.SuperDamPerDefRatio;
- fightPowerVariables["ShieldPerRatio"] = fightPowerRatioConfig.ShieldPerRatio;
- fightPowerVariables["ShieldPerDefRatio"] = fightPowerRatioConfig.ShieldPerDefRatio;
- fightPowerVariables["DOTPerRatio"] = fightPowerRatioConfig.DOTPerRatio;
- fightPowerVariables["DOTPerDefRatio"] = fightPowerRatioConfig.DOTPerDefRatio;
- fightPowerVariables["WeiFinalDamPerRatio"] = fightPowerRatioConfig.WeiFinalDamPerRatio;
- fightPowerVariables["WeiFinalDamPerDefRatio"] = fightPowerRatioConfig.WeiFinalDamPerDefRatio;
- fightPowerVariables["ShuFinalDamPerRatio"] = fightPowerRatioConfig.ShuFinalDamPerRatio;
- fightPowerVariables["ShuFinalDamPerDefRatio"] = fightPowerRatioConfig.ShuFinalDamPerDefRatio;
- fightPowerVariables["WuFinalDamPerRatio"] = fightPowerRatioConfig.WuFinalDamPerRatio;
- fightPowerVariables["WuFinalDamPerDefRatio"] = fightPowerRatioConfig.WuFinalDamPerDefRatio;
- fightPowerVariables["QunFinalDamPerRatio"] = fightPowerRatioConfig.QunFinalDamPerRatio;
- fightPowerVariables["QunFinalDamPerDefRatio"] = fightPowerRatioConfig.QunFinalDamPerDefRatio;
- fightPowerVariables["FinalDamPerRatio"] = fightPowerRatioConfig.FinalDamPerRatio;
- fightPowerVariables["FinalDamPerDefRatio"] = fightPowerRatioConfig.FinalDamPerDefRatio;
- fightPowerVariables["PhyDamPerRatio"] = fightPowerRatioConfig.PhyDamPerRatio;
- fightPowerVariables["PhyDamPerDefRatio"] = fightPowerRatioConfig.PhyDamPerDefRatio;
- fightPowerVariables["MagDamPerRatio"] = fightPowerRatioConfig.MagDamPerRatio;
- fightPowerVariables["MagDamPerDefRatio"] = fightPowerRatioConfig.MagDamPerDefRatio;
- fightPowerVariables["CurePerRatio"] = fightPowerRatioConfig.CurePerRatio;
- fightPowerVariables["CurePerDefRatio"] = fightPowerRatioConfig.CurePerDefRatio;
+ fightPowerVariables[ATK_RATIO] = fightPowerRatioConfig.AtkRatio;
+ fightPowerVariables[MAX_HP_RATIO] = fightPowerRatioConfig.MaxHPRatio;
+ fightPowerVariables[DEF_RATIO] = fightPowerRatioConfig.DefRatio;
+ fightPowerVariables[STUN_RATE_RATIO] = fightPowerRatioConfig.StunRateRatio;
+ fightPowerVariables[SUPER_HIT_RATE_RATIO] = fightPowerRatioConfig.SuperHitRateRatio;
+ fightPowerVariables[COMBO_RATE_RATIO] = fightPowerRatioConfig.ComboRateRatio;
+ fightPowerVariables[MISS_RATE_RATIO] = fightPowerRatioConfig.MissRateRatio;
+ fightPowerVariables[PARRY_RATE_RATIO] = fightPowerRatioConfig.ParryRateRatio;
+ fightPowerVariables[SUCK_HP_PER_RATIO] = fightPowerRatioConfig.SuckHPPerRatio;
+ fightPowerVariables[STUN_RATE_DEF_RATIO] = fightPowerRatioConfig.StunRateDefRatio;
+ fightPowerVariables[SUPER_HIT_RATE_DEF_RATIO] = fightPowerRatioConfig.SuperHitRateDefRatio;
+ fightPowerVariables[COMBO_RATE_DEF_RATIO] = fightPowerRatioConfig.ComboRateDefRatio;
+ fightPowerVariables[MISS_RATE_DEF_RATIO] = fightPowerRatioConfig.MissRateDefRatio;
+ fightPowerVariables[PARRY_RATE_DEF_RATIO] = fightPowerRatioConfig.ParryRateDefRatio;
+ fightPowerVariables[SUCK_HP_PER_DEF_RATIO] = fightPowerRatioConfig.SuckHPPerDefRatio;
+ fightPowerVariables[NORMAL_SKILL_PER_RATIO] = fightPowerRatioConfig.NormalSkillPerRatio;
+ fightPowerVariables[NORMAL_SKILL_PER_DEF_RATIO] = fightPowerRatioConfig.NormalSkillPerDefRatio;
+ fightPowerVariables[ANGER_SKILL_PER_RATIO] = fightPowerRatioConfig.AngerSkillPerRatio;
+ fightPowerVariables[ANGER_SKILL_PER_DEF_RATIO] = fightPowerRatioConfig.AngerSkillPerDefRatio;
+ fightPowerVariables[SUPER_DAM_PER_RATIO] = fightPowerRatioConfig.SuperDamPerRatio;
+ fightPowerVariables[SUPER_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.SuperDamPerDefRatio;
+ fightPowerVariables[SHIELD_PER_RATIO] = fightPowerRatioConfig.ShieldPerRatio;
+ fightPowerVariables[SHIELD_PER_DEF_RATIO] = fightPowerRatioConfig.ShieldPerDefRatio;
+ fightPowerVariables[DOT_PER_RATIO] = fightPowerRatioConfig.DOTPerRatio;
+ fightPowerVariables[DOT_PER_DEF_RATIO] = fightPowerRatioConfig.DOTPerDefRatio;
+ fightPowerVariables[WEI_FINAL_DAM_PER_RATIO] = fightPowerRatioConfig.WeiFinalDamPerRatio;
+ fightPowerVariables[WEI_FINAL_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.WeiFinalDamPerDefRatio;
+ fightPowerVariables[SHU_FINAL_DAM_PER_RATIO] = fightPowerRatioConfig.ShuFinalDamPerRatio;
+ fightPowerVariables[SHU_FINAL_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.ShuFinalDamPerDefRatio;
+ fightPowerVariables[WU_FINAL_DAM_PER_RATIO] = fightPowerRatioConfig.WuFinalDamPerRatio;
+ fightPowerVariables[WU_FINAL_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.WuFinalDamPerDefRatio;
+ fightPowerVariables[QUN_FINAL_DAM_PER_RATIO] = fightPowerRatioConfig.QunFinalDamPerRatio;
+ fightPowerVariables[QUN_FINAL_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.QunFinalDamPerDefRatio;
+ fightPowerVariables[FINAL_DAM_PER_RATIO] = fightPowerRatioConfig.FinalDamPerRatio;
+ fightPowerVariables[FINAL_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.FinalDamPerDefRatio;
+ fightPowerVariables[PHY_DAM_PER_RATIO] = fightPowerRatioConfig.PhyDamPerRatio;
+ fightPowerVariables[PHY_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.PhyDamPerDefRatio;
+ fightPowerVariables[MAG_DAM_PER_RATIO] = fightPowerRatioConfig.MagDamPerRatio;
+ fightPowerVariables[MAG_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.MagDamPerDefRatio;
+ fightPowerVariables[CURE_PER_RATIO] = fightPowerRatioConfig.CurePerRatio;
+ fightPowerVariables[CURE_PER_DEF_RATIO] = fightPowerRatioConfig.CurePerDefRatio;
+ fightPowerVariables[PVP_DAM_PER_RATIO] = fightPowerRatioConfig.PVPDamPerRatio;
+ fightPowerVariables[PVP_DAM_PER_DEF_RATIO] = fightPowerRatioConfig.PVPDamPerDefRatio;
-
- long fightPower = (long)JaceCalculator.Calculate(fightPowerFormula, fightPowerVariables);
+ long fightPower = (long)FightPowerFormula.GetFightPower(fightPowerVariables);
#if UNITY_EDITOR
- //鎺掗櫎鍊间负0鐨勫睘鎬ц緭鍑�
- var tmpFightPowerVariables = fightPowerVariables.Where(x => x.Value > 0).ToDictionary(x => x.Key, x => x.Value);
- if (!tmpFightPowerVariables.IsNullOrEmpty())
- Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 灞炴�ф垬鍔� {fightPower} 灞炴�ф垬鍔涘弬鏁� {JsonMapper.ToJson(tmpFightPowerVariables)}");
+ //鎺掗櫎鍊间负0鐨勫睘鎬ц緭鍑�
+ // var tmpFightPowerVariables = fightPowerVariables.Where(x => x.Value > 0).ToDictionary(x => x.Key, x => x.Value);
+ // if (!tmpFightPowerVariables.IsNullOrEmpty())
+ // Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 灞炴�ф垬鍔� {fightPower} 灞炴�ф垬鍔涘弬鏁� {JsonMapper.ToJson(tmpFightPowerVariables)}");
#endif
//鍔犱笂鎶�鑳芥垬鍔�
fightPowerVariables.Clear();
- fightPowerVariables["PlayerLV"] = PlayerDatas.Instance.baseData.LV;
- fightPowerVariables["OfficialLV"] = PlayerDatas.Instance.baseData.realmLevel;
- fightPowerVariables["SkillPower"] = hero.GetSkillsFightPower();
+ fightPowerVariables[PLAYER_LV] = PlayerDatas.Instance.baseData.LV;
+ fightPowerVariables[OFFICIAL_LV] = PlayerDatas.Instance.baseData.realmLevel;
+ fightPowerVariables[SKILL_POWER] = hero.GetSkillsFightPower();
- long skillPower = (long)JaceCalculator.Calculate(skillFightPowerFormula, fightPowerVariables);
+ long skillPower = (long)FightPowerFormula.GetSkillsFightPower(fightPowerVariables);
#if UNITY_EDITOR
- Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 鎶�鑳芥垬鍔� {skillPower} 鎶�鑳藉弬鏁� {JsonMapper.ToJson(fightPowerVariables)}");
+ // Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 鎶�鑳芥垬鍔� {skillPower} 鎶�鑳藉弬鏁� {JsonMapper.ToJson(fightPowerVariables)}");
- Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 鎬绘垬鍔� {fightPower + skillPower}");
+ // Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 鎬绘垬鍔� {fightPower + skillPower}");
#endif
- return fightPower + skillPower;
+ return fightPower + skillPower;
}
+
/// <summary>
@@ -473,12 +568,13 @@
{
InitFightPowerParam();
var fightPower = CalculatePower();
-
+
InitFightPowerParam(dropindex: item.gridIndex);
var tmpFightPower = CalculatePower();
return tmpFightPower - fightPower;
}
+
// 鍗曡嫳闆勬煡鐪嬫垬鍔�
// 1. 涓婇樀鑻遍泟鏄剧ず锛屽湪涓荤嚎闃靛涓嬬殑鎴樺姏
@@ -494,11 +590,11 @@
var index = team.GetEmptyPosition();
if (index < 0)
{
- team.AddHero(heroInfo, 5);
+ team.AddHero(heroInfo, 5, false);
}
else
{
- team.AddHero(heroInfo, index);
+ team.AddHero(heroInfo, index, false);
}
}
@@ -536,7 +632,7 @@
propertyStrForDebug = "";
#endif
- foreach (var config in PlayerPropertyConfig.GetValues())
+ foreach (var config in pConfig)
{
if (config.showType < 1 || config.showType > 4)
{
@@ -544,15 +640,15 @@
}
if (config.showType == 1)
{
- tmpAttrs[config.ID] = (long)GetPropertyVaule(config.ID, hero, propertyFormula);
+ tmpAttrs[config.ID] = (long)GetPropertyVaule(config.ID, hero, 0);
}
else
{
- tmpAttrs[config.ID] = (long)GetPropertyVaule(config.ID, hero, fightPropertyFormula);
+ tmpAttrs[config.ID] = (long)GetPropertyVaule(config.ID, hero, 1);
}
}
#if UNITY_EDITOR
- Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 灞炴�т俊鎭� {propertyStrForDebug}");
+ // Debug.Log($"鎴樺姏锛氭灏咺D {hero.heroId} 灞炴�т俊鎭� {propertyStrForDebug}");
#endif
return tmpAttrs;
}
--
Gitblit v1.8.0