Exemplo n.º 1
0
    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());
    }
Exemplo n.º 2
0
    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);
    }