diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
| commit | 8b1fc7063b387542803c6bc214ccf8acb32870bd (patch) | |
| tree | d310eb99872c8215f1c1f67731ec21f0915cd778 /Thronefall_1_0/Decompile/StabMA.cs | |
| parent | 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_0/Decompile/StabMA.cs')
| -rw-r--r-- | Thronefall_1_0/Decompile/StabMA.cs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Thronefall_1_0/Decompile/StabMA.cs b/Thronefall_1_0/Decompile/StabMA.cs new file mode 100644 index 0000000..fe34737 --- /dev/null +++ b/Thronefall_1_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); + } +} |
