// Start is called before the first frame update void Start() { mainCharacterRigidbody = GetComponent <Rigidbody2D>(); mainCharacterFeetCollider = GetComponent <BoxCollider2D>(); abilities = FindObjectOfType <EquippedAbilitySelector>(); activeAbility = Instantiate(abilities.GetActiveAbility(), gameObject.transform); }
private void SetAbilityLoadout(string[] abilityLoadout) { EquippedAbilitySelector abilitySet = FindObjectOfType <EquippedAbilitySelector>(); abilitySet.ClearAbilities(); foreach (string abilityKey in abilityLoadout) { if (abilityKey != null) { GameObject abilityPrefab = Resources.Load(ABILITIES_RELATIVE_PATH + abilityKey) as GameObject; Ability ability; switch (abilityKey) { case GameKeys.ABILITY_SPARK_KEY: ability = abilityPrefab.GetComponent <Spark>(); break; case GameKeys.ABILITY_SPLITTER_KEY: ability = abilityPrefab.GetComponent <Splitter>(); break; default: throw new AbilityNotFoundException("Ability " + abilityKey + " not found."); } ability.Initialize(); abilitySet.addAbility(ability); } else { Debug.LogError("Ability not found."); throw new AbilityNotFoundException("Ability not found."); } } abilitySet.SelectAbility(0); }