using UnityEngine; using wildlogicgames; namespace DoomBreakers { public class Barrel : ContainerBase { private Transform _transform2; private bool _destroyFlag2; public bool _optimizeFlag; public override void Awake() { Initialize(this.GetComponent(), this.GetComponent(), ContainerAnimatorController.Container_Barrel); } public override void Initialize(SpriteRenderer spriteRenderer, Animator animator, ContainerAnimatorController animController) { base.Initialize(spriteRenderer, animator, animController); _transform2 = this.transform; //Resources/ContainerAnimControllers/Barrel/Barrel.controller _containerAnimator = new ContainerAnimator(animator, "ContainerAnimControllers", "Barrel", "Barrel"); _timer = this.gameObject.AddComponent(); _timer.Setup("Barrel Timer"); _destroyFlag2 = false; _optimizeFlag = false; _containerHealth = 25; } public void IsHit(int playerId, int faceDir)// => _containerAnimator.PlayAnimation(ContainerAnimationState.Container_Hit); { _containerHealth -= 1; if(_containerHealth > 0) { _containerBehaviour.IsHit(2, 4,faceDir); ObjectPooler._instance.InstantiateForPlayer(PrefabID.Prefab_DustHitFX, _transform2, playerId, faceDir); AudioEventManager.PlayPropSFX(PropSFXID.PropHitSFX); _containerAnimator.PlayAnimation(ContainerAnimationState.Container_Hit); _timer.StartTimer(0.2f); } else { if (_destroyFlag2) return; AudioEventManager.PlayPropSFX(PropSFXID.PropDestroySFX); _containerAnimator.PlayAnimation(ContainerAnimationState.Container_Destroy); _timer.Reset(); _timer.StartTimer(1.0f); _destroyFlag2 = true; } } public override void Update()// => base.Update(); { //base.Update();//now empty. if (_optimizeFlag) return; _containerBehaviour.UpdateContainerMovement(); if(_destroyFlag2) _containerAnimator.PlayAnimation(ContainerAnimationState.Container_Destroy); if (_timer.HasTimerFinished()) { if (_containerHealth > 0 && !_destroyFlag2) _containerAnimator.PlayAnimation(ContainerAnimationState.Container_Idle); else { Destroy(0); } } } } }