Ejemplo n.º 1
0
    void Start()
    {
        playerObj = GameObject.Find("Player");
        player    = playerObj.GetComponent <Player>();

        for (int i = 0; i < Manager.instance.abilities.Count; i++)
        {
            availableAbilities.Add(Instantiate(Manager.instance.abilities[i], Manager.instance.abilities[i].transform.position, Quaternion.identity));
        }

        for (int i = 0; i < availableAbilities.Count; i++)
        {
            AbilityTemplate ability = availableAbilities[i].GetComponent <AbilityTemplate>();
            castButtons[i].image.sprite = ability.icon;
            castButtons[i].GetComponent <CastingButton>().cooldownTime = ability.cooldown;
            castButtons[i].onClick.AddListener(() => { ability.Cast(); });
        }

        foreach (Button button in castButtons)
        {
            if (button.GetComponent <Image>().sprite == null)
            {
                button.gameObject.SetActive(false);
            }
        }
    }
Ejemplo n.º 2
0
    public Ability(AbilityTemplate template, Entity owner)
    {
        Name                   = template.Name;
        Attribute              = template.Attribute;
        AttributePrereq        = template.AttributePrereq;
        RequiresBackground     = template.RequiresBackground;
        Description            = template.Description;
        RequiresBodyPart       = template.RequiresBodyPart;
        RequiresProperty       = template.RequiresProperty.Trim();
        Dice                   = template.Dice;
        Cooldown               = template.Cooldown;
        Effect                 = template.Effect;
        Range                  = template.Range;
        StartingAbility        = template.StartingAbility;
        RemainingCooldownTurns = 0;
        Owner                  = owner;

        TargetType = (AbilityTarget)Enum.Parse(typeof(AbilityTarget), template.Target.Replace(" ", ""), true);

        if (!string.IsNullOrEmpty(RequiresProperty) && Owner.IsPlayer())
        {
            EventMediator.Instance.SubscribeToEvent(GlobalHelper.ItemEquippedEventName, this);
            EventMediator.Instance.SubscribeToEvent(GlobalHelper.ItemUnequippedEventName, this);
        }
    }
Ejemplo n.º 3
0
    public Ability(AbilityTemplate template, CharacterAbilityHandler abilityHandler)
    {
        Template       = template;
        AbilityHandler = abilityHandler;

        Cooldown = new AbilityCooldown(template.Cooldown);
        RegisterCanCastListeners();
    }
Ejemplo n.º 4
0
    public void AbilitySelected(string abilityName)
    {
        var selectedAbility = AbilityStore.GetAbilityByName(abilityName);

        if (selectedAbility == null)
        {
            return;
        }

        DisplaySelectedAbilityDescription(selectedAbility.Description);

        _selectedFreeAbility = selectedAbility;
    }
Ejemplo n.º 5
0
    public static Ability CreateAbility(AbilityTemplate template, Entity owner)
    {
        //todo need dictionary

        if (template == null)
        {
            return(null);
        }

        if (template.Effect.Contains("heal"))
        {
            return(new Heal(template, owner));
        }

        if (template.Name.Equals("bash", StringComparison.OrdinalIgnoreCase))
        {
            return(new Bash(template, owner));
        }

        if (template.Name.Equals("knockback", StringComparison.OrdinalIgnoreCase))
        {
            return(new KnockBack(template, owner));
        }

        if (template.Name.Equals("stab", StringComparison.OrdinalIgnoreCase))
        {
            return(new Stab(template, owner));
        }

        if (template.Name.Equals("spin web", StringComparison.OrdinalIgnoreCase))
        {
            return(new SpinWeb(template, owner));
        }

        Debug.Log($"{template.Name} failed to create!");
        return(null);
    }
Ejemplo n.º 6
0
 public SpinWeb(AbilityTemplate template, Entity owner) : base(template, owner)
 {
 }
Ejemplo n.º 7
0
 public Bash(AbilityTemplate template, Entity owner) : base(template, owner)
 {
 }
Ejemplo n.º 8
0
 public KnockBack(AbilityTemplate template, Entity owner) : base(template, owner)
 {
 }
Ejemplo n.º 9
0
 public Heal(AbilityTemplate template, Entity owner) : base(template, owner)
 {
 }