private void Start()
    {
        enemyAI = GetComponent <EnemyAIController>();
        seeker  = GetComponent <Seeker>();
        rb      = GetComponent <Rigidbody2D>();
        anim    = GetComponent <Animator>();

        if (enemyAI.stats.canFly)
        {
            rb.gravityScale = 0f;
        }
        else
        {
            rb.gravityScale = 1f;
        }

        if (enemyAI.stats.canMove)
        {
            rb.constraints = RigidbodyConstraints2D.FreezeRotation;
        }
        else
        {
            rb.constraints = RigidbodyConstraints2D.FreezeAll;
        }

        InvokeRepeating("UpdateMovement", 0f, .5f);
    }
Пример #2
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Debug.Log(collision.gameObject.name);

        if (!collision.gameObject.CompareTag("Player"))
        {
            Destroy(gameObject);
        }


        if (shooter == Shooter.player)
        {
            EnemyAIController enemy = collision.gameObject.GetComponent <EnemyAIController>();
            if (enemy != null)
            {
                Vector2 knockbackDirection = (enemy.transform.position - transform.position).normalized * shootKnockback;
                enemy.TakeDamage(shootDamage, knockbackDirection);
                Destroy(gameObject);
            }
        }
        else
        {
            PlayerCombat enemy = collision.gameObject.GetComponent <PlayerCombat>();
            if (enemy != null)
            {
                Vector2 knockbackDirection = (enemy.transform.position - transform.position).normalized * shootKnockback;
                enemy.TakeDamage(shootDamage, knockbackDirection);
                Destroy(gameObject);
            }
        }
    }
Пример #3
0
 private void OnTriggerExit(Collider other)
 {
     if (other.gameObject.tag == "Enemy" && other.GetType() == typeof(CapsuleCollider))
     {
         eController = (EnemyAIController)other.gameObject.GetComponent(typeof(EnemyAIController));
         eController.editFloorValue(-1);
     }
     else if (other.gameObject.tag == "Player" && other.gameObject.tag != "Ragdoll")
     {
         pController.editFloorValue(-1);
         foreach (MeshRenderer mesh in renderers)
         {
             mesh.enabled = true;
         }
     }
     else if (other.gameObject.name == "ChestP")
     {
         GameObject pRagdoll = GameObject.FindWithTag("PlayerRagdoll");
         prController = (PlayerRagdollHandler)pRagdoll.gameObject.GetComponent(typeof(PlayerRagdollHandler));
         prController.editFloorValue(-1);
         foreach (MeshRenderer mesh in renderers)
         {
             mesh.enabled = false;
         }
     }
     else if (other.gameObject.name == "PelvisE")
     {
         GameObject parent1 = other.transform.parent.gameObject;
         GameObject parent2 = parent1.transform.parent.gameObject;
         erController = (RagdollHandler)parent2.gameObject.GetComponent(typeof(RagdollHandler));
         erController.editFloorValue(-1);
     }
 }
Пример #4
0
    void ActualStart()
    {
        //shipScript = GameObject.FindGameObjectWithTag("Ship").GetComponent<ScriptShipFollow>();
        myParent = this.transform.parent.gameObject;
        if (myParent.tag == "Player")
        {
            //Debug.Log("my parent is player!");
            //shipScript = myParent.transform.GetChild(2).GetComponent<ScriptShipFollow>();
            if (myParent.transform.FindChild("Ships").FindChild("SPACESHIP 1").gameObject.activeSelf)
            {
                shipScript = myParent.transform.FindChild("Ships").FindChild("SPACESHIP 1").GetComponent <ScriptShipFollow>();
            }
            else
            {
                shipScript = myParent.transform.FindChild("Ships").FindChild("siar1x").GetComponent <ScriptShipFollow>();
            }
            //Debug.Log("Ship script: " + shipScript.gameObject.name);
        }
        else
        {
            AIScript = myParent.transform.FindChild("siar1x").GetComponent <EnemyAIController>();
        }
        tigerShark      = GameObject.Find("SPACESHIP 1");
        particalSystem1 = GameObject.Find("ParticalSystem1");
        particalSystem2 = GameObject.Find("ParticalSystem2");
        movements       = GameObject.Find("Track1World").GetComponent <ScriptEngine>().movements;
        //PrintInformation();
        //StartCoroutine(movementEngine());
        //StartCoroutine(EffectsEngine());
        //StartCoroutine(FacingEngine());

        startPos   = this.transform.position;
        letsDoThis = true;
    }
Пример #5
0
 private void DoActions(EnemyAIController controller)
 {
     for (int i = 0; i < actions.Length; i++)
     {
         actions[i].DoAction(controller);
     }
 }
Пример #6
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (alive)
        {
            if (Input.GetButton("Fire1") && wait >= 5)
            {
                aS.Play();

                wait = 0;

                StartCoroutine("DisplayLine");
                Vector3    rayOrigin = transform.position;
                RaycastHit hit;

                shotLine.SetPosition(0, rayOrigin);


                if (Physics.Raycast(rayOrigin, transform.forward, out hit, weaponRange))
                {
                    shotLine.SetPosition(1, hit.point);
                    GameObject hitPlayer = hit.transform.gameObject;
                    if (hitPlayer.tag == "Enemy")
                    {
                        EnemyAIController handler = (EnemyAIController)hitPlayer.GetComponent(typeof(EnemyAIController));
                        handler.gotHit(transform.forward);
                    }
                }
                else
                {
                    shotLine.SetPosition(1, rayOrigin + transform.forward * weaponRange);
                }
            }
            wait++;
        }
    }
Пример #7
0
 public void StartActions(EnemyAIController controller)
 {
     for (int i = 0; i < actions.Length; i++)
     {
         actions[i].StartAction(controller);
     }
 }
Пример #8
0
    public override bool Decide(EnemyAIController controller, out State returnValue)
    {
        returnValue = stateToGoTo;
        if (Vector2.Distance(controller.transform.position, controller.target.transform.position) > maxDistance)
        {
            return(true);
        }
        else if (Vector2.Distance(controller.transform.position, controller.target.transform.position) < minDistance)
        {
            if (minDistanceState != null)
            {
                returnValue = minDistanceState;
                return(true);
            }
            else
            {
                return(false);
            }
        }

        else
        {
            return(false);
        }
    }
Пример #9
0
    public void Initialize(Character character, EnemyAIController ai)
    {
        target = character;
        //radius += target.radius;
        controller = ai;

        isInit = true;
    }
Пример #10
0
        protected override void InitSubStructures()
        {
            base.InitSubStructures();

            AIController = new EnemyAIController()
            {
                AddressReadFunc = () => AIControllerPtr
            };
        }
Пример #11
0
 void Start()
 {
     target = GameObject.FindGameObjectWithTag("Player");
     anim   = GetComponent <Animator>();
     enemyAIControllerScript = GetComponent <EnemyAIController>();
     info        = GetComponent <EnemyInfo>();
     atkDistance = info.attackDistance;
     atkBetween  = info.attackBetween;
     attackTimer = atkBetween;
 }
Пример #12
0
 private void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         _instance = this;
     }
     DontDestroyOnLoad(this.gameObject);
 }
Пример #13
0
 public bool DoDecisions(EnemyAIController controller, out State nextState)
 {
     foreach (Decision decision in Decisions)
     {
         if (decision.Decide(controller, out nextState))
         {
             return(true);
         }
     }
     nextState = null;
     return(false);
 }
Пример #14
0
 void Start()
 {
     round           = 0;
     bean1           = GameObject.Find("enemybean1");
     bean2           = GameObject.Find("enemybean2");
     nextBean1       = GameObject.Find("enemyNextBean1");
     nextBean2       = GameObject.Find("enemyNextBean2");
     sprites         = Resources.LoadAll("beans");
     nextRandomBean1 = Random.Range(1, 6);
     nextRandomBean2 = Random.Range(1, 6);
     ai = new EnemyAIController();
     createNewBeanPair();
 }
 // Use this for initialization
 void ActualStart()
 {
     myParent = transform.parent.transform.parent.gameObject;
     if (myParent.tag == "Player")
     {
         shipScript = myParent.transform.FindChild("Ships").transform.FindChild("siar1x").GetComponent <ScriptShipFollow>();
     }
     else
     {
         AIScript = myParent.transform.FindChild("siar1x").GetComponent <EnemyAIController>();
     }
     letsDoThis = true;
 }
Пример #16
0
    public override void DoAction(EnemyAIController controller)
    {
        if (movementScript.reachedDestination)
        {
            nodeIndex++;

            if (nodeIndex >= nodes.Count)
            {
                nodeIndex = 0;
            }
            movementScript.destination = nodes[nodeIndex] + controller.transform.position;
        }
    }
Пример #17
0
    private void CheckTransitions(EnemyAIController controller)
    {
        State nextState = null;

        foreach (Transition transition in transitions)
        {
            if (transition.DoDecisions(controller, out nextState))
            {
                controller.TransitionState(nextState);
                return;
            }
        }
    }
Пример #18
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Obstacle"))
        {
            Destroy(gameObject);
        }

        if (shooter == Shooter.player)
        {
            EnemyAIController enemy   = collision.GetComponent <EnemyAIController>();
            BossBehaviour     boss    = collision.GetComponent <BossBehaviour>();
            ProtectionAntenna antenna = collision.GetComponent <ProtectionAntenna>();

            if (enemy != null)
            {
                Vector2 knockbackDirection = (enemy.transform.position - transform.position).normalized * shootKnockback;
                enemy.TakeDamage(shootDamage, knockbackDirection);
                Destroy(gameObject);
            }

            if (boss != null)
            {
                boss.TakeDamage(shootDamage);
                Destroy(gameObject);
            }

            if (antenna != null)
            {
                antenna.TakeDamage(shootDamage);
                Destroy(gameObject);
            }

            /*    if (!collision.CompareTag("Player"))
             *      Destroy(gameObject);*/
        }
        else
        {
            PlayerCombat enemy = collision.GetComponent <PlayerCombat>();
            if (enemy != null)
            {
                Vector2 knockbackDirection = (enemy.transform.position - transform.position).normalized * shootKnockback;
                enemy.TakeDamage(shootDamage, knockbackDirection);
                Destroy(gameObject);
            }

            /*     if (!collision.CompareTag("Enemy"))
             *       Destroy(gameObject);*/
        }
    }
    public override bool Decide(EnemyAIController controller, out State returnValue)
    {
        returnValue = null;
        RaycastHit2D[] hits;
        hits = Physics2D.CircleCastAll(controller.transform.position, radius, direction, 0, 1 << LayerMask.NameToLayer("Player"));
        foreach (RaycastHit2D hit in hits)
        {
            returnValue             = stateToGoTo;
            controller.target       = hit.transform;
            controller.enemy.target = hit.transform;
            return(true);
        }

        return(false);
    }
Пример #20
0
 // Start is called before the first frame update
 void Start()
 {
     currentState       = BasicMeleeState.Idle;
     player             = GameObject.FindGameObjectWithTag("Player");
     playerGridPosition = player.GetComponent <GridPosition>();
     playerHealth       = player.GetComponent <PlayerHealth>();
     gridPosition       = GetComponent <GridPosition>();
     aStar = GetComponent <AIPath>();
     attackCooldownCounter          = 0;
     attackTimeCounter              = 0;
     canAttack                      = false;
     spriteRenderer                 = GetComponent <SpriteRenderer>();
     returnPoint                    = Instantiate(pointer);
     returnPoint.transform.position = transform.position;
     destinationSetter              = GetComponent <AIDestinationSetter>();
     aiController                   = GetComponent <EnemyAIController>();
 }
Пример #21
0
 // Use this for initialization
 void Start()
 {
     rootObject = transform.parent.transform.parent.gameObject;
     if (rootObject.tag == "Enemy")
     {
         isPlayer = false;
     }
     myParent = transform.parent.gameObject;
     if (isPlayer)
     {
         shipScript = myParent.GetComponent <ScriptShipFollow>();
     }
     else
     {
         AIScript = myParent.GetComponent <EnemyAIController>();
     }
 }
Пример #22
0
    void Start()
    {
        //start moving the agent in path
        agent.Init();

        //instantiate the enemies
        for (int i = 0; i < numberOfEnemy; i++)
        {
            EnemyAIController _enemy = Instantiate(enemyPrefab, transform);
            _enemy.Init(enemyPositions, "Enemy " + i);
            _enemy.onPositionDataSender.AddListener(GetEnemyData);

            enemiesListRef.Add(_enemy);
        }

        StartCoroutine(MakeDecision());
    }
Пример #23
0
 void OnTriggerStay(Collider col)
 {
     if (col.tag == TagsUtil.ENEMY && isShooting)
     {
         EnemyAIController enemy = col.GetComponent <EnemyAIController>();
         spawEnemy.freirasActived.Remove(col.gameObject);
         spawEnemy.freirasDesactived.Add(col.gameObject);
         enemy.Died();
         freirasDied      += 1;
         contFreirasTotal += 1;
         if (freirasDied >= spawEnemy.maxEemyWave)
         {
             GameController.gameController.ShowWarning();
             StartCoroutine(NewWave());
             freirasDied = 0;
         }
     }
 }
Пример #24
0
    public override void DoAction(EnemyAIController controller)
    {
        //TODO: make getter function to check if attack is off cooldown
        currentTime += Time.deltaTime;
        if (currentTime > targetTime)
        {
            currentTime = 0;
            if (weapon != null)
            {
                weapon.Attack(1, Vector2.Angle(controller.transform.position, controller.target.position));
            }
        }

        else
        {
            if (weapon != null)
            {
                weapon.Attack(0, Vector2.Angle(controller.transform.position, controller.target.position));
            }
        }
    }
Пример #25
0
    private void CreateEnemy(bool isLeft)
    {
        int           timeline = uiGameScene.ElapsedGameTime;
        SpawnProperty prop     = spawnTable[timeline / 5];

        try
        {
        }
        catch (Exception e)
        {
        }
        GameObject spawnPosition = isLeft ? LeftPosition : RightPosition;

        Debug.Log("적이 스폰됨");
        if (spawnPosition != null)
        {
            Enemy             enemy      = AssetManager.Instance.Character.Retrieve("Zombie") as Enemy;
            EnemyAIController controller = enemy.GetComponent <EnemyAIController>();
            controller.SetSpawnProperty(prop);
            enemy.transform.position = spawnPosition.transform.position;
            controller.Spawn(isLeft);
        }
    }
Пример #26
0
 public void UpdateState(EnemyAIController controller)
 {
     DoActions(controller);
     CheckTransitions(controller);
 }
Пример #27
0
 protected override void Awake()
 {
     base.Awake();
     aiController = GetComponent <EnemyAIController>();
 }
Пример #28
0
 void Awake()
 {
     AIScript = (EnemyAIController)target;
 }
Пример #29
0
    //int movePathCounter;
    // Use this for initialization
    void Start()
    {
        //gameController = GameObject.Find("GameController").GetComponent<GameController>();
        enemyAI = GameObject.Find("GameController").GetComponent<EnemyAIController>();
        charStat = gameObject.GetComponent<CharacterStatus>();
        gridWorld = GameObject.Find("Grid").GetComponent<GridWorld>();
        gameController = GameObject.Find("GameController").GetComponent<GameController>();
        //battleController = GameObject.Find("GameController").GetComponent<Battle>();

        curRow = startRow;
        curCol = startCol;
        moveCounter = charStat.GetMovementRange();
        target = null;
        //endTurn = false;
        performActions = false;
        hasMoved = false;
        finishedAction = false;
        targetFound = false;
        //prevRow = curRow;
        //prevCol = curCol;
        //grid = GameObject.Find("Grid").GetComponent<GridWorld>();
        //cursorMove = GameObject.Find("Cursor").GetComponent<CursorMovement>();
        //cursorSelection = GameObject.Find("Cursor").GetComponent<CursorSelection>();
        //charStats = this.GetComponent<CharacterStatus>();
        //moveConfirmMenu = GameObject.Find("Main Camera").GetComponent<MoveConfirmMenu>();
        //gameController = GameObject.Find("GameController").GetComponent<GameController>();
        //gridTile = null;
        //moveCounter = charStats.GetMovementRange();
        //showMoveCounterText = false;
        performMovement = false;
        //hasMoved = false;
        movePathCounter = 0;
        reassign = false;

        transform.position = gridWorld.row[startRow].column[startCol].transform.position;
    }
Пример #30
0
    void Update()
    {
        int pFloorValue = 0;

        //finds proper player gameobject
        if (GameObject.FindWithTag("Player") != null)
        {
            GameObject       player      = GameObject.FindWithTag("Player");
            PlayerController pController = (PlayerController)player.GetComponent(typeof(PlayerController));
            pFloorValue = pController.floorValue;
        }
        else if (GameObject.FindWithTag("PlayerRagdoll") != null)
        {
            GameObject           player      = GameObject.FindWithTag("PlayerRagdoll");
            PlayerRagdollHandler pController = (PlayerRagdollHandler)player.GetComponent(typeof(PlayerRagdollHandler));
            pFloorValue = pController.floorValue;
            //Debug.Log("Player ragdoll floorValue: " + pFloorValue);
        }


        //hides enemies based on floor values
        foreach (GameObject enemy in enemyList)
        {
            if (enemy != null)
            {
                int eFloorValue = 0;
                //finds proper enemy controller script
                if (enemy.tag == "Enemy")
                {
                    EnemyAIController controller = (EnemyAIController)enemy.GetComponent(typeof(EnemyAIController));
                    if (controller != null)
                    {
                        eFloorValue = controller.floorValue;
                    }
                }
                else if (enemy.tag == "EnemyRagdoll")
                {
                    RagdollHandler controller = (RagdollHandler)enemy.GetComponent(typeof(RagdollHandler));
                    if (controller != null)
                    {
                        eFloorValue = controller.floorValue;
                    }
                }
                //hides enemies based on floor values
                if (eFloorValue > 0 && eFloorValue < pFloorValue)
                {
                    foreach (Transform child in enemy.transform)
                    {
                        if (child.gameObject.name == "Body")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer> ().enabled = false;
                        }
                        if (child.gameObject.name == "Gun")
                        {
                            child.gameObject.GetComponent <MeshRenderer> ().enabled = false;
                        }
                        if (child.gameObject.name == "Cube")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer>().enabled = false;
                        }
                    }
                }
                else
                {
                    foreach (Transform child in enemy.transform)
                    {
                        if (child.gameObject.name == "Body")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer> ().enabled = true;
                        }
                        if (child.gameObject.name == "Gun")
                        {
                            child.gameObject.GetComponent <MeshRenderer> ().enabled = true;
                        }
                        if (child.gameObject.name == "Cube")
                        {
                            child.gameObject.GetComponent <SkinnedMeshRenderer>().enabled = true;
                        }
                    }
                }
            }
        }
    }
Пример #31
0
    // Use this for initialization
    void Start()
    {
        battle = gameObject.GetComponent<Battle>();
        enemyAIController = gameObject.GetComponent<EnemyAIController>();
        actionMenu = GameObject.Find("Main Camera").GetComponent<ActionMenu>();
        moveConfirmMenu = GameObject.Find("Main Camera").GetComponent<MoveConfirmMenu>();

        levelStart = true;
        playerTurn = false;
        enemyTurn = false;
        attackMode = false;
        charIsMoving = false;
        displayAttackRange = false;
        previousMenu = "";
        enemySelected = null;
        AddAllEnemies();
        AddAllPlayers();
        mapCam.enabled = true;
        battleCam.enabled = false;
        victory = false;
        defeat = false;
        //displayTurnText = true;
        //playerTurnStart = false;
        //enemyTurnStart = false;
        displayTurnTimer = displayTurnTextConst;
        audio.loop = true;

        //players = GameObject.FindGameObjectsWithTag("Player");
        //cursorSelection = GameObject.Find("Cursor").GetComponent<CursorSelection>();
    }
Пример #32
0
 public ChaseState(EnemyAIController enemyAIController)
 {
     enemyAI = enemyAIController;
 }