diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/StabMA.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/StabMA.cs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/StabMA.cs b/Thronefall_v1.0/Decompile/StabMA.cs new file mode 100644 index 0000000..fe34737 --- /dev/null +++ b/Thronefall_v1.0/Decompile/StabMA.cs @@ -0,0 +1,71 @@ +using UnityEngine; + +public class StabMA : ManualAttack +{ + public float maximumCooldownTime = 15f; + + public float minimumCooldownPercentage = 0.2f; + + private int targetsStabbed; + + private AudioSet.ClipArray caSuccessfulHit; + + private AudioSet.ClipArray caFailedHit; + + public int TargetsStabeed => targetsStabbed; + + public override void Start() + { + base.Start(); + caSuccessfulHit = audioSet.PlayerBowStab; + caFailedHit = audioSet.PlayerBowStabMiss; + } + + public override void Attack() + { + TaggedObject taggedObject = FindAttackTarget(_choosePreferredTargetIfPossible: true); + Hp hp = null; + if ((bool)taggedObject) + { + hp = taggedObject.Hp; + cooldownTime = maximumCooldownTime * (minimumCooldownPercentage + hp.HpPercentage * (1f - minimumCooldownPercentage)); + cooldown = cooldownTime; + } + float num = 0f; + if ((bool)hp) + { + num = hp.HpValue; + } + weapon.Attack(base.transform.position + spawnAttackHeight * Vector3.up, hp, transformForAttackDirection.forward, myTaggedObj, base.AttackDamageMultiplyer); + if ((bool)hp) + { + if (num > hp.HpValue) + { + StabSuccessful(); + } + else + { + StabMissed(); + } + } + else if (num > 0f) + { + StabSuccessful(); + } + else + { + StabMissed(); + } + } + + private void StabSuccessful() + { + audioManager.PlaySoundAsOneShot(caSuccessfulHit, 1f, Random.Range(0.9f, 1.1f), audioSet.mixGroupFX, 5); + targetsStabbed++; + } + + private void StabMissed() + { + audioManager.PlaySoundAsOneShot(caFailedHit, 1f, Random.Range(0.9f, 1.1f), audioSet.mixGroupFX, 5); + } +} |