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); } } }
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); } }
public Ability(AbilityTemplate template, CharacterAbilityHandler abilityHandler) { Template = template; AbilityHandler = abilityHandler; Cooldown = new AbilityCooldown(template.Cooldown); RegisterCanCastListeners(); }
public void AbilitySelected(string abilityName) { var selectedAbility = AbilityStore.GetAbilityByName(abilityName); if (selectedAbility == null) { return; } DisplaySelectedAbilityDescription(selectedAbility.Description); _selectedFreeAbility = selectedAbility; }
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); }
public SpinWeb(AbilityTemplate template, Entity owner) : base(template, owner) { }
public Bash(AbilityTemplate template, Entity owner) : base(template, owner) { }
public KnockBack(AbilityTemplate template, Entity owner) : base(template, owner) { }
public Heal(AbilityTemplate template, Entity owner) : base(template, owner) { }