Exemplo n.º 1
0
        private void CreateStates()
        {
            sm = new StateMachine();

            var findFlag   = new PursueFlag(navMeshAgent, !greenTeam);
            var returnHome = new ReturnHome(navMeshAgent, greenTeam);

            //var aggro    = new Aggro(movement);

            // sm.AddTransition(aggro, findFlag, EnemyIsWithinRange());
            // sm.AddTransition(aggro, findFlag, EnemyIsNotWithinRange());
            sm.AddTransition(findFlag, returnHome, HoldingFlag());
            // sm.AddTransition(returnHome, findFlag, !isHoldingFlag);
            sm.SetState(findFlag);

            Func <bool> HoldingFlag() => () => isHoldingFlag;

            // Func<bool> EnemyIsWithinRange() => () => 15f >= Vector3.Distance(transform.position, (FindObjectsOfType<Purple>())
            //                                                                  .OrderBy(t=> Vector3.Distance(transform.position, t.transform.position))
            //                                                                  .FirstOrDefault().GetComponent<Transform>().position);
            //
            // Func<bool> EnemyIsNotWithinRange() => () => 15f < Vector3.Distance(transform.position, (FindObjectsOfType<Purple>())
            //                                                                    .OrderBy(t=> Vector3.Distance(transform.position, t.transform.position))
            //                                                                    .FirstOrDefault().GetComponent<Transform>().position);
        }
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(this.gameObject);
     }
     DontDestroyOnLoad(this.gameObject);
 }
Exemplo n.º 3
0
    private void Start()
    {
        stats = GetComponent<Stats> ();
        uMC = GetComponent<UnitMovementController> ();
        uJC = GetComponent<UnitJobController> ();

        idle = new Idle (this);
        occupied = new Occupied (this);
        returnHome = new ReturnHome (this);
        fullfilingNeeds = new FullfilingNeeds (this);

        currentState = idle;
    }
Exemplo n.º 4
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;
    }
 void Start()
 {
     returnHome       = GetComponent <ReturnHome>();
     cameraController = GetComponent <CameraController>();
     playerMovement   = GetComponentInParent <PlayerMovement>();
 }
Exemplo n.º 6
0
 public void BackToHomeScreen() => ReturnHome?.Invoke(this);