123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- # body
- !! I have gone through and added a new category of string variables, standardised to be used for descriptive writing. You will notice some duplication here -- this is for purposes of backwards compatibility, as if I completely rename and discard some of these strings,
- !! extant saved games will irreparably break, and this would be Bad. One day down the line, most of the duplicated variables here can be culled, when there is a new release that warrants new saves being used, but until then the duplication needs to stay. Use of
- !! strings for descriptions that do not begin with $pcdesc_ should be avoided, as it would be best to have everything standardised when moving forward into the present and future.
- !! Available strings follow this format: $pcdesc_type, $pcdesc_typewordy, and $pcdesc_typerandom. The last will give a new string each time, to allow for repeatedly referencing something accurately without it becoming repetitive. Not EVERYTHING has a wordy
- !! or even random variation, but these should work regardless -- they just may use a non-wordy, or non-random version, if it is something that does not really warrant such.
- !! There is also a special string, $pcdesc_typeinsertive, that follows the format " , descriptive text" as in, " , invitingly-glossed". Please check the master string document to see if this exists for the string you need. - xerya, July 2017
- if $ARGS[0] = '':
- !!!!!!!!!!!!!!!!
- !!!!!SIZE AND WEIGHT!!!
- !!!!!!!!!!!!!!!!
- if dounspell = 0:
- pcs_hips = (pcs_hgt * hratio) / 100 + vhips
- pcs_waist = (pcs_hips * wratio) / 100 + vofat
- pcs_band = (pcs_waist * bratio) / 100 + vofat
- pcs_bust = (pcs_waist * bratio) / 100 + nbsize + magicf2b + silicone
- pcs_butt = (pcs_hips / 10) + silicone_butt + butt_cheat
- pcs_cupsize = pcs_bust - pcs_band
-
- !!pcs_weight: Svetas weight in kg
- !!Optimal Weight (170cm): 60kg, 60 salo
- !!This is an approximation, so that a sveta with a different height has the same BMI for the same salo values.
- !!The default height of 170 cm is used as a starting point. The bmi deviates by 0.06 for a deviation of 10cm and 0.4 for a deviation of 20cm.
-
- pcs_weight = 30 + salo / 2 + (pcs_hgt - 170) * 7 / 10
-
- !!Do not remove (julzor)
- !!This is the old more complex function, but it doesn''t work correctly.
- !!This variable is actually only used ONCE (except for the BMI calculation), when stripping, to see if you fall off the pole from being too heavy. I am reluctant to touch it, since the math is not explained. Maybe later.
- !!Weight = (height in cm x bottom of average weight in kilos for a 170cm female / 170cm + (hip modifier + 2 x overrun fat)/4 + cup size
-
- !!pcs_weight = (pcs_hgt * 62 / 170) + (vhips + (vofat * 2)) / 4 + tits
-
- !!BMI Calculation
- pcs_bmi = FUNC('body_shape', 'bmicalc', salo, pcs_hgt)
- end
- gs 'body_desc'
- !! Skin1 is only used in the foto location, and can be replaced at a later date. From here on out, do not use it.
- if pcs_skin > 100:
- pcs_skin = 100
- elseif pcs_skin < 0:
- pcs_skin = 0
- end
- mopkoef = pcs_makupskl / 5
- if pcs_makeup = 0: mopkoef = -5
- if pcs_makeup = 1: mopkoef = 0
- if pcs_makeup = 5: mopkoef = 30
- if pcs_makeup = 6 and bimbolevel >= 2: extra_supnatvnesh = 2*bimbolevel - 2
- if dounspell = 1:
- bodytipe = pcs_hips - pcs_waist
- if bodytipe < 20:
- bodykoef = 0
- elseif bodytipe >= 20 and bodytipe < 25:
- bodykoef = 2
- elseif bodytipe >= 25 and bodytipe < 30:
- bodykoef = 4
- elseif bodytipe >= 30 and bodytipe < 35:
- bodykoef = 8
- elseif bodytipe >= 35:
- bodykoef = 4
- end
- end
- !!This is to force a base update if teeth changed since that is immediate
- if zublast ! pcs_teeth:
- gs 'body_shape', 'basebeautycalc', 1
- zublast = pcs_teeth
- end
- !! Calculate hotcat etc
- tempclothingbonus = FUNC('body', 'calcClothesBonus', PXCloThinness, PXCloTopCut, PXCloBottomShortness, PCloQuality, $clothingworntype, pcs_bmi)
- tempAccessoriesBonus = FUNC('body', 'calcAccessoriesBonus', bonusZ, PShoQuality, $pantyworntype, $braworntype)
- tempGroomingBonus = FUNC('body', 'calcGroomingBonus', pcs_lipbalm, mopkoef, pcs_hairbsh, pcs_breath, deodorant_on, pcs_bmi)
- tempGroomingPenalty = FUNC('body', 'calcGroomingPenalty', pcs_hairlng, pcs_sweat, glassvnesh, dyevmod, legkoef)
- Hotcat = FUNC('body', 'calcHotcat', pcs_apprncbase, (supnatvnesh + extra_supnatvnesh), tempclothingbonus, tempAccessoriesBonus, tempGroomingBonus, tempGroomingPenalty)
- pcs_apprnc = temppcs_apprnc & killvar 'temppcs_apprnc' & killvar 'temppcs_maxapprnc'
- if StrongNarkota <= 0:
- if SNarkTimes >= 3 and SLomka = 0:SLomka = 1
- if Gerpes >= 3 or Sifilis >= 21 or Triper > 2:pcs_apprnc = -10
- end
- if amphCount > 3 and amphHigh <= 0:
- addictChance = rand(1,10)
- if addictChance > 8:
- amphWithdrawl = 2
- end
- end
- if StrongNarkota > 0:
- if SLomka > 0:SLomka = 0
- pcs_mood = 100
- end
- if pcs_apprnc = -10:
- $pcs_apprnc = 'Your looks are even worse than terrible. It''s god-awful. No one wants to see or talk to you and people avoid you at any cost.'
- elseif pcs_apprnc < 20:
- $pcs_apprnc = 'Your looks are terrible. People try to avoid looking and talking to you.'
- elseif pcs_apprnc < 60:
- $pcs_apprnc = 'You''re a wallflower. Hardly anyone notices you.'
- elseif pcs_apprnc < 120:
- $pcs_apprnc = 'You have good looks. Men and women check you out when they think you aren''t looking.'
- elseif pcs_apprnc < 160:
- $pcs_apprnc = 'You''re unquestionably gorgeous. Men constantly get caught staring at you by their girlfriends.'
- elseif pcs_apprnc < 200:
- $pcs_apprnc = 'You have a simply stunning appearance. Other girls are a bit jealous and guys constantly check you out.'
- else
- $pcs_apprnc = 'Your appearance is divine! No one is able to take his or her eyes off of you.'
- end
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!BODY
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- if dounspell = 1:
- salocatnow = (pcs_hips / 10) - 5
- if bdsetlock = 0:
- if (knowpreg = 1 or (preg = 1 and thinkpreg = 1) or (preg = 1 and PregChem > 3600)):
- bodset = 3
- elseif strenbuf >= 70:
- bodset = 2
- elseif strenbuf <= 40:
- bodset = 0
- else
- bodset = 1
- end
- else
- bodset = fixbodset
- end
- elseif (knowpreg = 1 or (preg = 1 and thinkpreg = 1) or (preg = 1 and PregChem > 3600)) and bodet ! 3 and bdsetlock = 0:
- bodset = 3
- elseif preg = 0 and bodset = 3 and bdsetlock = 0:
- if strenbuf >= 70:
- bodset = 2
- elseif strenbuf <= 40:
- bodset = 0
- else
- bodset = 1
- end
- end
- if (knowpreg = 1 or (preg = 1 and thinkpreg = 1) or (preg = 1 and PregChem > 3600)) and bodset = 3:
- if PregChem > 6216:
- $body = $bodimgsets[((bodset * 10) + 8)]
- elseif PregChem < 2688:
- $body = $bodimgsets[(bodset * 10)]
- else
- $body = $bodimgsets[((bodset * 10)+((PregChem - 2184)/504))]
- end
- elseif salocatnow <= 7:
- $body = $bodimgsets[((bodset * 10) + salocatnow)]
- else
- $body = $bodimgsets[((bodset * 10) + 7)]
- end
- !!Since "musle" is used all over the place
- musle = strenbuf
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! kill temporary variables
- killvar 'rand_breasts'
- killvar 'rand_hairmess'
- killvar 'rand_hairword'
- killvar 'rand_bangs'
- killvar 'rand_hair'
- killvar 'rand_hairstyle'
- killvar 'rand_hairobject'
- killvar 'rand_hairlength'
- killvar 'rand_tongue'
- killvar 'rand_eyecol'
- killvar 'rand_lashes'
- killvar 'rand_vision'
- killvar 'rand_eyesize'
- killvar 'rand_makeup'
- killvar 'rand_legs'
- killvar 'rand_clit'
- killvar 'rand_pubes'
- killvar 'rand_nipples'
- killvar 'tempclothingbonus'
- killvar 'tempAccessoriesBonus'
- killvar 'tempGroomingBonus'
- killvar 'tempGroomingPenalty'
- end
- if $ARGS[0] = 'calcClothesBonus':
- !! Note there is a limit of 9 args
- tempPXCloThinness = ARGS[1] & !! PXCloThinness
- tempPXCloTopCut = ARGS[2] & !! PXCloTopCut
- tempPXCloBottomShortness = ARGS[3] & !! PXCloBottomShortness
- tempPCloQuality = ARGS[4] & !! PCloQuality
- $tempclothingworntype = $ARGS[5] & !!$clothingworntype
- temppcs_bmi = ARGS[6] & !! pcs_bmi
- if temppcs_bmi < 16:
- !!severely underweight
- if $tempclothingworntype = 'nude':
- tempRevealing = 0
- tempPCloQuality = 1
- else
- tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
- tempRevealing = tempRevealing / 2
- end
- elseif temppcs_bmi >= 16 and temppcs_bmi < 19:
- !!underweight
- if $tempclothingworntype = 'nude':
- tempRevealing = 0
- tempPCloQuality = 1
- else
- tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
- tempRevealing = tempRevealing / 2
- end
- elseif temppcs_bmi >= 19 and temppcs_bmi < 25:
- !!normal, healthy weight
- if $tempclothingworntype = 'nude':
- tempRevealing = 405
- tempPCloQuality = 3
- else
- tempRevealing = tempPXCloThinness + tempPXCloTopCut + tempPXCloBottomShortness
- tempRevealing = tempRevealing / 2
- end
- elseif temppcs_bmi >= 25 and temppcs_bmi < 30:
- !!overweight
- if $tempclothingworntype = 'nude':
- tempRevealing = 405
- tempPCloQuality = 3
- else
- tempRevealing = tempPXCloThinness + tempPXCloTopCut + tempPXCloBottomShortness
- tempRevealing = tempRevealing / 2
- end
- elseif temppcs_bmi >= 30 and temppcs_bmi < 35:
- !!moderately obese
- if $tempclothingworntype = 'nude':
- tempRevealing = 0
- tempPCloQuality = 1
- else
- tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
- tempRevealing = tempRevealing * 3 / 4
- end
- elseif temppcs_bmi >= 35 and temppcs_bmi < 40:
- !!severely obese
- if $tempclothingworntype = 'nude':
- tempRevealing = 0
- tempPCloQuality = 1
- else
- tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
- tempRevealing = tempRevealing * 3 / 4
- end
- elseif temppcs_bmi >= 40 and temppcs_bmi < 45:
- !!very severely obese
- if $tempclothingworntype = 'nude':
- tempRevealing = 0
- tempPCloQuality = 1
- else
- tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
- tempRevealing = tempRevealing * 3 / 4
- end
- elseif temppcs_bmi >= 45:
- !!morbidly obese
- if $tempclothingworntype = 'nude':
- tempRevealing = 0
- tempPCloQuality = 1
- else
- tempRevealing = (400 - tempPXCloThinness) + (500 - tempPXCloTopCut) + (400 - tempPXCloBottomShortness)
- tempRevealing = tempRevealing * 3 / 4
- end
- end
- tempRevealing = tempRevealing / 76
- tempCloAdjustedBeauty = tempRevealing * tempPCloQuality
- !!if $tempclothingworntype = 'danilovich_outfits': tempCloAdjustedBeauty = tempCloAdjustedBeauty * 2 / 3
- result = tempCloAdjustedBeauty
- killvar 'tempPXCloThinness'
- killvar 'tempPXCloTopCut'
- killvar 'tempPXCloBottomShortness'
- killvar 'tempPCloQuality'
- killvar '$tempclothingworntype'
- killvar 'tempRevealing'
- killvar 'tempCloAdjustedBeauty'
- killvar 'temppcs_bmi'
- end
- if $ARGS[0] = 'calcAccessoriesBonus':
- tempcoatbonus = ARGS[1] & !! bonusZ
- tempPShoQuality = ARGS[2] & !! PShoQuality
- $temppantyworntype = $ARGS[3] & !! $pantyworntype
- $tempbraworntype = $ARGS[4] & !! $braworntype
-
- !!bonuses for certain underwear
- if $temppantyworntype = 'boutique':
- temppantybounus = 4
- elseif $temppantyworntype = 'fashionista':
- temppantybounus = 2
- end
- if $tempbraworntype = 'boutique':
- tempbrabounus = 4
- elseif $tempbraworntype = 'fashionista':
- tempbrabounus = 2
- end
- tempAccessoriesBonus = tempcoatbonus + tempPShoQuality + temppantybounus + tempbrabounus
- result = tempAccessoriesBonus
- killvar 'tempcoatbonus'
- killvar 'tempPShoQuality'
- killvar 'temppantybounus'
- killvar 'tempbrabounus'
- killvar '$temppantyworntype'
- killvar '$tempbraworntype'
- killvar 'tempAccessoriesBonus'
- end
- if $ARGS[0] = 'calcGroomingBonus':
- !! Note there is a limit of 9 args
- temppcs_lipbalm = ARGS[1] & !! pcs_lipbalm
- tempmakeupkoef = ARGS[2] & !! mopkoef
- temppcs_hairbsh = ARGS[3] & !! pcs_hairbsh
- temppcs_breath = ARGS[4] & !! pcs_breath
- tempdeodorant_on = ARGS[5] & !! deodorant_on
- temppcs_bmi = ARGS[6] & !! pcs_bmi
- if temppcs_lipbalm > 0:
- lipbalmKoef = 5
- else
- lipbalmKoef = 0
- end
- tempHairBonus = temppcs_hairbsh * 10
- tempBreathBonus = temppcs_breath * 5
- tempGroomingBonus = tempmakeupkoef + tempHairBonus + lipbalmKoef + tempBreathBonus
- !!Small bonus for wearing deodorant, if pcs_sweat is low enough
- if tempdeodorant_on = 1 and temppcs_sweat < 20: tempGroomingBonus += 5
- tempGroomingBonus = FUNC('body_shape', 'bmiadjust', tempGroomingBonus, temppcs_bmi)
- result = tempGroomingBonus
- killvar 'temppcs_lipbalm'
- killvar 'tempmakeupkoef'
- killvar 'temppcs_hairbsh'
- killvar 'temppcs_breath'
- killvar 'tempdeodorant_on'
- killvar 'tempHairBonus'
- killvar 'tempBreathBonus'
- killvar 'tempGroomingBonus'
- !! commented out as not used in the original calc
- !!Removed as primary appearance factors; will be eventually used in an NPC preference system instead; tanKoef = suntan
- !! if temppcs_tan > 0:
- !! tanKoef = 1
- !! else
- !! tanKoef = 0
- !! end
- end
- if $ARGS[0] = 'calcGroomingPenalty':
- temppcs_hairlng = ARGS[1] & !! pcs_hairlng
- temppcs_sweat = ARGS[2] & !! pcs_sweat
- tempglassvnesh = ARGS[3] & !! glassvnesh
- tempdyevmod = ARGS[4] & !! dyevmod
- templegkoef = ARGS[5] & !! legkoef
- !! buzzcut penalty to pcs_apprnc
- if temppcs_hairlng < 10:
- hairkoef = 10
- else
- hairkoef = 0
- end
- if temppcs_sweat < 22:
- sweatKoef = 0
- elseif temppcs_sweat < 38:
- sweatKoef = (temppcs_sweat - 10) / 4
- elseif temppcs_sweat < 54:
- sweatKoef = (temppcs_sweat - 10) / 2
- else
- sweatKoef = 3 * (temppcs_sweat - 10) / 4
- end
- tempGroomingPenalty = sweatKoef + tempglassvnesh + tempdyevmod + hairkoef + templegkoef
- result = tempGroomingPenalty
- killvar 'temppcs_hairlng'
- killvar 'temppcs_sweat'
- killvar 'tempglassvnesh'
- killvar 'tempdyevmod'
- killvar 'templegkoef'
- killvar 'tempGroomingPenalty'
- end
- if $ARGS[0] = 'calcHotcat':
- !!Appearance factors; hairkoef = very short hair / mopkoef = makeup bonus / legkoef = shaved legs / CloAdjustedBeauty = clothes / pcs_hairbsh = Hair brushed / lipbalmKoef = lip balm / pcs_breath = freash breath / sweatKoef = pcs_sweat / glassvnesh = glasses / dyevmod = hair dye fading
- !!Moved to base calculation in "body_shape"; bimbobeauty = Bimbo bonus; pcs_lip = lip size; skin = skin condition; pcs_lashes = eyelashes; pcs_eyesize = eyes; bodykoef = hips:waist ratio; pcs_teeth = missing teeth; vidagebonus = youth
- temppcs_apprncbase = ARGS[1] & !! pcs_apprncbase
- tempsupnatvnesh = ARGS[2] & !! supnatvnesh
- tempCloAdjustedBeauty = ARGS[3] & !! result of calcClothesBonus
- tempAccessoriesBonus = ARGS[4] & !! result of calcAccessoriesBonus
- tempGroomingBonus = ARGS[5] & !! result of calcGroomingBonus
- tempGroomingPenalty = ARGS[6] & !! result of calcGroomingPenalty
- temppcs_apprnc = temppcs_apprncbase + tempCloAdjustedBeauty + tempAccessoriesBonus + tempGroomingBonus - tempGroomingPenalty
- !!adjustment to make max achievable
- !!temppcs_maxapprnc = temppcs_apprnc*200/170
- temppcs_maxapprnc = temppcs_apprnc
- if temppcs_maxapprnc >= 200:
- temppcs_apprnc = 200
- else
- temppcs_apprnc = temppcs_maxapprnc
- end
- temppcs_apprnc = temppcs_apprnc + tempsupnatvnesh
- if temppcs_apprnc < 0: temppcs_apprnc = 0
- !!This sets the "hotness catagory" varibale for use in checks
- if temppcs_apprnc <= 200:
- temphotcat = temppcs_apprnc / 20
- else
- temphotcat = 10
- end
- result = tempHotcat
- !! do not kill temppcs_apprnc this is used as a second returned variable set pcs_apprnc = temppcs_apprnc and kill temppcs_apprnc after calling it
- killvar 'tempsupnatvnesh'
- killvar 'temppcs_apprncbase'
- killvar 'tempCloAdjustedBeauty'
- killvar 'tempGroomingBonus'
- killvar 'tempGroomingBonus'
- killvar 'tempGroomingPenalty'
- end
- --- body ---------------------------------
|