Example #1
0
        private FSMMachine machine;     //This state uses a FSM to divide where is should move.

        public Move(FAIController controller) : base(controller)
        {
            //Create FSM.
            machine = new FSMMachine();

            //Set Random to default state.
            FSMRandom random = new FSMRandom(controller);
            machine.AddState(random);
            machine.SetDefaultState(random);

            //Add more states.
            machine.AddState(new FSMApproach(controller));
            machine.AddState(new FSMEvade(controller));
        }
Example #2
0
        protected float activationLevel;        //The activation level of this state.

        public FuSMState(FAIController controller)
        {
            this.controller = controller;
            activationLevel = 0;
        }
Example #3
0
        protected FSMEnum nextState;            //Set next state to change state.

        public FSMState(FSMEnum stateType, FAIController controller)
        {
            this.controller = controller;
            this.stateType = stateType;
            nextState = stateType;
        }
Example #4
0
 public Warn(FAIController controller) : base(controller)
 {
     time = 0f;
 }
Example #5
0
 public FSMApproach(FAIController controller) : base(FSMEnum.Approach, controller) { }
Example #6
0
        private float time, timeInterval = 0.7f;    //Time is the current delay, timeInterval is the fastest fire rate.

        public Fire(FAIController controller) : base(controller)
        {
            time = 0f;
        }
Example #7
0
        private float evadeTime = 0;    //Delay for this state.

        public FSMEvade(FAIController controller) : base(FSMEnum.Evade, controller){ }
Example #8
0
        private Vector2 targetPos;  //The point the entity moves to.

        public FSMRandom(FAIController controller) : base(FSMEnum.Random, controller)
        {
            targetPos = new Vector2(Globals.random.Next(1280), Globals.random.Next(720));
        }