PerkHolder GetOrAddPerkHolder(Perk perk) { int index; if (HasPerk(perk, out index)) { return(allPerks[index]); } allPerks.Add(new PerkHolder(this, perk)); return(allPerks[allPerks.Count - 1]); }
bool HasPerk(Perk perk, out int index) { for (int i = 0; i < allPerks.Count; i++) { if (allPerks[i].perk == perk) { index = i; return(true); } } index = -1; return(false); }
public PerkHolder(PerksContainer container, Perk perk) { this.perk = perk; level = 1; OnPerkGiven(container); }
public PerkHolder AddPerk(Perk perk) { return(GetOrAddPerkHolder(perk)); }
public PerkHolder AddPerk(Perk perk, int setLevel) { return(SetPerkLevel(perk, setLevel)); }
public bool HasPerk(Perk perk) { return(GetPerkLevel(perk) > 0); }
public abstract void OnPerkRemoved(Perk perk, int level);
public abstract void OnPerkUpdate(Perk perk, int level, float deltaTime);
public abstract void OnPerkGiven(Perk perk);
public abstract void OnPerkLevelChange(Perk perk, int oldLevel, int newLevel);
public abstract void OnPerkRemoved(PerksContainer perksContainer, Perk perk, int level);
public abstract void OnPerkGiven(PerksContainer perksContainer, Perk perk);
public abstract void OnPerkLevelChange(PerksContainer perksContainer, Perk perk, int oldLevel, int newLevel);