/// <summary> /// Funzione che esegue il Setup /// </summary> /// <param name="_bossCtrl"></param> public void Setup(BossControllerBase _bossCtrl) { bossLifeCtrl = _bossCtrl.GetBossLifeController(); bossMaxLife = bossLifeCtrl.GetMaxBossLife(); bossLifeBar.value = 1; bossLifeCtrl.OnBossTakeDamage += HandleOnBossTakeDamage; }
/// <summary> /// Funzione che gestisce l'evento di fine della bossfight /// </summary> /// <param name="_bossCtrl"></param> /// /// <param name="_win"></param> private void HandleOnBossFightEnd(BossControllerBase _bossCtrl, bool _win) { ToggleBossPanel(false); if (_win) { ToggleWinPanel(true); } }
/// <summary> /// Funzione che gestisce l'evento di morte del Boss /// </summary> /// <param name="_deadBoss"></param> private void HandleOnBossDead(BossControllerBase _deadBoss) { if (currentBoss != null && _deadBoss == currentBoss) { currentBoss.OnBossDead -= HandleOnBossDead; OnBossFightEnd?.Invoke(currentBoss, true); currentBoss = null; } }
/// <summary> /// Funzione che gestisce l'evento di fine boss fight /// </summary> /// <param name="arg1"></param> /// <param name="arg2"></param> private void HandleOnBossFightEnd(BossControllerBase _bossCtrl, bool _win) { if (_win) { if (endBossCutsceneDirector != null) { EndBossCutscene(); } } }
/// <summary> /// Funzione che gestisce l'evento di trigger del Boss /// </summary> /// <param name="_bossToEnable"></param> private void HandleOnBossTriggered(BossControllerBase _bossToEnable) { if (_bossToEnable != null) { currentBoss = _bossToEnable; currentBoss.OnBossDead += HandleOnBossDead; currentBoss.StartBoss(); OnBossFightStart?.Invoke(currentBoss); } }
private void GoToPhase3(InputAction.CallbackContext _context) { BossControllerBase bossCtrl = FindObjectOfType <BossControllerBase>(); if (bossCtrl != null && bossCtrl.IsSetuppedAndEnabled()) { StateMachineBase bossSM = bossCtrl.GetComponent <StateMachineBase>(); if (bossSM != null) { bossSM.GoToState("Phase3"); } } }
/// <summary> /// Funzione che gestisce l'evento di morte del gruppo /// </summary> private void HandleOnGroupDead() { if (currentBoss != null) { currentBoss.StopBoss(); } if (groupCtrl != null) { groupCtrl.OnGroupDead -= HandleOnGroupDead; } OnBossFightEnd?.Invoke(currentBoss, false); currentBoss = null; }
/// <summary> /// Funzione di Setup /// </summary> public void Setup(BossControllerBase _bossCtrl) { bossCtrl = _bossCtrl; currentLife = bossStartLife; }
/// <summary> /// Funzione che gestisce l'evento dell'inizio della bossfight /// </summary> /// <param name="obj"></param> private void HandleOnBossFightStart(BossControllerBase _bossCtrl) { ToggleBossPanel(true); bossPanel.Setup(_bossCtrl); }
/// <summary> /// Funzione di Setup /// </summary> /// <param name="_bossCtrl"></param> public void Setup(BossControllerBase _bossCtrl) { bossCtrl = _bossCtrl; rb = GetComponent <Rigidbody>(); }