What's up guys, I'm new to the forum and made an account just for this!
I've played FO1 a few times but never beaten it completely, so I'm playing Fallout 1 Et Tu right now. I wanted to understand the steal mechanic, and found this thread. Thank you to whoever made the Wiki.
I have moderate programming experience, so the code on the wiki is great for understanding how the mechanics of the game works. One thing I'm not quite understanding though is if the code on the wiki is truly an accurate reflection of the code in the game?
For steal specifically, the way it is written on the wiki, the thief's steal skill level has no actual impact on the probability of being caught when the roll_vs_skill is not a critical success or critical failure.... It only has the chance to impact the probability of the steal attempt being a critical success.
The mark_roll_result function should include success_chance as an input, no? Below is how it's shown on the wiki.
mark_roll_result = roll_vs_skill(catch_chance, 0)
As the code is written success_chance only impacts roll_result, as shown below.
roll_result = roll_vs_skill(success_chance, stat_critical_chance(thief))
It appears that roll_result returns : CRITICAL_SUCCESS, CRITICAL_FAILURE, ... , ... , ... (the ... represent other potential return values, but none of them matter the way the code is written)
If it returns CRITICAL_SUCCESS then the steal is successful (great!)
If it returns CRITICAL_FAILURE then the steal is unsuccessful (great!)
However if it returns anything else, then this line is executed.
if (is_critter(mark))
catch_chance = steal_skill(mark) - chance_mod
else
catch_chance = 30 - chance_mod
mark_roll_result = roll_vs_skill(catch_chance, 0)
This means the only way the player's steal skill can impact actually stealing is if increasing steal increases the chance of a critical success roll, which I have no idea if it does. I would imagine all crit rolls are simply based on the players critical chance, and not the individual skill.
I hope FO2 isn't coded this way, because it means putting points in steal is completely useless. Can anyone please let me know if I'm off anywhere?
Thanks everyone!