public override void Tick() { model.LookAt(model.TargetObject, 1); // Debug.Log("Hail Attack Execute", gameObject); if (model.TargetObject == null) { Exit(); } randRotation.eulerAngles = new Vector3(Random.Range(-(randomizedAngle * 2), -randomizedAngle), 0, Random.Range(-(randomizedAngle * 2), -randomizedAngle)); randOffset = new Vector3(Random.Range(-0.5f, 0.5f), 1, Random.Range(-0.5f, 0.5f)); if (energy.Amount > 0 && delayTick >= delay) { GameObject spawn = Instantiate(syphonProjectile, transform.position + randOffset, randRotation); if (spawn.GetComponent <ProjectileSyphon>() != null) { spawn.GetComponent <ProjectileSyphon>().parentObject = model.gameObject; spawn.GetComponent <ProjectileSyphon>().target = model.TargetObject.transform; } energy.Amount -= energyCost; delayTick = 0; } else { delayTick++; } if (energy.Amount < 0) { Exit(); } }
public override void Tick() { model.LookAt(model.TargetObject, 1); // Debug.Log("Hail Attack Execute", gameObject); if (model.TargetObject == null) { Exit(); return; } randOffset = new Vector3(Random.Range(-0.5f, 0.5f), 1, Random.Range(-0.5f, 0.5f)); Vector3 lookPos = (transform.position + randOffset) - model.transform.position; lookPos.y = 0; randRotation = Quaternion.LookRotation(lookPos); if (energy.Amount > 0 && delayTick >= delay) { GameObject spawn = Instantiate(hailProjectile, transform.position + randOffset, Quaternion.identity); spawn.transform.rotation = Quaternion.Slerp(spawn.transform.rotation, randRotation, 1); spawn.transform.rotation = Quaternion.Inverse(spawn.transform.rotation); spawn.transform.LookAt(spawn.transform.position + spawn.transform.forward + (Vector3.up * 1.5f)); spawn.GetComponent <ProjectileChase>().parentObject = model.gameObject; spawn.GetComponent <ProjectileChase>().target = model.TargetObject.transform; energy.Amount -= energyCost; delayTick = 0; } else { delayTick++; } if (energy.Amount < 0) { Exit(); } }
public override void Tick() { if (spawnedSpiritBomb == null) { base.Exit(); return; } model.LookAt(model.TargetObject, 1); // Debug.Log("Attack Execute", gameObject); if (energy.Amount > 0 && delayTick >= delay) { spawnedSpiritBomb.GetComponent <Projectile_SpiritBomb>().Power(energyCost); energy.Amount -= energyCost; delayTick = 0; } else { delayTick++; } }