willpower.qsrc 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953
  1. # willpower
  2. !!To use it call it with gs 'willpower', 'action', 'type'
  3. !!Action: Determines what action sveta is resisting, forcing somebody to do or forcing herself to do
  4. !!List of actions:
  5. !! 'voyeur', 'flash', 'mast', 'hj', 'bj', 'cuni', 'sex', 'anal', 'group', 'gangbang', 'prostitution', 'swallow', 'cum_inside', 'cum_inside_anal', 'rape',
  6. !! 'kiss', 'humiliation', 'footjob', 'titjob', 'trib', 'rimming', 'BDSM', 'pee', 'cum_outside', 'drink', 'drugs', 'crime', 'exhib', 'sleep', 'chore'
  7. !! there is also 'foreplay' for things like touching and fondling
  8. !! and two special cases 'misc' and 'skill'
  9. !! 'chore' is meant to be used for menial tasks that should not greatly affect willpower max, only drain from the pool
  10. !!Type: Determines what kind of willpower check sveta needs to do ('resist', 'force', 'self').
  11. !! -'resist' is used if sveta is resisting to do the 'action' somebody else wants her to do.
  12. !! -'force' is used if sveta forces somebody else to do the 'action'.
  13. !! -'self' should be used if sveta forces herself to do the 'action' (this should be used only in rare occasions)
  14. !!Example 1: Sveta is forcing somebody to perform a blowjob: gs 'willpower', 'bj', 'force'
  15. !!Example 2: Sveta is resisting doing drugs: gs 'willpower', 'drugs', 'resist'
  16. !!You can modify the difficulty of the check with adding an additional argument at the end. You can either add an 'easy' or a 'hard' to modify the difficulty.
  17. !!Example 1: Sveta is resisting doing drugs, a weak outcast is pressuring her to use them: gs 'willpower', 'drugs', 'resist', 'easy'
  18. !!Example 2: Sveta is resisting doing drugs, a group of gopniks are pressuring her to use them: gs 'willpower', 'drugs', 'resist', 'hard'
  19. !!There are two special cases: 'misc' and 'skill'
  20. !!'skill': Bridging a gap in skill for doing something, for succeeding when not quite meeting the required skill/attribute: gs 'willpower', '<skill>_lvl'
  21. !!Example for 'skill': gs 'willpower', 'skill', 'resist', 'pcs_makupskl_lvl' for a willpower check regarding something with pcs_makupskl_lvl (you can also apply 'easy' or 'hard' difficulty to a skill check)
  22. !!'misc': Use this 'action' if no other 'action' fits the scene. You can set three difficulty levels for this check 'easy', 'medium', 'hard' (Difficulty is only for 'misc' checks)
  23. !!To call 'misc' do the following: gs 'willpower', 'misc', 'type', 'difficulty'
  24. !!Example 1 for 'misc': Sveta wants to bring herself to slap a weak looking nerd: gs 'willpower', 'misc', 'self', 'easy'
  25. !!Example 2 for 'misc': Sveta wants to force Artem to go to Vitek and call him an asshole: gs 'willpower', 'misc', 'force', 'hard'
  26. !!After Sveta has taken the willpower action the cost must be paid with: gs 'willpower', 'pay', 'type'
  27. !!Example: Sveta has to pay for resisting to do a blowjob: gs 'willpower', 'pay', 'resist'
  28. !!WARNING: When adding new options include gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2] at the end of the ARGS to apply easy or hard.
  29. !!WARNING: If you have two or more actions that need willpower at the same time, you have to recalculate the willpower cost before the costs are payed (see Code Example 2)
  30. !{ Code Example 1 (one action needs willpower)
  31. gs 'willpower', 'misc', 'self', 'hard'
  32. if will_cost <= pcs_willpwr:
  33. act 'Kick him in the balls (<<will_cost>> Willpower)':
  34. *clr & cla
  35. gs 'willpower', 'pay', 'self'
  36. gs 'stat'
  37. 'Event text'
  38. act 'Next action': gt 'farawayistan'
  39. end
  40. else
  41. act 'Kick him in the balls (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
  42. end
  43. }
  44. !{ Code Example 2 (several actions need willpower)
  45. gs 'willpower', 'misc', 'self', 'hard'
  46. if will_cost <= pcs_willpwr:
  47. act 'Kick him in the balls (<<will_cost>> Willpower)':
  48. *clr & cla
  49. gs 'willpower', 'misc', 'self', 'hard' <-- recalculate the willpower cost here
  50. gs 'willpower', 'pay', 'self'
  51. gs 'stat'
  52. 'Event text'
  53. act 'Next action': gt 'farawayistan'
  54. end
  55. else
  56. act 'Kick him in the balls (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
  57. end
  58. gs 'willpower', 'misc', 'self', 'medium'
  59. if will_cost <= pcs_willpwr:
  60. act 'Slap him across the face (<<will_cost>> Willpower)':
  61. *clr & cla
  62. gs 'willpower', 'misc', 'self', 'medium' <-- recalculate the willpower cost here
  63. gs 'willpower', 'pay', 'self'
  64. gs 'stat'
  65. 'Event text'
  66. act 'Next action': gt 'farawayistan'
  67. end
  68. else
  69. act 'Slap him across the face (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
  70. end
  71. }
  72. if $ARGS[0] = 'calc':
  73. gs 'willpower', 'dnd'
  74. will_calc = will_dnd
  75. !!fatigue
  76. if pcs_sleep < 5:
  77. will_calc += 50
  78. elseif pcs_sleep < 10:
  79. will_calc += 25
  80. elseif pcs_sleep < 20:
  81. will_calc += 10
  82. elseif pcs_sleep < 30:
  83. will_calc += 5
  84. end
  85. !!exhaustion (stamina)
  86. if pcs_stam <= 0:
  87. will_calc += 10
  88. elseif pcs_stam < stammax / 5:
  89. will_calc += 5
  90. end
  91. !!hunger
  92. if pcs_energy < 5:
  93. will_calc += 50
  94. elseif pcs_energy < 10:
  95. will_calc += 25
  96. elseif pcs_energy < 20:
  97. will_calc += 10
  98. elseif pcs_energy < 30:
  99. will_calc += 5
  100. end
  101. !!thirst
  102. if pcs_hydra < 5:
  103. will_calc += 50
  104. elseif pcs_hydra < 10:
  105. will_calc += 25
  106. elseif pcs_hydra < 20:
  107. will_calc += 10
  108. elseif pcs_hydra < 30:
  109. will_calc += 5
  110. end
  111. !!Bad syphilis, you is mental
  112. if Sifilis >= 50: will_calc += 100
  113. !!feeling sick
  114. if sick > 72:
  115. will_calc += 35
  116. elseif sick > 48:
  117. will_calc += 20
  118. elseif sick > 24:
  119. will_calc += 10
  120. elseif sick > 1:
  121. will_calc += 5
  122. end
  123. will_calc += pain['total']
  124. !! Modifier becuse of arousal only used for sex acts
  125. will_arousal_mod = max(min((pcs_horny -50)/2,25),-25)
  126. end
  127. if $ARGS[0] = 'voyeur':
  128. gs 'willpower', 'calc'
  129. if $ARGS[1] = 'self':
  130. if stat['voyeur'] + stat['voyeur_sex'] <= 90:
  131. will_cost = (100 - stat['voyeur'] - stat['voyeur_sex'] + will_calc - will_arousal_mod)/10
  132. else
  133. will_cost = (10 + will_calc - will_arousal_mod)/10
  134. end
  135. elseif $ARGS[1] = 'force':
  136. if stat['voyeur'] + stat['voyeur_sex'] <= 40:
  137. will_cost = (110 - will_enforced - stat['voyeur'] - stat['voyeur_sex'] + will_calc - will_arousal_mod)/10
  138. else
  139. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  140. end
  141. else
  142. if stat['voyeur'] + stat['voyeur_sex'] <= 90:
  143. will_cost = (10 + stat['voyeur'] + stat['voyeur_sex'] + will_calc + will_arousal_mod)/10
  144. else
  145. will_cost = (100 + will_calc + will_arousal_mod)/10
  146. end
  147. end
  148. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  149. end
  150. if $ARGS[0] = 'flash':
  151. gs 'willpower', 'calc'
  152. if $ARGS[1] = 'self':
  153. if stat['flash'] + (stat['flashlite'] / 2) <= 90:
  154. will_cost = (100 - stat['flash'] - (stat['flashlite'] / 2) + will_calc - will_arousal_mod)/10
  155. else
  156. will_cost = (10 + will_calc - will_arousal_mod)/10
  157. end
  158. elseif $ARGS[1] = 'force':
  159. if stat['flash'] + (stat['flashlite'] / 2) <= 40:
  160. will_cost = (110 - will_enforced - stat['flash'] - (stat['flashlite'] / 2) + will_calc - will_arousal_mod)/10
  161. else
  162. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  163. end
  164. else
  165. if stat['flash'] + (stat['flashlite'] / 2) <= 90:
  166. will_cost = (10 + stat['flash'] + (stat['flashlite'] / 2) + will_calc + will_arousal_mod)/10
  167. else
  168. will_cost = (100 + will_calc + will_arousal_mod)/10
  169. end
  170. end
  171. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  172. end
  173. if $ARGS[0] = 'mast':
  174. gs 'willpower', 'calc'
  175. if $ARGS[1] = 'self':
  176. if stat['mast'] <= 90:
  177. will_cost = (100 - stat['mast'] + will_calc - will_arousal_mod)/10
  178. else
  179. will_cost = (10 + will_calc - will_arousal_mod)/10
  180. end
  181. elseif $ARGS[1] = 'force':
  182. if stat['mast'] <= 40:
  183. will_cost = (110 - will_enforced - stat['mast'] + will_calc - will_arousal_mod)/10
  184. else
  185. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  186. end
  187. else
  188. if stat['mast'] <= 90:
  189. will_cost = (10 + stat['mast'] + will_calc + will_arousal_mod)/10
  190. else
  191. will_cost = (100 + will_calc)/10
  192. end
  193. end
  194. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  195. end
  196. if $ARGS[0] = 'hj':
  197. gs 'willpower', 'calc'
  198. if $ARGS[1] = 'self':
  199. if missCum >= timeTresh: will_calc = 0
  200. if stat['hj'] <= 90:
  201. will_cost = (100 - stat['hj'] + will_calc - will_arousal_mod)/10
  202. else
  203. will_cost = (10 + will_calc - will_arousal_mod)/10
  204. end
  205. elseif $ARGS[1] = 'force':
  206. if stat['hj'] <= 40:
  207. will_cost = (110 - will_enforced - stat['hj'] + will_calc - will_arousal_mod)/10
  208. else
  209. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  210. end
  211. else
  212. if missCum >= timeTresh: will_calc += 100
  213. if stat['hj'] <= 90:
  214. will_cost = (10 + stat['hj'] + will_calc + will_arousal_mod)/10
  215. else
  216. will_cost = (100 + will_calc + will_arousal_mod)/10
  217. end
  218. end
  219. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  220. end
  221. if $ARGS[0] = 'bj':
  222. gs 'willpower', 'calc'
  223. if $ARGS[1] = 'self':
  224. if missCum >= timeTresh: will_calc = 0
  225. if stat['bj'] <= 90:
  226. will_cost = (100 - stat['bj'] + will_calc - will_arousal_mod)/10
  227. else
  228. will_cost = (10 + will_calc - will_arousal_mod)/10
  229. end
  230. elseif $ARGS[1] = 'force':
  231. if stat['bj'] <= 40:
  232. will_cost = (110 - will_enforced - stat['bj'] + will_calc - will_arousal_mod)/10
  233. else
  234. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  235. end
  236. else
  237. if missCum >= timeTresh: will_calc += 100
  238. if stat['bj'] <= 90:
  239. will_cost = (10 + stat['bj'] + will_calc + will_arousal_mod)/10
  240. else
  241. will_cost = (100 + will_calc + will_arousal_mod)/10
  242. end
  243. end
  244. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  245. end
  246. if $ARGS[0] = 'cuni':
  247. gs 'willpower', 'calc'
  248. cuni_check = (stat['cuni'] + stat['cuni_give']) / 2
  249. if $ARGS[1] = 'self':
  250. if cuni_check <= 90:
  251. will_cost = (100 - cuni_check + will_calc - will_arousal_mod)/10
  252. else
  253. will_cost = (10 + will_calc - will_arousal_mod)/10
  254. end
  255. elseif $ARGS[1] = 'force':
  256. if cuni_check <= 40:
  257. will_cost = (110 - will_enforced - cuni_check + will_calc - will_arousal_mod)/10
  258. else
  259. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  260. end
  261. else
  262. if cuni_check <= 90:
  263. will_cost = (10 + cuni_check + will_calc + will_arousal_mod)/10
  264. else
  265. will_cost = (100 + will_calc + will_arousal_mod)/10
  266. end
  267. end
  268. killvar 'cuni_check'
  269. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  270. end
  271. if $ARGS[0] = 'sex' or $ARGS[0] = 'vaginal':
  272. gs 'willpower', 'calc'
  273. if $ARGS[1] = 'self':
  274. if missCum >= timeTresh: will_calc = 0
  275. if stat['vaginal'] <= 90:
  276. will_cost = (100 - stat['vaginal'] + will_calc - will_arousal_mod)/10
  277. else
  278. will_cost = (10 + will_calc - will_arousal_mod)/10
  279. end
  280. elseif $ARGS[1] = 'force':
  281. if stat['vaginal'] <= 40:
  282. will_cost = (110 - will_enforced - stat['vaginal'] + will_calc - will_arousal_mod)/10
  283. else
  284. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  285. end
  286. else
  287. if missCum >= timeTresh: will_calc += 100
  288. if stat['vaginal'] <= 90:
  289. will_cost = (10 + stat['vaginal'] + will_calc + will_arousal_mod)/10
  290. else
  291. will_cost = (100 + will_calc + will_arousal_mod)/10
  292. end
  293. end
  294. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  295. end
  296. if $ARGS[0] = 'anal':
  297. gs 'willpower', 'calc'
  298. if $ARGS[1] = 'self':
  299. if missCum >= timeTresh: will_calc = 0
  300. if stat['anal'] <= 90:
  301. will_cost = (100 - stat['anal'] + will_calc - will_arousal_mod)/10
  302. else
  303. will_cost = (10 + will_calc - will_arousal_mod)/10
  304. end
  305. elseif $ARGS[1] = 'force':
  306. if stat['anal'] <= 40:
  307. will_cost = (160 - will_enforced * 2 - stat['anal'] + will_calc - will_arousal_mod)/10
  308. else
  309. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  310. end
  311. else
  312. if missCum >= timeTresh: will_calc += 100
  313. if stat['anal'] <= 90:
  314. will_cost = (10 + stat['anal'] + will_calc + will_arousal_mod)/10
  315. else
  316. will_cost = (100 + will_calc + will_arousal_mod)/10
  317. end
  318. end
  319. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  320. end
  321. if $ARGS[0] = 'gangbang' or $ARGS[0] = 'group':
  322. gs 'willpower', 'calc'
  323. if $ARGS[1] = 'self':
  324. if missCum >= timeTresh: will_calc = 0
  325. if gang <= 90:
  326. will_cost = (100 - gang + will_calc - will_arousal_mod)/10
  327. else
  328. will_cost = (10 + will_calc - will_arousal_mod)/10
  329. end
  330. elseif $ARGS[1] = 'force':
  331. if gang <= 40:
  332. will_cost = (160 - will_enforced * 2 - gang + will_calc - will_arousal_mod)/10
  333. else
  334. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  335. end
  336. else
  337. if missCum >= timeTresh: will_calc += 100
  338. if gang <= 90:
  339. will_cost = (10 + gang + will_calc + will_arousal_mod)/10
  340. else
  341. will_cost = (100 + will_calc + will_arousal_mod)/10
  342. end
  343. end
  344. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  345. end
  346. if $ARGS[0] = 'prostitution':
  347. gs 'willpower', 'calc'
  348. if $ARGS[1] = 'self':
  349. if missCum >= timeTresh: will_calc = 0
  350. if slutty <= 90:
  351. will_cost = (100 - slutty + will_calc - will_arousal_mod)/10
  352. else
  353. will_cost = (10 + will_calc - will_arousal_mod)/10
  354. end
  355. elseif $ARGS[1] = 'force':
  356. if slutty <= 40:
  357. will_cost = (160 - will_enforced * 2 - slutty + will_calc - will_arousal_mod)/10
  358. else
  359. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  360. end
  361. else
  362. if missCum >= timeTresh: will_calc += 100
  363. prost_will = fame['pav_prostitute'] + fame['city_prostitute'] + fame['pushkin_prostitute'] + fame['village_prostitute'] + slutty/2
  364. if prost_will <= 90:
  365. will_cost = (10 + prost_will + will_calc + will_arousal_mod)/10
  366. else
  367. will_cost = (100 + will_calc + will_arousal_mod)/10
  368. end
  369. killvar 'prost_will'
  370. end
  371. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  372. end
  373. if $ARGS[0] = 'humiliation':
  374. gs 'willpower', 'calc'
  375. if $ARGS[1] = 'self':
  376. if missCum >= timeTresh: will_calc = 0
  377. if stat['humiliation'] <= 90:
  378. will_cost = (100 - stat['humiliation'] + will_calc - will_arousal_mod)/10
  379. else
  380. will_cost = (10 + will_calc - will_arousal_mod)/10
  381. end
  382. elseif $ARGS[1] = 'force':
  383. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  384. else
  385. if missCum >= timeTresh: will_calc += 100
  386. if stat['humiliation'] <= 90:
  387. will_cost = (10 + stat['humiliation'] + will_calc + will_arousal_mod)/10
  388. else
  389. will_cost = (100 + will_calc + will_arousal_mod)/10
  390. end
  391. end
  392. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  393. end
  394. if $ARGS[0] = 'footjob':
  395. gs 'willpower', 'calc'
  396. if $ARGS[1] = 'self':
  397. if stat['footjob'] <= 90:
  398. will_cost = (100 - stat['footjob'] + will_calc - will_arousal_mod)/10
  399. else
  400. will_cost = (10 + will_calc - will_arousal_mod)/10
  401. end
  402. elseif $ARGS[1] = 'force':
  403. if stat['footjob'] <= 40:
  404. will_cost = (110 - will_enforced - stat['footjob'] + will_calc - will_arousal_mod)/10
  405. else
  406. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  407. end
  408. else
  409. if stat['footjob'] <= 90:
  410. will_cost = (10 + stat['footjob'] + will_calc + will_arousal_mod)/10
  411. else
  412. will_cost = (100 + will_calc + will_arousal_mod)/10
  413. end
  414. end
  415. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  416. end
  417. if $ARGS[0] = 'titjob':
  418. gs 'willpower', 'calc'
  419. if $ARGS[1] = 'self':
  420. if stat['titjob'] <= 90:
  421. will_cost = (100 - stat['titjob'] + will_calc - will_arousal_mod)/10
  422. else
  423. will_cost = (10 + will_calc - will_arousal_mod)/10
  424. end
  425. elseif $ARGS[1] = 'force':
  426. if stat['titjob'] <= 40:
  427. will_cost = (110 - will_enforced - stat['titjob'] + will_calc - will_arousal_mod)/10
  428. else
  429. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  430. end
  431. else
  432. if stat['titjob'] <= 90:
  433. will_cost = (10 + stat['titjob'] + will_calc + will_arousal_mod)/10
  434. else
  435. will_cost = (100 + will_calc + will_arousal_mod)/10
  436. end
  437. end
  438. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  439. end
  440. if $ARGS[0] = 'trib':
  441. gs 'willpower', 'calc'
  442. if $ARGS[1] = 'self':
  443. if stat['trib'] <= 90:
  444. will_cost = (100 - stat['trib'] + will_calc - will_arousal_mod)/10
  445. else
  446. will_cost = (10 + will_calc - will_arousal_mod)/10
  447. end
  448. elseif $ARGS[1] = 'force':
  449. if stat['trib'] <= 40:
  450. will_cost = (110 - will_enforced - stat['trib'] + will_calc - will_arousal_mod)/10
  451. else
  452. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  453. end
  454. else
  455. if stat['trib'] <= 90:
  456. will_cost = (10 + stat['trib'] + will_calc + will_arousal_mod)/10
  457. else
  458. will_cost = (100 + will_calc + will_arousal_mod)/10
  459. end
  460. end
  461. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  462. end
  463. if $ARGS[0] = 'rimming':
  464. gs 'willpower', 'calc'
  465. rimming_check = (stat['rimming'] + stat['rimming_give']) / 2
  466. if $ARGS[1] = 'self':
  467. if rimming_check <= 90:
  468. will_cost = (100 - rimming_check + will_calc - will_arousal_mod)/10
  469. else
  470. will_cost = (10 + will_calc - will_arousal_mod)/10
  471. end
  472. elseif $ARGS[1] = 'force':
  473. if rimming_check <= 40:
  474. will_cost = (110 - will_enforced - rimming_check + will_calc - will_arousal_mod)/10
  475. else
  476. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  477. end
  478. else
  479. if rimming_check <= 90:
  480. will_cost = (10 + rimming_check + will_calc + will_arousal_mod)/10
  481. else
  482. will_cost = (100 + will_calc + will_arousal_mod)/10
  483. end
  484. end
  485. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  486. end
  487. if $ARGS[0] = 'BDSM':
  488. gs 'willpower', 'calc'
  489. ! It seems to me like 'force' should strictly be BDSM_give, and resist strictly BDSM.
  490. !bdsm_check = (stat['BDSM'] + stat['BDSM_give']) / 2
  491. ! Also, this category could benifit from sum, dom, maso, bound inclusion in some way
  492. !bdsm_exp = (maso['exp'] + bound['exp'] + sub['exp'] + maso['exp'])/4
  493. if $ARGS[1] = 'self':
  494. if (stat['BDSM'] + stat['BDSM_give']) / 2 <= 90:
  495. will_cost = (100 - ((stat['BDSM'] + stat['BDSM_give']) / 2) + will_calc - will_arousal_mod)/10
  496. else
  497. will_cost = (10 + will_calc - will_arousal_mod)/10
  498. end
  499. elseif $ARGS[1] = 'force':
  500. if stat['BDSM_give'] <= 40:
  501. will_cost = (160 - will_enforced - stat['BDSM_give'] + will_calc - will_arousal_mod)/10
  502. else
  503. will_cost = (120 - will_enforced + will_calc - will_arousal_mod)/10
  504. end
  505. else
  506. if stat['BDSM'] <= 90:
  507. will_cost = (10 + stat['BDSM'] + will_calc + will_arousal_mod)/10
  508. else
  509. will_cost = (100 + will_calc + will_arousal_mod)/10
  510. end
  511. end
  512. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  513. end
  514. ! For things like facials and other non-internal cum-receiving
  515. if $ARGS[0] = 'cum_outside':
  516. gs 'willpower', 'calc'
  517. ! I''m including internal stats, since it makes sense those would influence Sveta''s willingness to being cum on
  518. cum_check = facial + frot + (swallow) + (pcs_cp_safe_known + pcs_cp_notsafe_known + pcs_cp_risky_known) + (pcs_acp_known)
  519. if $ARGS[1] = 'self':
  520. if missCum >= timeTresh: will_calc = 0
  521. if cumloc[1] + cumloc[2] + cumloc[4] + cumloc[5] + cumloc[6] + cumloc[7] + cumloc[8] + cumloc[9] + cumloc[10] + cumloc[11] + cumloc[13] + cumloc[14] + cumloc[15] + cumloc[16] > 0 or cum_check > 90:
  522. will_cost = (10 + cum_check + will_calc - will_arousal_mod)/10
  523. else
  524. will_cost = (100 + will_calc - will_arousal_mod)/10
  525. end
  526. elseif $ARGS[1] = 'force':
  527. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  528. else
  529. if missCum >= timeTresh: will_calc += 100
  530. if cumloc[1] + cumloc[2] + cumloc[4] + cumloc[5] + cumloc[6] + cumloc[7] + cumloc[8] + cumloc[9] + cumloc[10] + cumloc[11] + cumloc[13] + cumloc[14] + cumloc[15] + cumloc[16] > 0 or cum_check > 90:
  531. will_cost = (100 + will_calc + will_arousal_mod)/10
  532. else
  533. will_cost = (10 + cum_check + will_calc + will_arousal_mod)/10
  534. end
  535. end
  536. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  537. end
  538. if $ARGS[0] = 'swallow':
  539. gs 'willpower', 'calc'
  540. if $ARGS[1] = 'self':
  541. if missCum >= timeTresh: will_calc = 0
  542. if pcs_traits['cumeater'] = 1 or cumloc[12] > 0:
  543. will_cost = (10 + will_calc - will_arousal_mod)/10
  544. else
  545. will_cost = (100 + will_calc - will_arousal_mod)/10
  546. end
  547. elseif $ARGS[1] = 'force':
  548. will_cost = (80 - will_enforced - pcs_traits['cumeater'] * 10 + will_calc - will_arousal_mod)/10
  549. else
  550. if missCum >= timeTresh: will_calc += 100
  551. if pcs_traits['cumeater'] = 1 or cumloc[12] > 0:
  552. will_cost = (100 + will_calc + will_arousal_mod)/10
  553. else
  554. will_cost = (10 + will_calc + will_arousal_mod)/10
  555. end
  556. end
  557. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  558. end
  559. if $ARGS[0] = 'cum_inside':
  560. gs 'willpower', 'calc'
  561. creampie_count = pcs_cp_safe_known + pcs_cp_notsafe_known + pcs_cp_risky_known
  562. if $ARGS[1] = 'self':
  563. if missCum >= timeTresh: will_calc = 0
  564. if cumloc[0] > 0 or creampie_count > 90:
  565. will_cost = (10 + creampie_count + will_calc - will_arousal_mod)/10
  566. else
  567. will_cost = (100 + will_calc - will_arousal_mod)/10
  568. end
  569. elseif $ARGS[1] = 'force':
  570. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  571. else
  572. if missCum >= timeTresh: will_calc += 100
  573. if cumloc[0] > 0 or creampie_count > 90:
  574. will_cost = (100 + will_calc + will_arousal_mod)/10
  575. else
  576. will_cost = (10 + creampie_count + will_calc + will_arousal_mod)/10
  577. end
  578. end
  579. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  580. end
  581. if $ARGS[0] = 'cum_inside_anal':
  582. gs 'willpower', 'calc'
  583. if $ARGS[1] = 'self':
  584. if missCum >= timeTresh: will_calc = 0
  585. if cumloc[3] > 0 or pcs_acp_known > 90:
  586. will_cost = (10 + pcs_acp_known + will_calc - will_arousal_mod)/10
  587. else
  588. will_cost = (100 + will_calc - will_arousal_mod)/10
  589. end
  590. elseif $ARGS[1] = 'force':
  591. will_cost = (120 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  592. else
  593. if missCum >= timeTresh: will_calc += 100
  594. if cumloc[3] > 0 or pcs_acp_known > 90:
  595. will_cost = (100 + will_calc + will_arousal_mod)/10
  596. else
  597. will_cost = (10 + pcs_acp_known + will_calc + will_arousal_mod)/10
  598. end
  599. end
  600. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  601. end
  602. if $ARGS[0] = 'kiss':
  603. gs 'willpower', 'calc'
  604. if $ARGS[1] = 'self':
  605. if stat['kiss'] <= 90:
  606. will_cost = (100 - stat['kiss'] + will_calc - will_arousal_mod)/10
  607. else
  608. will_cost = (10 + will_calc - will_arousal_mod)/10
  609. end
  610. elseif $ARGS[1] = 'force':
  611. if stat['kiss'] <= 40:
  612. will_cost = (110 - will_enforced - stat['kiss'] + will_calc - will_arousal_mod)/10
  613. else
  614. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  615. end
  616. else
  617. if stat['kiss'] <= 90:
  618. will_cost = (10 + stat['kiss'] + will_calc + will_arousal_mod)/10
  619. else
  620. will_cost = (100 + will_calc + will_arousal_mod)/10
  621. end
  622. end
  623. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  624. end
  625. if $ARGS[0] = 'foreplay':
  626. gs 'willpower', 'calc'
  627. if $ARGS[1] = 'self':
  628. if (stat['foreplay'] + stat['foreplay_give']) / 2 <= 90:
  629. will_cost = (100 - ((stat['foreplay'] + stat['foreplay_give']) / 2) + will_calc - will_arousal_mod)/10
  630. else
  631. will_cost = (10 + will_calc - will_arousal_mod)/10
  632. end
  633. elseif $ARGS[1] = 'force':
  634. if stat['foreplay_give'] <= 40:
  635. will_cost = (110 - will_enforced - stat['foreplay_give'] + will_calc - will_arousal_mod)/10
  636. else
  637. will_cost = (70 - will_enforced + will_calc - will_arousal_mod)/10
  638. end
  639. else
  640. if stat['foreplay'] <= 90:
  641. will_cost = (10 + stat['foreplay'] + will_calc + will_arousal_mod)/10
  642. else
  643. will_cost = (100 + will_calc + will_arousal_mod)/10
  644. end
  645. end
  646. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  647. end
  648. if $ARGS[0] = 'pee':
  649. gs 'willpower', 'calc'
  650. ! Same as with BDSM concerning 'force' and 'resist'
  651. !pee_check = (stat['pee'] + stat['pee_give']) / 2
  652. if $ARGS[1] = 'self':
  653. if (stat['pee'] + stat['pee_give']) / 2 <= 90:
  654. will_cost = (100 - ((stat['pee'] + stat['pee_give']) / 2) + will_calc - will_arousal_mod)/10
  655. else
  656. will_cost = (10 + will_calc - will_arousal_mod)/10
  657. end
  658. elseif $ARGS[1] = 'force':
  659. if stat['pee_give'] <= 40:
  660. will_cost = (160 - will_enforced - stat['pee_give'] + will_calc - will_arousal_mod)/10
  661. else
  662. will_cost = (120 - will_enforced + will_calc - will_arousal_mod)/10
  663. end
  664. else
  665. if stat['pee'] <= 90:
  666. will_cost = (10 + stat['pee'] + will_calc + will_arousal_mod)/10
  667. else
  668. will_cost = (100 + will_calc + will_arousal_mod)/10
  669. end
  670. end
  671. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  672. end
  673. !! requires the skill to be named with the _lvl postfix
  674. if $ARGS[0] = 'skill':
  675. gs 'willpower', 'calc'
  676. if $ARGS[1] = 'resist' or $ARGS[1] = 'force' or $ARGS[1] = 'self':
  677. if $ARGS[2] = 'inhib_lvl':
  678. will_cost = (100 - pcs_inhib + will_calc)/10
  679. else
  680. dynamic 'will_cost = (100 - <<$ARGS[2]>> + will_calc)/10'
  681. end
  682. gs 'willpower', 'difficulty', '<<$ARGS[3]>>'
  683. else
  684. if $ARGS[1] = 'inhib_lvl':
  685. will_cost = (100 - pcs_inhib + will_calc)/10
  686. else
  687. dynamic 'will_cost = (100 - <<$ARGS[1]>> + will_calc)/10'
  688. end
  689. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  690. end
  691. end
  692. if $ARGS[0] = 'rape':
  693. gs 'willpower', 'calc'
  694. if $ARGS[1] = 'self':
  695. if missCum >= timeTresh: will_calc = 0
  696. will_cost = (100 + will_calc - will_arousal_mod)/10
  697. elseif $ARGS[1] = 'force':
  698. will_cost = (200 - will_enforced * 2 + will_calc - will_arousal_mod)/10
  699. else
  700. if missCum >= timeTresh: will_calc += 100
  701. if rape = 0:
  702. will_cost = (10 + will_calc + will_arousal_mod)/10
  703. else
  704. will_cost = (100 + rape + will_calc + will_arousal_mod)/10
  705. end
  706. end
  707. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  708. end
  709. if $ARGS[0] = 'drink':
  710. gs 'willpower', 'calc'
  711. if $ARGS[1] = 'self':
  712. will_cost = (60 - alcohol_exp * 40 + will_calc)/10
  713. elseif $ARGS[1] = 'force':
  714. will_cost = (100 - will_enforced - alcohol_exp * 30 + will_calc)/10
  715. else
  716. if alko > 10:
  717. will_cost = (20 + alcohol_exp * 10 + will_calc)/10
  718. elseif alko > 6:
  719. will_cost = (80 + alcohol_exp * 40 + will_calc)/10
  720. elseif alko > 3:
  721. will_cost = (60 + alcohol_exp * 30 + will_calc)/10
  722. else
  723. will_cost = (10 + alcohol_exp * 20 + will_calc)/10
  724. end
  725. end
  726. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  727. end
  728. !!Drug needs already included in the will_calc so just a small base cost here
  729. if $ARGS[0] = 'drugs':
  730. gs 'willpower', 'calc'
  731. if $ARGS[1] = 'self':
  732. will_cost = (100 - addictive_trait_lvl * 30 + will_calc)/10
  733. elseif $ARGS[1] = 'force':
  734. will_cost = (100 - will_enforced - addictive_trait_lvl * 10 + will_calc)/10
  735. else
  736. if addictive_trait_lvl > 0:
  737. will_cost = (addictive_trait_lvl * 30 + will_calc)/10
  738. else
  739. will_cost = (10 + will_calc)/10
  740. end
  741. end
  742. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  743. end
  744. if $ARGS[0] = 'crime':
  745. gs 'willpower', 'calc'
  746. if $ARGS[0] = 'force':
  747. will_cost = (80 - will_enforced + will_calc)/10
  748. else
  749. will_cost = (60 + will_calc)/10
  750. end
  751. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  752. end
  753. if $ARGS[0] = 'exhib':
  754. gs 'willpower', 'calc'
  755. if $ARGS[1] = 'self':
  756. will_cost = (100 - Exhibitionist_lvl * 20 - pcs_inhib/5 + will_calc)/10
  757. elseif $ARGS[1] = 'force':
  758. will_cost = (100 - will_enforced - Exhibitionist_lvl * 10 + will_calc)/10
  759. else
  760. will_cost = (Exhibitionist_lvl * 25 + pcs_inhib/4 + will_calc)/10
  761. end
  762. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  763. end
  764. !!this is to force you to stay wake so will cost nothing if you have more than 5 sleep, it has no base cost as there will always be a sleep cost in calc
  765. if $ARGS[0] = 'sleep':
  766. gs 'willpower', 'calc'
  767. will_cost = 0
  768. if pcs_sleep <= 5: will_cost = will_calc/10
  769. !! Not sure if this one belongs. It doesn''t look like it''s used anywhere.
  770. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  771. end
  772. !!Choose this if nothing else fits and for chore which is same thing but without gains for max willpower
  773. if $ARGS[0] = 'misc' or $ARGS[0] = 'chore':
  774. gs 'willpower', 'calc'
  775. if $ARGS[1] = 'force':
  776. if $ARGS[2] = 'easy':
  777. will_cost = (60 - will_enforced + will_calc)/10
  778. elseif $ARGS[2] = 'hard':
  779. will_cost = (90 - will_enforced + will_calc)/10
  780. else
  781. will_cost = (70 - will_enforced + will_calc)/10
  782. end
  783. else
  784. if $ARGS[2] = 'easy':
  785. will_cost = (10 + will_calc)/10
  786. elseif $ARGS[2] = 'hard':
  787. will_cost = (40 + will_calc)/10
  788. else
  789. will_cost = (20 + will_calc)/10
  790. end
  791. end
  792. gs 'willpower', 'difficulty', $ARGS[1], $ARGS[2]
  793. end
  794. !!modifiers for drink an drugs
  795. if $ARGS[0] = 'dnd':
  796. will_dnd = 0
  797. if alko > 10:
  798. will_dnd += 160
  799. elseif alko > 6:
  800. will_dnd += 80
  801. elseif alko > 3:
  802. will_dnd += 30
  803. end
  804. !!cigarettes
  805. if smokerNeed > 10: will_dnd += 10
  806. !!weed
  807. if jointhigh > 0: will_dnd -= 10
  808. !!amphetamines
  809. if amphWithdrawl > 2:
  810. will_dnd += 40
  811. elseif amphHigh > 0:
  812. will_dnd += 80
  813. end
  814. !!heroine
  815. if SLomka > 0:
  816. will_dnd += 100
  817. elseif StrongNarkota > 0:
  818. will_dnd += 60
  819. end
  820. !!cocaine
  821. if narkoman = 1:
  822. will_dnd += 60
  823. elseif nark < 0:
  824. will_dnd -= 20
  825. end
  826. end
  827. if $ARGS[0] = 'difficulty':
  828. !!Multiplier to make willpower cost more. Use if all total costs need adjusting.
  829. will_cost = will_cost * 3 / 2
  830. if $ARGS[2] = 'easy':
  831. will_cost = will_cost * 2/3
  832. if will_cost < 5: will_cost = 5
  833. elseif $ARGS[2] = 'hard':
  834. will_cost = will_cost * 3/2
  835. if will_cost < 7: will_cost = 7
  836. else
  837. if will_cost < 6: will_cost = 6
  838. end
  839. if $ARGS[1] = 'force':
  840. will_cost = will_cost*(200-pcs_persuas)/100
  841. end
  842. if cheatWillpower = 1: will_cost = 0
  843. end
  844. if $ARGS[0] = 'pay':
  845. if will_cost < 1 and cheatWillpower = 0: will_cost = 1
  846. pcs_willpwr -= will_cost
  847. if $ARGS[1] = 'force':
  848. if willpowermax < 150:
  849. will_counter += 10
  850. end
  851. if will_enforced < 20: will_enforced += 1
  852. gs 'exp_gain', 'persuas', rand(1,2)
  853. elseif $ARGS[1] ! 'chore':
  854. if willpowermax < 150:
  855. will_counter += 1
  856. end
  857. end
  858. if will_counter >= 20: will_counter -= 20 & willpowermax += 1
  859. end
  860. --- willpower ---------------------------------