Пример #1
0
 public Cutoff(Transform theTransform, SprintContainer sprint, Node enemyFlag, Node teamFlag)
 {
     this.theTransform = theTransform;
     this.teamFlag     = teamFlag;
     this.sprint       = sprint;
     path = AStar.getPath(enemyFlag, teamFlag);
 }
Пример #2
0
 public GoToBase(Transform theTransform, Transform enemyTransform, SprintContainer sprinter, Node teamFlag)
 {
     this.theTransform   = theTransform;
     this.sprinter       = sprinter;
     this.teamFlag       = teamFlag;
     this.enemyTransform = enemyTransform;
 }
Пример #3
0
 public ReturnHome(Transform theTransform, Transform enemyTransform, SprintContainer sprinter, Node destination)
 {
     this.theTransform   = theTransform;
     this.enemyTransform = enemyTransform;
     this.destination    = destination;
     this.sprinter       = sprinter;
 }
Пример #4
0
        public TrackEnemy(Transform theTransform, SprintContainer sprinter, Node enemyBase, Node teamBase)
        {
            this.theTransform = theTransform;
            this.sprinter     = sprinter;

            toHome = AStar.getPath(teamBase, enemyBase);
            Array.Reverse(toHome);
        }
Пример #5
0
    void Start()
    {
        Begin();
        AStar.SetAllNodes();
        SprintContainer sprint = GetComponent <SprintContainer>();

        bringFlagHome = new ReturnHome(theTransform, enemy.GetComponent <Transform>(), sprint, teamFlag);
        seekEnemyFlag = new SeekEnemyFlag(theTransform, sprint, enemyFlag);
        captureEnemy  = new Cutoff(theTransform, sprint, enemyFlag, teamFlag);
        chaseEnemy    = new Chase(theTransform, enemyTransform, sprint);

        machine = new StateMachine(seekEnemyFlag);

        initialEnemyFlagPosition = enemyFlagObject.transform.position;
        initialTeamFlagPosiiton  = teamFlagObject.transform.position;
    }
Пример #6
0
        void Start()
        {
            AStar.SetAllNodes();

            theTransform = GetComponent <Transform>();
            Transform       enemyTransform = enemy.GetComponent <Transform>();
            SprintContainer sprinter       = GetComponent <SprintContainer>();

            //Boolean Checks
            CanSeeEnemy  seeEnemy          = new CanSeeEnemy(theTransform, enemyTransform);
            CloserToHome closerHome        = new CloserToHome(theTransform, enemyTransform, teamFlagNode);
            FlagCaptured teamFlagCaptured  = new FlagCaptured(teamFlag);
            FlagCaptured enemyFlagCaptured = new FlagCaptured(enemyFlag);

            //Movement Leaves
            GoToBase      returnHome  = new GoToBase(theTransform, enemyTransform, sprinter, teamFlagNode);
            SeekEnemyFlag getFlag     = new SeekEnemyFlag(theTransform, sprinter, enemyFlagNode);
            ChaseEnemy    followEnemy = new ChaseEnemy(theTransform, enemyTransform, sprinter);
            TrackEnemy    findEnemy   = new TrackEnemy(theTransform, sprinter, teamFlagNode, enemyFlagNode);

            //Do this if team flag not captured
            Sequence regularReturnHome = new Sequence(new List <Routine> {
                enemyFlagCaptured, returnHome
            });
            Selector flagNotCapturedSelector = new Selector(new List <Routine> {
                regularReturnHome, getFlag
            });

            //Do this if team flag captured
            Sequence closerHomeSequence = new Sequence(new List <Routine>()
            {
                closerHome, returnHome
            });
            Sequence seeEnemySequence = new Sequence(new List <Routine>()
            {
                seeEnemy, followEnemy
            });
            Selector seeEnemySelector = new Selector(new List <Routine>()
            {
                seeEnemySequence, findEnemy
            });
            Selector haveFlagSelector = new Selector(new List <Routine>()
            {
                closerHomeSequence, seeEnemySelector
            });
            Sequence haveFlagSequence = new Sequence(new List <Routine>()
            {
                enemyFlagCaptured, haveFlagSelector
            });
            Selector flagCapturedSelector = new Selector(new List <Routine>()
            {
                haveFlagSequence, seeEnemySelector
            });
            Sequence flagCapturedSequence = new Sequence(new List <Routine>()
            {
                teamFlagCaptured, flagCapturedSelector
            });

            tree = new Selector(new List <Routine>()
            {
                flagCapturedSequence, flagNotCapturedSelector
            });
        }
Пример #7
0
 public ChaseEnemy(Transform theTransform, Transform enemyTransform, SprintContainer sprinter)
 {
     this.theTransform   = theTransform;
     this.enemyTransform = enemyTransform;
     this.sprinter       = sprinter;
 }
Пример #8
0
 public SeekEnemyFlag(Transform theTransform, SprintContainer sprint, Node destination)
 {
     this.theTransform = theTransform;
     this.sprint       = sprint;
     this.destination  = destination;
 }
Пример #9
0
 public SeekEnemyFlag(Transform theTransform, SprintContainer sprinter, Node enemyFlag)
 {
     this.theTransform = theTransform;
     this.sprinter     = sprinter;
     this.enemyFlag    = enemyFlag;
 }
Пример #10
0
 public Chase(Transform theTransform, Transform theEnemy, SprintContainer sprinter)
 {
     this.theTransform = theTransform;
     this.theEnemy     = theEnemy;
     this.sprinter     = sprinter;
 }