Exemplo n.º 1
0
    // Combat
    void attack()
    {
        // empeche l'ennemi de traverser le joueur
        agent.destination = transform.position;

        //Si pas de cooldown
        if (Time.time > attackTime)
        {
            Debug.Log("ATTACK");
            // if (!waitForNextAnimation)
            //   {
            animations.Play("Attack");

            if (Target.gameObject.tag == ("Player"))
            {
                Player player = GameObject.Find("Player").GetComponent <Player>();
                player.TakeDamage(TheDammage);
            }
            if (Target.gameObject.tag.Contains("Enemy"))
            {
                EnemyAi enemy = Target.gameObject.GetComponent <EnemyAi>();
                enemy.ApplyDammage(TheDammage, Target.transform.position);
            }

            //  }

            // Target.GetComponent<PlayerInventory>().ApplyDamage(TheDammage);
            //Debug.Log("L'ennemi a envoyé " + TheDammage + " points de dégâts");
            attackTime = Time.time + attackRepeatTime;
        }
    }
Exemplo n.º 2
0
 public IdleState(EnemyAi enemyAi)
 {
     _enemyAi     = enemyAi;
     _animator    = enemyAi.Animator;
     _rigidBody2D = enemyAi.RigidBody;
     _move        = false;
 }
Exemplo n.º 3
0
    protected void Awake()
    {
        enemyAI = GameObject.FindObjectOfType <EnemyAi>();

        tm = Object.FindObjectOfType <Turnmanager>();
        enemyAI.strategy = this.strategy;
        #region shippositions
        PShipPos = new Transform[5];
        CShipPos = new Transform[5];

        //find all the positions for the ships in the scene
        GameObject[] playerShipPositions   = GameObject.FindGameObjectsWithTag("PlayerShipPositions");
        GameObject[] computerShipPositions = GameObject.FindGameObjectsWithTag("ComputerShipPositions");

        //get the transform.positions from these gameobjects to load the ships from the fleet into the scene
        for (int i = 0; i < playerShipPositions.Length; i++)
        {
            PShipPos[i] = playerShipPositions[i].transform;
            CShipPos[i] = computerShipPositions[i].transform;
        }


        #endregion

        for (int i = 0; i < cShipsToLoad.Count;)
        {
            GameObject shipToAdd = GameObject.Instantiate(cShipsToLoad[i]);
            shipToAdd.name = "computers " + shipToAdd.GetComponent <Ship>().GetType().ToString() + " " + i.ToString();
            enemyAI.hangar.AddShipToFleet(shipToAdd);
            shipToAdd.SetActive(false);
            i++;
        }
    }
Exemplo n.º 4
0
 private void Awake()
 {
     enemyAi      = GetComponentInParent <EnemyAi>();
     animator     = GetComponent <Animator>();
     Player       = GameObject.FindWithTag("Player").transform;
     audioManager = FindObjectOfType <AudioManager>();
 }
Exemplo n.º 5
0
 // Start is called before the first frame update
 void Start()
 {
     target = GetComponent <EnemyAi>().target;
     distanceAbovePlayerOriginal = distanceAbovePlayer;
     ai = GetComponent <EnemyAi>();
     parentTransform = transform.parent;
 }
Exemplo n.º 6
0
 void OnCollisionEnter(Collision collision)
 {
     if (!collision.transform.CompareTag("Player"))
     {
         ContactPoint contact = collision.contacts[0];
         print(collision.gameObject.name);
         if (collision.transform.CompareTag("Wall") || collision.transform.CompareTag("Ground"))
         {
             Instantiate(BulletHole, contact.point, Quaternion.identity);
         }
         EnemyAi ghost = collision.gameObject.GetComponentInParent <EnemyAi>();
         if (ghost != null)
         {
             if (ghost.CompareTag("Ghost"))
             {
                 print("hit");
                 ghost.TakeDamage();
             }
         }
         k = Instantiate(explosionEffect, transform.position, Quaternion.identity);
         Destroy(gameObject, 0.08f);
         //Destroy(k, 0.19f);
         GetComponent <MeshRenderer>().enabled   = false;
         GetComponent <SphereCollider>().enabled = false;
         GetComponent <Rigidbody>().velocity     = Vector3.zero;
     }
 }
Exemplo n.º 7
0
    // Start is called before the first frame update
    void Start()
    {
        if (GetComponent <EnemyAi>() != null)
        {
            enemyAi = GetComponent <EnemyAi>();
        }
        if (transform.parent != null)
        {
            if (transform.parent.GetComponent <PlayerMovement>() != null)
            {
                playerMovement = transform.parent.GetComponent <PlayerMovement>();
            }
            if (transform.parent.GetChild(0).GetChild(0).GetComponent <GunController>() != null)
            {
                gunController = transform.parent.GetChild(0).GetChild(0).GetComponent <GunController>();
            }
        }

        LoadTextures();



        //transform.GetChild(0).GetComponent<MeshRenderer>().material.EnableKeyword("_NORMALMAP");
        //transform.GetChild(0).GetComponent<MeshRenderer>().material.EnableKeyword("_METALLICGLOSSMAP");
        if (!onlyOneTextureSet)
        {
            controller = GetComponent <SpriteDirController>();
        }
    }
    void Start()
    {
        animate = this.GetComponent <Animator>();
        //Enemy = GameObject.Find("Enemy");
        scriptEnemigo = Enemy.GetComponent <EnemyAi>();

        col = GetComponent <CapsuleCollider>();
    }
Exemplo n.º 9
0
    public NodeAttackMelee(EnemyAi _enemy)
    {
        enemy = _enemy;

        frontSwing = enemy.meleeFrontSwing;
        attackTime = enemy.meleeAttackTime;
        backSwing  = enemy.meleeBackSwing;
    }
Exemplo n.º 10
0
    public NodeSpecialAttackRanged(EnemyAi _enemy)
    {
        enemy = _enemy;

        projectileSpeed = enemy.specialSpeed;
        frontSwing      = enemy.specialFrontSwing;
        attackTime      = enemy.specialAttackTime;
        backSwing       = enemy.specialBackSwing;
    }
Exemplo n.º 11
0
    float lungeSpeed;// = 1000f;
    public NodeSpecialAttackLunge(EnemyAi _enemy)
    {
        enemy = _enemy;

        lungeSpeed = enemy.specialSpeed;
        frontSwing = enemy.specialFrontSwing;
        attackTime = enemy.specialAttackTime;
        backSwing  = enemy.specialBackSwing;
    }
Exemplo n.º 12
0
    private void Start()
    {
        sources = GetComponent <AudioSource>();

        health       = GetComponent <EnemyHealth>();
        singleHealth = GetComponent <EnemyHealth_Single>();

        ai       = GetComponent <EnemyAi>();
        singleAi = GetComponent <EnemyAi_Single>();
    }
Exemplo n.º 13
0
 void Start()
 {
     doOnce        = false;
     ai            = GetComponent <EnemyAi>();
     decalHandler  = GameObject.Find("DecalHandler");
     currentHealth = MaxHealth;
     transform.GetChild(0).GetComponent <MeshRenderer>().material.SetFloat("_MaxHealth", MaxHealth);
     transform.GetChild(0).GetComponent <MeshRenderer>().material.SetFloat("_Health", currentHealth);
     playersDamage = new int[2];
 }
Exemplo n.º 14
0
 public IdleState(Transform leftPosition, Transform rightPosition, EnemyAi enemyAi, Mover mover)
 {
     _leftPosition  = leftPosition.position.x;
     _rightPosition = rightPosition.position.x;
     _animator      = enemyAi.Animator;
     _rigidBody2D   = enemyAi.RigidBody;
     _mover         = mover;
     _move          = true;
     _enemyAi       = enemyAi;
 }
Exemplo n.º 15
0
    private void Awake()
    {
        enemy_Animator       = GetComponent <Animator>();
        enemy_AI             = GetComponent <EnemyAi>();
        All_Colliders        = GetComponentsInChildren <Collider>(true);
        enemy_Destroy_Script = GetComponent <Enemy_Destroy>();

        player = GameObject.Find("PlayerObj").transform;
        agent  = GetComponent <NavMeshAgent>();
    }
Exemplo n.º 16
0
        // Use this for initialization
        void Start()
        {
            EAI        = GetComponent <EnemyAi>();
            SR         = GetComponent <SpriteRenderer>();
            EAI.EC     = this;
            Startpoint = transform.position;
            AiStart    = true;

            prc = GameObject.FindObjectOfType <PlayerRobotContral>();
        }
Exemplo n.º 17
0
    public void Init(PlayerInfo.PlayerType type)
    {
        playerInfo.playerType = type;
        gameObject.layer      = LayerMask.NameToLayer("Player");
        action = PlayerInfo.Action.None;
        if (playerInfo.playerType == PlayerInfo.PlayerType.Player1)
        {
            playerInfo.charaType = GameMaster.Instance.charaType1;
        }
        else
        {
            playerInfo.charaType = GameMaster.Instance.charaType2;
        }

        if (GameMaster.Instance.mode == GameMaster.GameMode.TwoPlayerMode)
        {
            playerInfo.humanType = PlayerInfo.HumanType.Human;
            GetComponent <EnemyAi> ().enabled = false;
        }
        else
        {
            if (GameMaster.Instance.ctrPos == GameMaster.CtrLeft)
            {
                //左ならCOMは右
                if (playerInfo.playerType == PlayerInfo.PlayerType.Player1)
                {
                    GetComponent <EnemyAi> ().enabled = false;
                    playerInfo.humanType = PlayerInfo.HumanType.Human;
                }
                else
                {
                    humanPlayer          = GameObject.Find("Player1");
                    playerInfo.humanType = PlayerInfo.HumanType.Com;
                    GetComponent <EnemyAi> ().enabled = true;
                    enemyAi = GetComponent <EnemyAi> ();
                }
            }
            else
            {
                //右ならCOMは左
                if (playerInfo.playerType == PlayerInfo.PlayerType.Player1)
                {
                    humanPlayer          = GameObject.Find("Player2");
                    playerInfo.humanType = PlayerInfo.HumanType.Com;
                    GetComponent <EnemyAi> ().enabled = true;
                    enemyAi = GetComponent <EnemyAi> ();
                }
                else
                {
                    GetComponent <EnemyAi> ().enabled = false;
                    playerInfo.humanType = PlayerInfo.HumanType.Human;
                }
            }
        }
    }
Exemplo n.º 18
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        //On hitting the enemy
        EnemyAi enemy = collider.GetComponent <EnemyAi> ();

        if (enemy != null)
        {
            enemy.TakeDamage(damage);
            CameraShake.Instance.Shake();
            Instantiate(dieEffect, transform.position, transform.rotation);
        }
        Destroy(gameObject);
    }
    //GameObject PilzEnemy;
    // Start is called before the first frame update
    void Start()
    {
        // PilzEnemy = GameObject.Find("PilzEnemy");
        AiScript    = transform.parent.gameObject.GetComponent <EnemyAi>();
        EnemyScript = transform.parent.gameObject.GetComponent <Enemy>();

        //AiScript = GetComponent<EnemyAi>();

        animator    = GetComponent <Animator>();
        isDead      = Animator.StringToHash("IsDead");
        arHash      = Animator.StringToHash("AttackRange");
        enemyIsDead = Animator.StringToHash("EnemyIsDead");
    }
Exemplo n.º 20
0
    public void InitializeEnemy()
    {
        animatorHealthbar = GetComponentInChildren <Animator>();
        mapConfig         = GameObject.FindGameObjectWithTag("Map").GetComponent <MapConfig>();
        Vector3 tileCoords = mapConfig.tileMap.WorldCoordToTileCoord((int)transform.position.x, (int)transform.position.z);

        enemyAi      = GetComponent <EnemyAi>();
        actionPoints = GetComponent <ActionPoints>();
        tileX        = (int)tileCoords.x;
        tileY        = (int)tileCoords.z;
        mapConfig.tileMap.UnitMapData(tileX, tileY);
        actionPoints.unitConfig = this;
    }
Exemplo n.º 21
0
 public void Reset()
 {
     // transform.position = initial_position;
     // transform.localRotation = Quaternion.Euler(0.0f, -transform.rotation.y, 0.0f);
     health_slider.value = maxHealth;
     for (int i = 0; i < enemies.Length; i++)
     {
         enemyAi = enemies[i].GetComponent <EnemyAi>();
         enemyAi.Reset();
     }
     // playerGameObject.transform.position = new Vector3(-21.8f, 30.15f, 407.2f);
     // Debug.Log(player.transform.position);
 }
Exemplo n.º 22
0
    void Spawn()
    {
        GameObject enemySpawned = Instantiate(enemy, transform.position, Quaternion.identity);
        Character  stats        = enemySpawned.GetComponent <Character>();

        stats.spawner = this;

        EnemyAi enemyai = enemySpawned.GetComponent <EnemyAi>();

        enemyai.playerLocation = playerLocation;
        enemyai.player         = player;

        spawning = false;
    }
Exemplo n.º 23
0
    //gun has shot andhits npc
    private void Shoot()
    {
        RaycastHit hit;

        if (Physics.Raycast(_gunBarrel.transform.position, _gunBarrel.transform.right, out hit, _gunRange))
        {
            Debug.Log("Gun hitted " + hit.transform.name);
            if (hit.transform.tag == "Enemy")
            {
                EnemyAi target = hit.transform.GetComponent <EnemyAi>();
                if (target != null)
                {
                    target.NpcRecivesDamage(_gunDamage);
                }
            }
        }
    }
Exemplo n.º 24
0
 void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag(_target))
     {
         other.GetComponent <Vida> ().CambioDeVida(ataque);
         Quaternion angulo = Quaternion.Euler(0, 0, 0);
         Instantiate(efecto, transform.position, angulo);
         Vector3 dir = other.transform.position - owner.transform.position;
         dir.y = 0;
         dir.Normalize();
         EnemyAi _EnemyScript = other.GetComponent <EnemyAi> ();
         if (_EnemyScript != null)
         {
             other.GetComponent <EnemyAi> ().AddImpact(dir, empuje);
         }
     }
 }
Exemplo n.º 25
0
    public List <EnemyAi> GetNeighbors(EnemyAi member, float radius)
    {
        List <EnemyAi> neighborsFound = new List <EnemyAi>();

        foreach (var otherMember in conf.members)
        {
            if (otherMember == member)
            {
                continue;
            }

            if (Vector3.Distance(member.transform.position, otherMember.transform.position) <= radius)
            {
                neighborsFound.Add(otherMember.GetComponent <EnemyAi>());
            }
        }
        return(neighborsFound);
    }
Exemplo n.º 26
0
    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "Enemy")
        {
            print("PPP");

            Instantiate(playerParticle, transform.position + new Vector3(0, 3, 0), Quaternion.identity);
            canRun         = false;
            enemyAi_Script = collision.gameObject.GetComponentInParent <EnemyAi>();

            foreach (var col in enemyAi_Script.All_Colliders)
            {
                col.enabled = true;
            }

            enemyAi_Script.Main_Collider.enabled = false;

            enemyAi_Script.enabled = false;
            enemyAi_Script.GetComponent <Animator>().enabled     = false;
            enemyAi_Script.GetComponent <Rigidbody>().useGravity = true;
            StartCoroutine("Run");
            //Rb.isKinematic = true;

            Destroy(enemyAi_Script.gameObject, 4f);
        }


        if (collision.gameObject.tag == "Wall")
        {
            //Rb.rotation = Quaternion.Euler(0,180,0);

            var speed     = lastVelocity.magnitude;
            var direction = Vector3.Reflect(lastVelocity.normalized, collision.contacts[0].normal);
            transform.eulerAngles = direction;
            Rb.velocity           = direction * Mathf.Max(speed, 0);
        }

        if (collision.gameObject.tag == "Breakable")
        {
            collision.gameObject.layer = LayerMask.NameToLayer("Pieces");
            //Rb.isKinematic = true;
            StartCoroutine("Breakable_Hit_Delay");
        }
    }
Exemplo n.º 27
0
    // Attacks all enemies in range
    private void attack()
    {
        animator.SetTrigger("Attack");

        Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayers);
        foreach (Collider2D enemy in hitEnemies)
        {
            EnemyAi target     = enemy.GetComponent <EnemyAi>();
            Boss    bossTarget = enemy.GetComponent <Boss>();
            if (target)
            {
                target.TakeDamage(attackDamage);
            }
            else if (bossTarget)
            {
                bossTarget.TakeDamage(attackDamage);
            }
        }
    }
Exemplo n.º 28
0
    void Start()
    {
        canvas          = FindObjectOfType <Canvas>();
        HealthBarPrefab = Resources.Load("Prefabs/HealthBar") as GameObject;


        SCM      = new SceneManagement();
        scene    = FindObjectOfType <SuperScene>();
        computer = FindObjectOfType <EnemyAi>();

        scene.LoadComputerShips();
        scene.LoadPlayerShips();

        this.playerHangar = PersistantDataManager.Instance.GetPlayerHangar();

        makeHealthBars();



        playerFleet   = playerHangar.GetFleet();
        computerFleet = computer.hangar.GetFleet();

        DBM.createStateSelectionUIElement();

        for (int i = 0; i < playerFleet.Count; i++)
        {
            print("creating target buttons and state buttons for " + playerFleet.ElementAt(i).Value.name);
            DBM.createTargetButton(playerFleet.ElementAt(i).Value);
            playerFleet.ElementAt(i).Value.GetComponent <Ship>().Init();
        }

        for (int i = 0; i < computerFleet.Count; i++)
        {
            print("creating target buttons for " + computerFleet.ElementAt(i).Value.name);
            DBM.createTargetButton(computerFleet.ElementAt(i).Value);
            computerFleet.ElementAt(i).Value.GetComponent <Ship>().Init();
        }


        StartCoroutine(StartTurn());
    }
Exemplo n.º 29
0
    void OnTriggerEnter2D(Collider2D hit)
    {
        for (int i = 0; i < stuffToTurnOn.Length; i++)
        {
            stuffToTurnOn [i].SetActive(true);
        }

        GameObject.Find("SpawnControl").SetActive(false);

        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");

        for (int i = 0; i < enemies.Length; i++)
        {
            if (enemies[i].name == "Ben'sDrone(Clone)")
            {
                EnemyAi droneAI = enemies [i].GetComponent <EnemyAi>();
                droneAI.target = GameObject.Find("DronesComeHereToDisapear").transform;
                Destroy(enemies[i], 3f);
            }
        }
    }
Exemplo n.º 30
0
    // Update is called once per frame
    void Update()
    {
        //look for hit in the next frame
        RaycastHit2D hit = Physics2D.Raycast(transform.position, velocity.normalized, 1f, layerMask);

        Debug.DrawLine(this.transform.position, this.transform.position + new Vector3(velocity.normalized.x, velocity.normalized.y));
        if (hit.collider != null)
        {
            //projectile hit its target
            if (hit.collider.gameObject.tag == EnemyTag)
            {
                EnemyAi enemy = hit.collider.gameObject.GetComponent <EnemyAi> ();

                DealDamage(enemy);
            }
            Destroy(this.gameObject);
        }

        if (Time.time >= DestroyTime)
        {
            Destroy(this.gameObject);
        }
    }