// Start is called before the first frame update public void ExecuteAbility(IAbility ability) { switch (ability.abilityType) { case AbilityType.Movement: movementController.ActivateMovementAbility(((MovementAbility)ability).movementState, true); break; case AbilityType.ObjectManipulation: objManipulationController.UpdatePickAbility(((ObjectManipulation)ability).manipulationSate, true); break; case AbilityType.Proofing: proofingController.ToggleProofing(((ProofingAbility)ability).proofingType, true); break; case AbilityType.Radar: radarController.isRadarOn = true; break; case AbilityType.Recharge: //TODO ADD ENERGY break; } }