Shield Storage

[Open Assets] Shield Storage 2.1

Relatively sooner than what I expected but here we are! Let's get going. :blink:


CROSS-ADDON COMPATIBILITY
Should be easier now to make custom shields to work with this. Instead of having to edit the lua directly now all you need to do is create a config (or text) file in your luafiles/client/Shield Storage/ folder (Yes, you'll have to create the dedicated Shield Storage folder yourself).

The way you should lay out the information in your file should be as such:
luafiles/client/Shield Storage/generic_config_file.cfg:
Amargeddon Shield,SH_ARMAGEDDON,No description,TVARICON,sfx_armasg
Attraction Shield,SH_ATTRACT,No description,TVATICON,sfx_attrsg

For the sake of simplicity, in this example let's pretend Armageddon Shield and Attraction Shield aren't supported by default.
In your config file you'll simply inform, in this exact order:
  1. The name of the shield;
  2. Its constant;
  3. A description;
  4. Its respective graphic;
  5. And its sound constant for the orb.
No quotes, separated by commas, no spaces after the comma, exactly as the example shows. Each line having the information for each shield respectively. After that you'll hop into the game and run a couple commands which will be explained into the next section.

Obviously for other addons you'll have to dig for the constant, graphic image, and sound constant (if any). But at least now you won't have to do all that AND edit my code.

CONSOLE COMMANDS
Honestly I have no idea how the heck I didn't think of this before but no use dwelling in the past. All commands needs admin privileges to use if you're in a netgame.

COMMAND
PARAMETER / ARGUMENT
ARGUMENT TYPE
DESCRIPTION​
SS_SetCustomList​
filename
string​
Sets up which config file will be loaded with SS_ReloadShieldList
SS_ReloadShieldList
N/A​
N/A​
Reloads the shield list which dictates which shields the addon will work with.
SS_ResetOnLevelEnd
OnOff
string​
Turns on and off, depending on the argument passed, the ability to carry over shields between acts and zones.
SS_SetRingCost
ringAmount
integer/number​
Changes how many rings (minimum 0) the player will spent when exchanging shields or summoning shields from the storage.


CHANGELOG

Changelog.txt:
 ┌┴───────┴┐
┌┤Changelog│
│└─────────┘
│┌━───━┐
├┤ 2.0 │
│└━─┬─━┘
│   └— Initial release.
│
│┌━───━┐
└┤ 2.1 │
 └━─┬─━┘
    ├— Added SS_SetRingCost command to alter the ring cost (value: 0 — whatever the integer limit is);
    ├— Added SS_ResetOnLevelEnd command to allow you to carry shields between zones (value: On | Off);
    ├— Added SS_SetCustomList command to allow you to set a custom shield list for compatibility (value: name of the file);
    ├— Added SS_ReloadShieldList command to allow you to reload the shield list at any time in game. Needs to be used after SS_SetCustomShieldList to have the alterations to take effect;
    │
    ├— Changed how compatibility works as stated above;
    │
    ├— Added "Changelog.txt" (this file you're reading);
    ├— Added "Known issues.txt";
    ├— Added "COMPATIBILITY 101.txt";
    │
    ├— Separated the main script into multiple lua files for the purposes of reducing eyebleed;
    ├— Revamped the way the package was structured oentirely actually;
    │
    └— Lost a bit of my sanity.
  • Cool!
Reactions: SusSped
Back
Top