public void SetSlot(AbilityBase ability, IAbilitySource source, int level) { this.ability = ability; this.source = source; abilityLevel = level; UpdateSlot(); }
public void MouseUp() { if (_abilitySource == null) { return; } _abilitySource.TryAssignToAbilityTarget(); _abilitySource?.SetIsTrigger(false); _abilitySource = null; _isDragging = false; }
public void OnTriggerExit2D(Collider2D other) { IAbilitySource abilitySource = other.GetComponent <IAbilitySource>(); if (abilitySource == null) { return; } _abilitySource?.UnHighlight(); if (_abilitySource != abilitySource) { return; } _abilitySource = null; }
public bool EquipAbility(AbilityBase ability, int slot, IAbilitySource source) { if (slot >= 3) { return(false); } if (abilitySlotList[slot] != null) { UnequipAbility(slot); } source.UnequipFromCurrentHero(ability); abilitySlotList[slot].SetAbilityToSlot(ability, source); source.OnAbilityEquip(ability, this, slot); UpdateActorData(); return(true); }
public void OnTriggerStay2D(Collider2D other) { if (_abilitySource != null) { return; } IAbilitySource abilitySource = other.GetComponent <IAbilitySource>(); if (abilitySource == null) { return; } if (_abilitySource != null && _abilitySource != abilitySource) { _abilitySource.UnHighlight(); } abilitySource.Highlight(); _abilitySource = abilitySource; }
public void SetAbilityToSlot(AbilityBase abilityBase, IAbilitySource source) { int layer; switch (abilityBase.targetType) { case AbilityTargetType.ENEMY: layer = LayerMask.NameToLayer("EnemyDetect"); break; case AbilityTargetType.ALLY: layer = LayerMask.NameToLayer("AllyDetect"); break; default: layer = LayerMask.NameToLayer("BothDetect"); break; } Ability = new ActorAbility(abilityBase, layer); Ability.SetAbilitySlotNum(slot); this.source = source; }
public void AddAbilitySlot(AbilityBase ability, IAbilitySource abilitySource, int level) { HeroUIAbilitySlot slot; if (AvailableSlots.Count > 0) { slot = AvailableSlots.Pop(); } else { slot = Instantiate(SlotPrefab, transform); } slot.gameObject.SetActive(true); SlotsInUse.Push(slot); slot.SetSlot(ability, abilitySource, level); if (ability == null) { slot.infoText.text = "Remove Ability From Slot"; return; } }
public bool UnequipAbility(int slot) { if (slot >= 3) { return(false); } AbilitySlot abilitySlot = abilitySlotList[slot]; if (abilitySlot.Ability == null) { return(false); } IAbilitySource source = abilitySlot.source; source.OnAbilityUnequip(abilitySlot.Ability.abilityBase, this, slot); abilitySlot.Ability.ClearTriggeredEffects(this, abilitySlot.Ability.abilityBase.idName + slot); abilitySlot.ClearAbility(); UpdateActorData(); return(true); }
public void ClearAbility() { Ability = null; source = null; }