Log in

View Full Version : Savage Worlds Ruleset Updates for Aug 2024



Mike Serfass
July 25th, 2024, 03:48
Hi all!

I'm taking over responsibility for maintaining the Savage Worlds ruleset. At least until Ikael returns and takes it back over.

A number of bugs were introduced with the CoreRPG reworking. I'm working through them.
Many of the UI elements were already a bit behind. I'm catching them up to the newest controls / approach.
So far I completed
- inventory items
- armor
- weapons
- cyberware
The arcane device section behavior has been adjusted slightly. Now, the power point fields do not lock or disappear. They'll awlays stay editable so you can adjust the PP without having to toggle the mode back and forth.
All modification sections now display current and max mod points. If your setting enforces mod limits, this is for you.
You can now drop effects onto armor and the effect will be added to notes. It adds the @ effect prefix for you.
You can now drop effects onto items and the effect will be added to notes. It does not auto-add any effect prefix for you.
You can drag effects from the Effects window, from a power's Effects section, wherever.
I added sidebar buttons for modifications, cyberware, HQ, and HQ Rooms. You won't see these unless an extension activates them, but extensions no longer have to set an icon. (They still can if they want to.)

I'm moving some of the functionality from my setting maker tweaks extension into the core ruleset. These are things that Ikael had started on and told me he had on his todo list.
I'm adding the category field to various windows. That field will no longer be hidden. A number of modules use it, and most importantly, the SWADE rules use it.

I'm starting on the combat tracker next. It needs a complete rewrite.

In the refactoring, I've kept the names of the controls the same. This may still break extensions, and some of the changes will break extensions aside from that.
I'm happy to share more detailed information on the changes and help you catch up your extension.
These are numerous and big changes (in Core and SWADE), but when the dust settles, extension creation will be easier.

I'll continue to post updates on my progress and changes. I'll also post details on those changes tomorrow.

Jiminimonka
July 25th, 2024, 06:44
Thanks Mike.

Doswelk
July 25th, 2024, 08:36
It is true, Mike is the second coming of Ikael...

...and the third coming of Phantom Whale (how many remember him?)

Then going back to 2007 (and possibly earlier my emails do not go back before 2008) and the original ruleset creator Joshuha Owen

Thank you Mike for taking up the torch and continuing the work done by 3 excellent people before you :)

Claybor
July 25th, 2024, 14:36
Glad to see that we are in good hands. Thanks Mike.

Mike Serfass
July 25th, 2024, 16:00
General Changes
A new header control handles title and non-id name. Non ID name was moved to the header, and a new widget handles that. (This is in CoreRPG.)
Any layout that depended on the non-id name being in the window's <sheetdata> needs to find a new control to anchor to. (But see below about that.)
The label_column, string_columnh, number_columnh, etc. are being replaced with the new xxx_content_xxx versions. Here's what I've replaced in the forms I've updated:

label_column >> label_content_column
string_column >> string_content_column
string_columnh >> string_content_columnh
number_columnh >> number_content_columnh
line_column >> line_content_top
number_column_right >> number_content_column_right
ft_columnh >> ft_content_columnh
comboboxc >> combobox_content_columnh



The anchoring control for them has changed:

<anchor_column name="columnanchor" /> >> <anchor_content_top />



The above list is what I've switched so far.
There are a number of custom widgets for the ruleset that I'm converting as I run into them.

weapon_damage >> weapon_damage_content_columnh
weapon_damagetype >> weapon_damage_content_columnh
weapontype_combobox >> weapontype_combobox_content_columnh
header_column >> header_content_framed_headersimple_sw



The content controls, like their predecessors, handle their own layouts. That's the direction widgets are going; they'll handle their own layout, update, events, persistence, etc.
So lua code on the container windows goes from this:


...
RecordManager.updateArcaneDevice(self, bReadOnly, not bID)
...

updateArcaneDevice(self, bReadOnly, not bID)
local bVisible = win.arcanedevice_powers.update(bReadOnly, bForceHide)
if bVisible then
win.arcanedevice_header.setVisible(true)
local bHasPowers = not win.arcanedevice_powers.isEmpty()
local bShowPP = win.arcanedevice_powerpoints.update(bReadOnly, not bHasPowers)
local bHasPPs = win.arcanedevice_powerpoints.getValue() > 0
win.arcanedevice_powerpoints_usebutton.setVisible( bShowPP and bHasPPs)
else
win.arcanedevice_header.setVisible(false)
win.arcanedevice_powers_iedit.setVisible(false)
win.arcanedevice_powers_iadd.setVisible(false)
win.arcanedevice_powerpoints_label.setVisible(fals e)
win.arcanedevice_powerpoints.setVisible(false)
win.arcanedevice_powerpoints_usebutton.setVisible( false)
end
end

to this:


sub_arcanedevice.update(bReadOnly, not bID)


The old code block no longer needs to be repeated on every window. If you want to add the arcane device subsection to a new window, you used to need the above larger code block and this in xml:


...
<sheetdata>
<arcanedevice_header name="arcanedevice_header" />
<arcanedevice_powers_iedit name="arcanedevice_powers_iedit" />
<arcanedevice_powers_iadd name="arcanedevice_powers_iadd" />
<arcanedevice_powerpoints_label name="arcanedevice_powerpoints_label" />
<arcanedevice_powerpoints name="arcanedevice_powerpoints" />
<arcanedevice_powerpoints_usebutton name="arcanedevice_powerpoints_usebutton" />
<arcanedevice_powers name="arcanedevice_powers" />
</sheetdata>
..


Now you just need this:


<sub_item_arcanedevice name="sub_arcanedevice" />


Following that trend, the _column_ controls need overrides less frequently than the _column_ widgets. So less of this:


<armortype_combobox name="type">
<anchored width="100" height="20">
<top parent="columnanchor" anchor="bottom" relation="relative" offset="7" />
<left offset="97" />
</anchored>
</armortype_combobox>


and more of this:


<armortype_combobox_content_columnh name="type" />


I've kept the names of widgets the same in the forms. But you'll need to change the control type to the newer _content_ version. These new version call the same scripts as the older ones.
They also have new functions to handle more of their own work, so check your custom script against what the new widget has; it may now be handled for you.

Templates
I reworked the arcane device, modifications, and mounted weapon templates.
They no longer need this call in script:


RecordManager.updateXxxx

It's now this simple call:


sub_mountedweapons.update(bReadOnly, not bID)
sub_modifications.update(bReadOnly, not bID)
sub_arcanedevice.update(bReadOnly, not bID)


And simple declarations in xml:


<sub_item_mountedweapons name="sub_mountedweapons" />
<sub_item_modifications name="sub_modifications" />
<sub_item_arcanedevice name="sub_arcanedevice" />


This is pretty much what I've been doing in the various windows and will do in the rest.
I'll provide more details as requested.
If you have an extension that relies on something being rewritten, please let me know so I can coordinate that with you.
If you have any questions, I'll answer them here.

rigerco
July 25th, 2024, 16:20
Sounds like you're moving the mountain. Thanks for doing this.

Mike Serfass
July 26th, 2024, 16:37
I started on the CT rewrite.
First up, I fixed the error when clicking on the next actor button.

Keep in mind I don't deploy any of my changes, not even to the test channel. If you don't see my fixes / changes, it's because Moon Wizard hasn't pushed them yet. He'll get to it soon.

Mike Serfass
July 27th, 2024, 20:41
Jiminimonka reported this:


I notice in NPCs that Blood is the default option for Death Markers but its not in the drop down, so once you change it, you can't change it back to Blood

I'll get that fixed.

Mike Serfass
July 28th, 2024, 14:46
Yesterday I fixed a couple more bugs in the CT introduced by the CoreRPG updates. A couple on the host and a few on the client.
There were also some changes to functionality caused by the CoreRPG updates. I set them to expected Savage behavior.
I also corrected layout problems introduced by the changes.

Jiminimonka
July 28th, 2024, 15:18
Waiting for this to go to Test so I can Test!

Moon Wizard
July 28th, 2024, 18:03
Mike,

Make sure to ping me via e-mail when changes are ready to be pushed to Test channel; since I won't know otherwise.

Regards,
JPG

Jiminimonka
July 28th, 2024, 19:15
'tis pushed - in there now Testing.

macDsinfo
July 29th, 2024, 14:15
thank you.

Mike Serfass
August 3rd, 2024, 20:53
More updates to Combat Tracker!
This is now available in the Test channel.

Fixes
Characters on host combat tracker don't set background when targeted or untargeted.
In CT, when deleting the active combatant, the Current Turn arrow would disappear. It would reset to the top of the list when clicking the Next Actor button and sometimes throw an error.
I addressed a FEW other errors and layout issues.

Changes
CT should load a little faster now.
In Combat Tracker, there's no longer a persistent blank line in the Effects list. There's now add button for adding a new Effects. It appears when you click the display effect button.

New Features
Players can now remove their own Power effects from targets in Combat Tracker. When they do so, all targets of that Power will have their effects removed as well.
Players can now remove the following effects: Prone, Cover, Called Shot.
Setting / extension creators can add additional effects that can be removed by players by calling

ActionEffect.registerPlayerCancelEffect("effect name")
where "effect name" is replaced by the name of your effect. It supports pattern matching (regex).
This function call will return the list of player-removable effects:

ActionEffect.getPlayerCancelEffects()
On the host (GM) side, holding Alt when clicking the "remove effect" button will remove that caster's power's effect from all targets.

Mike Serfass
August 8th, 2024, 18:20
Here's what was just released to the Test channel.

Fixes
Fixed a bug that was sometimes putting the wrong caster's name on power effects.
When combatants are added or removed from groups, they now retain targets and removeable effects.

New Features / Changes
Added category to the Modifications window.
Added Modifications "by category" filter and list view.
For setting creators, added ActionEffect.removePlayerCancelEffect. If you don't like players being able to remove certain effects on their own.
Added light and vision to player removable effects.
On the Combat Tracker, when manually adding an effect, pressing enter auto-completes like pressing tab does.

Sprawlrunners
Updated cyberware inventory list to display total strain correctly.
Fixed strain derived stat.
Updated to match changes to CoreRPG and SWADE ruleset.

IZ2
Fixes to cyberware functionality.
Updated to match changes to CoreRPG and SWADE ruleset.

IZ3
Fixes to cyberware functionality.
Updated to match changes to CoreRPG and SWADE ruleset.

Mike Serfass
August 12th, 2024, 14:27
The last couple of updates to SWADE were pushed to test this morning. That will be all the changes until it goes live.

Fixed layout of Edge abilities overlapping the effect field.
Added short description to Edge, Power windows.
Added Dark Sight, Low Light Vision, Nightvision, Infravision to list of player-removable effects.
Added type filter to Edges list.
Added Edges by Rank list view.
Added rank column to Edges By Type list view.
Added type filter to NPC list.
Added NPCs Details list view.
Added NPCs by Type list view.