1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using System;
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
- using Excel2Json;
- using Fort23.Core;
- using GameLogic.Combat.Hero;
- using Utility;
- namespace GameLogic.Combat.CombatTool
- {
- public class CombatCalculateTool : Singleton<CombatCalculateTool>
- {
- public Random Random = new Random();
- public CombatCalculateTool()
- {
- Random = new Random(System.DateTime.Now.Millisecond);
- }
- public int GetOdd()
- {
- return Random.Next(0, 100);
- }
- public int GetOdd(int min, int max)
- {
- return Random.Next(min, max);
- }
- public long GetVlaueRatioForLong(long value, float ration)
- {
- long v = (value * (long)(ration * 100)) / 10000;
- return v;
- }
- public HarmReturnInfo Harm(CombatHeroEntity source, CombatHeroEntity target, long att, AttType attType,
- TriggerData triggerData, HarmType harmType = HarmType.Null)
- {
- return Harm(source, target.GetMainHotPoin<CombatHeroHitPoint>(), att,
- attType, triggerData, harmType);
- }
- /// <summary>
- /// 造成伤害
- /// </summary>n
- /// <param name="source">攻击方</param>
- /// <param name="target">被攻击方</param>
- /// <param name="att">伤害值</param>
- public HarmReturnInfo Harm(CombatHeroEntity source, CombatHeroHitPoint target, long att,
- AttType attType, TriggerData triggerData,
- HarmType harmType = HarmType.Default)
- {
- HarmReturnInfo harmReturnInfo = new HarmReturnInfo();
- harmReturnInfo.source = source;
- harmReturnInfo.target = target;
- harmReturnInfo.att = att;
- harmReturnInfo.attType = attType;
- harmReturnInfo.harmType = harmType;
- harmReturnInfo.triggerData = triggerData;
- if (target.combatHeroEntity.isDie)
- {
- return harmReturnInfo;
- }
- int odd = GetOdd(0, 100);
- if (odd <= source.CurrCombatHeroInfo.crit+5)
- {
- harmReturnInfo.harmType |= HarmType.BaoJi;
- att += GetVlaueRatioForLong(att, source.CurrCombatHeroInfo.critDamage.Value);
- }
- harmReturnInfo.att = att;
- target.combatHeroEntity.HeroHurt(harmReturnInfo);
- return harmReturnInfo;
- }
- public HarmReturnInfo Recover(CombatHeroEntity source, CombatHeroHitPoint target, long att,
- AttType attType, HarmType harmType, TriggerData triggerData)
- {
- HarmReturnInfo harmReturnInfo = new HarmReturnInfo();
- harmReturnInfo.source = source;
- harmReturnInfo.target = target;
- harmReturnInfo.att = att;
- harmReturnInfo.attType = attType;
- harmReturnInfo.harmType = harmType;
- harmReturnInfo.triggerData = triggerData;
- if (target.combatHeroEntity.isDie)
- {
- return harmReturnInfo;
- }
- target.combatHeroEntity.Recover(harmReturnInfo);
- return harmReturnInfo;
- }
- }
- }
|