On the subject of Equipment, is it also possible to restrict the option for Accept is Unequip to certain slots? For example, for animation purposes, I want to restrict players from unequipping a weapon unless slotting in another weapon. Armor and accessories, however, I don't mind if they remove without having a replacement.
At a quick glance, I'm think using a sub-menu with conditions on the Unequip menu item can get me sort of there, but I'm not sure what condition to use for "this slot is not Main Hand" and it could also just lead to unnecessary menus since the option to swap would be an extra button press.
Again, also not a big deal or anything, just a preference if possible. Otherwise, requiring an item to swap it out should be fine overall, or I can suck it up and have a default unarmed animation set :)
New options for equipment menu parts will be in the next update. You will be able to manage how blocked or linked (from multi-slot equipment) slots are displayed, either show them as active, show them as inactive or hide them.
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!
I know you're out until later this week, so no worries. I might just update this post until then so you have a nice big list to greet you on your return ;)
Are we able to display Item/Loot drops in the Bestiary? Something I'm after is similar to Attack/Defense where you can set it to only be "learned" when it drops, otherwise display the default.
Something like this for example (middle right hand side):
Just wanted to mention I was able to achieve something like above with Combatants Custom Content. Displaying it in a HUD listing the potential loot drops via content key.
This can also be used to display other potential info in a bestiary like location found, special skills it may have, other stored variables etc.
Having loot part of the bestiary is already on my to-do list, just with low priority, so no idea when this'll come :)
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!
Sweet, and no worries, I'm still very much in the "sketching things out" phase so the Custom Content workaround from supportreport should work just fine for now
At the moment I'm kind of drawing a blank on how to go about this, but what would you recommend for accomplishing the following?
Basically, I'd like to make a party selection screen. I already made a rough prototype before, so keeping track of what was selected / what to add to the party at the end is no problem, along with tying them into changing the dialogue choices.
However, the visual element I am drawing a blank on. What I would like is for the choices to be on the left hand side, but hovering over an option would display a preview, akin to a description in a normal menu. The problem, is that I'd like to show the stats as if it were a HUD (and maybe a Prefab View Portrait) but I'm not sure how to hook that into a Description/Choice option. I can fake it with hardcoded / designed images / descriptions, but I'd like for it to pull from the ORK data like HUDs do, so I can just set up a template and then modify stuff without having to go back and update this preview too. Each class option would have it's own Portrait, Stat view, Name, and Bio.
If you use a Selected Data Choice for the selection, you can enable tooltips on them, displaying tooltip HUDs for the content of the choice (e.g. a class). You can also use HUD templates for the buttons like in menu screens :)
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!
@gamingislove That is perfect, thank you! It's working great so far. I did have a clarification question just to help visually make things more appealing (functionally no issues though :) ), how deep / intertwined do Local schematic variables go, and also at what point are Before Open/Close schematics called?
For example, I have a local variable counting the current number of selected combatants. This is set after the user selects a choice, we process if we need to add/remove the class to the party, and then if less than desired party size, loop back to select node.
To help prevent the UI box from constantly fading in/out on each selection, I'd like to be able to use this party size as well in the Before Open/Close schematics so we only fade in the first time, and then fade out on the last one. My thought process is I'd check the variable, and if party size is less than max, don't do the fade out, but if party size is max, do the fade out.
From my basic understanding, local variables should be shared if a schematic calls a schematic. Does this count when it's a schematic attached to a UI box rather than being called directly? But also, given the processing (Selected Data Choice -> Check Combatant -> Check Variables -> Change Variables [party size]), will it be set before the closing takes place so I can use it?
Does this apply to selected data variables as well? If the processing is off, again if I'm understanding this right, I think I could move this set of variable processing to Input Selected ui box schematic, and then it definitely should be ready for Before Close?
I'm trying to avoid global variables just to keep things clean if possible, but otherwise am not opposed if that's needed :)
Generally, all variables work the same - the local variables of schematics are just available in that schematic (and are shared with e.g. formulas called by it, other schematics started by it, etc.) and will be gone when it's done.
E.g. if you want to use variables to count stuff accross multiple individual schematics, you need to use global variables. If it's all in the same schematic (or schematics called by some schematic) you can use local variables.
For your example, you'll need to use a global variable, as the UI box schematic doesn't know about that local variable of the player selection schematic. Here, the UI box schematic is started by the UI box without any connection to where the UI box was called from (e.g. could be a dialogue in a schematic, a battle menu, shop, etc.
Selected data works the same (local/global/etc.) as variables.
You don't need to avoid global variables at all :) E.g. if they're only used here, you can simply remove them at the end of your schematic and they'll not bother the rest of your game.
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!
Awesome, appreciate the pointers and I think I've pretty much got it all working perfectly now. Selected Choice and variables to control who/what gets added to the party, and Tooltips to display the character information while selecting. It's still in the ugly prototype phase, but it's working :D
My only request after this, would it be possible to do a Remember Selection type of functionality with this? Normal dialogue choices have store selection into variable / set selection, but with Selected Data Choice it seems like when re-calling it the only option is to have it start from the top of the list again? For reference I keep all choices from the original list, and selecting one then toggles it's mark for if it should be included or not in the final party.
I think I'm finally starting to understand Selected Data and it's some good stuff.
I'll look into adding a remember selection option to the selected data choice.
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!
Edit: You can probably skip to next page, this kind of ballooned up but for posterities sake I figured I'd leave it up haha
A few questions about custom movement components and/or custom nodes...
Currently, I have a custom controller that works off a NavMesh Agent directly (NavMeshCharacterController). I have made a ComponentSetting script for this, which inherits from BaseMovementComponentSetting, and as such, I have this set directly in the ORK editor as the Combatant Default Movement Component. So far, this works great for spawned objects and Move AI, so no issue there.
However, I am trying to script a pseudo cutscene in schematic but I am running into an issue with Change Position node. Ideally, I'd like to leverage it to give the position to this movement component, which then moves the combatant. The problem is that Move, MoveTo, and ChangePosition are not being called. I'm assuming this is based on the component it's choosing, but I am not able to select my own component and choosing Combatant Move Component isn't calling them either.
Basically what happens is the combatants are spawned at one point (off screen), then given change position to move to the desired one on screen to make things a little more immersive. If I remove the Move checkbox so it sets the position instantly, it does move them to the spot that is expected, so that's right. However, any other means isn't working.
Given that, my questions were:
1. Are custom movement components not supported through Change Position, or is there another setting / base class / override method I need to setup for that? What I'd like to is just have it pass the targeted position and then my controller handles getting there.
2. Assuming it's not supported, and also for future work, how exactly do we go about including Wait into custom schematic nodes? I've written a few custom nodes already and have some basic familiarity with it, and I can write a custom node to pass the position directly to the movement component, but I'd still like it to "wait" until the combatant reaches their destination before moving to the next node.
I've seen a few implementations in the source code, some that just call StartTime with a specific time and others that appear to implement their own runtime, but I'm not entirely sure which is the right path to take for something that will just be checking a field on the movement component of the object.
Is it also possible to do both? Something like a field for wait that only waits X amount of time before starting the next node while another field that waits until the field above returns True/false? I suppose it can sort of be faked by just calling a wait node for the desired amount of time after the movement node is called.
Hopefully that all makes sense, I felt like I kind of rambled but if nothing makes sense just let me know and I can try to reword things haha.
At a quick glance, I'm think using a sub-menu with conditions on the Unequip menu item can get me sort of there, but I'm not sure what condition to use for "this slot is not Main Hand" and it could also just lead to unnecessary menus since the option to swap would be an extra button press.
Again, also not a big deal or anything, just a preference if possible. Otherwise, requiring an item to swap it out should be fine overall, or I can suck it up and have a default unarmed animation set :)
You will be able to manage how blocked or linked (from multi-slot equipment) slots are displayed, either show them as active, show them as inactive or hide them.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Are we able to display Item/Loot drops in the Bestiary? Something I'm after is similar to Attack/Defense where you can set it to only be "learned" when it drops, otherwise display the default.
Something like this for example (middle right hand side):
This can also be used to display other potential info in a bestiary like location found, special skills it may have, other stored variables etc.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Basically, I'd like to make a party selection screen. I already made a rough prototype before, so keeping track of what was selected / what to add to the party at the end is no problem, along with tying them into changing the dialogue choices.
However, the visual element I am drawing a blank on. What I would like is for the choices to be on the left hand side, but hovering over an option would display a preview, akin to a description in a normal menu. The problem, is that I'd like to show the stats as if it were a HUD (and maybe a Prefab View Portrait) but I'm not sure how to hook that into a Description/Choice option. I can fake it with hardcoded / designed images / descriptions, but I'd like for it to pull from the ORK data like HUDs do, so I can just set up a template and then modify stuff without having to go back and update this preview too. Each class option would have it's own Portrait, Stat view, Name, and Bio.
Something like this visually:
You can also use HUD templates for the buttons like in menu screens :)
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
For example, I have a local variable counting the current number of selected combatants. This is set after the user selects a choice, we process if we need to add/remove the class to the party, and then if less than desired party size, loop back to select node.
To help prevent the UI box from constantly fading in/out on each selection, I'd like to be able to use this party size as well in the Before Open/Close schematics so we only fade in the first time, and then fade out on the last one. My thought process is I'd check the variable, and if party size is less than max, don't do the fade out, but if party size is max, do the fade out.
From my basic understanding, local variables should be shared if a schematic calls a schematic. Does this count when it's a schematic attached to a UI box rather than being called directly? But also, given the processing (Selected Data Choice -> Check Combatant -> Check Variables -> Change Variables [party size]), will it be set before the closing takes place so I can use it?
Does this apply to selected data variables as well? If the processing is off, again if I'm understanding this right, I think I could move this set of variable processing to Input Selected ui box schematic, and then it definitely should be ready for Before Close?
I'm trying to avoid global variables just to keep things clean if possible, but otherwise am not opposed if that's needed :)
E.g. if you want to use variables to count stuff accross multiple individual schematics, you need to use global variables. If it's all in the same schematic (or schematics called by some schematic) you can use local variables.
For your example, you'll need to use a global variable, as the UI box schematic doesn't know about that local variable of the player selection schematic. Here, the UI box schematic is started by the UI box without any connection to where the UI box was called from (e.g. could be a dialogue in a schematic, a battle menu, shop, etc.
Selected data works the same (local/global/etc.) as variables.
You don't need to avoid global variables at all :)
E.g. if they're only used here, you can simply remove them at the end of your schematic and they'll not bother the rest of your game.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
My only request after this, would it be possible to do a Remember Selection type of functionality with this? Normal dialogue choices have store selection into variable / set selection, but with Selected Data Choice it seems like when re-calling it the only option is to have it start from the top of the list again? For reference I keep all choices from the original list, and selecting one then toggles it's mark for if it should be included or not in the final party.
I think I'm finally starting to understand Selected Data and it's some good stuff.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
A few questions about custom movement components and/or custom nodes...
Currently, I have a custom controller that works off a NavMesh Agent directly (NavMeshCharacterController). I have made a ComponentSetting script for this, which inherits from BaseMovementComponentSetting, and as such, I have this set directly in the ORK editor as the Combatant Default Movement Component. So far, this works great for spawned objects and Move AI, so no issue there.
However, I am trying to script a pseudo cutscene in schematic but I am running into an issue with Change Position node. Ideally, I'd like to leverage it to give the position to this movement component, which then moves the combatant. The problem is that Move, MoveTo, and ChangePosition are not being called. I'm assuming this is based on the component it's choosing, but I am not able to select my own component and choosing Combatant Move Component isn't calling them either.
Basically what happens is the combatants are spawned at one point (off screen), then given change position to move to the desired one on screen to make things a little more immersive. If I remove the Move checkbox so it sets the position instantly, it does move them to the spot that is expected, so that's right. However, any other means isn't working.
Given that, my questions were:
1. Are custom movement components not supported through Change Position, or is there another setting / base class / override method I need to setup for that? What I'd like to is just have it pass the targeted position and then my controller handles getting there.
2. Assuming it's not supported, and also for future work, how exactly do we go about including Wait into custom schematic nodes? I've written a few custom nodes already and have some basic familiarity with it, and I can write a custom node to pass the position directly to the movement component, but I'd still like it to "wait" until the combatant reaches their destination before moving to the next node.
I've seen a few implementations in the source code, some that just call StartTime with a specific time and others that appear to implement their own runtime, but I'm not entirely sure which is the right path to take for something that will just be checking a field on the movement component of the object.
Is it also possible to do both? Something like a field for wait that only waits X amount of time before starting the next node while another field that waits until the field above returns True/false? I suppose it can sort of be faked by just calling a wait node for the desired amount of time after the movement node is called.
Hopefully that all makes sense, I felt like I kind of rambled but if nothing makes sense just let me know and I can try to reword things haha.