123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- using System;
- using ExtensionMethods;
- using UnityEngine;
- public class HurtDataTools
- {
- public static bool Counterattack(int damage, bool groundOnly, ref bool actionInterrupt, ref EnemyAttribute eAttr, ref EnemyBaseAction action)
- {
- if (!eAttr.canCounterAttack)
- {
- return false;
- }
- if (damage == 0)
- {
- return false;
- }
- eAttr.currentCounterAttackValue += damage;
- bool flag = (float)UnityEngine.Random.Range(0, 100) < eAttr.currentCounterAttackProbPercentage;
- bool flag2 = eAttr.currentCounterAttackValue >= eAttr.counterAttack && flag && groundOnly && !action.IsInWeakSta();
- if (flag2)
- {
- eAttr.currentCounterAttackValue = 0;
- eAttr.currentCounterAttackProbPercentage = (float)eAttr.counterAttackProbPercentage;
- eAttr.currentActionInterruptPoint = 0;
- actionInterrupt = false;
- }
- else
- {
- eAttr.currentCounterAttackProbPercentage += (float)eAttr.counterAttackProbPercentage;
- }
- return flag2;
- }
- public static void AddActionInterruptPoint(int damage, string atkName, ref EnemyAttribute eAttr, ref bool actionInterrupt)
- {
- if (!eAttr.hasActionInterrupt)
- {
- return;
- }
- if (atkName.IsInArray(PlayerAtkType.LightAttack))
- {
- return;
- }
- int currentActionInterruptPoint = eAttr.currentActionInterruptPoint;
- eAttr.currentActionInterruptPoint += damage;
- actionInterrupt = (currentActionInterruptPoint < eAttr.actionInterruptPoint && eAttr.currentActionInterruptPoint >= eAttr.actionInterruptPoint);
- }
- public static bool CalculateMonsterDefence(int damage, ref float defenceTrigger, ref EnemyBaseAction action, ref EnemyAttribute eAttr)
- {
- if (action.IsInWeakSta())
- {
- return false;
- }
- if (action.IsInDefenceState())
- {
- return false;
- }
- if (eAttr.monsterDefence <= 0)
- {
- return false;
- }
- if (damage == 0)
- {
- return false;
- }
- eAttr.currentDefence += damage;
- eAttr.startDefence = (eAttr.currentDefence >= eAttr.monsterDefence);
- bool flag = eAttr.startDefence && eAttr.isOnGround;
- bool flag2 = false;
- if (flag)
- {
- flag2 = ((float)UnityEngine.Random.Range(0, 100) < defenceTrigger);
- if (!flag2)
- {
- defenceTrigger += 20f;
- }
- }
- return flag && flag2;
- }
- public static bool CalculateMonsterSideStep(int damage, ref float sideStepTrigger, ref EnemyBaseAction action, ref EnemyAttribute eAttr)
- {
- if (action.IsInWeakSta())
- {
- return false;
- }
- if (eAttr.monsterSideStep <= 0)
- {
- return false;
- }
- if (damage == 0)
- {
- return false;
- }
- eAttr.currentSideStep += damage;
- bool flag = true;
- if (!eAttr.sideStepInAir)
- {
- flag = eAttr.isOnGround;
- }
- bool flag2 = eAttr.currentSideStep >= eAttr.monsterSideStep && flag;
- bool flag3 = false;
- if (flag2)
- {
- flag3 = ((float)UnityEngine.Random.Range(0, 100) < sideStepTrigger);
- if (!flag3)
- {
- sideStepTrigger += 20f;
- }
- }
- return flag2 && flag3;
- }
- public static int GetAtkLevel(string atkName)
- {
- if (atkName.IsInArray(PlayerAtkType.AirAttack))
- {
- return R.Player.Enhancement.AirAttack;
- }
- if (atkName.IsInArray(PlayerAtkType.AirAvatarAttack))
- {
- return R.Player.Enhancement.AirAvatarAttack;
- }
- if (atkName == PlayerAtkType.AirCombo1)
- {
- return R.Player.Enhancement.AirCombo1;
- }
- if (atkName == PlayerAtkType.AirCombo2)
- {
- return R.Player.Enhancement.AirCombo2;
- }
- if (atkName.IsInArray(PlayerAtkType.Attack))
- {
- return R.Player.Enhancement.Attack;
- }
- if (atkName.IsInArray(PlayerAtkType.AvatarAttack))
- {
- return R.Player.Enhancement.AvatarAttack;
- }
- if (atkName == PlayerAtkType.BladeStorm)
- {
- return R.Player.Enhancement.BladeStorm;
- }
- if (atkName == PlayerAtkType.Charging)
- {
- return R.Player.Enhancement.Charging;
- }
- if (PlayerAtkType.Chase == atkName)
- {
- return R.Player.Enhancement.Chase;
- }
- if (atkName == PlayerAtkType.Combo1)
- {
- return R.Player.Enhancement.Combo1;
- }
- if (atkName.IsInArray(PlayerAtkType.Combo2))
- {
- return R.Player.Enhancement.Combo2;
- }
- if (PlayerAtkType.HitGround == atkName)
- {
- return R.Player.Enhancement.HitGround;
- }
- if (PlayerAtkType.Knockout == atkName)
- {
- return R.Player.Enhancement.Knockout;
- }
- if (PlayerAtkType.ShadeAttack == atkName)
- {
- return R.Player.Enhancement.ShadeAttack;
- }
- if (atkName.IsInArray(PlayerAtkType.TripleAttack))
- {
- return R.Player.Enhancement.TripleAttack;
- }
- if (PlayerAtkType.UpperChop == atkName)
- {
- return R.Player.Enhancement.UpperChop;
- }
- return 0;
- }
- public static bool ChaseAttack()
- {
- int num = UnityEngine.Random.Range(0, 100);
- return num <= 4 && R.Player.Enhancement.Chase > 0;
- }
- public static void FlashHPRecover()
- {
- float num = 0f;
- int flashAttack = R.Player.Enhancement.FlashAttack;
- if (flashAttack != 1)
- {
- if (flashAttack != 2)
- {
- if (flashAttack == 3)
- {
- num = 0.07f;
- }
- }
- else
- {
- num = 0.05f;
- }
- }
- else
- {
- num = 0.03f;
- }
- R.Player.Attribute.currentHP += (int)((float)R.Player.Attribute.maxHP * num);
- }
- }
|