using Client.Domain.AI.State; using Client.Domain.Service; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Client.Domain.AI { public interface TransitionBuilderInterface { public struct Transition { public readonly Dictionary fromStates; public readonly BaseState.Type toState; public readonly Func predicate; public Transition(List fromStates, BaseState.Type toState, Func? predicate = null) { this.fromStates = fromStates.ToDictionary(x => x, x => x); this.toState = toState; this.predicate = predicate != null ? predicate : (worldHandler, config, state) => { return true; }; } } List Build(); } }