you really gotta calm down, marisa...
This commit is contained in:
parent
13bb58ea03
commit
b9fb490dce
68 changed files with 990 additions and 44 deletions
|
|
@ -0,0 +1,66 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class NondirectionalLaser : Laser
|
||||
{
|
||||
[SerializeField] private int beamCount = 1;
|
||||
[SerializeField] private Transform beamRoot;
|
||||
private List<BeamCollider> beamInstances = new();
|
||||
|
||||
protected override void AbilityEffects()
|
||||
{
|
||||
canCooldown = false;
|
||||
currentDuration = duration;
|
||||
currentDebounce = damageDebounceTime;
|
||||
beamRoot.gameObject.SetActive(true);
|
||||
}
|
||||
protected override void Update()
|
||||
{
|
||||
//we're doing this the stupid way i guess because i am stupid
|
||||
if (currentCooldown > 0)
|
||||
{
|
||||
currentCooldown -= Time.deltaTime;
|
||||
}
|
||||
if (currentDuration > 0)
|
||||
{
|
||||
// i think i can just put spinobject in it and that'll work lol
|
||||
if (currentDebounce > 0)
|
||||
{
|
||||
currentDebounce -= Time.deltaTime;
|
||||
if (currentDebounce <= 0)
|
||||
{
|
||||
foreach (Entity enemy in enemyList.ToArray())
|
||||
{
|
||||
if (!enemy)
|
||||
{
|
||||
enemyList.Remove(enemy);
|
||||
continue;
|
||||
}
|
||||
enemy.TakeDamage(power);
|
||||
}
|
||||
currentDebounce = damageDebounceTime;
|
||||
}
|
||||
}
|
||||
if (currentDuration <= 0)
|
||||
{
|
||||
canCooldown = true;
|
||||
beamRoot.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
protected override void CreateBeam()
|
||||
{
|
||||
float rotationAmount = 360f / beamCount;
|
||||
for (int i = 0; i < beamCount; i++)
|
||||
{
|
||||
BeamCollider newBeamObjectInstance = Instantiate(beamObject, transform.position, Quaternion.identity);
|
||||
beamInstances.Add(newBeamObjectInstance);
|
||||
newBeamObjectInstance.transform.SetParent(beamRoot);
|
||||
newBeamObjectInstance.transform.localScale = new Vector3(length, width, 1);
|
||||
newBeamObjectInstance.transform.Translate(Vector3.right * (newBeamObjectInstance.transform.localScale.x * 0.5f) + new Vector3(offset, 0, 0));
|
||||
newBeamObjectInstance.transform.RotateAround(beamRoot.position, Vector3.forward, rotationAmount * i);
|
||||
newBeamObjectInstance.thisLaser = this;
|
||||
}
|
||||
beamRoot.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue