public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; var arr = (int)worldModel.GetProperty(Properties.ARROWS); var hh = (float)worldModel.GetProperty(Properties.HUNGER); return arr >= 1 && hh > 0.1; }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; var hp = (int)worldModel.GetProperty(Properties.HP); var ar = (int)worldModel.GetProperty(Properties.ARROWS); var hn = (float)worldModel.GetProperty(Properties.HUNGER); return hp > 2 && ar < 1 && hn > 5; }
public override bool CanExecute(WorldModel worldModel) { //if (!base.CanExecute(worldModel)) return false; var energy = (float)worldModel.GetProperty(Properties.ENERGY); var hn = (float)worldModel.GetProperty(Properties.HUNGER); return (energy < 2.0f && hn < 9.5); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var eatValue = worldModel.GetGoalValue(AutonomousCharacter.EAT_GOAL); worldModel.SetGoalValue(AutonomousCharacter.EAT_GOAL, eatValue - 2.0f); var hunger = (float)worldModel.GetProperty(Properties.HUNGER); worldModel.SetProperty(Properties.HUNGER, hunger - 2.0f); var arrows = (int)worldModel.GetProperty(Properties.ARROWS); worldModel.SetProperty(Properties.ARROWS, arrows - 1); //disables the target object so that it can't be reused again worldModel.SetProperty(this.Target.name, false); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var restValue = worldModel.GetGoalValue(AutonomousCharacter.REST_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL, restValue - 0.1f); var energy = (float)worldModel.GetProperty(Properties.ENERGY); worldModel.SetProperty(Properties.ENERGY, energy + 0.1f); var eatValue = worldModel.GetGoalValue(AutonomousCharacter.EAT_GOAL); worldModel.SetGoalValue(AutonomousCharacter.EAT_GOAL, restValue + 0.1f); var hunger = (float)worldModel.GetProperty(Properties.HUNGER); worldModel.SetProperty(Properties.ENERGY, hunger + 0.1f); }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; var hg = (float)worldModel.GetProperty(Properties.HUNGER); var sg = (int)worldModel.GetProperty(Properties.HP); var ar = (int)worldModel.GetProperty(Properties.ARROWS); if (ar > 5) return false; if (sg > 2) { return hg < 8.0f; } else { return true; } }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var restValue = worldModel.GetGoalValue(AutonomousCharacter.REST_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL,restValue-1.0f); var energy = (float)worldModel.GetProperty(Properties.ENERGY); worldModel.SetProperty(Properties.ENERGY, energy + 1.0f); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var arrows = (int)worldModel.GetProperty(Properties.ARROWS); worldModel.SetProperty(Properties.ARROWS, arrows + 10); //disables the target object so that it can't be reused again worldModel.SetProperty(this.Target.name, false); }
public override void ApplyActionEffects(WorldModel worldModel) { var duration = this.GetDuration(worldModel); var energyChange = duration * 0.01f; var hungerChange = duration * 0.1f; var restValue = worldModel.GetGoalValue(AutonomousCharacter.REST_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL, restValue + energyChange); var energy = (float)worldModel.GetProperty(Properties.ENERGY); worldModel.SetProperty(Properties.ENERGY, energy - energyChange); var eatGoalValue = worldModel.GetGoalValue(AutonomousCharacter.EAT_GOAL); worldModel.SetGoalValue(AutonomousCharacter.EAT_GOAL, eatGoalValue + hungerChange); var hunger = (float)worldModel.GetProperty(Properties.HUNGER); worldModel.SetProperty(Properties.HUNGER, hunger + hungerChange); worldModel.SetProperty(Properties.POSITION, Target.transform.position); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var eatValue = worldModel.GetGoalValue(AutonomousCharacter.EAT_GOAL); worldModel.SetGoalValue(AutonomousCharacter.EAT_GOAL,eatValue-2.0f); var restValue = worldModel.GetGoalValue(AutonomousCharacter.REST_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL,restValue+0.5f); var surviveValue = worldModel.GetGoalValue(AutonomousCharacter.SURVIVE_GOAL); worldModel.SetGoalValue(AutonomousCharacter.SURVIVE_GOAL,surviveValue+2.0f); var hp = (int)worldModel.GetProperty(Properties.HP); worldModel.SetProperty(Properties.HP,hp-2); var energy = (float)worldModel.GetProperty(Properties.ENERGY); worldModel.SetProperty(Properties.ENERGY,energy-0.5f); var hunger = (float)worldModel.GetProperty(Properties.HUNGER); worldModel.SetProperty(Properties.HUNGER,hunger-2.0f); //disables the target object so that it can't be reused again worldModel.SetProperty(this.Target.name,false); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var grich = worldModel.GetGoalValue(AutonomousCharacter.GET_RICH_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL, grich - 5.0f); var money = (int)worldModel.GetProperty(Properties.MONEY); worldModel.SetProperty(Properties.MONEY, money + 5); //disables the target object so that it can't be reused again worldModel.SetProperty(this.Target.name, false); }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; if (this.Target == null) return false; //Secret level 1 var node = this.Character.navMesh.QuantizeToNode(this.Target.transform.position, 1.0f); float redInfluence = this.Character.RedInfluenceMap.GetInfluence(node); float greenInfluence = this.Character.GreenInfluenceMap.GetInfluence(node); float Security = redInfluence - greenInfluence; if (Security <= 0) return false; var targetEnabled = (bool)worldModel.GetProperty(this.Target.name); var distance = (this.Target.transform.position - this.Character.Character.KinematicData.position).magnitude; if (((float)worldModel.GetProperty(Properties.ENERGY) - 0.5f <= (distance *0.01f)) && ((float)worldModel.GetProperty(Properties.HUNGER) - 0.1f <= (distance * 0.1f))) { return false; } return targetEnabled; }
public override bool CanExecute(WorldModel worldModel) { var en = (float)worldModel.GetProperty(Properties.ENERGY); return en > 0.2; }
public override float GetDuration(WorldModel worldModel) { //assume a velocity of 20.0f/s to get to the target var position = (Vector3)worldModel.GetProperty(Properties.POSITION); return (this.Target.transform.position - position).magnitude / 20.0f; }