IEnumerator chargeAndFire(ShipAi enermyAI, ShipSpawner cl)
    {
        AttackHandeler ah = enermyAI.GetComponent <AttackHandeler>();

        ah.ChargeUp();
        for (int i = 0; i < FixedUpdateFramesChargedFor; i++)
        {
            yield return(new WaitForFixedUpdate());

            if (enermyAI == null || ah == null || ah.spawnPoint == null)
            {
                yield break;
            }
            var hit = Physics2D.Raycast(ah.spawnPoint.transform.position, enermyAI.transform.up, 10);
            Debug.DrawRay(ah.spawnPoint.transform.position, enermyAI.transform.up * 10);
            if (hit)
            {
                Debug.Log("hit", hit.transform);
                Debug.Log("by", enermyAI.transform);
                var other_team = hit.transform.GetComponent <TeamHandeler>();
                var my_team    = enermyAI.GetComponent <TeamHandeler>();
                if (!my_team.Equals(other_team))
                {
                    if (ah.charged)
                    {
                        ah.Fire();
                    }
                }
            }
        }
        ah.Discharge();
    }
Exemple #2
0
 private void OnValidate()
 {
     if (useSelf)
     {
         mover    = GetComponent <MovemonetHarness>();
         attacker = GetComponent <AttackHandeler>();
     }
 }