18.12 updates

This commit is contained in:
Frisk 2024-12-18 01:21:19 +01:00
parent 11ec77f305
commit 92ff8ddf49
15 changed files with 362 additions and 55 deletions

View file

@ -25,7 +25,7 @@ func checkRequirements(requirements: Dictionary):
func shouldBeShownForcedEvent(): func shouldBeShownForcedEvent():
var scenes_seen = getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []}) var scenes_seen = getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
var current_progression_points = GM.main.getModuleFlag("IssixModule", "Progression_Points", 1) var current_progression_points = GM.main.getModuleFlag("IssixModule", "Progression_Points", 1)
if GM.main.getDays() >= GM.main.getModuleFlag("IssixModule", "Progression_Day_Next", 0) and !GM.main.getModuleFlag("IssixModule", "Unwelcome_At_Corner", false): if GM.main.getDays() >= GM.main.getModuleFlag("IssixModule", "Progression_Day_Next", 0) and GM.main.getModuleFlag("IssixModule", "Unwelcome_At_Corner", false) != true:
registered_special_scenes.sort_custom(CustomSorter, "sort_by_progressionpoints") registered_special_scenes.sort_custom(CustomSorter, "sort_by_progressionpoints")
for scene in registered_special_scenes: for scene in registered_special_scenes:
if scene[1] > current_progression_points: if scene[1] > current_progression_points:
@ -41,12 +41,9 @@ func react(_triggerID, _args):
#if(doEventCheck("IssixBusy") != null): #if(doEventCheck("IssixBusy") != null):
# return false # return false
var scene_to_show = shouldBeShownForcedEvent() var scene_to_show = shouldBeShownForcedEvent()
Console.printLine("test1")
if scene_to_show != null: if scene_to_show != null:
Console.printLine("test2")
runScene(scene_to_show) runScene(scene_to_show)
return true return true
Console.printLine("test3")
return false return false

View file

@ -10,7 +10,6 @@ func registerTriggers(es):
func run(_triggerID, _args): func run(_triggerID, _args):
#if(doEventCheck("IssixBusy") != null): #if(doEventCheck("IssixBusy") != null):
# return false # return false
Console.printLine("test5")
if(GM.main.isVeryLate()): # Add something in the nightime it's very late? if(GM.main.isVeryLate()): # Add something in the nightime it's very late?
saynn("You see an empty chair in the corner with three blankets laying around.") saynn("You see an empty chair in the corner with three blankets laying around.")
return false return false

View file

@ -7,13 +7,17 @@ func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom, "main_green_corridor9") es.addTrigger(self, Trigger.EnteringRoom, "main_green_corridor9")
func run(_triggerID, _args): func run(_triggerID, _args):
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_talked") and RNG.chance(30)): if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_noticed", false) == false):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_found", true) if "feline" in GM.pc.getSpecies():
saynn("You approach greenhouses, each one looks like a huge long tent with lots of artificial lights inside. Your sensitive nose catches a whiff of a peculiar smell coming from one of the greenhouses, something very primal to your very instincts...")
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_found")): addButton("Investigate", "Find the source of smell", "greenhouse")
saynn("While staring at plethora of different plants, you recognize one in particular - white flowers and specific smell. Catnip!") elif RNG.chance(50):
saynn("While minding your business you notice a sign which depicts a crossed out feline. This strikes you as very odd, why would felines be banned from what appears to be a single greenhouse?")
addButton("Investigate", "Try to find out what's up?", "greenhouse")
else:
saynn("While going through the greenhouses you remember a familiar greenhouse that had catnip in it. You could try and get some for yourself, or someone else.")
if(!GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_taken_today")): if(!GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_taken_today")):
addButtonUnlessLate("Steal", "Try and steal something", "steal") addButtonUnlessLate("Steal", "Try and steal something", "greenhouse")
else: else:
addDisabledButton("Steal", "Too dangerous to do this again today") addDisabledButton("Steal", "Too dangerous to do this again today")
@ -21,5 +25,5 @@ func getPriority():
return 0 return 0
func onButton(_method, _args): func onButton(_method, _args):
if(_method == "steal"): if(_method == "greenhouse"):
runScene("GreenhouseCatnip") runScene("GreenhouseCatnip")

View file

@ -1,7 +1,7 @@
extends EventBase extends EventBase
func _init(): func _init():
id = "IssixEvent" id = "IssixSearchEvent"
func registerTriggers(es): func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom, "hall_mainentrance") es.addTrigger(self, Trigger.EnteringRoom, "hall_mainentrance")

View file

@ -0,0 +1,25 @@
extends EventBase
func _init():
id = "BullyGangEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.ApproachedYogaMats)
es.addTrigger(self, Trigger.ApproachedWeightsBench)
func react(_triggerID, _args):
if(getModuleFlag("GymModule", "Gym_BullyGangPayed")):
return false
if getModuleFlag("IssixModule", "Gym_Bullies_Left_Alone", false) == true:
return false
if(RNG.chance(50)):
return false
runScene("BullyGangScene")
setModuleFlag("GymModule", "Gym_BullyGangPayed", true)
return true
func getPriority():
return 20

View file

@ -10,8 +10,7 @@ func getFlags():
"Score_Explored": flag(FlagType.Number), "Score_Explored": flag(FlagType.Number),
"Quest_Status": flag(FlagType.Number), "Quest_Status": flag(FlagType.Number),
"Quest_Rejected_By_Issix": flag(FlagType.Number), "Quest_Rejected_By_Issix": flag(FlagType.Number),
"Azazel_Catnip_talked": flag(FlagType.Bool), "Azazel_Catnip_noticed": flag(FlagType.Bool),
"Azazel_Catnip_found": flag(FlagType.Bool),
"Azazel_Catnip_taken_today": flag(FlagType.Bool), "Azazel_Catnip_taken_today": flag(FlagType.Bool),
"Azazel_Affection_given": flag(FlagType.Number), "Azazel_Affection_given": flag(FlagType.Number),
"Lamia_Times_Helped": flag(FlagType.Number), "Lamia_Times_Helped": flag(FlagType.Number),
@ -62,7 +61,9 @@ func getFlags():
"Strikes_For_Disobedience": flag(FlagType.Number), "Strikes_For_Disobedience": flag(FlagType.Number),
"Unwelcome_At_Corner": flag(FlagType.Bool), "Unwelcome_At_Corner": flag(FlagType.Bool),
"Had_Sex_With_Issix": flag(FlagType.Bool), "Had_Sex_With_Issix": flag(FlagType.Bool),
"Litter_Guessing_Game": flag(FlagType.Dict) "Litter_Guessing_Game": flag(FlagType.Dict),
"Have_Received_Headpats_Lamia": flag(FlagType.Bool),
"Received_Headpats_From_Lamia": flag(FlagType.Number)
#"Gym_Bullies_Left_Alone": flag(FlagType.Bool) Currently cannot change the behavior of this :( #"Gym_Bullies_Left_Alone": flag(FlagType.Bool) Currently cannot change the behavior of this :(
} }
@ -155,6 +156,9 @@ static func getWalkDelay():
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"
static func playerToFuck():
return not (int(GM.main.getDays()) % 2 != 0) and GM.main.getModuleFlag("IssixModule", "Todays_Bred_Slave", "") == "pc"
static func getPlayerPetName(): static func getPlayerPetName():
if Species.Canine in GM.pc.getSpecies(): if Species.Canine in GM.pc.getSpecies():
return "puppy" return "puppy"
@ -189,14 +193,49 @@ func breedSlaveIfNpc():
print("Hiisi cummed in") print("Hiisi cummed in")
current_slave.cummedInAnusBy("issix") current_slave.cummedInAnusBy("issix")
func calculateDailyScore() -> int:
## For calculating player's daily activities at the end of the day
var score = 0
if playerToFuck():
if GM.main.getModuleFlag("IssixModule", "Had_Sex_With_Issix", false) == false:
score -= 5
else:
score += 5
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 1:
var time_forced = GM.main.getModuleFlag("IssixModule", "Is_Player_Forced_Today", 0)
var time_served = GM.main.getModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 0)
if time_forced > 0:
if time_served >= time_forced:
score += 1
else:
score -= 7
else:
if time_served >= 60*60:
score += 1
else:
score -= 5
return score
func tickDay(): func tickDay():
addIssixMood(RNG.randi_range(-7, 7)) addIssixMood(RNG.randi_range(-7, 7))
if GM.main.getDays() - GM.main.getModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays()) > 1: # TODO detect player in soft-lock (medical/etc) if GM.pc.getLocation() != "medical_paddedcell_player":
pass # TODO Bust out scene
elif (GM.main.getDays() - GM.main.getModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays()) > 1):
addIssixMood(-10) addIssixMood(-10)
addIssixMood(calculateDailyScore())
if int(GM.main.getDays()) % 7 == 0: if int(GM.main.getDays()) % 7 == 0:
GM.main.increaseModuleFlag("IssixModule", "Comic_Books", RNG.randi_range(5, 8)) GM.main.increaseModuleFlag("IssixModule", "Comic_Books", RNG.randi_range(5, 8))
if int(GM.main.getDays()) % 30 == 0 and GM.main.getModuleFlag("IssixModule", "Strikes_For_Disobedience", 0) > 0: # every 30 days remove one strike
GM.main.increaseModuleFlag("IssixModule", "Strikes_For_Disobedience", -1)
if GM.main.getDays()-GM.main.getModuleFlag("IssixModule", "Last_Walk", GM.main.getDays()) == APPROX_WALK_DELAY:
GM.main.setModuleFlag("IssixModule", "Last_Walk", GM.main.getDays())
func resetFlagsOnNewDay(): # I apologize for abusing this hook, but startNewDay does not have ANY other hooks I can use and SleepInCell as a trigger is not covering all cases of days passing by func resetFlagsOnNewDay(): # I apologize for abusing this hook, but startNewDay does not have ANY other hooks I can use and SleepInCell as a trigger is not covering all cases of days passing by
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) > 0: # Slavery module
tickDay()
if GM.main.getModuleFlag("IssixModule", "Have_Received_Headpats_Lamia") != null:
GM.main.setModuleFlag("IssixModule", "Have_Received_Headpats_Lamia", false)
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", false) GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", false)
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)
@ -207,8 +246,4 @@ func resetFlagsOnNewDay(): # I apologize for abusing this hook, but startNewDay
if GM.main.getModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today") != null: if GM.main.getModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today") != null:
GM.main.setModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today", false) GM.main.setModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today", false)
GM.main.setModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 0) GM.main.setModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 0)
if GM.main.getDays()-GM.main.getModuleFlag("IssixModule", "Last_Walk", GM.main.getDays()) == APPROX_WALK_DELAY:
GM.main.setModuleFlag("IssixModule", "Last_Walk", GM.main.getDays())
GM.main.setModuleFlag("IssixModule", "Eaten_Today", false) GM.main.setModuleFlag("IssixModule", "Eaten_Today", false)
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) > 0: # Slavery module
tickDay()

View file

@ -11,8 +11,8 @@ The mod and contents in it is - surprise surprise - a work of fiction. Author do
- Azazel - a kind feline breeding bitch - Azazel - a kind feline breeding bitch
- Hiisi - a troubled pup - guardian angel of the harem (after Issix) - Hiisi - a troubled pup - guardian angel of the harem (after Issix)
- Lamia - a mute and sexually absent fox - Lamia - a mute and sexually absent fox
- One quest that leads to your enslavement by Issix (currently only implemented voluntary enslavement as a pet, this is a sweet type of enslavement), there are a bunch of fun elements in it, like figuring out an ASCII map or filling a questionnaire with a possible little twist - One quest that leads to your enslavement by Issix (currently only implemented voluntary enslavement as a pet, this is an overall rather "nice" type of enslavement), there are a bunch of fun elements in it, like figuring out an ASCII map or filling a questionnaire
- Each pet has their own mechanic that increases their trust/affection towards the player - Each (ok, only Azazel and Lamia) 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 - Finally, voluntary enslavement, if you eventually get enslaved it may make your game a bit more difficult
- Some branches of choices and situations. - 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

View file

@ -9,7 +9,7 @@ var empty_loots = [
"You pull out a shelf and find a single piece of paper inside. It has only one sentence on it, in large font that fills entire page saying „OH, DID U GET THE BROOM CLOSET ENDING? THEB ROOM CLOSET ENDING WAS MY FAVRITE!1 XD”. The absolute lack of context and randomness of this message fill you with concern. Engineers must have a very strange sense of humor." "You pull out a shelf and find a single piece of paper inside. It has only one sentence on it, in large font that fills entire page saying „OH, DID U GET THE BROOM CLOSET ENDING? THEB ROOM CLOSET ENDING WAS MY FAVRITE!1 XD”. The absolute lack of context and randomness of this message fill you with concern. Engineers must have a very strange sense of humor."
] ]
var cabinet_random = RandomNumberGenerator.new() var cabinet_random = RandomNumberGenerator.new()
var current_loot = null # TODO will not survive save/load var current_loot = null
var current_cabinet = null var current_cabinet = null
func _init(): func _init():
@ -132,7 +132,6 @@ func _run():
addMessage("You took "+str(damage_taken)+" damage.") addMessage("You took "+str(damage_taken)+" damage.")
addButton("Back", "Look at cabinets", "cabinets") addButton("Back", "Look at cabinets", "cabinets")
if state=="cabinetevent3": if state=="cabinetevent3":
processTime(3*60) processTime(3*60)
saynn("You chose to open cabinet number "+("number "+str(current_cabinet) if current_cabinet != 42 else "with a number you can't read")+"...") saynn("You chose to open cabinet number "+("number "+str(current_cabinet) if current_cabinet != 42 else "with a number you can't read")+"...")
@ -211,6 +210,20 @@ func _react(_action: String, _args):
setState(_action) setState(_action)
func saveData():
var data = .saveData()
data["current_loot"] = current_loot
data["current_cabinet"] = current_cabinet
return data
func loadData(data):
.loadData(data)
current_loot = SAVE.loadVar(data, "current_loot", null)
current_cabinet = SAVE.loadVar(data, "current_cabinet", null)
func _react_scene_end(_tag, _result): func _react_scene_end(_tag, _result):
if(_tag == "caughtbyeng"): if(_tag == "caughtbyeng"):
if _result[0] == "out": if _result[0] == "out":

View file

@ -5,40 +5,50 @@ func _init():
func _run(): func _run():
if(state == ""): if(state == ""):
saynn("You approach the greenhouses, each one looks like a huge long tent with lots of artificial lights inside. You have to sneak around cause at any moment you can spotted by some guard.") if GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_noticed", false) == false:
saynn("Curious, you begin investigating. You have to sneak around cause at any moment you can spotted by some guard.")
saynn("This specific station seems to be growing quite a variety of herbs, most of which are unknown to you.")
saynn("You spotted that the doors to the greenhouse have been left opened. Right behind them you see a familiar plant - catnip.") saynn("This specific station seems to be growing quite a variety of herbs, most of which are unknown to you.")
saynn("What do you wanna do?")
addButton("Take catnip", "Sneak in, grab one and get out", "catnip") saynn("You spotted that the doors to the greenhouse have been left opened. Right behind them you see a familiar plant - catnip.")
addButton("Don't steal", "Too dangerous", "endthescene")
saynn("What do you wanna do?")
addButton("Take catnip", "Sneak in, grab one and get out", "catnip")
addButton("Don't steal", "Too dangerous", "endthescene")
if(state == "catnip"): else:
saynn("While staring at plethora of different plants, you recognize one in particular - white flowers and specific smell. Catnip!")
saynn("You find and cut one of many catnip at the bottom of the stem. Time to leave.")
addButton("Continue", "Try to escape without being seen", "caughtcheck")
if state == "catnip":
saynn("While staring at plethora of different plants, you recognize one in particular - white flowers and specific smell. Catnip!")
saynn("You find and cut one of many catnip at the bottom of the stem. Time to leave.") saynn("You find and cut one of many catnip at the bottom of the stem. Time to leave.")
addButton("Continue", "Try to escape without being seen", "caughtcheck") addButton("Continue", "Try to escape without being seen", "caughtcheck")
if state == "caughtcheck":
addMessage("Seems like you got away safely")
addButton("Leave", "Leave the crime scene", "endthescene")
func _react(_action: String, _args): func _react(_action: String, _args):
if(_action == "catnip"): if(_action == "catnip"):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", true) GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_noticed", true)
GM.pc.getInventory().addItem(GlobalRegistry.createItem("CatnipPlant")) GM.pc.getInventory().addItem(GlobalRegistry.createItem("CatnipPlant"))
addMessage("You stole catnip plant.") addMessage("You stole catnip plant.")
if(_action == "caughtcheck"): if(_action == "caughtcheck"):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", true)
processTime(10 * 5) processTime(10 * 5)
if(RNG.chance(25)): if(RNG.chance(25)):
if(GM.ES.triggerReact(Trigger.CaughtStealingInGreenhouse)): if(GM.ES.triggerReact(Trigger.CaughtStealingInGreenhouse)):
endScene() endScene()
return return
addMessage("Seems like you got away safely")
addButton("Leave", "Leve the crime scene", "endthescene")
return
if(_action == "endthescene"): if(_action == "endthescene"):
endScene() endScene()

View file

@ -226,10 +226,10 @@ func _run():
processTime(2*60) processTime(2*60)
saynn("There is no reaction coming from Issix on your answer. He gestures you to go on. A new question appears.") saynn("There is no reaction coming from Issix on your answer. He gestures you to go on. A new question appears.")
saynn("„How do parasites make you feel?”") saynn("„How do parasites make you feel?”")
addButton("Disgusted", "Parasites are disgusting", "q10answer", [1]) addButton("Disgusted", "Parasites are disgusting (disables future parasite content)", "q10answer", [1])
addButton("Scared", "They fill you with fear", "q10answer", [2]) addButton("Scared", "They fill you with fear (disables future parasite content)", "q10answer", [2])
addButton("Neutral", "They are creatures, the only thing that makes them parasites is the way they obtain their food", "q10answer", [3]) addButton("Neutral", "They are creatures, the only thing that makes them parasites is the way they obtain their food (enables references to future parasite content without direct involvement)", "q10answer", [3])
addButton("Horny", "You like parasites... In very specific way", "q10answer", [4]) addButton("Horny", "You like parasites... In very specific way (enables future parasite related content)", "q10answer", [4])
if(state == "q10answer"): if(state == "q10answer"):
if(answer < 3): if(answer < 3):

View file

@ -0,0 +1,180 @@
# Originally from https://github.com/Alexofp/BDCC/blob/3c1dc5f933c54971a60687abf539f8e0a3d15f7f/Modules/GymModule/BullyGangScene.gd modified for sake of mod
extends "res://Scenes/SceneBase.gd"
var gotPayed = false
func _init():
sceneID = "BullyGangScene"
func _run():
if(state == ""):
addCharacter("gymbully")
addCharacter("gymbully2")
addCharacter("gymbully3")
playAnimation(StageScene.Duo, "stand", {npc="gymbully"})
if(state == ""):
# (if first time)
if(!getModuleFlag("GymModule", "Gym_BullyGangIntroduced")):
setModuleFlag("GymModule", "Gym_BullyGangIntroduced", true)
saynn("As you look around the gym area and think about what you wanna do, three inmates approach you from behind. Two guys and a girl. The main guy taps on your shoulder. You hear a very raspy male voice.")
saynn("[say=gymbully]Hey, you. Thats right, Im talking to you.[/say]")
saynn("You turn around and see that they are all wearing red inmate uniforms but also red bands on their heads, probably a sign of being in the same gang.")
saynn("[say=gymbully]Havent seen you here before. You aware of how things work here?[/say]")
saynn("They dont seem to be very kind to newcomers. You shake your head slightly.")
saynn("[say=gymbully]We control this area, kiddo. And if you wanna be here you better pay up. Official price is 5 credits a day.[/say]")
saynn("[say=pc]And what if I dont?[/say]")
saynn("[say=gymbully]Then you leave.[/say]")
saynn("The girl barks at you from over the shoulder of the main guy.")
# (if general inmate)
if(GM.pc.getInmateType() == InmateType.General):
saynn("[say=gymbully3]Thats right, general block bitch. Couldnt even pull a trigger to earn yourself red clothes?[/say]")
# (if red inmate)
elif(GM.pc.getInmateType() == InmateType.HighSec):
saynn("[say=gymbully3]Yeah, pay up or fuck off, bitch.[/say]")
# (if lilac)
elif(GM.pc.getInmateType() == InmateType.SexDeviant):
saynn("[say=gymbully3]You better pay before you get shared between all the inmates here, lilac slut.[/say]")
# (if not the first time)
else:
saynn("Three inmates approach you, the same ones that you remember. They make a circle around you.")
saynn("[say=gymbully]You know why were here. Pay up or leave.[/say]")
if(GM.pc.getCredits() >= 5):
addButton("Pay", "Well, what can you do", "pay")
else:
addDisabledButton("Pay", "Not enough credits")
addButton("Intimidate", "Tell them you wont leave or pay", "intimidate")
if getModuleFlag("IssixModule", "PC_Training_Level", 0) > 0 and getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 1:
if (GM.pc.getPersonality().getStat(PersonalityStat.Coward) > 0.3):
addDisabledButton("Issix", "You are too cowardly to bring up your Master")
else:
addButton("Issix", "Issix said you can say his name when dealing with bullies, maybe that'll work?", "issixthreat")
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 "+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 "+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 seond, all of them are rather satisfied with themselves.")
saynn("[say=gymbully]Whatever. You just look like one of his bitches, and I don't plan to mess around with the big man himself again, 5 credits ain't worth it. See ya later, slave.[/say]")
addButton("Continue", "That... Worked better than expected", "endthescene")
if(state == "pay"):
saynn("You hang them a chip with some credits. The main guy quickly checks it and puts it away before offering you a smile.")
saynn("[say=gymbully]Pleasure doing business with you.[/say]")
saynn("The trio steps away from you and goes to bully someone else.")
# (scene ends)
addButton("Continue", "Sigh", "endthescene")
if(state == "intimidate"):
saynn("[say=pc]Im not leaving. And Im not paying. How about you and your sidekicks go bug someone else.[/say]")
saynn("The main guy chuckles, others growl at you.")
saynn("[say=gymbully]Lets see how you will speak after we fuck your pretty face up.[/say]")
addButton("Fight", "Time to fight", "fight")
if(state == "if_won"):
saynn("The gang members quickly scatter away as you beat their leader.")
addButton("Continue", "Nice", "endthescene")
if(state == "if_lost"):
saynn("Defeated, you drop down to your knees. The gang members then shove you onto the ground and pin you while the main guy searches through your pockets.")
saynn("[say=gymbully]Easy there, sweetheart. Im not taking everything.[/say]")
# (if has 5 credits)
if(gotPayed):
saynn("His hand finds a chip with 5 credits on you and takes it.")
saynn("[say=gymbully]See. Enjoy yourself. For now.[/say]")
# (if not enough)
else:
saynn("His hand was unable to find enough credits on you. He sighs.")
saynn("[say=gymbully]I almost feel pitiful for taking your last credits away. But then again, the experience is worth more than money, aint that true.[/say]")
addButton("Continue", "Ow", "endthescene")
# (scene ends)
func _react(_action: String, _args):
if _action == "issixthreat":
setModuleFlag("IssixModule", "Gym_Bullies_Left_Alone", true)
if(_action == "pay"):
processTime(5 * 60)
GM.pc.addCredits(-5)
if(_action == "fight"):
runScene("FightScene", ["gymbully"], "gymbullyfight")
if(_action == "endthescene"):
endScene()
return
setState(_action)
func saveData():
var data = .saveData()
data["gotPayed"] = gotPayed
return data
func loadData(data):
.loadData(data)
gotPayed = SAVE.loadVar(data, "gotPayed", false)
func _react_scene_end(_tag, _result):
if(_tag == "gymbullyfight"):
processTime(20 * 60)
var battlestate = _result[0]
#var wonHow = _result[1]
if(battlestate == "win"):
setState("if_won")
addExperienceToPlayer(30)
else:
setState("if_lost")
if(GM.pc.getCredits() >= 5):
gotPayed = true
GM.pc.addCredits(-5)
else:
gotPayed = false
#addExperienceToPlayer(5)
func getDevCommentary():
return "I was.. pretty out of it while writing this scene. That's why its so short and doesn't have any sex scenes and is kinda bad.\n\nThis scene is why I shouldn't write anything while I'm sad/depressed, heh. Should I remove it/rewrite it? Maybe. But to get rid of these bullies completely I would probably try to make a quest. Something about you and Nova teaming up and trying to destroy their gang.. or getting gangbanged x3 why not both"
func hasDevCommentary():
return true

View file

@ -295,7 +295,6 @@ func _run():
#setState("azazelmain") #setState("azazelmain")
if(state == "azazeltalk"): if(state == "azazeltalk"):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_talked", true)
var affection = getModuleFlag("IssixModule", "Azazel_Affection_given", 0) var affection = getModuleFlag("IssixModule", "Azazel_Affection_given", 0)
addButton("Prison", "Ask how did he end up in prison?", "azazelprison") addButton("Prison", "Ask how did he end up in prison?", "azazelprison")
addButton("Hobby", "Ask what hobbies does he have", "azazelhobby") addButton("Hobby", "Ask what hobbies does he have", "azazelhobby")

View file

@ -9,14 +9,11 @@ func _run():
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)):
increaseModuleFlag("IssixModule", "Progression_Points")
if GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix"): if GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix"):
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+2)
saynn("[say=issix]My my. My piss slut came back and {pc.he} is still smelling like myself. Good job.[/say]") 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("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]") 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:
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+5)
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("[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("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("[say=issix]I'm not going to punish you, but I'm also not going to reward you either.[/say]")
@ -63,8 +60,12 @@ func _react(_action: String, _args):
if _action == "training1": if _action == "training1":
IssixModule.addSceneToWatched(sceneID) IssixModule.addSceneToWatched(sceneID)
if(OPTIONS.isContentEnabled(ContentType.Watersports)) and GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix") == false: if(OPTIONS.isContentEnabled(ContentType.Watersports)):
GM.pc.cummedOnBy("issix", FluidSource.Pissing, 0.4) if GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix") == false:
GM.pc.cummedOnBy("issix", FluidSource.Pissing, 0.4)
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+5)
else:
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+2)
if _action == "walkies2": if _action == "walkies2":
processTime(4*60) processTime(4*60)
@ -83,6 +84,7 @@ func _react(_action: String, _args):
], "gym_entrance", "crawl"]) ], "gym_entrance", "crawl"])
if(_action == "endthescene"): if(_action == "endthescene"):
increaseModuleFlag("IssixModule", "Progression_Points")
increaseModuleFlag("IssixModule", "PC_Training_Level") increaseModuleFlag("IssixModule", "PC_Training_Level")
endScene() endScene()
return return

View file

@ -34,6 +34,8 @@ func _run():
saynn("To pay Master for sluttying around yesterday: " + str(GM.main.getModuleFlag("IssixModule", "Prostituation_fee_yesterday", 0) + GM.main.getModuleFlag("IssixModule", "Prostituation_flat_fee", 0))) saynn("To pay Master for sluttying around yesterday: " + str(GM.main.getModuleFlag("IssixModule", "Prostituation_fee_yesterday", 0) + GM.main.getModuleFlag("IssixModule", "Prostituation_flat_fee", 0)))
_: _:
pass pass
if IssixModule.playerToFuck() and getModuleFlag("IssixModule", "Had_Sex_With_Issix", false) != true:
saynn("[color=#B03838]Master expects you to be available for fucking today.[/color]")
setModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays()) setModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays())
addButton("Master", "Talk with your master about something", "issixpetmenu") addButton("Master", "Talk with your master about something", "issixpetmenu")
addButton("Azazel", "Actions in relation to Azazel", "azazelpetmenu") addButton("Azazel", "Actions in relation to Azazel", "azazelpetmenu")
@ -47,7 +49,7 @@ func _run():
if GM.pc.getStamina() > 100: # TODO Add some other event as precondition for this being available? if GM.pc.getStamina() > 100: # TODO Add some other event as precondition for this being available?
addButton("Play", "Play with other pets.", "haremplay") addButton("Play", "Play with other pets.", "haremplay")
else: else:
addDisabledButton("Play", "You are too tired to play with other pets.") addDisabledButton("Play", "You are too tired to play with other pets (minimum 100 stamina)")
if GM.main.getDays()-last_walk == IssixModule.getWalkDelay(): # TODO Walks if GM.main.getDays()-last_walk == IssixModule.getWalkDelay(): # TODO Walks
if GM.main.getTime() < 54000: if GM.main.getTime() < 54000:
addDisabledButton("Walk", "Walks are unimplemented at the moment, possibly in future releases!") addDisabledButton("Walk", "Walks are unimplemented at the moment, possibly in future releases!")
@ -94,7 +96,7 @@ func _run():
addDisabledButton("Learn", "You already know everything about bearing children") addDisabledButton("Learn", "You already know everything about bearing children")
if GlobalRegistry.getCharacter("azazel").isHeavilyPregnant() and canPromptLitterDialogue(): if GlobalRegistry.getCharacter("azazel").isHeavilyPregnant() and canPromptLitterDialogue():
addButton("Guess litter", "Ask Azazel about his pregnancy", "azazelguesslitter") addButton("Guess litter", "Ask Azazel about his pregnancy", "azazelguesslitter")
addDisabledButton("Sex", "Ask for sex with Azazel") # , "azazelsexrequest" addDisabledButton("Sex", "Ask for sex with Azazel (WIP)") # , "azazelsexrequest"
addButton("Back", "Go back", "") addButton("Back", "Go back", "")
if state == "azazelguesslitterfirst": if state == "azazelguesslitterfirst":
@ -210,6 +212,7 @@ func _run():
if state == "hiisipetmenu": if state == "hiisipetmenu":
playAnimation(StageScene.Duo, "kneel", {pc="hiisi", npcAction="kneel", npc="pc", bodyState={naked=false, hard=false}})
addCharacter("hiisi") addCharacter("hiisi")
if GM.pc.getSkillLevel(Skill.Combat) < 16: if GM.pc.getSkillLevel(Skill.Combat) < 16:
addDisabledButton("Learn", "Learn something from Hiisi (WIP)") # , "hiisilearncombat" addDisabledButton("Learn", "Learn something from Hiisi (WIP)") # , "hiisilearncombat"
@ -220,11 +223,39 @@ func _run():
addButton("Back", "Go back", "") addButton("Back", "Go back", "")
if state == "lamiapetmenu": if state == "lamiapetmenu":
playAnimation(StageScene.Duo, "kneel", {pc="lamia", npcAction="kneel", npc="pc", bodyState={naked=false, hard=false}})
addCharacter("lamia") addCharacter("lamia")
#addButton("Read", "Read comic books (WIP)", "") #addButton("Read", "Read comic books (WIP)", "")
addButton("Pets", "Ask for pets", "lamiapetrequest") if GM.main.getModuleFlag("IssixModule", "Have_Received_Headpats_Lamia", false) == false:
addButton("Pets", "Ask for pets", "lamiapetrequest")
else:
addDisabledButton("Pets", "You've asked for headpats today already!")
addButton("Back", "Go back", "") addButton("Back", "Go back", "")
if state == "lamiapetrequestfirst":
saynn("A fox breed is consumed by snacking on food in their pet bowl.")
if GM.pc.getPersonality().getStat(PersonalityStat.Coward) > 0.3:
saynn("[say=pc]Hey Lamia, I wondered if...[/say]")
saynn("You realize how awkward you feel asking Lamia this. It feels silly, you feel vulnerable and exposed doing so. Lamia stares at your face, which you are trying to unconsciously conceal from the fox breed. He stares at you some more, confused.")
saynn("[say=pc]I were wondering if you could... Ummm...[/say]")
saynn("You still feel incredibly embarrassed, making it difficult for you to finish the question. Finally, Lamia takes his paw and pushes it under yours, taking your into his own, doing the same with the second. This calms you down a little, you finally look at face of Lamia. It's a smile, such a honest and comforting smile. You didn't know that someone can have such an effect on you, to dispel any worries, to comfort you so much, and yet the fox does just that, without saying a single word.")
saynn("[say=pc]Wow... Thank you. I wanted to ask if you could maybe pet me? It still feels si-[/say]")
saynn("Not letting you finish your sentence, Lamia lets go of your paw and places it on top of your head giving you a few very gentle pats. You close your eyes and just let yourself be pet, realizing that it might look silly from outside perspective, but quickly losing those thoughts as they are replaced by fuzzy feelings. Fox may be mute, but somehow you start to understand that communication with words isn't always needed, that some emotions can be expressed with mere body language that often is more expressive than a thousand words. Feeling of fulfillment and comfort fills you, easing pain and filling you with happiness.")
saynn("[say=pc]You are the best Lamia, thank you so much, that's just what I needed![/say]")
saynn("He nods in understanding, they don't say anything but somehow it feels as if they communicated to you „any time, friend”. At least that's what you think you saw in their body language, or can you read their body language? That's a strange feeling.")
else:
saynn("[say=pc]Hey Lamia, I were wondering if you could pet my head a few times? I've been feeling do-[/say]")
saynn("Fox needing no explanation or encouragement, simply puts his paw on your head and starts petting you. For a moment you even feel embarrassed a little by the treatment but then, you did ask right? You look at their face, very candid and expressively full of love for other creatures. It strikes you as such a rare experience in your life. To ask someone to do something so small and yet so meaningful, happy, joyful... As they ruffle your fur, and behind your ears you can feel a rush of endorphines in your body, as well as appreciation for such simple act of care you've been given.")
saynn("[say=pc]Thank you, Lamia. That was wonderful, feel free to ask me anytime I can reciprocate your wonderful headpats.[/say]")
saynn("They nod to you in understanding")
addButton("Finish", "Finish this interaction", "lamiapetmenu")
if state == "lamiapetrequestanother":
saynn("[say=pc]Hey Lamia![/say]")
saynn("You don't have to say anything and Lamia begins to reach their paw above your head, you let them do this. No future words are exchanged as the fox gives you pats and ruffles your hair a little. This small ritual gave you powers to push through the day reinvigorated.")
addButton("Finish", "Finish this interaction", "lamiapetmenu")
if state == "issixwalkquestion": if state == "issixwalkquestion":
var last_walk = getModuleFlag("IssixModule", "Last_Walk", 0) var last_walk = getModuleFlag("IssixModule", "Last_Walk", 0)
if last_walk + 5 > GM.main.getDays(): if last_walk + 5 > GM.main.getDays():
@ -258,6 +289,7 @@ func _run():
addButton("Back", "Go back", "") addButton("Back", "Go back", "")
if state == "readabook": if state == "readabook":
saynn("You read one of the comic books, 20 minutes pass.") # TODO Expand on this
addButton("Back", "Go back", "") addButton("Back", "Go back", "")
@ -345,6 +377,17 @@ func _react(_action: String, _args):
GlobalRegistry.getCharacter("issix").addPain(-50) GlobalRegistry.getCharacter("issix").addPain(-50)
runScene("GenericSexScene", ["issix", "pc"], "subbysexissix") runScene("GenericSexScene", ["issix", "pc"], "subbysexissix")
if _action == "lamiapetrequest":
GM.pc.addPain(-10)
GM.pc.addStamina(5)
processTime(4*60)
GM.main.increaseModuleFlag("IssixModule", "Received_Headpats_From_Lamia")
if GM.main.getModuleFlag("IssixModule", "Have_Received_Headpats_Lamia") == null:
_action = "lamiapetrequestfirst"
else:
_action = "lamiapetrequestanother"
GM.main.setModuleFlag("IssixModule", "Have_Received_Headpats_Lamia", true)
if _action == "littercountresult": if _action == "littercountresult":
if(getTextboxData("litter_count") == ""): if(getTextboxData("litter_count") == ""):
return return

View file

@ -177,7 +177,7 @@ func _run():
saynn("[say=pc]Yes..,[/say]") saynn("[say=pc]Yes..,[/say]")
saynn("[say=issix]Yes?[/say]") saynn("[say=issix]Yes?[/say]")
saynn("[say=pc]Yes Master Issix.[/say]") saynn("[say=pc]Yes Master Issix.[/say]")
saynn("[say=issix]Good puppy.[/say]") # TODO puppy/kitten need to find a way to put those. saynn("[say=issix]Good "+IssixModule.getPlayerPetName()+".[/say]")
saynn("He takes his foot out of your belly.") saynn("He takes his foot out of your belly.")
if(OPTIONS.isContentEnabled(ContentType.Watersports)): 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]") 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]")