/// <summary> /// Funzione che esegue il Setup /// </summary> /// <param name="_groupCtrl"></param> public void Setup(GroupController _groupCtrl) { groupCtrl = _groupCtrl; groupShootCtrl = groupCtrl.GetGroupShootController(); groupShootCtrl.OnReloadingStart += HandleOnReloadingStart; groupShootCtrl.OnReloadingEnd += HandleOnReloadingEnd; groupCtrl.OnGroupDead += HandleOnGroupDead; canChangeSize = true; }
/// <summary> /// Override funzione che gestisce accensione/spegnimento menù /// </summary> /// <param name="_value"></param> public override void ToggleMenu(bool _value) { base.ToggleMenu(_value); if (_value) { lvlSceneCtrl = controller.GetGameManager().GetLevelManager().GetLevelSceneController(); groupCtrl = controller.GetGameManager().GetLevelManager().GetGroupController(); groupShootCtrl = groupCtrl.GetGroupShootController(); groupShootCtrl.OnReloadingStart += HandleOnReloadingStart; groupShootCtrl.OnReloadingInProgress += HandleOnReloading; groupShootCtrl.OnReloadingEnd += HandleOnReloadingEnd; LevelBossController.OnBossFightStart += HandleOnBossFightStart; LevelBossController.OnBossFightEnd += HandleOnBossFightEnd; LevelTutorialController.OnTutorialOpen += HandleOnTutorialPanelOpen; LevelTutorialController.OnTutorialClose += HandleOnTutorialPanelClosed; lvlSceneCtrl.OnChangeLevelScene += HandleOnChangeLevelScene; } else { if (groupCtrl != null) { groupShootCtrl.OnReloadingStart -= HandleOnReloadingStart; groupShootCtrl.OnReloadingInProgress -= HandleOnReloading; groupShootCtrl.OnReloadingEnd -= HandleOnReloadingEnd; groupCtrl = null; } if (lvlSceneCtrl != null) { lvlSceneCtrl.OnChangeLevelScene -= HandleOnChangeLevelScene; } LevelBossController.OnBossFightStart -= HandleOnBossFightStart; LevelBossController.OnBossFightEnd -= HandleOnBossFightEnd; LevelTutorialController.OnTutorialOpen -= HandleOnTutorialPanelOpen; LevelTutorialController.OnTutorialClose -= HandleOnTutorialPanelClosed; } }
/// <summary> /// Funzione che esegue il setup /// </summary> public void Setup() { groupMovementCtrl = GetComponent <GroupMovementController>(); groupSizeCtrl = GetComponent <GroupSizeController>(); shootCtrl = GetComponent <GroupShootController>(); groupFeedbackCtrl = GetComponent <GroupFeedbackController>(); playerInput = GetComponent <PlayerInput>(); //Feedback setup prima di tutti perchè deve gestire eventi di spawn degli agent groupFeedbackCtrl.Setup(this); AgentsSetup(); groupMovementCtrl.Setup(this); groupSizeCtrl.Setup(this); shootCtrl.Setup(this); isSetupped = true; isEnabled = false; }