MagicItems Cast Actions Delay and Inspector issues

omg_ketchup

New member
Hey,

I've been working with MagicItems again, and I'm still experiencing the issue with the Delay not working. Spawning an Explosion object (with Spawn Object) and a delay of 0.1 seconds will not spawn anything. Setting it to 0 will work fine. If there's several SpawnObjects with delays, any value above 0.0 will not spawn. The UseEvent duration is 0.4, the UseEventComplete duration is 0.6, the Use Rate is 1.5, and the StopUseAbilityDelay is 0.5, in case those values help identify the issue.

That's fine, I can work around it, whatever NBD. Hopefully the behavior will be fixed in an update.

The other more important issue I'm experiencing I encountered while working with MagicItem CastActions- if I have a MagicItem Prefab selected in the Inspector, then hit Play, then Stop, all of the CastActions that have been added to the item are removed except for the one at the top of the list. I also get the following error in the Console. It appears there's an issue in the MagicItemInspector - I haven't tried to solve it on my own, but I figured I would report it.

Code:
UnassignedReferenceException: The variable m_Character of MagicItem has not been assigned.
You probably need to assign the m_Character variable of the MagicItem script in the inspector.
UnityEngine.GameObject.GetComponentInParent[T] () (at <ee47be73f7ef409ca5e5ce4b121745b7>:0)
Opsive.Shared.Game.GameObjectExtensions.GetCachedParentComponent[T] (UnityEngine.GameObject gameObject) (at <52a41b32fbc54a60add8140e367dde46>:0)
Opsive.Shared.StateSystem.StateManager.InitializeInternal (UnityEngine.GameObject gameObject, Opsive.Shared.StateSystem.IStateOwner owner, Opsive.Shared.StateSystem.State[] states) (at Assets/Opsive/Shared/StateSystem/StateManager.cs:92)
Opsive.Shared.StateSystem.StateManager.Initialize (UnityEngine.GameObject gameObject, Opsive.Shared.StateSystem.IStateOwner owner, Opsive.Shared.StateSystem.State[] states) (at Assets/Opsive/Shared/StateSystem/StateManager.cs:68)
Opsive.UltimateCharacterController.StateSystem.StateObject.Initialize (UnityEngine.GameObject gameObject) (at Assets/Opsive/UltimateCharacterController/Scripts/StateSystem/StateObject.cs:30)
Opsive.UltimateCharacterController.Items.Actions.Magic.CastActions.CastAction.Initialize (UnityEngine.GameObject character, Opsive.UltimateCharacterController.Items.Actions.MagicItem magicItem, System.Int32 index) (at Assets/Opsive/UltimateCharacterController/Scripts/Items/Actions/Magic/CastActions/CastAction.cs:40)
Opsive.UltimateCharacterController.Items.Actions.Magic.CastActions.SpawnObject.Initialize (UnityEngine.GameObject character, Opsive.UltimateCharacterController.Items.Actions.MagicItem magicItem, System.Int32 index) (at Assets/Opsive/UltimateCharacterController/Scripts/Items/Actions/Magic/CastActions/SpawnObject.cs:52)
Opsive.UltimateCharacterController.Items.Actions.MagicItem.DeserializeCastActions (System.Boolean forceDeserialization) (at Assets/Opsive/UltimateCharacterController/Scripts/Items/Actions/MagicItem.cs:323)
Opsive.UltimateCharacterController.Editor.Inspectors.Items.Actions.MagicItemInspector.OnEnable () (at Assets/Opsive/UltimateCharacterController/Editor/Inspectors/Items/Actions/MagicItemInspector.cs:61)
 
I've been working with MagicItems again, and I'm still experiencing the issue with the Delay not working. Spawning an Explosion object (with Spawn Object) and a delay of 0.1 seconds will not spawn anything. Setting it to 0 will work fine. If there's several SpawnObjects with delays, any value above 0.0 will not spawn. The UseEvent duration is 0.4, the UseEventComplete duration is 0.6, the Use Rate is 1.5, and the StopUseAbilityDelay is 0.5, in case those values help identify the issue.
When the ability is stopped the spawn delay will stop as well. I'm not sure if that is the right functionality but it is the way that it is right now.

The other more important issue I'm experiencing I encountered while working with MagicItem CastActions- if I have a MagicItem Prefab selected in the Inspector, then hit Play, then Stop, all of the CastActions that have been added to the item are removed except for the one at the top of the list. I also get the following error in the Console. It appears there's an issue in the MagicItemInspector - I haven't tried to solve it on my own, but I figured I would report it.
Try changing the true to false on line 61 of MagicItemInspector.
 
When the ability is stopped the spawn delay will stop as well. I'm not sure if that is the right functionality but it is the way that it is right now.

Is there any other way to get the delay working? I would like to spawn a particle effect with sound then after that effect is over the spawn projectile will fire.
 
That currently is not possible with the MagicItem. You'll need to extend your stop event/timer to be able to have it complete after the delay.
 
Top