diff options
| author | chai <215380520@qq.com> | 2023-11-02 11:51:31 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2023-11-02 11:51:31 +0800 |
| commit | 7f493f682503f5186308de7b8f74b5b49233cfe4 (patch) | |
| tree | 8a91e2056bc79788ee4735dce88b8d516ba12beb /GameCode/BuildingFXProcessor.cs | |
+init
Diffstat (limited to 'GameCode/BuildingFXProcessor.cs')
| -rw-r--r-- | GameCode/BuildingFXProcessor.cs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/GameCode/BuildingFXProcessor.cs b/GameCode/BuildingFXProcessor.cs new file mode 100644 index 0000000..05ab937 --- /dev/null +++ b/GameCode/BuildingFXProcessor.cs @@ -0,0 +1,65 @@ +using System.Collections; +using MoreMountains.Feedbacks; +using UnityEngine; + +public class BuildingFXProcessor : MonoBehaviour +{ + public BuildSlot targetBuilding; + + public Hp targetHp; + + public MMF_Player onBuildFX; + + public MMF_Player onParentBuildFX; + + public MMF_Player onUpgradeFX; + + public MMF_Player onParentUpgradeFX; + + public MMF_Player onReviveFX; + + private void Start() + { + targetBuilding.OnUpgrade.AddListener(OnBuildingUpgrade); + targetBuilding.OnParentUpgrade.AddListener(OnParentBuildingUpgrade); + if ((bool)targetHp) + { + targetHp.OnRevive.AddListener(OnBuildingRevive); + } + } + + private void OnBuildingUpgrade() + { + if (targetBuilding.Level == 1) + { + onBuildFX.PlayFeedbacks(); + } + else if (targetBuilding.Level > 1) + { + onUpgradeFX.PlayFeedbacks(); + } + } + + private void OnParentBuildingUpgrade() + { + StartCoroutine(PlayDelayedParentUpgradeFeedback()); + } + + private IEnumerator PlayDelayedParentUpgradeFeedback() + { + yield return null; + if (targetBuilding.Level == 1) + { + onParentBuildFX.PlayFeedbacks(); + } + else if (targetBuilding.Level > 1) + { + onParentUpgradeFX.PlayFeedbacks(); + } + } + + private void OnBuildingRevive() + { + onReviveFX.PlayFeedbacks(); + } +} |
