[SUPPORT] Roguelike Deckbuilder Toolkit

Thanks for that, that was a lot more involved than I imagined it would be, I thought a quick little loop of statuses, if it had a x2 poison status kind of thing.

From a player’s perspective, with this set up how would they know which things they were immune to and which things they were weak to? As all the weakness and immunity is tied to the one status isn’t it?

If a creature were immune to physical damage and weak to poison (as in your example, there is only 1 icon for both, so it would be hard to tooltip. Unless there was some cleaver way of looping through the gameplay tags in the MAP keys and then checking the value for 0 and/or >0 and dependent on the result you could add a gameplay tag to the status…not sure how you would do it though?

I have also noticed now since adding the code, my burn cards do not add burn any more to the enemy minions, it will however do double the physical damage of any card marked Effect.Damage.Fire; So in my case a card does 9 Ranged damage add 2 burn. It no longer as the burn status but will do 18 damage. I removed the vulnerability status and all tags and tried again and it will still not add the status any more

Yeah I thought the flipbook thing would be straightforward also, just set, reset. However does not seem that simple. Something to keep working on.

I haven’t removed any of your cards, and as far as I am aware have not changed any of the rarity?..Ahhh I may have changed the rarity of the reward type of elites as I added some new rarities to the game and then added them to the rewards.

I am not sure why the card that discovers other cards would be affected though? I’ll got have a look through the datatable and the rarities to check for the possible issues you have highlighted.

Thanks for all this!

Oh and yeah, I try to keep my questions to 1 at a time but as I am bouncing from one thing to another as I get stuck on something I want to keep progression moving, more questions pop up and I have already forgotten to ask more questions than I have asked. I should write them down on a pad pr something…but I am the keyboard and just think I’ll pen them in here so I don’t forget to ask.

I continue to work on the issues myself at points just in case I can solve them myself, some sort of epiphany happens or something.

I don’t expect you to answer them all in one go, I would probably get confused with the answers anyway.

Please ignore the part in the previous post about the status not applying correctly, I simply had not hooked up one of the execution pins.

I also solved the flip book issue as well in the end, you may have seen in the support discord?

Happy to help, don’t get me wrong :slight_smile: I just prefer focusing on one issue at a time, so as long as I know your priorities I can find solutions when time permits.

Immunity in the way I set it up is just the game logic part, so how you choose to display this to the player is up to you, and depends a lot on your game. If it is common that monst monsters have lots of different weaknesses and resistances you probably want a custom UI for that instead of lots of individual statuses. However, if monster usually have just a couple of such resistances, displaying each as a unique status might make more sense.

Yeah, saw your post on Discord. Glad you figured out your flipbook issue. Here is the solution posted on Discord for any future readers:

1 Like

My intention currently, was mostly to have a semi…I can’t remember the name for the thing, covered it in my degree as well…oh well the idea is mostly to have an opposition situation, coupled with an obvious likeness.

So Fire → Water → Electricity → Wind → Fire kind of thing.

If you are a water boy, you are impervious to water attacks, weak against fire attacks, half damage wind attacks. Kind of thing. So most of the time you are only really going to have 2 statuses 1 debuff, 2 buffs.

I also want to be able to give this to a character temporarily, a card that is a fire shield, is ignored by a wind attack but stops all water attacks.

If I were to duplicate the “immunity” status and set one up for each “element” so that I could add the ones I wanted would that cause any issues? Would the tag get called 3 times? Or each status added do all of the items set up in the data table?

I am just not sure how I can separate them out in to separate icons when 1 icon can do 50 things.

You could do this with multiple statuses instead. If so you could scrap the damage map added to the minion data. Instead you could just use simple statuses for this. Each status would look for a specific gameplay tag in the incoming effect. This will result in a lot of statuses listening for events, where each such event will call all of them. So it is not super elegant, but for the limited amount of statuses you have it should not be that big a deal. There are more involved things you could do to avoid this, but for your use case I think going with the simple, straightforward individual status setup should work fine.

I am having a tonne of issues with the gameplay tags, and it is another item on my to fix list.

I added a number of rows to the DT and now if I have something like an Effect. Attack and Event.Damage or whatever the tags are (can’t remember off of the top of my head.) Then the cards don’t display the labels correctly and the enemy don’t show attacks and so on.

So I think I definitely need to do the game play tags differently to how I did them, but I am not 100% sure adding more will be helpful at the moment. Something to think about though?

The elements I gave you were just an example, there are more and there are a lot of rules I want to apply. As I essentially want to make a type of RPG with cards.

I may stick to getting the basics done and work on the finessing of stuff later, as I think I attacked this project all wrong and didn’t really layout a proper plan.

I think I should have got all the levels set up so I had a full run from start to finish laid out, then added all the monsters sans animations, then setup all the heroes, then set up all the menus…and so on, I got super excited and kind of dived in way too quick to adding all the special sauce.

I have no idea how to fix the gameplay tag issue other than to either change them all and go through working out what it breaks (and it will I am sure) re tick all the exact matches I unticked so that the game doesn’t break when I have more than one tag attached to something.

That or start again, and I really don’t want to have to start again, because that would be a real pain.

Anyway thanks for the response on this, I’ll have to have a think about it. As I have an ever growing list of things to fix and no forward movement on progress.

I’ll do my best to help out :slight_smile: For figuring out bugs, Discord is generally better as we can go back and forth to test out various potential issues, so I suggest we chat there. The support thread is best for when I need to give long answers with screenshots etc to some larger or more complex issue.

1 Like

New update is out. This one is just bug fixes, as well as some tweaks to prevent issues in projects converted to UE5 preview. Here is a list of changes:

v1.1.1

  • FIXED: Card Z order did not work properly in UE5 converted projects.
  • FIXED: Card offset on hover did not work properly in UE5 converted projects.
  • FIXED: Moving to chests on the artifact map don’t save your location.
  • Now displays “Blocked” text if an attack is blocked. Added an action for displaying splash text for this purpose.

New update is out, with a few bug fixes:

v1.1.2

  • FIXED: End game screen was not displayed after defeating the final boss in the UE5 version
  • FIXED: If adding multiple status indicators to layout, only the first was set up properly
  • FIXED: Reward cards that award multiple cards now works correctly.

New update is out! This is a massive update with tons of additions and changes. Full changelog can be found on my Trello, but here are the highlights:

v1.2

  • “Story encounters” on the Node Map, where you are presented with a story and get to choose different outcomes. Five sample encounters included, demonstrating a variety of implementations (such as card removal, card upgrades, on map damage etc.)
  • Shop on the Node Map for buying cards.
  • Currencies as artifacts (coins included by default), with custom artifact bar.
  • Second “final” node map that is loaded after beating the spider boss
  • Added Paper Flipbook puppet (and new enemy minion making use of it).
  • Several new artifacts demonstrating new functionality (such as retaining mana, increasing card draw++).
  • Several new example cards demonstrating new functionality (such as retaining cards, using all remaining mana etc.)
  • Reshuffle animation when discard pile gets shuffled back into draw pile.
  • Object payloads and gameplay tag containers can now be passed through when calling an action, opening up more options for what can be done with events.
  • FIXED: Freshly spawned minions will slide in from the side of the map if they have no or a short entrance animation.
  • FIXED: Hand select screen cards do not use custom card visuals from data.

New update is live for UE5.1. Some fixes are included:

v1.2.1

  • FIXED: Cards do not update frame lighting if they cannot be played until you try to play them (was new issue for UE5.1)
  • FIXED: Card glow would not reappear if the player gained enough mana to make the card playable again
  • FIXED: Cards without a type set their rarity to invalid instead of setting their type to invalid
  • Removed unused EventHolder interface from DispatcherHubComponent
  • Added card effect for opening a node map

A new update is live for UE5.1. Fixes a few bugs. Also includes a few tweaks and minor improvements:

v1.2.2 (live 22.01.23)

  • FIXED: FIXED: Playing in standalone crashes the game when opening node map (does not affect PIE or packaged projects).
  • FIXED: Sword puppet had collision profile set to Overlap instead of Pawn, causing card targeting not to work with it.
  • FIXED: Clicking on a card to drag it with no mana permanently disables the end turn button (until you click anywhere).
  • Simplified the stat cost use rule. It now only looks at the stat for that specific use rules and not other rules for the same card. This will also prevent use rule costs from multiplying for each use rule included.
  • Added Enhanced Input.
  • Event.Action.Draw is now again called when cards are visually drawn.
  • Defaulted all out attack to 99 mana (in practice only affects mana number color).
  • Parameterized card transfer frequency in card transfer component

A new tutorial is out! In this video I describe how to create new Effect Actions, a special type of Action class responsible for animating a card effect being executed. I show how to create a projectile Effect Action among other things. Enjoy!

A new update is live for UE5.2 with a couple of minor additions and some bug fixes:

v1.2.3 (live 14.05.23)

  • Cards are now shrunk and moved to the side out of the way when used.
  • “Get status value” interface function.
  • FIXED: If minions were killed by their own card it logged several warnings.
  • FIXED: If an invalid status widget was selected for displaying a status an error would get thrown. Now it is simply not shown instead, as intended.
  • FIXED: Attack pattern with a value of 0 would not advance.
  • FIXED: “ResolveCallEvent” always returned false if calling a specified actor.
  • FIXED: “AddNewCardToPile” with a higher effect value than 1 added multiple references to the exact same card instead of creating duplicated cards.

A new update is live for UE5.3 with a few changes:

v1.3 (live 13.09.23)

  • Split the Puppet UI into a top and bottom section. This allows their position to stay constant relative to the Puppet if you move the camera.
  • New card status that auto plays a card on draw and then draws a new card.
  • Removed blank gameplay tag variables and Game Instance being passed as payloads in Events as such dummy variables are no longer needed in UE5.3.
  • Removed unused TransferTag input from SpawnAndAddNewCard interface function.
  • The Draw Card function now returns the drawn card as output.
  • FIXED: Potential memory leak in “Access Targeting Class Lazy” in BP_Card.

A new update is live for UE5.4:

v1.4 (live 29.04.24)

  • Added dev comments to all gameplay tags and removed unused tags
  • Added descriptions to all remaining classes
  • Created global function for adding to a status capped to its max value
  • Pressing RMB while dragging a card now returns it to hand
  • Friendly Name of heroes no longer need to match their row name for hero selection to function
  • “Spawn and Play Hero Card” from BPML_Card now applies appropriate modifications to the spawned card such as from Strength
  • FIXED: Card removal on hero minion death was not working properly
  • FIXED: Attempting to unbind an event that was not bound would still call some logic associated with unbinding
  • FIXED: Splash icon now rotates to face the camera if the camera moves.