code:
# city_screen
!city_screen, not at home
if sound_on = 1:
	play $city_sound, music_volume, 'only, loop'
else
	close $city_sound
end

gs 'main_layout'
gs '#var_base'

$info_text = '' &! prevents blank screen bug when accessing slave/assistant stat screen

*p '
<img src="content\pic\bg\<<$bg[$place]>>.png">
'
*p '
<<$text_display>>
'

if wizard_mode = 1:
	*p '

 Day: <<day>> (<<sparks>>$)  |  Cal: <<slave["calories"]>>  |  Fr: <<slave["fear"]>>/<<slave_rate["fear"]>>  |  Ins: <<slave["instinct"]>>/<<slave_rate["instinct"]>>  |  Rat: <<slave["rational"]>>/<<slave_rate["rational"]>>  |  Cus: <<slave["custom"]>>/<<slave_rate["custom"]>>  |  Mor: <<slave["moral"]>>/<<slave_rate["moral"]>>  |  Spl: <<slave["spoil"]>>/<<slave_rate["spoil"]>>  |  Ang: <<slave["angst"]>>/<<slave_rate["angst"]>>

'
else
	$shedule_warn = ''
	if exam_in_progress = 0:
		if ride_count = 0:    $shedule_warn += '!'
		if auction_count = 0: $shedule_warn += '!'
		if gladi_count = 0:   $shedule_warn += '!'
	end
	if exam_in_progress = 1:
		$upper_info_bar = 'Day: <<day>> (<<sparks>>$)'
	else
		$upper_info_bar = 'Day: <<day>> (<<sparks>>$)'
	end
	if debt > 0: $upper_info_bar += ' | Debt: <<debt>>$ (<<debt_count>> days)'
	if contract['time'] > 0: $upper_info_bar += ' | Contract: <<contract["time"]>> days'
	*p '

<<$shedule_warn>> <<$upper_info_bar>>

'
end

!ImperatorAugustus: consolidated master avatar and status display, sync with main_screen
*p '
<img src = "<<$master_ava>>">
'
*p '
Energy <<$master_energy_stars>>'
	$tooltip_text = func('$addon', 'no_rate_full_grade_tooltip_text', 'mood', master_mood, 1)
	*nl '<a class="tooltip-left" tooltip-data="<<$tooltip_text>>" href="EXEC: master_stat_screen = 3 & gt ''master_stat''"><<$mood[master_mood_plus]>>'
	$tooltip_text = func('$addon', 'no_rate_full_grade_tooltip_text', 'master_excitement', master_excitement, 1)
	*nl '<a class="tooltip-left" tooltip-data="<<$tooltip_text>>" href = "EXEC: msg $excitement_chart"><<dyneval($vb_cycle_stat, iif(max(master_moodlet["neg_boner"], master_moodlet["neg_blazing"]) = 0, 5 + master_excitement, 0), $excitement[master_excitement_plus])>>'
	$tooltip_text = func('$addon', 'no_rate_stat_tooltip_text', 'hygiene', master_hygiene, -1)
	*nl '<a class="tooltip-left" tooltip-data="<<$tooltip_text>>" href = "EXEC: msg $hygiene_chart"><<$personal_hygiene[master_hygiene]>>'
*p '
'

!lillimerge: added fiend name
!ImperatorAugustus: consolidated assistant avatar and status display, moved energy to top, added : to fiend status
!differs from main_screen by showing ava instead of ava_clear for slave_exist, and ava_gray instead of ava for slave_faint
if assistant_state = CONST_INT['slave_exist']:
	*p '
<img src = "<<$assistant[''ava'']>>.png">
'
	*p '
Energy <<$assistant_energy_stars>>'
elseif assistant_state = CONST_INT['no_slave']:
	*p '

'
	*p '
No assistant'
elseif assistant_state = CONST_INT['slave_faint']:
	*p '
<img src = "<<$assistant["ava_gray"]>>.png">
'
	*p '
Unconscious'
elseif assistant_state = CONST_INT['slave_dead']:
	*p '
<img src = "<<$assistant["ava_gray"]>>.png">
'
	*p '
Died'
end
	$tooltip_text = func('$addon', 'no_rate_stat_tooltip_text', 'house_mess', house_mess, -1)
	*nl '<a class="tooltip-left" tooltip-data="<<$tooltip_text>>" href = "EXEC: msg $house_mess_chart"><<$house_mess[house_mess]>>'
	if ate_already >= max(1, master_str) and cooked_food <= master_str:
		$tooltip_text = 'Eating again tonight is not necessary to maintain your strength'
		*nl '<div style="display:inline-block;position:relative;" class="tooltip-left" tooltip-data="<<$tooltip_text>>"><<dyneval($vb_cycle_skill, max(ate_already, cooked_food_plus), "Not Hungry")>>
'
		! if the master ate well enough during the day, food only provides an additional health benefit - low quality food will be ignored
		! eating high quality food can raise master health up to one level below the food quality grade (max of A+ health with S+ food)
	else
		$tooltip_text = func('$addon', 'no_rate_stat_tooltip_text', 'cooked_food', cooked_food_plus, 1)
		*nl '<div style="display:inline-block;position:relative;" class="tooltip-left" tooltip-data="<<$tooltip_text>>"><<$cooked_food_label[cooked_food_plus]>>
'
	end
	if pet_tentacle = 0:
		*nl '<<$tentacle_state[tentacle_state]>>'
	else
		*nl '<<$tentacle_name[tentacle_size]>>: <<$tentacle_state[tentacle_state]>>'
	end
*p '
'

!ImperatorAugustus: consolidated slave avatar and status display
!differs from main_screen by showing ava instead of ava_clear for slave_exist, and ava_gray instead of ava for slave_faint
if slave_state = CONST_INT['slave_exist']:
	*p '
<img src = "<<$slave["ava"]>>.png">
'
	*p '
Energy <<$slave_energy_stars>>'
		$tooltip_text = func('$addon', 'no_rate_full_grade_tooltip_text', 'mood', slave['mood'], 1)
		*nl '<a class="tooltip-left" tooltip-data="<<$tooltip_text>>" href="EXEC: msg $mood_chart"><<$mood[slave_mood_plus]>>'
		if slave['virtue'] > 0 and slave['sin'] > 0:
			$tooltip_text = '<<$slave_name>> feels both guilty and meritorious'
		elseif slave['virtue'] > 0:
			$tooltip_text = '<<$slave_name>> feels meritorious'
		elseif slave['sin'] > 0:
			$tooltip_text = '<<$slave_name>> feels guilty'
		else
			$tooltip_text = '<<$slave_name>> feels neither guilty nor meritorious'
		end
		*nl '<div style="display:inline-block;position:relative;" class="tooltip-left" tooltip-data="<<$tooltip_text>>"><<$behavior_evaluation[eval]>>
'
		$tooltip_text = func('$addon', 'no_rate_stat_tooltip_text', 'hygiene', slave['hygiene'], -1)
		*nl '<a class="tooltip-left" tooltip-data="<<$tooltip_text>>" href = "EXEC: msg $hygiene_chart"><<$personal_hygiene[slave["hygiene"]]>>'
	*p '
'
elseif slave_state = CONST_INT['no_slave']:
	*p '

'
	*p '
No slave
'
elseif slave_state = CONST_INT['slave_faint']:
	*p '
<img src = "<<$slave["ava_gray"]>>.png">
'
	*p '
Unconscious
'
elseif slave_state = CONST_INT['slave_dead']:
	*p '
<img src = "<<$slave["ava_gray"]>>.png">
'
	*p '
Died
'
end

if ui_style = 2:
	if sound_on = 1:
		*p '

'
	else
		*p '

'
	end
else
	if sound_on = 1:
		*p '

'
	else
		*p '

'
	end
end

!options
if ui_style = 2:
	if city_form ! 1000: *p '

'
else
	if city_form ! 1000: *p '

'
end

!console button, only in developer versions
if instr($title_fix, 'Dev') ! 0: *p '

'

if city_form = 1000:
	*p '

'
	*p '

MUSIC:		<<music_volume>>%
'
	*nl '
SOUND:		<<sound_volume>>%

'
end

act '1':
	music_volume -= 10
	if music_volume < 0: music_volume = 0
	gt $curloc
end
act '2':
	music_volume += 10
	if music_volume > 100: music_volume = 100
	gt $curloc
end
act '3':
	if music_volume ! 0:
		rem_music_volume = music_volume
		music_off = 1
		music_volume = 0
	else
		music_volume = rem_music_volume
		music_off = 0
	end
	gt $curloc
end

act '4':
	sound_volume  -= 10
	if sound_volume < 0: sound_volume = 0
	gt $curloc
end
act '5':
	sound_volume += 10
	if sound_volume > 100: sound_volume = 100
	gt $curloc
end
act '6':
	if sound_volume ! 0:
		rem_sound_volume = sound_volume
		sound_off = 1
		sound_volume = 0
	else
		sound_volume = rem_sound_volume
		sound_off = 0
	end
	gt $curloc
end

*p '
<<$setting_display>>
'
*p '
<<$setting_display_c>>
'
*p '
<<$setting_display_c2>>
'
*p '
<<$setting_display_r>>
'

if sbros = 1:
	sbros = 0
	gt 'city_menu_form'
end

if city_form ! 1000 and city_form < 2000:
	if sound_on = 1:
		*p '

'
	else
		*p '

'
	end
end

!Travel buttons added to the city menu - crushboss (simplified - ImperatorAugustus)
if city_form ! 1000 and city_form < 2000 and exam_in_progress = 0:
	$quick_move_action = "show"
	gs 'sjm_UI_UIadds'
else
	$quick_move_action = "none"
end

--- city_screen ---------------------------------


code:
# colosseum_fight
количество_врагов = 1

if colosseum_fight = 1 or colosseum_fight = 11 or colosseum_fight = 21 or colosseum_fight = 31:
	g = rand(1,3)
	if g = 1:$силуэт_моба['голая_рабыня'] = "content/pic/mob/glad_naked.png" & $аватара_моба['голая_рабыня'] = "content/pic/mob/glad_naked_ava.png"
	if g = 2:$силуэт_моба['голая_рабыня'] = "content/pic/mob/glad_naked_2.png" & $аватара_моба['голая_рабыня'] = "content/pic/mob/glad_naked_ava_2.png"
	if g = 3:$силуэт_моба['голая_рабыня'] = "content/pic/mob/glad_naked_3.png" & $аватара_моба['голая_рабыня'] = "content/pic/mob/glad_naked_ava_3.png"
	$враг[1] = 'голая_рабыня'
end

if colosseum_fight = 2 or colosseum_fight = 12 or colosseum_fight = 22 or colosseum_fight = 32:
	g = rand(1,3)
	if g = 1:$силуэт_моба['госпожа'] = "content/pic/characters/mistress_morrigan.png" & $аватара_моба['госпожа'] = "content/pic/characters/mistress_ava.png"
	if g = 2:$силуэт_моба['госпожа'] = "content/pic/mob/glad_mistress_2.png" & $аватара_моба['госпожа'] = "content/pic/mob/glad_mistress_ava_2.png"
	if g = 3:$силуэт_моба['госпожа'] = "content/pic/mob/glad_mistress_3.png" & $аватара_моба['госпожа'] = "content/pic/mob/glad_mistress_ava_3.png"
	$враг[1] = 'госпожа'
end

if colosseum_fight = 3 or colosseum_fight = 13 or colosseum_fight = 23 or colosseum_fight = 33:
	g = rand(1,3)
	if g = 1:$силуэт_моба['шиноби'] = "content/pic/mob/glad_shinobi.png" & $аватара_моба['шиноби'] = "content/pic/mob/glad_shinobi_ava.png"
	if g = 2:$силуэт_моба['шиноби'] = "content/pic/mob/glad_shinobi_2.png" & $аватара_моба['шиноби'] = "content/pic/mob/glad_shinobi_ava_2.png"
	if g = 3:$силуэт_моба['шиноби'] = "content/pic/mob/glad_shinobi_3.png" & $аватара_моба['шиноби'] = "content/pic/mob/glad_shinobi_ava_3.png"
	$враг[1] = 'шиноби'
end

if colosseum_fight = 4 or colosseum_fight = 14 or colosseum_fight = 24 or colosseum_fight = 34:
	g = rand(1,2)
	if g = 1:$силуэт_моба['амазонка'] = "content/pic/mob/glad_amason.png" & $аватара_моба['амазонка'] = "content/pic/mob/glad_amason_ava.png"
	if g = 2:$силуэт_моба['амазонка'] = "content/pic/mob/glad_amason_2.png" & $аватара_моба['амазонка'] = "content/pic/mob/glad_amason_ava_2.png"
	$враг[1] = 'амазонка'
end

if colosseum_fight = 5 or colosseum_fight = 15 or colosseum_fight = 25 or colosseum_fight = 35:
	g = rand(1,3)
	if g = 1:$силуэт_моба['латница'] = "content/pic/mob/glad_armored.png" & $аватара_моба['латница'] = "content/pic/mob/glad_armored_ava.png"
	if g = 2:$силуэт_моба['латница'] = "content/pic/mob/glad_armored_2.png" & $аватара_моба['латница'] = "content/pic/mob/glad_armored_ava_2.png"
	if g = 3:$силуэт_моба['латница'] = "content/pic/mob/glad_armored_3.png" & $аватара_моба['латница'] = "content/pic/mob/glad_armored_ava_3.png"
	$враг[1] = 'латница'
end

if colosseum_fight > 10:
	combatant = 1
end

if colosseum_fight > 20:
	combatant = 2
end

interaction_city = 199
gt 'interaction_city'
--- colosseum_fight ---------------------------------

repo_name: Sutopia/game

license: unknown


code:
# controls
!controls hint

*p '

'
*p '
    Controls in this game can be carried out solely with the help of the mouse. Interactive, clickable elements will turn your cursor into a hand.'
*nl '    Almost all actions are available from the central menu, but there are shortcuts for most common ones. Orders for cooking, cleaning, bathing, sex, milking, punishments and rewards can be issued with quick buttons under the character portraits (when corresponding actions are needed). You can set who will do cleaning and cooking with rules on your slave/assistant screen (click their portrait or press S or A when at home). The big button with the image of an academic cap opens a list of training courses. You also can start a personal lesson by clicking a skill on the slave screen, or order your assistant to teach a lesson via buttons on the side of the assistant screen.'
*nl '    Some choices are colored gray, which means that they are unavailable. The reason for this may be not meeting the requirements. Usually, you can click the grey text (or in menus hover over the small arrow in the lower left corner of the button icon) for more information.'
*nl '    When clickable left and right arrows are displayed, pressing SPACE is usually equivalent to clicking the right arrow. Press ESC to close some menus and exit some locations. At home, you can press D to open the master screen.'
*nl '    Have a nice game!
'

*p '

'

--- controls ---------------------------------


code:
# credits
!about the game

*p '

'
*p '
2014 - Original author (until version 1.2.1): Old Huntsman'
*nl 'Mail for contact: old_huntsman@yahoo.com'
*nl 'This game is built on the AERO QSP platform and designed for use with the FastQSP player by Graylor (bundled with the game). You can check the author’s blog for other games (untranslated) from this author.'
*nl 'If you want to support the author in creating new games or just thank him for this one, don’t be shy to send your donations via Yandex-money or PayPal, all necessary information is available for this in his blog.
'
*nl '2019 - Thanks to Beaver14, Crushboss and the defunct HF community for having led us to version 1.7.5. Thanks to Fugitive Red for version 1.8 which is the basis of this version.
'
*nl 'Thanks to Qwertyu12359 for leading the 2.0 project to completion. Thanks to Powerairmax for all his tedious work on the beta version, over so many months. Thanks to Lokplart, Pianocat, ImperatorAugustus and utterlyjunky for significant contributions. Thanks to all the F95Zone community users for help with bugs, playthrough guides, and additional mods.
'

*p '

'

--- credits ---------------------------------


code:
# debug_info
!Debug Info - Created by crushboss
debug_rand = 0

gs 'main_layout'
gs '$slave_price'

*p '
<img src="content\pic\bg\<<$bg[$place]>>.png">
'

$slave_ava_portrait = $slave['ava']

*p '

'

*p '
'
*nl '<<$slave_name>>'
*nl '<img src = "<<$slave_ava_portrait>>.png">
'

*p '
'
*nl '<<$slave_name>>'
*nl '<img src = "content\pic\girls\face\<<slave_type>>.png">
'

*p '
'
*nl 'Obedience Factors'
*nl 'Obedience: <<slave["obedience"]>>'
*nl 'Fear: <<slave["fear"]>>'
*nl 'Fear Rate: <<slave_rate["fear"]>>'
*nl 'Despair/Angst: <<slave["angst"]>>'
*nl 'Despair Rate: <<slave_rate["angst"]>>'
*nl 'Spoil: <<slave["spoil"]>>'
*nl 'Spoil Rate: <<slave_rate["spoil"]>>'
*nl 'Mood: <<slave["mood"]>>'
*nl 'Mood Rate: <<slave_rate["mood"]>>'
*nl 'Arousal: <<slave["arousal"]>>'
*nl 'Arousal Rate: <<slave_rate["arousal"]>>'
*nl 'Master Supermacy/Aura: <<master_supermacy>>'
*nl 'Psy: <<$slave_psy_status>>
'

*p '
'
*nl '<<$master_name>>'
*nl '<img src = "<<$master_ava_color>>">
'

*p '
'
*nl 'Obedience Building Stats'
*nl 'Devotion: <<slave["moral"]>>'
*nl 'Devotion Rate: <<slave_rate["moral"]>>'
*nl 'Taming/Submission: <<slave["instinct"]>>'
*nl 'Taming/Submission Rate: <<slave_rate["instinct"]>>'
*nl 'Habit: <<slave["custom"]>>'
*nl 'Habit Rate: <<slave_rate["custom"]>>'
*nl 'Awareness: <<slave["rational"]>>'
*nl 'Awareness Rate: <<slave_rate["rational"]>>'
*nl 'Misc Stat - Sex_sum: <<slave["sex_sum"]>>

'

*p '
'
*nl 'There are three phases of slave training'
*nl '1. Obedience through Fear, Intimidation, and Aura'
*nl '2. Obedience builds naturally from Habit, Awareness, and Taming'
*nl '3. Obedience is obtained through Devotion (best result)
'

*p '

'

debug_rand = rand (1,6)
if debug_rand = 1: *p '

'
if debug_rand = 2: *p '

'
if debug_rand = 3: *p '

'

!if nsfw = 0: *p func('display_fullimage', 'slave', 'full_image_slave')

if exam_in_progress = 0:
	*p '

'
else
	*p '

'
end

--- debug_info ---------------------------------


code:
# debug_info_assistant
!Debug Info Assistant - Created by crushboss
debug_rand = 0

gs 'main_layout'
gs '$slave_price', 'assistant' &! replaced gs '$assistant_rank_stats' - ImperatorAugustus

*p '
<img src="content\pic\bg\<<$bg[$place]>>.png">
'

$assistant_ava_portrait = $assistant['ava']

*p '

'

*p '
'
*nl '<<$assistant_name>>'
*nl '<img src = "<<$assistant_ava_portrait>>.png">
'

*p '
'
*nl '<<$assistant_name>>'
*nl '<img src = "content\pic\girls\face\<<assistant_type>>.png">
'

*p '
'
*nl 'Obedience Factors'
*nl 'Obedience: <<assistant["obedience"]>>'
*nl 'Fear: <<assistant["fear"]>>'
*nl 'Fear Rate: <<assistant_rate["fear"]>>'
*nl 'Despair/Angst: <<assistant["angst"]>>'
*nl 'Despair Rate: <<assistant_rate["angst"]>>'
*nl 'Spoil: <<assistant["spoil"]>>'
*nl 'Spoil Rate: <<assistant_rate["spoil"]>>'
*nl 'Mood: <<assistant["mood"]>>'
*nl 'Mood Rate: <<assistant_rate["mood"]>>'
*nl 'Arousal: <<assistant["arousal"]>>'
*nl 'Arousal Rate: <<assistant_rate["arousal"]>>'
*nl 'Master Supermacy/Aura: <<master_supermacy>>'
*nl 'Psy: <<$assistant_psy_status>>
'

*p '
'
*nl '<<$master_name>>'
*nl '<img src = "<<$master_ava_color>>">
'

*p '
'
*nl 'Obedience Building Stats'
*nl 'Devotion: <<assistant["moral"]>>'
*nl 'Devotion Rate: <<assistant_rate["moral"]>>'
*nl 'Taming/Submission: <<assistant["instinct"]>>'
*nl 'Taming/Submission Rate: <<assistant_rate["instinct"]>>'
*nl 'Habit: <<assistant["custom"]>>'
*nl 'Habit Rate: <<assistant_rate["custom"]>>'
*nl 'Awareness: <<assistant["rational"]>>'
*nl 'Awareness Rate: <<assistant_rate["rational"]>>'
*nl 'Misc Stat - Sex_sum: <<assistant["sex_sum"]>>

'

*p '
'
*nl 'There are three phases of slave training'
*nl '1. Obedience through Fear, Intimidation, and Aura'
*nl '2. Obedience builds naturally from Habit, Awareness, and Taming'
*nl '3. Obedience is obtained through Devotion (best result)
'

*p '

'

debug_rand = rand(1,6)
if debug_rand = 1: *p '

'
if debug_rand = 2: *p '

'
if debug_rand = 3: *p '

'

!if nsfw = 0: *p func('display_fullimage', 'assistant', 'full_image_slave')

*p '

'

--- debug_info_assistant ---------------------------------


code:
# demo_estate
!Tutorial Mode - Estate initialization
!Created by crushboss

!Room Picture fix for Tutorial Mode - crushboss
$estate = 'white_house'
$interior = 'classic'
interior_prestige['classic'] = 1

$study = 'classic'
$interior_study_large['classic'] = 'interiors\classic_study_large'
$interior_study['classic'] = 'interiors\classic_study'
$interior_study_info['classic'] = '   '
$bg['study'] = $interior_study[$study]
$bg['home_lux'] = $interior_study_large[$study]
$place_name['study'] = $estate_study_name[$estate]
$place_location['study'] = $estate_study_location[$estate]
$place_info['study'] = $interior_study_info[$study]

$bed = 'classic'
$interior_bed_large['classic'] = 'interiors\classic_bedroom_large'
$interior_bed['classic'] = 'interiors\classic_bedroom'
$interior_bed_info['classic'] = '   '
$bg['bedroom'] = $interior_bed[$bed]
$bg['bedroom_lux'] = $interior_bed_large[$bed]
$place_name['bedroom'] = $estate_bed_name[$estate]
$place_location['bedroom'] = $estate_bed_location[$estate]
$place_info['bedroom'] = $interior_bed_info[$bed]

$bath = 'classic'
$interior_bath_large['classic'] = 'interiors\classic_bath_large'
$interior_bath['classic'] = 'interiors\classic_bath'
$interior_bath_info['classic'] = '   '
$bg['bathroom'] = $interior_bath[$bath]
$bg['bathroom_lux'] = $interior_bath_large[$bath]
$place_name['bathroom'] = $estate_bath_name[$estate]
$place_location['bathroom'] = $estate_bath_location[$estate]
$place_info['bathroom'] = $interior_bath_info[$bath]

$dungeon = 'classic'
$interior_dungeon_large['classic'] = 'interiors\classic_dungeon_large'
$interior_dungeon['classic'] = 'interiors\classic_dungeon'
$interior_dungeon_info['classic'] = '   '
$bg['dungeon'] = $interior_dungeon[$dungeon]
$bg['dungeon_lux'] = $interior_dungeon_large[$dungeon]
$place_name['dungeon'] = $estate_dungeon_name[$estate]
$place_location['dungeon'] = $estate_dungeon_location[$estate]
$place_info['dungeon'] = $interior_dungeon_info[$dungeon]

$kitchen = 'classic'
$interior_kitchen_large['classic'] = 'interiors\classic_kitchen_large'
$interior_kitchen['classic'] = 'interiors\classic_kitchen'
$interior_kitchen_info['classic'] = '   '
$bg['kitchen'] = $interior_kitchen[$kitchen]
$bg['kitchen_lux'] = $interior_kitchen_large[$kitchen]
$place_name['kitchen'] = $estate_kitchen_name[$estate]
$place_location['kitchen'] = $estate_kitchen_location[$estate]
$place_info['kitchen'] = $interior_kitchen_info[$kitchen]

$lab = 'classic'
$interior_lab_large['classic'] = 'interiors\classic_lab_large'
$interior_lab['classic'] = 'interiors\classic_lab'
$interior_lab_info['classic'] = '   '
$bg['lab'] = $interior_lab[$lab]
$bg['lab_lux'] = $interior_lab_large[$lab]
$place_name['lab'] = $estate_lab_name[$estate]
$place_location['lab'] = $estate_lab_location[$estate]
$place_info['lab'] = $interior_lab_info[$lab]

$boudoir = 'classic'
$interior_boudoir_large['classic'] = 'interiors\classic_boudoir_large'
$interior_boudoir['classic'] = 'interiors\classic_boudoir'
$interior_boudoir_info['classic'] = '   '
$bg['boudoir'] = $interior_boudoir[$boudoir]
$bg['boudoir_lux'] = $interior_boudoir_large[$boudoir]
$place_name['boudoir'] = $estate_boudoir_name[$estate]
$place_location['boudoir'] = $estate_boudoir_location[$estate]
$place_info['boudoir'] = $interior_boudoir_info[$boudoir]

--- demo_estate ---------------------------------


code:
# demo_intro
!Training beginning in the demo game
gs 'demo_layout'
$master_name = 'Jack'
npc_attitude = 11
$place = 'guild_hall'
if txt = 0: txt = 1
killvar '$text'

$npc_id = 'госпожа_ангелика'

*p '

'

if lecture = 0:
	$text[1] = '- Gaudete! I am Mistress Angelika. The council of Guild Masters has given me the honor to train and certify beginners. What is your name?'
	$text[2] = '- My name is <<$master_name>>. I have long dreamed about this moment.'
	$text[3] = 'Mistress Angelika checks the list and nods.
' + _
	'- It indicates here that you have already fully paid the entry fee, <<$master_name>>. Good. But consider this: we will not tolerate black sheep in our guild, no matter how much they pay. The honor of our organization is paramount.'
	$text[4] = '- In order to become a full member of the Slavers Guild you’ll have to pass the exam in conditions close to practice. We also provide training for beginners. I will tell you everything I know a hundred times if need be.'
end

npc = 1
if lecture = 100:
	if game_over = 1: gt 'Start'
	npc = 0
	if exam_in_progress = 0:
		*p '
'
		*nl '
Lecture I: Components of success

'
		*nl '
Lecture II: Psychology of submission

'
		*nl '
Lecture III: Sticks and carrots

'
		*nl '
Lecture IV: Kitchen slavery

'
		*nl '
Check the conditions of the exam

'
		*nl '
Start the practical examination

'
		*nl '
Leave the Guild

'
		$text[1] = 'I must choose which lecture I want to hear, or I can ask about the conditions of the examination or ask to start when I am ready.'
	else
		*p '

'
		*nl '
Lecture I: Components of success

'
		*nl '
Lecture II: Psychology of submission

'
		*nl '
Lecture III: Sticks and carrots

'
		*nl '
Lecture IV: Kitchen slavery

'
		*nl '
Hand over the examination work

'
		*nl '
Back to work

'
		gs '$slave_price'
		if rating >= 4:
			$text[1] = 'According to my calculations, my slave already meets <<$rating[rating]>> rank. I think it’s time to show her to Mistress Angelika and finish the exam.'
		else
			$text[1] = 'It seems to me that my slave is not good enough yet, although I can ask Mistress Angelika to evaluate her. Or just to remind me something from her lectures…'
		end
	end
end

if lecture = 1:
	$text[1] = 'Slave rating is affected by various factors. Firstly, it is the sum of her skills. The ability to keep the house, entertain her master and sexual techniques - all increase her rating.'
	$text[2] = 'Another important factor is her obedience. A perfect slave should thoroughly fulfill all the rules and obey any request of her master without hesitation and delay. Most valued is the sincere desire to please and serve.'
	$text[3] = 'Also of considerable importance is the mental state of a slave. On one hand she should not be squeamish or haughty, but on the other it is good when the girl is temperamental and has a strong character. People don’t usually like nondescript dolls. People are drawn to bright personalities.'
	$text[4] = 'Finally, charm has a very significant influence on her rating. The extent to which the slave is able to show herself and if she looks stylish. At the same level of skill, a stylish slave will always please the customer more than a dull one. It is necessary to take this into account when selling slaves to elite customers.'
	$text[5] = 'If your training leaves scars on her body, her charm will inevitably fall. Be careful and measure force. It is also necessary to track the weight and physical condition of the girl. She should be neither too thin nor too thick. Stamina and health is very important.'
	$text[6] = 'A client is likely to refuse to buy a poorly presented slave, and might refuse to buy that slave even if you fix their appearance. It is necessary to take into account the vagaries of customers.'
	$text[7] = 'It should also be remembered that this applies only to the general case. Each customer may have their own requirements, which strongly change the rating of our goods in his eyes.'
	$text[8] = 'If a client acquires a gladiatrix from you, her strength and exoticism will be important, but her housekeeping and cooking skills won’t matter. In the future, you will have to select untrained slaves and train them based on a specific customer’s wishes.'
	$text[9] = 'Since the Slavers Guild is the customer for the examination, we will only take into account her overall rating. Her individual skills won’t matter as long as her overall rating is high enough.'
end

if lecture = 2:
	$text[] = 'A rebellious slave is a complete punishment for the master. One of the most important tasks of any trainer is unquestioned obedience. This is the only way that you can do further training effectively and get a decent rating.'
	$text[] = 'The slave’s willingness to obey depends on a variety of factors. It is important to know all of them and understand how positive factors can be produced and maintained. Listen carefully.'
	$text[] = 'The first thing that comes to mind: fear. You can do anything you want with a slave. In most cases it will not be difficult to intimidate her using pain, abuse and violence. We were able to calculate that the average motivation of fear is almost twice as strong as any other.'
	$text[] = 'It should however be remembered that fear has its pitfalls. Firstly, you have to be careful with punishments, so as not to cause irreparable physical harm to the girl. But even more important is not to damage her mind.'
	$text[] = 'Whenever you punish a slave, she will not only start to fear you, but her dissatisfaction will also grow. This is a direct way to drive a slave into a deep depression. Without positive motivation, training a slave will be very difficult because her distress and self-pity will stop the girl from focusing on her training.'
	$text[] = 'Besides lowering her mood, fear has an additional dark side. We call it despair: a destructive terror emanating from a misunderstanding and rejection of fear. If a slave gets punished without feeling guilt, or if the intensity of punishment exceeds the degree of guilt she feels - her despair inevitably grows.'
	$text[] = 'A sensitive girl may fall into despair simply because of her bad mood. When a slave is extremely gentle, sadness will lead her to depression faster. Whenever you consider punishing your slave, do not only consider the degree of her guilt, but also her sensitivity.'
	$text[] = 'Despair destroys personality. Under its influence a slave begins to lose her temperament and self-confidence, gradually breaking her will. In the early stages it can help, but in the end it will only lower her rating. Be careful.'
	$text[] = 'To get rid of despair, try to ensure that your slave is elated. Satisfied girls will gradually forget their despair. Rewarding her with time for herself can help also. In addition, with a good mood it will be much easier to learn new material and she will concentrate more during training.'
	$text[] = 'At the same time, a slave that is satisfied with life will quickly forget about her fear, meaning that you will have to develop other sources of respect so that she obeys you. Namely: habit, taming, awareness and devotion.'
	$text[] = 'Let’s start with habit. It is no secret that people can obey orders just because they are used to doing it. Every time a slave obeys your instructions and rules, her habit of slavery slightly increases. Gradually, the slave will just forget that she once was free.'
	$text[] = 'While boosting the development of habitual obedience is difficult, try to be strict towards your slave; it will speed up the process. A proud personality will develop habit slowly, but habit will also gradually make them lose their pride. The same is true for humiliation, of course.'
	$text[] = 'A good foundation for obedience is what we call awareness - a rational understanding of the slave’s position. Try to explain to the slave that loyalty will be rewarded, and that resistance will lead to inevitable punishment. Awareness promotes obedience, but a strong will and pride can interfere with accepting her fate.'
	$text[] = 'Awareness can be achieved not only by direct subordination, but also through reasonable rewards. By rewarding a slave, you do not just improve her mood, you also make her realize that obedient behavior leads to good treatment.'
	$text[] = 'Be extremely careful though. Rewarding a slave beyond her merits can make her spoiled. A spoiled slave is less controllable and will always require some kind of positive incentive. Otherwise, she will start to get upset and fall into despair. To correct this, you must not hesitate to put her in her place. Do not reward every act of compliance, as this also leads to spoiling. It is best to give rewards no more than once or twice each day.'
	$text[] = 'In addition to awareness, there is also taming - instinctive obedience, when your slave subconsciously feels your superiority and strives to please you. Weak-willed people are more prone to this type of obedience.'
	$text[] = 'To develop a slave’s taming you can use punishments. When non-compliance causes pain, obedience will become a reflex. Another way to develop taming is exploiting sexual desire. People are subconsciously drawn to the source of pleasure.'
	$text[] = 'While punishing a slave beyond her understanding causes despair, if you punish her too lightly, she may grow spoiled. If you neglect to punish her and she disobeys you again, her taming will inevitably weaken. But if you give her a new task, and she performs it diligently, her feeling of merit will reduce her guilt. While it is best not to let a guilty slave sleep unpunished, if she is frightened a respite may lift her spirits.'
	$text[] = 'The final goal of raising her obedience is to make her accept slave morality. When a slave accepts her position with all of her heart and sincerely wants to serve her master, she has reached a moral growth that we call devotion. This source of loyalty is doubly valuable because it is the most reliable and will motivate her to do her best even after she is sold to a new owner.'
	$text[] = 'Devotion begins to appear when on one hand the slave is satisfied with her position and is in a good mood, and on the other she has developed habitual as well as instinctual and rational obedience. Be mindful that it is difficult to develop devotion in a slave who is arrogant or terrified of you. To strengthen her loyalty, you can also reward her with companionship and intimacy.'
	$text[] = 'Acknowledged whip masters are able to sharply raise their slave’s devotion through catharsis: a special state of enlightenment, the moment of truth, comes in the second of highest pain or pleasure. But this technique is only for the best.'
	$text[] = 'Summing up, we can isolate some simple rules of training: punish your slave for misdeeds, matching the intensity of punishment to the guilt she feels. Reward your slave for good behavior, but only on merit and not too often. If she does not fear you, give her at least three rules to follow so she starts to develop her habit and does not become spoiled. Control her orgasms and keep watch over her mood.'
	$text[] = 'I will now say a few words about superiority and physical resistance. It will be much easier to subdue the girl who initially feels that you are stronger and. On the other hand, if she feels that she is stronger than you, she will not want to obey.'
	$text[] = 'Whether or not she will feel your superiority is influenced by several factors. First - of course - your physical strength. Second - your spiritual strength and charisma. Third - the experience of command, the ability to dominate. Finally - your appearance. Good looks make it easier to submit to you.'
	$text[] = 'But the slave’s personal qualities are also important. A strong character, high emotionality and, of course, the slave’s pride will prevent her from feeling your superiority. Also, watch out if she does feel smarter than you, thinking that she can outwit you. She will be less inclined to obey.'
	$text[] = 'If your superiority is low, she might put up a fight. In response to your attempts to punish or rape her, your slave will defend herself by force. If she can beat you, the consequences can be dire. But your victory will confirm your superiority.'
	$text[] = 'Superiority alone, even if very high, does not guarantee your orders will be followed, but it accelerates the development of obedience and reduces the likelihood of physical confrontation. Keep yourself in good physical shape, develop a commanding voice and keep a good physical appearance.'
end

if lecture = 3:
	$text[1] = 'Let’s talk more about punishments and rewards. In the second lecture we talked about despair and spoiling, but I will repeat myself. Punishing a slave too much - we feed despair. Rewarding her with something she does not deserve - we pamper and spoil the slave, although it improves her mood.'
	$text[2] = 'It is important to understand the key point: the merits and sins of the slave differ from case to case. You should understand what made her act in a certain way.'
	$text[3] = 'Suppose that you take an innocent girl that is not accustomed to mistreatment and tell her to mate with a tribal bull for your entertainment. In her eyes, refusing to do that is not a serious offense, as your demand is far above what she is willing to do.'
	$text[4] = 'If you brutally punish the girl for disobeying such an order, it will inevitably lead to despair, as she does not understand why the rejection of such a vile act can be regarded as something impermissible. But over time, things will change.'
	$text[5] = 'If your slave is already trained and rather obedient, she will actually realize her sin. Rejection of the same action with a bull from the already prepared girl should cause a much more severe reaction from you.'
	$text[6] = 'Same story with the rewards. Do not only evaluate the result, but keep the slave’s personality in mind. Suppose your nearly untrained slave has agreed to a lesson on deep throating. Even if the result is not perfect, she agreed to do it and overcame her resistance. She should be rewarded properly.'
	$text[7] = 'On the contrary, if a slave is doing something very well because she already knows how to do it, and it is completely effortless - she does not deserve a reward. You may even consider punishing her.'
	$text[8] = 'Always evaluate the slave’s merits and sins on a five-point system. And also evaluate the power of rewards and punishments. Always keep in mind: she gets what she deserves.'
	$text[9] = 'But remember that what I said is for general guidance only. There are cases when it makes sense to punish or reward the slave more than she deserves, even at the risk of despair or spoiling her. Decisions are always made by you. Use your experience and intuition.'
	$text[10] = 'Let’s move on to the specific types and forms of rewards and punishments. Any impact derives its strength from the slave’s specific desires and fears.'
	$text[11] = 'Punishments are based on pain, feelings of helplessness, disgust, shame, psychological vulnerability, phobias of blood, darkness, spiders, water, fire and other things.'
	$text[12] = 'Rewards may be based on the need for approval, desire for comfort, a passion for luxury, sexual pleasure or even food if she a sweet tooth.'
	$text[13] = 'Each slave has her own strengths and weaknesses, her passions and phobias. Learn what she wants and what she is afraid of, and then use it for your own purposes - it is the key to gaining control over a slave rapidly.'
	$text[14] = 'Imagine that you have to train a fearless, battle-hardened warrior. Surely you will not be able to break her will by flogging or with the sight of blood. But you can try to put pressure on her psychologically or tie her up so that she feels helpless in front of you.'
	$text[15] = 'Do not forget that a person gets used to everything. Resistance develops to the types of exposure, and to specific methods of punishment and reward. Exceptions are only the slave’s innate phobias and passions. As for the rest, be creative and try not to repeat the same methods too often.'
	$text[16] = 'Verbal rewards and punishments have one very significant advantage: they do not take a lot of time and effort, neither yours nor your slave’s. However, this is the all the upsides this method has. Praising and swearing quickly lose strength, as well as threats and promises if you don’t act on them.'
	$text[17] = 'You can punish a slave on the spot without any available tools. It’s quick and practical, but remember that tools increase the efficiency of punishments. In addition, beatings can leave bruises on the girl. Gradually, the wounds will heal, but even the traces will reduce her rating and charm.'
	$text[18] = 'To inflict pain, try to use at least a minimum amount of tools. For spanking, in ascending order: slippers, belt, cane, lash and whip. Be careful when using either lash or whip, as the scars may remain forever. A lot depends on your skill. If you make a mistake, there is always the medical center.'
	$text[19] = 'A great advantage of binding your slave is that it means less effort. You punish your slave with arbitrarily long torment. Nevertheless, bondage on average is slightly less effective than physical punishment of the same level.'
	$text[20] = 'If your slave is aroused - reward her by caressing her. She will not lose energy herself, moreover, a good massage can even energize her more. But keep in mind that her arousal will only go down if she cums. Otherwise you will just raise her arousal even more. Also be mindful of your rules if you deny her orgasms.'
	$text[21] = 'To save your own energy, you can reward your slave with free time. If you just give her a rest, you may be able to use her remaining energy tomorrow. But your slave will be even more joyful if you give her the opportunity to have fun and play games.'
	$text[22] = 'If you have some extra sparks and you are not afraid that your slave may gain weight, you can reward her with sweets. Rare dishes can be very expensive, but even they can become boring if eaten many times in a row. When you reward a slave with sweets, try to add variety.'
	$text[23] = 'Some punishments may require special equipment or facilities. For the examination, we do not provide torture tools and units, so you will have to manage with the minimum.'
	$text[24] = 'For some rewards it may be necessary to take the slave out into the city. During examination training, you must not leave the walls of the guild, so those types of rewards will not be available. Nevertheless, we are confident that you will have enough opportunities for training.'
end

if lecture = 4:
	$text[1] = 'During training, you will have to watch out for a number of domestic issues. For this very reason, the majority of slavers acquire a personal assistant, oftentimes one of their slaves. Assistants can help with the housework, entertain you, keep track of your slaves and pass on skills to them.'
	$text[2] = 'The Guild does not provide assistants for the exam, so you will have to manage on your own. Of course, you can use the slave for housekeeping, if she is sufficiently obedient and has the necessary skills.'
	$text[3] = 'The first thing to remember is your personal and the slave’s hygiene. Dirt contributes to disease and reduces mood. In addition, a dirty slave receives greater damage from fights and tortures, as injuries might get infected.'
	$text[4] = 'Dirt accumulates over time and from many activities, especially those related to working, cleaning, cooking or dirty sex. To maintain hygiene, you should occasionally wash yourself. If you do not have a private bathroom in your home, you will have to go to the onsen at the hot spring, the beach or the spa.'
	$text[5] = 'The Guild has a bathroom attached to the examination area, so you do not need to go into the city. You can bathe alone or together with the slave. In the second case, only she will spend her energy, but will wash you both. In addition, this should elevate your mood.'
	$text[6] = 'Your home also gets dirty. Gradually it accumulates dust and dirt, stale clothes, dirty dishes and so on. Do not forget to carry out regular cleaning so as not to reduce the mood of all the inhabitants of the house. And remember, the bigger the mess at hand - the more difficult it will be to clean up.'
	$text[7] = 'Homemade food can greatly improve your own mood and your slave’s mood as well. However, its preparation requires time and effort. If you do not want to cook, you can get canned food and semi-finished goods.'
	$text[8] = 'Watch the weight of your slave. You should ensure that she is neither too fat nor too starved. Choose portions of food so that the weight of your slave remains stable, unless you are trying to change her.'
	$text[9] = 'An important thing is the personal characteristics of metabolism. A slave with a good metabolism is capable to absorb about twice as many calories as normal without harm and will gain more stamina from her meals, at least until she is healthy. A girl with a weak metabolism will quickly gain excess weight and it will be difficult for her to lose weight.'
	$text[10] = 'Especially for a slave who lacks endurance, but even for the most capable, remember that she can damage herself if she over-works her muscles. Be mindful of her limits when commanding your slave to do something that is physically demanding. If she seems less energetic than usual, it may be necessary to adjust your plans.'
	$text[11] = 'If you are not a born cook or butler, doing housework will be a heavy burden on your mood. However, until you have an assistant, you sometimes will need to do it yourself. Giving this task to a slave may not be productive, especially if she lacks skill or does not have enough energy. On the contrary, doing housework is a simple task that even a disobedient slave might not refuse, so it can be a good place to start in building positive habits.'
end

if lecture = 5:
	$text[1] = '- And what kind of exam, Mistress?'
	$text[2] = '- The task is to train a slave for sale. We will give you the basic premise, a choice of slaves, a set of clothes, a full refrigerator and funding in the amount of eight hundred sparks. You’ll have to pay the rent and feed your slave.'
	$text[3] = '- These sparks will last about a month. More or less depending on your frugality. Anyway, during this time you will have to raise the rating of your slave at least to <<$rating[4]>> rank.'
	$text[4] = '- If by the time you run out of sparks the girl has a bad rating - you failed your exam. If your slave dies - you failed the exam too. Do you get it?'
	$text[5] = '- Completely. That does not sound too difficult.'
	if txt = 5: npc_attitude = 31
	$text[6] = '- Excellent. Self-confidence - already half of the work. The most important quality for a person of our profession. All that is left to do is show that you are able to do it yourself. You can start right now or continue training until you feel ready.'
end

if lecture = 11:
	$text[1] = 'Mistress Angelika is intently looking at my slave and the shine of a single eye makes it obvious that she used Auspex.'
	$text[2] = 'After scanning the aura of your slave, she examines her body and asks probably a hundred questions, a fair amount of which are addressed to you. You try to answer honestly.'
	if rating >= 4:
		$text[3] = 'Mistress Angelika nods approvingly:
' + _
		'- Yes, I think I will accept your work. Your skills are sufficient to be able to feed yourself with our craft, and most importantly - you will not dishonor the good name of our Guild.'
		$text[4] = '- I will give my recommendations to the master’s council and tomorrow you’ll become one of us. There will be a small official ceremony and banquet, which we will pay by selling your slave. You can relax now.'
		game_over = 1
	else
		$text[3] = 'Mistress Angelika disappointedly tilts her head to the side:
' + _
		'- No, you are not yet ready. To become a full member of the Guild you will have to achieve a much better result. It is not so difficult after all.'
		$text[4] = 'Mistress Angelika tells me to go back to training and work hard until the end of the examination. Maybe I can still make it.'
	end
end

if lecture = 12:
		$text[1] = 'Your slave never regained consciousness, no matter what you tried to do. You had to go back to the Guild.'
		$text[2] = 'Mistress Angelika sternly looked at you and disappointedly tilted her head to the side:
' + _
		'- So you managed to kill your slave, <<$master_name>>? Was it so difficult to maintain the health of a single slave? To become a full member of the Guild, it will be necessary to achieve a much better result. It is not so difficult after all.'
		$text[3] = '- And what about the girl? We will have to give her to the butcher. As for you, I can not recommend you to the master’s council. You can file an appeal if you wish.'
		game_over = 1
	end
end

if lecture = 13:
	$text[1] = 'The money you got for slave training ran out, so you have brought the slave to the Guild to complete the exam. Honestly, you feel slightly uncomfortable: Since you used up all of your allowance, the result should be excellent.'
	$text[2] = 'Mistress Angelika is intently looking at my slave and the shine of a single eye makes it obvious that she used Auspex.'
	$text[3] = 'After scanning the aura of your slave, she examines her body and asks probably a hundred questions, a fair amount of which are addressed to you. You try to answer honestly.'
	if rating >= 4:
		$text[4] = 'Mistress Angelika nods approvingly:
' + _
		'- Yes, I think I will accept your work. Your skills are sufficient to be able to feed yourself with our craft, and most importantly - you will not dishonor the good name of our Guild.'
		$text[5] = '- I will give my recommendations to the master’s council and tomorrow you’ll become one of us. There will be a small official ceremony and banquet, which we will pay by selling your slave. You can relax now.'
		game_over = 1
	else
		$text[4] = 'Mistress Angelika disappointedly tilts her head to the side:
' + _
		'- No, you are not yet ready. To become a full member of the Guild you will have to achieve a much better result. It is not so difficult after all.'
		$text[5] = '- Judging by the fact that you no longer have any sparks, the training is finished unsuccessfully. Hopefully we can at least cover our expenses. As for you, I can not recommend you to the master’s council. You can file an appeal if you wish.'
		game_over = 1
	end
end

if npc = 1:
	*p '

'
	*p '
<<$npc_name[$npc_id]>>'
	*nl '<<$npc_status[$npc_id]>>
'
	*nl'Information for consideration:
'
	*p '
<<$npc_attitude[npc_attitude]>>
'
	*nl '<<$npc_info[$npc_id]>>
'
else
	*p '
<<$place_name[$place]>>'
	*nl '<<$place_location[$place]>>
'
	*nl 'Information for consideration:
'
	*p '
<<$place_info[$place]>>
'
end

*p '
<<$text[txt]>>
'

if lecture ! 100:
	if txt > 1:
		addobj ''
	else
		addobj ''
	end
	addobj ''
end

--- demo_intro ---------------------------------


code:
# demo_layout
INTEGRATED_ACTIONS = 0
$backimage = 'content/pic/ui/old/bg_old.png'

SHOWOBJS 1
SHOWSTAT 0
SHOWACTS 0

!$onnewloc = ''

LCOLOR = rgb(0,0,255)
FCOLOR = rgb(0,0,0)

$MAINDESC_BACKIMAGE = ''
! removed non-existent path 'content/.png' -ImperatorAugustus
MAINDESC_X = 1
MAINDESC_Y = 1
MAINDESC_W = 1280
MAINDESC_H = 800

$OBJECTS_BACKIMAGE = ''
! removed non-existent path 'content/c.png' -ImperatorAugustus
OBJECTS_X = 780
OBJECTS_Y = 660
OBJECTS_W = 50
OBJECTS_H = 100

--- demo_layout ---------------------------------


code:
# demo_menu_form
gs '$newloc' &! ensure all stats are updated before displaying them
$toplay = 'girl'

!check for drug sound, all other sounds will be disabled except bulk sound
if bulk ! 1:
	!close all
else
	bulk = 0
end
dynamic $slave_pass_out
dynamic $master_pass_out &! master should be last

is_home = 1

$text_display = ''
!option display
$setting_display = ''
$setting_display_c = ''
$setting_display_c2 = ''
$setting_display_r = ''
$return_lock = 'demo_menu_form'
sp_txt = 0

!gs '$moodlets_account' - no need to update mood every single time a menu is displayed or navigated, doing it in $newloc is sufficient - ImperatorAugustus
quest_description_mode = 0

!training ending condition
if exam_in_progress = 1:
	if slave_state = CONST_INT['no_slave']:
		txt = 1
		lecture = 12
		gt 'demo_intro'
	end
end

!main menu
if menu_form = 0:
	$place = 'home_lux'

	if nsfw = 0: $text_display += func('display_fullimage', 'slave', 'center_image_home_demo')

	if slave_state = CONST_INT['slave_exist']:
		$text_display += {

Slave activities

}
	else
		$text_display += {

Slave activities

}
	end
	if slave_state = CONST_INT['slave_exist']:
		$text_display += {

Slave assignments

}
	else
		$text_display += {

Slave assignments

}
	end
	$text_display += {

Go to the Guild

}
	$text_display += {

Domestic issues

}
	if sparks > 0:
		$text_display += {

Cast a spell

}
	else
		$text_display += {

Cast a spell

}
	end

	$text_display += {

End of the day

}
end

if menu_form = 1:
	$text_display += {
Talk

}
	$text_display += {

Sex

}
	$text_display += {

Conduct a lesson

}
	$text_display += {

Sex education

}
	if sparks >= coach_price[0]:
		$text_display += {

Invite a tutor

}
	else
		$text_display += {

Invite a tutor

}
	end
	$text_display += {

Reward

}
	$text_display += {

Punish

}
	$text_display += {

Back

}
end

if menu_form = 3:
	if bath > 0:
		$text_display += {

Take a bath

}
	else
		$text_display += {

Take a bath

}
	end

	if kitchen > 0:
		$text_display += {

Prepare a meal

}
	else
		$text_display += {

Prepare a meal

}
	end
	if house_mess > 0:
		$text_display += {

Tidy up the house

}
	else
		$text_display += {

Tidy up the house

}
	end
	$text_display += {

Take a drug

}
	$text_display += {

Drink a potion

}
	$text_display += {

Accounting

}
	$text_display += {

Back

}
end

if menu_form = 5:
	if slave['stamina'] >= 1:
		$text_display += {

Do gymnastics

}
	end
	if house_mess > 0:
		$text_display += {

Tidy up the house

}
	end
	if kitchen > 0 and cooked_food < slave['cook']:
		$text_display += {

Prepare dinner

}
	end
	if bath > 0 and slave['hygiene'] > 1:
		$text_display += {

Take a bath

}
	end
	$text_display += {

Serve me

}
	$text_display += {

Take a drug

}
	$text_display += {

Drink a potion

}
	$text_display += {

Back

}
end

if menu_form = 6:
	$text_display += {

Spellbook

}

	if auspex = 0 and sparks >= 2:
		$text_display += {

Auspex (2 sparks)

}
	else
		$text_display += {

Auspex (2 sparks)

}
	end

	if magna_magnifika = 0 and already_done_today['65'] = 0 and sparks >= 5 and master_mage >= 1:
		$text_display += {

Magna Magnifika (5 sparks)

}
	else
		$text_display += {

Magna Magnifika (5 sparks)

}
	end

	if slave_state = CONST_INT['slave_exist'] and slave_already_done_today['64'] = 0 and slave['sententia_veritas'] = 0 and sparks >= 5 and master_mage >= 2:
		$text_display += {

Sententia Veritas (5 sparks)

}
	else
		$text_display += {

Sententia Veritas (5 sparks)

}
	end

	if slave_state = CONST_INT['slave_exist'] and slave_already_done_today['66'] = 0 and sparks >= 5 and master_mage >= 3:
		$text_display += {

Tremendio (5 sparks)

}
	else
		$text_display += {

Tremendio (5 sparks)

}
	end

	if slave_state = CONST_INT['slave_exist'] and slave["sin"] > 4 and sparks >= 5 and master_mage >= 4:
		$text_display += {

Cruciato (5 sparks)

}
	else
		$text_display += {

Cruciato (5 sparks)

}
	end

	if slave_state = CONST_INT['slave_exist'] and slave["virtue"] > 4 and sparks >= 5 and master_mage >= 4:
		$text_display += {

Delikacia (5 sparks)

}
	else
		$text_display += {

Delikacia (5 sparks)

}
	end

	if slave_state = CONST_INT['slave_exist'] and slave_already_done_today['67'] = 0 and sparks >= 5 and master_mage >= 4:
		$text_display += {

Domini Dictum (5 sparks)

}
	else
		$text_display += {

Domini Dictum (5 sparks)

}
	end

	if slave_state = CONST_INT['slave_exist'] and slave['brand'] ! 3 and slave['brand'] ! 4 and sparks >= 25 and master_mage >= 5:
		$text_display += {

Adverto Servili (25 sparks)

}
	else
		$text_display += {

Adverto Servili (25 sparks)

}
	end

	$text_display += {

Back

}
end

if menu_form = 11:
	$text_display += {

Ask

}
	$text_display += {

Affect

}
!	$text_display += {

Socialize

}
	if wizard_mode = 1: $text_display += {

* OBEY *

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 12:
	$text_display += {

Applied skills

}
	if slave['stamina'] >= 1:
		$text_display += {

Physical development

}
	else
		$text_display += {

Physical development

}
	end
	$text_display += {

Creative development

}
	$text_display += {

Animal behavior

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 13:
	$text_display += {

Petting

}
	$text_display += {

Oral techniques

}
	$text_display += {

Penetration

}
	$text_display += {

Demonstration

}
	$text_display += {

Fetishism

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 14:
	$text_display += {

Psychological pressure

}
	$text_display += {

Battering

}
	$text_display += {

Flagellation

}
	$text_display += {

Bondage and deprivation

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 15:
	$text_display += {

Moral encouragement

}
	$text_display += {

Spend time together

}
	$text_display += {

Give free time

}
	$text_display += {

Erotic reward

}
	$text_display += {

Make a gift

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 16:
	if master_excitement >= 0:
		$text_display += {

Active sex

}
		$text_display += {

Relaxed vaginal sex

}
		$text_display += {

Relaxed anal sex

}
		$text_display += {

Relaxed oral sex

}
		$text_display += {

Vaginal rape

}
		$text_display += {

Anal rape

}
		$text_display += {

Oral rape

}
	else
		$text_display += {

Active sex

}
		$text_display += {

Relaxed vaginal sex

}
		$text_display += {

Relaxed anal sex

}
		$text_display += {

Relaxed oral sex

}
		$text_display += {

Vaginal rape

}
		$text_display += {

Anal rape

}
		$text_display += {

Oral rape

}
	end
	!$text_display += {

Complex rape

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 17:
	if house_mess > 0 and slave['service'] <= 5:
		$text_display += '
Maid Lesson (<<$coach_price[slave["service"]]>>)

'
	else
		$text_display += {
Maid Lesson

}
	end
	if kitchen > 0 and slave['cook'] <= 5:
		$text_display += '
Cooking Lesson (<<$coach_price[slave["cook"]]>>)

'
	else
		$text_display += {
Cooking Lesson

}
	end
	if slave['secretary'] <= 5:
		$text_display += '
Secretary Lesson (<<$coach_price[slave["secretary"]]>>)

'
	else
		$text_display += {
Secretary Lesson

}
	end
	if slave['expression'] <= 5:
		$text_display += '
Elocution Lesson (<<$coach_price[slave["expression"]]>>)

'
	else
		$text_display += {
Elocution Lesson

}
	end
	if slave['nurse'] <= 5:
		$text_display += '
Nursing Lesson (<<$coach_price[slave["nurse"]]>>)

'
	else
		$text_display += {
Nursing Lesson

}
	end
	if lab = 1 and slave['alchemy'] <= 5:
		$text_display += '
Alchemy Lesson (<<$coach_price[slave["alchemy"]]>>)

'
	else
		$text_display += {
Alchemy Lesson

}
	end
	if slave['enchanter'] <= 5:
		$text_display += '
Witchcraft Lesson (<<$coach_price[slave["enchanter"]]>>)

'
	else
		$text_display += {
Witchcraft Lesson

}
	end
	if slave['stamina'] >= 1 and slave['stamina'] <= 5:
		$text_display += '
Athletics Lesson (<<$coach_price[slave["stamina"]]>>)

'
	else
		$text_display += {
Athletics Lesson

}
	end
	if slave['stamina'] >= 2 and slave['gladiatrix'] <= 5:
		$text_display += '
Gladiatrix Lesson (<<$coach_price[slave["gladiatrix"]]>>)

'
	else
		$text_display += {
Gladiatrix Lesson

}
	end
	if slave['stamina'] >= 2 and slave['calisthenics'] <= 5:
		$text_display += '
Dance Lesson (<<$coach_price[slave["calisthenics"]]>>)

'
	else
		$text_display += {
Dance Lesson

}
	end
	if slave['music'] <= 5:
		$text_display += '
Music Lesson (<<$coach_price[slave["music"]]>>)

'
	else
		$text_display += {
Music Lesson

}
	end
	if slave['art'] <= 5:
		$text_display += '
Painting Lesson (<<$coach_price[slave["art"]]>>)

'
	else
		$text_display += {
Painting Lesson

}
	end
	if slave['stamina'] >= 2 and slave['pet'] <= 5:
		$text_display += '
Pet Lesson (<<$coach_price[slave["pet"]]>>)

'
	else
		$text_display += {
Pet Lesson

}
	end
	if slave['stamina'] >= iif(slave["dressage"] < 3, 2, 3) and slave['dressage'] <= 5:
		$text_display += '
Pony Racing Lesson (<<$coach_price[slave["dressage"]]>>)

'
	else
		$text_display += {
Pony Racing Lesson

}
	end
	if slave['stamina'] >= 2 and slave['cowSK'] <= 5:
		$text_display += '
Cow Lesson (<<$coach_price[slave["cowSK"]]>>)

'
	else
		$text_display += {
Cow Lesson

}
	end
	$text_display += {
Back

}
	$text_display += {

Cancel

}
end

if menu_form = 31:
	if master_wealth_target = 0:
		$text_display += {

Standard of Living: Impoverished

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if master_wealth_target = 1:
		$text_display += {

Standard of Living: Poor

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if master_wealth_target = 2:
		$text_display += {

Standard of Living: Basic

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if master_wealth_target = 3:
		$text_display += {

Standard of Living: Comfortable

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if master_wealth_target = 4:
		$text_display += {

Standard of Living: Respectable

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if master_wealth_target = 5:
		$text_display += {

Standard of Living: Luxurious

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if master_wealth_target = 6:
		$text_display += {

Standard of Living: Extravagant

}
		$text_display += {
Increase

}
		$text_display += {
Decrease

}
	end
	if $bill_message ! '':
		$text_display += {

Financial report

<a href = 'EXEC: msg "<<$bill_message>>"'>

}
		else
		$text_display += {

Financial report

}
	end
	!lillimerge need to check this
	if slave["account_rule"] = 0 and assistant["account_rule"] = 0:
		$text_display += {

Do accounting personally

}
	else
		$text_display += {

Do accounting personally

}
	end
	if slave_state = CONST_INT['slave_exist'] and slave["account_rule"] = 1:
		$text_display += {

Slave - accountant

}
	elseif slave_state ! CONST_INT['slave_exist']:
		$text_display += {

Slave - accountant

}
	else
		$text_display += {

Slave - accountant

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 37:
	if lab_store["koffe"] > 0:
		$text_display += '

Drink Kamra (<<lab_store["koffe"]>>)

'
	else
		$text_display += {

Kamra ran out

}
	end
	if lab_store["kanabis"] > 0:
		$text_display += '

Take Datura (<<lab_store["kanabis"]>>)

'
	else
		$text_display += {

Datura ran out

}
	end
	if fridge["alcohol"] > 0:
		$text_display += '

Drink Alcohol (<<fridge["alcohol"]>>)

'
	else
		$text_display += {

Alcohol ran out

}
	end
	if lab_store["meth"] > 0:
		$text_display += '

Smell Pollen (<<lab_store["meth"]>>)

'
	else
		$text_display += '

Faeries’ Pollen ran out

}'
	end
	if lab_store["opium"] > 0:
		$text_display += '

Dive into Oblivion (<<lab_store["opium"]>>)

'
	else
		$text_display += {

Essence of Oblivion ran out

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

!main menu - Drink a potion - self
if menu_form = menu_Drink_potion:

	func('$menu', '===BEGIN===', 'column_0')

	if вакхический_нектар > 0:
			func('$menu', 'goto', $menu_item_nectar_master, menu_nectar_master, 'interaction', 'interaction', 'Bacchic nectar', 'Drink Bacchic Nectar potion (<<вакхический_нектар>>)')
	else
			func('$menu', 'exec', $menu_item_nectar_master_gray, empty, 'Bacchic nectar', 'you ran out of bacchic nectar potions')
	end
	if тонизируюзщий_эликсир > 0:
			func('$menu', 'goto', $menu_item_elixir_master, menu_elixir_master, 'interaction', 'interaction', 'Tonic elixir', 'Drink Tonic elixir potion (<<тонизируюзщий_эликсир>>)')
	else
			func('$menu', 'exec', $menu_item_elixir_master_gray, empty, 'Tonic elixir', 'you ran out of Tonic elixir potions')
	end
	if целительный_бальзам > 0:
			func('$menu', 'goto', $menu_item_Balm_master, menu_Balm_master, 'interaction', 'interaction', 'Miracle Balm', 'Drink Miracle Balm potion (<<целительный_бальзам>>)')
	else
			func('$menu', 'exec', $menu_item_Balm_master_gray, empty, 'Miracle Balm', 'you ran out of Miracle Balm potions')
	end
	if афродизиак > 0:
			func('$menu', 'goto', $menu_item_Aphrodisiac_master, menu_Aphrodisiac_master, 'interaction', 'interaction', 'Aphrodisiac', 'Drink Aphrodisiac potion (<<афродизиак>>)')
	else
			func('$menu', 'exec', $menu_item_Aphrodisiac_master_gray, empty, 'Aphrodisiac', 'you ran out of Aphrodisiac potions')
	end
	if мощный_афодизиак > 0:
			func('$menu', 'goto', $menu_item_PowerfulAphrodisiac_master, menu_PowerfulAphrodisiac_master, 'interaction', 'interaction', 'Powerful Aphrodisiac', 'Drink Powerful Aphrodisiac potion (<<мощный_афодизиак>>)')
	else
			func('$menu', 'exec', $menu_item_PowerfulAphrodisiac_master_gray, empty, 'Powerful Aphrodisiac', 'you ran out of Powerful Aphrodisiac potions')
	end
	if приворотное_зелье > 0:
			func('$menu', 'goto', $menu_item_Philtre_master, menu_Philtre_master, 'interaction', 'interaction', 'Philtre', 'Drink Philtre potion (<<приворотное_зелье>>)')
	else
			func('$menu', 'exec', $menu_item_Philtre_master_gray, empty, 'Philtre', 'you ran out of Philtre potions')
	end
	if вода_леты > 0:
			func('$menu', 'goto', $menu_item_Lethe_master, menu_Lethe_master, 'interaction', 'interaction', 'Water of Lethe', 'Drink Water of Lethe potion (<<вода_леты>>)')
	else
			func('$menu', 'exec', $menu_item_Lethe_master_gray, empty, 'Water of Lethe', 'you ran out of Water of Lethe potions')
	end

	func('$menu', '===END===')
	$text_display += '

'
	$text_display += '

'
end

!main menu - Slave assignments - Drink a potion
if menu_form = menu_potion_S:
	if nsfw = 0: $text_display += func('display_fullimage', 'slave', 'center_image_home_demo')

	func('$menu', 'spacer', 2)

	func('$menu', '===BEGIN===', 'column_0')

	if вакхический_нектар > 0:
			func('$menu', 'goto', $menu_item_nectar_slave, menu_nectar_slave, 'interaction', 'interaction', 'Bacchic nectar', 'Order <<$slave_name>> to drink a Bacchic Nectar potion (<<вакхический_нектар>>)')
	else
			func('$menu', 'exec', $menu_item_nectar_slave_gray, empty, 'Bacchic nectar', 'You ran out of Bacchic Nectar potions')
	end
	if тонизируюзщий_эликсир > 0:
			func('$menu', 'goto', $menu_item_elixir_slave, menu_elixir_slave, 'interaction', 'interaction', 'Tonic elixir', 'Order <<$slave_name>> to drink a Tonic Elixir potion (<<тонизируюзщий_эликсир>>)')
	else
			func('$menu', 'exec', $menu_item_elixir_slave_gray, empty, 'Tonic elixir', 'You ran out of Tonic Elixir potions')
	end
	if целительный_бальзам > 0:
			func('$menu', 'goto', $menu_item_Balm_slave, menu_Balm_slave, 'interaction', 'interaction', 'Miracle Balm', 'Order <<$slave_name>> to drink a Miracle Balm potion (<<целительный_бальзам>>)')
	else
			func('$menu', 'exec', $menu_item_Balm_slave_gray, empty, 'Miracle Balm', 'You ran out of Miracle Balm potions')
	end
	if афродизиак > 0:
			func('$menu', 'goto', $menu_item_Aphrodisiac_slave, menu_Aphrodisiac_slave, 'interaction', 'interaction', 'Aphrodisiac', 'Order <<$slave_name>> to drink an Aphrodisiac potion (<<афродизиак>>)')
	else
			func('$menu', 'exec', $menu_item_Aphrodisiac_slave_gray, empty, 'Aphrodisiac', 'You ran out of Aphrodisiac potions')
	end
	if мощный_афодизиак > 0:
			func('$menu', 'goto', $menu_item_PowerfulAphrodisiac_slave, menu_PowerfulAphrodisiac_slave, 'interaction', 'interaction', 'Powerful Aphrodisiac', 'Order <<$slave_name>> to drink a Powerful Aphrodisiac potion (<<мощный_афодизиак>>)')
	else
			func('$menu', 'exec', $menu_item_PowerfulAphrodisiac_slave_gray, empty, 'Powerful Aphrodisiac', 'You ran out of Powerful Aphrodisiac potions')
	end
	if приворотное_зелье > 0:
			func('$menu', 'goto', $menu_item_Philtre_slave, menu_Philtre_slave, 'interaction', 'interaction', 'Philtre', 'Order <<$slave_name>> to drink a Philtre potion (<<приворотное_зелье>>)')
	else
			func('$menu', 'exec', $menu_item_Philtre_slave_gray, empty, 'Philtre', 'You ran out of Philtre potions')
	end
	if вода_леты > 0:
			func('$menu', 'goto', $menu_item_Lethe_slave, menu_Lethe_slave, 'interaction', 'interaction', 'Water of Lethe', 'Order <<$slave_name>> to drink a Water of Lethe potion (<<вода_леты>>)')
	else
			func('$menu', 'exec', $menu_item_Lethe_slave_gray, empty, 'Water of Lethe', 'You ran out of Water of Lethe potions')
	end

	func('$menu', '===END===')
	$text_display += '

'
	$text_display += '

'
end

if menu_form = 57:
	if lab_store["koffe"] > 0:
		$text_display += '

Drink Kamra (<<lab_store["koffe"]>>)

'
	else
		$text_display += {

Kamra ran out

}
	end
	if lab_store["kanabis"] > 0:
		$text_display += '

Blaze Datura (<<lab_store["kanabis"]>>)

'
	else
		$text_display += {

Datura ran out

}
	end
	if fridge["alcohol"] > 0:
		$text_display += '

Chug Alcohol (<<fridge["alcohol"]>>)

'
	else
		$text_display += {

Alcohol ran out

}
	end
	if lab_store["meth"] > 0:
		$text_display += '

Smell Pollen (<<lab_store["meth"]>>)

'
	else
		$text_display += '

Faeries’ Pollen ran out

}'
	end
	if lab_store["opium"] > 0:
		$text_display += '

Your Dose of Happiness (<<lab_store["opium"]>>)

'
	else
		$text_display += {

Essence of Oblivion ran out

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 111:
	$text_display += {

What do you think about me?

}
	$text_display += {

Are there things that are unpleasant for you?

}
	$text_display += {

Do you have any requests for me?

}
	$text_display += {

How are you feeling?

}
	$text_display += {

What do you want to do?

}
	$text_display += {

Tell me about your past

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 112:
	if slave_already_done_today['1121'] = 0:
		$text_display += {

Explain her position

}
	else
		$text_display += {

Explain her position

}
	end
	if slave_already_done_today['1122'] = 0:
		$text_display += {

Encourage

}
	else
		$text_display += {

Encourage

}
	end
	if slave_already_done_today['1123'] = 0:
		$text_display += {

Threaten

}
	else
		$text_display += {

Threaten

}
	end
	if slave_already_done_today['1124'] = 0 and slave['spoil'] > 0:
		$text_display += {

Put in place

}
	else
		$text_display += {

Put in place

}
	end
	$text_display += {

Give a new name

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 121:
	if house_mess > 0:
		$text_display += {

Maid Lesson

}
	else
		$text_display += {

Maid Lesson

}
	end
	if kitchen > 0:
		$text_display += {

Cooking Lesson

}
	else
		$text_display += {

Cooking Lesson

}
	end
	$text_display += {

Secretary Lesson

}
	$text_display += {

Elocution Lesson

}
	$text_display += {

Nursing Lesson

}
	if lab = 1:
		$text_display += {

Alchemy Lesson

}
	else
		$text_display += {

Alchemy Lesson

}
	end
	if library >= 0:
		$text_display += {

Witchcraft Lesson

}
	else
		$text_display += {

Witchcraft Lesson

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 122:
	$text_display += {

Athletics Lesson

}
	$text_display += {

Dance Lesson

}
	$text_display += {

Gladiatrix Lesson

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 123:
	$text_display += {

Music Lesson

}
	$text_display += {

Painting Lesson

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 124:
	$text_display += {

Pet Lesson

}
	!$text_display += {

Pet Lesson (Dog)

}
	if slave['stamina'] >= 2:
		$text_display += {

Pony Racing Lesson

}
	else
		$text_display += {

Pony Racing Lesson

}
	end
	!if slave['stamina'] >= 3:
	!	$text_display += {

Chariot Racing Lesson

}
	!else
	!	$text_display += {

Chariot Racing Lesson

}
	!end
	if slave['stamina'] >= 2:
		$text_display += {

Cow Lesson

}
	else
		$text_display += {

Cow Lesson

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 1233:
	if slave["music"] = 0:
		$text_display += {

Percussion

}
	else
		$text_display += {

Percussion

}
	end
	if slave["music"] = 1:
		$text_display += {

Singing

}
	else
		$text_display += {

Singing

}
	end
	if slave["music"] = 2:
		$text_display += {

Woodwinds

}
	else
		$text_display += {

Woodwinds

}
	end
	if slave["music"] = 3:
		$text_display += {

Piano

}
	else
		$text_display += {

Piano

}
	end
	if slave["music"] = 4:
		$text_display += {

Strings

}
	else
		$text_display += {

Strings

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 131:
	$text_display += {

Handjob

}
	$text_display += {

Footjob

}
	$text_display += {

Rubbing

}
	$text_display += {

Paizuri

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 132:
	$text_display += {

Kissing

}
	$text_display += {

Licking

}
	$text_display += {

Blowjob

}
	$text_display += {

Irrumatio

}
	$text_display += {

Rimming

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 133:
	$text_display += {

Vaginal sex

}
	$text_display += {

Fisting

}
	$text_display += {

Anal sex

}
	$text_display += {

Anal fisting

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 136:
	if bath > 0:
		$text_display += {

Enema

}
	else
		$text_display += {

Enema

}
	end
	$text_display += {

Masochism

}
	$text_display += {

Self-torture

}
	if bath > 0:
		$text_display += {

Golden shower

}
	else
		$text_display += {

Golden shower

}
	end
	if bath > 0:
		$text_display += {

Coprophagia

}
	else
		$text_display += {

Coprophagia

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 137:
	$text_display += {

Seduction

}
	$text_display += {

Masturbation

}
	$text_display += {

Dildo

}
	$text_display += {

Worship and humiliation

}
	$text_display += {

Exhibitionism

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 141:
	$text_display += {

Strictly chastise (=1)

}
	$text_display += {

Roughly scold (=1)

}
	$text_display += {

Threaten with sale (=2)

}
	$text_display += {

Threaten with tortures (=2)

}
	$text_display += {

Threaten with death (=3)

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 142:
	$text_display += {

Paddle (=2)

}
	$text_display += {

Slap (=2)

}
	$text_display += {

Pinch (=2)

}
	$text_display += {

Hit in the stomach (=3)

}
	$text_display += {

Beat brutally (=4)

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 143:
	$text_display += {

Spank with slipper (=1)

}
	$text_display += {

Flog with belt (=2)

}
	$text_display += {

Flog with cane (=4)

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 146:
	$text_display += {

Put into a corner (=1)

}
	$text_display += {

Put on peas (=2)

}
	if vibrator > 0:
		$text_display += {

Erotic bondage (=3 to 4)

}
	else
		$text_display += {

Erotic bondage

}
	end
	$text_display += {

Painful bondage (=3 to 4)

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 151:
	$text_display = ''
	$text_display += {

Stroll on the roof (=1)

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

full_day = slave['stamina'] - 1
if full_day < 1: full_day = 1

if menu_form = 152:
	if slave['energy'] >= 1:
		$text_display += {

An hour of rest (=1)

}
	else
		$text_display += {

An hour of rest (=1)

}
	end
	if slave['energy'] >= 1 and boardgames >= 0:
		$text_display += {

An hour of fun (=1)

}
	else
		$text_display += {

An hour of fun (=1)

}
	end
	if slave['energy'] >= full_day:
		$text_display += {

Day off for rest (=2)

}
	else
		$text_display += {

Day off for rest (=2)

}
	end
	if slave['energy'] >= full_day and boardgames >= 0:
		$text_display += {

Day off for fun (=2)

}
	else
		$text_display += {

Day off for fun (=2)

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 153:
	if slave["obedience"] > 0:
		$text_display += {

Gentle hug (=1)

}
		else
		$text_display += {

Gentle hug (=1)

}
	end
	if slave["obedience"] > 1:
		$text_display += {

Sensual massage (=2)

}
	else
		$text_display += {

Sensual massage (=2)

}
	end
	if slave["obedience"] > 2 and slave["arousal"] > 0:
		$text_display += {

Petting (=3)

}
	else
		$text_display += {

Petting (=3)

}
	end
	if slave["obedience"] > 2 and slave["arousal"] > 1:
		$text_display += {

Vibes (=4)

}
	else
		$text_display += {

Vibes (=4)

}
	end
	if slave["obedience"] > 2 and slave["arousal"] > 2:
		$text_display += {

Cunnilingus (=5)

}
	else
		$text_display += {

Cunnilingus (=5)

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 154:
	if sparks >= 2:
		$text_display += {

Bouquet of flowers ($2) (=1)

}
	else
		$text_display += {

Bouquet of flowers ($2) (=1)

}
	end
	if sparks >= 9:
		$text_display += {
Warm plaid ($9) (=2)

}
	else
		$text_display += {
Warm plaid ($9) (=2)

}
	end
	if sparks >= 15:
		$text_display += {
Plush toy ($15) (=3)

}
	else
		$text_display += {
Plush toy ($15) (=3)

}
	end
	if sparks >= 25:
		$text_display += {
Perfume ($20) (=4)

}
	else
		$text_display += {
Perfume ($20) (=4)

}
	end
	if sparks >= 50 and slave_inventory['pony'] = 0:
		$text_display += {
Mini-pony ($50 + $1/day) (=5)

}
	else
		$text_display += {
Mini-pony ($50 + $1/day) (=5)

}
	end
	$text_display += {

Clothes

}
	$text_display += {

Accessories

}
	$text_display += {

Sweet treats

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 1546:
	if sparks >= 3:
		$text_display += {

Headband ($3) (=1)

}
	else
		$text_display += {

Headband ($3) (=1)

}
	end
	if sparks >= 3:
		$text_display += {

Elegant ring ($3) (=2)

}
	else
		$text_display += {

Elegant ring ($3) (=2)

}
	end
	if sparks >= 5:
		$text_display += {

Gemstone earrings ($5) (=3)

}
	else
		$text_display += {

Gemstone earrings ($5) (=3)

}
	end
	if sparks >= 10:
		$text_display += {

Sparkling necklace ($10) (=4)

}
	else
		$text_display += {

Sparkling necklace ($10) (=4)

}
	end
	if sparks >= 20:
		$text_display += {

Precious tiara ($20) (=5)

}
	else
		$text_display += {

Precious tiara ($20) (=5)

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 1547:

	if sparks >= 5:
		$text_display += {

Soft slippers ($5) (=1)

}
	else
		$text_display += {

Soft slippers ($5) (=1)

}
	end
	if sparks >= 5:
		$text_display += {

Sundress ($5) (=2)

}
	else
		$text_display += {

Sundress ($5) (=2)

}
	end
	if sparks >= 10:
		$text_display += {

Gown ($10) (=3)

}
	else
		$text_display += {

Gown ($10) (=3)

}
	end
	if sparks >= 50:
		$text_display += {

Gorgeous dress ($50) (=4)

}
	else
		$text_display += {

Gorgeous dress ($50) (=4)

}
	end
	if sparks >= 100:
		$text_display += {

Wedding dress ($100) (=5)

}
	else
		$text_display += {

Wedding dress ($100) (=5)

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 155:
	if sparks >= 1:
		$text_display += {

Chocolate ($1) (=1)

}
	else
		$text_display += {

Chocolate ($1) (=1)

}
	end
	if sparks >= 2:
		$text_display += {

Cream cake ($2) (=2)

}
	else
		$text_display += {

Cream cake ($2) (=2)

}
	end
	if sparks >= 4:
		$text_display += {

Banana sundae ($4) (=3)

}
	else
		$text_display += {

Banana sundae ($4) (=3)

}
	end
	if sparks >= 8:
		$text_display += {

Euphorijelly ($8) (=4)

}
	else
		$text_display += {

Euphorijelly ($8) (=4)

}
	end
	if sparks >= 25:
		$text_display += {

Vesturian ambrosia ($25) (=5)

}
	else
		$text_display += {

Vesturian ambrosia ($25) (=5)

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 156:
	$text_display += {

Sparingly approve (=1)

}
	$text_display += {

Praise (=2)

}
	$text_display += {

Weighty compliment (=3)

}
	$text_display += {

Promise a reward (=4)

}
	$text_display += {

Promise a gift (=5)

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 541:
	if bath > 0:
		$text_display += {

Wash me

}
	else
		$text_display += {

Wash me

}
	end
	$text_display += {

Make me massage

}
	$text_display += {

Entertain me

}
	if master_excitement >= 0:
		$text_display += {

Active sex

}
		$text_display += {

Relaxed vaginal sex

}
		$text_display += {

Relaxed anal sex

}
		$text_display += {

Relaxed oral sex

}
	else
		$text_display += {

Active sex

}
		$text_display += {

Relaxed vaginal sex

}
		$text_display += {

Relaxed anal sex

}
		$text_display += {

Relaxed oral sex

}
	end
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 5413:
	$text_display += {

Concert

}
	$text_display += {

Acrobatics

}
	$text_display += {

Striptease

}
	$text_display += {

Erotic Show

}
	$text_display += {

Back

}
	$text_display += {

Cancel

}
end

if menu_form = 1000:
	$text_display = {

Wake up

}
end

if menu_form = 2000:
	$setting_display += {
{ { { AUTOSAVE } } }

}

	$setting_display += {

{ Each morning }

}
	if autosave_day ! 1:
		$setting_display += {

Off

}
	else
		$setting_display += {

On

}
	end
	$setting_display += {

{ Each decade }

}
	if autosave_decade ! 1:
		$setting_display += {

Off

}
	else
		$setting_display += {

On

}
	end

	$setting_display_r += {
{ { { NSFW } } }

}
	if nsfw ! 1:
		$setting_display_r += {

On

}
	else
		$setting_display_r += {

Off

}
	end

	$setting_display_r += {

{ { { SOUND SETTINGS } } }

}
	if nsfw_sound_disabled = 0:
			$setting_display_r += {

NSFW sounds are currently being played

}
	else
			$setting_display_r += {

NSFW sounds are currently disabled

}
	end

	$setting_display_c += {

Back

}

	! $setting_display_c2 += {

 Next

}
end

gt 'main_screen'
--- demo_menu_form ---------------------------------


code:
# development
!Development

*p '

'
*p '
Jack-o-nine-tails Game and Development Information:
'
*nl 'Current game play discussion (questions, bug reports, feature requests, etc.) can be found at https://f95zone.to/threads/jack-o-nine-tails-v2-2-old-huntsman-community-development.390/
'
*nl 'Please report any reproducible bugs that you find in-game.  This helps to ensure cleaner releases in the future.  Happy Gaming!
'

*p '

'

--- development ---------------------------------


code:
# display_fullimage
! func('display_fullimage', 'slavetype', 'divtype', 'psy') -- parameters are optional except the slavetype

if $args[1] = '': $args[1] = 'bg'

!$result = '
<img src="content\pic\<<$slave["fullimage"]>>.png">
'

args[2] = dyneval('result = <<$args[0]>>_type')
args[3] = 5 + dyneval('result = <<$args[0]>>["mood"]')
args[4] = dyneval('result = <<$args[0]>>["fat"]')
args[5] = dyneval('result = iif(<<$args[0]>>["breast_enhanced"] = 0, 0, <<$args[0]>>["boobs"])')
$args[6] = dyneval('$result = $<<$args[0]>>["cloth"]')
$args[7] = dyneval('$result = $<<$args[0]>>["fullimage"]')
$args[8] = dyneval('$result = $<<$args[0]>>_psy_status')

! helen and yasmin
if args[2] = 2575 or args[2] = 2574:
	if $args[6] = 'голая' or $args[6] = 'cow_gear' or $args[6] = 'petsuit' or $args[6] = 'anal_tail' or $args[6] = 'deprivation_suit': $args[6] = 'naked'
	$result = '<div id="<<$args[1]>>"><img src="content\pic\girls\full\clothed\' + iif(args[4] <= 1, 'model', iif(args[4] <= 3, 'voluptuous', 'obese')) + '\<<args[2]>>_<<$args[6]>>' + iif(args[5] > seed_boobs[args[2]], '_augmented', '') + '.png">
'
	if $args[2] = 'psy':
		$result += '<div id="<<$args[1]>>"><img src="content\pic\girls\full\mood\<<args[2]>>_<<$args[8]>>.png">
'
	else
		$result += '<div id="<<$args[1]>>"><img src="content\pic\girls\full\mood\<<args[2]>>_<<args[3]>>.png">
'
	end
else
	$result = '<div id="<<$args[1]>>"><img src="content\pic\<<$args[7]>>.png">
'
end

--- display_fullimage ---------------------------------


code:
# display_pic

if $args[2] = 'none':
	$result = ''
	exit
end

if code_defined['init_slave_image_characteristics'] = 0:
	code_defined['init_slave_image_characteristics'] = 1 &! do-once

	$music_acts[1] = 'singing'
	$music_acts[2] = 'piano'
	$music_acts[3] = 'percussion'
	$music_acts[4] = 'strings'
	$music_acts[5] = 'woodwind'

	$init_slave_image_characteristics = {
		! Getting slave info for showing pics lokplart
		if $dynslave['hairColor'] = '' and dynslave_state ! CONST_INT['no_slave']:
			if instr($dynslave['fullimage'], 'white') ! 0:
				$dynslave['hairColor'] = 'white'
			elseif instr($dynslave['fullimage'], 'red') ! 0:
				$dynslave['hairColor'] = 'red'
			elseif instr($dynslave['fullimage'], 'purple') ! 0:
				$dynslave['hairColor'] = 'purple'
			elseif instr($dynslave['fullimage'], 'pink') ! 0:
				$dynslave['hairColor'] = 'pink'
			elseif instr($dynslave['fullimage'], 'green') ! 0:
				$dynslave['hairColor'] = 'green'
			elseif instr($dynslave['fullimage'], 'brown') ! 0:
				$dynslave['hairColor'] = 'brown'
			elseif instr($dynslave['fullimage'], 'blue') ! 0:
				$dynslave['hairColor'] = 'blue'
			elseif instr($dynslave['fullimage'], 'blond') ! 0:
				$dynslave['hairColor'] = 'blond'
			elseif instr($dynslave['fullimage'], 'black') ! 0:
				$dynslave['hairColor'] = 'black'
			end
			if instr($dynslave['fullimage'], 'short') ! 0:
				$dynslave['hairLen'] = 'short'
			else
				$dynslave['hairLen'] = 'long'
			end
		end
	}
end

if $args[1] = 'music':
	$args[1] = $music_acts[rand(1, 5)]
elseif $args[1] = 'instruments':
	$args[2] = $music_acts[rand(2, 5)]
end

if $args[0] ! '':
	separator_index = instr($args[0], ',')
	if separator_index ! 0:
		$main_actor = $trim($mid($args[0], 1, separator_index - 1))
		$secondary_actor = $trim($mid($args[0], separator_index + 1))
	else
		$main_actor = $args[0]
		$secondary_actor = ''
	end
else
	$main_actor = 'slave'
	$secondary_actor = ''
end

!msg "main actor: " + $main_actor
!msg "secondary_actor: " + $secondary_actor

! getting main subject info
if $main_actor = 'slave':
	if $args[1] = 'fullimage':
		$result = $slave['fullimage']
		exit
	else
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'slave')
		$main_spec_noNr = $slave['hairColor'] + '_' + $slave['hairLen'] + '_' + $age[slave['age']]
		$main_gen_noNr = 'general_' + $age[slave['age']]
	end
elseif $main_actor = 'assistant':
	if $args[1] = 'fullimage':
		$result = $assistant['fullimage']
		exit
	else
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'assistant')
		$main_spec_noNr = $assistant['hairColor'] + '_' + $assistant['hairLen'] + '_' + $age[assistant['age']]
		$main_gen_noNr = 'general_' + $age[assistant['age']]
	end
elseif $main_actor = 'cow':
	if $args[1] = 'fullimage':
		$result = $cow['fullimage']
		exit
	else
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'cow')
		$main_spec_noNr = $cow['hairColor'] + '_' + $cow['hairLen'] + '_' + $age[cow['age']]
		$main_gen_noNr = 'general_' + $age[cow['age']]
	end
elseif $main_actor = 'prisoner':
	if $args[1] = 'fullimage':
		$result = $prisoner['fullimage']
		exit
	else
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'prisoner')
		$main_spec_noNr = $prisoner['hairColor'] + '_' + $prisoner['hairLen'] + '_' + $age[prisoner['age']]
		$main_gen_noNr = 'general_' + $age[prisoner['age']]
	end
elseif $main_actor = 'stock':
	if $args[1] = 'fullimage':
		$result = $stock['fullimage']
		exit
	else
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'stock')
		$main_spec_noNr = $stock['hairColor'] + '_' + $stock['hairLen'] + '_' + $age[stock['age']]
		$main_gen_noNr = 'general_' + $age[stock['age']]
	end
elseif $main_actor = 'farmhand':
	if $args[1] = 'fullimage':
		$result = $farmhand['fullimage']
		exit
	else
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'farmhand')
		$main_spec_noNr = $farmhand['hairColor'] + '_' + $farmhand['hairLen'] + '_' + $age[farmhand['age']]
		$main_gen_noNr = 'general_' + $age[farmhand['age']]
	end
end

if $args[3] = 'any_age':
	! special parameter that instructs us to omit the age portion of the image path (so we can still have matches for hair)
	$main_spec_noNr = $replace($main_spec_noNr, '_' + $age[slave['age']], '')
	$main_gen_noNr = $replace($main_gen_noNr, '_' + $age[slave['age']], '')
end

!msg "main spec: " + $main_spec_noNr
!msg "main gen: " + $main_gen_noNr

! getting secondary subject info (if it's a composite image) and building the specific and general images pools accordingly
if $secondary_actor = '':
	! if there's only one actor, build the specific and general image pools as usual.
	$picPath_spec_noNr = $args[1] + '_' + $main_spec_noNr
	$picPath_gen_noNr = $args[1] + '_' + $main_gen_noNr
elseif $secondary_actor ! '':
	if $secondary_actor = 'slave':
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'slave')
		$secondary_spec_noNr = $slave['hairColor'] + '_' + $slave['hairLen'] + '_' + $age[slave['age']]
		$secondary_gen_noNr = 'general_' + $age[slave['age']]
	elseif $secondary_actor = 'assistant':
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'assistant')
		$secondary_spec_noNr = $assistant['hairColor'] + '_' + $assistant['hairLen'] + '_' + $age[assistant['age']]
		$secondary_gen_noNr = 'general_' + $age[assistant['age']]
	elseif $secondary_actor = 'cow':
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'cow')
		$secondary_spec_noNr = $cow['hairColor'] + '_' + $cow['hairLen'] + '_' + $age[cow['age']]
		$secondary_gen_noNr = 'general_' + $age[cow['age']]
	elseif $secondary_actor = 'prisoner':
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'prisoner')
		$secondary_spec_noNr = $prisoner['hairColor'] + '_' + $prisoner['hairLen'] + '_' + $age[prisoner['age']]
		$secondary_gen_noNr = 'general_' + $age[prisoner['age']]
	elseif $secondary_actor = 'stock':
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'stock')
		$secondary_spec_noNr = $stock['hairColor'] + '_' + $stock['hairLen'] + '_' + $age[stock['age']]
		$secondary_gen_noNr = 'general_' + $age[stock['age']]
	elseif $secondary_actor = 'farmhand':
		dynamic $replace($init_slave_image_characteristics, 'dyn'+'slave', 'farmhand')
		$secondary_spec_noNr = $farmhand['hairColor'] + '_' + $farmhand['hairLen'] + '_' + $age[farmhand['age']]
		$secondary_gen_noNr = 'general_' + $age[farmhand['age']]
	elseif $secondary_actor = 'young':
		$secondary_spec_noNr = 'general_young'
		$secondary_gen_noNr = 'general_young'
	elseif $secondary_actor = 'milf':
		$secondary_spec_noNr = 'general_milf'
		$secondary_gen_noNr = 'general_milf'
	elseif $secondary_actor = 'loli':
		$secondary_spec_noNr = 'general_loli'
		$secondary_gen_noNr = 'general_loli'
	elseif $secondary_actor = 'general':
		if rand(1, 2) = 1:
			$secondary_spec_noNr = 'general_young'
			$secondary_gen_noNr = 'general_young'
		else
			$secondary_spec_noNr = 'general_milf'
			$secondary_gen_noNr = 'general_milf'
		end
	end

	if $args[3] = 'any_age':
		! special parameter that instructs us to omit the age portion of the image path (so we can still have matches for hair)
		$secondary_spec_noNr = $replace($secondary_spec_noNr, '_' + $age[slave['age']], '')
		$secondary_gen_noNr = $replace($secondary_gen_noNr, '_' + $age[slave['age']], '')
	end

	!msg "sec spec: " + $secondary_spec_noNr
	!msg "sec gen: " + $secondary_gen_noNr

	! find eligible image pools for two actors

	! identify specific image sets (in case images for both combinations A~B, B~A exist, random chance to use either set)
	$picPath_doubleSpec_noNr = $main_spec_noNr + '~' + $secondary_spec_noNr &! A~B
	if picMax[$args[1] + '_' + $picPath_doubleSpec_noNr] = 0 or rand(1,2) = 1:
		$picPath_doubleSpec_noNr = $secondary_spec_noNr + '~' + $main_spec_noNr &! B~A
		if picMax[$args[1] + '_' + $picPath_doubleSpec_noNr] = 0: $picPath_doubleSpec_noNr = $main_spec_noNr + '~' + $secondary_spec_noNr &! B&A is empty so revert to A~B (which might also be empty)
	end

	! main-specific secondary-general (in case images for both combinations A~B, B~A exist, random chance to use either set)
	$picPath_mainSpec_noNr = $main_spec_noNr + '~' + $secondary_gen_noNr &! A~B
	if picMax[$args[1] + '_' + $picPath_mainSpec_noNr] = 0 or rand(1,2) = 1:
		$picPath_mainSpec_noNr = $secondary_gen_noNr + '~' + $main_spec_noNr &! B~A
		if picMax[$args[1] + '_' + $picPath_mainSpec_noNr] = 0: $picPath_mainSpec_noNr = $main_spec_noNr + '~' + $secondary_gen_noNr &! B&A is empty so revert to A~B (which might also be empty)
	end

	! secondary-specific main-general (in case images for both combinations A~B, B~A exist, random chance to use either set)
	$picPath_secondarySpec_noNr = $secondary_spec_noNr + '~' + $main_gen_noNr &! A~B
	if picMax[$args[1] + '_' + $picPath_secondarySpec_noNr] = 0 or rand(1,2) = 1:
		$picPath_secondarySpec_noNr = $main_gen_noNr + '~' + $secondary_spec_noNr &! B~A
		if picMax[$args[1] + '_' + $picPath_secondarySpec_noNr] = 0: $picPath_secondarySpec_noNr = $secondary_spec_noNr + '~' + $main_gen_noNr &! B&A is empty so revert to A~B (which might also be empty)
	end

	! both general (in case images for both combinations A~B, B~A exist, random chance to use either set)
	$picPath_doubleGen_noNr = $main_gen_noNr + '~' + $secondary_gen_noNr &! A~B
	if picMax[$args[1] + '_' + $picPath_doubleGen_noNr] = 0 or rand(1,2) = 1:
		$picPath_doubleGen_noNr = $secondary_gen_noNr + '~' + $main_gen_noNr &! B~A
		if picMax[$args[1] + '_' + $picPath_doubleGen_noNr] = 0: $picPath_doubleGen_noNr = $main_gen_noNr + '~' + $secondary_gen_noNr &! B&A is empty so revert to A~B (which might also be empty)
	end

	!msg "double spec pool: " + $picPath_doubleSpec_noNr
	!msg "main spec pool: " + $picPath_mainSpec_noNr
	!msg "sec spec pool: " + $picPath_secondarySpec_noNr
	!msg "double gen pool: " + $picPath_doubleGen_noNr

	! for specific image pool, use the most specific eligible non-empty image set (picMax > 0): doubleSpec, mainSpec, or secondarySpec
	$picPath_spec_noNr = $args[1] + '_' + $picPath_doubleSpec_noNr
	specific_image_type = 2
	!msg "spec try 1: " + $picPath_spec_noNr
	! doubleSpec is now the specific pool, mainSpec, secondarySpec and doubleGen have chance for selection as general pool
	if picMax[$picPath_spec_noNr] = 0:
		$picPath_spec_noNr = $args[1] + '_' + $picPath_mainSpec_noNr
		specific_image_type = 5
		!msg "spec try 2: " + $picPath_spec_noNr
		! mainSpec is now the specific pool, secondarySpec and doubleGen have chance for selection as general pool
		if picMax[$picPath_spec_noNr] = 0:
			$picPath_spec_noNr = $args[1] + '_' + $picPath_secondarySpec_noNr
			specific_image_type = 7
			!msg "spec try 3: " + $picPath_spec_noNr
			! secondarySpec is now the specific pool, doubleGen has chance for selection as general pool
		end
	end

	! for general image pool, random between the remaining image pools (excluding empty sets and excluding the image set chosen for specific pool above)
	! 0-1 are unused (doubleSpec is always used as specific path if any images exist), 2,3,4 = mainSpec, 5,6 = secondarySpec, 7 = doubleGen
	pic_rand = rand(specific_image_type, 7)
	if (pic_rand >= 2 and pic_rand <= 4): $picPath_gen_noNr = $args[1] + '_' + $picPath_mainSpec_noNr
	if picMax[$picPath_gen_noNr] = 0 or (pic_rand = 5 or pic_rand = 6): $picPath_gen_noNr = $args[1] + '_' + $picPath_secondarySpec_noNr
	if picMax[$picPath_gen_noNr] = 0 or (pic_rand = 7): $picPath_gen_noNr = $args[1] + '_' + $picPath_doubleGen_noNr
end

!msg $picPath_spec_noNr
!msg $picPath_gen_noNr

! choosing gen or spec
if picMax[$picPath_spec_noNr] ! 0 and picMax[$picPath_gen_noNr] ! 0:
	pic_rand = rand(1, picMax[$picPath_spec_noNr] + picMax[$picPath_gen_noNr])
	pic_type = picMax[$picPath_gen_noNr] - picMax[$picPath_spec_noNr]
	if pic_type <= 0:
		if pic_rand > picMax[$picPath_gen_noNr] - (1 * (picMax[$picPath_gen_noNr] > 2)):
			$picPath = $picPath_spec_noNr
		else
			$picPath = $picPath_gen_noNr
			args[3] = 0 &! making the (safe?) assumption that general pics can be reused (see usage of args[3] below)
		end
	else
		if pic_rand > ((picMax[$picPath_spec_noNr] + picMax[$picPath_gen_noNr]) / 2) - (pic_type / 3) + (1 * (picMax[$picPath_spec_noNr] = 1)):
			$picPath = $picPath_gen_noNr
			args[3] = 0 &! making the (safe?) assumption that general pics can be reused (see usage of args[3] below)
		else
			$picPath = $picPath_spec_noNr
		end
	end
elseif picMax[$picPath_spec_noNr] = 0:
	$picPath = $picPath_gen_noNr
	args[3] = 0 &! making the (safe?) assumption that general pics can be reused (see usage of args[3] below)
elseif picMax[$picPath_gen_noNr] = 0:
	$picPath = $picPath_spec_noNr
else
	$picPath = 'none'
end

! choosing image number (random selection without reusing last used number of the same path)
if picMax[$picPath] = 0:
	pic_rand = 1
else
	pic_rand = rand(1, picMax[$picPath])
	! replacing pic if it is the same as last time and if it is possible (optional final parameter from caller can be an image number that should not be reused, for specific pics associated with one-time events)
	if (pic_rand = last_pic[$picPath] or pic_rand = args[3]) and picMax[$picPath] > 1:
		if pic_rand = picMax[$picPath]:
			! select any number not at the end of the range
			pic_rand = rand(1, picMax[$picPath] - 1)
		elseif pic_rand = 1:
			! select any number not at the beginning of the range
			pic_rand = rand(2, picMax[$picPath])
		elseif rand(1,2) = 1:
			! last_pic/args[3] is not at the beginning or end of the range - 50% chance to select a number after last_pic/args[3]
			pic_rand = rand(pic_rand + 1, picMax[$picPath])
		else
			! last_pic/args[3] is not at the beginning or end of the range - 50% chance to select a number before last_pic/args[3]
			pic_rand = rand(1, pic_rand)
		end
	end
	if pic_rand = args[3] and picMax[$picPath_gen_noNr] ! 0:
		! could not find an alternative specific pic (args[3] must be non-zero if it matches pic_rand, and we reset args[3] above if it is a general pic, so we know we have a specific path)
		! and at least one general pic exists - so use a random general pic instead
		$picPath = $picPath_gen_noNr
		pic_rand = rand(1, picMax[$picPath])
	else
		! normal case and args[3] failsafe if no general pic exists (this could only happen if we have just one specific pic and no general)
		! remember selected number for next time we look for an image with this path
		last_pic[$picPath] = pic_rand
	end
end

!msg "chosen pic: " + $picPath

! appending selected image number to gen or spec image path
if pic_rand > 1:
	$picPath = $args[2] + $picPath + '_' + $str(pic_rand)
else
	$picPath = $args[2] + $picPath &! numbered image filenames start from _2, do not append _1, do not use $replace($picPath, '_1') because _10 is a valid path
end

$result = $picPath

killvar '$picPath_spec_noNr'
killvar '$picPath_gen_noNr'
killvar '$picPath'
killvar 'new_pic_rand'
killvar 'pic_rand'
killvar 'pic_type'

--- display_pic ---------------------------------


code:
# end_contract
!Обрабатываем завершение контракта на обучение рабыни
!unused location

:loop
if $slave['contractor'] ! '':
	$npc_id = $slave['contractor']
	dynamic $npc_preferences[$npc_id]
	gs '$slave_price'

	if price >= npc_worth[$npc_id] and npc_bennies[$npc_id] > 0:
		npc_bennies[$npc_id] -= 1
		npc_relations[$npc_id] += 1
		brand_rate += 1
	else
		if npc_bennies[$npc_id] > 0:
			npc_bennies[$npc_id] -= 1
			npc_relations[$npc_id] -= 2
			brand_rate -= 1
		end
	end

	dynamic $sold_clothing
	dynamic $clear_slave_instance, 'slave'
	sparks += npc_reward[$npc_id]
	contract_done = 1
end

if $prisoner['contractor'] ! '' and contract_done = 0:
	gs 'slave_to_cage'
	jump 'loop'
end

if $cow['contractor'] ! '' and contract_done = 0:
	gs 'slave_to_cow'
	jump 'loop'
end

if contract_done = 0:
	contract_fail = 1
	contract_penalty = npc_worth[$npc_id]*2
	sparks -= contract_penalty
end

contract['time'] = 0
end_contract = 0

--- end_contract ---------------------------------