private PointDistribution DistributePoints(int totalPoints) { PointDistribution pointDistribution = new PointDistribution(); int remainingPoints = totalPoints; pointDistribution.SkillPoints = GetSkillPoints(remainingPoints); remainingPoints -= pointDistribution.SkillPoints; if (remainingPoints == 0) { pointDistribution.AdvantagePoints = 0; pointDistribution.AttributePoints = 0; return(pointDistribution); } pointDistribution.AttributePoints = GetAttributePoints(remainingPoints); remainingPoints -= pointDistribution.AttributePoints; if (remainingPoints == 0) { pointDistribution.AdvantagePoints = 0; return(pointDistribution); } pointDistribution.AdvantagePoints = GetAdvantagePoints(remainingPoints); remainingPoints -= pointDistribution.AdvantagePoints; return(pointDistribution + DistributePoints(remainingPoints)); }
public NPC GetRandomNPC(int points, int tl, bool exotic, bool supernatural) { PersonNameGenerator generator = new PersonNameGenerator(); int disadPoints = GetDisadPoints(points); int totalPoints = disadPoints + points; int age = rand.Next(14, 81); pointDistribution = DistributePoints(totalPoints); string name = generator.GenerateRandomFirstName(); npc = new NPC(name, age, tl); AddSkills(); AddAdvantages(exotic, supernatural); AddAttributes(); AddDisadvantages(disadPoints, exotic, supernatural); return(npc); }