public double GetHealthRatio(PlantRule myPlantRule) { var configHealth = myPlantRule.Health[state]; if (configHealth == 0) { Logger.Error("max health is defined as 0 at rule: " + type); configHealth = 40; } return(((double)health).Ratio(configHealth)); }
public int HealPlant(PlantRule rule) { var configHealth = rule.Health[state]; var oldHealth = health; if (health < configHealth) { var diff = ((configHealth - health) / 2.0).Clamp(0, 40); health = (byte)(Math.Ceiling(health + diff)).Clamp(0, configHealth); } return(health - oldHealth); }
public bool IsWallInLastFewStates(PlantRule rule) { return(rule.GrowingStates.Count - state < 4); }
public bool IsPlantOnMaximumState(PlantRule rule) { return(state == rule.GrowingStates.Count - 1); }
public bool IsHealthOnMaximum(PlantRule rule) { var currentMaxHealth = rule.Health[state]; return(currentMaxHealth == health); }