Browse Source

Christina-Vars

Stephan Fuchs 1 year ago
parent
commit
1decf8c6d1
32 changed files with 267 additions and 214 deletions
  1. 8 8
      sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_Sly_events.tw
  2. 14 14
      sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_Sly_sex.tw
  3. 9 28
      sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_events.tw
  4. 10 10
      sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_house_events.tw
  5. 17 17
      sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_sub_1.tw
  6. 23 0
      sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/quest_christina.tw
  7. 1 1
      sugarcube/src/autogenerated/school/gschool_chats.tw
  8. 6 6
      sugarcube/src/autogenerated/school/gschool_cheerleading.tw
  9. 7 7
      sugarcube/src/autogenerated/school/gschool_events.tw
  10. 1 1
      sugarcube/src/autogenerated/school/gschool_gossip.tw
  11. 7 7
      sugarcube/src/autogenerated/school/gschool_grounds.tw
  12. 14 14
      sugarcube/src/autogenerated/school/gschool_jock_chats.tw
  13. 14 14
      sugarcube/src/autogenerated/school/gschool_lessons4.tw
  14. 4 4
      sugarcube/src/autogenerated/school/gschool_lessonsev2.tw
  15. 2 2
      sugarcube/src/autogenerated/school/gschool_post_shower.tw
  16. 2 2
      sugarcube/src/autogenerated/school/gschool_socialchg.tw
  17. 30 4
      sugarcube/src/autogenerated/school/school_start.tw
  18. 1 1
      sugarcube/src/autogenerated/unsorted/LariskaHome.tw
  19. 8 8
      sugarcube/src/autogenerated/unsorted/ender.tw
  20. 17 17
      sugarcube/src/autogenerated/unsorted/journal_quests.tw
  21. 2 2
      sugarcube/src/autogenerated/unsorted/journal_school.tw
  22. 2 2
      sugarcube/src/autogenerated/unsorted/journal_uni.tw
  23. 2 2
      sugarcube/src/autogenerated/unsorted/pav_disco_jocks.tw
  24. 1 1
      sugarcube/src/autogenerated/unsorted/pav_lake.tw
  25. 2 2
      sugarcube/src/autogenerated/unsorted/pav_residential.tw
  26. 29 29
      sugarcube/src/autogenerated/unsorted/saveupdater.tw
  27. 3 3
      sugarcube/src/autogenerated/unsorted/uni_lessonsev1.tw
  28. 3 3
      sugarcube/src/autogenerated/unsorted/uni_lessonsev2.tw
  29. 14 0
      sugarcube/src/js/parameterize.js
  30. 9 2
      sugarcube/src/quests/quests.js
  31. 3 3
      tw_update.py
  32. 2 0
      variables.py

+ 8 - 8
sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_Sly_events.tw

@@ -24,7 +24,7 @@
 	<<image "characters/shared/headshots_main/big248.jpg">>
 	Wandering through <<npc 'A18'>><</npc>>''s house, you hear the TV going in the living room. Knowing <<npc 'A18'>><</npc>> isn''t in there, you realize it must be the infamous Sly.
 	<<set 'You walk into the room, see a fairly cute boy sitting on the couch watching TV, and decide to make an impression. ' + iif(<<npc 'A18'>><</npc>>QW['fight'] =  - 1, 'You walk to a point in between him and the TV, with your hands on your hips, and stare him down.','You walk over to him with your head bowed, making sure not to block the TV, and wait for him to address you.') + ''>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<p>He stares at you for a moment, before starting to laugh. "You're a fiesty one! My sister must not have broken you yet. That's ok, more for me to do. Follow. Now."</p>
 		<<act 'Sullenly follow him'>>
 			<<gt 'Zvereva_Sly_events' 'Sly_house_intro_2'>>
@@ -51,7 +51,7 @@
 <</act>>
 
 	<</if>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<<act 'Refuse'>>
 	<<gt 'Zvereva_Sly_events' 'first_refuse'>>
 <</act>>
@@ -66,7 +66,7 @@
 	He smiles a bit wickedly. "Master."
 	<p>"Huh?"</p>
 	"You will refer to me as Master."
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		"No."
 		He just stares at you a moment, then ... <b>SLAP</b>.
 		You rock back on your heels with your hand on your cheek, taken entirely offguard.
@@ -81,7 +81,7 @@
 	<<act 'Insist'>>
 		<<setinit $slyQW['virgin'] = 2>>
 		<<image "characters/shared/headshots_main/big248.jpg">>
-		<<if getvar("$christinaQW['fight']") == -1>>
+		<<if $q.christina?.get('fight') == -1>>
 			Cheeks turning red, you say "I don't have a choice. My mother makes me do regular check ups at the gynaecologist. If she finds out I've lost my virginity to you there will be a lot of trouble. For you."
 			He stares at you, obviously trying to decide if you're lying or not, before saying "For now, we will work on training your other sexual skills. If I find out you're lying to me though, things will get bad for you, really fast. And the next time I have to remind you to call me Master I will leave a bruise."
 			"I'm not lying, <i>Master</i>. I can't stop you from doing what you want to me, but if you cross that line, it won''t be me you're dealing with."
@@ -146,7 +146,7 @@
 	<<set $pursebranumber = $wardrobe.brawornnumber>>
 	<<gs 'clothing' 'strip'>>
 	<<gs 'underwear' 'remove'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<<act 'Angrily start stroking it'>>
 			<!-- Boy A248 -->
 			<<gt 'Zvereva_Sly_sex' 'hj_1'>>
@@ -194,7 +194,7 @@
 		<<act 'Offer yourself'>>
 			<<setinit $slyQW['Sly_sex_daystart'] = $time.daystart>>
 			<center><video autoplay loop src="images/shared/sex/undress/kotovpre'+rand(11, 14)+'.mp4"></video></center>
-			<<if getvar("$christinaQW['fight']") == -1>>
+			<<if $q.christina?.get('fight') == -1>>
 				You start stripping your clothes off in front of him. The bored look on his face is quickly replaced by a hungry look.
 			<<else>>
 				You slowly and seductively start stripping your clothes off in front of him. The bored look on his face is quickly replaced by a hungry look.
@@ -208,7 +208,7 @@
 					<<setinit $slyQW['Sly_sex_daystart'] = $time.daystart>>
 					<<setinit $slyQW['virgin'] = 3>>
 					<center><video autoplay loop src="images/shared/sex/undress/kotovpre'+rand(11, 14)+'.mp4"></video></center>
-					<<if getvar("$christinaQW['fight']") == -1>>
+					<<if $q.christina?.get('fight') == -1>>
 						You start stripping your clothes off in front of him. The bored look on his face is quickly replaced by a hungry look.
 					<<else>>
 						You slowly and seductively start stripping your clothes off in front of him. The bored look on his face is quickly replaced by a hungry look.
@@ -222,7 +222,7 @@
 					<<setinit $slyQW['Sly_sex_daystart'] = $time.daystart>>
 					<<setinit $slyQW['virgin'] = 3>>
 					<center><video autoplay loop src="images/shared/sex/undress/kotovpre'+rand(11, 14)+'.mp4"></video></center>
-					<<if getvar("$christinaQW['fight']") == -1>>
+					<<if $q.christina?.get('fight') == -1>>
 						You start stripping your clothes off in front of him. The bored look on his face is quickly replaced by a hungry look.
 					<<else>>
 						You slowly and seductively start stripping your clothes off in front of him. The bored look on his face is quickly replaced by a hungry look.

+ 14 - 14
sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_Sly_sex.tw

@@ -35,14 +35,14 @@
 					<<setinit $slyQW['Chris_caught'] += 1>>
 					<<setinit $slyQW['Chris_peeking'] = 1>>
 				<</if>>
-			<<elseif getvar("$slyQW['Chris_caught']") < 10 and getvar("$christinaQW['subpath']") >= 6>>
+			<<elseif getvar("$slyQW['Chris_caught']") < 10 and $q.christina?.get('subpath') >= 6>>
 				<<if rand(1, 2) == 1>>
 					<<setinit $slyQW['Chris_caught'] += 1>>
 					<<setinit $slyQW['Chris_peeking'] = 1>>
 				<</if>>
-			<<elseif getvar("$slyQW['Chris_caught']") == 10 and getvar("$christinaQW['subpath']") >= 6>>
-				<<if getvar("$christinaQW['subpath']") == 6>>
-					<<setinit $christinaQW['subpath'] = 7>>
+			<<elseif getvar("$slyQW['Chris_caught']") == 10 and $q.christina?.get('subpath') >= 6>>
+				<<if $q.christina?.get('subpath') == 6>>
+					<<run $q.christina.set('subpath',7)>>
 
 				<</if>>
 				<<setinit $slyQW['Chris_peeking'] = 1>>
@@ -182,7 +182,7 @@
 	<<set $menu_off = 1>>
 	<center><video autoplay loop src="images/shared/sex/blowjob/kotovbj'+rand(110, 114)+'.mp4"></video></center>
 	He grabs his dick with one hand, the back of your head with his other hand, and lines the tip of it up with your lips.
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<p>You try to keep your lips pressed tightly shut, but he forces his way in, trying to fit the whole thing down your throat all at once! Almost immediately you find yourself unable to breathe, gagging and drooling all over his cock.</p>
 	<<else>>
 		Submitting to him entirely, you open your mouth as wide as you can while staring straight into his eyes. Without any hesitation, he tries to shove it straight down your throat, making your eyes water as you drool all over his cock trying to breathe.
@@ -219,13 +219,13 @@
 	<center><video autoplay loop src="images/shared/sex/vag/cowgirl/hard'+rand(1, 4)+'.mp4"></video></center>
 	<<gs 'Zvereva_Sly_sex' 'sly_vibe'>>
 	<<set 'Sitting on his bed, he pulls you onto his lap, lines you up and shoves his cock in hard, without any attempt to be gentle. ' + iif(pcs_vag = 0, 'You feel your hymen rip, you're no longer a virgin. ','') + '"Start shaking those hips," he says, laying back with his arms behind his head.'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		You reluctantly move your hips back and forth until he seems to get annoyed at your pace. Grabbing your hips, he takes over, thrusting in and out as he pulls you forward and pushes you back.
 	<<else>>
 		You happily start bouncing up and down on his cock. You let out a few loud moans, partly because it feels good, but mostly to make him happy. Eventually he takes over, grabbing your hips and thrusting in and out as he pulls you forward and pushes you back.
 	<</if>>
 	<<gs 'Zvereva_Sly_sex' 'christina_peek'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		Feeling a bit like a fuck toy, you try to ignore the sloshing sounds coming from your pussy, telling yourself over and over how this isn''t exciting you.
 	<<else>>
 		You lose yourself in the feeling of his cock stretching you out, the sounds of wet slaps filling the room each time your crotch collides with his.
@@ -249,7 +249,7 @@
 	<center><video autoplay loop src="images/shared/sex/vag/doggy/kotovsex'+rand(10, 13)+'.mp4"></video></center>
 	<<gs 'Zvereva_Sly_sex' 'sly_vibe'>>
 	<<set 'He flips you onto your hands and knees and just slams his cock inside without warning. ' + iif(pcs_vag = 0, 'You feel your hymen rip, you're no longer a virgin. ','') + 'He presses your face into the bed and, finding his rythm, pounds away.'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		You grunt into the blankets with each thrust, annoyed at how your body reacts to the unwanted stimulus. Even with your face smashed into the blankets, you can hear the wet sounds your pussy makes as he plunges in and out of you.
 	<<else>>
 		You reach behind with both hands and spread yourself wide, to give him easier access. Even with your face smashed into the blankets, you can hear the wet sounds your pussy makes as he plunges in and out of you.
@@ -280,7 +280,7 @@
 		<<set 'Sly pushes you to your stomach and pushes his way inside. ' + iif(pcs_vag = 0, 'You feel your hymen rip, you're no longer a virgin. ','') + 'He starts fucking you hard, giving you no chance to adjust to the speed of his thrusts.'>>
 		<p>As you think he's going to ease up, instead the pace picks up and Sly is now violently thrusting into you. The pain is making you teary-eyed as you're not able to handle the pounding.</p>
 	<<else>>
-		<<if getvar("$christinaQW['fight']") == -1>>
+		<<if $q.christina?.get('fight') == -1>>
 			<<set '"W - Wait..." you manage to yell out before as he grabs hold of the back of your head pushes you down onto your stomach , facefirst into the bed. "I - I..." You take too long to utter a word as he enters you without pardon. ' + iif(pcs_vag = 0, 'You feel your hymen rip, you're no longer a virgin, as ','') + 'Sly plunges deep into your pussy, leaving you barely able to keep in control of yourself.'>>
 		<<else>>
 			He grabs hold of you and throws you on the bed with ease. You try to squirm into a more pleasant position, but he's got you firmly held on your stomach with your face down, not letting you move an inch in any direction.
@@ -305,7 +305,7 @@
 	<<set $menu_off = 1>>
 	<<video "shared/sex/anal/doggy/kotovsexanal11.mp4">>
 	<<gs 'Zvereva_Sly_sex' 'sly_plug'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		Sly forces you on your hands and knees as he gets in position behind you, pushing his cock inside your ass. Within seconds he's pounding you, disregarding your shrieks and even slapping your buttcheeks as your ass is getting stretched out.
 	<<else>>
 		<<if rand(1, 2) == 1>>
@@ -334,7 +334,7 @@
 	"I'm going to enjoy this," he grunts as he forces himself on top of you. He scoots forward, holding your head down with one hand while pushing his cock inside of you with his other. Without giving you a chance to adjust, he picks up his pace and before you know it he's plowing you.
 	Your shrieks are muffled by the blankets on the bed, which your face is smushed into. He seems to enjoy the noise, because he reaches around, underneath you, and starts pinching your nipples. It hurts, and your screams grow even louder.
 	<<gs 'Zvereva_Sly_sex' 'christina_peek'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		You cry for it to stop, but he doesn''t pay you any attention, using you for as a human fleshlight for quite some time.
 	<<else>>
 		You beg for more, and he complies, more for his own pleasure than any need to please you. The humiliation of being treated as a human fleshlight only makes you more aroused.
@@ -354,13 +354,13 @@
 	<<set $menu_off = 1>>
 	<<video "shared/sex/anal/piledriver/kotovsexanal36.mp4">>
 	<<gs 'Zvereva_Sly_sex' 'sly_plug'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<p>He pushes you onto your back, grabs your ankles, and pushes them behind your ears. Without hesitation, he plunges in full hilt. "S-Stop! It hurts," you cry out, but he pays no heed. Each time he slams down, he grunts, but draws a shriek out of you.</p>
 	<<else>>
 		<p>He pushes you onto your back, grabs your ankles, and pushes them behind your ears. Without hesitation, he plunges in full hilt. "Yes! More," you cry out. Each time he slams down, he grunts, but draws a shriek out of you.</p>
 	<</if>>
 	<<gs 'Zvereva_Sly_sex' 'christina_peek'>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		The sex is hard and fast. You hate it, but your body seems to respond to the pain by turning it into pleasure. Due to the awkward position your body is in, your own juices keeps splashing in your face until you're soaked.
 	<<else>>
 		The sex is hard and fast. You love it, and your body seems to respond to the pain by turning it into pleasure. Due to the awkward position your body is in, your own juices keeps splashing in your face until you're soaked.
@@ -393,7 +393,7 @@
 <</if>>
 <<if $location_var[$here][0] == 'swallow_cum_1'>>
 	<<set $menu_off = 1>>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<<video "shared/sex/cum/mouth/yuck1.mp4">>
 		Sly sits you up, puts the tip of his cock in your mouth, and says "Swallow it all."
 		You give him an angry look, but before you can refuse, he is already pumping his seed into your mouth. You do your best to swallow his hateful seed without spitting it out, but cannot manage to keep the revulsion off your face.

+ 9 - 28
sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_events.tw

@@ -17,26 +17,7 @@
 <!-- !!slyQW['Chris_caught'] - increases when she spies on you, the higher it gets, the bolder she gets about doing it-->
 <!-- !!slyQW['Chris_peeking'] - 0 she doesnt watch you that day, 1 she does, 2 just keeps Sveta from being surprised every change in sex acts-->
 <!-- !!slyQW['Chris_peek_daystart'] - prevents more than one roll a day to see if Chris going to watch you and Sly-->
-<<if $location_var[$here][0] == 'cikl'>>
-	<!-- !!failsafe, should be used whenever adding or subtracting with bully events-->
-	<<if $npcs.get('A18','rel') > 20>>
-		<<gs 'npc_relationship' 'set' 'A18' '20'>>
-	<</if>>
-	<<if getvar("$christinaQW['set_bully']") == 1>>
-		<<if getvar("$christinaQW['bully']") < 1>>
-			<<setinit $christinaQW['bully'] = 1>>
-
-		<</if>>
-		<<if getvar("$christinaQW['bully']") > 99>>
-			<<setinit $christinaQW['bully'] = 99>>
-
-		<</if>>
-	<</if>>
-<</if>>
 <<if $location_var[$here][0] == 'christina_bu_1'>>
-	<<passageType 'quest'>>
-	<<setinit $christinaQW['set_bully'] = 1>>
-	<<setinit $christinaQW['bully'] = 50>>
 	<<image "locations/pavlovsk/school/events/nastymessage.jpg">>
 	<p>
 		It's your first day back to school, and <<npc 'A18'>><</npc>> has decided to welcome you as only she could.
@@ -45,7 +26,7 @@
 	<<actCLA 'Say nothing'>>
 		<<set $menu_off = 1>>
 		<<set $pc.pcs_mood -= 10>>
-		<<setinit $christinaQW['bully'] += 1>>
+		<<run $q.christina.inc('bully',1)>>
 		<<image "locations/pavlovsk/school/events/nastymessage2.jpg">>
 		<p>As much as you want to say something, you know it won't do any good.</p>
 		<p>
@@ -66,7 +47,7 @@
 	<<actCLA 'Say something'>>
 		<<set $menu_off = 1>>
 		<<set $pc.pcs_mood += 10>>
-		<<setinit $christinaQW['bully'] -= 1>>
+		<<run $q.christina.dec('bully',1)>>
 		<<image "locations/pavlovsk/school/events/nastymessage2.jpg">>
 		<p>
 			Though you know it won't stop her, you cannot resist standing up for yourself.
@@ -94,14 +75,14 @@
 	<<if $wardrobe.pantyworntype != 'none'>>
 		<<image "locations/pavlovsk/school/bully/fall_panties.jpg">>
 		<<act 'Say nothing'>>
-			<<setinit $christinaQW['bully'] += 2>>
+			<<run $q.christina.inc('bully',2)>>
 			Your face burns as you imagine everybody in school looking at a picture of your panties, but she will do it no matter what you say, so you just quietly gather your fallen books and walk away.
 			<<act 'Leave'>>
 				<<gt 'gschool_grounds' 'main'>>
 			<</act>>
 		<</act>>
 		<<act 'Say something'>>
-			<<setinit $christinaQW['bully'] -= 2>>
+			<<run $q.christina.dec('bully',2)>>
 			<p>Your face burns as you imagine everybody in school looking at a picture of your panties, and can't stop yourself from saying "You pervert. Do you get off looking at girls panties?"</p>
 			<p><<npc 'A18'>><</npc>> just shrugs and responds with "You're the one showing them to the world. I bet you did it on purpose so people could see your
 			<<if $wardrobe.pantyworntype == 'gm'>>
@@ -119,14 +100,14 @@
 		<<gs 'fame' 'pav' 'sex' 'tiny' 'local'>>
 		<<image "locations/pavlovsk/school/bully/fall_nopanties.jpg">>
 		<<act 'Say nothing'>>
-			<<setinit $christinaQW['bully'] += 3>>
+			<<run $q.christina.inc('bully',3)>>
 			Your face burns as you imagine everybody in school looking at a picture of your pussy on display, but she will do it no matter what you say, so you just quietly gather your fallen books and walk away.
 			<<act 'Leave'>>
 				<<gt 'gschool_grounds' 'main'>>
 			<</act>>
 		<</act>>
 		<<act 'Say something'>>
-			<<setinit $christinaQW['bully'] -= 3>>
+			<<run $q.christina.dec('bully',3)>>
 			<p>Your face burns as you imagine everybody in school looking at a picture of your pussy on display, and can't stop yourself from saying "You pervert. Do you get off taking upskirt pictures?"</p>
 			<p><<npc 'A18'>><</npc>> just shrugs and responds with "You're the one not wearing panties. I bet you did it on purpose so people could see your $pc_desc['pubes'] pussy, slut." She finishes sending the picture, gives you a smirk, and walks away.</p>
 			All you can do at this point is gather your fallen stuff and head out.
@@ -146,7 +127,7 @@
 	<</act>>
 	<<act 'Pick a fight'>>
 		<<set $menu_off = 1>>
-		<<setinit $christinaQW['pre_fight'] = 1>>
+		<<run $q.christina.set('pre_fight',1)>>
 		<<image "characters/shared/headshots_main/big18.jpg">>
 		You make your decision. You decide you're going after her when school ends, when no teachers are around to stop it but everybody else will see.
 		<<act 'Return to break'>>
@@ -155,7 +136,7 @@
 	<</act>>
 	<<act 'Find something to blackmail her with'>>
 		<<set $menu_off = 1>>
-		<<setinit $christinaQW['pre_bm'] = 1>>
+		<<run $q.christina.set('pre_bm',1)>>
 		<<image "characters/shared/headshots_main/big18.jpg">>
 		You make your decision. You need to keep your eyes and ears open to find something to use against her.
 		<<act 'Return to break'>>
@@ -173,7 +154,7 @@
 	<</act>>
 	<<act 'Try and become her new pet'>>
 		<<set $menu_off = 1>>
-		<<setinit $christinaQW['subpath'] = 1>>
+		<<run $q.christina.set('subpath',1)>>
 		<<image "characters/shared/headshots_main/big18.jpg">>
 		You make your decision. You should head to the beach where she trains Lina on weekday afternoons and see what happens.
 		<<act 'Return to break'>>

+ 10 - 10
sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_house_events.tw

@@ -20,8 +20,8 @@
 <<if $location_var[$here][0] == 'Chris_walk_home'>>
 	<<set $menu_off = 1>>
 	<<image "characters/shared/headshots_main/big18.jpg">>
-	<<if getvar("$christinaQW['subpath']") == 4>>
-		<<setinit $christinaQW['subpath'] = 5>>
+	<<if $q.christina?.get('subpath') == 4>>
+		<<run $q.christina.set('subpath',5)>>
 		"About time, bitch. Come on, lets go." She starts walking away at a brisk pace. You follow, making sure to stay at least one step behind her.
 		<<act 'Follow her'>>
 			<<set $time.minutes += 10>>
@@ -113,9 +113,9 @@
 			<<gt 'Zvereva_house_events' 'bed_chat'>>
 		<</act>>
 	<</act>>
-	<<if getvar("$christinaQW['lar_lina']") == 0>>
+	<<if $q.christina?.get('lar_lina') == 0>>
 		<<act 'Ask about Lariska'>>
-			<<setinit $christinaQW['lar_lina'] = 1>>
+			<<run $q.christina.set('lar_lina',1)>>
 			<<image "characters/pavlovsk/school/girl/<<npc 'A18'>><</npc>>/home/bedroom/bed_chat.jpg">>
 			<p>"What made you decide to take Lariska in?"</p>
 			"Pfft. She doesn''t know how to stand up for herself. When we were little, I found her getting bullied by some older boys and stepped in. Kicked one right in the balls, and the rest ran off. She just kinda started following me around after that."
@@ -124,9 +124,9 @@
 			<</act>>
 		<</act>>
 	<</if>>
-	<<if getvar("$christinaQW['lar_lina']") == 1>>
+	<<if $q.christina?.get('lar_lina') == 1>>
 		<<act 'Ask about Lina'>>
-			<<setinit $christinaQW['lar_lina'] = 2>>
+			<<run $q.christina.set('lar_lina',2)>>
 			<<image "characters/pavlovsk/school/girl/<<npc 'A18'>><</npc>>/home/bedroom/bed_chat.jpg">>
 			<p>"What about Lina?"</p>
 			<p>"That dumb bitch? She was friends with Lariska first, followed her around until Lariska started following me. At first she would ask Lariska what she should do, but Lariska is bad at making decisions, so when I started telling her what to do, she just automatically did it."</p>
@@ -145,7 +145,7 @@
 			<</act>>
 		<</act>>
 	<</if>>
-	<<if getvar("$slyQW['met']") == 2 and getvar("$christinaQW['subpath']") < 6 and getvar("$slyQW['Chris_caught']") == 5>>
+	<<if getvar("$slyQW['met']") == 2 and $q.christina?.get('subpath') < 6 and getvar("$slyQW['Chris_caught']") == 5>>
 		<<act 'Inquire about the moans'>>
 			<<image "characters/pavlovsk/school/girl/<<npc 'A18'>><</npc>>/home/bedroom/bed_chat.jpg">>
 			"So... sometimes when I'm getting fucked by your brother, I hear these moans."
@@ -156,14 +156,14 @@
 			She gives you a dangerous look, but you can see her emotions are all over the place. "Of course I do, he's my brother."
 			'"You said you don't like your brothers," you say gently. <span class="innerThought">Maybe she's in denial?</span>
 			<p>"Yeah. I also said he is the only one of them I actually like. Don't you ever listen, moron?!" </p>
-			<<if getvar("$christinaQW['fight']") == -1>>
+			<<if $q.christina?.get('fight') == -1>>
 				<p>"I have been listening, <i>Mistress</i>. I've been listening to you watch us. While masturbating. Maybe you would want to join?"</p>
 			<<else>>
 				"I'm sorry Mistress. I'm just trying to say... you could join us, if you wanted."
 			<</if>>
 			<p>"What are you trying to say, slut? That I want to fuck him?! My brother?! That's disgusting!"</p>
 			<<act 'Encourage her'>>
-				<<setinit $christinaQW['subpath'] = 6>>
+				<<run $q.christina.set('subpath',6)>>
 				<<image "characters/pavlovsk/school/girl/<<npc 'A18'>><</npc>>/home/bedroom/bed_chat.jpg">>
 				"It's ok, Mistress. I would understand if you did, he is a good catch, after all."
 				Rather than yell at you some more, she bites her lip, seemingly lost in thought.
@@ -174,7 +174,7 @@
 			<</act>>
 		<</act>>
 	<</if>>
-	<<if getvar("$slyQW['met']") == 0 and getvar("$christinaQW['subpath']") < 6>>
+	<<if getvar("$slyQW['met']") == 0 and $q.christina?.get('subpath') < 6>>
 		<<act 'Ask about Sly'>>
 			<<setinit $slyQW['met'] = 1>>
 			<<image "characters/pavlovsk/school/girl/<<npc 'A18'>><</npc>>/home/bedroom/bed_chat.jpg">>

+ 17 - 17
sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/Zvereva_sub_1.tw

@@ -49,8 +49,8 @@
 				<<setinit $LariskaQW['story'] = 4>>
 				<<set $sauna_stripped = 0>>
 				<<gs 'clothing' 'strip_all'>>
-				<<setinit $christinaQW['subpath'] = 2>>
-				<<setinit $christinaQW['submit'] = 1>>
+				<<run $q.christina.set('subpath',2)>>
+				<<run $q.christina.set('submit',1)>>
 				<<gs 'fame' 'pav' 'sex' 3>>
 				<<act 'Beg her not to'>>
 					<<image "locations/pavlovsk/lake/event/coverupnaked.jpg">>
@@ -100,8 +100,8 @@
 				You feel the blood drain from your face as you realize she's serious, and will likely torment you for the rest of the school year. It will save your reputation though.
 				<p>"Will you tell Lariska she can hang out with me outside of school if I do?"</p>
 				"Sure, she can help train you..." she says evilly.
-				<<setinit $christinaQW['submit'] = 1>>
-				<<setinit $christinaQW['subpath'] = 2>>
+				<<run $q.christina.set('submit',1)>>
+				<<run $q.christina.set('subpath',2)>>
 				<<setinit $LariskaQW['story'] = 4>>
 				<<act 'Agree'>>
 					<<set $pc.pcs_mood -= 10>>
@@ -146,8 +146,8 @@
 				<</if>>
 				<<set $sauna_stripped = 0>>
 				<<gs 'clothing' 'strip_all'>>
-				<<setinit $christinaQW['subpath'] = 2>>
-				<<setinit $christinaQW['submit'] = 1>>
+				<<run $q.christina.set('subpath',2)>>
+				<<run $q.christina.set('submit',1)>>
 				<<gs 'fame' 'pav' 'sex' 3>>
 				<<act 'Beg her not to'>>
 					<<image "locations/pavlovsk/lake/event/coverupnaked.jpg">>
@@ -198,8 +198,8 @@
 				You feel the blood drain from your face as you realize she's serious, and will likely torment you for the rest of the school year. It will save your reputation though.
 				<p>"Will you tell Lariska she can hang out with me outside of school if I do?"</p>
 				"Sure, she can help train you..." she says evilly.
-				<<setinit $christinaQW['submit'] = 1>>
-				<<setinit $christinaQW['subpath'] = 2>>
+				<<run $q.christina.set('submit',1)>>
+				<<run $q.christina.set('subpath',2)>>
 				<<act 'Agree'>>
 					<<set $pc.pcs_mood -= 10>>
 					<<gs 'pain' 1 'labia' 'kick'>>
@@ -221,8 +221,8 @@
 	<<set $menu_off = 1>>
 	<<image "locations/pavlovsk/school/gym/locker/chrispeek.jpg">>
 	After your gym class you go to the locker room with the rest of the girls. <<npc 'A18'>><</npc>> theatrically moves over to you, and the eyes of all the girls in the locker room are on you now.
-	<<if getvar("$christinaQW['subpath']") == 2>>
-		<<if getvar("$christinaQW['submit']") == 1>>
+	<<if $q.christina?.get('subpath') == 2>>
+		<<if $q.christina?.get('submit') == 1>>
 			She leans in close and hisses into your ear: "Time to see if you can keep your promise. Either that or every boy in school is going to see those pictures."
 			<p>"B-But what about the girls here?"</p>
 			Reaching for her phone, she says "They'll do as I say."
@@ -233,7 +233,7 @@
 			<p>Getting right in your face she says, "Want me to fuck you up again? Do as you're told from now on, or else!"</p>
 			<p>You quickly lay a hand on her arm. "O-Ok," is all you can manage to get out.</p>
 		<</if>>
-		<<setinit $christinaQW['subpath'] = 3>>
+		<<run $q.christina.set('subpath',3)>>
 	<</if>>
 	<<act 'Continue'>>
 		<<if getvar("$zverhumiliation") < 9>>
@@ -281,7 +281,7 @@
 <<if $location_var[$here][0] == '0'>>
 	<<set $menu_off = 1>>
 	<<image "locations/pavlovsk/school/gym/locker/chrispeek.jpg">>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		"Well, Bitch. Since you get into trouble with your mouth so much, I brought you a present to keep it occupied. You can thank me later."
 		<p><<npc 'A18'>><</npc>> pulls a dildo out of her sports bag, and sticks it on the shower wall at groin level. "Start sucking, $pc.name_nick, if you do a good job maybe I'll forgive you. Or do you want me to kick your face in again?"</p>
 	<<else>>
@@ -294,7 +294,7 @@
 
 		<</if>>
 		<<image "locations/pavlovsk/school/gym/sex/<<npc 'A18'>><</npc>>/dildobj.jpg">>
-		<<if getvar("$christinaQW['fight']") == -1>>
+		<<if $q.christina?.get('fight') == -1>>
 			You stare at her a moment, but the memory of her beating your ass is too fresh for you to resist. You squat down in front of the dildo, and take it in your hands before carefully licking it and closing your lips around it. You expected an awful rubber taste, but it's actually not that bad. You give the dildo a blowjob as all the girls in your class watch you, while <<npc 'A18'>><</npc>> laughs. After a few minutes, she has seen enough and allows you to change.
 		<<else>>
 			You nod obediently, not wanting to anger her. You squat down in front of the dildo, and take it in your hands before carefully licking it and closing your lips around it. You expected an awful rubber taste, but it's actually not that bad. You give the dildo a blowjob as all the girls in your class watch you, while <<npc 'A18'>><</npc>> laughs. After a few minutes, she has seen enough and allows you to change.
@@ -309,7 +309,7 @@
 <<if $location_var[$here][0] == '1'>>
 	<<set $menu_off = 1>>
 	<<image "locations/pavlovsk/school/gym/locker/chrispeek.jpg">>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		"Bitch, it's no wonder I kicked your ass so easily. Your body looks like you only do girly sports, you should bulk up a bit."
 	<<else>>
 		"Bitch, since I own your wimpy little body, it's time I bulked it up a bit."
@@ -332,7 +332,7 @@
 <<if $location_var[$here][0] == '2'>>
 	<<set $menu_off = 1>>
 	<<image "locations/pavlovsk/school/gym/locker/chrispeek.jpg">>
-	<<if getvar("$christinaQW['fight']") == -1>>
+	<<if $q.christina?.get('fight') == -1>>
 		<<npc 'A18'>><</npc>> takes the by now familiar dildo out of her sports bag again, and tells you to squat. Afraid to stand up against her after what happened last time, you do as she says.
 	<<else>>
 		<<npc 'A18'>><</npc>> takes the by now familiar dildo out of her sports bag again, and tells you to squat. Afraid to disappoint her, you do as she says.
@@ -850,8 +850,8 @@
 <<if $location_var[$here][0] == 'default'>>
 	<<set $menu_off = 1>>
 	<<image "locations/pavlovsk/school/gym/locker/chrispeek.jpg">>
-	<<if getvar("$christinaQW['subpath']") == 3>>
-		<<setinit $christinaQW['subpath'] = 4>>
+	<<if $q.christina?.get('subpath') == 3>>
+		<<run $q.christina.set('subpath',4)>>
 		<<npc 'A18'>><</npc>> grins as you walk up to her meekly, expecting your punishment. "Sorry bitch, I'm busy right now. Meet me after school, we will continue this at my house."
 		<p>She quickly heads into the showers, and for a second you feel unsure as to what to do. The other girls in the room smirk at your behaviour; you'd gotten so used to <<npc 'A18'>><</npc>>'s abuse that you have no idea how to posture yourself when she's not here. You're deeply embarrassed when you try to imagine what they must think of you, and you do your best to ignore them.</p>
 	<<else>>

+ 23 - 0
sugarcube/src/autogenerated/npcs/npcQuests/Zvereva/quest_christina.tw

@@ -0,0 +1,23 @@
+:: quest_christina
+<<switch $location_var[$here][0]>>
+	<<case 'start'>>
+        <<set $q.christina.bully = 50>>
+        <<set $q.christina.set_bully = 1>>
+	<<case 'stageDescription'>>
+		<<switch $location_var[$here][1]>>
+			<<case 0>>
+				<<npc 'A18'>><</npc>> is your school bully.
+		<</switch>>
+	<<case 'update'>>
+        <<switch $location_var[$here][1]>>
+            <<case 'bully'>>
+                <<if !$q.christina.set_bully>>
+                    <<set $q.christina.bully = $location_var[$here][2]>>
+                <<else>>
+                    <<set $q.christina.bully = Math.clamp($q.christina.bully,1,99)>>
+                <</if>>
+        <</switch>>
+    <<case 'vars'>>
+	<<case 'event'>>
+<</switch>>
+

+ 1 - 1
sugarcube/src/autogenerated/school/gschool_chats.tw

@@ -296,7 +296,7 @@
 				<<gs 'npc_relationship' 'modify' 'A148' -1>>
 				<<gs 'npc_relationship' 'modify' 'A149' -1>>
 				<<gs 'npc_relationship' 'modify' 'A165' -1>>
-				<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+				<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 					As you approach them, you notice some of them giving you a disapproving look as Lizaveta takes your picture and starts texting, obviously sending the picture around. Vicky smirks before whispering something to Vanya and Katja.
 				<<else>>
 					<p>As you approach them, you notice some of them giving you a disapproving look as <<npc 'A18'>><</npc>> starts to laugh. "What are you wearing? Did mommy dress you? I mean we're all glad she did, the more clothes you wear that hide that hideous body the better." Lariska and Lina add their own snide remarks similar to <<npc 'A18'>><</npc>>'s and several other students laugh at her comments as Lizaveta takes your picture and starts texting, obviously sending the picture around. Vicky smirks before whispering something to Vanya and Katja.</p>

+ 6 - 6
sugarcube/src/autogenerated/school/gschool_cheerleading.tw

@@ -561,7 +561,7 @@
 					<</act>>
 				<</act>>
 			<</act>>
-		<<elseif rand(0,4) == 0 and getvar("$cheerleadingQW['practice_count']") <= 3 and getvar("$christinaQW['blackmail']") == 0 and getvar("$christinaQW['fight']") != 1>>
+		<<elseif rand(0,4) == 0 and getvar("$cheerleadingQW['practice_count']") <= 3 and $q.christina?.get('blackmail') == 0 and $q.christina?.get('fight') != 1>>
 			<<image "locations/pavlovsk/school/afterschool/cheerleading/events/christina_ambush.jpg">>
 			<<set 'The locker room is quiet as you enter and head to your locker, but panic when you can't find your ' + iif(cheerleadingQW['quest_stage'] = 3,'cheerleading uniform','clothes') + ' inside. "Looking for something?"'>>
 			<<set 'Before you can react to the voice, your towel is ripped away from you. You turn to see a naked <<npc 'A18'>><</npc>> sitting on the bench with your ' + iif(cheerleadingQW['quest_stage'] = 3,'uniform in her hand','clothes in a crumpled pile at her feet') + ', smiling at you mockingly.'>>
@@ -573,7 +573,7 @@
 				"These rags are pretty tacky. I''d be doing you a favour by binning them, but if you want them back then you have to do something for me first."
 
 			<</if>>
-			<<if getvar("$christinaQW['submit']") == 1 or getvar("$christinaQW['subpath']") >= 2>>
+			<<if $q.christina?.get('submit') == 1 or $q.christina?.get('subpath') >= 2>>
 				<<act 'Do as you`re told'>>
 					<<image "locations/pavlovsk/school/afterschool/cheerleading/events/sex/christina_force.jpg">>
 					Having already submitted to her, you have no desire to fight back and obidiently get on your knees in front of her in a submissive pose.
@@ -596,7 +596,7 @@
 				<</act>>
 			<<else>>
 				<<act 'Submit'>>
-					<<setinit $christinaQW['bully'] += 2>>
+					<<run $q.christina.inc('bully',2)>>
 					<<image "locations/pavlovsk/school/afterschool/cheerleading/events/christina_ambush.jpg">>
 					<p>The idea of submitting to her and letting her do whatever she wants with you sounds appealing to you. "What do you want me to do?" you ask in your most submissive tone.</p>
 					<<set 'She looks at you with a satisfied smirk. "Be a good little bitch, get on your knees and eat my pussy!" she barks as she ' + iif(cheerleadingQW['quest_stage'] = 3,'tosses your uniform across the room and','') + ' drags you in front of her.'>>
@@ -624,7 +624,7 @@
 						<p><<npc 'A18'>><</npc>> just laughs. "What does it look like? $pc.name_nick offered to eat my pussy and you're interrupting us, so if you don't mind..." She makes a shooing motion with her hand as Albina stares at you.</p>
 						<<act 'She forced me'>>
 							<<set $time.minutes += 5>>
-							<<setinit $christinaQW['bully'] -= 2>>
+							<<run $q.christina.dec('bully',2)>>
 							<<image "locations/pavlovsk/school/afterschool/cheerleading/events/albina_rescue.jpg">>
 							<<set '"She's lying!" you exclaim while looking up pleadingly at Albina. "She stole my ' + iif(cheerleadingQW['quest_stage'] = 3,'cheerleading uniform','clothes') + ' and forced me to eat her out to get ' + iif(cheerleadingQW['quest_stage'] = 3,'it','them') + ' back!"'>>
 							<p>"I fucking knew it! No way $pc.name_nick would ever willingly go down on you," Albina replies while pulling you to your feet and shielding you behind her. "You're fucking despicable, you know that? Stay the fuck away from $pc.name_nick or we'll be having a chat about your 'extra curricular' activities..."</p>
@@ -638,7 +638,7 @@
 						<</act>>
 						<<act 'I wanted to do it'>>
 							<<set $time.minutes += 5>>
-							<<setinit $christinaQW['bully'] += 2>>
+							<<run $q.christina.inc('bully',2)>>
 							<<gs 'arousal' 'cuni_give' 5>>
 							<<image "locations/pavlovsk/school/afterschool/cheerleading/events/sex/christina_force.jpg">>
 							You avoid making eye contact with Albina. "It's... it's true. I want to do it..." you sheepishly answer and Albina is taken aback in confusion.
@@ -663,7 +663,7 @@
 					<</if>>
 				<</act>>
 				<<act 'Refuse'>>
-					<<setinit $christinaQW['bully'] -= 2>>
+					<<run $q.christina.dec('bully',2)>>
 					<<image "locations/pavlovsk/school/afterschool/cheerleading/events/christina_ambush.jpg">>
 					<p>"Fuck you, I'm not one of your little lapdogs that jumps to do your bidding!" you retort in defiance, which causes her to smile.</p>
 					<p>"It's nice having people do what you tell them, like you will right now. Albina isn't here to save you now and you won't be telling her a damn thing if you want to keep your place on the squad. Right now, your place is between my legs eating my pussy!"</p>

+ 7 - 7
sugarcube/src/autogenerated/school/gschool_events.tw

@@ -865,7 +865,7 @@
 		<<gs 'arousal' 'end'>>
 	<<elseif getvar("$break_rand") == 22>>
 		<<image "locations/pavlovsk/school/events/handstand.jpg">>
-		<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+		<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 			As you stop by your locker, you see some girls from your brother''s class doing handstands against the wall. Everytime their skirts flip down, the boys watching cheer. Giggling, they keep doing it until a teacher is spotted, and everybody scatters.
 		<<else>>
 			As you stop at your locker, you overhear <<npc 'A18'>><</npc>> berating Lariska and Lina for yesterday''s practice. Something about how worthless they are and how it will make them lose their first game if they play that badly. They try to appologise and promise to do better but <<npc 'A18'>><</npc>> is having none of it. She tells the girls to do hand stands in the hallway until the next class. When Lariska points out their skirts will fall up and everyone will see, <<npc 'A18'>><</npc>> tells them they should have thought of that and played better.
@@ -886,9 +886,9 @@
 	<<elseif getvar("$break_rand") == 25>>
 		<<image "locations/pavlovsk/school/events/makeupgirl.jpg">>
 		As you walk down the hallway, you see Bella sitting on one of the window ledges, ignoring her classmates as she touches up her makeup with her compact. You admit she is pretty and always looks nice, but she is such a snob, acting like she is better than everyone else.
-	<<elseif getvar("$break_rand") == 26 and getvar("$christinaQW['fight']") < 1 and getvar("$christinaQW['blackmail']") < 2>>
+	<<elseif getvar("$break_rand") == 26 and $q.christina?.get('fight') < 1 and $q.christina?.get('blackmail') < 2>>
 		<<image "locations/pavlovsk/school/events/nastymessage.jpg">>
-		<<if getvar("$christinaQW['subpath']") > 1>>
+		<<if $q.christina?.get('subpath') > 1>>
 			As you walk down the hallway, you see <<npc 'A18'>><</npc>> writing stuff on your locker. You know your place now, so you walk up to her, keeping your eyes on the floor.
 			"Hi Pet. Somebody took the artwork off your locker, so I added it back for you. Now thank me, and then tell me why the last one was removed."
 			<<act 'Thank her'>>
@@ -906,7 +906,7 @@
 			<</act>>
 			<<act 'Avoid eye contact'>>
 				<<set $menu_off = 1>>
-				<<setinit $christinaQW['bully'] += 2>>
+				<<run $q.christina.inc('bully',2)>>
 				<<image "locations/pavlovsk/school/events/nastymessage2.jpg">>
 				Keeping your eyes on the floor, you try to walk by but she notices you.
 				<p>"Hey $pc.name_nick. Somebody took the artwork off your locker, so I added it back for you. No need to thank me."</p>
@@ -915,7 +915,7 @@
 			<</act>>
 			<<act `'Yell at '+$npcs.get('A18','usedname')`>>
 				<<set $menu_off = 1>>
-				<<setinit $christinaQW['bully'] -= 2>>
+				<<run $q.christina.dec('bully',2)>>
 				<<image "characters/shared/headshots_main/big18.jpg">>
 				<p>You head straight at her and yell "What the fuck, <<npc 'A18'>><</npc>>!" Other kids in the hallway start drifting in your direction, sensing a fight is about to happen.</p>
 				<p>"Oh, hey $pc.name_nick. Somebody took the artwork off your locker, so I added it back for you. No need to thank me." She gives you a dangerous look despite the calm tone in her voice.</p>
@@ -948,7 +948,7 @@
 		<</if>>
 	<<elseif getvar("$break_rand") == 30>>
 		<<image "locations/pavlovsk/school/events/skirtupback.jpg">>
-		<<if getvar("$christinaQW['blackmail']") >= 1>>
+		<<if $q.christina?.get('blackmail') >= 1>>
 			You see <<npc 'A18'>><</npc>> walk past Mr. Nikolaevich and as she does, she briefly flips up the back of her skirt to show off her panty clad ass. Mr. Nikolaevich gives her a stern look but otherwise doesn''t say anything. You roll your eyes and wonder how you were the first person that figured out she was fucking him. Or maybe you aren''t, who knows.
 			<<gs 'arousal' 'erotic' 1>>
 			<<gs 'arousal' 'end'>>
@@ -1021,7 +1021,7 @@
 <!-- !!After school events-->
 <<if $location_var[$here][0] == 'afterschool_events'>>
 	<<set $menu_off = 1>>
-	<<if getvar("$CloSkirtShortness") > 0 and getvar("$christinaQW['subpath']") == 0 and getvar("$christinaQW['blackmail']") == 0 and getvar("$christinaQW['fight']") == 0 and rand(1, 4) == 4>>
+	<<if getvar("$CloSkirtShortness") > 0 and $q.christina?.get('subpath') == 0 and $q.christina?.get('blackmail') == 0 and $q.christina?.get('fight') == 0 and rand(1, 4) == 4>>
 		<<gt 'Zvereva_events' 'christina_bu_2'>>
 	<<else>>
 		<<set $break_rand = rand(1,32)>>

+ 1 - 1
sugarcube/src/autogenerated/school/gschool_gossip.tw

@@ -368,7 +368,7 @@
 		"I think she takes singing lessons or something."
 		"With a voice like hers, she probably sucks him off so he doesn''t run out."
 	<<elseif getvar("$chat_rand") == 72>>
-		<<if getvar("$christinaQW['fight']") >= 1>>
+		<<if $q.christina?.get('fight') >= 1>>
 			<p>"Did you hear <<npc 'A18'>><</npc>> got her ass beat?"</p>
 			<p>"I was there! That girl tore <<npc 'A18'>><</npc>> to pieces!"</p>
 			"Good, if anybody had it coming, it was her."

+ 7 - 7
sugarcube/src/autogenerated/school/gschool_grounds.tw

@@ -222,7 +222,7 @@
 		<</act>>
 
 	<</if>>
-	<<if getvar("$christinaQW['pre_fight']") == 1 and getvar("$time.weekday") < 6 and getvar("$time.hour") == 14 and getvar("$time.isSchoolHoliday") == 0>>
+	<<if $q.christina?.get('pre_fight') == 1 and getvar("$time.weekday") < 6 and getvar("$time.hour") == 14 and getvar("$time.isSchoolHoliday") == 0>>
 		<<act `'Attack '+$npcs.get('A18','usedname')`>>
 			<<gt 'Zvereva_events' 'KristinaFight'>>
 		<</act>>
@@ -284,7 +284,7 @@
 				'You see <<link 'Lariska'>><<setn $time.minutes += 1>><<gt  'LariskaGo'>><</link>> impatiently walks back and fourth across the courtyard, as if she's waiting for someone.'
 
 			<</if>>
-			<<if getvar("$christinaQW['subpath']") >= 4 and getvar("$cheerleaders_on") == 0>>
+			<<if $q.christina?.get('subpath') >= 4 and getvar("$cheerleaders_on") == 0>>
 				<<npc 'A18'>><<setn $time.minutes += 1>><<gt  'Zvereva_house_events'  'Chris_walk_home'>><</npc>> is walking across the school courtyard, looking irritated.'
 
 			<</if>>
@@ -353,7 +353,7 @@
 				gs 'show_table', '<<link 'Lariska Gruzdev'>><<setn $time.minutes += 1>><<gt  'LariskaGo'>><</link>>', '5'
 
 			<</if>>
-			<<if getvar("$christinaQW['subpath']") >= 4 and getvar("$cheerleaders_on") == 0>>
+			<<if $q.christina?.get('subpath') >= 4 and getvar("$cheerleaders_on") == 0>>
 				gs 'show_table', <<npc 'A18'>><<setn $time.minutes += 1>><<gt  'Zvereva_house_events'  'Chris_walk_home'>><</npc>>', '5'
 
 			<</if>>
@@ -613,7 +613,7 @@
 	<<set $menu_off = 1>>
 	<<set $time.minutes += 30>>
 	You think you might be able to win, and sign up to participate in the competition. After quickly changing into your running gear you return to the track. The guys are having their race first, and you watch them as you prepare. As expected, Ivan Prokhorov wins. When the guys have finished, it is the girls'' turn.
-	<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+	<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 		<<if getvar("$swinbeggor") == 0>>
 			<p>You find Lina at the starting line with a smile on her face. Seeing you she waves and calls out cheerfully "Good luck, $pc.name_nick!"</p>
 		<<elseif getvar("$swinbeggor") == 1>>
@@ -699,14 +699,14 @@
 		<<else>>
 			You have won the competition three more times and Mr. Pavlovich awards you another trophy.
 		<</if>>
-		<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+		<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 			<<run $npcs.inc('A19','rel',5)>>
 			Lina stands at at the finish line, gasping for breath. Even though you beat her again, she flashes you a bright smile in congratulations.
 		<<else>>
 			<<npc 'A18'>><</npc>> stands nearby glaring at you the whole time, her hands balled into fists. She's seething with rage, realizing she cannot beat you.
 		<</if>>
 	<<elseif getvar("$swinbeggor") == 2 and getvar("$begresult") >= 130>>
-		<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+		<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 			<<gs 'npc_relationship' 'modify' 'A19' 'love'>>
 			Lina stands at at the finish line, gasping for breath. Even though you beat her a second time, she flashes you a bright smile in congratulations.
 		<<else>>
@@ -714,7 +714,7 @@
 			<<npc 'A18'>><</npc>> is gasping for breath at the finish line. She was unable to overtake you, and came second again. <<npc 'A18'>><</npc>> avoids your gaze, not wanting to look you in the eye.
 		<</if>>
 	<<elseif getvar("$swinbeggor") == 1 and getvar("$begresult") >= 130>>
-		<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+		<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 			<<gs 'npc_relationship' 'modify' 'A19' 'love'>>
 			Lina stands at at the finish line, gasping for breath. Even though you beat her, she flashes you a bright smile in congratulations.
 		<<else>>

+ 14 - 14
sugarcube/src/autogenerated/school/gschool_jock_chats.tw

@@ -393,8 +393,8 @@
 				<<gt 'gschool_lessons' 'short_break'>>
 			<</act>>
 		<</act>>
-	<<elseif getvar("$christinaQW['subpath']") >= 2>>
-		<<if getvar("$christinaQW['subpath']") >= 3>>
+	<<elseif $q.christina?.get('subpath') >= 2>>
+		<<if $q.christina?.get('subpath') >= 3>>
 			<p>As you pass by <<npc 'A18'>><</npc>>, she looks at you triumphantly. "Don't forget my little slave! Showers after gym class..."</p>
 			Before you're able to respond, she turns around and walks away.
 		<<else>>
@@ -402,10 +402,10 @@
 			<p>"W-Why? What happens after class?"</p>
 			"Oh, I don't want to ruin the surprise, pet." Throwing one last smirk in your direction, she heads off to her next class.
 		<</if>>
-	<<elseif getvar("$christinaQW['blackmail']") == 1>>
+	<<elseif $q.christina?.get('blackmail') == 1>>
 		<<if getvar("$LariskaQW['story']") == 3>>
 			<<setinit $LariskaQW['story'] = 4>>
-			<<setinit $christinaQW['blackmail'] = 2>>
+			<<run $q.christina.set('blackmail',2)>>
 			Walking up to <<npc 'A18'>><</npc>>, you quietly say "I need to talk to you."
 			<p>"What do you want? I'm busy," she says, not even looking at you.</p>
 			Taking a deep breath, you say "Lariska. I want Lariska."
@@ -417,7 +417,7 @@
 			<p>"Oh, you won't. So long as you keep your word..." you say with a fake smile that doesn't quite reach your eyes. "Now do be a dear and let her know she's free to do whatever she wants outside of school, will you?"</p>
 			"Oh, and if you try and punish her for this, I will know," the threat clear on your face. Turning on your heels, you head off to your next class, smiling.
 		<<else>>
-			<<setinit $christinaQW['blackmail'] = 2>>
+			<<run $q.christina.set('blackmail',2)>>
 			Walking up to <<npc 'A18'>><</npc>>, you quietly say "I need to talk to you."
 			<p>"What do you want? I'm busy," she says, not even looking at you.</p>
 			"Oh, I just wanted you to know I have something you should see." Pulling out your phone and checking to make sure nobody is looking, you show her a picture of her blowing the coach.
@@ -428,7 +428,7 @@
 			<p>Her face turns even more red, if that were possible. "Fine," she spits out. "But I swear, if I even hear about these pictures again, I will break you into tiny fucking pieces!"</p>
 			"Oh, you won''t. So long as you keep your word..." you say with a fake smile that doesn''t quite reach your eyes. Turning on your heels, you head off to your next class, smiling.
 		<</if>>
-	<<elseif getvar("$christinaQW['blackmail']") == 2>>
+	<<elseif $q.christina?.get('blackmail') == 2>>
 		<<if getvar("$LariskaQW['story']") == 3>>
 			<<setinit $LariskaQW['story'] = 4>>
 
@@ -438,7 +438,7 @@
 		"Well don't. We're not friends. You got what you wanted, now leave me alone unless it's important."
 		<p>Giving her your best obvious fake smile you say "Now don't be like that. I thought we were great friends!"</p>
 		"Whatever." Giving you a dirty look, she heads off to her next class, and you do the same, chuckling to yourself.
-	<<elseif getvar("$christinaQW['fight']") == 1>>
+	<<elseif $q.christina?.get('fight') == 1>>
 		<<if getvar("$LariskaQW['story']") == 3>>
 			<<setinit $LariskaQW['story'] = 4>>
 
@@ -464,7 +464,7 @@
 		<</if>>
 	<</if>>
 	<!-- ! Natasha quest line:-->
-	<<if getvar("$christinaQW['fight']") == 1 and getvar("$NatbelQW['FriendLover']") == 2>>
+	<<if $q.christina?.get('fight') == 1 and getvar("$NatbelQW['FriendLover']") == 2>>
 		<<act `'Talk to '+$npcs.get('A18','usedname')`>>
 			<<setinit $NatbelQW['chrispaid'] = 1>>
 			You see <<npc 'A18'>><</npc>> chatting with Lina when as approach. When <<npc 'A18'>><</npc>> notices you, she glares at you and then turns to Lina.
@@ -475,7 +475,7 @@
 			<p><<npc 'A18'>><</npc>> doesn't answer, so you continue. "So we're in agreement then? Unless you want to go another round with me? I hope not, because I won't stop at a simple beating this time!"</p>
 			She nods in agreement before storming off. With a grin on your face, you head to your next class.
 		<</act>>
-	<<elseif getvar("$christinaQW['blackmail']") == 2 and getvar("$NatbelQW['FriendLover']") == 2>>
+	<<elseif $q.christina?.get('blackmail') == 2 and getvar("$NatbelQW['FriendLover']") == 2>>
 		<<act `'Talk to '+$npcs.get('A18','usedname')`>>
 			<<setinit $NatbelQW['chrispaid'] = 1>>
 			You see <<npc 'A18'>><</npc>> chatting with Lina when as approach. When <<npc 'A18'>><</npc>> notices you, she glares at you and then turns to Lina.
@@ -491,12 +491,12 @@
 	<<act 'Time for the next class'>>
 		<<gt 'gschool_lessons' 'short_break'>>
 	<</act>>
-	<<if getvar("$christinaQW['blackmail']") == 0 and getvar("$christinaQW['pre_bm']") == 0 and getvar("$christinaQW['pre_fight']") == 0 and getvar("$christinaQW['fight']") == 0 and getvar("$christinaQW['subpath']") == 0 and getvar("$christinaQW['bully']") <= 40>>
+	<<if $q.christina?.get('blackmail') == 0 and $q.christina?.get('pre_bm') == 0 and $q.christina?.get('pre_fight') == 0 and $q.christina?.get('fight') == 0 and $q.christina?.get('subpath') == 0 and $q.christina?.get('bully') <= 40>>
 		<<act `'Think about '+$npcs.get('A18','usedname')`>>
 			<<gt 'Zvereva_events' 'christina_decide1'>>
 		<</act>>
 	<</if>>
-	<<if getvar("$christinaQW['blackmail']") == 0 and getvar("$christinaQW['pre_bm']") == 0 and getvar("$christinaQW['pre_fight']") == 0 and getvar("$christinaQW['fight']") == 0 and getvar("$christinaQW['subpath']") == 0 and getvar("$christinaQW['bully']") >= 60>>
+	<<if $q.christina?.get('blackmail') == 0 and $q.christina?.get('pre_bm') == 0 and $q.christina?.get('pre_fight') == 0 and $q.christina?.get('fight') == 0 and $q.christina?.get('subpath') == 0 and $q.christina?.get('bully') >= 60>>
 		<<act `'Think about '+$npcs.get('A18','usedname')`>>
 			<<gt 'Zvereva_events' 'christina_decide2'>>
 		<</act>>
@@ -1148,7 +1148,7 @@
 	<<image "characters/shared/headshots_main/big13.jpg">>
 	<<if getvar("$LariskaQW['story']") >= 2>>
 		<<if getvar("$LariskaQW['story']") == 2>>
-			<<if getvar("$christinaQW['fight']") == 1>>
+			<<if $q.christina?.get('fight') == 1>>
 				<<gs 'npc_relationship' 'modify' 'A13' 'like'>>
 				<<setinit $LariskaQW['story'] = 4>>
 				Pulling out the volleyball she dropped outside your parents apartment the other day, you hand it to her. "You dropped this, Lariska."
@@ -1159,7 +1159,7 @@
 				<p>"Relax," you say laughing. "I beat the shit out of her, so she knows better then to deny me something I want. Just ask her about it the next time you get a chance, ok?"</p>
 				She looks at you, a bit dazed, but manages to nod.
 				Giving her a soft smile, you head off to your next class.
-			<<elseif getvar("$christinaQW['blackmail']") >= 2 or getvar("$christinaQW['subpath']") >= 2>>
+			<<elseif $q.christina?.get('blackmail') >= 2 or $q.christina?.get('subpath') >= 2>>
 				<<gs 'npc_relationship' 'modify' 'A13' 'like'>>
 				<<setinit $LariskaQW['story'] = 4>>
 				Pulling out the volleyball she dropped outside your parents apartment the other day, you hand it to her. "You dropped this, Lariska."
@@ -1186,7 +1186,7 @@
 			<</if>>
 		<<elseif getvar("$LariskaQW['story']") == 3>>
 			<<gs 'npc_relationship' 'modify' 'A13' 'like'>>
-			<<if getvar("$christinaQW['blackmail']") >= 2 or getvar("$christinaQW['subpath']") >= 2 or getvar("$christinaQW['fight']") == 1>>
+			<<if $q.christina?.get('blackmail') >= 2 or $q.christina?.get('subpath') >= 2 or $q.christina?.get('fight') == 1>>
 				<<setinit $LariskaQW['story'] = 5>>
 				<<gs 'npc_relationship' 'modify' 'A13' 'like'>>
 				<p>"Ok, $pc.name_nick. I guess <<npc 'A18'>><</npc>> wont stop me from hanging out with you now." She smiles a bit shyly and says "Do you want to come over afterschool and work on our homework together?"</p>

+ 14 - 14
sugarcube/src/autogenerated/school/gschool_lessons4.tw

@@ -10,7 +10,7 @@
 			<<set $VK = rand(1,5)>>
 			<<image "locations/pavlovsk/school/classroom/phone.jpg">>
 			The day seems to be dragging in and you find yourself constantly staring at the clock, waiting for the class to finally be over. You decide to play on your phone to pass the time.
-			<<if getvar("$VK") == 1 and (getvar("$christinaQW['fight']") == -1 or getvar("$christinaQW['subpath']") >= 2) and getvar("$pc.salocatnow") >= 5>>
+			<<if getvar("$VK") == 1 and ($q.christina?.get('fight') == -1 or $q.christina?.get('subpath') >= 2) and getvar("$pc.salocatnow") >= 5>>
 				<<gs 'npc_relationship' 'modify' 'A18' 'loathe'>>
 				<p>As you're browsing the web, you receive a text message from <<npc 'A18'>><</npc>> reading; "Hey there piggy, are you looking up discounts on Peremech so that you can shove them down your throat? Why don't you lose some weight before the teachers decide to add bovine etiquette to the curriculum because they may feel it necessary to teach the students how to talk to a cow like you?" You can feel your face flushing in embarrassment while reading <<npc 'A18'>><</npc>>'s hurtful comments. You quickly turn off your phone and try not to make eye contact with <<npc 'A18'>><</npc>> for the rest of the lesson.</p>
 				<<act 'Wait for the end of the lesson'>>
@@ -854,7 +854,7 @@
 <<if $location_var[$here][0] == 'postphys'>>
 	<<set $menu_off = 1>>
 	<<image "characters/shared/headshots_main/big69.jpg">>
-	<<if getvar("$christinaQW['pre_bm']") == 1>>
+	<<if $q.christina?.get('pre_bm') == 1>>
 		<<set $postphys_event = $time.daystart>>
 		After class, Coach Pavlovich returns to his office. For some reason, <<npc 'A18'>><</npc>> is following him while all other students go to the locker rooms.
 		<<act 'Ignore it and go to the locker room'>>
@@ -867,8 +867,8 @@
 			<p>What you see is like a dream come true; <<npc 'A18'>><</npc>>, naked and on her knees in front of Pavlovich, sucking his cock for all she's worth.</p>
 <span class="innerThought">"This is exactly what I was looking for!"</span>
 			Pulling out your phone, you make sure the flash is turned off and start taking pictures.
-			<<setinit $christinaQW['blackmail'] = 1>>
-			<<setinit $christinaQW['pre_bm'] = 0>>
+			<<run $q.christina.set('blackmail',1)>>
+			<<run $q.christina.set('pre_bm',0)>>
 			<<set $pc.pcs_horny += 10>>
 			<<act 'Keep watching'>>
 				<<image "shared/sex/cum/cocksuck3.jpg">>
@@ -888,7 +888,7 @@
 	<</if>>
 <</if>>
 <<if $location_var[$here][0] == 'postphys2'>>
-	<<if getvar("$christinaQW['subpath']") >= 2 and $postphys_event != $time.daystart>>
+	<<if $q.christina?.get('subpath') >= 2 and $postphys_event != $time.daystart>>
 		<<set $postphys_event = $time.daystart>> <<gt 'Zvereva_sub_1' 'showers'>>
 
 	<</if>>
@@ -965,7 +965,7 @@
 					<</act>>
 				<</act>>
 			<</act>>
-		<<elseif getvar("$christinaQW['fight']") == -1 or getvar("$christinaQW['submit']") == 1>>
+		<<elseif $q.christina?.get('fight') == -1 or $q.christina?.get('submit') == 1>>
 			<<act 'Try to leave unnoticed'>>
 				<<image "locations/pavlovsk/school/gym/sex/chris_sveta.jpg">>
 				<p>You try slipping out in the crowd, hoping to avoid getting involved, but a hand grabs you, drags you back to the middle of the room and shoves you down next to Sonia. You look up, and to your despair, see that it was <<npc 'A18'>><</npc>>. "Let's make it a party girls! Now we have TWO sluts to eat us out!" she says mockingly before walking up to you and spreading her pussy, her clit exposed and awaiting your tongue.</p>
@@ -1511,7 +1511,7 @@
 		<</act>>
 	<<elseif getvar("$gymdress") == 6>>
 		<center><<image `'images/locations/pavlovsk/school/gym/locker/<<npc 'A18'>><</npc>>selfie'+rand(1,3)+'.jpg'`>></center>
-		<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+		<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 			As you get dressed you overhear some girls talking to each other. "Come and take a picture with me. I want to send something to my boyfriend." Giggling, two of her friends walk over and pose with her.
 		<<else>>
 			As you get dressed you overhear <<npc 'A18'>><</npc>> say "Damn we look good, I look really amazing." You turn and see her checking out her naked body in the mirror, along with Lariska and Lina.
@@ -1540,7 +1540,7 @@
 		<</act>>
 	<<elseif getvar("$gymdress") == 9>>
 		<<image "locations/pavlovsk/school/gym/locker/chrislarwedgie.jpg">>
-		<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+		<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 			You see some girls teasing each other while getting dressed. One manages to get behind the other, grabs her panties and pulls them up. They both start laughing, obviously just messing around with each other. Things settle back down as the girl who got wedgied adjusts her panties and they leave the room, still teasing each other.
 		<<else>>
 			As Lariska finishes getting dressed, <<npc 'A18'>><</npc>> walks up behind her, grabs the back of her panties and yanks up on them hard, making Lariska squeal as she stands on her toes to try and relieve the pressure. Most of the other girls laugh at this. "Oh please, we all know you like things up your ass, so don't act like you're not enjoying this." <<npc 'A18'>><</npc>> tells her.
@@ -1565,7 +1565,7 @@
 		<</act>>
 	<<elseif getvar("$gymdress") <= 16>>
 		<<image "locations/pavlovsk/school/gym/locker/nerdoutcast.jpg">>
-		<<if $wardrobe.pantyworntype != 'none' and getvar("$christinaQW['subpath']") >= 2>>
+		<<if $wardrobe.pantyworntype != 'none' and $q.christina?.get('subpath') >= 2>>
 			Just as you finish dressing, you feel someone grab the back of your panties. Before you can say or do anything, you feel your panties get yanked up hard, painfully digging into your ass crack and against your clit. You hear the other girls all laugh as you struggle to free yourself. As you try and get up, you almost lose your balance as the person keeps pulling your panties up higher.
 			<p>You are finally able to pull yourself free and turn to see <<npc 'A18'>><</npc>> laughing at you. "Well, pet, anything to say?"</p>
 			Looking down to avoid eye contact as much as possible, you mumble "Thank you, <<npc 'A18'>><</npc>>."
@@ -1573,7 +1573,7 @@
 			<<act 'Continue'>>
 				<<gt 'gschool_lessons4' 'post_dress'>>
 			<</act>>
-		<<elseif (getvar("$grupTipe") == 3 or getvar("$grupTipe") == 5) and $wardrobe.pantyworntype != 'none' and getvar("$christinaQW['blackmail']") < 2 and getvar("$christinaQW['fight']") == 0>>
+		<<elseif (getvar("$grupTipe") == 3 or getvar("$grupTipe") == 5) and $wardrobe.pantyworntype != 'none' and $q.christina?.get('blackmail') < 2 and $q.christina?.get('fight') == 0>>
 			Just as you finish dressing, you feel someone grab the back of your panties. Before you can say or do anything, you feel your panties get yanked up hard, painfully digging into your ass crack and against your clit. You hear the other girls all laugh as you struggle to free yourself. As you try and get up, you almost lose your balance as the person keeps pulling your panties up higher.
 			You are finally able to pull yourself free and turn to see <<npc 'A18'>><</npc>> laughing at you. "Fucking loser, likely the closest anything has been to rubbing your clit."
 			<<gs 'pain' 1 'asscheeks' 'ache'>>
@@ -1586,7 +1586,7 @@
 			<</act>>
 			<<act 'Avoid eye contact'>>
 				<<set $menu_off = 1>>
-				<<setinit $christinaQW['bully'] += 2>>
+				<<run $q.christina.inc('bully',2)>>
 				<<image "locations/pavlovsk/school/gym/locker/nerdoutcast.jpg">>
 				Keeping your eyes on the floor, you spend a few moments pulling your panties out of your ass crack and getting them back in place before finishing getting dressed. She cracks a few jokes at you before heading out with Lariska and Lina in tow.
 				<<act 'Continue'>>
@@ -1595,7 +1595,7 @@
 			<</act>>
 			<<act `'Yell at '+$npcs.get('A18','usedname')`>>
 				<<set $menu_off = 1>>
-				<<setinit $christinaQW['bully'] -= 2>>
+				<<run $q.christina.dec('bully',2)>>
 				<<image "characters/shared/headshots_main/big18.jpg">>
 				<p>Turning around and making fists you yell "You fucking bitch! I'm going to make you eat your panties before I'm done with you!"</p>
 				<p>She curls her hands into fists, but before she can respond, there is a pounding on the locker doors. "What's going on in there?! Settle down right now or I'm coming in!"</p>
@@ -1611,7 +1611,7 @@
 			<</act>>
 			<<act 'Avoid eye contact'>>
 				<<set $menu_off = 1>>
-				<<setinit $christinaQW['bully'] += 1>>
+				<<run $q.christina.inc('bully',1)>>
 				<<image "locations/pavlovsk/school/gym/locker/change.jpg">>
 				Keeping your eyes on the floor, you spend a few minutes getting dressed. She cracks a few jokes about it before heading out with Lariska and Lina in tow.
 				<<act 'Continue'>>
@@ -1620,7 +1620,7 @@
 			<</act>>
 			<<act `'Yell at '+$npcs.get('A18','usedname')`>>
 				<<set $menu_off = 1>>
-				<<setinit $christinaQW['bully'] -= 2>>
+				<<run $q.christina.dec('bully',2)>>
 				<<gs 'npc_relationship' 'modify' 'A16' 'like'>>
 				<<image "characters/shared/headshots_main/big18.jpg">>
 				<p>You head straight at her and yell "You fucking bitch! How would you like it if I did that to you?!"</p>

+ 4 - 4
sugarcube/src/autogenerated/school/gschool_lessonsev2.tw

@@ -541,7 +541,7 @@
 
 		<<elseif getvar("$scooltiperand") == 9>>
 			<<image "locations/pavlovsk/school/classroom/math/chrislar.jpg">>
-			<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+			<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 				As class is ending Lina, Lariska and Vanya are all talking. The girls get up and hug, posing together as Vanya takes Lariska''s phone and takes several pictures of them together.
 			<<else>>
 				As class is ending <<npc 'A18'>><</npc>>, Lariska and Vanya are all talking. The girls get up and hug, posing together as Vanya takes Lariska''s phone and takes several pictures of them together.
@@ -573,7 +573,7 @@
 			<<act 'Leave class'>>
 				<<gt 'gschool_lessons' 'short_break'>>
 			<</act>>
-		<<elseif getvar("$scooltiperand") == 13 and (getvar("$christinaQW['fight']") == 0 or getvar("$christinaQW['blackmail']") < 2)>>
+		<<elseif getvar("$scooltiperand") == 13 and ($q.christina?.get('fight') == 0 or $q.christina?.get('blackmail') < 2)>>
 			<<image "locations/pavlovsk/school/classroom/math/dare1.jpg">>
 			Near the end of class, <<npc 'A26'>><</npc>> tells the class to study quietly as he begins to grade the pop quiz he had just given the class. Some of the students study, but most start messing with their phones or quietly talking to each other, only to be shushed by <<npc 'A26'>><</npc>>. You notice <<npc 'A18'>><</npc>> writing something and then passing it to Lariska.
 			<<act 'A note arrives'>>
@@ -584,7 +584,7 @@
 					You unfold the note and read it. It says ''I dare you to take a picture of your pussy and send it to <<npc 'A26'>><</npc>>.'' After reading the note, a bit surprised at what she wrote, you glance up and you see both <<npc 'A18'>><</npc>> and Lariska encouraging you to do it. Lariska, who is sitting next to you, even leans over and whispers "Do it."
 					<<act 'Refuse' undefined `{willpower:['exhib','resist','medium']}`>>
 
-							<<setinit $christinaQW['bully'] -= 1>>
+							<<run $q.christina.dec('bully',1)>>
 							<<image "locations/pavlovsk/school/classroom/math/dare5.jpg">>
 							You shake your head and <<npc 'A18'>><</npc>> and Lariska taunt you for not doing it. "Come on you pussy. Don't be a little bitch and just do it."
 							<p>You keep up your resolve, shaking your head again and then hiss to Lariska. "Why don't you do it?"</p>
@@ -595,7 +595,7 @@
 						<</act>>
 
 					<<act 'Do it'>>
-						<<setinit $christinaQW['bully'] += 1>>
+						<<run $q.christina.inc('bully',1)>>
 						<<gs 'fame' 'pav' 'sex' 1>>
 						<<image "locations/pavlovsk/school/classroom/math/dare4.jpg">>
 						<<if $wardrobe.pantyworntype != 'none'>>

+ 2 - 2
sugarcube/src/autogenerated/school/gschool_post_shower.tw

@@ -183,7 +183,7 @@
 			<</act>>
 			<<act 'Keep checking her out'>>
 				<<if rand (1,4) == 1>>
-					<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+					<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 						You look a bit too long and she seems to realize that she's being watched and turns to face you. You give her a look and she reluctantly turns back to her locker, not saying anything.
 					<<elseif getvar("$fame['pav_slut']") >= 250>>
 						<<set $sveta_dyke_rumor += 1>>
@@ -1065,7 +1065,7 @@
 		<</act>>
 		<<act 'Keep checking her out'>>
 			<<if rand (1,4) == 1>>
-				<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+				<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 					After a few minutes, she feels your gaze and looks in your direction. You give her a look and she reluctantly goes back to her shower, occasionally stealing looks your way to see if you're still watching her.
 				<<elseif getvar("$fame['pav_slut']") >= 250>>
 					<<set $sveta_dyke_rumor += 1>>

+ 2 - 2
sugarcube/src/autogenerated/school/gschool_socialchg.tw

@@ -107,7 +107,7 @@
 		"What a waste, you fucking slut." He then spits at your feet before leaving as well. You hear many of the students around you laughing as you look around. Having been publicly shamed and disavowed by your clique, the other students are ready to prey on your weakness and either start mocking you or actively look away. You grab your stuff and hurry to your next class.
 	<<elseif getvar("$grupTipe") == 2>>
 		<<image "locations/pavlovsk/school/events/jockslut.jpg">>
-		<<if getvar("$christinaQW['fight']") < 1 or getvar("$christinaQW['blackmail']") < 2>>
+		<<if $q.christina?.get('fight') < 1 or $q.christina?.get('blackmail') < 2>>
 			<p><<npc 'A18'>><</npc>>, Lariska, and Lina walk up to you. Lariska and Lina are looking at you in disgust while <<npc 'A18'>><</npc>> is smirking. She shoves you hard up against your locker. "What are you doing here slut? Shouldn't you be in the boys' bathroom sucking a bunch of cocks? We all heard that's all you do now. At least sluts know to get paid, but you just give it away for free, " she laughs mockingly. Lariska, Lina and several other students nearby join in, openly mocking you.</p>
 		<<else>>
 			<p>Albina and Lazar walk up to you with looks of disgust on their face. "What are you doing here? Shouldn't you be in the boys' bathroom sucking dick like the whore that you are?" Lazar says mockingly. Albina opens her mouth to say something but chooses to remain quiet and stares at the floor. <<npc 'A18'>><</npc>> smirks at you from behind them, not daring to challenge you directly but enjoying the moment.</p>
@@ -463,7 +463,7 @@
 <<if $location_var[$here][0] == 'jock outcast'>>
 	<<set $menu_off = 1>>
 	<<image "locations/pavlovsk/school/events/outcast.jpg">>
-	<<if getvar("$christinaQW['blackmail']") == 2 or getvar("$christinaQW['fight']") == 1>>
+	<<if $q.christina?.get('blackmail') == 2 or $q.christina?.get('fight') == 1>>
 		<p>Lazar and Albina walk up to you, and she scoffs at you dismissively. "It seems like you care more about being a social reject than anything else, so fuck off and go hang out with the other losers where you belong. We're not your friends anymore, and don't try to pretend otherwise." She gives you a pitiful once-over before forcefully shoving you aside and walking away. A disappointed-looking Lazar just shakes his head at you before catching up with Albina, where you hear them clearly mocking you. Having been publicly disavowed by your clique, the other students are ready to prey on your weakness, and either start mocking you or actively look away. You grab your stuff and hurry to your next class.</p>
 	<<else>>
 		<p><<npc 'A18'>><</npc>>, Lariska and Lina walk up to you. Lariska and Lina look at you like you did something wrong while <<npc 'A18'>><</npc>> smirks. She shoves you hard up against your locker. "What are you doing here bitch? You belong with the loser crowd now, so fuck off." She laughs, and Lariska and Lina join in openly mocking you. "Stay away from us, or I'll show you what happens to little bitches who don't know their place," <<npc 'A18'>><</npc>> warns before they turn and walk away. Having been publicly disavowed by your clique, the other students are ready to prey on your weakness, and either start mocking you or actively look away. You grab your stuff and hurry to your next class.</p>

+ 30 - 4
sugarcube/src/autogenerated/school/school_start.tw

@@ -5,8 +5,34 @@
 <<run $q.school.inc('attendedDays',1)>>
 <<set $q.school.period = 0>>
 
+<<include 'school_start_events'>>
+
+:: school_start_events
+
+<!-- Events of priority 1: Any teacher wants to talk with you -->
+<<if false>>
+
+<<else>><!-- Events of priority 2: Another student want to talk to you because you missed an event -->
+    <<if false>>
+
+    <<else>><!-- Events of priority 3: More important than priority 4 -->
+        <<if !$q.questIsStarted('christina')>>
+            <<run $q.questStart('christina')>>
+            <<gs 'Zvereva_events' 'christina_bu_1'>>
+        <<else>><!-- Events of priority 4: Everything else -->
+            <<gs 'school_schedule'>>
+        <</if>>
+    <</if>>
+<</if>>
+
+
+
+
+
+
+
 <!--<<gs 'Zvereva_events' 'cikl'>>
-<<if getvar("$christinaQW['set_bully']") == 0>>
+<<if $q.christina?.get('set_bully') == 0>>
     <<gs 'Zvereva_events' 'christina_bu_1'>>
 <<elseif getvar("$dimaRevenge") == 1>>
 		<<set $menu_off = 1>>
@@ -36,9 +62,9 @@
         <p>Albina glares directly into your eyes. "ARE YOU DOING THIS TO MOCK ME YOU FUCKING BITCH?! I GAVE YOU ONE. LAST. FUCKING. CHANCE AND YOU THROW IT BACK IN MY FUCKING FACE?!" She tightens her grips as she gets up in your face. "You're done with the Starlets. If I <i>ever</i> see you anywhere near us, you better hope that I'm in a good fucking mood, bitch!"</p>
         She releases you and angrily storms off, shoving other students out of her way. You compose yourself and continue on your way, trying to ignore the stares.
     <</if>>
-<<elseif (getvar("$time.weekday") == 1 or getvar("$time.weekday") == 3 or getvar("$time.weekday") == 5) and (getvar("$christinaQW['fight']") == -1 or getvar("$christinaQW['submit']") == 1) and getvar("$christinaQW['subpath']") < 3>>
+<<elseif (getvar("$time.weekday") == 1 or getvar("$time.weekday") == 3 or getvar("$time.weekday") == 5) and ($q.christina?.get('fight') == -1 or $q.christina?.get('submit') == 1) and $q.christina?.get('subpath') < 3>>
     <<set $menu_off = 1>>
-    <<if getvar("$christinaQW['fight']") == -1>>
+    <<if $q.christina?.get('fight') == -1>>
         <p><<npc 'A18'>><</npc>> approaches you. "Have you recovered from your ass-kicking yet? At least you understand your place now. I'm looking forward to after P.E. class today!"</p>
         <p>"W-What happens after P.E. class?" you meekly ask.</p>
         Without answering, she simply smirks at you and walks away.
@@ -49,7 +75,7 @@
     <</if>>
 <<else>>
     <<either 4>>-->
-        <<gs 'school_schedule'>>
+
     <!--<<or>>
         <<gs 'gschool_events' 'teacher_greet'>>
     <<or 3>>

+ 1 - 1
sugarcube/src/autogenerated/unsorted/LariskaHome.tw

@@ -603,7 +603,7 @@
 			<<video "characters/pavlovsk/school/girl/lariska/sex/home/kiss_1.mp4">>
 			You slide closer to her so your legs are touching and gently place your left hand on her shoulder.
 			<<if getvar("$lariskalove") == 0>>
-				<<if getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['blackmail']") == 2>>
+				<<if $q.christina?.get('fight') == 1 or $q.christina?.get('blackmail') == 2>>
 					Startled, her body stiffens up and she refuses to look anywhere but straight down. After what you did to <<npc 'A18'>><</npc>>, she knows she is no match for you and is probably terrified of having traded one Mistress for another. You take your time, slowly running your hand across her back until she calms down a bit and suprisingly leans against you, still looking down. You reach across with your right hand and place it on top of hers and start softly running your fingers across it. You do this for a few minutes before she finally looks up and leans her face in, a happy look in her eye. Tilting your head to one side a bit, you close the distance left between your lips until they touch. She shivers a bit in pleasure, obviously not used to such a gentle touch, before pulling away, her face bright red.
 				<<else>>
 					Startled, her body stiffens up and she refuses to look anywhere but straight down. You take your time, slowly running your hand across her back until she calms down a bit and suprisingly leans against you, still looking down. You reach across with your right hand and place it on top of hers and start softly running your fingers across it. You do this for a few minutes before she finally looks up and leans her face in, a happy look in her eye. Tilting your head to one side a bit, you close the distance left between your lips until they touch. She shivers a bit in pleasure, obviously not used to such a gentle touch, before pulling away, her face bright red.

+ 8 - 8
sugarcube/src/autogenerated/unsorted/ender.tw

@@ -231,9 +231,9 @@
 		<</if>>
 		<<set $autocombat_surrender to null>>
 		<<set $fightEnding = 0>>
-		<<setinit $christinaQW['fight'] = -1>>
-		<<setinit $christinaQW['pre_fight'] = 0>>
-		<<setinit $christinaQW['subpath'] = 2>>
+		<<run $q.christina.set('fight',-1)>>
+		<<run $q.christina.set('pre_fight',0)>>
+		<<run $q.christina.set('subpath',2)>>
 		<<set $Loss += 1>>
 		<<set $time.minutes += 10>>
 		<<image "shared/sex/dom/spit.jpg">>
@@ -626,8 +626,8 @@
 			<<setinit $LariskaQW['story'] = 4>>
 
 		<</if>>
-		<<setinit $christinaQW['fight'] = 1>>
-		<<setinit $christinaQW['pre_fight'] = 0>>
+		<<run $q.christina.set('fight',1)>>
+		<<run $q.christina.set('pre_fight',0)>>
 		<<set $Win += 1>>
 		<<set $fightEnding = 0>>
 		<<image "characters/pavlovsk/school/girl/<<npc 'A18'>><</npc>>/school/win.jpg">>
@@ -1026,9 +1026,9 @@
 	<<elseif getvar("$fightEnding") == 12>>
 		<<set $autocombat_surrender to null>>
 		<<set $fightEnding = 0>>
-		<<setinit $christinaQW['fight'] = -1>>
-		<<setinit $christinaQW['pre_fight'] = 0>>
-		<<setinit $christinaQW['subpath'] = 2>>
+		<<run $q.christina.set('fight',-1)>>
+		<<run $q.christina.set('pre_fight',0)>>
+		<<run $q.christina.set('subpath',2)>>
 		<<set $Loss += 1>>
 		<<set $time.minutes += 10>>
 		<<image "shared/sex/dom/spit.jpg">>

+ 17 - 17
sugarcube/src/autogenerated/unsorted/journal_quests.tw

@@ -82,36 +82,36 @@
 			Unknown. You might want to report this as a bug on the TFGS Forum.
 		<</if>>
 		<center><h3><<npc 'A18'>><</npc>> Zvereva</h3></center>
-		<<if getvar("$christinaQW['subpath']") >= 1 or getvar("$christinaQW['fight']") >= 1 or getvar("$christinaQW['pre_fight']") >= 1 or getvar("$christinaQW['blackmail']") >= 1 or getvar("$christinaQW['pre_bm']") >= 1>>
-			<<if getvar("$christinaQW['fight']") >= 1 or getvar("$christinaQW['pre_fight']") >= 1>>
-				<<if getvar("$christinaQW['fight']") == 1>>
+		<<if $q.christina?.get('subpath') >= 1 or $q.christina?.get('fight') >= 1 or $q.christina?.get('pre_fight') >= 1 or $q.christina?.get('blackmail') >= 1 or $q.christina?.get('pre_bm') >= 1>>
+			<<if $q.christina?.get('fight') >= 1 or $q.christina?.get('pre_fight') >= 1>>
+				<<if $q.christina?.get('fight') == 1>>
 					<p>I fought <<npc 'A18'>><</npc>> and won! She cannot touch me now, and if I demand it, she will give it, or get another beating.</p>
 				<<else>>
 					I have decided I'm going to beat the crap out of <<npc 'A18'>><</npc>>. I should do it afterschool, but in front of the school too, so everybody sees it happen.
 				<</if>>
-			<<elseif getvar("$christinaQW['blackmail']") >= 1 or getvar("$christinaQW['pre_bm']") >= 1>>
-				<<if getvar("$christinaQW['blackmail']") >= 2>>
+			<<elseif $q.christina?.get('blackmail') >= 1 or $q.christina?.get('pre_bm') >= 1>>
+				<<if $q.christina?.get('blackmail') >= 2>>
 					I have managed to successfully blackmail <<npc 'A18'>><</npc>>. She can't touch me now, or I will ruin her.
-				<<elseif getvar("$christinaQW['blackmail']") == 1>>
+				<<elseif $q.christina?.get('blackmail') == 1>>
 					I need to chat with <<npc 'A18'>><</npc>> at school, let her know what I have on her. Unless she does what I want, I'm going to ruin her reputation.
 				<<else>>
 					I should wait and see what opportunities come up to get some dirt on <<npc 'A18'>><</npc>>.
 				<</if>>
 			<<else>>
-				<<if getvar("$christinaQW['subpath']") == 7>>
-					<<if getvar("$christinaQW['fight']") == -1>>
+				<<if $q.christina?.get('subpath') == 7>>
+					<<if $q.christina?.get('fight') == -1>>
 						<<npc 'A18'>><</npc>> is getting bolder about her peeking on me and Sly when we fuck. I need to keep fucking him, until she cannot control herself anymore. When she breaks, I need to be ready for my chance to get even.
 						The end of her story for this update
 					<<else>>
 						<<npc 'A18'>><</npc>> is getting bolder about her peeking on me and Sly when we fuck. I need to keep fucking him, until she cannot control herself anymore. My Mistress deserves the pleasure she is denying herself.
 						The end of her story for this update
 					<</if>>
-				<<elseif getvar("$christinaQW['subpath']") == 6>>
+				<<elseif $q.christina?.get('subpath') == 6>>
 					I've encouraged her to act on her desires. Hopefully I was subtle enough that she thinks it was her idea. I need to keep tempting her by fucking him.
-				<<elseif getvar("$christinaQW['subpath']") == 5>>
+				<<elseif $q.christina?.get('subpath') == 5>>
 					<<if getvar("$slyQW['met']") >= 2>>
 						<<if getvar("$slyQW['Chris_caught']") == 1>>
-							<<if getvar("$christinaQW['fight']") == -1>>
+							<<if $q.christina?.get('fight') == -1>>
 								Sly took me. He was not gentle. I need to find a way out of this. Until I do, I will have to keep visiting Sly.
 							<<else>>
 								Sly took me. He was not gentle. I want more.
@@ -126,12 +126,12 @@
 					<<else>>
 						I followed <<npc 'A18'>><</npc>> home. I can visit whenever I want for now, as long as I follow her rules. I should ask her about her brother sometime, when she is in her room.
 					<</if>>
-				<<elseif getvar("$christinaQW['subpath']") == 4>>
+				<<elseif $q.christina?.get('subpath') == 4>>
 					<<npc 'A18'>><</npc>> told me to follow her home after school, I should talk to her once school gets out.
-				<<elseif getvar("$christinaQW['subpath']") == 3>>
+				<<elseif $q.christina?.get('subpath') == 3>>
 					<<npc 'A18'>><</npc>> owns me now. After gym class, she makes me do things in the showers. I am sure it's only the beginning, too...
-				<<elseif getvar("$christinaQW['subpath']") == 2>>
-					<<if getvar("$christinaQW['fight']") == -1>>
+				<<elseif $q.christina?.get('subpath') == 2>>
+					<<if $q.christina?.get('fight') == -1>>
 						I challenged <<npc 'A18'>><</npc>> ... and lost. I have a feeling that is going to catch up to me somehow...
 					<<else>>
 						I submitted myself to <<npc 'A18'>><</npc>>''s control. I have to wait and see what the future brings...
@@ -140,7 +140,7 @@
 					I heard <<npc 'A18'>><</npc>> trains Lina by the lake after school. I should pay them a visit after school sometime.
 				<</if>>
 			<</if>>
-		<<elseif getvar("$christinaQW['bully']") <= 40 or getvar("$christinaQW['bully']") >= 60>>
+		<<elseif $q.christina?.get('bully') <= 40 or $q.christina?.get('bully') >= 60>>
 			I should try and talk to <<npc 'A18'>><</npc>> at school.
 		<<else>>
 			<<npc 'A18'>><</npc>> bullies me every chance she gets. I have a feeling my reactions to these things will shape my future with her...
@@ -249,7 +249,7 @@
 		<<elseif getvar("$LariskaQW['story']") == 4>>
 			I should talk to Lariska at school again.
 		<<elseif getvar("$LariskaQW['story']") == 3>>
-			<<if getvar("$christinaQW['blackmail']") >= 2 or getvar("$christinaQW['fight']") == 1 or getvar("$christinaQW['subpath']") >= 2>>
+			<<if $q.christina?.get('blackmail') >= 2 or $q.christina?.get('fight') == 1 or $q.christina?.get('subpath') >= 2>>
 				I should talk to Lariska at school.
 			<<else>>
 				I have to find a way to deal with <<npc 'A18'>><</npc>> before Lariska is willing to be more involved with me.

+ 2 - 2
sugarcube/src/autogenerated/unsorted/journal_school.tw

@@ -424,7 +424,7 @@
 	<<image "characters/shared/headshots_main/13.jpg">>
 	<center>Lariska Gruzdeva</center>
 	<<if getvar("$grupTipe") == 2>>
-		<<if getvar("$christinaQW['blackmail']") == 2 or getvar("$christinaQW['fight']") == 1>>
+		<<if $q.christina?.get('blackmail') == 2 or $q.christina?.get('fight') == 1>>
 			Lariska is an athletic girl who is highly insecure, being very dependent on other people''s opinions of her. <<npc 'A18'>><</npc>> used to control her, but ever since you got the upper hand on <<npc 'A18'>><</npc>>, Lariska has been a lot more energetic. She has a sparkle in her eyes, and is almost always in a good mood.
 		<<else>>
 			Lariska is a very athletic girl, with an exceptional talent for volleyball. However, she has a very weak personality and is very dependent on other people''s opinions of her. She spends most of her time trying to appease others, especially <<npc 'A18'>><</npc>>, whom she considers to be her best friend and can often be seen following her around school.
@@ -439,7 +439,7 @@
 			You are acquaintances with her, but she doesn''t seem to care much about you either way.
 		<</if>>
 	<<else>>
-		<<if getvar("$christinaQW['blackmail']") == 2 or getvar("$christinaQW['fight']") == 1>>
+		<<if $q.christina?.get('blackmail') == 2 or $q.christina?.get('fight') == 1>>
 			<<npc 'A18'>><</npc>> used to control her, but ever since you got the upper hand on <<npc 'A18'>><</npc>>, Lariska has been a lot more energetic and friendly. She now almost never bullies others in school, though she will join in if some of her fellow jocks start bullying someone. She seems to enjoy playing sports even more than before.
 		<<else>>
 			Lariska is a very athletic girl, who is one of the best players on the girls volleyball team. She follows <<npc 'A18'>><</npc>> around like a puppy, often doing her bidding and helping <<npc 'A18'>><</npc>> bully the other girls and even some of the boys in school.

+ 2 - 2
sugarcube/src/autogenerated/unsorted/journal_uni.tw

@@ -362,13 +362,13 @@
 	<<image "characters/shared/headshots_main/13.jpg">>
 	<center>Lariska Gruzdeva</center>
 	<<if getvar("$grupTipe") == 2>>
-		<<if getvar("$christinaQW['blackmail']") == 2 or getvar("$christinaQW['fight']") == 1>>
+		<<if $q.christina?.get('blackmail') == 2 or $q.christina?.get('fight') == 1>>
 			Lariska is an athletic girl who is highly insecure, being very dependent on other people''s opinions of her. <<npc 'A18'>><</npc>> used to control her, but ever since you got the upper hand on <<npc 'A18'>><</npc>>, Lariska has been a lot more energetic. She has a sparkle in her eyes, and is almost always in a good mood.
 		<<else>>
 			Lariska is a very athletic girl, with an exceptional talent for volleyball. However, she has a very weak personality and is very dependent on other people''s opinions of her. She spends most of her time trying to appease others, especially <<npc 'A18'>><</npc>>, whom she considered to be her best friend and could often be seen following her around school.
 		<</if>>
 	<<else>>
-		<<if getvar("$christinaQW['blackmail']") == 2 or getvar("$christinaQW['fight']") == 1>>
+		<<if $q.christina?.get('blackmail') == 2 or $q.christina?.get('fight') == 1>>
 			<<npc 'A18'>><</npc>> used to control her, but ever since you got the upper hand on <<npc 'A18'>><</npc>>, Lariska has been a lot more energetic and friendly. She almost never bullied others at school, though she still joined in if some of her fellow jocks started bullying someone. She seems to enjoy playing sports even more than before.
 		<<else>>
 			Lariska is a very athletic girl, who is one of the best players on the girls volleyball team. She followed <<npc 'A18'>><</npc>> around like a puppy, often doing her bidding and helping <<npc 'A18'>><</npc>> bully the other girls and even some of the boys in school.

+ 2 - 2
sugarcube/src/autogenerated/unsorted/pav_disco_jocks.tw

@@ -691,7 +691,7 @@
 		<</act>>
 		<<act 'Go out on the dance floor'>>
 			<<image "locations/pavlovsk/community/disco/club.jpg">>
-			<<if getvar("$christinaQW['subpath']") >= 2>>
+			<<if $q.christina?.get('subpath') >= 2>>
 				You hesitantly approach <<npc 'A18'>><</npc>>, knowing how volatile she can be.
 				<p>As soon as she sees you she calls out "Hey, bitch! Get over here and dance with me."</p>
 				Knowing you have no choice, you muster your most submissive smile and nod to her.
@@ -729,7 +729,7 @@
 		<<act 'Hang out with her'>>
 			<<set $time.minutes += 15>>
 			<<image "characters/shared/headshots_main/big18.jpg">>
-			<<if getvar("$christinaQW['subpath']") >= 2>>
+			<<if $q.christina?.get('subpath') >= 2>>
 				You hesitantly approach <<npc 'A18'>><</npc>>, knowing how volatile she can be.
 				<p>As soon as she sees you she calls out "Hey, bitch! Get over here."</p>
 				Knowing you have no choice, you smile and go to her.

+ 1 - 1
sugarcube/src/autogenerated/unsorted/pav_lake.tw

@@ -70,7 +70,7 @@
 				<</act>>
 			<</if>>
 		<</if>>
-		<<if mid($start_type,1,2) == 'sg' and getvar("$SchoolAtestat") == 0 and ((getvar("$time.month") >= 3 and getvar("$time.month") <= 5) or (getvar("$time.month") >= 9 and getvar("$time.month") <= 11)) and getvar("$time.weekday") <= 5 and getvar("$time.hour") >= 15 and getvar("$time.hour") <= 20 and getvar("$christinaQW['subpath']") == 1 and $socialchg['tchristina_day'] != $time.daystart>>
+		<<if mid($start_type,1,2) == 'sg' and getvar("$SchoolAtestat") == 0 and ((getvar("$time.month") >= 3 and getvar("$time.month") <= 5) or (getvar("$time.month") >= 9 and getvar("$time.month") <= 11)) and getvar("$time.weekday") <= 5 and getvar("$time.hour") >= 15 and getvar("$time.hour") <= 20 and $q.christina?.get('subpath') == 1 and $socialchg['tchristina_day'] != $time.daystart>>
 			<<link "<<npc 'A18'>><</npc>>">><<gt 'Zvereva_sub_1' 'chris_sub'>><</link>> is standing by the beach looking out over the lake as Lina stands next to her, breathing heavily.
 		<</if>>
 		<<gs 'camera' 'check_location'>>

+ 2 - 2
sugarcube/src/autogenerated/unsorted/pav_residential.tw

@@ -178,7 +178,7 @@
 		'<<link 'Lariska'>><<setn $time.minutes += 10>><<gt  'LariskaHome'  'front_door'>><</link>> lives about 10 minutes away from here.'
 
 	<</if>>
-	<<if getvar("$christinaQW['subpath']") >= 5>>
+	<<if $q.christina?.get('subpath') >= 5>>
 		<br><<link "<<npc 'A18'>><</npc>>">><<gt 'Zvereva_house' 'front_door'>><</link>> lives in an expensive house near here.
 
 	<</if>>
@@ -208,7 +208,7 @@
 		gs'show_table','House of <<link 'Lariska Gruzdev'>><<setn $time.minutes += 10>><<gt  'LariskaHome'  'front_door'>><</link>> in the richer part of town','3'
 
 	<</if>>
-	<<if getvar("$christinaQW['subpath']") >= 5>>
+	<<if $q.christina?.get('subpath') >= 5>>
 		gs'show_table','<br><<link '<<npc 'A18'>><</npc>>'>><<gt  'Zvereva_house'  'front_door'>><</link>> lives in an expensive house near here.','3'
 
 	<</if>>

+ 29 - 29
sugarcube/src/autogenerated/unsorted/saveupdater.tw

@@ -1105,28 +1105,28 @@
 	<<if getvar("$zverSlutQW") > 0>>
 		<<if getvar("$zverSlutQW") == 2>>
 			<!-- !! <<npc 'A18'>><</npc>> lost the fight and is outcasted-->
-			<<setinit $christinaQW['fight'] = 1>>
-			<<setinit $christinaQW['dompath'] = 7>>
+			<<run $q.christina.set('fight',1)>>
+			<<run $q.christina.set('dompath',7)>>
 			<<run $npcs.set('A18','grupTipe',5)>>
 		<<else>>
 			<!-- !! <<npc 'A18'>><</npc>> lost the fight and is prepped for outcasting-->
-			<<setinit $christinaQW['fight'] = 1>>
-			<<setinit $christinaQW['dompath'] = 6>>
+			<<run $q.christina.set('fight',1)>>
+			<<run $q.christina.set('dompath',6)>>
 		<</if>>
 		<<set $zverSlutQW to null>>
 	<</if>>
 	<<if getvar("$zverRageQW") > 0>>
 		<<if getvar("$zverRageQW") == 10>>
 			<!-- !! <<npc 'A18'>><</npc>> won the fight-->
-			<<setinit $christinaQW['fight'] =  - 1>>
-			<<setinit $christinaQW['subpath'] = 2>>
+			<<run $q.christina.set('fight',- 1)>>
+			<<run $q.christina.set('subpath',2)>>
 		<<elseif getvar("$zverRageQW") == 2>>
 			<!-- !! <<npc 'A18'>><</npc>> lost the fight-->
-			<<setinit $christinaQW['fight'] = 1>>
-			<<setinit $christinaQW['dompath'] = 6>>
+			<<run $q.christina.set('fight',1)>>
+			<<run $q.christina.set('dompath',6)>>
 		<<else>>
 			<!-- !! You spread rumors about <<npc 'A18'>><</npc>> and she preps for fight-->
-			<<setinit $christinaQW['dompath'] = 4>>
+			<<run $q.christina.set('dompath',4)>>
 		<</if>>
 		<<set $zverRageQW to null>>
 	<</if>>
@@ -1153,20 +1153,20 @@
 	<<if getvar("$christinaphotos") > 0>>
 		<<if getvar("$christinaphotos") == 3>>
 			<!-- !! <<npc 'A18'>><</npc>> won the fight and you have not had a shower scene with her yet-->
-			<<setinit $christinaQW['fight'] =  - 1>>
-			<<setinit $christinaQW['subpath'] = 2>>
+			<<run $q.christina.set('fight',- 1)>>
+			<<run $q.christina.set('subpath',2)>>
 		<<elseif getvar("$christinaphotos") == 4>>
 			<!-- !! <<npc 'A18'>><</npc>> won the fight and you had first shower scene with her-->
-			<<setinit $christinaQW['fight'] =  - 1>>
-			<<setinit $christinaQW['subpath'] = 3>>
+			<<run $q.christina.set('fight',- 1)>>
+			<<run $q.christina.set('subpath',3)>>
 		<<elseif getvar("$christinaphotos") == 2>>
 			<!-- !! You submitted to <<npc 'A18'>><</npc>> and you had first shower scene with her-->
-			<<setinit $christinaQW['submit'] = 1>>
-			<<setinit $christinaQW['subpath'] = 3>>
+			<<run $q.christina.set('submit',1)>>
+			<<run $q.christina.set('subpath',3)>>
 		<<else>>
 			<!-- !! You submitted to <<npc 'A18'>><</npc>> but not had a shower scene with her yet-->
-			<<setinit $christinaQW['submit'] = 1>>
-			<<setinit $christinaQW['subpath'] = 2>>
+			<<run $q.christina.set('submit',1)>>
+			<<run $q.christina.set('subpath',2)>>
 		<</if>>
 		<<set $christinaphotos to null>>
 	<</if>>
@@ -1915,22 +1915,22 @@
 		<<run $npcs.set('A18','grupTipe',2)>>
 
 	<</if>>
-	<<if getvar("$christinaQW['dompath']") >= 1>>
-		<<if getvar("$christinaQW['dompath']") >= 6>>
-			<<setinit $christinaQW['fight'] = 1>>
-			<<setinit $christinaQW['dompath'] = 0>>
+	<<if $q.christina?.get('dompath') >= 1>>
+		<<if $q.christina?.get('dompath') >= 6>>
+			<<run $q.christina.set('fight',1)>>
+			<<run $q.christina.set('dompath',0)>>
 		<<else>>
-			<<setinit $christinaQW['dompath'] = 0>>
+			<<run $q.christina.set('dompath',0)>>
 		<</if>>
 	<</if>>
-	<<if !$christinaQW['set_bully']>>
-		<<if (getvar("$christinaQW['blackmail']") > 0 or getvar("$christinaQW['pre_bm']") > 0 or getvar("$christinaQW['pre_fight']") > 0 or getvar("$christinaQW['fight']") > 0) and !$christinaQW['set_bully']>>
-			<<setinit $christinaQW['set_bully'] = 1>>
-			<<setinit $christinaQW['bully'] = 40>>
+	<<if !$q.christina?.get('set_bully')>>
+		<<if ($q.christina?.get('blackmail') > 0 or $q.christina?.get('pre_bm') > 0 or $q.christina?.get('pre_fight') > 0 or $q.christina?.get('fight') > 0) and !$q.christina?.get('set_bully')>>
+			<<run $q.christina.set('set_bully',1)>>
+			<<run $q.christina.set('bully',40)>>
 		<</if>>
-		<<if getvar("$christinaQW['subpath']") > 0>>
-			<<setinit $christinaQW['set_bully'] = 1>>
-			<<setinit $christinaQW['bully'] = 60>>
+		<<if $q.christina?.get('subpath') > 0>>
+			<<run $q.christina.set('set_bully',1)>>
+			<<run $q.christina.set('bully',60)>>
 		<</if>>
 	<</if>>
 	<!-- !!Schedule migrated to the array, no need to change first-->

+ 3 - 3
sugarcube/src/autogenerated/unsorted/uni_lessonsev1.tw

@@ -100,17 +100,17 @@
 		<</act>>
 	<<elseif getvar("$temp") == 5>>
 		<<image "locations/city/island/university/classroom/teaching_methods/whaletail.jpg">>
-		<<if getvar("$christinaQW['subpath']") >= 3>>
+		<<if $q.christina?.get('subpath') >= 3>>
 			<p>You try to rest your head on the desk in front of you while looking around to see what the other students are doing. You quickly notice that somebody is watching you, and it's none other than <<npc 'A18'>><</npc>>! You see her looking at you in disgust as a huge whaletail peeks out of her pants. You quickly shiver at the memories of when she bullied you. Luckily for you, those times are done. You quickly take another look at her enormous whaletail and decide to continue paying attention to the lecture before you anger her.</p>
 			<<act 'Wait for the end of the lesson'>>
 				<<gt 'uni_lessons' 'short_break'>>
 			<</act>>
-		<<elseif getvar("$christinaQW['fight']") == 1>>
+		<<elseif $q.christina?.get('fight') == 1>>
 			<p>You try to rest your head on the desk in front of you while looking around to see what the other students are doing. You quickly notice that somebody is watching you, and it's none other than <<npc 'A18'>><</npc>>! You see her taunting you with a bratty face as a huge whaletail peeks out of her pants. You remember beating her up at school and smile at the memory.</p>
 			<<act 'Wait for the end of the lesson'>>
 				<<gt 'uni_lessons' 'short_break'>>
 			<</act>>
-		<<elseif getvar("$christinaQW['blackmail']") == 2>>
+		<<elseif $q.christina?.get('blackmail') == 2>>
 			<p>You try to rest your head on the desk in front of you while looking around to see what the other students are doing. You quickly notice that somebody is watching you, and it's none other than <<npc 'A18'>><</npc>>! You see her taunting you with a bratty face as a huge whaletail peeks out of her pants. You remember blackmailing her at school and smile at the memory.</p>
 			<<act 'Wait for the end of the lesson'>>
 				<<gt 'uni_lessons' 'short_break'>>

+ 3 - 3
sugarcube/src/autogenerated/unsorted/uni_lessonsev2.tw

@@ -100,17 +100,17 @@
 		<</act>>
 	<<elseif getvar("$temp") == 5>>
 		<<image "locations/city/island/university/classroom/teaching_methods/whaletail.jpg">>
-		<<if getvar("$christinaQW['subpath']") >= 3>>
+		<<if $q.christina?.get('subpath') >= 3>>
 			<p>You try to rest your head on the desk in front of you while looking around to see what the other students are doing. You quickly notice that somebody is watching you, and it's none other than <<npc 'A18'>><</npc>>! You see her looking at you in disgust as a huge whaletail peeks out of her pants. You quickly shiver at the memories of when she bullied you. Luckily for you, those times are done. You quickly take another look at her enormous whaletail and decide to continue paying attention to the lecture before you anger her.</p>
 			<<act 'Wait for the end of the lesson'>>
 				<<gt 'uni_lessons' 'short_break'>>
 			<</act>>
-		<<elseif getvar("$christinaQW['fight']") == 1>>
+		<<elseif $q.christina?.get('fight') == 1>>
 			<p>You try to rest your head on the desk in front of you while looking around to see what the other students are doing. You quickly notice that somebody is watching you, and it's none other than <<npc 'A18'>><</npc>>! You see her taunting you with a bratty face as a huge whaletail peeks out of her pants. You remember beating her up at school and smile at the memory.</p>
 			<<act 'Wait for the end of the lesson'>>
 				<<gt 'uni_lessons' 'short_break'>>
 			<</act>>
-		<<elseif getvar("$christinaQW['blackmail']") == 2>>
+		<<elseif $q.christina?.get('blackmail') == 2>>
 			<p>You try to rest your head on the desk in front of you while looking around to see what the other students are doing. You quickly notice that somebody is watching you, and it's none other than <<npc 'A18'>><</npc>>! You see her taunting you with a bratty face as a huge whaletail peeks out of her pants. You remember blackmailing her at school and smile at the memory.</p>
 			<<act 'Wait for the end of the lesson'>>
 				<<gt 'uni_lessons' 'short_break'>>

+ 14 - 0
sugarcube/src/js/parameterize.js

@@ -0,0 +1,14 @@
+if(!setup.parameterize)
+    setup.parameterize = function(v){
+        switch(typeof v){
+            case 'boolean':
+            case 'number':
+                return v.toString();
+            case 'string':
+                return "'"+v+"'";
+            default:
+                let raw = JSON.stringify(v);
+                raw = raw.slice(1,-1);
+                return '`'+raw+'`';
+        }
+    }

+ 9 - 2
sugarcube/src/quests/quests.js

@@ -29,6 +29,12 @@ class QuestsDict{
 		return (this[questId].state === 1);
 	}
 
+	questIsStarted(questId){
+		if(!this[questId])
+			return false;
+		return (this[questId].state !== 0);
+	}
+
 	questStart(questId,restart=false){
 		if(!this[questId] || restart){
 			this[questId] = new setup.Quest();
@@ -72,7 +78,7 @@ class Quest{
 
 	id = undefined;
 	stage = 0;
-	state = 1; //0: Inactive, 1: Active, <0 : Failed, >1 : Succeeded
+	state = 1; //0: Not Started, 1: Active, <0 : Failed, >1 : Succeeded
 
 	dec(field,v){
 		this.inc(field, -1 * v);
@@ -136,9 +142,10 @@ class Quest{
 	}
 
 	set(field,v){
+		let oldValue = this[field];
 		this[field] = v;
 		if(this.passageExists){
-			$.wiki("<<gs '"+this.passage+"' 'update' '"+field+"'>>");
+			$.wiki("<<gs '"+this.passage+"' 'update' '"+field+"' "+setup.parameterize(oldValue)+" "+setup.parameterize(v)+">>");
 		}
 	}
 

+ 3 - 3
tw_update.py

@@ -29,9 +29,9 @@ for filesName in filesNames:
                 output = output.replace(variable_replacement[0],variable_replacement[1])
 
         for quest_variable in variables.quest_variables:
-            output = re.sub(r"<<set(?:init)?\s+"+quest_variable[0]+"\s*=\s*(.*?)\s*>>","<<run $q."+quest_variable[1]+".set('"+quest_variable[2]+r"',\1)>>",output)
-            output = re.sub(r"<<set(?:init)?\s+"+quest_variable[0]+"\s*\+=\s*(.*?)\s*>>","<<run $q."+quest_variable[1]+".inc('"+quest_variable[2]+r"',\1)>>",output)
-            output = re.sub(r"<<set(?:init)?\s+"+quest_variable[0]+"\s*-=\s*(.*?)\s*>>","<<run $q."+quest_variable[1]+".dec('"+quest_variable[2]+r"',\1)>>",output)
+            output = re.sub(r"<<set(?:init)?\s+"+quest_variable[0]+"\s*=\s*(?P<value>.*?)\s*>>","<<run $q."+quest_variable[1]+".set('"+quest_variable[2]+r"',\g<value>)>>",output)
+            output = re.sub(r"<<set(?:init)?\s+"+quest_variable[0]+"\s*\+=\s*(?P<value>.*?)\s*>>","<<run $q."+quest_variable[1]+".inc('"+quest_variable[2]+r"',\g<value>)>>",output)
+            output = re.sub(r"<<set(?:init)?\s+"+quest_variable[0]+"\s*-=\s*(?P<value>.*?)\s*>>","<<run $q."+quest_variable[1]+".dec('"+quest_variable[2]+r"',\g<value>)>>",output)
             output = re.sub(r"(?:getvar\(\")?"+quest_variable[0]+r"(?:\"\))?","$q."+quest_variable[1]+"?.get('"+quest_variable[2]+"')",output)
 
         print(output, end='')

+ 2 - 0
variables.py

@@ -210,4 +210,6 @@ variable_replacements = [
 quest_variables = [
     [r'\$missing_class','school','missedClasses'],
     [r'\$BeInSchool','school','attendedDays'],
+
+    [r"\$christinaQW\['(?P<index>.*?)'\]",'christina',r'\g<index>'],
 ]