public override bool CanExecute(WorldModel worldModel) { /*NOTE: I added the variable BestFlagLocationRecord because its easier then iterating through the list to find the location record that matches the BestFlagPosition */ return (float)worldModel.GetProperty(Properties.ENERGY) > 3.0f && Character.CombinedInfluence[Character.BestFlagLocationRecord] >= .4f; }
public override bool CanExecute(WorldModel worldModel) { if (this.Target == null) return false; var targetEnabled = worldModel.GetResourceState (this.Target.name); return targetEnabled; }
public override bool CanExecute(WorldModel worldModel) { if (this.Target == null) return false; var targetEnabled = (bool)worldModel.GetProperty (this.Target.name); return targetEnabled; }
public DepthLimitedGOAPDecisionMaking(WorldModel currentStateWorldModel, List<Action> actions, List<Goal> goals) { this.ActionCombinationsProcessedPerFrame = 200; this.Actions = actions; this.Goals = goals; this.InitialWorldModel = currentStateWorldModel; }
public override void ApplyActionEffects(WorldModel worldModel) { //TODO its probably wrong, needs to be corrected base.ApplyActionEffects(worldModel); var conquerValue = worldModel.GetGoalValue(AutonomousCharacter.CONQUER_GOAL); worldModel.SetGoalValue(AutonomousCharacter.CONQUER_GOAL, conquerValue - 2.0f); 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, this.Character.BestFlagPosition); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); //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; var energy = (float) worldModel.GetProperty(Properties.ENERGY); return energy < 5.0f; }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var restValue = worldModel.GetGoalValue(AutonomousCharacter.REST_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL,restValue-1.0f); }
public override void ApplyActionEffects(WorldModel worldModel) { //TODO its probably wrong, needs to be corrected base.ApplyActionEffects(worldModel); //var position = (Vector3)worldModel.GetProperty(Properties.POSITION); var position = this.Character.Character.KinematicData.position; var distance = (this.Character.BestFlagPosition - position).magnitude; if (distance <= 5.0f) { var conquerValue = worldModel.GetGoalValue(AutonomousCharacter.CONQUER_GOAL); worldModel.SetGoalValue(AutonomousCharacter.CONQUER_GOAL, conquerValue - 2.0f); } else { var duration = distance / 20.0f; 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, this.Character.BestFlagPosition); }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); // var arrows = (float)worldModel.GetProperty(Properties.ARROWS); worldModel.SetProperty(Properties.ARROWS, 10); }
public override void ApplyActionEffects(WorldModel worldModel) { var restValue = worldModel.GetGoalValue(AutonomousCharacter.REST_GOAL); worldModel.SetGoalValue(AutonomousCharacter.REST_GOAL, restValue - 0.1f); var eat = worldModel.GetGoalValue(AutonomousCharacter.EAT_GOAL); worldModel.SetGoalValue(AutonomousCharacter.EAT_GOAL, eat + 0.2f); }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; var arrows = (int)worldModel.GetProperty(Properties.ARROWS); if (arrows == 0) return false; return Character.FindSecurityValueForResource(Target.transform.position) > 0; }
public WorldModel(WorldModel parent) { this.Properties = new Dictionary<string, object>(); this.GoalValues = new Dictionary<string, float>(); this.Actions = parent.Actions; this.Parent = parent; this.ActionEnumerator = this.Actions.GetEnumerator(); }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; if (this.Character.BestFlagPosition == null) return false; return true; }
public WorldModel(WorldModel parent) { this.PropertiesArray = new object[6]; this.ResourcesState = new Dictionary<string, bool>(); this.GoalValues = new float[5]; this.Actions = parent.Actions; this.Parent = parent; this.ActionEnumerator = this.Actions.GetEnumerator(); }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) { return false; } var coins = (int)worldModel.GetProperty(Properties.MONEY); return coins < 10; }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) return false; if (this.Character.BestFlagPosition == null) return false; var conquerValue = worldModel.GetGoalValue(AutonomousCharacter.CONQUER_GOAL_ID); return this.Character.BestCombinedInfluence > 0.0f && conquerValue > 5; }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) { return false; } return (int)worldModel.GetProperty(Properties.ARROWS) >= 1; }
public override bool CanExecute(WorldModel worldModel) { if (!base.CanExecute(worldModel)) { return false; } var arrows = (int)worldModel.GetProperty(Properties.ARROWS); return arrows > 0; }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var surviveValue = worldModel.GetGoalValue(AutonomousCharacter.SURVIVE_GOAL); worldModel.SetGoalValue(AutonomousCharacter.SURVIVE_GOAL, surviveValue - 0.5f); worldModel.SetProperty(Properties.ARROWS, 10); 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); }
public override bool CanExecute(WorldModel worldModel) { if (base.CanExecute(worldModel)) { return this.Character.FindSecurityValueForResource(Target.transform.position) > 0; } else return false; }
public override void ApplyActionEffects(WorldModel worldModel) { base.ApplyActionEffects(worldModel); var money = (int)worldModel.GetProperty(Properties.MONEY); worldModel.SetProperty(Properties.MONEY, money + 5); var richGoal = (float)worldModel.GetGoalValue(AutonomousCharacter.GET_RICH_GOAL); worldModel.SetGoalValue(AutonomousCharacter.GET_RICH_GOAL, richGoal - 2); worldModel.SetProperty(this.Target.name, false); }
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) { base.ApplyActionEffects(worldModel); var money = worldModel.GetGoalValue(AutonomousCharacter.GET_RICH_GOAL); worldModel.SetGoalValue(AutonomousCharacter.GET_RICH_GOAL, money - 5.0f); var coins = (int)worldModel.GetProperty(Properties.MONEY); worldModel.SetProperty(Properties.MONEY, coins - 5); worldModel.SetProperty(this.Target.name, false); }
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); //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 richValue = worldModel.GetGoalValue (AutonomousCharacter.GET_RICH_GOAL); worldModel.SetGoalValue (AutonomousCharacter.GET_RICH_GOAL, richValue - 5.0f); var money = (int)worldModel.GetProperty (Properties.MONEY); worldModel.SetProperty (Properties.HP, money + 5); //disables the target object so that it can't be reused again worldModel.SetProperty (this.Target.name, false); }
public virtual void ApplyActionEffects(WorldModel worldModel) { //foreach (var effect in this.GoalEffects) //{ // var previousValue = (float)worldModel.GetProperty(effect.Key); // if (previousValue != null) // { // var nextValue = previousValue + effect.Value; // worldModel.SetProperty(effect.Key, nextValue); // worldModel.SetGoalValue(); // } //} }
public WorldModel(WorldModel parent) { this.ResourceEnabled = new Dictionary<string, bool>(); foreach(var key in parent.ResourceEnabled.Keys) { this.ResourceEnabled[key] = parent.ResourceEnabled[key]; } this.PlayerResources = new Dictionary<string, object>(); foreach (var key in parent.PlayerResources.Keys) { this.PlayerResources[key] = parent.PlayerResources[key]; } this.Goals = new Goal[parent.Goals.Length]; parent.Goals.CopyTo(this.Goals, 0); this.gameManager = parent.gameManager; this.Actions = parent.Actions; this.Parent = parent; this.ActionEnumerator = this.Actions.GetEnumerator(); }
public override bool CanExecute(WorldModel worldModel) { if (this.Target == null) return false; var targetEnabled = (bool)worldModel.GetProperty(this.Target.name); var security = 0.0f; if (this.Character.RedInfluenceMap.InProgress || this.Character.GreenInfluenceMap.InProgress) { return false; } if (!targetEnabled) return false; var node = this.Character.navMesh.QuantizeToNode(this.Target.transform.position, 1.0f); if (this.Character.SecurityInfluence.ContainsKey(node.Position)) { security = this.Character.SecurityInfluence[node.Position]; } return targetEnabled && security >= 0; }
public virtual float getHValue(WorldModel WorldModel) { return(0); }
public virtual void ApplyActionEffects(WorldModel WorldModel) { }
public virtual bool CanExecute(WorldModel woldModel) { return(true); }
public virtual float GetDuration(WorldModel WorldModel) { return(this.Duration); }
public virtual float H(WorldModel model) { return(0.0f); }
public virtual float H(WorldModel currentWorldModel) { return(0.0f); }