willpower.qsrc 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  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: 'hj', 'bj', 'cuni', 'sex', 'anal', 'group', 'gangbang', 'prostitution', 'swallow', 'cum_inside', 'cum_inside_anal', 'rape', 'drink', 'drugs', 'crime', 'exhib', 'sleep' and two special cases 'misc' and 'skill'
  5. !!Type: Determines what kind of willpower check sveta needs to do ('resist', 'force', 'self'). 'resist' is used if sveta is resisting to do the 'action' somebody else wants her to do. 'force' is used if sveta forces somebody else to do the 'action' and 'self' should be used if sveta forces herself to do the 'action' (this should be used only in rare occasions)
  6. !!Example 1: Sveta is forcing somebody to perform a blowjob: gs 'willpower', 'bj', 'force'
  7. !!Example 2: Sveta is resisting doing drugs: gs 'willpower', 'drugs', 'resist'
  8. !!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.
  9. !!Example 1: Sveta is resisting doing drugs, a weak outcast is pressuring her to use them: gs 'willpower', 'drugs', 'resist', 'easy'
  10. !!Example 2: Sveta is resisting doing drugs, a group of gopniks are pressuring her to use them: gs 'willpower', 'drugs', 'resist', 'hard'
  11. !!There are two special cases: 'misc' and 'skill'
  12. !!'skill': Bridging a gap in skill for doing something, for succeeding when not quite meeting the required skill/attribute: gs 'willpower', '<skill>_lvl'
  13. !!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)
  14. !!'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)
  15. !!To call 'misc' do the following: gs 'willpower', 'misc', 'type', 'difficulty'
  16. !!Example 1 for 'misc': Sveta wants to bring herself to slap a weak looking nerd: gs 'willpower', 'misc', 'self', 'easy'
  17. !!Example 2 for 'misc': Sveta wants to force Artem to go to Vitek and call him an asshole: gs 'willpower', 'misc', 'force', 'hard'
  18. !!After Sveta has taken the willpower action the cost must be paid with: gs 'willpower', 'pay', 'type'
  19. !!Example: Sveta has to pay for resisting to do a blowjob: gs 'willpower', 'pay', 'resist'
  20. !!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)
  21. !{ Code Example 1 (one action needs willpower)
  22. gs 'willpower', 'misc', 'self', 'hard'
  23. if will_cost <= pcs_willpwr:
  24. act 'Kick him in the balls (<<will_cost>> Willpower)':
  25. *clr & cla
  26. gs 'willpower', 'pay', 'self'
  27. gs 'stat'
  28. 'Event text'
  29. act 'Next action': gt 'farawayistan'
  30. end
  31. else
  32. 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>'
  33. end
  34. }
  35. !{ Code Example 2 (several actions need willpower)
  36. gs 'willpower', 'misc', 'self', 'hard'
  37. if will_cost <= pcs_willpwr:
  38. act 'Kick him in the balls (<<will_cost>> Willpower)':
  39. *clr & cla
  40. gs 'willpower', 'misc', 'self', 'medium' <-- recalculate the willpower cost here
  41. gs 'willpower', 'pay', 'self'
  42. gs 'stat'
  43. 'Event text'
  44. act 'Next action': gt 'farawayistan'
  45. end
  46. else
  47. 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>'
  48. end
  49. gs 'willpower', 'misc', 'self', 'medium'
  50. if will_cost <= pcs_willpwr:
  51. act 'Slap him across the face (<<will_cost>> Willpower)':
  52. *clr & cla
  53. gs 'willpower', 'misc', 'self', 'medium' <-- recalculate the willpower cost here
  54. gs 'willpower', 'pay', 'self'
  55. gs 'stat'
  56. 'Event text'
  57. act 'Next action': gt 'farawayistan'
  58. end
  59. else
  60. 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>'
  61. end
  62. }
  63. if $ARGS[0] = 'calc':
  64. gs 'willpower', 'dnd'
  65. will_calc = will_dnd
  66. !!fatigue
  67. if pcs_sleep < 5:
  68. will_calc += 50
  69. elseif pcs_sleep < 10:
  70. will_calc += 25
  71. elseif pcs_sleep < 20:
  72. will_calc += 10
  73. elseif pcs_sleep < 30:
  74. will_calc += 5
  75. end
  76. !!hunger
  77. if pcs_energy < 5:
  78. will_calc += 50
  79. elseif pcs_energy < 10:
  80. will_calc += 25
  81. elseif pcs_energy < 20:
  82. will_calc += 10
  83. elseif pcs_energy < 30:
  84. will_calc += 5
  85. end
  86. !!thirst
  87. if pcs_hydra < 5:
  88. will_calc += 50
  89. elseif pcs_hydra < 10:
  90. will_calc += 25
  91. elseif pcs_hydra < 20:
  92. will_calc += 10
  93. elseif pcs_hydra < 30:
  94. will_calc += 5
  95. end
  96. !!Very horny
  97. if pcs_horny >= 90: will_calc += 10
  98. !!Bad syphilis, you is mental
  99. if Sifilis >= 50: will_calc += 100
  100. !!feeling sick
  101. if sick > 72:
  102. will_calc += 35
  103. elseif sick > 48:
  104. will_calc += 20
  105. elseif sick > 24:
  106. will_calc += 10
  107. elseif sick > 1:
  108. will_calc += 5
  109. end
  110. end
  111. if $ARGS[0] = 'hj':
  112. gs 'willpower', 'calc'
  113. will_cost = 0
  114. if $ARGS[1] = 'self':
  115. if missCum >= timeTresh: will_calc = 0
  116. if stat['hj'] <= 90:
  117. will_cost = (100 - stat['hj'] + will_calc)/10
  118. else
  119. will_cost = (10 + will_calc)/10
  120. end
  121. elseif $ARGS[1] = 'force':
  122. if stat['hj'] <= 40:
  123. will_cost = (110 - will_enforced - stat['hj'] + will_calc)/10
  124. else
  125. will_cost = (70 - will_enforced + will_calc)/10
  126. end
  127. else
  128. if missCum >= timeTresh: will_calc += 100
  129. if stat['hj'] <= 90:
  130. will_cost = (10 + stat['hj'] + will_calc)/10
  131. else
  132. will_cost = (100 + will_calc)/10
  133. end
  134. end
  135. end
  136. if $ARGS[0] = 'bj':
  137. gs 'willpower', 'calc'
  138. will_cost = 0
  139. if $ARGS[1] = 'self':
  140. if missCum >= timeTresh: will_calc = 0
  141. if stat['bj'] <= 90:
  142. will_cost = (100 - stat['bj'] + will_calc)/10
  143. else
  144. will_cost = (10 + will_calc)/10
  145. end
  146. elseif $ARGS[1] = 'force':
  147. if stat['bj'] <= 40:
  148. will_cost = (110 - will_enforced - stat['bj'] + will_calc)/10
  149. else
  150. will_cost = (70 - will_enforced + will_calc)/10
  151. end
  152. else
  153. if missCum >= timeTresh: will_calc += 100
  154. if stat['bj'] <= 90:
  155. will_cost = (10 + stat['bj'] + will_calc)/10
  156. else
  157. will_cost = (100 + will_calc)/10
  158. end
  159. end
  160. end
  161. if $ARGS[0] = 'cuni':
  162. gs 'willpower', 'calc'
  163. will_cost = 0
  164. cuni_check = (stat['cuni'] + stat['cuni_give']) / 2
  165. if $ARGS[1] = 'self':
  166. if cuni_check <= 90:
  167. will_cost = (100 - cuni_check + will_calc)/10
  168. else
  169. will_cost = (10 + will_calc)/10
  170. end
  171. elseif $ARGS[1] = 'force':
  172. if cuni_check <= 40:
  173. will_cost = (110 - will_enforced - cuni_check + will_calc)/10
  174. else
  175. will_cost = (70 - will_enforced + will_calc)/10
  176. end
  177. else
  178. if cuni_check <= 90:
  179. will_cost = (10 + cuni_check + will_calc)/10
  180. else
  181. will_cost = (100 + will_calc)/10
  182. end
  183. end
  184. killvar 'cuni_check'
  185. end
  186. if $ARGS[0] = 'sex' or $ARGS[0] = 'vaginal':
  187. gs 'willpower', 'calc'
  188. will_cost = 0
  189. if $ARGS[1] = 'self':
  190. if missCum >= timeTresh: will_calc = 0
  191. if stat['vaginal'] <= 90:
  192. will_cost = (100 - stat['vaginal'] + will_calc)/10
  193. else
  194. will_cost = (10 + will_calc)/10
  195. end
  196. elseif $ARGS[1] = 'force':
  197. if stat['vaginal'] <= 40:
  198. will_cost = (110 - will_enforced - stat['vaginal'] + will_calc)/10
  199. else
  200. will_cost = (70 - will_enforced + will_calc)/10
  201. end
  202. else
  203. if missCum >= timeTresh: will_calc += 100
  204. if stat['vaginal'] <= 90:
  205. will_cost = (10 + stat['vaginal'] + will_calc)/10
  206. else
  207. will_cost = (100 + will_calc)/10
  208. end
  209. end
  210. end
  211. if $ARGS[0] = 'anal':
  212. gs 'willpower', 'calc'
  213. will_cost = 0
  214. if $ARGS[1] = 'self':
  215. if missCum >= timeTresh: will_calc = 0
  216. if stat['anal'] <= 90:
  217. will_cost = (100 - stat['anal'] + will_calc)/10
  218. else
  219. will_cost = (10 + will_calc)/10
  220. end
  221. elseif $ARGS[1] = 'force':
  222. if stat['anal'] <= 40:
  223. will_cost = (160 - will_enforced * 2 - stat['anal'] + will_calc)/10
  224. else
  225. will_cost = (120 - will_enforced * 2 + will_calc)/10
  226. end
  227. else
  228. if missCum >= timeTresh: will_calc += 100
  229. if stat['anal'] <= 90:
  230. will_cost = (10 + stat['anal'] + will_calc)/10
  231. else
  232. will_cost = (100 + will_calc)/10
  233. end
  234. end
  235. end
  236. if $ARGS[0] = 'gangbang' or $ARGS[0] = 'group':
  237. gs 'willpower', 'calc'
  238. will_cost = 0
  239. if $ARGS[1] = 'self':
  240. if missCum >= timeTresh: will_calc = 0
  241. if gang <= 90:
  242. will_cost = (100 - gang + will_calc)/10
  243. else
  244. will_cost = (10 + will_calc)/10
  245. end
  246. elseif $ARGS[1] = 'force':
  247. if gang <= 40:
  248. will_cost = (160 - will_enforced * 2 - gang + will_calc)/10
  249. else
  250. will_cost = (120 - will_enforced * 2 + will_calc)/10
  251. end
  252. else
  253. if missCum >= timeTresh: will_calc += 100
  254. if gang <= 90:
  255. will_cost = (10 + gang + will_calc)/10
  256. else
  257. will_cost = (100 + will_calc)/10
  258. end
  259. end
  260. end
  261. if $ARGS[0] = 'prostitution':
  262. gs 'willpower', 'calc'
  263. will_cost = 0
  264. if $ARGS[1] = 'self':
  265. if missCum >= timeTresh: will_calc = 0
  266. if slutty <= 90:
  267. will_cost = (100 - slutty + will_calc)/10
  268. else
  269. will_cost = (10 + will_calc)/10
  270. end
  271. elseif $ARGS[1] = 'force':
  272. if slutty <= 40:
  273. will_cost = (160 - will_enforced * 2 - slutty + will_calc)/10
  274. else
  275. will_cost = (120 - will_enforced * 2 + will_calc)/10
  276. end
  277. else
  278. if missCum >= timeTresh: will_calc += 100
  279. prost_will = pav_prostitute + city_prostitute + oldtown_prostitute + village_prostitute + slutty/2
  280. if prost_will <= 90:
  281. will_cost = (10 + prost_will + will_calc)/10
  282. else
  283. will_cost = (100 + will_calc)/10
  284. end
  285. killvar 'prost_will'
  286. end
  287. end
  288. if $ARGS[0] = 'humiliation':
  289. gs 'willpower', 'calc'
  290. will_cost = 0
  291. if $ARGS[1] = 'self':
  292. if missCum >= timeTresh: will_calc = 0
  293. if stat['humiliation'] <= 90:
  294. will_cost = (100 - stat['humiliation'] + will_calc)/10
  295. else
  296. will_cost = (10 + will_calc)/10
  297. end
  298. elseif $ARGS[1] = 'force':
  299. will_cost = (120 - will_enforced * 2 + will_calc)/10
  300. else
  301. if missCum >= timeTresh: will_calc += 100
  302. if stat['humiliation'] <= 90:
  303. will_cost = (10 + stat['humiliation'] + will_calc)/10
  304. else
  305. will_cost = (100 + will_calc)/10
  306. end
  307. end
  308. end
  309. if $ARGS[0] = 'swallow':
  310. gs 'willpower', 'calc'
  311. will_cost = 0
  312. if $ARGS[1] = 'self':
  313. if missCum >= timeTresh: will_calc = 0
  314. if trt_cumeater = 1 or cumloc[12] > 0:
  315. will_cost = (10 + will_calc)/10
  316. else
  317. will_cost = (100 + will_calc)/10
  318. end
  319. elseif $ARGS[1] = 'force':
  320. will_cost = (80 - will_enforced - trt_cumeater * 10 + will_calc)/10
  321. else
  322. if missCum >= timeTresh: will_calc += 100
  323. if trt_cumeater = 1 or cumloc[12] > 0:
  324. will_cost = (100 + will_calc)/10
  325. else
  326. will_cost = (10 + will_calc)/10
  327. end
  328. end
  329. end
  330. if $ARGS[0] = 'cum_inside':
  331. gs 'willpower', 'calc'
  332. will_cost = 0
  333. creampie_count = pcs_cp_safe_unknown + pcs_cp_notsafe_unknown + pcs_cp_risky_unknown
  334. if $ARGS[1] = 'self':
  335. if missCum >= timeTresh: will_calc = 0
  336. if cumloc[0] > 0 or creampie_count > 90:
  337. will_cost = (10 + creampie_count + will_calc)/10
  338. else
  339. will_cost = (100 + will_calc)/10
  340. end
  341. elseif $ARGS[1] = 'force':
  342. will_cost = (120 - will_enforced * 2 + will_calc)/10
  343. else
  344. if missCum >= timeTresh: will_calc += 100
  345. if cumloc[0] > 0 or creampie_count > 90:
  346. will_cost = (100 + will_calc)/10
  347. else
  348. will_cost = (10 + creampie_count + will_calc)/10
  349. end
  350. end
  351. end
  352. if $ARGS[0] = 'cum_inside_anal':
  353. gs 'willpower', 'calc'
  354. will_cost = 0
  355. if $ARGS[1] = 'self':
  356. if missCum >= timeTresh: will_calc = 0
  357. if cumloc[3] > 0 or pcs_acp_known > 90:
  358. will_cost = (10 + pcs_acp_known + will_calc)/10
  359. else
  360. will_cost = (100 + will_calc)/10
  361. end
  362. elseif $ARGS[1] = 'force':
  363. will_cost = (120 - will_enforced * 2 + will_calc)/10
  364. else
  365. if missCum >= timeTresh: will_calc += 100
  366. if cumloc[3] > 0 or pcs_acp_known > 90:
  367. will_cost = (100 + will_calc)/10
  368. else
  369. will_cost = (10 + pcs_acp_known + will_calc)/10
  370. end
  371. end
  372. end
  373. !! requires the skill to be named with the _lvl postfix
  374. if $ARGS[0] = 'skill':
  375. gs 'willpower', 'calc'
  376. will_cost = 0
  377. if $ARGS[1] = 'resist' or $ARGS[1] = 'force' or $ARGS[1] = 'self':
  378. if $ARGS[2] = 'inhib_lvl':
  379. will_cost = (pcs_inhib + will_calc)/10
  380. else
  381. dynamic 'will_cost = (100 - <<$ARGS[2]>> + will_calc)/10'
  382. end
  383. else
  384. if $ARGS[1] = 'inhib_lvl':
  385. will_cost = (pcs_inhib + will_calc)/10
  386. else
  387. dynamic 'will_cost = (100 - <<$ARGS[1]>> + will_calc)/10'
  388. end
  389. end
  390. end
  391. if $ARGS[0] = 'rape':
  392. gs 'willpower', 'calc'
  393. will_cost = 0
  394. if $ARGS[1] = 'self':
  395. if missCum >= timeTresh: will_calc = 0
  396. will_cost = (100 + will_calc)/10
  397. elseif $ARGS[1] = 'force':
  398. will_cost = (200 - will_enforced * 2 + will_calc)/10
  399. else
  400. if missCum >= timeTresh: will_calc += 100
  401. if rape = 0:
  402. will_cost = (10 + will_calc)/10
  403. else
  404. will_cost = (100 + rape + will_calc)/10
  405. end
  406. end
  407. end
  408. if $ARGS[0] = 'drink':
  409. gs 'willpower', 'calc'
  410. will_cost = 0
  411. if $ARGS[1] = 'self':
  412. will_cost = (60 - alcohol_exp * 40 + will_calc)/10
  413. elseif $ARGS[1] = 'force':
  414. will_cost = (100 - will_enforced - alcohol_exp * 30 + will_calc)/10
  415. else
  416. if alko > 10:
  417. will_cost = (20 + alcohol_exp * 10 + will_calc)/10
  418. elseif alko > 6:
  419. will_cost = (80 + alcohol_exp * 40 + will_calc)/10
  420. elseif alko > 3:
  421. will_cost = (60 + alcohol_exp * 30 + will_calc)/10
  422. else
  423. will_cost = (10 + alcohol_exp * 20 + will_calc)/10
  424. end
  425. end
  426. end
  427. !!Drug needs already included in the will_calc so just a small base cost here
  428. if $ARGS[0] = 'drugs':
  429. gs 'willpower', 'calc'
  430. will_cost = 0
  431. if $ARGS[1] = 'self':
  432. will_cost = (100 - addictive_trait_lvl * 30 + will_calc)/10
  433. elseif $ARGS[1] = 'force':
  434. will_cost = (100 - will_enforced - addictive_trait_lvl * 10 + will_calc)/10
  435. else
  436. if addictive_trait_lvl > 0:
  437. will_cost = (addictive_trait_lvl * 30 + will_calc)/10
  438. else
  439. will_cost = (10 + will_calc)/10
  440. end
  441. end
  442. end
  443. if $ARGS[0] = 'crime':
  444. gs 'willpower', 'calc'
  445. will_cost = 0
  446. if $ARGS[0] = 'force':
  447. will_cost = (80 - will_enforced + will_calc)/10
  448. else
  449. will_cost = (60 + will_calc)/10
  450. end
  451. end
  452. if $ARGS[0] = 'exhib':
  453. gs 'willpower', 'calc'
  454. will_cost = 0
  455. if $ARGS[1] = 'self':
  456. will_cost = (100 - Exhibitionist_lvl * 20 - pcs_inhib/5 + will_calc)/10
  457. elseif $ARGS[1] = 'force':
  458. will_cost = (100 - will_enforced - Exhibitionist_lvl * 10 + will_calc)/10
  459. else
  460. will_cost = (Exhibitionist_lvl * 25 + pcs_inhib/4 + will_calc)/10
  461. end
  462. end
  463. !!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
  464. if $ARGS[0] = 'sleep':
  465. gs 'willpower', 'calc'
  466. will_cost = 0
  467. if pcs_sleep <= 5: will_cost = will_calc/10
  468. end
  469. !!Choose this if nothing else fits
  470. if $ARGS[0] = 'misc':
  471. gs 'willpower', 'calc'
  472. will_cost = 0
  473. if $ARGS[1] = 'force':
  474. if $ARGS[2] = 'easy':
  475. will_cost = (60 - will_enforced + will_calc)/10
  476. elseif $ARGS[2] = 'hard':
  477. will_cost = (90 - will_enforced + will_calc)/10
  478. else
  479. will_cost = (70 - will_enforced + will_calc)/10
  480. end
  481. else
  482. if $ARGS[2] = 'easy':
  483. will_cost = (10 + will_calc)/10
  484. elseif $ARGS[2] = 'hard':
  485. will_cost = (40 + will_calc)/10
  486. else
  487. will_cost = (20 + will_calc)/10
  488. end
  489. end
  490. end
  491. !!modifiers for drink an drugs
  492. if $ARGS[0] = 'dnd':
  493. will_dnd = 0
  494. if alko > 10:
  495. will_dnd += 80
  496. elseif alko > 6:
  497. will_dnd += 40
  498. elseif alko > 3:
  499. will_dnd += 20
  500. end
  501. !!cigarettes
  502. if smokerNeed > 10: will_dnd += 10
  503. !!weed
  504. if jointhigh > 0: will_dnd -= 10
  505. !!amphetamines
  506. if amphWithdrawl > 2:
  507. will_dnd += 40
  508. elseif amphHigh > 0:
  509. will_dnd += 60
  510. end
  511. !!heroine
  512. if SLomka > 0:
  513. will_dnd += 80
  514. elseif StrongNarkota > 0:
  515. will_dnd += 50
  516. end
  517. !!cocaine
  518. if narkoman = 1:
  519. will_dnd += 40
  520. elseif nark < 0:
  521. will_dnd -= 20
  522. end
  523. end
  524. if $ARGS[0] ! 'pay' and $ARGS[0] ! 'misc' and $ARGS[2] ! '':
  525. if $ARGS[2] = 'easy':
  526. will_cost = will_cost * 2/3
  527. elseif $ARGS[2] = 'hard':
  528. will_cost = will_cost * 3/2
  529. end
  530. elseif $ARGS[0] = 'pay':
  531. if will_cost < 1: will_cost = 1
  532. pcs_willpwr -= will_cost
  533. if $ARGS[1] = 'force':
  534. will_counter += 1
  535. if will_counter >= 5: will_counter = 0 & willpowermax += 1
  536. if will_enforced < 50: will_enforced += 1
  537. end
  538. end
  539. --- willpower ---------------------------------