public World(int size, double foodScale = .1, double waterScale = .4, int baseHp = 1000, int baseEnergy = 1000, int baseFood = 1000, int baseWater = 1000, int healCost = 50, int healAmount = 100, int hpDrain = 5, int energyDrain = 50, int foodDrain = 25, int waterDrain = 50) { Init = new InitWorld(size, foodScale, waterScale, baseHp, baseEnergy, baseFood, baseWater, healCost, healAmount, hpDrain, energyDrain, foodDrain, waterDrain); _food = Init.StartingFood; _water = Init.StartingWater; }
public InitLifeform(InitWorld bases, IReadOnlyList <double> scales, IReadOnlyList <int> chances) { Hp = (int)(bases.BaseHp * scales[0]); Energy = (int)(bases.BaseEnergy * scales[1]); Food = (int)(bases.BaseFood * scales[2]); Water = (int)(bases.BaseWater * scales[3]); HpScale = scales[0]; EnergyScale = scales[1]; FoodScale = scales[2]; WaterScale = scales[3]; HealCostScale = scales[4]; HealAmountScale = scales[5]; HpDrainScale = scales[6]; EnergyDrainScale = scales[7]; FoodDrainScale = scales[8]; WaterDrainScale = scales[9]; HealThresholdScale = scales[10]; SleepThresholdScale = scales[11]; EatThresholdScale = scales[12]; DrinkThresholdScale = scales[13]; HealThreshold = (int)(Hp * HealThresholdScale); SleepThreshold = (int)(Energy * SleepThresholdScale); EatThreshold = (int)(Food * EatThresholdScale); DrinkThreshold = (int)(Water * DrinkThresholdScale); HpDrain = (int)(bases.HpDrain * HpDrainScale); EnergyDrain = (int)(bases.EnergyDrain * EnergyDrainScale); FoodDrain = (int)(bases.FoodDrain * FoodDrainScale); WaterDrain = (int)(bases.WaterDrain * WaterDrainScale); HealCost = (int)(bases.HealCost * HealCostScale); HealAmount = (int)(bases.HealAmount * HealAmountScale); EatChance = chances[0]; EatChanceRangeLower = chances[1]; EatChanceRangeUpper = chances[2]; DrinkChance = chances[3]; DrinkChanceRangeLower = chances[4]; DrinkChanceRangeUpper = chances[5]; }
public static string InitToCSV(InitWorld init) { if (init == null) { Console.WriteLine("InitWorld was null."); return(""); } FieldInfo[] fields = typeof(InitWorld).GetFields(); string csv = fields[0].GetValue(init).ToString(); for (int i = 1; i < fields.Length; ++i) { csv += $",{fields[i].GetValue(init)}"; } return(csv); }
public static InitWorld CSVToInitWorld(string csv) { object init = new InitWorld(); FieldInfo[] fields = typeof(InitWorld).GetFields(); double[] values = Array.ConvertAll(csv.Split(','), double.Parse); if (fields.Length != values.Length) { Console.WriteLine($"Number of values must match the number of InitWorld properties. v:{values.Length}"); return(null); } for (int i = 0; i < fields.Length; ++i) { fields[i].SetValue(init, values[i]); } return((InitWorld)init); }
private static InitLifeform Init(InitWorld bases, int species) { return(new InitLifeform(bases, SCALES[species], CHANCES[species])); }