@gamingislove Would it be feasible to have a Music Type setting (like Area Type, etc.) that we can attach to Music, and then a means through API to pull tracks with the type?
I'm working on creating a persistent randomized music player, and while I can pretty much do it all through a global variable and a machine with a schematic, it gets super messy trying to update and organize when tracks are changed / added. Right now you must manually group them in the schematic by your type and add a new node for each track of a given type.
I think it would be cleaner if we had the above because then I could write a node that just calls into the API, pulls the list for a given music type, and then does what it wants with that track (fade to, etc.). People can just set up their tracks and types in ORK as normal without needing to then also go back and mess with the schematic as it'll be procedural in how it handles it through these nodes.
I noticed that for Battle Grid Settings the rotating towards target cell and orientation selection rotation is hardcoded. I'm wondering if you will add rotation component support to battle grid settings eventually or perhaps a default rotation component setting. I implemented my own version of the former with a couple lines of code. I changed BattleGridSettings and BattleGridHelper. It looks like this:
This way it is more modular and extendable to other systems.
Battles --> Battle System --> Phase --> Player Combatant Selection --> Auto Select One
Would you be willing to add "Auto select always" (Automatically select first combatant that has action points remaining in the list)?
I was starting to write a script to try and do this but realized it's basically already in the code somewhere for the "Auto select one" option, that just needs a logic tweak for "Auto select always".
Would it be possible to have an option to block Grid Cell Examine input when the battle menu is open or a setting to auto examine the selecting combatant when choosing a battle menu option?
What I'm trying to emulate is something like Fire Emblem Engage:
Always Active works for getting the examine and battle menu up like above, but then entering input to try and select a battle menu action also moves the cell selection.
Something I have that sort of works is to have Always Active on, but using new Inputs that use the same source as the one I am using for selection, I then have the Battle Menu UI Box schematics Block/Unblock the input. This prevents both the battle menu and examine inputs from occurring at the same time. The issue I have with it though, is that after executing an action, the Examine remains on the old cell when back in the Menu (such as Moving):
Notably, picking Examine from the Battle Menu does snap it right to the combatant afterwards, so if there was a way to force that I could add it to my open schematic as well, but so far I'm not too sure. There's the Start Cell Selection, but I'm not seeing a way to immediately stop it without giving the full selection.
@Acissathar Try not using always examine and instead use the Examine Cell/Combatant options in the individual grid selections (e.g. move command, target cell selection, etc.).
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 Right, I have tried switching to that on for every selection exception Orientation + Placement (not using them), and while that works for Move + Targeting, it doesn't appear to give it when selecting an option.
Interestingly, it sort of works for what I mean when using Target Selection but cancelling out of it. It inspected "Enemy Axe" while targeting, and then closing it's still showing Enemy Axe, just without the move + attack range examination part. Notably, if in Examine mode proper or Move command and cancel out, it removes this examination.
Basically I want it to look like this (but including attack + move range like Examine normally does), the combatant examine and battle menu up while choosing actions, but I want it to show the selecting combatant's information until a command is chosen, and then that Examine selection kicks in.
If there is a way to "fake" it by selecting the cell the Machine Object is in, I could do that through my open schematic, but I haven't been able to find something like that. Is it something I could do in a custom node, just select or examine the current cell?
Edit: ORK.BattleGridSettings.examine.ExternalExamine seems to be what I'm after, unfortunately the battle menu though isn't using a Machine/Starting Object so I can't use that to grab the combatant info. ORK.BattleGridSettings.SelectingCombatant is returning the Battle Leader which was my first thought to grab, but I suppose that makes sense, since you aren't "selecting" anything yet. If there's a way to find out which is the active user then I think I can make this into a custom node easy peasy.
Just as a follow up, played with it some more (this time trying to fire it in the Turn Start so I can just select the combatant for use if needed), and while the Combatant Examine shows up, it seems like Cell Examine info is failing and stops the game from progressing:
NullReferenceException: Object reference not set to an instance of an object GamingIsLove.ORKFramework.GridCellInfoControl.Show (GamingIsLove.ORKFramework.Combatant combatant, GamingIsLove.ORKFramework.Components.BattleGridCellComponent gridCell) (at <7af7b7b4f16d4f67bfafb29222cbd724>:0) GamingIsLove.ORKFramework.GridExamineSettings.ShowCellInfoBox () (at <7af7b7b4f16d4f67bfafb29222cbd724>:0) GamingIsLove.ORKFramework.GridExamineSettings.ExternalExamine
And for reference my node is literally just:
List<GameObject> list = this.onObject.GetObjects(schematic); for (int i = 0; i < list.Count; i++) { if (list[i] != null) { if (list[i].TryGetComponent(out CombatantComponent combatant)) { ORK.BattleGridSettings.examine.ExternalExamine( combatant.Combatant.Grid.Cell, examineCell, examineCellCombatant); }
@gamingislove Small request. For all Machines components in the Actors drop down, could you display the Name of the actor (when used) instead of Actor 0, Actor 1, Actor 2 etc.? Maybe place the name next to it like Actor 0 (Name). This would help immensely when dealing with prefabs while quickly swapping out game objects.
@Acissathar Probably because the combatant's cell is not set at that point - will catch that in the next update.
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 Would it be possible to throw a warning in the console if you try and run Change or Check Fields on a Component that isn't found on the Object?
For example, I am in the process of changing my Character Controller, and my schematic that I use as a mediator for animation was still looking at the old script name which I forgot to update. The script still existed in the project so no warnings about invalid field names appeared, but it was just silently failing when it couldn't find the script on the object until I finally remembered to look at the schematic again haha
Edit: Removed second one. Turned out to be way easier to just implement into the Nav Mesh controller I'm using since I already have the target position and can adjust the Agent move speed directly.
@Acissathar Next update will add warnings when a component isn't found :)
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!
Would it be possible to add a HUD for the Save Game info, or a way to store the "combatant" information into the save file info?
What I would like to do for example is show the save file with a portrait and name/level/class of each character in the battle party. I know this can sort of be achieved through TextMeshPro sprites and variables, but before going into that mess was just wondering if this sort of thing would be do-able as a more straight forward option.
I'm working on creating a persistent randomized music player, and while I can pretty much do it all through a global variable and a machine with a schematic, it gets super messy trying to update and organize when tracks are changed / added. Right now you must manually group them in the schematic by your type and add a new node for each track of a given type.
I think it would be cleaner if we had the above because then I could write a node that just calls into the API, pulls the list for a given music type, and then does what it wants with that track (fade to, etc.). People can just set up their tracks and types in ORK as normal without needing to then also go back and mess with the schematic as it'll be procedural in how it handles it through these nodes.
This way it is more modular and extendable to other systems.
Would you be willing to add "Auto select always" (Automatically select first combatant that has action points remaining in the list)?
I was starting to write a script to try and do this but realized it's basically already in the code somewhere for the "Auto select one" option, that just needs a logic tweak for "Auto select always".
Thanks!
What I'm trying to emulate is something like Fire Emblem Engage:
Always Active works for getting the examine and battle menu up like above, but then entering input to try and select a battle menu action also moves the cell selection.
Something I have that sort of works is to have Always Active on, but using new Inputs that use the same source as the one I am using for selection, I then have the Battle Menu UI Box schematics Block/Unblock the input. This prevents both the battle menu and examine inputs from occurring at the same time. The issue I have with it though, is that after executing an action, the Examine remains on the old cell when back in the Menu (such as Moving):
Notably, picking Examine from the Battle Menu does snap it right to the combatant afterwards, so if there was a way to force that I could add it to my open schematic as well, but so far I'm not too sure. There's the Start Cell Selection, but I'm not seeing a way to immediately stop it without giving the full selection.
Try not using always examine and instead use the Examine Cell/Combatant options in the individual grid selections (e.g. move command, target cell selection, etc.).
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Interestingly, it sort of works for what I mean when using Target Selection but cancelling out of it. It inspected "Enemy Axe" while targeting, and then closing it's still showing Enemy Axe, just without the move + attack range examination part. Notably, if in Examine mode proper or Move command and cancel out, it removes this examination.
Basically I want it to look like this (but including attack + move range like Examine normally does), the combatant examine and battle menu up while choosing actions, but I want it to show the selecting combatant's information until a command is chosen, and then that Examine selection kicks in.
If there is a way to "fake" it by selecting the cell the Machine Object is in, I could do that through my open schematic, but I haven't been able to find something like that. Is it something I could do in a custom node, just select or examine the current cell?
Edit: ORK.BattleGridSettings.examine.ExternalExamine seems to be what I'm after, unfortunately the battle menu though isn't using a Machine/Starting Object so I can't use that to grab the combatant info. ORK.BattleGridSettings.SelectingCombatant is returning the Battle Leader which was my first thought to grab, but I suppose that makes sense, since you aren't "selecting" anything yet. If there's a way to find out which is the active user then I think I can make this into a custom node easy peasy.
NullReferenceException: Object reference not set to an instance of an object
GamingIsLove.ORKFramework.GridCellInfoControl.Show (GamingIsLove.ORKFramework.Combatant combatant, GamingIsLove.ORKFramework.Components.BattleGridCellComponent gridCell) (at <7af7b7b4f16d4f67bfafb29222cbd724>:0)
GamingIsLove.ORKFramework.GridExamineSettings.ShowCellInfoBox () (at <7af7b7b4f16d4f67bfafb29222cbd724>:0)
GamingIsLove.ORKFramework.GridExamineSettings.ExternalExamine
And for reference my node is literally just:
List<GameObject> list = this.onObject.GetObjects(schematic);
for (int i = 0; i < list.Count; i++)
{
if (list[i] != null)
{
if (list[i].TryGetComponent(out CombatantComponent combatant))
{
ORK.BattleGridSettings.examine.ExternalExamine(
combatant.Combatant.Grid.Cell,
examineCell, examineCellCombatant);
}
break;
}
}
Small request. For all Machines components in the Actors drop down, could you display the Name of the actor (when used) instead of Actor 0, Actor 1, Actor 2 etc.? Maybe place the name next to it like Actor 0 (Name). This would help immensely when dealing with prefabs while quickly swapping out game objects.
Probably because the combatant's cell is not set at that point - will catch that in the next update.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
For example:
The soldier attacked the bee,
The mage attacked the snake with fire,
The snake attacked the mage with poison
Would it be possible to throw a warning in the console if you try and run Change or Check Fields on a Component that isn't found on the Object?
For example, I am in the process of changing my Character Controller, and my schematic that I use as a mediator for animation was still looking at the old script name which I forgot to update. The script still existed in the project so no warnings about invalid field names appeared, but it was just silently failing when it couldn't find the script on the object until I finally remembered to look at the schematic again haha
Edit: Removed second one. Turned out to be way easier to just implement into the Nav Mesh controller I'm using since I already have the target position and can adjust the Agent move speed directly.
Next update will add warnings when a component isn't found :)
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
What I would like to do for example is show the save file with a portrait and name/level/class of each character in the battle party. I know this can sort of be achieved through TextMeshPro sprites and variables, but before going into that mess was just wondering if this sort of thing would be do-able as a more straight forward option.