using UnityEngine; using UnityEngine.Networking; namespace RoR2.Projectile; [RequireComponent(typeof(ProjectileDamage))] [RequireComponent(typeof(ProjectileController))] public class ProjectileIntervalOverlapAttack : MonoBehaviour { public HitBoxGroup hitBoxGroup; public float interval; public float damageCoefficient = 1f; private float countdown; private ProjectileController projectileController; private ProjectileDamage projectileDamage; private void Awake() { projectileController = GetComponent(); projectileDamage = GetComponent(); } private void Start() { countdown = 0f; } private void FixedUpdate() { if (!NetworkServer.active) { return; } countdown -= Time.fixedDeltaTime; if (countdown <= 0f) { countdown += interval; if ((bool)hitBoxGroup) { OverlapAttack overlapAttack = new OverlapAttack(); overlapAttack.attacker = projectileController.owner; overlapAttack.inflictor = base.gameObject; overlapAttack.teamIndex = projectileController.teamFilter.teamIndex; overlapAttack.damage = projectileDamage.damage * damageCoefficient; overlapAttack.hitBoxGroup = hitBoxGroup; overlapAttack.isCrit = projectileDamage.crit; overlapAttack.procCoefficient = 0f; overlapAttack.damageType = projectileDamage.damageType; overlapAttack.Fire(); } } } }