Example #1
0
        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);
        }
Example #2
0
        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);
        }