using Photon.Pun; using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "AoEOverTimeAbility", menuName = "RiftMayhem/AbilitySystem/Abilities/Area of Effect Over Time Ability", order = 0)] public class AreaOfEffectOverTimeAbility : AreaOfEffectAbility { public float duration; private NetworkedAreaOfEffectOverTime networkedAreaOfEffectOverTime; public override void Execute(PhotonView user, Taggable userTag) { Debug.Log("Casting GELINHO"); user.GetComponent().ChangeValue(-manaCost); if (cam == null) cam = Camera.main; ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 100f, movementMask)) { Debug.Log("GELINHO: HIT"); instantiatedArea = PhotonNetwork.Instantiate("Abilities/" + aoePrefab.name, hit.point, Quaternion.identity); networkedAreaOfEffectOverTime = instantiatedArea.GetComponent(); networkedAreaOfEffectOverTime.owner = user; networkedAreaOfEffectOverTime.ownerTag = userTag; networkedAreaOfEffectOverTime.ability = this; networkedAreaOfEffectOverTime.radius = radius; networkedAreaOfEffectOverTime.telegraphDelay = telegraphDelay; networkedAreaOfEffectOverTime.lifeSpan = lifeSpan; networkedAreaOfEffectOverTime.duration = duration; networkedAreaOfEffectOverTime.Init(); } } public override void Execute(PhotonView user, Taggable userTag, Vector3 point) { user.GetComponent().ChangeValue(-manaCost); instantiatedArea = PhotonNetwork.Instantiate("Abilities/" + aoePrefab.name, point, Quaternion.identity); networkedAreaOfEffectOverTime = instantiatedArea.GetComponent(); networkedAreaOfEffectOverTime.owner = user; networkedAreaOfEffectOverTime.ownerTag = userTag; networkedAreaOfEffectOverTime.ability = this; networkedAreaOfEffectOverTime.radius = radius; networkedAreaOfEffectOverTime.telegraphDelay = telegraphDelay; networkedAreaOfEffectOverTime.lifeSpan = lifeSpan; networkedAreaOfEffectOverTime.duration = duration; networkedAreaOfEffectOverTime.Init(); } }