public ActivityResolver(IUtilityAi utilityAi, IConditionContext conditionContext, IActivityCreationContext activityCreationContext) { _utilityAi = utilityAi; _conditionContext = conditionContext; _activityCreationContext = activityCreationContext; }
public AiActionResolver(IActionFactory actionFactory, IUtilityAi utilityAi, IActivityCreationContext activityCreationContext, IActivityResolver activityResolver) { _actionFactory = actionFactory; _utilityAi = utilityAi; _activityCreationContext = activityCreationContext; _activityResolver = activityResolver; }
/// <summary> /// Initializes a new instance of the <see cref="AiTransition"/> class. /// </summary> /// <param name="ai">The ai.</param> /// <exception cref="Crystal.AiTransition.TargetAiNullException"></exception> public AiTransition(IUtilityAi ai) { if (ai == null) { throw new TargetAiNullException(); } _targetAi = ai; }
public void Initialize() { _actions = new ActionCollection(); _considerations = new ConsiderationCollection(); _options = new OptionCollection(_actions, _considerations); _behaviours = new BehaviourCollection(_options); _aIs = new AiCollection(_behaviours); _utilityAi = new UtilityAi("ai0", _aIs); }
public void Inititalize() { _toon = new Toon(); _ac = new ActionCollection(); _cc = new ConsiderationCollection(); _oc = new OptionCollection(_ac, _cc); _bc = new BehaviourCollection(_oc); _aic = new AiCollection(_bc); // The main AI _ai = new UtilityAi("ai", _aic); var coreBehaviour = new Behaviour("coreBehaviour", _bc); coreBehaviour.Selector = new MaxUtilitySelector(); _ai.AddBehaviour(coreBehaviour.NameId); // Eat Option _eatOption = new Option(); _eatOption.Measure = new WeightedMetrics(1.4f); var eatAction = new EatAction(); var hungerConsideration = new HungerConsideration(); (_eatOption as Option).SetAction(eatAction); _eatOption.AddConsideration(hungerConsideration); _eatOption.AddConsideration(new InverseBladderConsideration()); coreBehaviour.AddConsideration(_eatOption); // Drink Option _drinkOption = new Option(); _drinkOption.Measure = new WeightedMetrics(3.0f); var drinkAction = new DrinkAction(); var thirstConsideration = new ThirstConsideration(); (_drinkOption as Option).SetAction(drinkAction); _drinkOption.AddConsideration(thirstConsideration); _drinkOption.AddConsideration(new InverseBladderConsideration()); // Toilet Option _toiletOption = new Option(); _toiletOption.Measure = new WeightedMetrics(); var toiletAction = new ToiletAction(); var bladderConsideration = new BladderConsideration(); (_toiletOption as Option).SetAction(toiletAction); _toiletOption.AddConsideration(bladderConsideration); coreBehaviour.AddConsideration(_eatOption); coreBehaviour.AddConsideration(_drinkOption); coreBehaviour.AddConsideration(_toiletOption); Console.WriteLine(coreBehaviour); _scheduler = new Scheduler(); }
/// <summary> /// Initializes a new instance of the <see cref="DecisionMaker"/> class. /// </summary> /// <param name="uai">The uai.</param> /// <param name="contextProvider">The context provider.</param> /// <param name="aiScheduler">The ai scheduler.</param> /// <exception cref="Crystal.DecisionMaker.SchedulerNullException"></exception> public DecisionMaker(IUtilityAi uai, IContextProvider contextProvider, IScheduler aiScheduler) : base(uai, contextProvider) { if (aiScheduler == null) { throw new SchedulerNullException(); } InitializeThinkCommand(); InitializeUpdateCommand(); _aiScheduler = aiScheduler; }
bool Add(IUtilityAi ai) { if (ai == null) { return(false); } if (_aiMap.ContainsKey(ai.NameId)) { return(false); } _aiMap.Add(ai.NameId, ai); return(true); }
/// <summary> /// Initializes a new instance of the <see cref="DecisionMakerBase"/> class. /// </summary> /// <param name="ai">The ai.</param> /// <param name="contextProvider">The context provider.</param> /// <exception cref="Crystal.DecisionMakerBase.UtilityAiNullException"></exception> /// <exception cref="Crystal.DecisionMakerBase.ContextProviderNullException"></exception> protected DecisionMakerBase(IUtilityAi ai, IContextProvider contextProvider) { if (ai == null) { throw new UtilityAiNullException(); } if (contextProvider == null) { throw new ContextProviderNullException(); } _ai = ai; _contextProvider = contextProvider; State = DecisionMakerState.Stopped; }
/// <summary> /// Adds the specified AI. /// </summary> /// <param name="ai">The AI.</param> /// <returns></returns> public bool Add(IUtilityAi ai) { if (ai == null) { return(false); } if (string.IsNullOrEmpty(ai.NameId)) { return(false); } if (_aiMap.ContainsKey(ai.NameId)) { return(false); } _aiMap.Add(ai.NameId, ai); return(true); }
public bool Add(IUtilityAi ai) { if (ai == null || ai.Equals(null)) { return(false); } var id = ai.NameId; if (Contains(id)) { return(false); } m_ais.Add(id, ai); return(true); }