Esempio n. 1
0
    void Assign(GameObject minion, GameObject target)
    {
        MinionAI mai = minion.GetComponent <MinionAI>();

        mai.setBusy(true);
        mai.setAssignedBuilding(target);
        mai.working = false;

        ResourceExtractor re = target.GetComponent <ResourceExtractor>();

        re.workers.Add(minion);
        minion.GetComponent <MinionAI>().setTargetResource(re.findNearbyResource());
    }
Esempio n. 2
0
 // Start is called before the first frame update
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     isDead        = false;
     status        = gameObject.GetComponent <Status>();
     status.CurrHp = status.MaxHp;
     SetMinionTag();
     SetMinionDestination();
     SetCurrDestination();
     InvokeRepeating("SearchTarget", 0f, 0.5f);
 }
Esempio n. 3
0
    private IEnumerator MinionSpawning()
    {
        int spawnCount = 0;

        while (true)
        {
            Team team = 0;
            foreach (Transform teamPoint in spawnPoints)
            {
                switch (teamPoint.name)
                {
                case "WHITE":
                    team = Team.WHITE;
                    break;

                case "BLACK":
                    team = Team.BLACK;
                    break;

                default:
                    Debug.LogWarning("spawnPointsに指定したオブジェクトの名前が不正です。\n");
                    break;
                }

                int pos = 0;
                foreach (Transform point in teamPoint)
                {
                    MinionAI minionAI = GameManager.instance.Summon(0, point, team).GetComponent <MinionAI>();
                    minionAI.photonView.RPC("SetValue", PhotonTargets.All, (MinionLane)pos, point.position, team);

                    pos++;
                }
            }

            spawnCount++;
            if (spawnCount < waveSpawnLimit)
            {
                yield return(spawnInterval);
            }
            else
            {
                spawnCount = 0;
                yield return(waveInterval);
            }
        }
    }
Esempio n. 4
0
 public override void StartAttack()
 {
     if (attackCooldownLeft <= 0.0f && owner.owner.sensesAI.GetVisibleTargets() != null && owner.owner.sensesAI.GetVisibleTargets().Count > 0)
     {
         GameObject bestTarget = owner.owner.sensesAI.GetVisibleTargets()[0];
         foreach (GameObject target in owner.owner.sensesAI.GetVisibleTargets())
         {
             if (Vector3.Distance(bestTarget.transform.position, transform.position) > Vector3.Distance(target.transform.position, transform.position))
             {
                 bestTarget = target;
             }
         }
         if (IsTargetInRange(bestTarget))
         {
             MinionAI targetAI = bestTarget.GetComponent <MinionAI>();
             if (targetAI != null)
             {
                 targetAI.ApplyDamage(damage);
                 attackCooldownLeft = attackCooldown;
             }
         }
     }
 }
 internal void HitDetectedOn(MinionAI minionAi)
 {
     minionAi.ApplyDamage((int)WeaponCore.Strength * 2);
     Debug.Log("Applied dmg");
 }
Esempio n. 6
0
 void Start()
 {
     AI = gameObject.GetComponentInParent <MinionAI>();
     Physics.IgnoreCollision(GetComponent <CapsuleCollider>(), parentcollider);
 }
Esempio n. 7
0
    void Damage(Transform enemy)
    {
        MinionAI e = enemy.GetComponent <MinionAI>();

        e.TakeDamage(turret.GetComponent <Turret>().turretDamage);
    }