Cremo Posted January 19, 2012 Posted January 19, 2012 Hi all! Looking at the way the intoxication system (aka drink&drunk) system works, I was thinking at a way to exploit it, in order to create some sort of "stamina pool" which could be used for specil abilities that, albeit not having a daily usage limit, couldn't be abused thanks to this limit. Every char would have a stamina pool based on its Con (though i think that, currently, the intoxication system assigns to each Con value a different percentage of intoxication from the same "action" instead.. but I guess that even in this way it could work). New special abilities (like combat manouvers ala "shield bash", "trample" and so on) could be introduced with "stamina costs", meaning that from 0 fatigue, the usage of such an ability would raise it towards the stamina limit. Albeith this fatigue (liek intoxication) wears out with time (eventually bringing it to 0) if the amount of fatigue reaches the stamina limit (due to excessive usage in a brief period) the char would go into an "exausted state" where he would receive severe limitations (like malus to ApR, Thac', AC and so on) - note, however, that a char is not foced top become exausted, this being the consequence of an excessive usage of abilities in a brief amount of time. This would actually bring layers to always think "can i do this or not?" This exausted state would last for a certain amounts of rounds.. after which the char would go back to a normal state with his "fatigue meter", however, not starting from 0 but from 0+x (with x being a cumulative cost to fatigue that can wear out only with sleep), and thus making him more easily prone to reach the Exausted status again (which would have the same effects, only ending with a 0+x+x this time). This thing could go on until his stamina would reset at a 0+x+x+x+x so high that he would constamntly be exausted (meaning that the char would NEED to rest if he doesn't want to be exausted anymore). I think that this could interact with non-sleeping fatigue adding a +x to the 0 fatigue like an excessive use of abilities would. What do you think? would this be doable in the BG2+tob engine?
polytope Posted January 24, 2012 Posted January 24, 2012 I'm not sure I understand, are you proposing to reflect decreased stamina with the "intoxication" effect or the "fatigue" effect. Also the "cure intoxication" effect is bugged in vanilla (need Taimon's hacks to fix it). Intoxication gives a penalty to luck and a like bonus to morale, fatigue gives a pure luck penalty (which reduces attack and damage rolls, and increases damage suffered through effects in feature blocks, like wands and spells). Things like APR penalty are difficult to implement in a non-buggy way, all characters have 1 base apr, and a -1 modifier leaves them stuck at zero even with bonuses for haste, fighter levels, dual-wielding and specialization factored in; at most you can subtract 1/2 an apr but even that can be buggy if you're not using Taimon's or Ascension64's fixes for APR stacking.
Cremo Posted January 26, 2012 Author Posted January 26, 2012 Thanks for the reply! I'll try to make myself clearer than before (sadly i am not a native english speaker). What I would like to have is: 1) a "stamina pool" whose proportion is linked to constitution (let's say, for example, 5 points of stamina per constitution point) and which determines how many "fatigue points" a character can spend before becoming "exausted" (getting heavy malusses to various statistics) 3) fatigue points are spent by using special abilities (e.g. a special melee blow dealing x% more damage), which, to be executed, require a char not to be exausted. 4) stamina is regenerated with time due to fatigue points - if present - being removed by the stamina pool at a rate of 1 fatigue point every round: only characters spending fatigue points at a rate superior to the regeneration of them will thus become exausted. 5) When a char becomes exausted, fatigue regeneration will stop and he won't be able to use special abilties until this state wears off (after xx rounds). 6) After those rounds have passed his stamina pool won't reset at 0 but will start with some "fatigue points" on it which are the "long term malus" of becoming exausted. Regeneration of fatigue points will reactivate itself, but will only affect fatigue points in excess of this "malus". 7) If, before getting some rest (which will reset to 0 the stamina pool), the character becomes exausted again, he will suffer the same short term malusses he previously got but, on the "exausted state end",the "long term malusses" will stack with the previous ones (meaning that, substantially, is stamina pool will reduce itself every time he gets exausted) 7) If a char has so many "malus fatigue points" that, even when exaust state ends, his fatigue points are superior to his stamina pool, the exaust state will simply reproduce itself as long as the char doesn't rest. 8) Note that a char get "malus fatigue points" not only when becoming exausted, but also after every xx hours without sleep.. This means that, even if a character has never been in a exausted state due to an excessive use of special abilities he will eventually become "permanently" exausted if he doesn't get some sleep in a while (the higher the constitution, the higher the stamina, the longer he can avoid rest before becoming "permanently" exausted) I was thinking that a system like this should be realizable in the BG engine due to "intoxication system" working similarly, since if your char drinks more than his consitution allows he'll become drunk - "intoxicated" status - but this "drunk state" will wear out with time without the need of some sleep: thus there must be a already in the game a "pool" which regenerates itself with time and which, also, is already linked to constitution. I was thinking that by adding to "special abilities" effects similar to those of drinks, and by modifying the malus of the "intoxicated status", i could reproduce something similar to what I depicted above. So, is this possible with some standard modding? or it's something impossible within the existing bounds of the native BG executable, and realizable only with some hard coding à la "tobex"?
polytope Posted January 28, 2012 Posted January 28, 2012 I was thinking that a system like this should be realizable in the BG engine due to "intoxication system" working similarly, since if your char drinks more than his consitution allows he'll become drunk - "intoxicated" status - but this "drunk state" will wear out with time without the need of some sleep: thus there must be a already in the game a "pool" which regenerates itself with time and which, also, is already linked to constitution. I was thinking that by adding to "special abilities" effects similar to those of drinks, and by modifying the malus of the "intoxicated status", i could reproduce something similar to what I depicted above. So, is this possible with some standard modding? or it's something impossible within the existing bounds of the native BG executable, and realizable only with some hard coding à la "tobex"? The intoxication state is hardcoded, you'd need something like ToBEx to modify it. However, you could implement this system through ingame scripts, the baf would look like so: IF Global("STAMINA","LOCALS",0) CheckStat(Myself,18,CON) // Not sure if you want to allow for values higher than 18 THEN RESPONSE #100 SetGlobal("STAMINA","LOCALS",1) IncrementGlobal("STPOINTS","LOCALS",90) // So that creatures don't start with zero and have to wait for 5 rounds * CON to get their allotment END IF Global("STAMINA","LOCALS",0) CheckStat(Myself,17,CON) THEN RESPONSE #100 SetGlobal("STAMINA","LOCALS",1) IncrementGlobal("STPOINTS","LOCALS",85) END Add a similar block with a timer to refresh stamina points at a rate of 1/6 seconds if GlobalLT("STPOINTS","LOCALS",X) where X is 5 times constitution (Note, those commas won't work in a BCS.) However, you'd need to add quite a lot of blocks to BALDUR.BCS and BALDUR25.BCS to get it to work for player characters - which may cause stuttering. I'm not sure if you'd want to make your own enemy scripts to take adavntage of the new maneuvers or just extend WTASIGHT etc.
Cremo Posted January 31, 2012 Author Posted January 31, 2012 guess that, if it risks to become laggy, it's better to use something à la tobex. Thanks very much for the reply tough
Recommended Posts
Archived
This topic is now archived and is closed to further replies.