Example #1
0
        public static BrainState Create(Actor actor, BrainStateType type)
        {
            switch (type)
            {
            case BrainStateType.CHASE:
                return(new KillerChase());

            case BrainStateType.PATROL:
                return(new KillerPatrol());

            case BrainStateType.WANDER:
                if (actor is Killer)
                {
                    return(new KillerWander());
                }
                else
                {
                    return(new SurvivorWander());
                }

            case BrainStateType.FIND_HOOK:
                return(new KillerFindHook());

            case BrainStateType.REPAIR_GENERATOR:
                return(new RepairGeneratorState());

            case BrainStateType.HELPLESS:
                return(new HelplessState());

            case BrainStateType.AVOID:
                return(new AvoidState());
            }

            return(null);
        }
Example #2
0
 public void SwitchTo(BrainStateType type)
 {
     CurrentState       = BrainState.Create(Actor, type);
     CurrentState.Brain = this;
 }
Example #3
0
 public Brain(BrainStateType startState)
 {
     Memory     = new Dictionary <BrainMemoryType, object>();
     StartState = startState;
     All.Add(this);
 }