Jump to content

Which IR should I download


Arthas

Recommended Posts

56 minutes ago, Cahir said:

I do want to install both Revised Armors and Revised Items

Ah. I thought otherwise from your comments in the YARAS thread. Seems to me it would be quite easy to do something like IR + [hypothetical description edit mod] + YARAS. (And it’s trivially easy to change the text output of YARAS to match your preferred style.)

I haven’t looked at the description text output of IR with Revised Armors installed. But I still feel like it would be easier to do IR -> Revised Armors regexp changes -> change description text to your liking, rather than IR -> change text to your liking -> adapt Revised Armors to account for your changes. 

I’d have to look at the Revised Armor code, but I assume the text output is fairly static? In which case my tentative solution would be 1) run the Revised Armor code on the bare text of item_descriptions.tra; 2) delete everything from its entries except the blocks of text you want to change; 3) create a duplicate version of the resulting file, with your changes applied; and 4) write up a little mod running REPLACE_TEXTUALLY on each of the text blocks in those files. 

I can do #1 and #4, you can do #2 and #3. 

Edited by subtledoctor
Link to comment

Here are some different versions of the Ankheg Armor to contrast styles

BG2EE v2.5:

Spoiler
Quote

This plate mail has been expertly crafted. Sheathed in the chitinous scales of the ankheg, it provides a greater degree of protection than traditional plate mail and is not susceptible to rust. As any world-weary adventurer will tell you, however, the best appreciated aspect of ankheg mail is its light weight and low encumbrance. Monsters come and go, but fatigue is a constant enemy.

STATISTICS:

Armor Class: 1 (-2 vs. slashing, 0 vs. piercing and missile)
Requires:
 8 Strength

Weight: 25

BG2EE with IR main component installed (overwrites both .itm and description):

Spoiler
Quote

This magical plate mail has been expertly crafted. Sheathed in the chitinous scales of the ankheg, it provides a greater degree of protection than traditional plate mail and is not susceptible to rust. As any world-weary adventurer will tell you, however, the best appreciated aspect of ankheg mail is its light weight and low encumbrance. Monsters come and go but fatigue is a constant enemy.

STATISTICS:

Equipped Abilities:
 Acid Resistance: +40% bonus

Armor Class: 2
Weight: 35
Requires: 8 Strength

BG2EE with IR main component + revised armors (patches IR description)

Spoiler
Quote

This magical plate mail has been expertly crafted. Sheathed in the chitinous scales of the ankheg, it provides a greater degree of protection than traditional plate mail and is not susceptible to rust. As any world-weary adventurer will tell you, however, the best appreciated aspect of ankheg mail is its light weight and low encumbrance. Monsters come and go but fatigue is a constant enemy.

STATISTICS:

Equipped Abilities:
 Acid Resistance: +40% bonus

Armor Class: 2
Dexterity Penalty: -5%
Speed Factor Penalty: +3
Physical Resistance Bonus: +15%
Weight: 35
Requires: 8 Strength

Bartimaeus' alternative IR(R?) description:

Spoiler
Quote

This magical plate mail has been expertly crafted. Sheathed in the chitinous scales of the ankheg, it provides a greater degree of protection than traditional plate mail and is not susceptible to rust. As any world-weary adventurer will tell you, however, the best appreciated aspect of ankheg mail is its light weight and low encumbrance. Monsters come and go, but fatigue is a constant enemy.

STATISTICS:

Equipped abilities:
 - Acid Resistance: +50% bonus

Armor Class: 1
Requires: 8 Strength

Weight: 25

So I think what you would like to do is, 1) add a hyphen or en-dash to any listed "equipped abilities;" and 2) retain the unmodded listing of what your AC is versus different damage types. And you were having trouble because the different games' text encoding was causing problems with en-dashes (why I gave up on them and now I just use hyphens), and you were having trouble with the damage type adjustments because it would defeat the regexp patching in the revised component. Is that right?

The regexp thing seems eminently solvable (something about $1), BUT I'm not sure it is the right thing to do. Changing the Revised Armor regexp handling in IR could introduce unforeseen errors/bugs, and for such a personal request that doesn't seem like the best tradeoff. I rather think it would be better to simply make a tiny modlet that changes the text to your preferred style, that you could keep and run as your own personal mod. Benefit: if the text is ever changed, it would be a lot easier to update such a mod, by simply rewriting some .tra entries, rather than fiddling with the regexp more.

Edited by subtledoctor
Link to comment
6 hours ago, DavidW said:

On line 144 of lib_cosmetic, %old_loc/ should be %old_loc%/. If you change that, it should work (it does on my install)

Thanks, it chokes on some items with "Uninitialised return array: abil_icon"

Maybe instances like you mentioned, where the IR version has added headers? So there isn't a 1:1 comparison to be made for the .ini file?

Link to comment
5 hours ago, DavidW said:

I’d need to know what the intended output is; seeing the implementation code isn’t enough. E.g. do you want the armor bonuses to display in some specific format; if so, what is it?

This might be a little complicated, but here goes. This is what the AC line in a BGEE game would look like:

Quote

Armor Class: 1 (-2 vs. slashing, 0 vs. piercing and missile)

The flat AC as usual, then what the AC actually equals vs. the different damage types as (and if they're) modified by the type of armor (as each type of armor e.g. leather, chain, plate, etc. has different inherent bonuses, bonuses that exist in the vanilla game but which are also systematically and globally revised by IR). Notice the lack of mentioning crushing weapons - this is because there is neither a bonus nor penalty to crushing weapons with this particular armor type.

This is what the AC line looks like in IR/R currently:

Quote

Armor Class: 1

No mention of the vs. damage types AC values, so IR/R's descriptions (including even my own EE-specific descriptions) are currently not consistent with EE-type descriptions. I can certainly add that information to each and every armor's description so that it's there, BUT the issue is with IR's Revised Armors components, which, as previously mentioned, systematically and globally revises what those specific vs. damage type bonuses are for each type of armor. So if you add that information, it will no longer be accurate - it must be updated in the event of someone installing that component. One solution that Subtledoctor mentioned was simply having that component manually set each and every vanilla item's description so that it's accurate to the new values, but this is an inelegant solution, to say the least - not just because it becomes a bit unwieldy to upkeep, but also because the "Revised Armors" component actually applies to all armors, including ones that are not currently handled by IR (mostly EE-specific armors) and also a number of other mod-added armors that could potentially be in a user's install. So that system would leave you with armors whose descriptions are still inaccurate, which is obviously an undesired behavior.

The system I envision, really, would be something that would scan all items for the following criteria:
1. The item's item type is set to 2 (armor).
2. The item has an identified description.
3. If it doesn't have an identified description, instead check for an unidentified description (and if it has both, it should only try to patch the identified description, not both...I THINK - if that turns out to not be the case, that would be easy to change, though).
4. The selected description of the item must have a line that reads "Armor Class:".
5. The item must have an opcode 0 (Armor Class vs. Damage Type Modifier) with a type of 16 (base AC).

If all of these conditions are true, replace the currently existing "Armor Class:" line with a new "Armor Class:" line that is generated by detecting what the base AC (type 16) is, then write the parenthesized information e.g. "(-2 vs. slashing, 0 vs. piercing and missile)" dependent on detecting additional opcodes for AC types 1 (vs. crushing), 2 (vs. missile), 4 (vs. piercing), and 8 (vs. slashing) and using them to increment or decrement (depending on their values) from the flat AC (but don't read AC type 0 AKA "all weapons" - this one should be ignored). If there is no opcode for one of them, then that particular item should not be written. If an armor has the same bonus/penalty for multiple damage types, then they should be combined (i.e. it wouldn't be "-2 vs. slashing, 0 vs. piercing, 0 vs missile", it'd just be "-2 vs. slashing, 0 vs. piercing and missile"). I believe this is everything you would have to do for the style to remain perfectly consistent with the EE's armor descriptions. It seems obscenely complicated to me for so very little benefit, which is why I currently do absolutely nothing about it and stopped trying to investigate it, :p.

Edited by Bartimaeus
Link to comment
6 minutes ago, Bartimaeus said:

different inherent bonuses, bonuses that exist in the vanilla game but which are also systematically and globally revised by IR

IR main? Or IR revised armors? I can't find any code for that in the revised armor .tpa, though admittedly I'm very tired and my eyes are drooping. In other words, does the main component systematically set these to certain values (other than the vanilla adjustments), and then revised armors systematically sets them to other certain values?

9 minutes ago, Bartimaeus said:

an inelegant solution, to say the least - not just because it becomes a bit unwieldy to upkeep, but also because the "Revised Armors" component actually applies to all armors, including ones that are not currently handled by IR (mostly EE-specific armors) but also other mod-added armors

Ah, I see. I thought revised armors was contingent on the main component, but I guess it is independent?

In which case, it almost makes this easier. Leave the main component and descriptions.tra alone, don't even bother with them. Just run some new code at the very end of revised armors:

13 minutes ago, Bartimaeus said:

yadda

If all of these conditions are true, replace the "Armor Class:" line with a new "Armor Class:" line that is generated by detecting   yadda

Precisely. Maybe I'm crazy, but it doesn't actually seem that complicated to me. Since the values will change for every armor in the game whitelist, we don't care whether it already has such a parenthetical clause or not, or its contents. Wipe it out and replace it with a new one. Install the changes, take a breath, then read the new opcode 0 values, set some variables, insert the variables into partial strings, stitch those strings together into a clause, and plug it in between parens at the end of the new "Armor Class: " line. You could change the systematic changes, change individual armors, whatever, it wouldn't matter, it would read the data at install-time and patch every description correctly. it wouldn't even be hard to traify. 85% of the necessary code is already in YARAS.

And it's definitely worth doing, it's not just for Cahir, rather it would make every armor in the game whitelist an accurate description of what IR did to it.

But, don't hold your breath for working code, right now I'm going to bed.

 

Link to comment
7 minutes ago, subtledoctor said:

IR main? Or IR revised armors? I can't find any code for that in the revised armor .tpa, though admittedly I'm very tired and my eyes are drooping. In other words, does the main component systematically set these to certain values (other than the vanilla adjustments), and then revised armors systematically sets them to other certain values?

I'm in the same boat as you right now re: sleepiness, but my understanding is that the first component uses the same values as the vanilla game, but Revised Armors changes all of them up to completely different values. I'm working off of memory here, but I recall Cahir thinking the same thing as you, that Revised Armors does not do that (is it not mentioned in the readme of IR for Revised Armors that it would do that?), but in actuality it does.

Yes, I think I have envisioned the solution on a conceptual level, but I do not know at all how to implement it on a technical level especially because I despise doing complicated replacements that are anything more than "(this string)" replaced with "(this string)", :p.

Edited by Bartimaeus
Link to comment
16 minutes ago, Bartimaeus said:

I recall Cahir thinking the same thing as you, that Revised Armors does not do that (is it not mentioned in the readme of IR for Revised Armors that it would do that?), but in actuality it does

It's possible there is mention of it in a conversation with Demi buried somewhere in the IRv4 (or v3!) threads... revising those adjustments is certainly the kind of thing Demi would have done. (I wanted to do it as well, until I realize that any system I settled on would 1) be something plenty of players might disagree with, and 2) be something I might disagree with in the future. The more I thought about it, the more it just seemed wacky and arbitrary. And also, of zero tactical interest - have you ever removed your plate armor and donned chain or leather because of the weapon your enemy is using?? Of course not - oh and you couldn't anyway because you cannot change armor when within sight of an enemy.)

Anyhoo... once the code is up and running, no reason not to run it at the end of the main component as well, just to add that information there too. It should work (mostly) fine in both instances.

Edited by subtledoctor
Link to comment
6 hours ago, subtledoctor said:

Ah. I thought otherwise from your comments in the YARAS thread. Seems to me it would be quite easy to do something like IR + [hypothetical description edit mod] + YARAS. (And it’s trivially easy to change the text output of YARAS to match your preferred style.)

Yeah, sorry for the confusion. I planned to install Revised Armors, and then I saw you have updated YARAS, so I thought it may do the trick for me. Either way, the goal is to have EE-style of IR descriptions correctly patched (eg. with EE style, with dashes and all that stuff) by AR or YARAS, with whatever new lines or line modifications these components have to offer.

1 hour ago, Bartimaeus said:

I'm in the same boat as you right now re: sleepiness, but my understanding is that the first component uses the same values as the vanilla game, but Revised Armors changes all of them up to completely different values. I'm working off of memory here, but I recall Cahir thinking the same thing as you, that Revised Armors does not do that (is it not mentioned in the readme of IR for Revised Armors that it would do that?), but in actuality it does.

I'm attaching IR4vb10 readme for clarity. So what Revised Armors does is:

  • Applying movement speed, Dexterity and Speed factor penalties based on the armor type (these are all added as new lines in item descriptions)
  • Applying Damage resistance based on the armor type (this is also added as a new line)
  • Changing the armor values vs different types of weapons (see the table under Revised Armor Bonuses paragraph). So it seems it does change that, as of v4.
  • Allowing spellcasting in armor, by applying arcane casting failure chance (I don't see it added in the item description, in the example shared by @subtledoctor)
  • Adding casting time penalty based on the type of armor you are wearing (this also seems to be not present in the item description)
  • Adding Move Silently and Hide in Shadows penalties based on armor type (also not added to the item description)

As for shields, the changes Revised Armors applies are as follows:

  • Changing the armor values - the change is only for medium and large shields (RA simply changes the AC value here)
  • Changing the additional abilities of different shield types (ie. bucklers are loosing piercing protection). RA changing the text or adding a new line (like -1THAC0 for Medium shields)

As for Weapon changes - Revised Weapons component does the following:

  • Changing the damage dice, according to the table under Weapon changes paragraph. This simply changes the value in the description.
  • Changing the speed factor, according to the same table.
  • Changing some special properties, according to mentioned table.

readme-item_rev.html

Edited by Cahir
Link to comment
8 hours ago, DavidW said:

OK, I have a partial implementation of this. Watch this space.

Well if you're going to do it then I'm not going to spend the time - which would be much longer anyway. (So people understand, when DavidW writes Weidu it is like it is like pruning a topiary - a snippet here, a snippet there, all according to a pre-rendered plan. Whereas for me it is like pulling a shrub from the ground by the roots - a lot of struggling and some hacking, slow progress achieved but interrupted by many moments of being stuck.)

The only part of the required code for which I don't already have an analogue is reading the opcode 0 effects for different damage types. Since I don't know if you can use GET_OFFSET_ARRAY2 for equipping effects. (Hey, here's an instance in which the hypothetical READ_EFFECT function would be useful!)

Link to comment
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...