|
@@ -6,9 +6,12 @@ using Excel2Json;
|
|
|
using Fort23.Core;
|
|
|
using Fort23.UTool;
|
|
|
using GameLogic.Combat.Hero;
|
|
|
+using GameLogic.Combat.Skill;
|
|
|
using GameLogic.Player;
|
|
|
+using UnityEngine;
|
|
|
using Utility;
|
|
|
using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
|
|
|
+using Random = System.Random;
|
|
|
|
|
|
namespace GameLogic.Combat.CombatTool
|
|
|
{
|
|
@@ -231,6 +234,133 @@ namespace GameLogic.Combat.CombatTool
|
|
|
default: return 5; // 无效元素
|
|
|
}
|
|
|
}
|
|
|
+ public int GetRestrained(WuXingType WuXingType,WuXingType targetWuXingType)
|
|
|
+ {
|
|
|
+ int c = 0;
|
|
|
+ if (WuXingType.HasFlag(WuXingType.Gold))
|
|
|
+ {
|
|
|
+ if (targetWuXingType.HasFlag(WuXingType.Wood))
|
|
|
+ {
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (WuXingType.HasFlag(WuXingType.Wood))
|
|
|
+ {
|
|
|
+ if (targetWuXingType.HasFlag(WuXingType.Earth))
|
|
|
+ {
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (WuXingType.HasFlag(WuXingType.Water))
|
|
|
+ {
|
|
|
+ if (targetWuXingType.HasFlag(WuXingType.Fire))
|
|
|
+ {
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (WuXingType.HasFlag(WuXingType.Fire))
|
|
|
+ {
|
|
|
+ if (targetWuXingType.HasFlag(WuXingType.Gold))
|
|
|
+ {
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (WuXingType.HasFlag(WuXingType.Earth))
|
|
|
+ {
|
|
|
+ if (targetWuXingType.HasFlag(WuXingType.Wood))
|
|
|
+ {
|
|
|
+ c++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return c;
|
|
|
+ }
|
|
|
+ public void FaBaoPengZhuang(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b)
|
|
|
+ {
|
|
|
+ CombatHeroEntity heroEntityA= a.MagicWeaponControl.combatHeroEntity;
|
|
|
+ CombatHeroEntity heroEntityB = b.MagicWeaponControl.combatHeroEntity;
|
|
|
+ int myRestrained = GetRestrained(a.WuXingType, b.WuXingType);
|
|
|
+ int targetRestrained = GetRestrained(b.WuXingType,a.WuXingType);
|
|
|
+ float lg_a = heroEntityA.CurrCombatHeroInfo.GetWuXingShuXing(a.WuXingType);
|
|
|
+ float lg_b = heroEntityB.CurrCombatHeroInfo.GetWuXingShuXing(b.WuXingType);
|
|
|
+ int c = myRestrained - targetRestrained;
|
|
|
+ long myHp = (long)(a.HpBl);
|
|
|
+ long targetHp = (long)(b.HpBl);
|
|
|
+
|
|
|
+ float p2 = 100;
|
|
|
+ if (c < 0) //a被压制
|
|
|
+ {
|
|
|
+ p2 = Mathf.Max(100, Mathf.Min(200, 30 + lg_b - lg_a));
|
|
|
+ targetHp = (long)(targetHp * p2);
|
|
|
+ }
|
|
|
+ else if (c > 0)
|
|
|
+ {
|
|
|
+ p2 = Mathf.Max(100, Mathf.Min(200, 30 + lg_a - lg_b));
|
|
|
+ myHp = (long)(myHp * p2);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (myHp > targetHp)
|
|
|
+ {
|
|
|
+ myHp -= targetHp;
|
|
|
+ a.HpBl = myHp;
|
|
|
+ }
|
|
|
+ else if (myHp < targetHp)
|
|
|
+ {
|
|
|
+ targetHp -= myHp;
|
|
|
+ b.HpBl = targetHp;
|
|
|
+ }
|
|
|
+ else if (myHp == targetHp)
|
|
|
+ {
|
|
|
+ a.HpBl = 0;
|
|
|
+ b.HpBl = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void GongFaPengZhuang(SkillFeaturesData a, SkillFeaturesData b, CombatHeroEntity heroEntityA,
|
|
|
+ CombatHeroEntity heroEntityB)
|
|
|
+ {
|
|
|
+ int myRestrained = GetRestrained(a.WuXingType, b.WuXingType);
|
|
|
+ int targetRestrained = GetRestrained(b.WuXingType,a.WuXingType);
|
|
|
+ float lg_a = heroEntityA.CurrCombatHeroInfo.GetWuXingShuXing(a.WuXingType);
|
|
|
+ float lg_b = heroEntityB.CurrCombatHeroInfo.GetWuXingShuXing(b.WuXingType);
|
|
|
+ int c = myRestrained - targetRestrained;
|
|
|
+ long myHp = (long)(a.hp);
|
|
|
+ long targetHp = (long)(b.hp);
|
|
|
+
|
|
|
+ float p2 = 100;
|
|
|
+ if (c < 0) //a被压制
|
|
|
+ {
|
|
|
+ p2 = Mathf.Max(100, Mathf.Min(200, 30 + lg_b - lg_a));
|
|
|
+ targetHp = (long)(targetHp * p2);
|
|
|
+ }
|
|
|
+ else if (c > 0)
|
|
|
+ {
|
|
|
+ p2 = Mathf.Max(100, Mathf.Min(200, 30 + lg_a - lg_b));
|
|
|
+ myHp = (long)(myHp * p2);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (myHp > targetHp)
|
|
|
+ {
|
|
|
+ myHp -= targetHp;
|
|
|
+ a.hp = myHp;
|
|
|
+ }
|
|
|
+ else if (myHp < targetHp)
|
|
|
+ {
|
|
|
+ targetHp -= myHp;
|
|
|
+ b.hp = targetHp;
|
|
|
+ }
|
|
|
+ else if (myHp == targetHp)
|
|
|
+ {
|
|
|
+ a.hp = 0;
|
|
|
+ b.hp = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 是否相生
|