Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public bool IsWallInLastFewStates(PlantRule rule)
 {
     return(rule.GrowingStates.Count - state < 4);
 }
Exemplo n.º 4
0
 public bool IsPlantOnMaximumState(PlantRule rule)
 {
     return(state == rule.GrowingStates.Count - 1);
 }
Exemplo n.º 5
0
        public bool IsHealthOnMaximum(PlantRule rule)
        {
            var currentMaxHealth = rule.Health[state];

            return(currentMaxHealth == health);
        }