public bool CanUpgrade(PlayerCharacter player) { if (CurrentRank >= MaxRank - 1) { return(false); } if (!Learnt) { return(false); } if (UpgradeType == SkillUpgradeType.SkillPoints) { return(player.CurrentSkillPoints >= SkillPointsToLevel); } else if (UpgradeType == SkillUpgradeType.PlayerLevel) { return(player.Level >= LevelRequiredToLevel); } else if (UpgradeType == SkillUpgradeType.TraitLevel) { return(player.GetTraitByID(TraitIDToLevel).Level >= ReqTraitLevelToLevel); } return(true); }
public bool CanUnlock(PlayerCharacter player) { if (Learnt) { return(false); } if (!string.IsNullOrEmpty(PreviousTalentID)) { var firstOrDefault = player.TalentHandler.Talents.FirstOrDefault(s => s.ID == PreviousTalentID); var hasPreviousTalent = firstOrDefault != null && firstOrDefault.Learnt; if (!hasPreviousTalent) { return(false); } } if (UpgradeType == SkillUpgradeType.SkillPoints && player.CurrentSkillPoints < SkillPointsToLevel) { return(false); } if (UpgradeType == SkillUpgradeType.PlayerLevel && player.Level < LevelRequiredToLevel) { return(false); } if (UpgradeType == SkillUpgradeType.TraitLevel && player.GetTraitByID(TraitIDToLevel).Level < ReqTraitLevelToLevel) { return(false); } return(true); }