Jump to content


Photo

BG2 Improved GUI


  • Please log in to reply
372 replies to this topic

#181 Azazello

Azazello

    The Anti-Spammer

  • Staff
  • 1912 posts

Posted 11 September 2021 - 02:42 PM

@Azazello,
Heart of Fury (this is the same as Icewind Dale 1, except for...)
  • -5 THAC0
  • Armor Class = (original AC) - 5
  • +0 Attacks Per Round
  • +1 Saving Throw vs Death/Wands/Polymorph/Breath/Spell {...except for here - in original IwD1-HoF this would be +0}
  • Hit Points = (original HP)x3 + 50
  • Never break Morale
  • +3 Level in all available Classes {...except for here - in original IwD1-HoF this would be +0}
Party get Bonuses (optional, selectable at installer):
  • extra 1000 Experience Points {...except for here - in original IwD1-HoF this would be just +100 XP}
  • Party's Summon get same bonuses as Enemy

Where did you get these iwd1 Heart of Fury bonuses ?

 

Exploring  IWD1-ToL v1.42 i found much different (beamdog take it as base for Legacy of Bhaal):

XP = 200% + 1000
THAC0 -5

No Armor class changes

HP +300% (+200% summons)
Attacks per round +1
Saves + 1
MovementRate = (MovementRate * 1.3) + 1
Levels +12
Gold +75

It's endearing to review the details of these (literally) decades-old games.

 

Upfront, I never had any interest in IwD2--and still don't--so I have nothing to say about it.

 

 

Doing some websearching, I can find only one publicly-advertised reference to a formula for IwD1-HoF, just the HP Increase, from Dan Simpson's walkthrough: "All creatures have x3, +80 hit points."

 

Then, good ole Tioma (I miss him, and his 'no kill' campaigns for all the BG games, especially the one for defeating Yxunomei...) made a mod for BG1 that was supposedly using the official IwD1-HoF formulae: http://www.ironworks...read.php?t=3373

 

Trouble is, nobody but him knows where he got that info from (except the HP increase, surely that was his revision of Simpson's), as it definitely was not in the public literature during the time. Still, for near 2 decades, all of us thought Tioma's formulae were official for IwD1.

 

(Michael Walsh published a walkthru for Heart or Winter in 2001, in which he tabulates the exact numbers for XP increases when using HoF. It's possible/likely, gamers extrapolated an XP formula from those tables.)

 

 

I've never seen a HoF determined from dissecting Trials of the Luremaster. So Insomniator-- you may have discovered something not ever publicly published in nearly 2 decades: that with ToL installed, HoF formulae not only alter other factors in the game, it also adjusts directly with the Difficulty slider setting.

 

How did you discover those other variable changes? And do they also apply when only Heart of Winter is installed?



#182 Azazello

Azazello

    The Anti-Spammer

  • Staff
  • 1912 posts

Posted 11 September 2021 - 02:47 PM

Thanks for thinking about them. Here's a wider consideration: would there be difficulty {pardon the pun} in letting the user set the stat numbers at install-time? With limits, of course.

Currently all bonuses hardcoded in "C" code, but move constants to external .INI is not difficult

 

This way, you could keep the mod option as a fixed-name, e.g. Fury of Insomniator, and during the install, have subcomponents like "THAC0 modifier: (-5 to +5): enter choice"

I don't want to include to installer such of tuning parameters. Instead user can change parameters in .INI after installing mod

 

User choose base sets (legacy/iwd1 fury/...) at install time and if not satisfacted -> will change .ini

 


I really like that. Thanks for the brainstorming!



#183 Azazello

Azazello

    The Anti-Spammer

  • Staff
  • 1912 posts

Posted 11 September 2021 - 03:06 PM

Fists of Fury
  • -5 THAC0
  • Armor Class = (original)
  • +0 Attacks Per Round
  • +0 Saving Throw vs Death/Wands/Polymorph/Breath/Spell
  • Hit Points = (original)
  • NORMAL break Morale
  • +1 Level in all available Classes

Party get Penalty:

  • None

Party get Bonuses (optional, selectable at installer):

  • extra 100 Experience Points
  • Party's Summon get same bonuses as Enemy


I got the idea of this mode to satisfy a long(decades)-running debate about making monsters more challenging, without making them 'bullet sponges': i.e. creatures have a much easier chance to hit characters, but don't get any (or many) other buffs, so that characters still have a chance to duke out a fight even if slightly above their current level.

 

How would this play out?

 

Let's take our eager intrepid party members way back to Level 1. In truth, every hit they take should hurt. (Increase the Difficulty above Core, and each hit will hurt a lot!)

 

But there's no need for a goblin to be dealing 50 damage. Still, it can be presumed that a goblin is better trained to fight than a L1 fighter. Debatable, yes. But the goal here is to make more challenge for the player, not to add aggravating overpowered tank-monsters.

 

This is also why I asked to allow us player to min-&-max the factor values, e.g. I might in one playthru to make (-1/THAC0, +2 ApR); then another time (-2/THAC0, +0 ApR, +1 Saves), etc. etc.


Edited by Azazello, 11 September 2021 - 03:09 PM.


#184 Sam.

Sam.
  • Administrator
  • 1335 posts

Posted 11 September 2021 - 07:26 PM

My biggest complaint in such hard modes is the huge level increase (e.g. Level +12).  This makes abilities like Turn Undead virtually useless.  I pretty much only play the EEs these days (so my opinion is void here), but I've always wanted a HoF/LoB mode without these huge level increases.


"Ok, I've just about had my FILL of riddle asking, quest assigning, insult throwing, pun hurling, hostage taking, iron mongering, smart-arsed fools, freaks, and felons that continually test my will, mettle, strength, intelligence, and most of all, patience! If you've got a straight answer ANYWHERE in that bent little head of yours, I want to hear it pretty damn quick or I'm going to take a large blunt object roughly the size of Elminster AND his hat, and stuff it lengthwise into a crevice of your being so seldom seen that even the denizens of the nine hells themselves wouldn't touch it with a twenty-foot rusty halberd! Have I MADE myself perfectly CLEAR?!"

--<CHARNAME> to Portalbendarwinden

--------------------

post-10485-0-15080600-1348188745.jpg
___________Old pen and paper modules of the 70s and 80s.___________

CA Forums CA Homepage


#185 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 12 September 2021 - 09:39 AM

@Azazello

Exploring IWD1-ToL v1.42 i found much different (beamdog take it as base for Legacy of Bhaal):
XP = 200% + 1000
THAC0 -5
No Armor class changes
HP +300% (+200% summons)
Attacks per round +1
Saves + 1
MovementRate = (MovementRate * 1.3) + 1
Levels +12
Gold +75
How did you discover those other variable changes? And do they also apply when only Heart of Winter is installed?

I explored IDMain.exe when game "upgrade" stats, i dont have HoW version of game, but can explore IDMain.exe extracted from pre-ToL patches.

Second way - enable cheat keys(GETYOURCHEATON:EnableCheatKeys() in console), join any neutral to party (ctrl+Q), open Record screen: Hildreth Highhammer (first location)
normal:
XP 120
Levels 1/1/1 - shows as figher only, because single class
AC 5
HP 33 (30 in NI)
Thac0 17
APR 1 (fist)
Saves 13/15/14...

fury:
XP - 2480 ((120 * 2 + 1000) * 2(difficulty) )
Levels 13/13/13
AC 5 - no changes
HP 197 - seems compilcated formula (not just 300% + 80), may depends on levels and "max HP on level-up" setting
Thac0 12
APR 3 (fist) = 2(upgrade formula) + 1(level bonus, WSPATCK.2DA)
Saves 14/16/15/... - nice bug


Edited by Insomniator, 13 September 2021 - 09:07 AM.


#186 Magus

Magus
  • Member
  • 54 posts

Posted 12 September 2021 - 01:04 PM

I know it's purely subjective matter, but isn't telling the player that the container is empty before he/she even open it a little lame and ruining the fun of searching through containers? If those empty containers would tell right away "don't open me, I'm not important", then there is no need for them to exist at all.


It's really only fun for the first thousand times... In any case that would be an option, which would have to be enabled explicitly, so I don't see any issue with that.

Well, it's just a suggestion, anyway.

 

 

Suppose that I added a hook and this C++ function is redirected to LUA code. This is where the show begins, you need to use these two arguments (two pointers to classes in memory) and one global pointer (data of the engine itself) to get all the necessary data, process them and change the state of the game or character, since many effects last several rounds, engine will call your ApplyEffect() each second (or often/less).


If you could create a very simple hook for starters (say, when a spell hits a target, exposing pointers to caster, target, spell itself) and an example how to use it, that would be a start to experiment with. Not sure how would calling LUA affect performance, would need to see.

Of course, it's a very long shot, and possibly nothing will come out of it. If it's too complicated, then probably not worth bothering with it.


Edited by Magus, 13 September 2021 - 07:26 AM.


#187 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 13 September 2021 - 09:44 AM

If you could create a very simple hook for starters (say, when a spell hits a target, exposing pointers to caster, target, spell itself) and an example how to use it, that would be a start to experiment with.

There is few examples, EffectOpcode.cpp, opcodes do context-specific job, Ascension64 fully overrided some opcodes by himself. DETOUR_CEffectDisease::DETOUR_ApplyEffect or DETOUR_CEffectBlindness::DETOUR_ApplyEffect are example of what to do when opcode handler need create from scratch(not exact from scratch, it was reverse-engineered).
What handler usualy does ? It read many fields from some objects(target creature, source creature, effect parameters) then do payload, sometimes calls engine's internal functions and finally make result in some of form, most complicated form is newly allocated instance of some class filled with data, then call AddTail() to add this object to some of existing lists
This is very hard job because you are limited by game engne context, so when you think about new opcode, first think up how to fit it to existing context. Many new opcodes came from IWD and probably on BG2 engine you dont have proper iwd specific lists/fields.

 


Edited by Insomniator, 13 September 2021 - 09:47 AM.


#188 Magus

Magus
  • Member
  • 54 posts

Posted 14 September 2021 - 07:30 PM

Yes I've seen new opcodes, the challenge is exposing enough engine innards so that they could be reimplemented in LUA.

 


 

3. in store interface, scroll wheel always scrolls the left list, although intitutively it should scroll the right one when over it.

.. also in custom portrait selection only the large portrait list get scrolled, and there's levelup screen, and maybe more...



#189 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 21 September 2021 - 10:44 AM

Updated to 4.03:

  • Added: Shift Subtitles Below Movie Frame
  • Added: Scaled GUI,  for fans of FullHD resolution  :)
  • Added: Heart of Fury/Fists of Fury/Customizable difficulty modes
  • Fixed: Cleric Summons don't get difficulty bonuses


#190 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 24 September 2021 - 10:38 AM

Hi Magus

Edit: oh, and I remembered some more annoyances/missing features in original gui:
1. you can view active contingencies, as well as dispel them at will, but can't do the same with sequencers.

1) can you explain how to "dispel" contingencies ?

2) how to see what spell(s) was stored in contingencies(as i understand you, it's possible) ?

 

2. (minor) special abilities button is not disabled even when all special abilities are spent for the day.

in progress

 

3. in store interface, scroll wheel always scrolls the left list, although intitutively it should scroll the right one when over it.

done, store+levelup+custom portraits

 

4 when opening a bag, it might be useful to hide items that can't go into the bag, they only clutter the list anyway (so for example, if you open a gem bag, only gems in your inventory are shown for putting in it. Or alternatively, sort the right side so that they are on top)

done, but only for shopping(left side), i dont see reason to filter bag<->inventory moves, inventory has only 16 slots, list is not big

 

5.  maybe some better way to select multiple stackable items? Say, shift+click for "all". And/or shift+scroll (when over item) to change how many stacks to select. (Maybe also "all" button on item count selection screen, fallout-style.)

done, shift+left click select all stack

 

6. swap turn undead/pick pockets buttons for cleric/thieves (picking lock is used much more often than turning undeads)

done

done

 

7. highlight locked doors and containers differerently (tint red or something). Maybe also use different color for non-empty containers (green?), and/or skip empty ones from highlighing - those aren't interesting anyway.

rejected

 

8. allow to eqiup throwing weapon with off-hand weapons (naturally, granting passive bonuses from off-hand but not extra attacks)

I dont know DnD rules, can you explain bonus differencies between melee(main)+melee(off) and throwing+melee in rulebook ?



#191 Azazello

Azazello

    The Anti-Spammer

  • Staff
  • 1912 posts

Posted 25 September 2021 - 04:57 PM

Legacy of Bhaal/Heart of Fury/Fists of Fury difficulty modes
Available only at start new game, you cannot change difficulty later.

You can customize(create own set) bonuses after install, see file nighmare_difficulty\customize stats.txt
 
Fists of Fury (by Azazello):
 Neutral/Enemy get Bonuses:
  •  -5 THAC0
  •  -8 Armor Class
  •  +1 Attacks Per Round
  •  -3 Saving Throw vs Death/Wands/Polymorph/Breath/Spell
  • 300% HitPoints + extra 65
  •  Never break Morale
  • +6 Levels in all available Classes
Party get Penalty:
  • +1 Monsters at Rest Encounter
Party get Bonuses (optional, selectable at installer):
  • 200% Experience Point for kills + extra 1000
  • Party's Summon get most bonuses as Enemy
  • +75 Gold for kills

 

Hi Insomniator. Thanks for adding my name to a component - I feel honored!

 

I have a last request: based on my original idea, can you revise initial settings for Fists of Fury to these:

Fists of Fury

  • -5 THAC0
  • Armor Class = (original)
  • +1 Attacks Per Round
  • +0 Saving Throw vs Death/Wands/Polymorph/Breath/Spell
  • Hit Points = (original)
  • NEVER break Morale
  • +1 Level in all available Classes
  • Movement Rate = (original)

Party get Penalty:

  • None

Party get Bonuses (optional, selectable at installer):

  • extra 100 Experience Points
  • Party's Summon get same bonuses as Enemy
  • Gold Carried = (original)

 


This is closest to the idea I had about not overpowering creatures. And it's the setting I will try first when I play again!


Thanks again for the great Mod and options and expansion of (original) BG2 awesome!



#192 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 26 September 2021 - 05:09 AM

Hi Azazello

I have a last request: based on my original idea, can you revise initial settings for Fists of Fury to these:


Fists of Fury

  • -5 THAC0
  • Armor Class = (original)
  • +1 Attacks Per Round
  • +0 Saving Throw vs Death/Wands/Polymorph/Breath/Spell
  • Hit Points = (original)
  • NEVER break Morale
  • +1 Level in all available Classes
  • Movement Rate = (original)

Party get Penalty:

  • None

Party get Bonuses (optional, selectable at installer):

  • extra 100 Experience Points
  • Party's Summon get same bonuses as Enemy
  • Gold Carried = (original)

This is closest to the idea I had about not overpowering creatures. And it's the setting I will try first when I play again!


These stats is too weak to be really harder(enemies don't have any additional resists against your party's hits/spells), your first version is good because become role of intermediate grade between most hard and icewind dale difficulty levels.

 

I prefer to leave first version :), you can always customize stats as you wish, just edit .ini after install



#193 Magus

Magus
  • Member
  • 54 posts

Posted 26 September 2021 - 07:07 AM

Awesome!

 

See attachments for contingency interface, hopefully it's clear. Hand icon for dissipating.

 

I don't know much about off-hand rules, just going by common sense: if you have crom fayer in off hand and a throwing in main hand, then you should throw it with damage bonus from 25 str granted by crom.

(The problem is there's a bug in the engine: if you equip a weapon in off-hand, and cast Melf's Minor Meteors, then you will get 5 attacks with meteors and a 6th attack with off-hand weapon at a distance, even if it's not throwing. Which is likely why equipping throwing to main while having a weapon is off is forbidden in the first place - the devs tried to work around this, but didn't account for MMM and similar).

Attached Images

  • Captura de pantalla de 2021-09-26 21-57-08.png
  • Captura de pantalla de 2021-09-26 21-57-24.png
  • Captura de pantalla de 2021-09-26 21-57-34.png


#194 Azazello

Azazello

    The Anti-Spammer

  • Staff
  • 1912 posts

Posted 26 September 2021 - 10:40 AM

Hi Azazello
I have a last request: based on my original idea, can you revise initial settings for Fists of Fury to these:


Fists of Fury

  • -5 THAC0
  • Armor Class = (original)
  • +1 Attacks Per Round
  • +0 Saving Throw vs Death/Wands/Polymorph/Breath/Spell
  • Hit Points = (original)
  • NEVER break Morale
  • +1 Level in all available Classes
  • Movement Rate = (original)

Party get Penalty:

  • None

Party get Bonuses (optional, selectable at installer):

  • extra 100 Experience Points
  • Party's Summon get same bonuses as Enemy
  • Gold Carried = (original)

This is closest to the idea I had about not overpowering creatures. And it's the setting I will try first when I play again!


These stats is too weak to be really harder(enemies don't have any additional resists against your party's hits/spells), your first version is good because become role of intermediate grade between most hard and icewind dale difficulty levels.

 

I prefer to leave first version :), you can always customize stats as you wish, just edit .ini after install


Cool, understood - and I agree!

(yes, I'm make my personal edits in-game .INI)

 

Thanx again!



#195 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 30 September 2021 - 09:41 AM

Updated to 4.4

  • Mouse wheel scrolls on some panels
  • Spell Sequencer Panel
  • Hide 'Special Abilities' button
  • Exchange "Turn Undead" and "Pick Pockets" buttons for Cleric/Thief multiclass
  • Improved Store&Bag Interface

Edited by Insomniator, 30 September 2021 - 09:58 AM.


#196 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 30 September 2021 - 09:57 AM

Hi Magus

I don't know much about off-hand rules, just going by common sense: if you have crom fayer in off hand and a throwing in main hand, then you should throw it with damage bonus from 25 str granted by crom.

(The problem is there's a bug in the engine: if you equip a weapon in off-hand, and cast Melf's Minor Meteors, then you will get 5 attacks with meteors and a 6th attack with off-hand weapon at a distance, even if it's not throwing. Which is likely why equipping throwing to main while having a weapon is off is forbidden in the first place - the devs tried to work around this, but didn't account for MMM and similar).

After some thinking i reject you request because mixing melee & range weapons is out of sense. You can not use melee weapon if far from enemy and vise versa, throw weapon has penalty in close combat.

 

Throw weapon in both hands is another case, but I'm afraid that game don't have throw weapon animation for off-hand



#197 Magus

Magus
  • Member
  • 54 posts

Posted 01 October 2021 - 04:26 AM

Hmm, scroll doesn't work for me at all in stores now, and on level up screen it always scrolls bottom right scroll.

 

 

After some thinking i reject you request because mixing melee & range weapons is out of sense. You can not use melee weapon if far from enemy


But that was never a request. What I said is that you can't equip a melee OH while having a throwing MH. The request was to allow that, effectively making OH act as a shield (only give stats, not attacks) if MH is throwing.

 

done, but only for shopping(left side), i dont see reason to filter bag<->inventory moves, inventory has only 16 slots, list is not big

That's a shame. I don't use bags, they incur horrible performance hit in my setup, still filtering/sorting could be useful in other scenarios.



#198 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 01 October 2021 - 05:28 AM

Hi Magus



After some thinking i reject you request because mixing melee & range weapons is out of sense. You can not use melee weapon if far from enemy

But that was never a request. What I said is that you can't equip a melee OH while having a throwing MH. The request was to allow that, effectively making OH act as a shield (only give stats, not attacks) if MH is throwing.

"only give stats, not attacks" - just a cheat/hack, editing .ITM you can get any stats for any throw weapon in Main Hand, i have no interest to include it at engine level.


Edited by Insomniator, 01 October 2021 - 05:32 AM.


#199 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 01 October 2021 - 05:31 AM

Hi

Hmm, scroll doesn't work for me at all in stores now, and on level up screen it always scrolls bottom right scroll.


Thanks for testing, can you tell store name/area ?

I will check this component



#200 Magus

Magus
  • Member
  • 54 posts

Posted 01 October 2021 - 05:45 AM

Thanks for testing, can you tell store name/area ?


Any store as far as I can see. Example - Ulgoth's beard inn. (I run through Wine, though, so might be related to that. I don't have Windows to check on.)

 

"only give stats, not attacks" - just a cheat/hack, editing .ITM you can get any stats for any throw weapon, i have no interest to include it at engine level.


I feel that we're talking about different things. Of course I can edit any itm, but how does relate to the issue?

See here, Kagain has throwing axe in MH and Crom Fayer in OH. But Crom is not "equipped", so throwing doesn't get STR bonus damage from Crom. I think it makes sense that it should.

Attached Images

  • Captura de pantalla de 2021-10-01 20-41-09.png
  • Captura de pantalla de 2021-10-01 20-41-20.png