Esempio n. 1
0
 void SendReport(AIFight aiFight)
 {
     if (aifight.hp <= 0)
     {
         GameController.gameController.report.GenerateMessage(shooter.name, aiFight.aiClass.name, shooter.gameObject.tag);
     }
 }
Esempio n. 2
0
 void DealDamage(Collision2D other)
 {
     if (!stop)
     {
         totalDamage = basicDamage + (rb.velocity.magnitude / 60) * basicDamage - shieldArmor;
         if (totalDamage < 0)
         {
             totalDamage = 0;
         }
         HitHorse(other);
         HitWheel(other);
         HitVehicle(other);
         HitAnimal(other);
         if (other.collider.CompareTag("Enemy"))
         {
             aifight     = other.collider.GetComponent <AIFight>();
             aifight.hp -= totalDamage;
             BleedEffect();
             SendReport(aifight);
         }
         else if (other.collider.CompareTag("Ally"))
         {
             aifight     = other.collider.GetComponent <AIFight>();
             aifight.hp -= totalDamage;
             BleedEffect();
             SendReport(aifight);
         }
         else if (other.collider.CompareTag("Player"))
         {
             playerFight     = other.collider.GetComponent <PlayerFight>();
             playerFight.hp -= totalDamage;
             BleedEffect();
         }
     }
 }
Esempio n. 3
0
    // Use this for initialization
    void Start()
    {
        aiFight     = transform.parent.parent.GetComponent <AIFight>();
        shieldArmor = 5;

        shieldRange = GetComponent <Collider2D>();
        user        = transform.parent.parent;
    }
Esempio n. 4
0
 void Start()
 {
     status = GetComponent <AIStatus>();
     navi   = GetComponent <NavMeshAgent>();
     anim   = GetComponent <Animator>();
     fight  = GetComponent <AIFight>();
     leftHandTrigger.enabled  = false;
     rightHandTrigger.enabled = false;
 }
Esempio n. 5
0
 // Use this for initialization
 void Start()
 {
     aiClass    = GetComponent <AIClass>();
     aiFight    = GetComponent <AIFight>();
     aiMovement = GetComponent <AIMovement>();
     aiInteract = GetComponent <AIInteract>();
     CheckJob();
     GameController.gameController.questControl.GenerateQuest(job, this);
 }
Esempio n. 6
0
    void Start()
    {
        aiClass        = transform.parent.parent.GetComponent <AIClass>();
        aiMovement     = transform.parent.parent.GetComponent <AIMovement>();
        playerMovement = transform.parent.parent.GetComponent <PlayerMovements>();
        aiFight        = transform.parent.parent.GetComponent <AIFight>();
        animator       = transform.parent.parent.GetComponent <Animator>();
        mainHand       = transform.parent.transform;
        body           = mainHand.parent.transform;


        attacking = false;
        distance  = 0f;


        CheckType();
    }
Esempio n. 7
0
    void ClearTarget()
    {
        if (!aiMovement.inRange)
        {
            aimming = false;
        }

        if (playerFight)
        {
            if (gameObject.CompareTag("Enemy") & target.CompareTag("Player"))
            {
                if (playerFight.dead)
                {
                    target            = null;
                    aiMovement.target = null;
                    hasTarget         = false;
                    aiFight           = null;
                }
            }
        }
        else if (aiFight)
        {
            if (gameObject.CompareTag("Enemy") | target.CompareTag("Ally"))
            {
                if (aiFight.dead)
                {
                    target            = null;
                    aiMovement.target = null;
                    hasTarget         = false;
                    playerFight       = null;
                }
            }
            else if (gameObject.CompareTag("Ally") | target.CompareTag("Enemy"))
            {
                if (aiFight.dead)
                {
                    target            = null;
                    aiMovement.target = null;
                    hasTarget         = false;
                }
            }
        }
    }
Esempio n. 8
0
    void Start()
    {
        GetSprite();
        //SetItemList();
        armor          = GetComponent <Armor>();
        animator       = GetComponent <Animator>();
        thisMan        = GetComponent <AIFight>();
        thisPlayer     = GetComponent <PlayerFight>();
        aiMovement     = GetComponent <AIMovement>();
        playerMovement = GetComponent <PlayerMovements>();
        offHand.GetComponent <SpriteRenderer>().sprite   = null;
        mainHand.GetComponent <SpriteRenderer>().sprite  = null;
        bodyArmor.GetComponent <SpriteRenderer>().sprite = null;
        back.GetComponent <SpriteRenderer>().sprite      = null;
        back2.GetComponent <SpriteRenderer>().sprite     = null;
        bowLeft.GetComponent <SpriteRenderer>().sprite   = null;
        bowRight.GetComponent <SpriteRenderer>().sprite  = null;
        SetLevel();


        CheckClass();
    }
Esempio n. 9
0
    void FindTargetWithTag()
    {
        if (gameObject.CompareTag("Ally"))
        {
            allTargets = GameObject.FindGameObjectsWithTag("Enemy");
        }
        else if (gameObject.CompareTag("Enemy"))
        {
            allTargets = GameObject.FindGameObjectsWithTag("Ally");
        }

        for (int i = 0; i < allTargets.Length; i++)
        {
            distance = Vector2.Distance(allTargets[i].transform.position, transform.position);
            if (i - 1 >= 0)
            {
                lastDistance = Vector2.Distance(allTargets[i - 1].transform.position, transform.position);
                if (allTargets.Length - 1 > nearestTargetNumber)
                {
                    if (distance < lastDistance
                        & distance < Vector2.Distance(allTargets[nearestTargetNumber].transform.position, transform.position)
                        & !allTargets[i].GetComponent <AIFight>().dead)
                    {
                        nearestTarget       = allTargets[i].transform;
                        nearestTargetNumber = i;
                    }
                }
                else
                {
                    nearestTargetNumber -= 1;
                }
            }
        }
        if (allTargets.Length - 1 >= nearestTargetNumber)
        {
            nearestTarget = allTargets[nearestTargetNumber].transform;
        }

        if (allTargets.Length == 1)
        {
            nearestTarget = allTargets[0].transform;
        }
        else if (allTargets.Length == 0)
        {
            nearestTarget = null;
            hasTarget     = false;
        }

        if (gameObject.CompareTag("Enemy"))
        {
            GameObject player;
            player = null;
            player = GameObject.FindGameObjectWithTag("Player");

            if (player)
            {
                playerDistance = Vector2.Distance(player.transform.position, transform.position);
            }


            if (allTargets.Length == 1 & !player)
            {
                nearestTarget = allTargets[0].transform;
                hasTarget     = true;
            }
            else if (allTargets.Length == 0 & !player)
            {
                nearestTarget = null;
                hasTarget     = false;
            }

            if (player & nearestTarget)
            {
                if (playerDistance < Vector2.Distance(nearestTarget.transform.position, transform.position))
                {
                    nearestTarget = player.transform;
                    hasTarget     = true;
                }
            }
            else if (player)
            {
                nearestTarget = player.transform;
                hasTarget     = true;
            }
        }



        if (!movingToSpot & nearestTarget)
        {
            if (gameObject.CompareTag("Ally") & nearestTarget.CompareTag("Enemy"))
            {
                if (!nearestTarget.GetComponent <AIFight>().dead)
                {
                    target            = nearestTarget.GetComponent <Transform>();
                    aiFight           = target.GetComponent <AIFight>();
                    aiMovement.target = target;
                    hasTarget         = true;
                    playerFight       = null;
                }
            }
            else if (gameObject.CompareTag("Enemy") & nearestTarget.CompareTag("Ally"))
            {
                if (!nearestTarget.GetComponent <AIFight>().dead)
                {
                    target            = nearestTarget.GetComponent <Transform>();
                    aiFight           = target.GetComponent <AIFight>();
                    aiMovement.target = target;
                    hasTarget         = true;
                    playerFight       = null;
                }
            }
            else if (gameObject.CompareTag("Enemy") & nearestTarget.CompareTag("Player"))
            {
                if (!nearestTarget.GetComponent <PlayerFight>().dead)
                {
                    target            = nearestTarget.GetComponent <Transform>();
                    playerFight       = target.GetComponent <PlayerFight>();
                    aiMovement.target = target;
                    hasTarget         = true;
                    aiFight           = null;
                }
            }

            //Spearman targets horse first
            nearestTargetDistance = Vector2.Distance(nearestTarget.transform.position, transform.position);

            if (aiClass.useSpear)
            {
                if (nearestTargetDistance > aiClass.spear.nearestHorseDistance & aiClass.spear.horse)
                {
                    target            = aiClass.spear.target;
                    aiMovement.target = aiClass.spear.target;
                }
            }
        }
    }