add scripts from post-scale attempt
This commit is contained in:
parent
96dcfa9064
commit
87383d5b8c
18 changed files with 362 additions and 148 deletions
52
Assets/Scripts/Abilities/OrinMoveAndSpawn.cs
Normal file
52
Assets/Scripts/Abilities/OrinMoveAndSpawn.cs
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
public class OrinMoveAndSpawn : EnemyAbility
|
||||
{
|
||||
[SerializeField] private Enemy ghostFairy;
|
||||
[SerializeField] private int fairiesToSpawn;
|
||||
private int currentFairiesLeft;
|
||||
[SerializeField] private int variance;
|
||||
[SerializeField] private Enemy thisEnemy;
|
||||
[SerializeField] private float moveSpeed;
|
||||
protected override void AbilityEffects()
|
||||
{
|
||||
base.AbilityEffects();
|
||||
currentFairiesLeft = fairiesToSpawn + Random.Range(-variance, variance);
|
||||
thisEnemy.preventWobble = true;
|
||||
thisEnemy.isStalled = true;
|
||||
StartCoroutine(MoveToPosition(transform.position, WaveManager.instance.GetRandomEnemyPoint(), moveSpeed));
|
||||
}
|
||||
|
||||
private IEnumerator MoveToPosition(Vector3 enemyOrigin, Vector3 moveDirection, float lerpSpeed)
|
||||
{
|
||||
float currentMovement = 0;
|
||||
while (currentMovement < 1)
|
||||
{
|
||||
currentMovement += Time.deltaTime * lerpSpeed;
|
||||
if (currentMovement >= 1)
|
||||
{
|
||||
SpawnGhostFairy();
|
||||
}
|
||||
thisEnemy.transform.position = Vector3.Lerp(enemyOrigin, moveDirection, currentMovement);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void SpawnGhostFairy()
|
||||
{
|
||||
Enemy newEnemy = Instantiate(ghostFairy, WaveManager.instance.enemyFolder);
|
||||
newEnemy.originalPosition = transform.position;
|
||||
WaveManager.instance.enemiesInPlay.Add(newEnemy);
|
||||
if (currentFairiesLeft > 0)
|
||||
{
|
||||
currentFairiesLeft--;
|
||||
StartCoroutine(MoveToPosition(transform.position, WaveManager.instance.GetRandomEnemyPoint(), moveSpeed));
|
||||
}
|
||||
else
|
||||
{
|
||||
thisEnemy.preventWobble = false;
|
||||
thisEnemy.isStalled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue