Construct's Armory

Construct's Armory

30M Downloads

[1.12.2] Polishing conflict between Plates & Traits.

SonicX8000 opened this issue ยท 7 comments

commented

Minecraft: 1.12.2
Forge: 14.23.5.2854

Mods: 5
conarm-1.12.2-1.2.5.9
jei_1.12.2-4.15.0.291
Mantle-1.12-1.3.3.55
Metallurgy-4-Reforged-0.3.2
TConstruct-1.12.2-2.13.0.183

=====

Sponge Plates gives 5 Base Toughness, if I throw in Skeletal... that gets boosted to 7.5 which is a 2.5 boost.

I polish with Krik from Metallurgy as that has 9 Toughness by default. Now... with Skeletal that should put my Toughness to 11.5 due to the 2.5 Toughness from the Sponge Plates since it gives 5 Base Toughness however it appears that Polishing your armor will break Skeletal & Indomitable Traits from adding in extra Toughness from the Plates.

This may be due to this change here...

"Changed Polishing modifier back to original behavior that overrides toughness [#223]"

One more thing to note down... if you Polish Armor since it was an upgrade from the Plates with low Toughness but later change the Plates... Polishing will take Priority over the better Plates. For example...

If you had 2 Toughness from Plates, then Polish with Sponge for 5 Toughness, then later add in Krik Plates from Metallurgy for 9 Toughness... you will still have 5 Toughness from the Sponge Polish unless you re-polish your armor with Krik. Skeletal / Indomitable still won't boost your Toughness.

The Diamond Modifier is unaffected as it adds Bonus Toughness which is added onto your Overall Toughness Value.

I did do a breakdown of the Toughness Modifiers & such before the change, which is seen in [#212].

EDIT
Giving that change line a read again... it says it overrides Plate's Toughness so... shouldn't that make Skeletal / Indomitable boost the Toughness as if it were the base Toughness? Like a Polished Krik which gives 9 Toughness would now give 4.5 Bonus Toughness via Skeletal?

commented

This is a valid issue, but unfortunately not one I plan on fixing at this time. This is because I was short-sighted when designing the Polishing modifier this way, not realizing that using a stat like this has some odd interactions with the way Tinkers' items are constructed. The best way to fix this is basically to not use toughness as the polishing stat, but obviously that's a radical change so that's why I won't be fixing this until this gets ported and I get to redesign everything.

commented

Would reverting the change back be a possible fix? Polishing setting your Toughness as Bonus Toughness & the Traits boosting Toughness based on the Plate's Toughness.

commented

The issue that was supposed to solve is described in #223. The problem with reverting the change is that it mean polishing your armor can give you infinite amount of toughness (edit: Actually, I don't remember precisely. Not infinite, just more than expected at least). Between these two behaviors, I'd rather stick with the current one where it's a bit broken but not exploitable.

commented

It's almost-infinite, as long as there is enough different Polishing Kits to keep on adding to the armor for a billion Toughness. Still is quite a problem though.

I wonder if Fortified does the same thing, now thinking about it... but that's mining level so it prob wouldn't stack.

EDIT
Yup, Fortified does the same thing but the levels don't stack & it will use the last kit that you applied on it. I sharpen it with Fortified and then Firewood and when I went to re-Fortified it with Flint, it wouldn't let me.

commented

Alright, so... an update for this.

So those traits do in fact work with polishing however... the polished modifier has to be on top of the other modifiers/traits otherwise they won't work as intended.

Example 1
I have Manyullyn Plates so... that's 3 Toughness. If your trait/modifier list is like this...

Polished(Sponge)
Skeletal(Embossment)
Diamond

Toughness becomes 5, with a +1.5 Bonus from Skeletal and +2 from Diamond Modifier, totaling to 8.5.


Example 2
If instead it's like this...

Skeletal Trim
Polished(Sponge)
Diamond

Toughness is 5, with +2 from the Diamond Modifier, totaling to 7. Skeletal was ignored so it doesn't do anything.


Example 3
Now... if you do it like this...

Skeletal Trim
Diamond
Polished(Sponge)

This will actually LOWER your Toughness, as the Skeletal + Diamond would put Toughness to 6.5 but because of Polishing being at the bottom of those two traits... it puts your Toughness to a total of 5.

=====

I wonder if some kind of priority could work around this? Unless there's one already.

commented

Perhaps each trait can be given a 'priority', and a sorting function be run upon modifying. Polishing can be given a higher 'priority' than regular traits, and sorted to the top of the list, thusly preventing it from accidentally "overriding" any toughness granted through traits or modifiers.

commented

if not the above suggestion, could we get a config to chose the way we want things to stack? i understand wanting the mod not to be broken for modpacks, but on a private server where people are all friends i'd rather not have some people being unaware they are being gimped by a bug