Announcement

Collapse
No announcement yet.

[SUPPORT] Advanced Turn Based Tile Toolkit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Another question I had as well was how can i make it so they only gain AP back after you do Super effective damage to the target?

    Comment


      Update on this bug, apparently if i give the AI the same Elemental attack ability for some reason they'll won't end their turn if the target dies before getting off a second attack or if they don't reach their target within their movement range.

      Comment


        Originally posted by EagleEyeGamma View Post
        Hello. Monokkel

        I have multiple questions.First, I'm not sure how this occurred in my project but if the AI doesn't reach its intended target to attack for some reason it won't end its turn when it should.
        Originally posted by EagleEyeGamma View Post
        Update on this bug, apparently if i give the AI the same Elemental attack ability for some reason they'll won't end their turn if the target dies before getting off a second attack or if they don't reach their target within their movement range.
        A bit hard for me to know what might be happening here without knowing what you've changed. I could need some more specifics. Try using breakpoints in the ability to see where it stops and report back if that does not give you the answer. One guess is that when the target dies and the unit then tries to attack it with the second attack, the reference to the target unit no longer exists, causing the attack to fail out. You should check after the first attack if the target is dead and only run the second attack if it is not.

        Originally posted by EagleEyeGamma View Post
        Second, how do you make it so that you can make certain animation that aren't part of the toolkit trigger the same mechanics such as damaging other units, death and movement.
        Check out my tutorials on adding custom units.

        Originally posted by EagleEyeGamma View Post
        Lastly, from those last two examples Ability Elemental Attack and the Ability Attack Repeat I combined them together and now I was wonder where can change it so you can move again after you attack.
        Are you using the ability system component or a single ability for each unit? If it is the latter you could use BP_Ability_MoveAttack as a base instead of BP_Ability_Attack, as only the first one has movement functionality.
        Originally posted by EagleEyeGamma View Post
        Another question I had as well was how can i make it so they only gain AP back after you do Super effective damage to the target?
        Should be as simple as checking whether the attack was super effective and using this as input to a branch.
        The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

        Comment


          Hola Knut! Justo here after a UE4 break (at home at least), coming from the lands of Blender & ZBrush. I take it that update 2.3, with the variant Turn Managers, is still in development, yes? Would love to sink my teeth into your xcom-like variant and add in my real-time movement outside combat. Then hit my head against a wall until I become gud at big units.

          Anyway, hope you're having a nice time these days dude. Stay fresh, you are an amazing human being.
          Last edited by Justo; 11-07-2019, 07:52 PM.
          Artstation | 3D Artist | Krakow

          Comment


            Originally posted by Justo View Post
            Hola Knut! Justo here after a UE4 break (at home at least), coming from the lands of Blender & ZBrush. I take it that update 2.3, with the variant Turn Managers, is still in development, yes? Would love to sink my teeth into your xcom-like variant and add in my real-time movement outside combat. Then hit my head against a wall until I become gud at big units.

            Anyway, hope you're having a nice time these days dude. Stay fresh, you are an amazing human being.
            That model is fantastic, Justo! You manage to portray so much movement and emotion

            Version 2.3 has actually been out a while. Seems like I forgot to update the changelog (oops). 2.4 is actually live already, and I'm currently working on 2.5 You'll find three different kinds of turn managers in the toolkit now. The base is a faction-style (similar to XCOM), but there is also a D&D-like initiative system and a secondary faction-style turn manager that does not select the next unit automatically (similar to Fire Emblem)
            The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

            Comment


              Thanks Knut, your praise means a lot to me. Indeed, I was looking at your changelog for info, I can see now you updated it."Experiemntal hybrid real time third person/top-down turn based map" I see?! That sounds an amazing lot like what I was looking for actually. Downloading the latest version right now...Cheers!
              Artstation | 3D Artist | Krakow

              Comment


                Uhh, how am I supposed to see the new modes? I shall mention beforehand I am testing this in 4.23, if that's an issue (I don't see anywhere a quick notice on what's the recommended engine version for the latest update).

                The post announcing the update doesn't really address this (had to dig around the thread pages to find it, too. In a thread with 200+ pages, I insist it's a good idea to add hyperlinks to these longer posts in your changelog where the update version is named & described, so that anyone can quickly access further descriptions for more info. I have yet to find the 2.4 post). The assets in the update dont have a description that I could see that would let me know either.


                My failed attempts to make things work:

                I see the BP_TurnManager_Initiative, Strategy & Hybrid TurnManager child actors. I also see for each of those, a new Game Mode was created with its respective name. I tried using these gamemodes hoping that it would turn the game style automatically:
                Tested all three modes in the JungleRaid map, but enemy behaviour seemed kind of broken for all three versions, so I assume this was not the intended test area for these modes. I also tried applying these Game Modes to the Example test map. The Strategy one didn't really differ from playing the level with no game modes, other than the fact the PLAYER TURN and ENEMY TURN now appear at the beginning of each side's phase. I suppose this is okay, since the default game style sort of acted this way originally (first move all your units, then the enemy moves, then you, etc..).

                As for the Initiative mode, I assume the Initiative property in units is what would determine the initiative of all combat participants, regardless of team faction (D&D rules afaik) no? I tried assigning the units some arbitrary values, but in the end, all player units would act together, followed then by the enemy, almost as if this game mode was also Strategy. The way initiative works seems to have changed too, or was it always like this? From its description:

                "The default units have initiative set to 0 for enemies and 1 for players, sorting them neatly into two separate acting teams. "

                I think this statement is confusing, and wrong. Player units can have a value from 100 to 199. Enemy units from 0 to 99. Also, is this really the smart way of doing this? Clamping this value depending on team faction seems...prone to errors and convoluted? Why not just have it be one integer value from 0 to whatever, without constraints? What would happen if a unit is mondcontrolled or switched teams mid-game? I'm sure you have thought of this way more than I, so I'm simply curious to hear your thoughts as to why you decided to do it like this.

                TLDR:

                If there is a post somewhere explaining how to make the gamemodes work do tell. Also I think documentation, both in this thread and in the project files, could be improved and are currently confusing for someone without a strong understanding of how the kit works. Things that would help to speed version-control-checks:
                -Adding hyperlinks to the changelog in this thread
                -Adding recommended UE version and current downloadable ATBTT version number in the official ATBTT description in the Epic Launcher would help (or the changelog too)

                Sorry if this has been discussed elsewhere; I was not able to find such a post. Point me to it if there is sth like that Cheers.
                Last edited by Justo; 11-07-2019, 09:55 PM.
                Artstation | 3D Artist | Krakow

                Comment


                  Originally posted by Justo View Post
                  Uhh, how am I supposed to see the new modes? I shall mention beforehand I am testing this in 4.23, if that's an issue (I don't see anywhere a quick notice on what's the recommended engine version for the latest update).
                  I generally always make a new update when UE4 makes a new engine version. This update was added along with UE4.23, so you need to use 4.23 in order to get the new functionality. It is probably a good idea for me to note what engine version is tied to what toolkit version. I'll put it on my to-do.

                  Originally posted by Justo View Post
                  The post announcing the update doesn't really address this (had to dig around the thread pages to find it, too. In a thread with 200+ pages, I insist it's a good idea to add hyperlinks to these longer posts in your changelog where the update version is named & described, so that anyone can quickly access further descriptions for more info. I have yet to find the 2.4 post). The assets in the update dont have a description that I could see that would let me know either.
                  Good idea. I've added hyperlinks to all the versions in the changelog. I also recommend looking at my Trello for somewhat more detailed changes. My written info on each update unfortunately vary in how informative they are, however. For the variant turn managers I have not yet created any tutorial or guide.

                  Getting them to work is intended to be pretty straightforward, though. There are game modes associated with each turn manager, and the only way these differ is to change the class of the TurnManagerClass variable, which is responsible for spawning the correct turn manager. If you select any of the three (non-hybrid) game modes as the game mode in the Example map they should all work without you needing to do any more work. The hybrid turn manager is different and made to work along the special hybrid units in that specific example map.

                  Originally posted by Justo View Post
                  Tested all three modes in the JungleRaid map, but enemy behaviour seemed kind of broken for all three versions, so I assume this was not the intended test area for these modes.
                  Broken in which way? The stealth system does interact with initiative a bit, so this might be what is happening here.

                  Originally posted by Justo View Post
                  I also tried applying these Game Modes to the Example test map. The Strategy one didn't really differ from playing the level with no game modes, other than the fact the PLAYER TURN and ENEMY TURN now appear at the beginning of each side's phase. I suppose this is okay, since the default game style sort of acted this way originally (first move all your units, then the enemy moves, then you, etc..).
                  The difference between the default game mode and the Strategy one (besides the Player Turn text) is that a new unit is not selected automatically when the active unit ends its turn. They are otherwise very similar.

                  Originally posted by Justo View Post
                  As for the Initiative mode, I assume the Initiative property in units is what would determine the initiative of all combat participants, regardless of team faction (D&D rules afaik) no? I tried assigning the units some arbitrary values, but in the end, all player units would act together, followed then by the enemy, almost as if this game mode was also Strategy. The way initiative works seems to have changed too, or was it always like this? From its description:

                  "The default units have initiative set to 0 for enemies and 1 for players, sorting them neatly into two separate acting teams. "

                  I think this statement is confusing, and wrong. Player units can have a value from 100 to 199. Enemy units from 0 to 99. Also, is this really the smart way of doing this? Clamping this value depending on team faction seems...prone to errors and convoluted? Why not just have it be one integer value from 0 to whatever, without constraints? What would happen if a unit is mondcontrolled or switched teams mid-game? I'm sure you have thought of this way more than I, so I'm simply curious to hear your thoughts as to why you decided to do it like this.
                  This statement is indeed confusing and wrong. This is something that has changed a lot over the updates, so I should do some cleaning up here. The behaviour of units that assign initiative values within a range (0-99 for enemies etc.) is specific to the BP_Unit_Debug class. This class was made only for quickly testing out stuff, and this was a quick way for me to make sure the factions did not have overlapping turns before I added the new variant turn managers. I should just remove this code now, as the variant turn managers makes this redundant. Thanks for reminding me of this. For now, use BP_Unit_Anim instead of the debug version.

                  Originally posted by Justo View Post
                  TLDR:

                  If there is a post somewhere explaining how to make the gamemodes work do tell. Also I think documentation, both in this thread and in the project files, could be improved and are currently confusing for someone without a strong understanding of how the kit works. Things that would help to speed version-control-checks:
                  -Adding hyperlinks to the changelog in this thread
                  -Adding recommended UE version and current downloadable ATBTT version number in the official ATBTT description in the Epic Launcher would help (or the changelog too)

                  Sorry if this has been discussed elsewhere; I was not able to find such a post. Point me to it if there is sth like that Cheers.
                  As mentioned I have not yet made any real documentation for the new turn managers. After making tutorials on pathfinding I hope to tackle this next. For now, I'll do my best to answer any questions in this thread. I agree with your suggestions and have added hyperlinks and will also name the UE4 version in future updates (and go back and add it retroactively when I have the time)
                  The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                  Comment


                    Originally posted by Monokkel View Post
                    Sorry about the very late reply, people. Was busy all weekend.



                    Hmm, not entirely sure if I know what you're saying here. What do you mean with "on pawn initiative" and "pawn with the initiative"? Do you mean that when a new unit is selected that is not controlled by the client, the camera focuses on this unit instead of staying focused on the unit specified as that client's hero unit? How precisely do you want the end result to behave?
                    Hello, I've spent quite a bit of time troubleshooting this issue, I will try to describe what is going on. After I implemented the code you supplied this is what happens:
                    I have a simple node setup in the level BP to "on event play" spawn a custom unit on "playerstart". the unit is fully animated and functional. the issue is that the "Host" player works as normal, while the client (remote) spawns on 0-0-0 transform. The remote has no control of the pawns to move or use abilities and I get an error when trying to move.

                    the intention was to make it so the host could control all the "NPC" units and the player would be able to control only their unit, as the remote in the multiplayer game. the screenshot is of the gameplay on "begin play" i will take additional screenshots of modified blueprints.Click image for larger version  Name:	spawn-transform-issue.jpg Views:	0 Size:	302.1 KB ID:	1685226
                    Last edited by consummate707; 11-10-2019, 08:17 PM.

                    Comment


                      Originally posted by consummate707 View Post

                      Hello, I've spent quite a bit of time troubleshooting this issue, I will try to describe what is going on. After I implemented the code you supplied this is what happens:
                      I have a simple node setup in the level BP to "on event play" spawn a custom unit on "playerstart". the unit is fully animated and functional. the issue is that the "Host" player works as normal, while the client (remote) spawns on 0-0-0 transform. The remote has no control of the pawns to move or use abilities and I get an error when trying to move.

                      the intention was to make it so the host could control all the "NPC" units and the player would be able to control only their unit, as the remote in the multiplayer game. the screenshot is of the gameplay on "begin play" i will take additional screenshots of modified blueprints.Click image for larger version Name:	spawn-transform-issue.jpg Views:	0 Size:	302.1 KB ID:	1685226
                      Hmm, I'm uncertain about how implementing the camera changes I gave you could have led to these issues. Are you sure it is related or are you getting the same errors when you use regular cameras? How are you spawning the new units? It seems like they are not being properly replicated.
                      The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                      Comment


                        Originally posted by Monokkel View Post

                        Hmm, I'm uncertain about how implementing the camera changes I gave you could have led to these issues. Are you sure it is related or are you getting the same errors when you use regular cameras? How are you spawning the new units? It seems like they are not being properly replicated.
                        I figured out why the camera control was not working, as the assigned actor was not being controlled by a player it was causing a bug. Once I fixed that issue the control was reestablished. Now for why it's spawning at 000 is another issue I need to resolve, thank you for being so vigilant about helping people in this thread.

                        Comment


                          Originally posted by consummate707 View Post

                          I figured out why the camera control was not working, as the assigned actor was not being controlled by a player it was causing a bug. Once I fixed that issue the control was reestablished. Now for why it's spawning at 000 is another issue I need to resolve, thank you for being so vigilant about helping people in this thread.
                          Good to hear you figured it out

                          As for your spawning event I'm a bit unsure how the level blueprint works with networking. I assume it might always be owner by the server. How are you accessing the PlayerStart for the client here? It might be an idea to time the spawning of the units so that it happens after the TurnManager has acknowledged that all the players have joined the map. Depending on how you've set up your code in the level blueprint it it might trigger before the needed clients have joined, returning false locations being interpreted as 0,0,0. Mostly guessing here.
                          The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                          Comment


                            Hi, hope all is well

                            I've been playing around with the Add New Ability feature you created, thanks for that. it's working fine for the majority of what i need it for. However there is one instance in which I want to Add an ability for a single turn, and i'm having trouble destroying that ability on the next turn after it has been added.

                            I was thinking, maybe this would be good to implement as a status effect? I'm actually venturing into a part of my project where I'll be creating and using my own status effects quite a bit, so would also be really helpful to get a sense of whats the best way to think about how those work, for example I'm going to have an ability which exhausts a unit for a single turn, and I'm not quite sure where to get started on that, even though I understand the exhaust function.

                            Thanks!

                            Comment


                              Originally posted by behappyandsm1le View Post
                              Hi, hope all is well

                              I've been playing around with the Add New Ability feature you created, thanks for that. it's working fine for the majority of what i need it for. However there is one instance in which I want to Add an ability for a single turn, and i'm having trouble destroying that ability on the next turn after it has been added.

                              I was thinking, maybe this would be good to implement as a status effect? I'm actually venturing into a part of my project where I'll be creating and using my own status effects quite a bit, so would also be really helpful to get a sense of whats the best way to think about how those work, for example I'm going to have an ability which exhausts a unit for a single turn, and I'm not quite sure where to get started on that, even though I understand the exhaust function.

                              Thanks!
                              Sure, something like that could be done with a status effect.The basic function of status effects is relatively straightforward. They are added using the AddStatusEffect function in BP_AbilitySystem (of the unit you are adding the status effect to). When a status effect is added this way, the Activate event on the status effect is immediately called. This is a good place to queue any visual indicator of the status effect or any other immediate effect (expanding on the AnimateActivation event which is queued here by default is a simple way to put the visual part of the activation).

                              Two central events are RunOnTurnStart and RunOnTurnEnd. These are blank in the BP_StatusEffect parent blueprint which you can override in your custom child blueprints. These are the events you probably want to use for ongoing effects such as applying poison damage every turn etc.

                              The last event is Disable, which by default calls the Destroy action on the status effect (which by default turns it invisible. You can expand on this as needed) and sets a queued timer to destroy the actor itself.

                              For your use case you probably want a status effect which holds a reference to your ability. You set this reference when you add the status effect and destroy it on RunOnTurnEnd. You should not straight up destroy it instantly, though, as the destroy command could happen before any actions using a reference to the status effect have animated, so use the QueueDestroy macro so that it is first actually destroyed when it is no longer used. To make it appear destroyed before then, remove the ability from the abilities and abilityrefs arrays in BP_AbilitySystem. Come to think of it, you would want to do this even in the event of destroying the actor, as you would be left with empty array elements. Use RemoveIndex, not RemoveItem to prevent this.

                              RunOnTurnStart/End are called on slightly different times depending on what turn manager you are using. For BP_TurnManager_Initiative it is called on the start and end of the specific unit's turn. For the other two turn managers it is called on the start and end of the current faction's turn for every unit of that faction.
                              The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                              Comment

                              Working...
                              X