FO2 Mechanics Overhaul Mod

Discussion in 'Fallout General Modding' started by JimTheDinosaur, Apr 24, 2013.

  1. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    I finally finished the to hit calculations! I've added the download and a list of all the new changes to the first post.

    The problem up to now was that I always thought that RIGHT_INVENTORY etc. read what was in that hand at any time, never realizing that it only registered the information if the hand was active. Took a lot of bug hunting, but it (along with the supply and demand mod) runs smoothly (hint to those making sfall scripts the first time, don't just enter and leave a map one time to check if it doesn't crash; try it at least 10 times, the problems like to hide themselves). Annoyingly the armor repair and health rate increases still have some kinks in them so I've removed them from the download. The original exhaustion system I had was also somewhat crash prone, so I changed to something else, but this one's a lot more sensible anyway because it removes Armor Class entirely as a factor.

    I think I've incorporated all the relevant perks, traits and hidden variables mentioned in the pseudocode Novarain posted. The only things I still think I need to do is figure out something for multihex enemies (maybe I'll just keep the original's 15% bonus), and a way to make the strength rise to 14 (not actually, but just for the purpose of min strength calculations).
     
  2. UniversalWolf

    UniversalWolf eaten by a grue.

    Aug 28, 2005
    Possible solution to stimpack abuse: Stimpack Addiction.

    Either that or just exterminate them from the game entirely and only allow SuperStims, which already have a drawback, Force the player to get along with Doctor and First Aid, for once.
     
  3. BigBadPig

    BigBadPig First time out of the vault

    26
    Jan 14, 2008
    Well, it's about time someone took the eye-critting pseudo-joy down...
     
  4. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Okay, big update, and now I'm going to stop working on this thing (unless you guys find some important problems with it).

    First addition is that I've done the AP cost calculations; you can find more details in the original post.

    I've decided to forego the multihex enemy bonus (I thought it was a bit strange, given that with aimed shots you'll probably be going for small targets regardless), in favor of what I already talked about from the beginning, namely to hit bonusses based on how bulkily armored the opponent is. So now the target's agility bonus reduces based on whether he's wearing metal armor or higher, and dissappears when he's wearing power armor. I've used damage thresholds to calculate it, so Super Mutants, etc. have the same penalties.

    Big thing I forgot all this time was crippled limbs. You can find the details for how I use them in the first post.

    I've also made a change to the exhaustion system, where now half of the penalty/bonus is determined by the percentage of max weight you're carrying at that time. Finally there will be an advantage to being lightly packed.

    There's also a lot of small tweaks and fixes I won't get into, but basically I think it's looking good right now.

    EDIT: Forgot to update the define header file, which you need to tweak it to your own preferences. Fixed now.
     
  5. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Ugh, sorry, but I had some mistakes in the hs_calcapcost.int I'd overlooked, fixed now. I really should take some time to carefully look things through before telling people to download it.

    EDIT: aaaaaand, same mistakes in the hs_tohit.int. Fixed. I'm starting to feel like a genuine Interplay/Troika dev.
     
  6. Darek

    Darek is currently unavailable

    Jan 7, 2008
    Just a couple of questions about this. The engine won't let you use a two handed weapon at all if one hand is crippled (so having an accuracy penalty won't really have any effect unless sfall bypasses that). One handed weapons can be used in both hands even if one hand is crippled (devs probably couldn't be bothered making a difference between hands), but I think the idea is that a crippled arm is completely useless. So shouldn't the accuracy penalty be 100% to mimic that?
    Also, how does this work with unarmed? Hitting with only one hand is quite doable (though maybe a bit less accurate and way easier to defend against), while kicking would be pretty much impossible.
    About the eye damage penalty, is this on top of what the game already adds (iirc -5 perception)?
     
  7. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    In light of Darek's questions I've revamped the crippled limbs system.

    I did some testing (crippling Narg for scientific purposes had a distinctly Mengelenian feel to it) and this is what I think are the effects of crippling in the original:

    eyes: PE-5, -25 to hit for melee/unarmed and something bigger for ranged (-50?), -8 distance mod
    legs: *4 movement mod per leg
    arms: no two handed if one-, no weapons if both arms crippled, decreased melee damage (at least, this last one is according to the wiki, no idea whether it is actually the case)

    Now, this original system of course only affected the crippled attacker, while having a broken leg or being blinded should also make you an easier target in my opinion. To replace it, this is the system I've come up with in version 0.5:

    For the crippled attacker:
    eyes: PE-5, -30 to hit, -6 distance mod
    legs: same effects as original + unarmed/melee to hit -40 per leg, kicking +3 AP per crippled leg, punching/melee +1 AP per leg.
    arms: same effects as original + unarmed to hit -20 per arm, one handed weapon in crippled arm to hit -80, punching AP + 1 per arm, one handed weapon in crippled arm AP + 3

    For the crippled defender:
    eyes: +20 to hit
    legs: +20 to hit per leg
    arms: +20 to hit if attacked with melee or unarmed and defending self with weapon in crippled arm, or +10 to hit per arm if unarmed when attacked with melee or unarmed.

    I've tried to make it so that crippled limbs don't become too punishing compared to the original system, but some of you might disagree. Darek had a good point that unarmed/melee is more impacted by a crippled leg than a crippled arm, so I've tried to have that reflected in the new system.

    One more important thing I've fixed for 0.5 is the melee/thrown secondary modes in the to hit calculation. Up to now throwing a spear still required melee skill, which is now fixed. Do note, however, that the fix is by way of target distance, not attack mode. What this means is that if you throw a spear over two hexes, or a rock over one hex, these are registered as melee attacks. I don't consider this a problem (perhaps it's even better than the alternative), but it might be just a bit counter-intuitive to see "throw" and not have it check the throwing skill, that's all.
     
  8. Hety

    Hety First time out of the vault

    27
    Nov 9, 2008
    Concerning AP costs. Do i understand correctly, that Fast Shot no longer provides AP bonus and just increases to hit for unaimed shots by 10%, while still removing the ability to make aimed shots? And aimed shot for pistol will be 3+2=5 ap, while rifle aimed shot will cost 3+1+2=6 ap? And together with harder aiming this all will make aimed shots rather useless in most situations.
     
  9. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Yes, though I'd personally prefer to take away the hardcoded effect and just make aimed shots take an extra AP. I'll see what I can do with the Perks.ini.

    I didn't think so, though you might be right. Take the following example: you shoot unaimed with a 10MM pistol at a target 20 hexes away. The extra penalty is the base -10 in addition to a -20 distance modifier, combined with another penalty in the third phase (with unaimed shots, the first 35 points cost 1, the next 2, etc., with aimed to the body, the first 50 cost 1, etc.). So suppose the base to hit after the second phase is 100%, then with the unaimed version it would be 35+(35/2)=52 and with the aimed version to the chest 50+(50/2)=75 at +2 AP. Hmm... that indeed makes an unaimed shot the equally good option even over such a large range, so it would definitely be the better option at closer range.

    Maybe I should raise the basic penalty from 10 to 20 or even 30 (which I originally had it at, but thought would be too unforgiving in the early game), and thereby raise the Fast Shot bonus as well; or else I could keep aimed shots at +1 AP. We could aslo consider raising the distance modifier still further, making snapshots a significantly better option for close range than long range, but I don't think this would agree with the AI, which would just stupidly snapshot away at long range and then aim at close range. What do you guys think?

    EDIT: How's this idea: reduce the third phase cost increments from 35 to 20; the underlying thought being that it's extremely hard to get close to a sure hit with a hasty shot, but that a proficient marksman can usually get a decent percentage to hit with it.

    This would make the chance to hit in the example 43 instead of 52 (and 48 at a 5 hex distance).

    I might in addition give the aimed bodyshot a 10 percent basic bonus.
     
  10. Hety

    Hety First time out of the vault

    27
    Nov 9, 2008
    Ah, i see. It all makes sense now :) Basically if we want to to spray and pray at close range - we pick snap shot. If we want to snipe stuff at long range - we use aimed shots. Sounds ok.

    Increasing the penalty is an option and -15 sounds just fine. -10 isn't big enough to justify the trait. Also can you give a rough estimate of how much skill i will need in small guns to achieve 95% hit rate with PE 8 with 223 mm pistol vs a target with 5 agi at 5 hexes using snapshots and provide the sample calculation? I'm not a fallout mechanics pro so its kinda hard to figure out how to apply formula in your first post appropriately.

    Thanks in advance.
     
  11. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Well at the moment it doesn't really work that way because the distance penalty is relatively low (only 1 per hex), but like I said: I think the AI would be at a too big disadvantage if this were raised further.

    Here's your calculation:

    first phase (agility penalty, then perception bonus, then snapshot penalty):
    -(5*2)+8-10=-12
    second (ranged) phase (regular distance mod, snapshot mod):
    -(5*2)-(5*1)=-27

    So a skill of 177 gives you a 150% chance after the second phase.
    Then under the current third phase system this gets nerfed like this:

    35+(70/2)+(45/3)=85%

    So if you want 95 percent in your example you need another 10*3=30 skill points, so a skill of 207.

    EDIT: By contrast, an aimed bodyshot in your example would be:

    -(5*2)+8=-2
    -(5*2)=-12

    So a 162 skill would give 150% after the second phase. After third phase:

    50+(100/2)=100%

    So a skill of 152 would be needed for a 95% hit.

    Anyway, like I said, the contrast might not be enough to warrant a +2 AP cost, so the third phase might need to become more punishing for snapshots and/or the basic bonus for bodyshots higher.
     
  12. Hety

    Hety First time out of the vault

    27
    Nov 9, 2008
    -(5*2)-(5*1)=-27

    Shouldn't it be -(5*2)-(5*1)=-15 ?

    And with such system we kinda need ti invest heavily into weapon skills to hit anything reliably...

    And i wonder, whats the average skill of end-game enemies (like enclave soldiers) with their respective weapons?
     
  13. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    I was already adding it to the first phase (-12).

    Yeah, but as you can see it's the third phase nerfing that bringing the value down. So getting to 70% is a lot easier than getting to 95%; though I suppose it depends on what you consider to be reliable.

    Just checked, and enclave soldiers have 140% energy weapons, which should be fine (I mean, they won't be hitting you at 95%, but that's precisely what this mod is meant to avert, namely boring hit for hit slugfests).

    EDIT: I've decided to give aimed shots a 20% bonus for 0.51 so that the ratio I had originally started out with gets restored, but early level characters don't get hampered in the process. I've also made the fast shot trait give a 20% bonus instead of 10%. So, if you're keeping score, an unaimed snapshot still has a penalty of 10 (or 20 with unarmed/melee), but now bodyshots are at a +20 bonus.
     
  14. Riel88

    Riel88 First time out of the vault

    76
    Mar 30, 2010
    This ! :
    "I believe combat in Fallout should be thought of as much more dynamic than it looks through the trappings of turn-based combat; what seems like a stationary target in the middle of a dirt road is best thought of as actually someone maneuvering at speed from cover to cover (hence the emphasis on agility, endurance and perception in my system); try getting 80% eye-hits on a dynamic target like that".

    Is pure win !

    I am really impressed with how you gave the combat a overhaul.
    I have yet to play with it, but it sounds really logical and fun, as if this is what combat was supposed to evolve in.
    & I cant wait to see how you will tweak this further !

    Just one question, how am i supposed to install this with the RP ?
    should i do a fresh fallout 2 and RP install but without any f the optional combat/ammo mods ? please enlighten me.

    Bye !
     
  15. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Thanks! I must admit I didn't think about this much; the hookscripts should be compatible with almost anything (I only remember Nirran having a mod with a to hit hookscript and Magnus one with an AP cost one, though there might be more). The problem is the dude script, I just downloaded the latest Restoration Project and they have indeed updated it, though I haven't a clue with what. Maybe the best idea if you want them to be compatible would be to wait until the RP's official release when the source stuff comes out, then I can compile a compatible dude script.
     
  16. Hety

    Hety First time out of the vault

    27
    Nov 9, 2008
    Dude script is required for all parts of your mod?
     
  17. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Afraid so; it's needed to let the exhaustion system know which combat turn it is (global sfall scripts can't tell that yet as far as I know). So either you can take out the exhaustion system yourself, or wait for the official release (or use it without the RP of course).
     
  18. Glovz

    Glovz Vault Dweller
    Modder

    735
    Sep 16, 2005
    @JimTheDinosaur
    Why not ask Timeslip if there is a way to identify the combat turn without the the dude script?
     
  19. JimTheDinosaur

    JimTheDinosaur Vault Dweller
    Modder

    736
    Mar 17, 2013
    Well, for version 0.6 I've finally done the "localization" I've talked about earlier in this thread. I think it'll be controversial, so I've left the option to leave it out.

    The issue it addresses is this: why is it that a shot at the target's eyes either hits the eyes or misses entirely; why is there no chance that it will miss the eyes, but hit the head or even the torso?

    The system I use is that there's a certain percentage you have for hitting the desired body part, which rises as your chance to hit rises. Conversely, the chance to hit adjacent body parts diminishes, and that of "remote" body parts disappears (e.g., with a higher chance to hit the left arm, there is no longer a chance to hit, say, the right arm, and the chance to hit, say, the torso diminishes, until at 100+ percent to hit, you'll exclusively hit the left arm).

    For most body parts the system is quite straightforward and the to hit system isn't changed, but there are two important exceptions: the eyes and the groin. These two are unique because they are entirely "embedded" in other body parts, namely the eyes in the head and the groin in the legs and torso. This is significant because the new system means that a 100% to hit when aiming for a certain bodypart no longer necessarily means a 100% hit on that body part but a 100% hit on the target. What this means is that whereas a 100% to hit when aiming for the torso is an automatic torso hit, a 100% to hit on the eyes can also mean a head hit. The practical consequence of this for the to hit system is that it no longer makes sense to give an eye shot a bigger basic penalty than a head shot; after all, whether your aiming for the eyes or the head "in general", you have the same chance of hitting the target.

    Of course, in gameplay terms, this produces a problem; after all, say the head and the eyes are equally hard to hit, then why not always hit for the eyes instead of the head to get better criticals, etc.? The solution I've come up with is as follows: suppose you have a 10% chance to hit the eyes/head, then whichever target you choose, the chance to hit either body part is the exact same (roughly 1% for the eyes and 4% for the head). However, as your chance to hit rises, you become able to differentiate between the two, with the eye shot becoming progressively more difficult than the head shot. I believe this is a nice solution (in case you're wondering, this means I replace the basic penalties, which are as I said now equal, with a penalty in the "third phase" progressive nerfing).

    Finally, an example to make the mechanics a bit more clear:

    Code:
    	else if (bodypart==eyes) then begin
        	roll:=random(1,99);
        	if (roll < (10 + (n*7))) then begin
        		bodypart := eyes;
        	end else if (roll < (50 + (n*7))) then begin
        		bodypart := head;
        	end else if (roll < (80 + (n*7))) then begin
        		bodypart := torso;
        	end else if (roll < (90 + (n*7))) then begin
        		bodypart := random(left_arm,right_arm);
        	end else begin
        		bodypart := random(left_arm,right_arm);
        	end
        end
    the "n" variable stands for roughly the to hit chance divided by ten, so with more than 10% to hit, the chance to hit the eyes (upon a hit of course), becomes 17%.

    I could ask, but I'm fairly sure it's impossible. The problem is the way global scripts are built, which forces them to only have the "start" procedure, and not things like entering a map, turns in combat, something being used on somebody, etc. which you could in an ordinary script. You can make a global script repeat rapidly, but that doesn't change the fact that it can't do these basic things.

    At least, this is what I've gathered from doing a lot of testing.

    -

    EDIT: I think I've done the basics now of most of the things I'd planned on doing (I don't think I'll end up doing the Damage calculations because, as long as you have the YAAM ammo fix, I think the calculations look good enough as they are). Only thing left is burst mode, which I'd love to be able to tweak, but I have no clue as to where I would start with that. I gather it would have to be in the hs_afterhitroll.int, but how to manufacture your own burst "cone" I haven't the slightest idea. Anyone tried this yet?
     
  20. Hety

    Hety First time out of the vault

    27
    Nov 9, 2008
    I believe there is one more thing, that needs tweaking. Taking into consideration the bulkiness and sheer momentum of power armor it should provide penalty to AGI, so it wont be a no-brainer it is now. I don't use PA at all during my playthroughs, coz its so OP it stinks. And taking into consideration the part AGI plays in to-hit calculations sticking to combat armor can be preferable is some cases.