Agility & Armor Class

Josan12 said:
Yeah, this is pretty much the way i see it.
I haven't worked on this of late, and i think i'll put it to sleep as it's a difficult one to get right. Instead i'm gonna focusing my time on simpler scripting projects.

Damn... so there's no one looking in to this?
 
Well, here's me doing some gravedigging. I'm not entirely sure why this idea was given up on, but I'm probably going to have my optimism shattered soon enough.

I think the concept here is very good. AC increasing with better armor made sense in, for instance, Baldur's Gate because the increase in chance to hit was more than offset by the deflected and decreased damage, both of which are however brilliantly incorporated in Fallout (with DT and DR respectively). So, AC in Fallout should impact chance to hit period, which becomes easier as the armor becomes bulkier.

Anyway, I came up with the following modification of Timeslip's basic script:

Code:
procedure start;


#include "C:\Program Files (x86)\GOG.com\Fallout 2 Mapper\scripts\HEADERS\sfall.h"
#include "C:\Program Files (x86)\GOG.com\Fallout 2 Mapper\scripts\HEADERS\define.h"

procedure start begin
  variable critter;
  if game_loaded then begin
    set_global_script_type(1);
    set_global_script_repeat(100);
  end else begin
    foreach critter in list_as_array(LIST_CRITTERS) begin
      if(critter!=dude_obj and get_critter_extra_stat(critter, STAT_unused)==0) then begin
      	if (get_critter_stat(critter, STAT_dmg_thresh)==0)then begin
        	set_critter_extra_stat(critter, STAT_unused, 1);
        	set_critter_extra_stat(critter, STAT_ac, (get_critter_stat(critter, STAT_ag)*3) + (get_critter_stat(critter, STAT_pe)*1) + (get_critter_stat(critter, STAT_en)*1));
        end
        else if (get_critter_stat(critter, STAT_dmg_thresh)>0) and (get_critter_stat(critter, STAT_dmg_thresh)^3) then begin
        	set_critter_extra_stat(critter, STAT_unused, 1);
        	set_critter_extra_stat(critter, STAT_ac, (get_critter_stat(critter, STAT_ag)*2.5) + (get_critter_stat(critter, STAT_pe)*1) + (get_critter_stat(critter, STAT_en)*1));
        end
        else if (get_critter_stat(critter, STAT_dmg_thresh)>=3) and (get_critter_stat(critter, STAT_dmg_thresh)^5) then begin
        	set_critter_extra_stat(critter, STAT_unused, 1);
        	set_critter_extra_stat(critter, STAT_ac, (get_critter_stat(critter, STAT_ag)*2) + (get_critter_stat(critter, STAT_pe)*1) + (get_critter_stat(critter, STAT_en)*0.8));
        end
        else if (get_critter_stat(critter, STAT_dmg_thresh)>=5) and (get_critter_stat(critter, STAT_dmg_thresh)^12) then begin
        	set_critter_extra_stat(critter, STAT_unused, 1);
        	set_critter_extra_stat(critter, STAT_ac, (get_critter_stat(critter, STAT_ag)*1.5) + (get_critter_stat(critter, STAT_pe)*1) + (get_critter_stat(critter, STAT_en)*0.5));
        end
        else if (get_critter_stat(critter, STAT_dmg_thresh)>=12) then begin
        	set_critter_extra_stat(critter, STAT_unused, 1);
        	set_critter_extra_stat(critter, STAT_ac, (get_critter_stat(critter, STAT_ag)*1) + (get_critter_stat(critter, STAT_pe)*0.5) + (get_critter_stat(critter, STAT_en)*1));
        end
      end
    end
  end
end

I haven't been able to test it yet, but I think it looks sound enough.

The basic concept is this: whether maneuvering through open ground or taking cover, the chance that one gets hit is determined by one's reaction/general speed (STAT_ag), coupled with accute awareness of threats (STAT_pe) and exhaustion (STAT_en). As one becomes more armored (represented by the damage thresholds here), the advantage of agility dissipates, and as the armor gets heavier, exhaustion becomes more problematic (the latter until Power Armor kicks in, represented by a damage threshold above 12, which however also hampers awareness). The result is that a heroic critter (PE, AG and EN of 10) has an AC of 50 without armor, and 25 with the most cumbersome version. Of course some exceptions will have to be taken into account, for instance the increased awareness of robots etc.

EDIT: It compiled fine, that's one thing at least. Also had to change some of the "greater than" symbols because the forum hates them.

EDIT2: Hmmm.. doesn't seem to do anything; maybe I just don't understand how global scripts work.
 
In case anyone cares, I got it working (I think the decimals were the problem). The system doesn't work very wel when applied to the player (AC reverts after putting up the character screen), so I was thinking of just including it in the stats.ini like so:

Code:
;ac
[9]
multi5=3
multi1=1 
multi2=1

and then altering the armors to give negative AC.

Ofcourse the new system would throw off the balance (mainly early enemies become about twice as hard to hit), which might be relieved by increasing the base combat stats in the skills.ini and using a global script to raise them for npc's. However, this would of course only exacerbate the balancing problem in the end of enemies being much easier to hit. It's already (in my view) way too easy in the late game to just eye-crit your way past hordes of enemies, and this would make it only easier. Perhaps to counter this in part aimed shots can be made harder in the draw.ini, or (if that ever becomes possible) making skill progression harder (e.g. 2 points for 75-100, 3 points for 100-125, etc.).

Anyway, do you all think I'm on an okay track, or what?
 
Great work man! For a long time i wanted to do this, but gave up mainly because of the problem you explain that early enemies become really tough!

I also completely agree about the eye-crit problem late-game and made a mod ages ago using sfall that made them much harder.

Overall game balance is a big problem .... it seems the designers made a decision to make armor progression very linear in FO2. A big mistake in IMO, and corrected in all later FO's.

But great stuff all the same.
 
Josan12 said:
Great work man! For a long time i wanted to do this, but gave up mainly because of the problem you explain that early enemies become really tough!

Yeah, that is a really big problem. I was thinking; what if we just leave AC for what it is, armor doesn't affect it at all, and then just have armor decrease Agility? Leather armor reduces it by one, metal armor by two, etc. In fact, the more I think about it, the more sense it makes, because only altering AC is really only a poor workaround in many senses. For instanse, why would bulkier armor hamper your defensive, but not your offensive maneuvering? Also, there are some checks in the critical hit table which account for Agility, and which should also be impacted. It would be totally perfect if skills were also impacted by a drop in Agility through an armor perk (how are sneaking/lockpicking/stealing not nearly impossible while wearing power armor?), but I'm pretty sure they aren't.

If we use this system, early enemies remain as tough as they are.

I also completely agree about the eye-crit problem late-game and made a mod ages ago using sfall that made them much harder.

Yeah, but making them harder just overpowers the extremely boring fast shot/improved rate of fire combo. I personally feel that the ratios aren't that far off: if I have a 80% chance of hitting someone in a quick uncalled shot, then having a 20% chance of hitting them in the eye with a more focussed controlled shot seems more or less right. The problem is more one of skill progression, namely that by the end game both shots have a 95% chance, which is absurd. I'm not sure what the solution could be if skill progression can't be slowed down.

I guess I can try and play around a bit with the hookscript timeslip posted in this thread.
 
Yeah, that is a really big problem. I was thinking; what if we just leave AC for what it is, armor doesn't affect it at all, and then just have armor decrease Agility? Leather armor reduces it by one, metal armor by two, etc. In fact, the more I think about it, the more sense it makes, because only altering AC is really only a poor workaround in many senses. For instanse, why would bulkier armor hamper your defensive, but not your offensive maneuvering? Also, there are some checks in the critical hit table which account for Agility, and which should also be impacted. It would be totally perfect if skills were also impacted by a drop in Agility through an armor perk (how are sneaking/lockpicking/stealing not nearly impossible while wearing power armor?), but I'm pretty sure they aren't.

Clever solution. I like it. Although remember that will reduce AP also - not neccesarily a bad thing, however. Also - doesn't each point of AG only give a few points of AC?
 
I have an even crazier idea which I got from Timeslip's suggestion to simply calculate the Hitchance myself: completely ignore AC altogether, making it the redundant D&D holdover stat it really is. I'll start a new thread later today outlining my crazy scheme.
 
I'm a little late to the party, but through my own balancing efforts(Thanks magnus! I used your mod as a starting point for gun damage/armor values) I ended up just adjusting armor values.

Since it's pretty much guaranteed you're not running around naked, you can just assume a leather jacket is the starting point and go from there. I noticed armor class had little to do with normal combats with the vanilla numbers so why not widen the range?

The numbers I went with were :

Robes + 25
Bridgekeeper's Robes + 35
Leather Jacket +25 AC (protection is on par with leather armor but meant to be an "endgame" armor for leather users)
Leather Armor +15
Leather Armor Mark II + 20
Combat Leather Jacket + 30
Metal Armor + 10
Metal Armor Mark II +15
Tesla Armor + 15
Combat Armor +20
Combat Armor Mark II +20
Brotherhood Armor + 25 (decreased common resistances and increased plasma/energy as per brotherhood philosophy)
Power Armor + 20
Hardened Power Armor + 15
Advanced Power Armor + 20
Advanced Power Armor Mark II +25

Bear in mind I also decreased the protective value of the light armors to offset the increased chance to dodge attacks. I also have the numbers set up so that with 10 Agility and two ranks of dodger you can hit the 50 cap with some of the armors (pinnacle of combat evasion type character), but to reach that percentage if a shot does connect you're kinda screwed due to the quality of the armor.

I'm also not a big fan of gear becoming outdated when you find the next awesome piece of equipment, so my design philosophy for these changes takes into account when you would acquire the armor in the game versus material tech levels versus every type having its own niche in character builds.

The closest thing to an overlap is combat armor versus metal armor, but metal armor is still better against laser weaponry and easier to find/attain. At a certain point you also have to balance the armors versus Power armor, and give them reasons to be used (Because lets face it, power armor is pretty awesome!) So My solution was to up AC on the lighter armor, drop their resistances a little and drop the AC on power armor, while keeping their resistances at high levels. The high AC on the robe/Bridgekeeper Robes is to facilitate unarmed/melee/monk builds. I dropped their resistances and the bridgekeeper's Robe is now akin to leather armor Mark II instead of combat armor to offset the massive dodge.

I've played through the game once now messing around with different armors at different points with an assortment of npcs and I haven't broken anything so far. My hero with 10 agility and 1 rank in dodger with the combat leather jacket has 40 AC and he isn't dodging everything.

All in all, the added +/-10% or so to npcs, my hero or enemies hasn't fundamentally broken the game, but I think they created more dynamics in terms of choices so with that in mind, I think they were a success.
 
@Jim
Once upon a time I was playing with balancing values of armor and weapons - you can take a peak here
https://docs.google.com/spreadsheet...MzVPT1pMaDZtWnc&single=true&gid=0&output=html

My damage formula fix is still available from sfall - all it does is attempt to have damage work the way it was supposed to in regards to the different ammo types. If you turn my fix on and compare it to the original when using AP ammo against an armored critter you will notice a difference.

Just sharing, I've not had time to mod in a while.
 
Back
Top