Tutorial:Pooled Resource Unit Costs: Difference between revisions

From Total War Modding
Line 7: Line 7:


== The Theory ==
== The Theory ==
If you're not familiar with Lua UI modding then the [https://tw-modding.com/wiki/Main_Page#UI_Tutorial_Series,_by_Vandy: UI Tutorial Series] is a good place to start as this guide won't explain everything about UI, just what we need to know.
If you're not familiar with Lua UI modding then the [https://tw-modding.com/wiki/Main_Page#UI_Tutorial_Series,_by_Vandy: UI Tutorial Series] is a good place to start as this guide won't explain everything about UI, just the main things we need to know which are:
 
There are 3 main elements to making something cost a Pooled Resource:


# [https://tw-modding.com/wiki/Tutorial:Pooled_Resource_Costs#Building_the_UI '''Building the UI''']: This involves finding existing UI components, copying them, and repositioning them.
# [https://tw-modding.com/wiki/Tutorial:Pooled_Resource_Costs#Building_the_UI '''Building the UI''']: This involves finding existing UI components, copying them, and repositioning them.
Line 15: Line 13:
# [https://tw-modding.com/wiki/Tutorial:Pooled_Resource_Costs#Handling_the_Cost '''Handling the Cost''']: This involves taking away / returning the Pooled Resource to the player in a multiplayer-friendly way.
# [https://tw-modding.com/wiki/Tutorial:Pooled_Resource_Costs#Handling_the_Cost '''Handling the Cost''']: This involves taking away / returning the Pooled Resource to the player in a multiplayer-friendly way.


Some things I would highly recommend you use are Groove Wizard's [https://github.com/chadvandy/tw_autogen Visual Studio development environment] for scripting, Groove's [https://steamcommunity.com/sharedfiles/filedetails/?id=2791799449 Modding Development Tools: Lua Console], and Groove's [https://chadvandy.github.io/tw_modding_resources/WH3/campaign/campaign_manager.html#class:campaign_manager scripting documentation] (yes this man is a machine).
Some things I would also highly recommend you use are Groove Wizard's [https://github.com/chadvandy/tw_autogen Visual Studio development environment] for scripting, Groove's [https://steamcommunity.com/sharedfiles/filedetails/?id=2791799449 Modding Development Tools: Lua Console], and Groove's [https://chadvandy.github.io/tw_modding_resources/WH3/campaign/campaign_manager.html#class:campaign_manager scripting documentation] (yes this man is a machine).


== Building the UI ==
== Building the UI ==

Revision as of 04:28, 10 July 2023

Originally written by Pear

Let's Talk Pooled Resources

Pooled Resources are an important part of what makes any faction unique. The problem is they're often not used for very much. This tutorial aims to fix that by explaining how to use Pooled Resources as costs using units in the main recruitment panel as an example. The theory used here can be applied to a range of other things such as RoRs, lords, agents, buildings, and technologies or anything you want really.

This guide is also my submission for Mod Jam #7, along with an example mod for making units cost Pooled Resources in the main recruitment panel.

The Theory

If you're not familiar with Lua UI modding then the UI Tutorial Series is a good place to start as this guide won't explain everything about UI, just the main things we need to know which are:

  1. Building the UI: This involves finding existing UI components, copying them, and repositioning them.
  2. Handling the UI: This involves handling refreshes to the UI, making sure UI components are enabled / disabled, and have the right text, tooltips, and icons at the right time.
  3. Handling the Cost: This involves taking away / returning the Pooled Resource to the player in a multiplayer-friendly way.

Some things I would also highly recommend you use are Groove Wizard's Visual Studio development environment for scripting, Groove's Modding Development Tools: Lua Console, and Groove's scripting documentation (yes this man is a machine).

Building the UI

In order to modify parts of the UI you first need to find where they are located. To do this you'll need to use the Context Viewer. The first step is figuring out where you want your cost to appear. For units this will probably be in the same place as normal recruitment and upkeep costs — below the unit card.

Finding UI Components: To find a component, open the context viewer, position your mouse on the screen where you want your UI component to go, and click with your mouse wheel. This will take you most, if not all, of the way to the path of your component. For units we are going to copy the normal recruitment cost UI component so click on the unit card then expand the unit card component in the Context Viewer until you find the component for recruitment cost. Once you've found it, paste CopyFullPathToClipboard() in the expression tester box.

Handling the UI

Handling the Cost