mid day update, start of Azazel's corruption

This commit is contained in:
Frisk 2024-12-25 16:06:51 +01:00
parent f90ddb81f1
commit 1a3f4ef6c1
18 changed files with 290 additions and 76 deletions

View file

@ -164,6 +164,9 @@ func createBodyparts():
skillsHolder.addPerk(Perk.CombatScratching)
skillsHolder.addPerk(Perk.CombatShove)
func getLootTable(_battleName):
return InmateLoot.new()
func onGivingBirth(_impregnatedEggCells: Array, _newkids: Array):
.onGivingBirth(_impregnatedEggCells, _newkids)

View file

@ -0,0 +1,27 @@
extends EventBase
func _init():
id = "AzazelCorruptionAttemptEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom)
func react(_triggerID, _args):
if not GM.pc.getLocation().begins_with("main_hall") or not (GM.pc.getLocation() in ["main_bathroom1"]):
return false
if not (GM.main.getModuleFlag("IssixModule", "Azazel_Affection_given", 0) > 0 and GM.main.getModuleFlag("IssixModule", "Quest_Status", 0) < 1):
return false
#if(!RNG.chance(30 + 10.0*GM.pc.getExposure()) || !GM.world.getRoomByID(GM.pc.getLocation()).loctag_MentalWard):
# return false
if RNG.chance(0.1):
var scene_index = GM.pc.getModuleFlag("IssixModule", "Azazel_Corruption_Scene", 1)
if scene_index == -1:
return false
runScene("AzazelCorruption"+str(scene_index))
return true
return false
func getPriority():
return 5

View file

@ -0,0 +1,16 @@
extends EventBase
func _init():
id = "IssixEvent"
func registerTriggers(es):
es.addTrigger(self, "OpeningSlaveryScreen")
func react(_triggerID, _args):
if false:
runScene("SomeScene")
return true
return false
func getPriority():
return 0

View file

@ -0,0 +1,22 @@
extends EventBase
func _init():
id = "IssixNovaTalkEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.SceneAndStateHook, ["NovaTalkScene", "talk"])
func run(_triggerID, _args):
if(GM.main.getModuleFlag("IssixModule", "Issix_Introduced", false) == true):
addButton("Issix", "Ask Nova about Issix", "main")
return true
return false
func onButton(_method, _args):
if(_method == "main"):
# GM.main.endCurrentScene()
runScene("NovaIssixTalkScene")
func getPriority():
return 20

View file

@ -45,6 +45,7 @@ func getFlags():
"PC_Saw_Artwork_At_Lamias": flag(FlagType.Bool),
"Hiisi_Crossword_Used": flag(FlagType.Number),
"Hiisi_Helped_Today": flag(FlagType.Bool),
"Azazel_Corruption_Scene": flag(FlagType.Number),
# Slavery related
"PC_Enslavement_Role": flag(FlagType.Number),
@ -73,7 +74,9 @@ func getFlags():
"Total_Fluids_Milked": flag(FlagType.Dict),
"Has_Been_Milked_Today": flag(FlagType.Bool),
"Submission": flag(FlagType.Number),
"Trained_With_Hiisi_Combat": flag(FlagType.Bool)
"Trained_With_Hiisi_Combat": flag(FlagType.Bool),
"PC_Pet_Didnt_Fullfill_Daily": flag(FlagType.Bool),
"PC_Pet_Didnt_Mate": flag(FlagType.Bool),
#"Gym_Bullies_Left_Alone": flag(FlagType.Bool) Currently cannot change the behavior of this :(
}
@ -93,7 +96,8 @@ func _init():
"res://Modules/IssixModule/Events/CornerPriorityEvent.gd",
"res://Modules/IssixModule/Events/SlaveryIntroEvent.gd",
"res://Modules/IssixModule/Events/IssixRegularSearch.gd",
"res://Modules/IssixModule/Events/LamiaCellEvent.gd"
"res://Modules/IssixModule/Events/LamiaCellEvent.gd",
"res://Modules/IssixModule/Events/TalkNovaEvent.gd"
]
scenes = [
@ -114,7 +118,8 @@ func _init():
"res://Modules/IssixModule/Scenes/SlaveryIntroScene.gd",
"res://Modules/IssixModule/Scenes/SlaveryInfoScreenScene.gd",
"res://Modules/IssixModule/Scenes/SlaveryFirst/IssixBringsComicbooks.gd",
"res://Modules/IssixModule/Scenes/SlaveryFirst/IssixFindsAvoidingPlayer.gd"
"res://Modules/IssixModule/Scenes/SlaveryFirst/IssixFindsAvoidingPlayer.gd",
"res://Modules/IssixModule/Scenes/IssixNovaTalkScene.gd"
]
characters = [
@ -152,19 +157,24 @@ func _init():
"res://Modules/IssixModule/Skills/Perks/PetSpeech.gd",
"res://Modules/IssixModule/Skills/Perks/PetWalk.gd"
]
statusEffects = [
"res://Modules/IssixModule/StatusEffects/BrandingPain.gd",
"res://Modules/IssixModule/StatusEffects/CatnipOverdose.gd"
]
speechModifiers = [
"res://Modules/IssixModule/SpeechModifiers/CatnipSpeech.gd",
"res://Modules/IssixModule/SpeechModifiers/LamiaMute.gd"
]
GlobalRegistry.registerLustTopicFolder("res://Modules/IssixModule/InterestTopics/")
GlobalRegistry.registerSkinsFolder("res://Modules/IssixModule/Skins/")
GlobalRegistry.registerStatusEffectFolder("res://Modules/IssixModule/StatusEffects/")
GlobalRegistry.sortRegisteredStatusEffectsByPriority()
GlobalRegistry.registerMapFloorFolder("res://Modules/IssixModule/Floors/")
GlobalRegistry.registerSpeechModifiersFolder("res://Modules/IssixModule/SpeechModifiers/")
GlobalRegistry.registerAttackFolder("res://Modules/IssixModule/Attacks/", true)
func postInit():
# Overwrite scenes for dealing with bullies, they need to be initiated in here due to module initialization order overwriting our modules
GlobalRegistry.registerScene("res://Modules/IssixModule/Scenes/Overwrites/BullyGangScene.gd", "Rahi") # Still consider it mostly Rahi's creation'
GlobalRegistry.registerEvent("res://Modules/IssixModule/Events/Overwrites/BullyGangEvent.gd")
#GM.ES.registerEventTrigger("OpeningSlaveryScreen", EventTriggerLocation.new()) # TODO Find a way to do that
static func addSceneToWatched(scene: String):
var scenes = GM.main.getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
@ -223,6 +233,7 @@ func calculateDailyScore() -> int:
if playerToFuck(): # TODO Need to check when this hook is run because likely wrong day
if GM.main.getModuleFlag("IssixModule", "Had_Sex_With_Issix", false) == false:
score -= 5
GM.main.setModuleFlag("IssixModule", "PC_Pet_Didnt_Mate", true)
else:
score += 5
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 1:
@ -233,11 +244,13 @@ func calculateDailyScore() -> int:
score += 1
else:
score -= 7
GM.main.setModuleFlag("IssixModule", "PC_Pet_Didnt_Fullfill_Daily", true)
else:
if time_served >= 60*60:
score += 1
else:
score -= 5
GM.main.setModuleFlag("IssixModule", "PC_Pet_Didnt_Fullfill_Daily", true)
return score
func tickDay():

View file

@ -0,0 +1,75 @@
extends SceneBase
func _init():
sceneID = "AzazelCorruption1"
func _run():
if(state == ""):
saynn("As you walk in the hallway you spot a certain familiar feline a few steps in front of you. It's Azazel, he stands against the wall with his entire body fully naked, right leg on the floor while left one bent and is in contact with the wall. Looking at you, he winks.")
saynn("[say=azazel]Heeeey there {pc.name}, sweetie! How are you doing?[/say]")
saynn("[say=pc]Pretty fine, what are you doing here? Shouldn't you be with your Master?[/say]")
saynn("[say=azazel]Even pets have their needs, right?[/say]")
saynn("[say=pc]Shouldn't Master like, walk you to the toilet or something?[/say]")
saynn("[say=azazel]Ohhh, is this something you'd like?[/say]")
addButton("Yes", "Admit that this would be pretty hot", "walkyes")
addButton("No", "Say that this wouldn't be your kind of thing", "walkno")
if state == "walkyes":
saynn("[say=pc]Uhhh.. I admit that sounds pretty hot.[/say]")
saynn("Azazel smirks, he puts his left feet on the ground while slowly and sensually takes two steps towards you, you can feel heat radiating off them.")
saynn("[say=azazel]I can't disagree with you there, it sounds really good.[/say]")
saynn("His paw reaches your chin as he puts two fingers to massage it while he licks his lips. He puts another paw on your {pc.thick} chest, doing round circles with his paw.")
saynn("[say=azazel]You know... I'm sure there is a still some space in my Master's corner, and I'd really really want to see you there, with a leash connected to your collar. I think you'd love it too, I think deep down you too would want to be a nice [pulse color=#ac1eff height=0.0 freq=1.0]"+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+"[/pulse] for your Master. Call it an expert opinion.[/say]")
saynn("You gulp, the way the feline said it made you flinch, and not in a bad way, it's a scary concept to be owned by someone else so directly. You are already a slave in this prison, but to give yourself so willingly? To a man wanting to assert power over others? That's...")
addButton("Hot", "Admit to yourself that this thought makes your knees weak", "hot")
addButton("Absurd", "You do not find this idea hot at all (disables future Azazel's corruption scenes)", "nothot")
if state == "walkno":
saynn("Azazel puts his left feet on the ground while slowly approaching you, studying you, you can feel his body heat.")
saynn("[say=azazel]Really? You wouldn't want to be a cute [pulse color=#ac1eff height=0.0 freq=1.0]"+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+"[/pulse] for your Master? To receive endless love, treats and have all of your needs satisfied by your hot Master?[/say]")
saynn("He looks at you with really surprised look, as if you've said something so illogically outrageous that he is unable to even comprehend such an answer.")
saynn("[say=azazel]Wouldn't you want to have scratches behind your ear every morning? To have food in your bowl? To be cared for in this bleak world? To fulfill your Master's wishes and be rewarded?[/say]")
saynn("He said, continuing a surprised tone.")
addButton("Yes", "Say that this does sound good...", "hot")
addButton("No", "Say that this is delusional to like it (disables future Azazel's corruption scene)", "nothot")
if state == "hot":
saynn("[say=pc]I would love that, actually...[/say]")
saynn("You look down embarrassed, imagining the prospects Azazel put in your mind.")
saynn("[say=azazel]Thought so.[/say]")
saynn("He says, lustfully")
saynn("[say=azazel]I have to go, think about it all [pulse color=#ac1eff height=0.0 freq=1.0]"+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+"[/pulse], think about it.[/say]")
saynn("He leaves, as you try to steady your mind from countless thoughts assulting it, of submission and obedience to a Master like Issix. After a moment you can move again.")
addButton("Leave", "Take your leave", "endthescene")
if state == "nothot":
saynn("[say=pc]Meh, not my sort of thing.[/say]")
saynn("The look of Azazel's face tells you everything, he feels hurt by your answer, this is not at all what he expected. His ears curl and he looks down at the floor.")
saynn("[say=azazel]I see... Okey then, sorry for wasting your time.[/say]")
saynn("He starts walking really slowly towards his Master's corner, his arms limpy, as if he was incredibly tired, even though a moment ago he felt full of energy. Oh well.")
addButton("Leave", "Take your leave", "endthescene")
func _react(_action: String, _args):
if _action == "walkno":
processTime(5*60)
if _action == "walkyes":
processTime(6*60)
GM.pc.addLust(30)
if _action == "hot":
processTime(5*60)
GM.pc.addLust(30)
setModuleFlag("IssixModule", "Azazel_Corruption_Scene", 2)
if _action == "nothot":
processTime(5*60)
setModuleFlag("IssixModule", "Azazel_Corruption_Scene", -1)
if(_action == "endthescene"):
endScene()
return
setState(_action)

View file

@ -0,0 +1,31 @@
extends SceneBase
func _init():
sceneID = "AzazelCorruption2"
func _run():
if(state == ""):
saynn("Lost in the murmur of big hallways you walk towards your goal when you get hit on your chest by a tail, a long leathery red tail ending in a spade. You blink, and realize that the tail you saw is in actuality a regular gray feline tail, you stop in your tracks, confused, looking for tail's owner you follow the trail, finding Azazel lusty look on you.")
saynn("[say=azazel]What's that in your look? Surprised to see me again outside of the corner?[/say]")
saynn("[say=pc]Uhh, no, it's just... Ah, forget it.[/say]")
saynn("He smiles.")
saynn("[say=azazel]Tell me sweetie, have you ever kissed?[/say]")
# Plan for the scene
#
#
func _react(_action: String, _args):
if _action == "hot":
processTime(5*60)
GM.pc.addLust(30)
setModuleFlag("IssixModule", "Azazel_Corruption_Scene", 3)
if(_action == "endthescene"):
endScene()
return
setState(_action)

View file

@ -3,8 +3,8 @@ extends ComputerBase
var connectedTo = ""
var loggedAsAdmin = false
var records = {"533": "ID: 533\nfirstname: Issix\nlastname: [corrupt]Solomon[/corrupt]\nitype: 1\n\nnotes: Issix, or rather [b]Gaap[/b] as his real real name goes, is a special case in BDCC, staff is NOT to take any punitive action in regards to this individual without first consulting with the director. He has not been convicted of any illegal activities, but rather has been introduced to prison based on order o[corrupt]f general Sonno[/corrupt]fer. \nOfficially - he is an inmate, unofficially he is is untouchable. Let him do whatever the fuck he wants, unless you don't value your own life. Incarcerated in [corrupt]4292 32 11[/corrupt].",\
"655": "ID: 655\nfirstname: Azazel\nlastname: Dreemurr\nitype: 3\nPast inhabitant of planet [b]Pueri Meritorii[/b], sentenced for sex work with untreated STD. Original sentence was 10 years, it has been extended to indefinite due to circumstances in the prison.\nNOTE: THIS INMATE IS OWNED BY INMATE 533, PLEASE REFER TO MENTIONED INMATE ABOUT ALL MATTERS PERTAINING TO THIS INMATE",\
"": ""}
"655": "ID: 655\nfirstname: Frisk\nlastname: Dreemurr\nitype: 3\nPast inhabitant of planet [b]Pueri Meritorii[/b], sentenced for sex work with untreated STD. Original sentence was 10 years, it has been extended to indefinite due to circumstances in the prison.\n\nNOTE: THIS INMATE IS OWNED BY INMATE 533, PLEASE REFER TO MENTIONED INMATE ABOUT ALL MATTERS PERTAINING TO THIS INMATE",\
"964": "ID: 964\nfirstname: "}
func _init():
id = "ClosetComputer"
@ -180,10 +180,16 @@ func reactToCommand(_command:String, _args:Array, _commandStringRaw:String):
func preparePCRecord() -> String:
var is_slave = GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) > 0
var player_crimes = {Flag.Crime_Type.Innocent: "pleaded innocent, got sentenced with no evidence (typical for our courts)", Flag.Crime_Type.Theft: "sentenced for theft of property", Flag.Crime_Type.Murder: "sentenced for murder", Flag.Crime_Type.Prostitution: "sentenced for providing sexual services without a license"}
var output = "ID: "+GM.pc.getInmateNumber()+"\nfirstname: "+GM.pc.getName()+"\nlastname: [corrupt]noidea[/corrupt]\nitype: "+str(InmateType.getAll().find(GM.pc.inmateType)+1)
output += "\n\nnotes: [corrupt]Past inhabitant of planet -------------- [/corrupt], sentenced for "+player_crimes.get(GM.main.getFlag("Player_Crime_Type"))+". Indefinite sentence."
output += "\n" # note escapades with tavi
output += "\n\nnotes: [corrupt]Past inhabitant of planet -------------- [/corrupt], sentenced for "+player_crimes.get(GM.main.getFlag("Player_Crime_Type"))+". Indefinite sentence" + (", requires permission of inmate 533 for release." if is_slave else ".")
if GM.main.getModuleFlag("TaviModule", "Ch5BigSceneStarted", false):
output += "\nAttempted to escape the facility [color=red]TWICE(!!!!)[/color] using violence, recommended close watch and maximum caution. Any suspicious activity, especially when {pc.he} {pc.is} in close proximity to inmate Tavi has to be reported to captain." # note escapades with tavi
elif GM.main.getModuleFlag("TaviModule", "Ch3TurnedOffPower", false) or GM.main.getModuleFlag("TaviModule", "Ch3SpikedPower", false):
output += "\nAttempted to escape the facility using violence, recommended close watch and maximum caution. Any suspicious activity, especially when {pc.he} {pc.is} in close proximity to inmate Tavi has to be reported to captain."
if is_slave:
output += "\n\nNOTE: THIS INMATE IS OWNED BY INMATE 533, PLEASE REFER TO MENTIONED INMATE ABOUT ALL MATTERS PERTAINING TO THIS INMATE"
return output
func printRecord(record:String) -> String:

View file

@ -0,0 +1,52 @@
extends SceneBase
func _init():
sceneID = "NovaIssixTalkScene"
func _run():
if(state == ""):
saynn("[say=pc]Could you tell me more about Issix?[/say]")
saynn("[say=nova]Issix? What would you want to know?[/say]")
saynn("[say=pc]How are they? Are they problematic? Do they have issues with violence?[/say]")
saynn("[say=nova]Hmm, him not really, honestly he is more of gentleman type if we were to compare him to the rest of the prison. I haven't had too much experience with them, they rather keep to their little corner on the main platform. But in terms of his reputation in the prison he is very chill and doesn't get into fights, usually when I hear he is involved in something it's because he defended his pets or himself.[/say]")
saynn("[say=pc]And how is his fighting?[/say]")
saynn("[say=nova]Haven't seen it in person, though what I did hear was that you don't wanna fight this guy, he is a monster.[/say]")
saynn("[say=pc]Wow.[/say]")
match getModuleFlag("IssixModule", "PC_Enslavement_Role", 0):
0:
addButton("Being a pet", "Talk how you'd like to become his pet", "becomeapet")
1:
addButton("Became a pet", "Talk how you became Issix's pet", "becameapet")
addButton("Back", "End this topic", "endthescene")
if state == "becomeapet":
saynn("[say=pc]How the prison staff feels about his slaves?[/say]")
saynn("[say=nova]We do have order not to touch him, and honestly not that we would, he helps... Yes - he has slaves all on display but captain believes that's good for morale or something.[/say]")
saynn("[say=pc]How does he treat his pets?[/say]")
saynn("[say=nova]Interested?[/say]")
saynn("Nova gives you a sly wink, you blush.")
saynn("[say=nova]Oh, you are, that's hot. Honestly, as far as slavery goes he is a kinky one but I think he genuinely cares about his slaves, at least as far as I've seen and heard, which isn't a lot.[/say]")
saynn("[say=pc]He doesn't mistreat them?[/say]")
saynn("[say=nova]Not that I've heard about.[/say]")
saynn("[say=pc]I see, thanks Nova.[/say]")
saynn("[say=nova]Sure thing, cutie.[/say]")
addButton("Back", "End this topic", "endthescene")
if state == "becameapet":
saynn("[say=nova]Hehe, I've seen you have given your cute ass away to a new Master.[/say]")
saynn("You blush in embarrassment")
saynn("[say=pc]Y-yeah I did. I'm now Master Issix's pet.[/say]")
saynn("[say=nova]Adorable. Hope the best for you in your new life cutie, you do look good with a leash.[/say]")
saynn("[say=pc]Thank you...[/say]")
addButton("Back", "Look away embarrassed", "endthescene")
func _react(_action: String, _args):
if(_action == "endthescene"):
endScene()
return
setState(_action)

View file

@ -56,6 +56,7 @@ func _run():
saynn("You approach the demon."+(" He grins, seeing you kneel." if GM.main.getModuleFlag("IssixModule", "Quest_Status") > 5 else ""))
saynn(RNG.pick(random_issix_activities_talk))
addButton("Prison", "How did he end up in prison?", "prison")
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 0:
addButton("Pets", "Have they really willingly gave to him?", "pets2")
addButton("Guards", "Are prison guards giving him trouble?", "guards")
if GM.main.getModuleFlag("IssixModule", "Quest_Status") == 1 and GM.main.getModuleFlag("IssixModule", "Quest_Bonked") == true:

View file

@ -69,9 +69,9 @@ func _run():
if state == "issixthreat":
saynn("[say=pc]I'm under Master Issix's care, please don't hurt me.[/say]")
if GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix"):
saynn("[say=gymbully]Are you? That would explain why you are reeking of him. Are you a good little "+getPlayerPetName()+" for your Master Esshiks? Ohhh, how cute. Why aren't you on a leash then huh, fuck pet?[/say]")
saynn("[say=gymbully]Are you? That would explain why you are reeking of him. Are you a good little "+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+" for your Master Esshiks? Ohhh, how cute. Why aren't you on a leash then huh, fuck pet?[/say]")
else:
saynn("[say=gymbully]Are you? That would explain why you look like a breeding bitch. Are you a good little "+getPlayerPetName()+" for your Master Esshiks? Ohhh, how cute. Why aren't you on a leash then huh, fuck pet?[/say]")
saynn("[say=gymbully]Are you? That would explain why you look like a breeding bitch. Are you a good little "+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+" for your Master Esshiks? Ohhh, how cute. Why aren't you on a leash then huh, fuck pet?[/say]")
saynn("Sounds of laughter fills the place, all three of inmates having fun at your expense.")
saynn("[say=gymbully]Do you think your Master would mind if we borrowed you for a few minutes and had fun with you?[/say]")
saynn("The main bully looks at the other two for a second, all of them are rather satisfied with themselves.")
@ -142,16 +142,6 @@ func _react(_action: String, _args):
setState(_action)
static func getPlayerPetName():
if Species.Canine in GM.pc.getSpecies():
return "puppy"
elif Species.Feline in GM.pc.getSpecies():
return "kitty"
elif Species.Equine in GM.pc.getSpecies():
return "pony"
else:
return "pet"
func saveData():
var data = .saveData()

View file

@ -5,6 +5,7 @@ var pc_pose = null
var arts_reviewed = 0
var arts_correct = 0
var hiisi_help_type = []
var azazel = null
var pick_up_lamia_art = [
"You pick up another art from the stash",
@ -81,6 +82,7 @@ var crossword_puzzles = [["Sex in 11 letters", "Intercourse"], ["Subfamily of go
func _init():
sceneID = "PetsTalkScene"
azazel = GlobalRegistry.getCharacter("azazel")
func _initScene(_args = []):
pc_pose = "stand" if getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 0 else "kneel"
@ -119,7 +121,10 @@ func _run():
if getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 0:
saynn("You approach Azazel, he recognizes sudden attention given to him, he goes on his fours doing some kitty back stretching before kneeling towards you expectantly. You notice he took a quick peek at his master beforehand.")
else:
pass # TODO
saynn("You approach Azazel, he recognizes sudden attention given to him, he goes on his fours doing some kitty back stretching before kneeling towards you expectantly. He puts his paw on you.")
saynn("You look at Azazel's place. A regular square red blanket laying on the floor. On it in addition to a living, breathing pet - a few packages of wet and dry wipes, a medium sized feline dildo, a medium sized plushie of a pink colored anthropomorphic fox, and on the side of blanket closest to Azazel's Master - an empty pet bowl. This space gives you pretty messy vibes, with things seemingly in random places, plush laying on its side and the blanket itself smelling strongly of feline's needy sex.")
if azazel.isCoveredInCum() or azazel.hasEffect(StatusEffect.HasCumInsideVagina):
saynn("You can see splotches of undeniably cum on the blanket, likely from a recent fuck.")
addButton("Back", "Take a step back", "")
if state == "hiisimain":
@ -134,6 +139,7 @@ func _run():
saynn("You approach Hiisi, he rolls to the side facing you.")
addButton("Talk", "Talk to Hiisi", "hiisitalk")
addButton("Appearance", "Look at Hiisi", "hiisiappearance")
saynn("You look at Hiisi's blanket. It's a regular red square blanket with nothing on it except the pup and bowl on the end of it closest to canine's Master. It's really neat and clean, either recently cleaned up or a great care is put into keeping it intact.")
addButton("Back", "Take a step back", "")
if state == "hiisitalk":
@ -319,7 +325,6 @@ func _run():
clearCharacter()
addCharacter("lamia")
playAnimation(StageScene.Duo, "kneel", {pc="lamia", npc="pc", npcAction=pc_pose, bodyState={naked=false, hard=false}})
if getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 0:
saynn("You approach Lamia")
var lamia_mood = getModuleFlag("IssixModule", "Lamia_Times_Helped", 0)
if lamia_mood < -5:
@ -330,8 +335,7 @@ func _run():
saynn("He notices you, gives you a warm smile and invites you onto his blanket.")
else:
saynn("He notices you and immediately his fox tail swishes right and left, his face expression very happy to see you he invites you onto his blanket.")
else:
pass # TODO
saynn("When you look at Lamia's blanket, you think of creative person. On blanket there are organizers, pens, brushes, pieces of paper, a bowl and a small trashcan filled to the brim with folded into spherical balls paper. In a way everything seems organized, the organizers are in one place, the drawing tools in other and yet even positioning of the trashcan makes sense. Other than that, the blanket seems fairly clean.")
addButton("Talk", "Talk to Lamia", "lamiatalk")
addButton("Appearance", "Look at Lamia", "lamiaappearance")
if getModuleFlag("IssixModule", "Lamia_Times_Helped", 0) > 0:

View file

@ -42,7 +42,7 @@ func _run():
saynn("Your Master stands stunned by your proclamation.")
saynn("[say=issix]What did you just say?[/say]")
saynn("[say=pc]I no longer want to be your pet.[/say]")
saynn("[say=issix]I don't think you understand your position, pet. You are not in a position to decide on that anymore, you've made your decision a while ago, you don't just get to change it because your feel like it, such decision belongs to your Master. Now, be a good "+getPlayerPetName()+" and come with me.[/say]")
saynn("[say=issix]I don't think you understand your position, pet. You are not in a position to decide on that anymore, you've made your decision a while ago, you don't just get to change it because your feel like it, such decision belongs to your Master. Now, be a good "+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+" and come with me.[/say]")
addButton("Continue", "Follow Issix to the corner", "walkcorner")
if state == "leave":
@ -95,7 +95,7 @@ func _run():
addButton("Continue", "Oh shit, what now", "contsurrender")
if state == "contsurrender":
playAnimation(StageScene.PuppyPinned, "pinned", {pc="pc", npc="issix", bodyState={leashedBy="issix"}, npcBodyState={naked=false, hard=false}})
playAnimation(StageScene.PuppyPinned, "pinned", {pc="issix", npc="pc", bodyState={leashedBy="issix"}, npcBodyState={naked=false, hard=false}})
saynn("With your lack of mobility and you can't do much at this point, other than accept everything that is happening to you. And so you do, trying to stand on your fours, struggling. Having to adapt to completely new balance and way of „standing”. Your Master continues to add further bondage gear onto you. A ball gag is first pushed into your mouth, then bondage mittens finishing your helpless look.")
saynn("[say=issix]Think that's it, I think you look great now. In AlphaCorp that's how the leg footrest looks like in high-level corporate offices. Not a fan of footrest though, I prefer my feet on the ground, that said, the circumstances are pretty extraordinary here.[/say]")
saynn("He puts his foot on your head and applies force making you collapse your front „legs” with your muzzle touching the ground.")
@ -133,22 +133,12 @@ func _run():
saynn("Feeling in pain, you don't have anything else to answer other than.")
saynn("[say=pc]I'm sorry, Master, I won't do this again.[/say]")
saynn("[say=issix]Do you really mean it? Or is that another lie? Look at me, LOOK![/say]")
saynn("He grabs you by your neck, tilts your face to meet his gaze, his face angry, furious even, staring deep into you, just like when he was judging you when you wished to become his "+ getPlayerPetName() + ".")
saynn("He grabs you by your neck, tilts your face to meet his gaze, his face angry, furious even, staring deep into you, just like when he was judging you when you wished to become his "+ GlobalRegistry.getModule("IssixModule").getPlayerPetName() + ".")
saynn("[say=issix]Don't make me assert control over you again.[/say]")
saynn("He releases your body from heavy grip.")
saynn("[say=issix]I think you suffered enough of humiliation for today. Do whatever you want, but I expect you tomorrow in the corner, as usual.[/say]")
addButton("Leave", "Leave", "endthescene")
static func getPlayerPetName():
if Species.Canine in GM.pc.getSpecies():
return "puppy"
elif Species.Feline in GM.pc.getSpecies():
return "kitty"
elif Species.Equine in GM.pc.getSpecies():
return "pony"
else:
return "pet"
func _react(_action: String, _args):
processTime(2*60)
if _action == "honest":
@ -187,6 +177,7 @@ func _react(_action: String, _args):
runScene("SlaveryInfoScreen", [], "finishslaveryinfo")
if(_action == "endthescene"):
GM.main.setModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays())
endScene()
return

View file

@ -87,6 +87,7 @@ func _react(_action: String, _args):
], "gym_entrance", "crawl"])
if(_action == "endthescene"):
GM.pc.addSkillExperience("pet", 300)
increaseModuleFlag("IssixModule", "Progression_Points")
increaseModuleFlag("IssixModule", "PC_Training_Level")
endScene()

View file

@ -74,6 +74,7 @@ func _react(_action: String, _args):
if(_action == "endthescene"):
increaseModuleFlag("IssixModule", "PC_Training_Level")
increaseModuleFlag("IssixModule", "Progression_Points")
GM.pc.addSkillExperience("pet", 300)
GM.pc.getSkillsHolder().addPerk("BowlTraining")
var scenes = GM.main.getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
scenes["scenes_seen"].append(sceneID)

View file

@ -40,7 +40,7 @@ func _run():
_:
pass
if playerToFuck() and getModuleFlag("IssixModule", "Had_Sex_With_Issix", false) != true:
saynn("[color=#B03838]Master expects you to be available for fucking today.[/color]")
saynn("[color=#983030]Master expects you to be available for fucking today.[/color]")
setModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays())
addButton("Master", "Talk with your master about something", "issixpetmenu")
addButton("Azazel", "Actions in relation to Azazel", "azazelpetmenu")
@ -65,6 +65,7 @@ func _run():
addButtonWithChecks("Comic", "Read one of "+ str(getModuleFlag("IssixModule", "Comic_Books", 0)) +" comic books", "readabook", [], [ButtonChecks.NotBlindfolded])
if not (GM.main.getModuleFlag("IssixModule", "Is_Player_Forced_Today", 0) > (getTimeSpent())) or GM.main.isVeryLate():
addButton("Leave", "Leave", "endthescene")
GM.ES.triggerRun("OpeningSlaveryScreen")
if state == "issixpetmenu":
addCharacter("issix")
@ -130,7 +131,7 @@ func _run():
saynn("[say=issix]Today you've produced " +str(round(milk_result[0])) +" ml for me today. It makes it "+str(round(milk_result[1]))+" ml in total.[/say]")
if GM.pc.getSkillLevel(Skill.Milking) < 20 or milk_result[1] < 50000 or milk_result[0] < 600:
saynn("[say=issix]Perhaps you'd want to stay like you were when milking huh? Maybe some day, if you choose to be my little cow instead of "+getPlayerPetName()+" we could think about it okey? But you need to be a goood healthy cow producing lots and lots of milk for your Master alright? "+("You even look the part already! *gently pokes your horns*" if GM.pc.hasHorns() else "")+" Gooood cow.[/say]")
saynn("[say=issix]Perhaps you'd want to stay like you were when milking huh? Maybe some day, if you choose to be my little cow instead of "+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+" we could think about it okey? But you need to be a goood healthy cow producing lots and lots of milk for your Master alright? "+("You even look the part already! *gently pokes your horns*" if GM.pc.hasHorns() else "")+" Gooood cow.[/say]")
saynn("He pets your head")
else: # TODO I'll wait with this path for TF changes to land in main, perhaps player could become a female cow for Master?
@ -200,7 +201,7 @@ func _run():
saynn("His paw carreses your tummy full of your own litter.")
saynn("[say=azazel]Isn't it a great joy to be a mother? "+("Oh don't give me that look, a male can be a great mother for their children as well! Just look at me. " if GM.pc.getGender() == Gender.Male else "")+"Mmmm. You are a great mother as well, cutie.[/say]")
else:
saynn("[say=azazel]Aren't you curious yourself, what it means to bear litter? Wouldn't you want to leave a mark in this wretched galaxy? To have more of little {pc.name}'s running around? Becoming adventurers, slaves, masters... Hah. Don't get me wrong, personally I don't think I care about my own legacy, but our Master does, I think. I enjoy being his little breeding kitten, maybe you'd like being his breeding "+getPlayerPetName()+" too? Think about it.[/say]")
saynn("[say=azazel]Aren't you curious yourself, what it means to bear litter? Wouldn't you want to leave a mark in this wretched galaxy? To have more of little {pc.name}'s running around? Becoming adventurers, slaves, masters... Hah. Don't get me wrong, personally I don't think I care about my own legacy, but our Master does, I think. I enjoy being his little breeding kitten, maybe you'd like being his breeding "+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+" too? Think about it.[/say]")
saynn("He gives you a smile.")
saynn("After he says that you leave the trance you were in, that was odd...")
saynn("[say=azazel]So what do you say? Are you in?[/say]")
@ -457,7 +458,7 @@ func _run():
saynn("[say=pc]Umm, Master? Could we have sex today?[/say]")
if float(GM.pc.getLust()) / GM.pc.lustThreshold() > 0.7:
saynn("[say=issix]Aww, my "+getPlayerPetName() +" is pent up? How cute.[/say]")
saynn("[say=issix]Aww, my "+GlobalRegistry.getModule("IssixModule").getPlayerPetName() +" is pent up? How cute.[/say]")
else:
saynn("[say=issix]Sex? Hmmm...[/say]")
@ -476,16 +477,6 @@ func _run():
saynn("You read one of the comic books, 20 minutes pass.") # TODO Expand on this
addButton("Back", "Go back", "")
static func getPlayerPetName():
if Species.Canine in GM.pc.getSpecies():
return "puppy"
elif Species.Feline in GM.pc.getSpecies():
return "kitty"
elif Species.Equine in GM.pc.getSpecies():
return "pony"
else:
return "pet"
func getTimeSpent():
return getModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 0)+(GM.main.getTime()-pet_time_start)

View file

@ -180,7 +180,7 @@ func _run():
saynn("[say=pc]Yes...[/say]")
saynn("[say=issix]Yes?[/say]")
saynn("[say=pc]Yes Master Issix.[/say]")
saynn("[say=issix]Good "+getPlayerPetName()+".[/say]")
saynn("[say=issix]Good "+GlobalRegistry.getModule("IssixModule").getPlayerPetName()+".[/say]")
saynn("He takes his foot out of your belly.")
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
saynn("[say=issix]For today there is one more thing for me to do. Azazel, can you tell my new pet what it is?[/say]")
@ -235,16 +235,6 @@ func _run():
saynn("His voice still raspy, but composed. His dominant persona doesn't handle well „no” as an answer, however you aren't his pet, at least today. And now, you never will. That was your decision, however.")
addButton("Continue", "End the conversation", "endthescene")
static func getPlayerPetName():
if Species.Canine in GM.pc.getSpecies():
return "puppy"
elif Species.Feline in GM.pc.getSpecies():
return "kitty"
elif Species.Equine in GM.pc.getSpecies():
return "pony"
else:
return "pet"
func _react(_action: String, _args):
# if _action == "walktocell":
# runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "cellblock_red_nearcell", [

View file

@ -15,7 +15,7 @@ The mod and contents in it is - surprise surprise - a work of fiction. Author do
- Each pet has their own mechanic that increases their trust/affection towards the player
- Finally, voluntary enslavement, if you eventually get enslaved it may make your game a bit more difficult
- Some branches of choices and situations.
- Hopefully at least around an hour of additional gameplay? Haven't tested yet
- Hopefully at least around an hour of additional gameplay? Haven't tested yet, but the fact is, I counted more than 43k words in saynn (dialogues) is quite a bit. Not every part of what player sees is even in saynn, which makes the size of this mod way more than I anticipated.
What isn't there is basically a lot of post-enslavement content. This is major focus of current work on the mod for it to grow to 1.0 release.