I am currently studying the Grid Battle 2D tutorial and the Status System tutorial, and I am expanding on those foundations. I have encountered a few issues and hope you can help me:
First, how should I implement the ZOC (Zone of Control) system in a grid battle game? My idea is to use the Slow Ground type from the Battle Grid Cell Types (with a move cost of 2) and place them around the unit using Schematic for the four adjacent cells. However, I seem to have trouble creating this Schematic perfectly. Additionally, I need the ZOC to not affect units of the same faction (e.g. during the player phase, players cannot move through enemies, but in the enemy phase, they can move through their allies (enemies)). I would greatly appreciate it if you could tell me how to achieve such a Schematic.
Moreover, I have a question about the damage formula. In the screenshot below, I hope to use the following damage formula. I noticed that ORK seems to calculate the base damage, and then applies Ability Modifier (via Status > Abilities > Target Settings > Initial Value). Therefore, can my formula be simplified to: "Physical Damage = User.ATK - Target.DEF"? Because Ability.Modifier and element.Modifier have already been set through other configurations.
Finally, based on this formula, it is clear that I need to implement Area Damage Scaling, Facing Modifier, and Ground Modifier settings. I’m glad that you have already made rotation-related settings in the tutorial. I want the rotation to affect the damage a unit causes, meaning to judge the facing relationship between the attacker and the target to create damage adjustments. At the same time, I want to add a Status Effect to a specified ground (e.g. units on this cell have their DEF increased by 10%). Are these achievable?
I apologize for asking so many questions, and thank you again for your work.
I’m sorry, in addition to the previous issues, I have encountered other problems. Firstly,it seems that my movement functionality is encountering issues. Everything worked fine in the first phase, but starting from the second or third phase (based on testing, this usually happens when player combatants engages with the enemy), there is a gap in the character's movement range. As shown in the image, characters cannot move according to their MOVE value. I checked the GridMove Schematics and the settings in Battles > Battle Grids, which are consistent with your completed project. The only difference is that I set the combatants' MOVE to a specific value instead of calculating it through a formula. I can't determine what is causing my combatants to lack a normal movement range in subsequent phase.At the same time, in the first phase, the enemy's red cursor prefab displays correctly, but after the second phase, they only show the default white cursor, as shown in the image. Besides, regarding the EXP formula, the formula I designed myself, as shown in the image below, can be understood as characters gaining EXP whenever they take action (except for GridMove), and they gain more when they kill enemies. For every 100 EXP gained, the character levels up. I tried to design the Schematics this way, but it doesn't work properly; neither my actions nor killing enemies are granting EXP, and during gameplay, the EXP of my combatants in the Inspector remains at 0.Is there an error in my schematic? Please let me know how to fix it. I apologize for raising so many questions recently. I spend a lot of time each day learning ORK; its features are very rich, but it's a bit challenging for a beginner like me to get the hang of it. I would greatly appreciate any help you can provide to resolve these issues. Thank you once again for your work.
Regarding zone of control - if you're using the Phase battle system, you can use the phase start and phase end schematics to change the grid cell types. E.g. phase end schematic changing to the ZOC type cells around all combatants of the faction and the phase start schematic resetting to a regular type again. The combatants of the phase's faction are used as Machine Object of the schematic. With such a setup, the ZOC is used while it's not the faction's phase.
As for the damage formula - that should all be doable. Formulas have nodes for checking orientations, (grid) distances, etc., so all you have to do is set it up the way you need. Attack/defence modifiers are used after the formula's damage calculation, so anything else that should impact damage has to be handled in your formula.
The move range issue, my guess would be that the not available cells are still occupied by a combatant somehow. E.g. the grid move schematic not updating cell occupations correctly ... though if this is the completed tutorial project that should work correctly.
Where is your exp formula actually used? E.g. if you want to add exp to a combatant directly (i.e. not as battle gains/loot), you can just change your experience status value - either as a user status change of the ability or using a Change Status Value node in schematics.
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!
Thank you for your response. I have started trying to modify these settings based on your suggestions.
I am creating the Schematics for getEXP, and it seems that it does not have the Begin sub Calculation and End sub Calculation nodes from the Formula. Does this mean that I cannot implement the sub-calculation I need for (Target.Level - User.Level)? I have temporarily set up this schematic and added it to Combatants > General Settings > Turn End Schematics. However, during the game test, my combatant still did not gain any EXP after taking action.
No, schematics don't have sub calculations - they're not formulas. If you want to calculate something use a formula for that, e.g. your schematic can simply use a formula to get a value in the Change Status Value node, or use a formula to change a variable, etc.
The turn end schematic is played at the end of the combatant's turn. When this happens depends on your battle system's setup - e.g. could be automatically when using the Auto End Turn settings and the combatant has no actions left (according to the setup) or at the end of the phase. Also, make sure to use the correct object in the nodes - e.g. in turn end schematics, the combatant is the Machine Object of the schematic.
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 have learned to use formulas in schematics, but my getEXP schematics still do not work. I have mounted it to the Player and Ally sections of the Turn End Schematics, but it does not function; whether it's the end of a combatants' turn or the end of the player's phase, their EXP remains at 0 in testing (I set Auto End Turn and I want a combatant to immediately calculate the EXP gained after ending their action).I would greatly appreciate it if you could tell me where the mistake is.
Let me describe my current schematics setup: I added Actor 0: Enemies (battle) of the Machine Object in Settings, and in the Is Player node, I check whether it is a Machine Object (i.e. only player combatants can gain experience; I do not want enemies to level up).
In the Status Fork node, I check if Actor 0 (enemies) HP and MP are not equal to their original values and whether an effect has been applied; as long as any condition is met, the character can gain EXP.
In the Change Status Value node, I added the previously set EXP formula.
There is also another issue: schematics are different from formulas; it seems cannot set an Object as a Target. Therefore, in the Status Fork, I can only check the status of Actor 0 (enemies), but I want these checks to still apply for allies (e.g. restoring HP and MP and adding status effects for allies).
Besides,I still haven't resolved the issue regarding the range of character movement. I have repeatedly compared your completed project and the tutorial documents, but I was unable to identify the cause of this bug.
The issue is most likely the Is Player node, wich is a Makinom node to check if a game object is the game's player. Try using the Is Player Controlled node instead, which checks if it's a member of the ORK player group.
Lydia19 said: There is also another issue: schematics are different from formulas; it seems cannot set an Object as a Target. Therefore, in the Status Fork, I can only check the status of Actor 0 (enemies), but I want these checks to still apply for allies (e.g. restoring HP and MP and adding status effects for allies).
Well, you need to set up the schematic or node that way. E.g. the turn end schematic has the combatant that's ending the turn as the Machine Object, which you can use for status checks. Otherwise, you can set up other actors or e.g. use a Select Combatant node to get combatants.
As for the move range issue - hard to say without seeing overall setup here, e.g. the move cost of the other cells, is moving over allies allowed, diagonal movement enabled, etc. I can take a look if you send me a Unity test project where this happens.
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!
Firstly,it seems that my movement functionality is encountering issues. Everything worked fine in the first phase, but starting from the second or third phase (based on testing, this usually happens when player combatants engages with the enemy), there is a gap in the character's movement range.
As shown in the image, characters cannot move according to their MOVE value. I checked the GridMove Schematics and the settings in Battles > Battle Grids, which are consistent with your completed project. The only difference is that I set the combatants' MOVE to a specific value instead of calculating it through a formula. I can't determine what is causing my combatants to lack a normal movement range in subsequent phase.At the same time, in the first phase, the enemy's red cursor prefab displays correctly, but after the second phase, they only show the default white cursor, as shown in the image.
Besides, regarding the EXP formula, the formula I designed myself, as shown in the image below, can be understood as characters gaining EXP whenever they take action (except for GridMove), and they gain more when they kill enemies. For every 100 EXP gained, the character levels up.
I tried to design the Schematics this way, but it doesn't work properly; neither my actions nor killing enemies are granting EXP, and during gameplay, the EXP of my combatants in the Inspector remains at 0.Is there an error in my schematic? Please let me know how to fix it.
I apologize for raising so many questions recently. I spend a lot of time each day learning ORK; its features are very rich, but it's a bit challenging for a beginner like me to get the hang of it. I would greatly appreciate any help you can provide to resolve these issues. Thank you once again for your work.
E.g. phase end schematic changing to the ZOC type cells around all combatants of the faction and the phase start schematic resetting to a regular type again. The combatants of the phase's faction are used as Machine Object of the schematic.
With such a setup, the ZOC is used while it's not the faction's phase.
As for the damage formula - that should all be doable.
Formulas have nodes for checking orientations, (grid) distances, etc., so all you have to do is set it up the way you need. Attack/defence modifiers are used after the formula's damage calculation, so anything else that should impact damage has to be handled in your formula.
The move range issue, my guess would be that the not available cells are still occupied by a combatant somehow. E.g. the grid move schematic not updating cell occupations correctly ... though if this is the completed tutorial project that should work correctly.
Where is your exp formula actually used?
E.g. if you want to add exp to a combatant directly (i.e. not as battle gains/loot), you can just change your experience status value - either as a user status change of the ability or using a Change Status Value node in schematics.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
I am creating the Schematics for getEXP, and it seems that it does not have the Begin sub Calculation and End sub Calculation nodes from the Formula. Does this mean that I cannot implement the sub-calculation I need for (Target.Level - User.Level)?
I have temporarily set up this schematic and added it to Combatants > General Settings > Turn End Schematics. However, during the game test, my combatant still did not gain any EXP after taking action.
The turn end schematic is played at the end of the combatant's turn. When this happens depends on your battle system's setup - e.g. could be automatically when using the Auto End Turn settings and the combatant has no actions left (according to the setup) or at the end of the phase.
Also, make sure to use the correct object in the nodes - e.g. in turn end schematics, the combatant is the Machine Object of the schematic.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
I have mounted it to the Player and Ally sections of the Turn End Schematics, but it does not function; whether it's the end of a combatants' turn or the end of the player's phase, their EXP remains at 0 in testing (I set Auto End Turn and I want a combatant to immediately calculate the EXP gained after ending their action).I would greatly appreciate it if you could tell me where the mistake is.
Let me describe my current schematics setup: I added Actor 0: Enemies (battle) of the Machine Object in Settings, and in the Is Player node, I check whether it is a Machine Object (i.e. only player combatants can gain experience; I do not want enemies to level up).
In the Status Fork node, I check if Actor 0 (enemies) HP and MP are not equal to their original values and whether an effect has been applied; as long as any condition is met, the character can gain EXP.
In the Change Status Value node, I added the previously set EXP formula.
There is also another issue: schematics are different from formulas; it seems cannot set an Object as a Target. Therefore, in the Status Fork, I can only check the status of Actor 0 (enemies), but I want these checks to still apply for allies (e.g. restoring HP and MP and adding status effects for allies).
Besides,I still haven't resolved the issue regarding the range of character movement. I have repeatedly compared your completed project and the tutorial documents, but I was unable to identify the cause of this bug.
Otherwise, you can set up other actors or e.g. use a Select Combatant node to get combatants.
As for the move range issue - hard to say without seeing overall setup here, e.g. the move cost of the other cells, is moving over allies allowed, diagonal movement enabled, etc.
I can take a look if you send me a Unity test project where this happens.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!