• edited September 2020
    2.5) Got it sorted out now, thanks for breaking it down.

    3) Works perfectly, thank you!

    3.5) I guess maybe I phrased it wrong, what I meant to say more so was that shouldn't using the Change Member menu option use the same GUI features as the what the main battle menu is using? As in use the same Skin? What I mean is that Hovering over it with my cursor the Change Member menu functions differently than the battle menu as a whole. So I wasn't sure if this was because the Change Member menu is defined by something differently.

    This is an example of what I mean: https://streamable.com/onfz6m

    4) Something strange is happening in my capture event now and having a weird effect on my evolution event. When I capture and add the target to my group, in my evolution event it now triggers the custom combatant evolution event twice. I feel like it is the way I'm joining the captured target to my user combatant group as after some testing this doesn't occur if I just defeat an enemy without capturing it, only when I join one to the party directly or through the nodes that would allow me to select and remove a combatant and then join the target one to my current group.

    Here's the settings I have for selecting all my combatants, along with the join and leave nodes I have setup respectively. And an overall view of the event: https://imgur.com/a/3XKzcDM


    5) Okay another unexpected error. Ugh. All I did was duplicate BaseSkins that I am using for my GUI box to edit them to see if I can tweak the settings to solve my problem I had with the change members. The thing is... doing this broke every GUI box appearing in my game. I'm at a loss for words, blah. It brings up this error when running:

    ArgumentException: oldValue is the empty string.
    System.String.ReplaceInternal (System.String oldValue, System.String newValue) (at <fb001e01371b4adca20013e0ac763896>:0)
    System.String.Replace (System.String oldValue, System.String newValue) (at <fb001e01371b4adca20013e0ac763896>:0)
    ORKFramework.CustomTextCode.Replace (System.String& text) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.TextCodeSettings.ReplaceCustomTextCodes (System.String& text) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.TextHelper.ReplaceSpecials (System.String& text, ORKFramework.VariableHandler handler) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.TextHelper.ReplaceSpecials (System.String& text) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.GUIBoxContent.SetName (System.String newName) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.DialogueContent..ctor (System.String text, System.String name, ORKFramework.ChoiceContent[] choice, ORKFramework.IChoice ci, System.Int32 startSelection, ORKFramework.IPortrait speakerPortrait) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.DialogueChoice.Show () (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.DialogueChoice.Show (ORKFramework.Events.BaseEvent baseEvent, System.Int32 next) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.Steps.ShowDialogueStep.Execute (ORKFramework.Events.BaseEvent baseEvent) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.GameEvent.ExecuteNextStep () (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.BaseEvent.StepFinished (System.Int32 next) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.Steps.ActivateObjectStep.Execute (ORKFramework.Events.BaseEvent baseEvent) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.GameEvent.ExecuteNextStep () (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.BaseEvent.StepFinished (System.Int32 next) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Events.BaseEvent.Tick (System.Single delta) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Behaviours.EventInteraction.Update () (at <a17af006838c4b04b2d5f561e701131d>:0)


    Any reason why it would be doing this? It actually won't even let me open the GUI box editor now because of this and spits out this error:
    ArgumentException: oldValue is the empty string.
    System.String.ReplaceInternal (System.String oldValue, System.String newValue) (at <fb001e01371b4adca20013e0ac763896>:0)
    System.String.Replace (System.String oldValue, System.String newValue) (at <fb001e01371b4adca20013e0ac763896>:0)
    ORKFramework.CustomTextCode.Replace (System.String& text) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.TextCodeSettings.ReplaceCustomTextCodes (System.String& text) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.TextHelper.ReplaceSpecials (System.String text, ORKFramework.VariableHandler handler) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.TextHelper.ReplaceSpecials (System.String text) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.ChoiceContent.set_Content (UnityEngine.GUIContent value) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.ChoiceContent..ctor (UnityEngine.GUIContent content, System.Boolean active, System.String info, UnityEngine.GUIContent title) (at <a17af006838c4b04b2d5f561e701131d>:0)
    ORKFramework.Editor.GUIBoxGUIEditor.CreateBox (System.Boolean forceSize) (at <3dc09ff94e0241d38fb0ff33c4e16497>:0)
    ORKFramework.Editor.ORKGUIEditor..ctor (ORKFramework.BaseData baseSettings, ORKFramework.Editor.BaseEditor baseEditor) (at <3dc09ff94e0241d38fb0ff33c4e16497>:0)
    ORKFramework.Editor.GUIBoxesTab.ShowTab () (at <3dc09ff94e0241d38fb0ff33c4e16497>:0)
    ORKFramework.Editor.ORKEditorSection.ShowTab () (at <3dc09ff94e0241d38fb0ff33c4e16497>:0)
    ORKFramework.Editor.ORKEditorWindow.OnGUI () (at <3dc09ff94e0241d38fb0ff33c4e16497>:0)
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <fb001e01371b4adca20013e0ac763896>:0)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <fb001e01371b4adca20013e0ac763896>:0)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <fb001e01371b4adca20013e0ac763896>:0)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at <a0a9ad37e16b4f7cb955e1101b72d4cc>:0)
    UnityEditor.HostView.Invoke (System.String methodName) (at <a0a9ad37e16b4f7cb955e1101b72d4cc>:0)
    UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <a0a9ad37e16b4f7cb955e1101b72d4cc>:0)
    UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <a0a9ad37e16b4f7cb955e1101b72d4cc>:0)
    UnityEditor.DockArea.OldOnGUI () (at <a0a9ad37e16b4f7cb955e1101b72d4cc>:0)
    UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcher.OpenGate () (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <78b213560771414e9fa6f1b95f5ad8bb>:0)
    UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <819de1aa368e45faa4f78e26c97c62b0>:0)

    This GUI stuff will be the death of me haha.

    Thanks again so much.
    Post edited by supportreport1 on
  • 3.5) I see - yeah, that seems strange. The change member menu uses the same GUI skin as the regular battle menu, so it should behave the same, and there's nothing different in handling it (just displaying different content in the buttons).
    I guess I'd need a small Unity test project with your setup to check this out.

    4) Start using the Selected Key setting to store selected data into specific keys. Without using a key, you'll always operate on the same selected data list (blank key), potentially overriding stuff you need or having multiple things in it that you didn't want.

    5) Based on the error, I'd say check your custom text codes in Menus > Text Codes. Might be due to a custom text code without a defined text code.
    Though I don't know how that could be coming from copying a GUISkin :D
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited September 2020
    3.5) I solved the issue, it was because my battle menu was using a Custom Skin that was conflicting with the skin the actual GUI box was using.

    4) Thank you for that, using the Selected Key's makes it work properly.

    5) That fixed it all, thank you very much.

    Back in working order now! :)

    I did have one question though again regarding the change member function. Is there a way I can allow the player to pull up status information within the change member function or perhaps should I do this with a HUD or Input Key set to a Menu? I was thinking of player convenience and just thought if I could link it to opening that change member menu it would be best. Please let me know if you have a solution. Thank you so much.
    Post edited by supportreport1 on
  • The change member selection in the battle menu should use the Combatant Choice Layout (either the battle menu overrides it or the default one defined in Menus > Text Display Settings) in case you want to show some additional information using HUD elements.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited September 2020
    Thank you very much, its beautiful now.

    Post edited by supportreport1 on
  • edited September 2020
    Hello I am having a little issue with my battle HUD.

    1) It works great but upon getting a game over screen and returning to the main menu and starting from the beginning of the game, once you get into a battle the actual HUD doesn't appear. It will show up like I said initially in your first go through it but if you get a game over it will not appear on a new scene load. Do I have to call this HUD again or any idea what would be causing this?

    2) I am trying to implement the very last part of my battle system. I have a 1 on 1 battle system, this is an event upon death that will check the current group size and if it is over 0 it will allow you to select a combatant and join them to the battle. Here is the event I have setup: image

    The problem is that whenever my monster dies, it shows a popup menu but it only shows me one monster and then when selected it doesn't join it to the battle even though my Join Battle node is using the key from the selected choice. Any thoughts on how to fix this or what would be occurring? It also activates this on my opponents monster dying too but it selects my group instead of switching in a monster of my opposing combatants group which is problematic.

    3) I'm back on my evolution mechanic again. Thought I had it wrapped up but I got to thinking about how I was going to evolve a monster a second time. Some monsters will be able to evolve twice, having 3 stage evolutions. I thought about doing this somewhat the way we talked about before with the hidden ability triggers. I thought I could just add another hidden ability to my evolved when it evolves the first time that will activate the second custom combatant event it holds and then make the changes I need in that event. The only hangup that I could see doing it this way, and its kind of funny, but the hangup would be the combatant icons. Is there a way to change these in an event? I would want the combatant icon to swap over to the evolved monsters icon instead.

    Thanks a lot for your time.
    Post edited by supportreport1 on
  • 1) What's the HUD's Display Condition setup like?

    2) First of all, one Cancel Battle End node is enough :)
    Now, you use a Leave Active Group node before using the Select Combatant node, so if you want to get any group members from the combatant's group, you should do that before you remove him from the group.

    3) No, you can't change the combatant's icon.
    I'm not sure how you did it in the end, are you keeping the same combatant or replacing it with a new combatant?
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited September 2020
    1) Here is my current HUD Display Condition settings. image

    2) Thank you, so I changed it up a bit.

    image

    Now it allows me to select one of my monsters in my group to send in, and selecting it brings the prefab to the scene. But the prefab spawns in the middle of the scene not at the designated player battle spot. It also doesn't trigger the HUD to reappear when joining this monster to the battle. Any thoughts?



    3) Oh bummer, I was just keeping it the same combatant with a conditional prefab and then changing the stats and other things in the evolution event. But it sounds like for what I want to do, and what will work out better in the long run is replacing it with a new combatant. The problem I ran into was needing to transfer information like level data, learning skills, etc to the new combatant from the old one. Do you have a method of doing this that would work?

    Thanks again so much. I swear I'm almost out of your hair, these really are the last things I need to do before creating environments, animations, and other things that are unrelated to ork. So thank you tons.
    Post edited by supportreport1 on
  • 1) Strange - tested with the same setup and works fine here.
    Are you using any conditions on the HUD's elements?

    2) Since you have the combatant available in the selected data, you can use that to place it wherever you want using a Change Position node. Also, you need to first make that combatant join it's battle group (Join Battle Group node).

    3) Well, you could use portraits instead.
    Combatants can have multiple portrait sets, that you can change via a Combatant Portrait Set node.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited September 2020
    1) As in display requirements on my elements? Nope none have any requirements, and haven't changed any of those HUD settings. It starts the battle upon a new game but just doesn't load the HUD up still.

    Fixed. I initially swapped to just using the Game Starter to initialize a new game, but researching in your forums I saw you cannot do that as it only will initialize once. So in my case it wasn't ever starting a new game, causing the HUD to not ever appear in this scenario. So I added in a script to initialize a new game that will also activate on UI start that works in tandem with my current event. Works perfect now.

    2) I tried using the Change Position node, as well as the Join Battle Group node like you said and it is still doing the same issue. Spawning the monster in the middle of the battle field, not at the battle spot defined in Change Position, and it is not pulling up the battle menu after spawning the monster either. Here's the event again. image

    2.5) I'm also trying to use a HUD to show my combatant's current status while my user makes the selection for this. I have a HUD set to trigger when my current combatant is dead and it works nicely but the problem is that the HUD only is showing my one leader monster in my group instead of all of them. I have Combatant Type set to Group, and Only Leaders is disabled and displayed groups is set to Player only. Any thoughts why this would be?

    3) Thanks but I think I've just decided now to replace the combatant with a new one instead. I am thinking of doing this with the custom combatant events and just having the selected choice leave the battle group and then join the evolved combatant at the level of the player. Would this be the right method of doing so?

    Thanks for the help.
    Post edited by supportreport1 on
  • edited September 2020
    1) Yeah, the Start Game option of the game starter is only for quick game testing :)

    2) You're probably using the node before actually spawning the combatant.
    I think you first have to use Join Battle before Change Position (joining the battle should spawn it) - or use a Spawn Combatant node to spawn the combatant.

    2.5) You can e.g. use a bool variable condition instead of only dispalying dead combatants.
    In that way you can show the HUD by setting the variable to true and hide it again by setting the variable to false.

    3) Yes, you can do it that way.
    Post edited by gamingislove on
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • 2) I tried doing it with Join Battle before Change Position and it still gave me the same issue. Spawning in the middle of the scene and not bringing up the battle menu or HUD. I did it with a Spawn Combatant node too, and same sort of issue. I'll post what I currently have now for the event after some changes:

    image

    2.5) Alright so the variable does work, but my issue still is that it only is showing 1 of my member's on the HUD even though I have the type set to group, and only leaders is disabled. Is this because the default battle group size of my game is 1? I'd just like it to show all my current members as info for the player to know when they are selecting a choice to swap in.

    Really appreciate the help. Almost there!
  • 2) Try adding a short wait between spawn/join and changing the position - probably just takes a frame for the spawn to happen.

    2.5) Hm, no, the Combatant HUD currently only displays the player's battle group. I'll look into adding an option for showing the whole group instead.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited September 2020
    2) Hm, adding in a Wait node between Join Battle and Change Position didn't work. This event here causes the selected combatant to spawn with the HUD operating as intended and battle menu reappearing but only sometimes which I don't quite get. Sometimes the battle menu spawns, other times it doesn't. It's kind of been baffling me, its like its messing with me. But it still spawns my combatant in the middle of the arena when joining, so the problem seems to lie within the Change Position node? I had to remove it for this event to work. For reference, here are my current event settings as well as the settings I have for the as of now unconnected Change Position node. I feel like we're super close to solving this! (or at least I hope, this one has been tough.)

    image
    image

    These errors will shoot out at times but it doesn't happen every single time I test playing me game. When these occur, that is when the battle HUD and menu will not reappear. Hope this helps to determine the cause.

    Event.Use() should not be called for events of type Layout
    UnityEngine.Event:Use()
    ORKFramework.UI.StringValueInput:ShowField(GUIBox, Int32, Boolean)
    ORKFramework.ValueInputContent:ShowWindow()
    ORKFramework.GUIBox:ShowGUI()
    ORKFramework.GUIHandler:ShowLayer(Int32)
    ORKFramework.GUIHandler:ShowGUI()
    ORKFramework.ORKCore:FireGUITick()
    ORKFramework.ORKHandler:OnGUI()
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)


    Event.Use() should not be called for events of type repaint
    UnityEngine.Event:Use()
    ORKFramework.UI.StringValueInput:ShowField(GUIBox, Int32, Boolean)
    ORKFramework.ValueInputContent:ShowWindow()
    ORKFramework.GUIBox:ShowGUI()
    ORKFramework.GUIHandler:ShowLayer(Int32)
    ORKFramework.GUIHandler:ShowGUI()
    ORKFramework.ORKCore:FireGUITick()
    ORKFramework.ORKHandler:OnGUI()
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)


    2.5) Thanks for doing that. On that note as well I remember us talking about you adding in the option to the change member feature where changing members will always happen before the turn starts. Was this added? I'm not totally sure how to update Ork if I just go through the asset store or if it automatically applies updates.
    Post edited by supportreport1 on
  • 2) What's in the found objects (without a defined key) you use as the position?
    The error can only come from a string input field, e.g. in an option menu or value input dialogue.

    2.5) That'll also be in the next update.
    Once it's available, you need to manually update ORK via the asset store.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Sign In or Register to comment.