Exemplo n.º 1
0
    /// <summary>
    /// Instantiates the cancel button.
    /// </summary>
    /// <returns>The cancel button.</returns>
    /// <param name="container">Container.</param>
    /// <param name="numberOfButtons">Number of buttons.</param>
    /// <param name="index">Index.</param>
    /// <param name="iconPath">Icon path.</param>
    private RadialButtonController InstantiateCancelButton(RadialButtonContainer container, int numberOfButtons, int index, string iconPath)
    {
        RadialButtonController.RadialButtonType radialButtonType = RadialButtonController.RadialButtonType.CANCEL;
        RadialButtonController cancelButton = InstantiateButton(container, numberOfButtons, index, iconPath, radialButtonType, radialButtonType.ToString());

        return(cancelButton);
    }
Exemplo n.º 2
0
    /// <summary>
    /// Instantiates the item buttons.
    /// </summary>
    public void InstantiateItemButtons()
    {
        if (_combatController.CurrentRadialButtonContainer != null)
        {
            _popupText.text = "";
            StartCoroutine(_combatController.CurrentRadialButtonContainer.ScaleButtonsIn());
        }

        RadialButtonContainer radialButtonContainer = InstantiateRadialButtonContainer();
        List <Item>           items = ItemManager.Instance.GlobalInventory.GetConsumables();
        int numberOfButtons         = items.Count + 1;

        for (int index = 0; index < items.Count; index++)
        {
            Item item = items [index];
            RadialButtonController button = InstantiateButton(radialButtonContainer, numberOfButtons, index, item.IconPath, RadialButtonController.RadialButtonType.ITEM_USE, item.Name);
            button.Item = item;
            radialButtonContainer.Add(button);
        }
        RadialButtonController cancelButton = InstantiateCancelButton(radialButtonContainer, numberOfButtons, items.Count, _combatOptions [4]);

        radialButtonContainer.Add(cancelButton);

        SetRadialButtonContainer(radialButtonContainer);

        IsRootMenuOpen = false;
    }
Exemplo n.º 3
0
    /// <summary>
    /// Instantiates the buttons.
    /// </summary>
    public void InstantiateRootButtons()
    {
        RadialButtonContainer radialButtonContainer;

        // If there is already one, use that one
        if (_combatController.CurrentRadialButtonContainer != null)
        {
            radialButtonContainer = _combatController.CurrentRadialButtonContainer;
            radialButtonContainer.gameObject.SetActive(true);
            StartCoroutine(radialButtonContainer.ScaleButtonsOut());
        }
        else
        {
            radialButtonContainer = InstantiateRadialButtonContainer();

            foreach (var combatOption in _combatOptions)
            {
                RadialButtonController.RadialButtonType radialButtonType = (RadialButtonController.RadialButtonType)combatOption.Key;
                string buttonName   = radialButtonType.ToString();
                int    abilityIndex = combatOption.Key;
                string iconPath     = combatOption.Value;

                //TODO: Remove this silly hack for abilities
                if (combatOption.Key == 2)
                {
                    string abilityIcon        = "";
                    string abilityIconPreffix = combatOption.Value;

                    if (_unit.UnitData.AbilityCollection.HasTalent)
                    {
                        abilityIcon = TALENT_ICON;
                        buttonName  = "Talent";
                    }
                    else if (_unit.UnitData.AbilityCollection.HasMagic)
                    {
                        abilityIcon = MAGIC_ICON;
                        buttonName  = "Magic";
                    }

                    abilityIcon = Path.Combine(abilityIconPreffix, abilityIcon);
                    iconPath    = abilityIcon;
                }
                RadialButtonController button = InstantiateButton(radialButtonContainer, _combatOptions.Count, abilityIndex, iconPath, radialButtonType, buttonName);

                //TODO: Another stupid hack to classify attacks as abilities
                if (combatOption.Key == 0)
                {
                    button.Ability = _unit.UnitData.AbilityCollection.GetAttackAbility();
                }

                radialButtonContainer.Add(button);
            }
        }

        SetRadialButtonContainer(radialButtonContainer);

        IsRootMenuOpen = true;
    }
    /// <summary>
    /// Scales the buttons out.
    /// </summary>
    public IEnumerator ScaleButtonsOut()
    {
        int count = _radialButtonControllers.Count;

        for (int index = 0; index < count; index++)
        {
            RadialButtonController button = _radialButtonControllers [index];
            Vector3 position = RadialMenuController.GetButtonPosition(count, index);
            StartCoroutine(button.ScaleButtonOut(position));
        }
        yield return(null);
    }
Exemplo n.º 5
0
    /// <summary>
    /// Instantiates the button.
    /// </summary>
    /// <returns>The button.</returns>
    /// <param name="radialButtonContainer">Radial button container.</param>
    /// <param name="numberOfButtons">Number of buttons.</param>
    /// <param name="index">Index.</param>
    /// <param name="iconPath">Icon path.</param>
    /// <param name="radialButtonType">Radial button type.</param>
    /// <param name="name">Name.</param>
    private RadialButtonController InstantiateButton(
        RadialButtonContainer radialButtonContainer,
        int numberOfButtons,
        int index,
        string iconPath,
        RadialButtonController.RadialButtonType radialButtonType,
        string name)
    {
        Vector3 buttonPosition = GetButtonPosition(numberOfButtons, index);
        RadialButtonController radialButtonController = RadialButtonController.InstantiateInstance(radialButtonContainer);

        radialButtonController.Initialize(iconPath, radialButtonType, GetFirstLetterToUpper(name), buttonPosition);

        return(radialButtonController);
    }
Exemplo n.º 6
0
    /// <summary>
    /// Instantiates the ability buttons.
    /// </summary>
    public void InstantiateAbilityButtons()
    {
        if (_combatController.CurrentRadialButtonContainer != null)
        {
            _popupText.text = "";
            StartCoroutine(_combatController.CurrentRadialButtonContainer.ScaleButtonsIn());
        }

        RadialButtonContainer radialButtonContainer = InstantiateRadialButtonContainer();

        // Get abilities based off of type
        var      abilities = new List <Ability> ();
        UnitData unitData  = _unit.UnitData;

        if (unitData.AbilityCollection.HasTalent)
        {
            abilities = unitData.AbilityCollection.GetTalentAbilities();
        }
        else if (unitData.AbilityCollection.HasMagic)
        {
            abilities = unitData.AbilityCollection.GetMagicAbilities();
        }

        int numberOfButtons = abilities.Count + 1;

        for (int index = 0; index < abilities.Count; index++)
        {
            Ability ability = abilities [index];
            RadialButtonController button = InstantiateButton(radialButtonContainer, numberOfButtons, index, ability.IconPath, RadialButtonController.RadialButtonType.ABILITY_USE, ability.Name);
            button.Ability = ability;
            radialButtonContainer.Add(button);
        }
        RadialButtonController cancelButton = InstantiateCancelButton(radialButtonContainer, numberOfButtons, abilities.Count, _combatOptions [4]);

        radialButtonContainer.Add(cancelButton);

        SetRadialButtonContainer(radialButtonContainer);

        IsRootMenuOpen = false;
    }
 /// <summary>
 /// Add the specified radialButtonController.
 /// </summary>
 /// <param name="radialButtonController">Radial button controller.</param>
 public void Add(RadialButtonController radialButtonController)
 {
     _radialButtonControllers.Add(radialButtonController);
 }