private AbilityBase[] validate(AbilityBase[] abilities) { List <AbilityBase> validAbilities = new List <AbilityBase>(); foreach (AbilityBase interaction in abilities) { if (interaction == null) { Debug.LogWarning("Ability is null on " + gameObject.name); continue; } AbilityBase instance = Instantiate(interaction) as AbilityBase; if (instance.Initialize(gameObject)) { validAbilities.Add(instance); } else { Destroy(instance); Debug.LogWarning("Failed to initialize " + interaction.ToString() + " on " + gameObject.name); } } return(validAbilities.ToArray()); }
void Start() { buttons = new List <UIIconButton>(); if (character.mannequin) { foreach (CombatItem item in character.mannequin.GetEquippedCombatItems()) { UICombatItemIconButton combatItemButton = Instantiate(UIFactory.uiCombatItemButton); combatItemButton.combatItem = item; combatItemButton.menu = menu; combatItemButton.label = label; buttons.Add(combatItemButton); } } if (character.unarmed) { UICombatItemIconButton combatItemButton = Instantiate(UIFactory.uiCombatItemButton); combatItemButton.combatItem = character.unarmed; combatItemButton.menu = menu; combatItemButton.label = label; combatItemButton.customLabel = "Self"; buttons.Add(combatItemButton); } if (includeWalk) { AbilityBase walkAbility = Instantiate(CombatController.walkAbility); walkAbility.Initialize(character.gameObject); UIAbilityIconButton walkButton = Instantiate(UIFactory.uiAbilityButton); walkButton.ability = walkAbility; walkButton.menu = menu; walkButton.label = label; buttons.Add(walkButton); } if (includeDoNothing) { UIIconButton buttonDoNothing = Instantiate(UIFactory.uiIconButton); buttonDoNothing.SetIconSprite(iconDoNothing); buttonDoNothing.onSelect.AddListener(() => label.text = labelDoNothing); buttonDoNothing.onClick.AddListener(() => doNothing()); buttons.Add(buttonDoNothing); } for (int i = 0; i < buttons.Count; i++) { buttons[i].transform.SetParent(buttonParent); buttons[i].neighborLeft = buttons[NeverdawnUtility.RepeatIndex(i - 1, buttons.Count)]; buttons[i].neighborRight = buttons[NeverdawnUtility.RepeatIndex(i + 1, buttons.Count)]; } }
public override void StartCombatTurn() { base.StartCombatTurn(); combatPage = Instantiate(UIFactory.uiQuickMenuCombatPrefab); combatPage.character = character; combatPage.includeWalk = true; combatPage.includeDoNothing = true; characterMenu.Open(combatPage); AbilityBase walkAbility = Instantiate(CombatController.walkAbility); walkAbility.Initialize(character.gameObject); UIQuickMenuCastAbility instance = Instantiate(UIFactory.uiQuickMenuCastAbilityPrefab); instance.ability = walkAbility; characterMenu.NavigateInto(instance); CastAbility(walkAbility); }