Updates 17.11
This commit is contained in:
parent
12e0375cf9
commit
60c7e74bea
12
Module.gd
12
Module.gd
|
@ -37,6 +37,8 @@ func getFlags():
|
||||||
# Slavery related
|
# Slavery related
|
||||||
"PC_Enslavement_Role": flag(FlagType.Number),
|
"PC_Enslavement_Role": flag(FlagType.Number),
|
||||||
"PC_Enslavement_Noncon": flag(FlagType.Bool),
|
"PC_Enslavement_Noncon": flag(FlagType.Bool),
|
||||||
|
"PC_Training_Level": flag(FlagType.Number),
|
||||||
|
"Issix_Mood": flag(FlagType.Number),
|
||||||
"Todays_Bred_Slave": flag(FlagType.Text),
|
"Todays_Bred_Slave": flag(FlagType.Text),
|
||||||
"Progression_Day_Next": flag(FlagType.Number),
|
"Progression_Day_Next": flag(FlagType.Number),
|
||||||
"Last_Day_Visited_Master": flag(FlagType.Number),
|
"Last_Day_Visited_Master": flag(FlagType.Number),
|
||||||
|
@ -97,6 +99,13 @@ func _init():
|
||||||
# "res://Game/World/Floors/Closet.gd"
|
# "res://Game/World/Floors/Closet.gd"
|
||||||
# "res://Game/World/Floors/Closet.tscn"
|
# "res://Game/World/Floors/Closet.tscn"
|
||||||
|
|
||||||
|
static func addSceneToWatched(scene: String):
|
||||||
|
var scenes = GM.main.getModuleFlag("IssixModule", "Misc_Slavery_Info", {})
|
||||||
|
scenes["scenes_seen"].append(scene)
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Misc_Slavery_Info",scenes)
|
||||||
|
|
||||||
|
static func addIssixMood(mood: int):
|
||||||
|
setModuleFlag("IssixModule", "Issix_Mood", clamp(GM.main.getModuleFlag("IssixModule", "Issix_Mood", 50)+mood, 0, 100))
|
||||||
|
|
||||||
static func getPlayerRole():
|
static func getPlayerRole():
|
||||||
return "pet" if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 1) == 1 else "prostitute"
|
return "pet" if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 1) == 1 else "prostitute"
|
||||||
|
@ -106,3 +115,6 @@ func resetFlagsOnNewDay():
|
||||||
GM.main.setModuleFlag("IssixModule", "Activated_Cabinets", {})
|
GM.main.setModuleFlag("IssixModule", "Activated_Cabinets", {})
|
||||||
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", false)
|
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", false)
|
||||||
GM.main.setModuleFlag("IssixModule", "Todays_Bred_Slave", RNG.pick(['azazel', 'pc', 'hiisi']))
|
GM.main.setModuleFlag("IssixModule", "Todays_Bred_Slave", RNG.pick(['azazel', 'pc', 'hiisi']))
|
||||||
|
if GM.main.getModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today") != null:
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today", false)
|
||||||
|
addIssixMood(RNG.randi_range(-7, 7))
|
||||||
|
|
|
@ -15,7 +15,7 @@ A mod for Broken Dreams Correctional Center. Introduces Issix and his harem of s
|
||||||
|
|
||||||
# Goals
|
# Goals
|
||||||
## Mod's audience
|
## Mod's audience
|
||||||
Mod is directed pretty much exclusively at players who are submissive. In game there are already a bunch of ways the player can effectively submit to other creatures - recentlishly added hypnokink is a great example of that, Tavi's questline also has a route/revolves around player submitting to Tavi as their pet. Those things are wonderful and I love them, but in-game slave system is definitely directed at dominant players. This mod tries to address that by adding a character that can enslave **the player**.
|
Mod is directed pretty much exclusively at players who are submissive. In game there are already a bunch of ways the player can effectively submit to other creatures - recentlishly added hypnokink is a great example of that, Tavi's questline also has a route/revolves around player submitting to Tavi as their pet. Those things are wonderful and I love them, but in-game slave system is definitely directed at dominant players. This mod tries to address that by adding a character that can enslave **the player**. It features degradation, pet-play content.
|
||||||
|
|
||||||
## Slavery
|
## Slavery
|
||||||
I think there is a reason why there are dozens of harem-management games where player becomes harem's owner and manages slave instead of being one. I think in large part there isn't much of a way to make the player be a slave and keep the gameplay entertaining. If becoming a slave means less choice - the game may become boring. In this mod I'm trying my best to still feel like player is enslaved while at the same time let them continue playing the game with full functionality. This is not an easy task to do, but probably better than eternity of being stuck in one time playing card game with another pet.
|
I think there is a reason why there are dozens of harem-management games where player becomes harem's owner and manages slave instead of being one. I think in large part there isn't much of a way to make the player be a slave and keep the gameplay entertaining. If becoming a slave means less choice - the game may become boring. In this mod I'm trying my best to still feel like player is enslaved while at the same time let them continue playing the game with full functionality. This is not an easy task to do, but probably better than eternity of being stuck in one time playing card game with another pet.
|
||||||
|
@ -45,7 +45,7 @@ So many reasons.
|
||||||
- I wanted to see if content I write can still have effect on myself (I doubt lol).
|
- I wanted to see if content I write can still have effect on myself (I doubt lol).
|
||||||
- I wanted to express my own sexuality in a way.
|
- I wanted to express my own sexuality in a way.
|
||||||
- I want the mod to be a little statement and action behind my words of supporting sex-positivity by contributing something sexual and being public about it (like on my website, also, this is not to say that the mod is for myself, even though in part it is)
|
- I want the mod to be a little statement and action behind my words of supporting sex-positivity by contributing something sexual and being public about it (like on my website, also, this is not to say that the mod is for myself, even though in part it is)
|
||||||
- I wanted to make a statement. I'm writing this mod in times where certain awful people gain power over incredibly powerful state in the world, their policies represent oppression against LGBT+ creatures. So in part, this mod is part of my advocacy for sex-positivity as well as acceptance of LGBT+ creatures, and therefore a political statement.
|
- I wanted to make a statement. I'm writing this mod in times where certain awful people gain power over incredibly powerful state in the world, their policies represent oppression against creatures. So in part, this mod is part of my advocacy for sex-positivity as well as acceptance of LGBT+ creatures, and therefore a political statement.
|
||||||
|
|
||||||
Majority of this mod's content has been written without too much thought put into it, on fly and on sheer impulse. I'm certainly far from award winning story writer, but I tried my best, only you can judge how good of a job I've done.
|
Majority of this mod's content has been written without too much thought put into it, on fly and on sheer impulse. I'm certainly far from award winning story writer, but I tried my best, only you can judge how good of a job I've done.
|
||||||
|
|
||||||
|
|
BIN
Scenes/.SlaveryIntroScene.gd.kate-swp
Normal file
BIN
Scenes/.SlaveryIntroScene.gd.kate-swp
Normal file
Binary file not shown.
|
@ -83,6 +83,8 @@ func _run():
|
||||||
if state == "walkies3":
|
if state == "walkies3":
|
||||||
processTime(15*60)
|
processTime(15*60)
|
||||||
clearCharacter()
|
clearCharacter()
|
||||||
|
aimCamera("yard_waterfall")
|
||||||
|
setLocationName("Pasture")
|
||||||
addCharacter("azazel")
|
addCharacter("azazel")
|
||||||
addCharacter("hiisi")
|
addCharacter("hiisi")
|
||||||
addCharacter("lamia")
|
addCharacter("lamia")
|
||||||
|
|
|
@ -1,5 +1,35 @@
|
||||||
extends SceneBase
|
extends SceneBase
|
||||||
|
|
||||||
|
var pick_up_lamia_art = [
|
||||||
|
"You pick up another art from the stash",
|
||||||
|
"With some difficulty you manage to separate the last artwork from the pile from the rest to look at it",
|
||||||
|
"You grab yet another artwork from the pile",
|
||||||
|
"With a swift grab another artwork from the pile is now yours to look at"
|
||||||
|
]
|
||||||
|
|
||||||
|
var humanoids_lamia_art = [
|
||||||
|
"a group of inmates celebrating someone's birthday",
|
||||||
|
"an inmate staring at the cosmos behind the reinforced glass display",
|
||||||
|
"various species of humanoids having a party on what looks to be flying... Egg",
|
||||||
|
"a wolf person firing fireworks",
|
||||||
|
"a dragon person sitting inside the elevator, reading newspapers in her paws",
|
||||||
|
"portrait of a snake person with particularly long fangs sticking out from their maw"
|
||||||
|
]
|
||||||
|
|
||||||
|
var animal_flora_lamia_art = [
|
||||||
|
"a goat standing on top of a mountain",
|
||||||
|
"a rabbit jumping above a huge ravine, even though they there is no way their paws could put them so high, considering their position they will likely land on the other side",
|
||||||
|
"a crow with a yellow circular object held in their beak",
|
||||||
|
"bear",
|
||||||
|
"multiple cats chasing each other as their small ones rest on a pillow nearby",
|
||||||
|
"a horse galloping in the distance"
|
||||||
|
]
|
||||||
|
|
||||||
|
var background_lamia_art = [
|
||||||
|
"a large valley full of trees and small stream of water going down",
|
||||||
|
"a desert, with one dead tree on it, a couple of paw prints visible in the sand"
|
||||||
|
]
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
sceneID = "PetsTalkScene"
|
sceneID = "PetsTalkScene"
|
||||||
|
|
||||||
|
@ -67,6 +97,10 @@ func _run():
|
||||||
pass # TODO
|
pass # TODO
|
||||||
addButton("Talk", "Talk to Lamia", "lamiatalk")
|
addButton("Talk", "Talk to Lamia", "lamiatalk")
|
||||||
addButton("Appearance", "Look at Lamia", "lamiaappearance")
|
addButton("Appearance", "Look at Lamia", "lamiaappearance")
|
||||||
|
if getModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today", false) == false:
|
||||||
|
addButton("Help", "You see a big stack of drawings and some drawers, it seems Lamia categorizes their drawings, ask if you could help?", "lamiahelp")
|
||||||
|
else:
|
||||||
|
addDisabledButton("Help", "You've helped the fox boyy today already")
|
||||||
saynn("")
|
saynn("")
|
||||||
|
|
||||||
if(state == "catnip"):
|
if(state == "catnip"):
|
||||||
|
@ -169,10 +203,62 @@ func _run():
|
||||||
saynn("[say=azazel]Sometimes? I guess. I have those wants and needs when I'm pregnant, but Master always tries his best to keep me happy either way. And besides, if I'm not bred I tend to get really annoying, haha. Yeah...[/say]")
|
saynn("[say=azazel]Sometimes? I guess. I have those wants and needs when I'm pregnant, but Master always tries his best to keep me happy either way. And besides, if I'm not bred I tend to get really annoying, haha. Yeah...[/say]")
|
||||||
addButton("Back", "End this conversation", "azazelmain")
|
addButton("Back", "End this conversation", "azazelmain")
|
||||||
|
|
||||||
|
if state == "lamiahelp":
|
||||||
|
if getModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today") == null:
|
||||||
|
saynn("You look at Lamia picking his artwork from the pile, staring at it for a moment and putting it into one of 4 containers on the side.")
|
||||||
|
saynn("[say=pc]Hey Lamia... Do you need help with that? I think your pile is quite large.[/say]")
|
||||||
|
saynn("They look at you with huge smile and nod their head in agreement, aggressively.")
|
||||||
|
saynn("[say=pc]Alright alright, but you'll have to show me what you are doing here. You are... Categorizing, right?[/say]")
|
||||||
|
saynn("They nod their head once again, grab some crayons, a sheet of paper and start drawing something. Not even a full minute in and they show you the effect.\nOn the drawing you can see four boxes one colored blue, red, green, purple respectively. Above the blue one there is a stick figure as well as a... Pen and a key.")
|
||||||
|
saynn("[say=pc]Hmm, so like, humanoids, pens and keys?[/say]")
|
||||||
|
saynn("They shake their head, pick a few artworks from the blue box, on them there are pretty regular things, anthro holding a baloon, another simply depicts a glass of water, yet another has just an anthro skunk on it. You wonder for a second, look at artwork in other boxes.")
|
||||||
|
saynn("[say=pc]Perhaps humanoids and... Things? Like items?[/say]")
|
||||||
|
saynn("They give you a smile and a nod, seems like you got that one. You look on the right, there is a red box with two arrows pointing at it from what looks to be a feral goat of some sorts as well as flowers.")
|
||||||
|
saynn("[say=pc]Nature maybe? Animals and flowers?[/say]")
|
||||||
|
saynn("Lamia nods excited.")
|
||||||
|
saynn("[say=pc]I'm getting good at this![/say]")
|
||||||
|
saynn("You look at the 3rd box. A green one. This is a rectangle which has a lot of colors on it. As if someone just wanted a colorful rectangle. You look at the artwork at the top of the green box and understand what's this about. It has a very detailed environment, with landscapes you'd never imagine exist in real life. But so beautiful too. It looks to be some sort of sandy area with large sandstone arch in the middle. There is a small but dry dree on the right.")
|
||||||
|
saynn("[say=pc]Backgrounds! Right?[/say]")
|
||||||
|
saynn("Lamia gives you thumbs up, they are shaking in excitement, one more and they may just have the energy to shoot out of this station. You laugh, and look at 4th box - purple one. This one is strange, there is just an arrow pointing at it from a circle? And square next to it.")
|
||||||
|
saynn("[say=pc]Figures maybe?[/say]")
|
||||||
|
saynn("Lamia moves their head from side to side. Are you close?")
|
||||||
|
saynn("[say=pc]Hmm. Geometrical shapes? Lines?[/say]")
|
||||||
|
saynn("They shake their head, that's not it. They again draw first three boxes and cross them out, they point at 4th box.")
|
||||||
|
saynn("[say=pc]Umm, whatever doesn't go in the first three goes in the last one?[/say]")
|
||||||
|
saynn("Lamia vigorously nods their head, that's it.")
|
||||||
|
saynn("[say=pc]Ahhhhhhh. I seeeee...[/say]")
|
||||||
|
addButton("Continue", "This doesn't seem to be all of it", "lamiaexplanationcont")
|
||||||
|
|
||||||
|
if state == "lamiaexplanationcont":
|
||||||
|
|
||||||
|
saynn("Lamia draws more things, he draws a stick figure with a goat, circles them and points arrow to the blue box, then they draw a goat, stick figure and a background, connect them in one circle and once again point arrow to the blue box. You enter deep thought what this could mean until an idea dawns on you.")
|
||||||
|
saynn("[say=pc]Do you mean connections? Like when one picture has more elements it goes to the blue box?[/say]")
|
||||||
|
saynn("Lamia nods.")
|
||||||
|
saynn("[say=pc]I seeee, so I assume if something has a humanoid then it always belongs in the blue box?[/say]")
|
||||||
|
saynn("Lamia nods again.")
|
||||||
|
saynn("[say=pc]Got you.[/say]")
|
||||||
|
saynn("Lamia then draws a goat and a background, but without a stick figure this time, encircles them and points to green box.")
|
||||||
|
saynn("[say=pc]Green box takes the priority when something doesn't go into blue box but has a background.[/say]")
|
||||||
|
saynn("Lamia confirms your guess. At last they draw a... Tablet? And a baton with sparks? Then a... Flashlight, you think.")
|
||||||
|
saynn("[say=pc]Hmm. Electronic devices?[/say]")
|
||||||
|
saynn("Lamia nods and makes an arrow pointing to the purple box.")
|
||||||
|
saynn("[say=pc]I see, I see.[/say]")
|
||||||
|
saynn("With that, Lamia gives you the piece of paper he drew explanations on. This seems to be all... You look at it for the last time and think you are ready to go.")
|
||||||
|
saynn("[say=pc]Alright, can you watch me when I try for the first time?[/say]")
|
||||||
|
saynn("Lamia nods, very happy with himself.")
|
||||||
|
addButton("Help out", "Start sorting through the artwork stash.", "artminigame")
|
||||||
|
|
||||||
|
if state == "artminigame":
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if state == "lamiatalk":
|
if state == "lamiatalk":
|
||||||
addButton("Try drawing", "You can try and draw something with lamia", "lamiadraw") # TODO
|
addButton("Try drawing", "You can try and draw something with lamia", "lamiadraw") # TODO
|
||||||
|
|
||||||
|
func generate_artwork_desc():
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
func _react(_action: String, _args):
|
||||||
if(_action == "catnip"):
|
if(_action == "catnip"):
|
||||||
GM.pc.getInventory().removeXOfOrDestroy("CatnipPlant", 1)
|
GM.pc.getInventory().removeXOfOrDestroy("CatnipPlant", 1)
|
||||||
|
|
|
@ -9,19 +9,79 @@ func requirements_met():
|
||||||
func _run():
|
func _run():
|
||||||
if(state == ""):
|
if(state == ""):
|
||||||
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand"})
|
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand"})
|
||||||
|
IssixModule.addSceneToWatched(sceneID)
|
||||||
saynn("As you approach the corner your Master stands, grinning. You assume your position on your blanket.")
|
saynn("As you approach the corner your Master stands, grinning. You assume your position on your blanket.")
|
||||||
saynn("[say=issix]Good day, pet. [/say]")
|
saynn("[say=issix]Good day, pet.[/say]")
|
||||||
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
||||||
if GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix"):
|
if GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix"):
|
||||||
saynn("[say=issix]My my. My piss slut came back and {pc.he} is marked by myself. [/say]")
|
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||||
|
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+1)
|
||||||
|
saynn("[say=issix]My my. My piss slut came back and {pc.he} is still smelling like myself. Good job.[/say]")
|
||||||
|
saynn("He leans down and pets your head. You yip in appreciation.") # TODO Yip/meow/bark
|
||||||
|
saynn("[say=issix]Since you are such a good pet, today I'd like to train you a little. Are you ready?[/say]")
|
||||||
else:
|
else:
|
||||||
|
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||||
|
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+4)
|
||||||
|
saynn("[say=issix]You don't smell like me, what happened? Someone woke you up with a water bucket on your head? That's not great. It was your first order as my pet and you blew it. I'm incredibly disappointed.[/say]")
|
||||||
|
saynn("A look of disappointment is on Masters's face. He expected you to still have his mark from yesterday.")
|
||||||
|
saynn("[say=issix]I'm not going to punish you, but I'm also not going to reward you either.[/say]")
|
||||||
|
saynn("He clips a leash to your collar.")
|
||||||
|
saynn("[say=issix]On your back.[/say]")
|
||||||
|
saynn("You obediently lie on your back, unsure what to expect. Master takes your blanket and without further comment starts relieving himself above you. His hot piss hitting your belly. He doesn't drench you in piss like the last time. Rather just leaving enough for anyone nearby to smell him on you.")
|
||||||
|
saynn("[say=issix]I expect you to stay here one hour, I'm not going to give you a reward.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]I'm glad to see you. Are you ready for your first day of training?[/say]")
|
||||||
|
addButton("Yes", "You are ready for the training", "training1")
|
||||||
|
|
||||||
|
if state == "training1":
|
||||||
|
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
|
||||||
|
saynn("[say=issix]Excellent. In that case we will do a bit more of what we've already done in the past - I'm going to walk my pet. This is not only to train you to get used to this, but also I want other inmates to see you, walking behind on my leash.[/say]")
|
||||||
|
saynn("He attaches his leash to your collar")
|
||||||
|
saynn("[say=issix]Now, I expect you to keep up, go at my pace and when I stop - stop as well. Focus on me, not on other inmates. Do you understand? Yes? Good. Let's go. Azazel - will be only 5 minutes.[/say]")
|
||||||
|
addButton("Walk", "Go on a walk with your Master", "walkies1")
|
||||||
|
|
||||||
|
if state == "walkies1":
|
||||||
|
aimCamera("gym_entrance")
|
||||||
|
saynn("Issix stops")
|
||||||
|
saynn("[say=issix]So far so good. You've been doing an ok job so far. Seems like some inmates definitely saw you. That's good.[/say]")
|
||||||
|
saynn("[say=issix]Do you come here often? The Gym, I mean. Not a terrible place in this institution, minus the bullies. I can't see them right now, but I really hope they get the hint. I've had to persuade them not to touch my pets when they need some exercises. If you ever have an issue with them, just mention my name.[/say]")
|
||||||
|
addButton("Yes", "You've are a regular in here", "walkiesgymyes")
|
||||||
|
addButton("No", "You are not a regular in here", "walkiesgymno")
|
||||||
|
|
||||||
|
if state == "walkiesgymyes":
|
||||||
|
saynn("[say=issix]I see. Well, again, if bullies are ever an issue let me know. I'm always happy to know my pets are keeping in shape.[/say]")
|
||||||
|
addButton("Continue", "Continue the walk", "walkies2")
|
||||||
|
|
||||||
|
if state == "walkiesgymno":
|
||||||
|
saynn("[say=issix]I see. Well, again, if bullies are ever an issue let me know. Perhaps though you should visit the gym from time to time. It's pretty good for your health, and healthy pet is a good pet[/say]")
|
||||||
|
addButton("Continue", "Continue the walk", "walkies2")
|
||||||
|
|
||||||
|
if state == "walkies2":
|
||||||
|
saynn("[say=issix]Alright. That was short but meaningful. We will have more of those walks in the future, so get used to them. You can crawl on your own as an exercise if you want.[/say]")
|
||||||
|
saynn("[say=pc]Thank you, Master![/say]")
|
||||||
|
saynn("He smiles and unclips your leash.")
|
||||||
|
addButton("End", "End today's training", "endthescene")
|
||||||
|
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
func _react(_action: String, _args):
|
||||||
|
if _action == "walkies2":
|
||||||
|
processTime(4*60)
|
||||||
|
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "gym_entrance", [
|
||||||
|
"Good job, keep it up",
|
||||||
|
"Eyes on me, pet",
|
||||||
|
"Watch the pace, pet",
|
||||||
|
], "hall_ne_corner", "crawl"])
|
||||||
|
|
||||||
|
if(_action == "walkies1"):
|
||||||
|
processTime(4*60)
|
||||||
|
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "gym_entrance", [
|
||||||
|
"Good job, keep it up",
|
||||||
|
"Eyes on me, pet",
|
||||||
|
"Watch the pace, pet",
|
||||||
|
], "gym_entrance", "crawl"])
|
||||||
|
|
||||||
if(_action == "endthescene"):
|
if(_action == "endthescene"):
|
||||||
|
increaseModuleFlag("IssixModule", "PC_Training_Level")
|
||||||
endScene()
|
endScene()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
63
Scenes/SlaveryInfoScreenScene.gd
Normal file
63
Scenes/SlaveryInfoScreenScene.gd
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
extends SceneBase
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
sceneID = "IssixSlaveryIntroCont"
|
||||||
|
|
||||||
|
func requirements_met():
|
||||||
|
return getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})["scenes_seen"].find("IssixSlaveryIntroCont") == -1
|
||||||
|
|
||||||
|
func _run():
|
||||||
|
if(state == ""):
|
||||||
|
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand"})
|
||||||
|
saynn("Your slave role: "+IssixModule.getPlayerRole())
|
||||||
|
saynn("Your training: "+trainingCheck())
|
||||||
|
saynn("Master's mood: "+getMood())
|
||||||
|
saynn("Issix's slave for "+str(getDays())+" days")
|
||||||
|
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 1) == 1:
|
||||||
|
saynn("Amount of time spent in Master's harem today: "+str(getTimeSpent()) + " minutes")
|
||||||
|
|
||||||
|
func getTimeSpent():
|
||||||
|
return ""
|
||||||
|
|
||||||
|
func getMood():
|
||||||
|
var issix_mood = getModuleFlag("IssixModule", "Issix_Mood", 50)
|
||||||
|
if issix_mood < 10:
|
||||||
|
return "really bad"
|
||||||
|
elif issix_mood < 25:
|
||||||
|
return "bad"
|
||||||
|
elif issix_mood < 40:
|
||||||
|
return "meh"
|
||||||
|
elif issix_mood < 60:
|
||||||
|
return "mediocre"
|
||||||
|
elif issix_mood < 75:
|
||||||
|
return "good"
|
||||||
|
elif issix_mood < 90:
|
||||||
|
return "really good"
|
||||||
|
else:
|
||||||
|
return "excellent"
|
||||||
|
|
||||||
|
func getDays():
|
||||||
|
var days_enslaved = getModuleFlag("IssixModule", "PC_Training_Level", {})["day_enslaved"]
|
||||||
|
return GM.main.getDays() - days_enslaved
|
||||||
|
|
||||||
|
func trainingCheck():
|
||||||
|
var training_level = getModuleFlag("IssixModule", "PC_Training_Level", 0)
|
||||||
|
if training_level < 3:
|
||||||
|
return "poor"
|
||||||
|
elif training_level < 6:
|
||||||
|
return "adequate"
|
||||||
|
elif training_level < 10:
|
||||||
|
return "fine"
|
||||||
|
elif training_level < 14:
|
||||||
|
return "good"
|
||||||
|
else:
|
||||||
|
return "very good"
|
||||||
|
|
||||||
|
func _react(_action: String, _args):
|
||||||
|
|
||||||
|
if(_action == "endthescene"):
|
||||||
|
increaseModuleFlag("IssixModule", "PC_Training_Level")
|
||||||
|
endScene()
|
||||||
|
return
|
||||||
|
|
||||||
|
setState(_action)
|
|
@ -37,7 +37,8 @@ func _run():
|
||||||
setModuleFlag("IssixModule", "PC_Enslavement_Role", 1) # pet
|
setModuleFlag("IssixModule", "PC_Enslavement_Role", 1) # pet
|
||||||
saynn("[say=pc]I'd like to become your pet, Master.[/say]")
|
saynn("[say=pc]I'd like to become your pet, Master.[/say]")
|
||||||
saynn("[say=issix]Of course. In this case, you'll be my pet from now on. Let's discuss what I expect of you.[/say]")
|
saynn("[say=issix]Of course. In this case, you'll be my pet from now on. Let's discuss what I expect of you.[/say]")
|
||||||
saynn("[say=issix]You are free to talk. But you have to know when to talk. I'm sure you will learn your place after you spend some time in here. My other pets are already well trained, you can follow their lead on this. [/say]")
|
saynn("[say=issix]You are free to talk. But you have to know when to talk. I'm sure you will learn your place after you spend some time in here. My other pets are already well trained, you can follow their lead on this. Don't cause too much mishap, I don't enjoy rescuing my pets out of trouble. There is still much you have to learn, but it will come with time.[/say]")
|
||||||
|
addButton("Nod", "Continue the conversation", "normalroute")
|
||||||
|
|
||||||
|
|
||||||
# The following lines pertain to a functionality which in first iteration I wanted to be one of the first choices player makes when it comes to enslavement, stripping them of future choices. However as I develop the mod I think there are various reasons (wanting to be over with initial mod release, leaving significant changes to gameplay available as a reward for progression) why I decided to develop this functionality later as something player can obtain as a reward
|
# The following lines pertain to a functionality which in first iteration I wanted to be one of the first choices player makes when it comes to enslavement, stripping them of future choices. However as I develop the mod I think there are various reasons (wanting to be over with initial mod release, leaving significant changes to gameplay available as a reward for progression) why I decided to develop this functionality later as something player can obtain as a reward
|
||||||
|
@ -95,12 +96,12 @@ func _run():
|
||||||
if state == "normalroute":
|
if state == "normalroute":
|
||||||
playAnimation(StageScene.SexMissionary, "tease", {pc="issix", npc="pc", bodyState={naked=true, hard=true}, npcBodyState={naked=true, hard=true}})
|
playAnimation(StageScene.SexMissionary, "tease", {pc="issix", npc="pc", bodyState={naked=true, hard=true}, npcBodyState={naked=true, hard=true}})
|
||||||
setModuleFlag("IssixModule", "PC_Enslavement_Noncon", false)
|
setModuleFlag("IssixModule", "PC_Enslavement_Noncon", false)
|
||||||
if getModuleFlag("IssixModule", "QuestionnaireQ1"):
|
# if getModuleFlag("IssixModule", "QuestionnaireQ1"):
|
||||||
saynn("[say=pc]I'd prefer to retain my soul, if that's okey with you Master.[/say]")
|
# saynn("[say=pc]I'd prefer to retain my soul, if that's okey with you Master.[/say]")
|
||||||
else:
|
# else:
|
||||||
saynn("[say=pc]I'd still prefer to retain my mind like Azazel and your other pets, Master.[/say]")
|
# saynn("[say=pc]I'd still prefer to retain my mind like Azazel and your other pets, Master.[/say]")
|
||||||
saynn("[say=issix]But of course, you are most welcome to it. Retaining what little autonomy you have is an option I prefer for you myself.[/say]")
|
# saynn("[say=issix]But of course, you are most welcome to it. Retaining what little autonomy you have is an option I prefer for you myself.[/say]")
|
||||||
saynn("His face is filled with a cruel smile once again.")
|
# saynn("His face is filled with a cruel smile once again.")
|
||||||
if !GM.pc.isFullyNaked():
|
if !GM.pc.isFullyNaked():
|
||||||
saynn("[say=issix]Now, with decisions made, I need to tell you what I intend to happen. I want you to strip naked for me. I want to see your entire body again, completely bare. I want to know what I'm working with. You'll have to lose whatever conception of shame you have and embrace being completely naked as normal. At least for now. You will still be able to wear your inmate uniform, I don't mind. But you have to lose inhibitions you have.[/say]")
|
saynn("[say=issix]Now, with decisions made, I need to tell you what I intend to happen. I want you to strip naked for me. I want to see your entire body again, completely bare. I want to know what I'm working with. You'll have to lose whatever conception of shame you have and embrace being completely naked as normal. At least for now. You will still be able to wear your inmate uniform, I don't mind. But you have to lose inhibitions you have.[/say]")
|
||||||
#GM.pc.unequipAllRestraints()
|
#GM.pc.unequipAllRestraints()
|
||||||
|
@ -229,18 +230,18 @@ func _run():
|
||||||
addButton("Continue", "End the conversation", "endthescene")
|
addButton("Continue", "End the conversation", "endthescene")
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
func _react(_action: String, _args):
|
||||||
if _action == "walktocell":
|
# if _action == "walktocell":
|
||||||
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "cellblock_red_nearcell", [
|
# runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "cellblock_red_nearcell", [
|
||||||
"We're almost there, don't worry",
|
# "We're almost there, don't worry",
|
||||||
"Hope you are ready, there is no going back from this",
|
# "Hope you are ready, there is no going back from this",
|
||||||
"Looking forward to letting go?",
|
# "Looking forward to letting go?",
|
||||||
"Thinking is too hard for you, that's why you came to me. Don't worry, I'll relieve you of this burden soon",
|
# "Thinking is too hard for you, that's why you came to me. Don't worry, I'll relieve you of this burden soon",
|
||||||
"You've made your choice, very soon you won't be able to make another"
|
# "You've made your choice, very soon you won't be able to make another"
|
||||||
], "cellblock_red_nearcell", "crawl"])
|
# ], "cellblock_red_nearcell", "crawl"])
|
||||||
|
#
|
||||||
if _action == "soulfull":
|
# if _action == "soulfull":
|
||||||
var cuff = GlobalRegistry.createItem("inmateanklecuffs")
|
# var cuff = GlobalRegistry.createItem("inmateanklecuffs")
|
||||||
GM.pc.getInventory().forceEquipStoreOther(cuff)
|
# GM.pc.getInventory().forceEquipStoreOther(cuff)
|
||||||
|
|
||||||
if _action == "acceptslavery":
|
if _action == "acceptslavery":
|
||||||
GM.pc.addExperience(100)
|
GM.pc.addExperience(100)
|
||||||
|
|
Loading…
Reference in a new issue