18.12 updates
This commit is contained in:
parent
11ec77f305
commit
92ff8ddf49
|
@ -25,7 +25,7 @@ func checkRequirements(requirements: Dictionary):
|
|||
func shouldBeShownForcedEvent():
|
||||
var scenes_seen = getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
|
||||
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")
|
||||
for scene in registered_special_scenes:
|
||||
if scene[1] > current_progression_points:
|
||||
|
@ -41,12 +41,9 @@ func react(_triggerID, _args):
|
|||
#if(doEventCheck("IssixBusy") != null):
|
||||
# return false
|
||||
var scene_to_show = shouldBeShownForcedEvent()
|
||||
Console.printLine("test1")
|
||||
if scene_to_show != null:
|
||||
Console.printLine("test2")
|
||||
runScene(scene_to_show)
|
||||
return true
|
||||
Console.printLine("test3")
|
||||
return false
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ func registerTriggers(es):
|
|||
func run(_triggerID, _args):
|
||||
#if(doEventCheck("IssixBusy") != null):
|
||||
# return false
|
||||
Console.printLine("test5")
|
||||
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.")
|
||||
return false
|
||||
|
|
|
@ -7,13 +7,17 @@ func registerTriggers(es):
|
|||
es.addTrigger(self, Trigger.EnteringRoom, "main_green_corridor9")
|
||||
|
||||
func run(_triggerID, _args):
|
||||
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_talked") and RNG.chance(30)):
|
||||
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_found", true)
|
||||
|
||||
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_found")):
|
||||
saynn("While staring at plethora of different plants, you recognize one in particular - white flowers and specific smell. Catnip!")
|
||||
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_noticed", false) == false):
|
||||
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...")
|
||||
addButton("Investigate", "Find the source of smell", "greenhouse")
|
||||
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")):
|
||||
addButtonUnlessLate("Steal", "Try and steal something", "steal")
|
||||
addButtonUnlessLate("Steal", "Try and steal something", "greenhouse")
|
||||
else:
|
||||
addDisabledButton("Steal", "Too dangerous to do this again today")
|
||||
|
||||
|
@ -21,5 +25,5 @@ func getPriority():
|
|||
return 0
|
||||
|
||||
func onButton(_method, _args):
|
||||
if(_method == "steal"):
|
||||
if(_method == "greenhouse"):
|
||||
runScene("GreenhouseCatnip")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
extends EventBase
|
||||
|
||||
func _init():
|
||||
id = "IssixEvent"
|
||||
id = "IssixSearchEvent"
|
||||
|
||||
func registerTriggers(es):
|
||||
es.addTrigger(self, Trigger.EnteringRoom, "hall_mainentrance")
|
||||
|
|
25
Events/Overwrites/BullyGangEvent.gd
Normal file
25
Events/Overwrites/BullyGangEvent.gd
Normal 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
|
51
Module.gd
51
Module.gd
|
@ -10,8 +10,7 @@ func getFlags():
|
|||
"Score_Explored": flag(FlagType.Number),
|
||||
"Quest_Status": flag(FlagType.Number),
|
||||
"Quest_Rejected_By_Issix": flag(FlagType.Number),
|
||||
"Azazel_Catnip_talked": flag(FlagType.Bool),
|
||||
"Azazel_Catnip_found": flag(FlagType.Bool),
|
||||
"Azazel_Catnip_noticed": flag(FlagType.Bool),
|
||||
"Azazel_Catnip_taken_today": flag(FlagType.Bool),
|
||||
"Azazel_Affection_given": flag(FlagType.Number),
|
||||
"Lamia_Times_Helped": flag(FlagType.Number),
|
||||
|
@ -62,7 +61,9 @@ func getFlags():
|
|||
"Strikes_For_Disobedience": flag(FlagType.Number),
|
||||
"Unwelcome_At_Corner": 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 :(
|
||||
}
|
||||
|
||||
|
@ -155,6 +156,9 @@ static func getWalkDelay():
|
|||
static func getPlayerRole():
|
||||
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():
|
||||
if Species.Canine in GM.pc.getSpecies():
|
||||
return "puppy"
|
||||
|
@ -189,14 +193,49 @@ func breedSlaveIfNpc():
|
|||
print("Hiisi cummed in")
|
||||
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():
|
||||
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(calculateDailyScore())
|
||||
if int(GM.main.getDays()) % 7 == 0:
|
||||
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
|
||||
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", "Activated_Cabinets", {})
|
||||
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:
|
||||
GM.main.setModuleFlag("IssixModule", "Helped_Lamia_With_Drawings_Today", false)
|
||||
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)
|
||||
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) > 0: # Slavery module
|
||||
tickDay()
|
||||
|
|
|
@ -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
|
||||
- Hiisi - a troubled pup - guardian angel of the harem (after Issix)
|
||||
- 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
|
||||
- Each pet has their own mechanic that increases their trust/affection towards the player
|
||||
- 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 (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
|
||||
- Some branches of choices and situations.
|
||||
- Hopefully at least around an hour of additional gameplay? Haven't tested yet
|
||||
|
|
|
@ -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."
|
||||
]
|
||||
var cabinet_random = RandomNumberGenerator.new()
|
||||
var current_loot = null # TODO will not survive save/load
|
||||
var current_loot = null
|
||||
var current_cabinet = null
|
||||
|
||||
func _init():
|
||||
|
@ -132,7 +132,6 @@ func _run():
|
|||
addMessage("You took "+str(damage_taken)+" damage.")
|
||||
addButton("Back", "Look at cabinets", "cabinets")
|
||||
|
||||
|
||||
if state=="cabinetevent3":
|
||||
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")+"...")
|
||||
|
@ -211,6 +210,20 @@ func _react(_action: String, _args):
|
|||
|
||||
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):
|
||||
if(_tag == "caughtbyeng"):
|
||||
if _result[0] == "out":
|
||||
|
|
|
@ -5,40 +5,50 @@ func _init():
|
|||
|
||||
func _run():
|
||||
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.")
|
||||
|
||||
saynn("This specific station seems to be growing quite a variety of herbs, most of which are unknown to you.")
|
||||
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("You spotted that the doors to the greenhouse have been left opened. Right behind them you see a familiar plant - catnip.")
|
||||
|
||||
saynn("What do you wanna do?")
|
||||
saynn("This specific station seems to be growing quite a variety of herbs, most of which are unknown to you.")
|
||||
|
||||
addButton("Take catnip", "Sneak in, grab one and get out", "catnip")
|
||||
addButton("Don't steal", "Too dangerous", "endthescene")
|
||||
saynn("You spotted that the doors to the greenhouse have been left opened. Right behind them you see a familiar plant - catnip.")
|
||||
|
||||
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.")
|
||||
|
||||
|
||||
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):
|
||||
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"))
|
||||
addMessage("You stole catnip plant.")
|
||||
|
||||
if(_action == "caughtcheck"):
|
||||
if(_action == "caughtcheck"):
|
||||
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", true)
|
||||
processTime(10 * 5)
|
||||
|
||||
if(RNG.chance(25)):
|
||||
if(GM.ES.triggerReact(Trigger.CaughtStealingInGreenhouse)):
|
||||
endScene()
|
||||
return
|
||||
|
||||
addMessage("Seems like you got away safely")
|
||||
addButton("Leave", "Leve the crime scene", "endthescene")
|
||||
return
|
||||
|
||||
if(_action == "endthescene"):
|
||||
endScene()
|
||||
|
|
|
@ -226,10 +226,10 @@ func _run():
|
|||
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("„How do parasites make you feel?”")
|
||||
addButton("Disgusted", "Parasites are disgusting", "q10answer", [1])
|
||||
addButton("Scared", "They fill you with fear", "q10answer", [2])
|
||||
addButton("Neutral", "They are creatures, the only thing that makes them parasites is the way they obtain their food", "q10answer", [3])
|
||||
addButton("Horny", "You like parasites... In very specific way", "q10answer", [4])
|
||||
addButton("Disgusted", "Parasites are disgusting (disables future parasite content)", "q10answer", [1])
|
||||
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 (enables references to future parasite content without direct involvement)", "q10answer", [3])
|
||||
addButton("Horny", "You like parasites... In very specific way (enables future parasite related content)", "q10answer", [4])
|
||||
|
||||
if(state == "q10answer"):
|
||||
if(answer < 3):
|
||||
|
|
180
Scenes/Overwrites/BullyGangScene.gd
Normal file
180
Scenes/Overwrites/BullyGangScene.gd
Normal 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. That’s right, I’m 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]Haven’t seen you here before. You aware of how things work here?[/say]")
|
||||
|
||||
saynn("They don’t 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 don’t?[/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]That’s right, general block bitch. Couldn’t 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 we’re 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 won’t 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]I’m not leaving. And I’m 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]Let’s 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. I’m 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, ain’t 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
|
|
@ -295,7 +295,6 @@ func _run():
|
|||
#setState("azazelmain")
|
||||
|
||||
if(state == "azazeltalk"):
|
||||
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_talked", true)
|
||||
var affection = getModuleFlag("IssixModule", "Azazel_Affection_given", 0)
|
||||
addButton("Prison", "Ask how did he end up in prison?", "azazelprison")
|
||||
addButton("Hobby", "Ask what hobbies does he have", "azazelhobby")
|
||||
|
|
|
@ -9,14 +9,11 @@ func _run():
|
|||
saynn("As you approach the corner your Master stands, grinning. You assume your position on your blanket.")
|
||||
saynn("[say=issix]Good day, pet.[/say]")
|
||||
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
||||
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||
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("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:
|
||||
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("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]")
|
||||
|
@ -63,8 +60,12 @@ func _react(_action: String, _args):
|
|||
|
||||
if _action == "training1":
|
||||
IssixModule.addSceneToWatched(sceneID)
|
||||
if(OPTIONS.isContentEnabled(ContentType.Watersports)) and GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix") == false:
|
||||
GM.pc.cummedOnBy("issix", FluidSource.Pissing, 0.4)
|
||||
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
||||
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":
|
||||
processTime(4*60)
|
||||
|
@ -83,6 +84,7 @@ func _react(_action: String, _args):
|
|||
], "gym_entrance", "crawl"])
|
||||
|
||||
if(_action == "endthescene"):
|
||||
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||
increaseModuleFlag("IssixModule", "PC_Training_Level")
|
||||
endScene()
|
||||
return
|
||||
|
|
|
@ -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)))
|
||||
_:
|
||||
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())
|
||||
addButton("Master", "Talk with your master about something", "issixpetmenu")
|
||||
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?
|
||||
addButton("Play", "Play with other pets.", "haremplay")
|
||||
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.getTime() < 54000:
|
||||
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")
|
||||
if GlobalRegistry.getCharacter("azazel").isHeavilyPregnant() and canPromptLitterDialogue():
|
||||
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", "")
|
||||
|
||||
if state == "azazelguesslitterfirst":
|
||||
|
@ -210,6 +212,7 @@ func _run():
|
|||
|
||||
|
||||
if state == "hiisipetmenu":
|
||||
playAnimation(StageScene.Duo, "kneel", {pc="hiisi", npcAction="kneel", npc="pc", bodyState={naked=false, hard=false}})
|
||||
addCharacter("hiisi")
|
||||
if GM.pc.getSkillLevel(Skill.Combat) < 16:
|
||||
addDisabledButton("Learn", "Learn something from Hiisi (WIP)") # , "hiisilearncombat"
|
||||
|
@ -220,11 +223,39 @@ func _run():
|
|||
addButton("Back", "Go back", "")
|
||||
|
||||
if state == "lamiapetmenu":
|
||||
playAnimation(StageScene.Duo, "kneel", {pc="lamia", npcAction="kneel", npc="pc", bodyState={naked=false, hard=false}})
|
||||
addCharacter("lamia")
|
||||
#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", "")
|
||||
|
||||
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":
|
||||
var last_walk = getModuleFlag("IssixModule", "Last_Walk", 0)
|
||||
if last_walk + 5 > GM.main.getDays():
|
||||
|
@ -258,6 +289,7 @@ func _run():
|
|||
addButton("Back", "Go back", "")
|
||||
|
||||
if state == "readabook":
|
||||
saynn("You read one of the comic books, 20 minutes pass.") # TODO Expand on this
|
||||
addButton("Back", "Go back", "")
|
||||
|
||||
|
||||
|
@ -345,6 +377,17 @@ func _react(_action: String, _args):
|
|||
GlobalRegistry.getCharacter("issix").addPain(-50)
|
||||
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(getTextboxData("litter_count") == ""):
|
||||
return
|
||||
|
|
|
@ -177,7 +177,7 @@ func _run():
|
|||
saynn("[say=pc]Yes..,[/say]")
|
||||
saynn("[say=issix]Yes?[/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.")
|
||||
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]")
|
||||
|
|
Loading…
Reference in a new issue