示例#1
0
    private void Start()
    {
        enemyChase = GetComponent <EnemyChase>();

        agent = GetComponent <NavMeshAgent>();
        Wander();
    }
    void Awake()
    {
        patrolBehaviour = GetComponent <EnemyPatrol>();
        chaseBehaviour  = GetComponent <EnemyChase>();

        // Turn off the chase behaviour to start with
        chaseBehaviour.enabled = false;
    }
示例#3
0
 // Start is called before the first frame update
 void Start()
 {
     currentHealth = maxHealth;
     navmesh       = GetComponent <NavMeshAgent>();
     fireBack.SetActive(false);
     fireFront.SetActive(false);
     enemyChase = FindObjectOfType <EnemyChase>();
 }
    // awake is called when the script loads
    void Awake()
    {
        //get the behaviours so we can turn them off and on
        patrolBehaviour = GetComponent <EnemyPatrol>();
        chaseBehaviour  = GetComponent <EnemyChase>();

        // Turn off the chase behaviour to start with
        chaseBehaviour.enabled = false;
    }
示例#5
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.tag == "Enemy")
     {
         GameObject enemy  = GameObject.Find(collision.gameObject.name);
         EnemyChase script = enemy.GetComponent <EnemyChase>();
         script.immobile = true;
         Destroy(gameObject);
     }
 }
示例#6
0
    // ------------------------------------------------
    // Awake is called when the script is loaded
    // ------------------------------------------------
    void Awake()
    {
        // Get the EnemyPatrol that we'll be using for AI
        patrolBehaviour = GetComponent <EnemyPatrol>();
        // Get the EnemyPatrol that we'll be using for AI
        chaseBehaviour = GetComponent <EnemyChase>();

        // Turn off the chase behaviour to start with:
        chaseBehaviour.enabled = false;
    }
示例#7
0
 public void AddEnemyComponent <T>()
 {
     if (typeof(T) == typeof(EnemyPatrol))
     {
         enemyPatrol = GetComponent <EnemyPatrol> ();
     }
     else if (typeof(T) == typeof(EnemyChase))
     {
         enemyChase = GetComponent <EnemyChase> ();
     }
     else if (typeof(T) == typeof(EnemyManipulate))
     {
         enemyManipulate = GetComponent <EnemyManipulate> ();
     }
 }
示例#8
0
 public void RemoveEnemyComponent <T>()
 {
     if (typeof(T) == typeof(EnemyPatrol))
     {
         enemyPatrol = null;
     }
     else if (typeof(T) == typeof(EnemyChase))
     {
         enemyChase = null;
     }
     else if (typeof(T) == typeof(EnemyManipulate))
     {
         enemyManipulate = null;
     }
 }
    private void Start()
    {
        _target = PlayerCharacter.Active.transform;

        EnemyWait   enemyWait   = new EnemyWait(this, _waitTimeOnTargetLost);
        EnemyChase  enemyChase  = new EnemyChase(this, _target);
        EnemyPatrol enemyPatrol = new EnemyPatrol(this, _includeObstaclesOnPatrol, enemyWait);

        // Переходы из состояния патрулирования.
        enemyPatrol.AddTransition(EnemyStateKey.PlayerInSight, enemyChase);

        // Переходы из состояния преследования цели.
        enemyChase.AddTransition(EnemyStateKey.PlayerOffSight, enemyWait);

        // Переходы из состояния ожидания.
        enemyWait.AddTransition(EnemyStateKey.PlayerInSight, enemyChase);
        enemyWait.AddTransition(EnemyStateKey.WaitComplete, enemyPatrol);

        _stateMachine = new StateMachine <EnemyStateKey>(enemyWait);
    }
示例#10
0
    // Update is called once per frame
    void OnTriggerEnter2D(Collider2D collision)
    {
        EnemyHealth enemyHealth = collision.GetComponent <EnemyHealth>();
        EnemyChase  enemyChase  = collision.GetComponent <EnemyChase>();

        if (enemyHealth != null && enemyHealth.isDead)
        {
            return;
        }
        if (enemyHealth != null)
        {
            float s = enemyChase.speed;
            enemyChase.speed = s - (s / 3);

            /* while(enemyChase.speed < s){
             * enemyChase.speed+=1;
             * }*/

            // enemyHealth.damageEnemy(damage);
            Destroy(gameObject);
            //enemyChase.speed=s;
        }
    }
    public override void _Ready()
    {
        _collision_layer = 2;
        ((Area)FindNode("MeleAttackArea")).SetCollisionMaskBit(1, true);        // monitor only player

        var state_spawn     = new OneShotAnim("spawn");
        var state_chase     = new EnemyChase();
        var state_idle      = new EnemyIdle();
        var state_telegraph = new EnemyTelegraph();
        var state_attack    = new EnemyAttack();

        var tr_spawn_finished      = new FromOneShotAnim(state_idle, "spawn");
        var tr_to_chase            = new EnemyToChase(state_chase);
        var tr_to_idle             = new EnemyToIdle(state_idle);
        var tr_start_telegraph     = new EnemyStartTelegraph(state_telegraph);
        var tr_telegraph_finished  = new FromOneShotAnim(state_attack, "telegraph");
        var tr_telegraph_interrupt = new EnemyInterruptTelegraph(state_idle);
        var tr_attack_finished     = new FromOneShotAnim(state_idle, "attack");

        state_spawn.AddTransition(tr_spawn_finished);
        state_chase.AddTransition(tr_to_idle);
        state_chase.AddTransition(tr_start_telegraph);
        state_idle.AddTransition(tr_to_chase);
        state_idle.AddTransition(tr_start_telegraph);
        state_telegraph.AddTransition(tr_telegraph_finished);
        state_telegraph.AddTransition(tr_telegraph_interrupt);
        state_attack.AddTransition(tr_attack_finished);

        _fsm = new FSM(this, state_spawn);
        _fsm.AddTransition(new EnemyDie(new EnemyDead()));

        // temp
        Attributes.RunSpeed   = 10;
        Attributes.MaxHealth  = Attributes.Health = 20;
        Attributes.Damage     = 10;
        Attributes.CritChance = 0.1f;
    }
示例#12
0
 // Use this for initialization
 void Start()
 {
     player = GameObject.FindGameObjectWithTag("Player");
     enemy  = gameObject.GetComponentInParent <EnemyChase>();
 }
示例#13
0
 // Use this for initialization
 void Start()
 {
     enemyChase = gameObject.GetComponentInParent<EnemyChase>();
 }
示例#14
0
    // Update is called once per frame
    void Update()
    {
        timer += Time.deltaTime;

        int    min = (int)timer / 60;
        int    sec = (int)timer % 60;
        string nil = "";

        if (sec < 10)
        {
            nil = "0";
        }
        Timer.text = min + ":" + nil + sec;

        if (gemsDelivered == maxGems)
        {
            SceneManager.LoadScene("EndMenu");
        }

        if (null == player)
        {
            var tmp = GameObject.FindGameObjectWithTag("Player");
            if (null != tmp)
            {
                player       = tmp.GetComponent <PlayerController> ();
                playerHealth = player.Health;
                playerAxes   = player.AxeCount;
            }
        }

        var        enemies   = FindObjectsOfType <EnemyChase> ();
        float      leastDist = 100f;
        EnemyChase closest   = null;

        for (var i = 0; i < enemies.Length; i++)
        {
            var enemy = enemies [i];
            enemy.canShout = false;
            float distToPLayer = Vector3.Distance(enemy.transform.position, player.transform.position);
            if (i == 0)
            {
                leastDist = distToPLayer;
                closest   = enemy;
            }
            else
            {
                if (distToPLayer <= leastDist)
                {
                    leastDist = distToPLayer;
                    closest   = enemy;
                }
            }
        }
        if (null != closest)
        {
            closest.canShout = true;
        }

        if (Input.GetKeyDown(KeyCode.P) || Input.GetKeyDown(KeyCode.Escape))
        {
            isPaused = !isPaused;
        }
        if (isPaused)
        {
            Time.timeScale = 0;
            if (Input.GetKeyDown(KeyCode.Q))
            {
                SceneManager.LoadScene("MainMenu");
            }
        }
        else
        {
            Time.timeScale = 1;
        }

        Cursor.lockState = isPaused ? CursorLockMode.None : CursorLockMode.Locked;
        Cursor.visible   = isPaused ? true : false;
    }
示例#15
0
 // Use this for initialization
 void Start()
 {
     enemyChase = gameObject.GetComponentInParent <EnemyChase>();
 }
示例#16
0
    // Update is called once per frame
    void Update()
    {
        playersResources = FindObjectOfType <CollectingResources>();

        if (playersResources.playersNotoriety >= playersResources.playersMaxNotoriety / 100 * 25 && playersResources.playersNotoriety <= playersResources.playersMaxNotoriety / 100 * 49)
        {
            if (releaseTheEnemies == false)
            {
                for (int i = 0; i < 2; i++)
                {
                    GameObject newEnemy = Instantiate(EnemyLVL1, spawnPoints[i].position, Quaternion.identity);

                    EnemyChase enemyChase = newEnemy.GetComponent <EnemyChase>();
                    enemyChase.isPatrolling = false;
                    Transform player = GameObject.FindGameObjectWithTag("Player").transform;

                    enemyChase.shipTarget = player;
                }

                releaseTheEnemies = true;
            }
        }

        if (playersResources.playersNotoriety >= playersResources.playersMaxNotoriety / 100 * 50 && playersResources.playersNotoriety <= playersResources.playersMaxNotoriety / 100 * 74)
        {
            if (releaseTheEnemiesAgain == false)
            {
                for (int i = 0; i < 4; i++)
                {
                    GameObject newEnemy = Instantiate(EnemyLVL2, spawnPoints[i].position, Quaternion.identity);

                    EnemyChase enemyChase = newEnemy.GetComponent <EnemyChase>();
                    enemyChase.isPatrolling = false;
                    Transform player = GameObject.FindGameObjectWithTag("Player").transform;

                    enemyChase.shipTarget = player;
                }
                releaseTheEnemiesAgain = true;
            }
        }

        if (playersResources.playersNotoriety >= playersResources.playersMaxNotoriety / 100 * 75 && playersResources.playersNotoriety <= playersResources.playersMaxNotoriety / 100 * 99)
        {
            if (releaseTheEnemiesAgainAgain == false)
            {
                for (int i = 0; i < 4; i++)
                {
                    GameObject newEnemy = Instantiate(EnemyLVL3, spawnPoints[i].position, Quaternion.identity);

                    EnemyChase enemyChase = newEnemy.GetComponent <EnemyChase>();
                    enemyChase.isPatrolling = false;
                    Transform player = GameObject.FindGameObjectWithTag("Player").transform;

                    enemyChase.shipTarget = player;
                }
                releaseTheEnemiesAgainAgain = true;
            }
        }

        if (playersResources.playersNotoriety >= playersResources.playersMaxNotoriety)
        {
            if (releaseTheEnemiesAgainAgainAgain == false)
            {
                for (int i = 0; i < 3; i++)
                {
                    GameObject newEnemy = Instantiate(EnemyLVL4, spawnPoints[i].position, Quaternion.identity);

                    EnemyChase enemyChase = newEnemy.GetComponent <EnemyChase>();
                    enemyChase.isPatrolling = false;
                    Transform player = GameObject.FindGameObjectWithTag("Player").transform;

                    enemyChase.shipTarget = player;
                }

                for (int i = 0; i < 1; i++)
                {
                    GameObject newEnemy = Instantiate(Boss, spawnPoints[i].position, spawnPoints[i].rotation);

                    EnemyChase enemyChase = newEnemy.GetComponent <EnemyChase>();
                    enemyChase.isPatrolling = false;
                    Transform player = GameObject.FindGameObjectWithTag("Player").transform;

                    enemyChase.shipTarget = player;

                    floor.GetComponent <MeshRenderer>().enabled = false;

                    audioSource.clip = bossSong;

                    audioSource.Play();
                }
                releaseTheEnemiesAgainAgainAgain = true;
            }
        }
    }
示例#17
0
 // Use this for initialization
 void Start()
 {
     currentHealth = Health;
     rigid_body    = GetComponentInParent <Rigidbody>();
     chase         = gameObject.GetComponentInParent <EnemyChase>();
 }
    //public GameObject Player;


    // Use this for initialization
    void Start()
    {
        enemyChase = GetComponent <EnemyChase>();        // Get the enemyChase script.
    }
示例#19
0
 private void GrabMovementScripts()
 {
     _paceScript = GetComponent<EnemyPace>();
     _chaseScript = GetComponent<EnemyChase>();
 }
示例#20
0
 // Use this for initialization
 void Start()
 {
     currentHealth = Health;
     rigid_body = GetComponentInParent<Rigidbody>();
     chase = gameObject.GetComponentInParent<EnemyChase>();
 }
示例#21
0
 void Start()
 {
     am = FindObjectOfType <AudioManager>();
     ec = GetComponentInParent <EnemyChase>();
 }
示例#22
0
 private void Start()
 {
     enemyMovement = GetComponent <EnemyChase>();
 }
示例#23
0
 // Use this for initialization
 void Start()
 {
     player = GameObject.FindGameObjectWithTag("Player");
     enemy = gameObject.GetComponentInParent<EnemyChase>();
 }