CombatCalculateTool.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using GameLogic.Combat.Hero;
  6. using Utility;
  7. namespace GameLogic.Combat.CombatTool
  8. {
  9. public class CombatCalculateTool : Singleton<CombatCalculateTool>
  10. {
  11. public Random Random = new Random();
  12. public CombatCalculateTool()
  13. {
  14. Random = new Random(System.DateTime.Now.Millisecond);
  15. }
  16. public int GetOdd()
  17. {
  18. return Random.Next(0, 100);
  19. }
  20. public long GetVlaueRatioForLong(long value, float ration)
  21. {
  22. long v = (value * (long)(ration * 100)) / 10000;
  23. return v;
  24. }
  25. public HarmReturnInfo Harm(CombatHeroEntity source, CombatHeroEntity target, long att, AttType attType,
  26. TriggerData triggerData, HarmType harmType = HarmType.Null)
  27. {
  28. return Harm(source, target.GetMainHotPoin<CombatHeroHitPoint>(), att,
  29. attType, triggerData, harmType);
  30. }
  31. /// <summary>
  32. /// 造成伤害
  33. /// </summary>n
  34. /// <param name="source">攻击方</param>
  35. /// <param name="target">被攻击方</param>
  36. /// <param name="att">伤害值</param>
  37. public HarmReturnInfo Harm(CombatHeroEntity source, CombatHeroHitPoint target, long att,
  38. AttType attType, TriggerData triggerData,
  39. HarmType harmType = HarmType.Default)
  40. {
  41. HarmReturnInfo harmReturnInfo = new HarmReturnInfo();
  42. harmReturnInfo.source = source;
  43. harmReturnInfo.target = target;
  44. harmReturnInfo.att = att;
  45. harmReturnInfo.attType = attType;
  46. harmReturnInfo.harmType = harmType;
  47. harmReturnInfo.triggerData = triggerData;
  48. if (target.combatHeroEntity.isDie)
  49. {
  50. return harmReturnInfo;
  51. }
  52. target.combatHeroEntity.HeroHurt(harmReturnInfo);
  53. return harmReturnInfo;
  54. }
  55. public HarmReturnInfo Recover(CombatHeroEntity source, CombatHeroHitPoint target, long att,
  56. AttType attType, HarmType harmType, TriggerData triggerData)
  57. {
  58. HarmReturnInfo harmReturnInfo = new HarmReturnInfo();
  59. harmReturnInfo.source = source;
  60. harmReturnInfo.target = target;
  61. harmReturnInfo.att = att;
  62. harmReturnInfo.attType = attType;
  63. harmReturnInfo.harmType = harmType;
  64. harmReturnInfo.triggerData = triggerData;
  65. if (target.combatHeroEntity.isDie)
  66. {
  67. return harmReturnInfo;
  68. }
  69. target.combatHeroEntity.Recover(harmReturnInfo);
  70. return harmReturnInfo;
  71. }
  72. }
  73. }