From 7f493f682503f5186308de7b8f74b5b49233cfe4 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Thu, 2 Nov 2023 11:51:31 +0800 Subject: +init --- GameCode/StabMA.cs | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 GameCode/StabMA.cs (limited to 'GameCode/StabMA.cs') diff --git a/GameCode/StabMA.cs b/GameCode/StabMA.cs new file mode 100644 index 0000000..fe34737 --- /dev/null +++ b/GameCode/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); + } +} -- cgit v1.1-26-g67d0