public static float generateWeightFromClass(WeightClass.WClass wClass) { if (wClass.Equals(WeightClass.WClass.FlyWeight)) { return((float)generateRandomInt(100, 118)); } else if (wClass.Equals(WeightClass.WClass.LightWeight)) { return((float)generateRandomInt(120, 138)); } else if (wClass.Equals(WeightClass.WClass.WelterWeight)) { return((float)generateRandomInt(140, 158)); } else if (wClass.Equals(WeightClass.WClass.MiddleWeight)) { return((float)generateRandomInt(160, 173)); } else if (wClass.Equals(WeightClass.WClass.CruiserWeight)) { return((float)generateRandomInt(175, 198)); } else if (wClass.Equals(WeightClass.WClass.HeavyWeight)) { return((float)generateRandomInt(200, 225)); } return((float)generateRandomInt(100, 118)); }
public static bool isBoxerEligibleForType(WeightClass.WClass wClass, Type type) { if (type.Equals(Type.Legion)) { return((wClass.Equals(WeightClass.WClass.CruiserWeight) || wClass.Equals(WeightClass.WClass.HeavyWeight) || wClass.Equals(WeightClass.WClass.MiddleWeight)) ? true : false); } else if (type.Equals(Type.Ranger)) { return((wClass.Equals(WeightClass.WClass.FlyWeight) || wClass.Equals(WeightClass.WClass.LightWeight) || wClass.Equals(WeightClass.WClass.WelterWeight)) ? true : false); } else if (type.Equals(Type.Gladiator)) { return((wClass.Equals(WeightClass.WClass.WelterWeight) || wClass.Equals(WeightClass.WClass.MiddleWeight)) ? true : false); } else if (type.Equals(Type.Monk)) { return((wClass.Equals(WeightClass.WClass.FlyWeight) || wClass.Equals(WeightClass.WClass.LightWeight) || wClass.Equals(WeightClass.WClass.WelterWeight)) ? true : false); } else if (type.Equals(Type.BushWacker)) { return((wClass.Equals(WeightClass.WClass.WelterWeight) || wClass.Equals(WeightClass.WClass.MiddleWeight)) ? true : false); } else if (type.Equals(Type.Bullseye)) { return((wClass.Equals(WeightClass.WClass.FlyWeight) || wClass.Equals(WeightClass.WClass.LightWeight)) ? true : false); } else if (type.Equals(Type.GentleGiant)) { return((wClass.Equals(WeightClass.WClass.CruiserWeight) || wClass.Equals(WeightClass.WClass.HeavyWeight)) ? true : false); } else if (type.Equals(Type.Slugger)) { return((wClass.Equals(WeightClass.WClass.CruiserWeight) || wClass.Equals(WeightClass.WClass.HeavyWeight)) ? true : false); } else if (type.Equals(Type.Juggernaut)) { return((wClass.Equals(WeightClass.WClass.CruiserWeight) || wClass.Equals(WeightClass.WClass.HeavyWeight) || wClass.Equals(WeightClass.WClass.MiddleWeight)) ? true : false); } else if (type.Equals(Type.DoubleEdge)) { return((wClass.Equals(WeightClass.WClass.FlyWeight) || wClass.Equals(WeightClass.WClass.LightWeight) || wClass.Equals(WeightClass.WClass.WelterWeight)) ? true : false); } return((wClass.Equals(WeightClass.WClass.FlyWeight) || wClass.Equals(WeightClass.WClass.LightWeight) || wClass.Equals(WeightClass.WClass.WelterWeight)) ? true : false); }
public static List <Type> getClassesBasedOnWeight(WeightClass.WClass wClass) { if (wClass.Equals(WeightClass.WClass.FlyWeight)) { return(new List <Type> (new Type[] { Type.Ranger, Type.Monk, Type.Bullseye, Type.DoubleEdge })); } else if (wClass.Equals(WeightClass.WClass.LightWeight)) { return(new List <Type> (new Type[] { Type.Ranger, Type.Monk, Type.Bullseye, Type.DoubleEdge })); } else if (wClass.Equals(WeightClass.WClass.WelterWeight)) { return(new List <Type> (new Type[] { Type.Ranger, Type.Monk, Type.Gladiator, Type.BushWacker, Type.DoubleEdge })); } else if (wClass.Equals(WeightClass.WClass.MiddleWeight)) { return(new List <Type> (new Type[] { Type.Legion, Type.Gladiator, Type.BushWacker, Type.Juggernaut })); } else if (wClass.Equals(WeightClass.WClass.CruiserWeight)) { return(new List <Type> (new Type[] { Type.Legion, Type.GentleGiant, Type.Slugger, Type.Juggernaut })); } else if (wClass.Equals(WeightClass.WClass.HeavyWeight)) { return(new List <Type> (new Type[] { Type.Legion, Type.GentleGiant, Type.Slugger, Type.Juggernaut })); } return(new List <Type> (new Type[] { Type.Ranger, Type.Monk, Type.Bullseye, Type.DoubleEdge })); }
public static Boxer createBoxerBasedOnFame(string firstName, string lastName, int townIndex, float elo, WeightClass.WClass wClass) { int pointsToGive = EvaluationProtocol.getBoxerPointsFromFame(elo); int badStatRates = Mathf.RoundToInt((pointsToGive / 3) / 2); badStatRates = badStatRates < 1 ? 1 : badStatRates; List <BoxerClass.Type> possibleClasses = BoxerClass.getClassesBasedOnWeight(wClass); List <EvaluationProtocol.Stats> stats = new List <EvaluationProtocol.Stats>(new EvaluationProtocol.Stats[] { EvaluationProtocol.Stats.AccuracyGrowth, EvaluationProtocol.Stats.EnduranceGrowth, EvaluationProtocol.Stats.HealthGrowth, EvaluationProtocol.Stats.SpeedGrowth, EvaluationProtocol.Stats.StrengthGrowth }); Dictionary <EvaluationProtocol.Stats, int> growthRates = new Dictionary <EvaluationProtocol.Stats, int>(); Dictionary <EvaluationProtocol.Stats, int> statValues = new Dictionary <EvaluationProtocol.Stats, int>(); foreach (EvaluationProtocol.Stats stat in stats) { growthRates.Add(stat, badStatRates); } BoxerClass.Type bClass = possibleClasses[generateRandomInt(0, possibleClasses.Count - 1)]; List <EvaluationProtocol.Stats> bestStats = BoxerClass.getBuild(bClass); for (int i = 0; i < 3; i++) { int baseStat = Mathf.RoundToInt(pointsToGive / (3 - i)); if (pointsToGive > 1) { baseStat = generateRandomInt(baseStat - 1, baseStat + 1); baseStat = baseStat < 1 ? 1 : baseStat; baseStat = baseStat > 10 ? 10 : baseStat; baseStat = (pointsToGive - baseStat) < 2 ? baseStat - 1 : baseStat; baseStat = baseStat < 1 ? 1 : baseStat; } else { baseStat = pointsToGive; } EvaluationProtocol.Stats stat = bestStats[generateRandomInt(0, bestStats.Count - 1)]; growthRates[stat] = baseStat; bestStats.RemoveAt(bestStats.IndexOf(stat)); pointsToGive -= baseStat; } int acc = EvaluationProtocol.getStatValueFromGrowthRate(growthRates[EvaluationProtocol.Stats.AccuracyGrowth]); int end = EvaluationProtocol.getStatValueFromGrowthRate(growthRates[EvaluationProtocol.Stats.EnduranceGrowth]); int hlt = EvaluationProtocol.getStatValueFromGrowthRate(growthRates[EvaluationProtocol.Stats.HealthGrowth]); int spd = EvaluationProtocol.getStatValueFromGrowthRate(growthRates[EvaluationProtocol.Stats.SpeedGrowth]); int str = EvaluationProtocol.getStatValueFromGrowthRate(growthRates[EvaluationProtocol.Stats.StrengthGrowth]); statValues.Add(EvaluationProtocol.Stats.Accuracy, generateRandomInt(acc - 4, acc + 4)); statValues.Add(EvaluationProtocol.Stats.Endurance, generateRandomInt(end - 4, end + 4)); statValues.Add(EvaluationProtocol.Stats.Health, generateRandomInt(hlt - 4, hlt + 4)); statValues.Add(EvaluationProtocol.Stats.Speed, generateRandomInt(spd - 4, spd + 4)); statValues.Add(EvaluationProtocol.Stats.Strength, generateRandomInt(str - 4, str + 4)); return(new Boxer( new Vector2Int(0, 1), firstName, lastName, townIndex, generateWeightFromClass(wClass), bClass, statValues[EvaluationProtocol.Stats.Accuracy], growthRates[EvaluationProtocol.Stats.AccuracyGrowth], statValues[EvaluationProtocol.Stats.Endurance], growthRates[EvaluationProtocol.Stats.EnduranceGrowth], statValues[EvaluationProtocol.Stats.Health], growthRates[EvaluationProtocol.Stats.HealthGrowth], statValues[EvaluationProtocol.Stats.Speed], growthRates[EvaluationProtocol.Stats.SpeedGrowth], statValues[EvaluationProtocol.Stats.Strength], growthRates[EvaluationProtocol.Stats.StrengthGrowth])); }