using Photon.Pun; using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "AoEWithImpactEventAbility", menuName = "RiftMayhem/AbilitySystem/Abilities/Area of Effect With Impact Event Ability", order = 0)] public class AreaOfEffectWithImpactEventAbility : AreaOfEffectAbility { public float impactDelay; private NetworkedAreaOfEffectWithImpactEvent networkedAreaOfEffectWithImpactEvent; public override void Execute(PhotonView user, Taggable userTag) { user.GetComponent().ChangeValue(-manaCost); if (spawnUnderUser) { instantiatedArea = PhotonNetwork.Instantiate("Abilities/" + aoePrefab.name, user.transform.position, Quaternion.identity); //instantiatedArea.transform.parent = user.transform; networkedAreaOfEffectWithImpactEvent = instantiatedArea.GetComponent(); networkedAreaOfEffectWithImpactEvent.owner = user; networkedAreaOfEffectWithImpactEvent.ownerTag = userTag; networkedAreaOfEffectWithImpactEvent.ability = this; networkedAreaOfEffectWithImpactEvent.radius = radius; networkedAreaOfEffectWithImpactEvent.telegraphDelay = telegraphDelay; networkedAreaOfEffectWithImpactEvent.lifeSpan = lifeSpan; networkedAreaOfEffectWithImpactEvent.canHitSelf = canHitSelf; networkedAreaOfEffectWithImpactEvent.impactDelay = impactDelay; networkedAreaOfEffectWithImpactEvent.Init(); return; } instantiatedArea = PhotonNetwork.Instantiate("Abilities/" + aoePrefab.name, user.GetComponentInChildren().aoeRayHitLocationSnapshot.position, Quaternion.identity); networkedAreaOfEffectWithImpactEvent = instantiatedArea.GetComponent(); networkedAreaOfEffectWithImpactEvent.owner = user; networkedAreaOfEffectWithImpactEvent.ownerTag = userTag; networkedAreaOfEffectWithImpactEvent.ability = this; networkedAreaOfEffectWithImpactEvent.radius = radius; networkedAreaOfEffectWithImpactEvent.telegraphDelay = telegraphDelay; networkedAreaOfEffectWithImpactEvent.lifeSpan = lifeSpan; networkedAreaOfEffectWithImpactEvent.canHitSelf = canHitSelf; networkedAreaOfEffectWithImpactEvent.impactDelay = impactDelay; networkedAreaOfEffectWithImpactEvent.Init(); } public override void Execute(PhotonView user, Taggable userTag, Vector3 point) { user.GetComponent().ChangeValue(-manaCost); instantiatedArea = PhotonNetwork.Instantiate("Abilities/" + aoePrefab.name, point, Quaternion.identity); networkedAreaOfEffectWithImpactEvent = instantiatedArea.GetComponent(); networkedAreaOfEffectWithImpactEvent.owner = user; networkedAreaOfEffectWithImpactEvent.ownerTag = userTag; networkedAreaOfEffectWithImpactEvent.ability = this; networkedAreaOfEffectWithImpactEvent.radius = radius; networkedAreaOfEffectWithImpactEvent.telegraphDelay = telegraphDelay; networkedAreaOfEffectWithImpactEvent.lifeSpan = lifeSpan; networkedAreaOfEffectWithImpactEvent.canHitSelf = canHitSelf; networkedAreaOfEffectWithImpactEvent.impactDelay = impactDelay; networkedAreaOfEffectWithImpactEvent.Init(); } }