12.12 updates (broken)

This commit is contained in:
Frisk 2024-12-12 22:59:27 +01:00
parent 46a60968bf
commit e1dbe39ccd
8 changed files with 258 additions and 29 deletions

View file

@ -0,0 +1,46 @@
extends Attack
func _init():
id = "IssixSlaveTease"
category = Category.Lust
aiCategory = AICategory.Lust
func getVisibleName(_context = {}):
return "Collar Tease"
func getVisibleDesc(_context = {}):
return "Shouldn't see this"
func _doAttack(_attacker, _receiver, _context = {}):
var text = ""
var lust = 0
var pain = 0
if _receiver.getPersonality().getStat(PersonalityStat.Subby) > 0.4:
if(checkDodged(_attacker, _receiver, DamageType.Physical)):
return genericDodgeMessage(_attacker, _receiver, "collar teasing")
lust = RNG.randi_range(40, 60)
text = "{attacker.name} spins around an old slave collar attached to a leash. {receiver.name} observes the collar with {receiver.his} will breaking down wanting to submit."
if(!_receiver.isDefocusing() && _receiver.addEffect(StatusEffect.Weakness, [1])):
text += " {receiver.Name} feels [b]weak[/b]."
else:
if(checkDodged(_attacker, _receiver, DamageType.Physical)):
return genericDodgeMessage(_attacker, _receiver, "collar throw")
text = "{attacker.name} spins around an old slave collar attached to a leash until he changes the direction of swinging to hit {receiver.name} managing to hit {receiver.him} with the bulky collar."
pain = RNG.randi_range(15, 30)
return {
text = text,
lust = lust,
pain = pain,
}
func _canUse(_attacker, _receiver, _context = {}):
return !_receiver.isBlindfolded()
func getAnticipationText(_attacker, _receiver):
var text = "{attacker.name} grabs an old collar from behind and clasps a leash to it."
return text
func getRequirements():
return [AttackRequirement.FreeArms, AttackRequirement.FreeHands, AttackRequirement.CanSee]

View file

@ -25,8 +25,8 @@ func _init():
PersonalityStat.Coward: -0.7, PersonalityStat.Coward: -0.7,
} }
npcLevel = 50 npcLevel = 50
npcBasePain = 500 npcBasePain = 400
npcBaseLust = 500 npcBaseLust = 400
npcBaseStamina = 500 npcBaseStamina = 500
npcArmor = { npcArmor = {
DamageType.Physical: 15, DamageType.Physical: 15,
@ -104,6 +104,9 @@ func _getName():
func getGender(): func getGender():
return Gender.Male return Gender.Male
func _getAttacks():
return ["IssixSlaveTease", "trygetupattack", "simplepunchattack","CuffPCHands", "ForceGagPC", "ForceMuzzlePC", "simplekickattack", "biteattack", "shoveattack"]
func getSmallDescription() -> String: func getSmallDescription() -> String:
return "Wears a red block uniform with number P-533. He is an intimidating tall demon-dragon, has red fur." return "Wears a red block uniform with number P-533. He is an intimidating tall demon-dragon, has red fur."

View file

@ -23,16 +23,14 @@ func checkRequirements(requirements: Dictionary):
return true return true
func shouldBeShownForcedEvent(): func shouldBeShownForcedEvent():
var scenes_seen = getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})["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): if GM.main.getDays() >= GM.main.getModuleFlag("IssixModule", "Progression_Day_Next", 0) and !GM.main.getModuleFlag("IssixModule", "Unwelcome_At_Corner", false):
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:
Console.printLine("secene")
if scene[1] > current_progression_points: if scene[1] > current_progression_points:
return null return null
if scenes_seen.find(scene[0]) == -1 and checkRequirements(scene[2]): if scenes_seen["scenes_seen"].find(scene[0]) == -1 and checkRequirements(scene[2]):
Console.printLine("requirements met")
return scene[0] return scene[0]
return null return null
@ -43,9 +41,12 @@ 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,7 @@ 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
@ -32,16 +32,20 @@ func run(_triggerID, _args):
var player_enslaved = getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) var player_enslaved = getModuleFlag("IssixModule", "PC_Enslavement_Role", 0)
if player_enslaved > 0: if player_enslaved > 0:
saynn("You see your Master sitting on his chair in the corner, around him there is Azazel, Hiisi and Lamia.") if getModuleFlag("IssixModule", "Unwelcome_At_Corner", false) != true:
addButton("Master", "Talk to Master Issix", "talk") saynn("You see your Master sitting on his chair in the corner, around him there is Azazel, Hiisi and Lamia.")
addButton("Pets", "Look at Master's pets", "pets") addButton("Master", "Talk to Master Issix", "talk")
match player_enslaved: addButton("Pets", "Look at Master's pets", "pets")
1.0: # WHY ARE NUMBER FLAGS FLOATS ASDJASODHASUDHASIDHBASHDASHDOASDJASD kill me match player_enslaved:
addButton("Pet tasks", "Get a read on today's pet tasks", "slavery") 1.0: # WHY ARE NUMBER FLAGS FLOATS ASDJASODHASUDHASIDHBASHDASHDOASDJASD kill me
2.0: addButton("Pet tasks", "Get a read on today's pet tasks", "slavery")
addButton("Prostitution", "Open prostitution info", "slavery") 2.0:
_: addButton("Prostitution", "Open prostitution info", "slavery")
saynn(player_enslaved) _:
saynn(player_enslaved)
else:
addDisabledButton("Master", "He doesn't want to speak to you today")
addDisabledButton("Pets", "They don't want to speak to you today")
else: else:
saynn("You see Issix sitting on a chair in a corner, around him there are three leashed slaves.") saynn("You see Issix sitting on a chair in a corner, around him there are three leashed slaves.")
addButton("Issix", "Talk to Issix", "talk") addButton("Issix", "Talk to Issix", "talk")

View file

@ -56,7 +56,12 @@ func getFlags():
"Pet_Time_Interaction_Today": flag(FlagType.Number), "Pet_Time_Interaction_Today": flag(FlagType.Number),
"Is_Player_Forced_Today": flag(FlagType.Number), # If player is forced to stay in harem this will have amount of seconds player needs to spend in the harem today "Is_Player_Forced_Today": flag(FlagType.Number), # If player is forced to stay in harem this will have amount of seconds player needs to spend in the harem today
"Last_Walk": flag(FlagType.Number), "Last_Walk": flag(FlagType.Number),
"Eaten_Today": flag(FlagType.Bool) "Eaten_Today": flag(FlagType.Bool),
"Comic_Books": flag(FlagType.Number),
"Comic_Book_Unlocked": flag(FlagType.Bool),
"Strikes_For_Disobedience": flag(FlagType.Number),
"Unwelcome_At_Corner": flag(FlagType.Bool)
#"Gym_Bullies_Left_Alone": flag(FlagType.Bool) Currently cannot change the behavior of this :(
} }
@ -73,7 +78,9 @@ func _init():
"res://Modules/IssixModule/Events/PetWalkExamEvent.gd", "res://Modules/IssixModule/Events/PetWalkExamEvent.gd",
"res://Modules/IssixModule/Events/PlayerCellModifierEvent.gd", "res://Modules/IssixModule/Events/PlayerCellModifierEvent.gd",
"res://Modules/IssixModule/Events/CornerPriorityEvent.gd", "res://Modules/IssixModule/Events/CornerPriorityEvent.gd",
"res://Modules/IssixModule/Events/SlaveryIntroEvent.gd" "res://Modules/IssixModule/Events/SlaveryIntroEvent.gd",
"res://Modules/IssixModule/Events/IssixRegularSearch.gd"
#"res://Modules/IssixModule/Events/Overwrites/BullyGangEvent.gd" Cannot overwrite module that loads after
] ]
scenes = [ scenes = [
@ -92,7 +99,10 @@ func _init():
"res://Modules/IssixModule/Scenes/SlaveryFirst/SlaveryBrandingScene.gd", "res://Modules/IssixModule/Scenes/SlaveryFirst/SlaveryBrandingScene.gd",
"res://Modules/IssixModule/Scenes/CaughtInTheCloset.gd", "res://Modules/IssixModule/Scenes/CaughtInTheCloset.gd",
"res://Modules/IssixModule/Scenes/SlaveryIntroScene.gd", "res://Modules/IssixModule/Scenes/SlaveryIntroScene.gd",
"res://Modules/IssixModule/Scenes/SlaveryInfoScreenScene.gd" "res://Modules/IssixModule/Scenes/SlaveryInfoScreenScene.gd",
"res://Modules/IssixModule/Scenes/SlaveryFirst/IssixBringsComicbooks.gd",
#"res://Modules/IssixModule/Scenes/Overwrites/BullyGangScene.gd"
"res://Modules/IssixModule/Scenes/SlaveryFirst/IssixFindsAvoidingPlayer.gd"
] ]
characters = [ characters = [
@ -120,6 +130,7 @@ func _init():
GlobalRegistry.sortRegisteredStatusEffectsByPriority() GlobalRegistry.sortRegisteredStatusEffectsByPriority()
GlobalRegistry.registerMapFloorFolder("res://Modules/IssixModule/Floors/") GlobalRegistry.registerMapFloorFolder("res://Modules/IssixModule/Floors/")
GlobalRegistry.registerSpeechModifiersFolder("res://Modules/IssixModule/SpeechModifiers/") GlobalRegistry.registerSpeechModifiersFolder("res://Modules/IssixModule/SpeechModifiers/")
GlobalRegistry.registerAttackFolder("res://Modules/IssixModule/Attacks/", true)
# External # External
# "res://Scenes/ParadedOnALeashScene.gd" # "res://Scenes/ParadedOnALeashScene.gd"
@ -129,7 +140,7 @@ func _init():
static func addSceneToWatched(scene: String): static func addSceneToWatched(scene: String):
var scenes = GM.main.getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []}) var scenes = GM.main.getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
scenes["scenes_seen"].append(scene) scenes["scenes_seen"].append(scene)
GM.main.setModuleFlag("IssixModule", "Misc_Slavery_Info",scenes) GM.main.setModuleFlag("IssixModule", "Misc_Slavery_Info", scenes.duplicate(true))
static func addIssixMood(mood: int): static func addIssixMood(mood: int):
GM.main.setModuleFlag("IssixModule", "Issix_Mood", clamp(GM.main.getModuleFlag("IssixModule", "Issix_Mood", 50)+mood, 0, 100)) GM.main.setModuleFlag("IssixModule", "Issix_Mood", clamp(GM.main.getModuleFlag("IssixModule", "Issix_Mood", 50)+mood, 0, 100))
@ -140,6 +151,16 @@ 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 getPlayerPetName():
if Species.Canine in GM.pc.getSpecies():
return "puppy"
elif Species.Feline in GM.pc.getSpecies():
return "kitty"
elif Species.Equine in GM.pc.getSpecies():
return "pony"
else:
return "pet"
func breedSlaveIfNpc(): func breedSlaveIfNpc():
## Function to process breeding by Master on randomly selected TODO maybe do that during the day as an event? ## Function to process breeding by Master on randomly selected TODO maybe do that during the day as an event?
var current_slave = GM.main.getModuleFlag("IssixModule", "Todays_Bred_Slave") var current_slave = GM.main.getModuleFlag("IssixModule", "Todays_Bred_Slave")
@ -156,20 +177,25 @@ func breedSlaveIfNpc():
current_slave.cummedInAnusBy("issix") current_slave.cummedInAnusBy("issix")
func tickDay(): func tickDay():
breedSlaveIfNpc()
addIssixMood(RNG.randi_range(-7, 7)) addIssixMood(RNG.randi_range(-7, 7))
if GM.main.getDays() - GM.getModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays()) > 1: if GM.main.getDays() - GM.getModuleFlag("IssixModule", "Last_Day_Visited_Master", GM.main.getDays()) > 1: # TODO detect player in soft-lock (medical/etc)
addIssixMood(-10) addIssixMood(-10)
if GM.main.getDays() % 7 == 0:
GM.main.increaseModuleFlag("IssixModule", "Comic_Books", RNG.randi_range(5, 8))
func resetFlagsOnNewDay(): 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
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)
GM.main.setModuleFlag("IssixModule", "Unwelcome_At_Corner", false)
GM.main.setModuleFlag("IssixModule", "Is_Player_Forced_Today", 0) GM.main.setModuleFlag("IssixModule", "Is_Player_Forced_Today", 0)
GM.main.setModuleFlag("IssixModule", "Todays_Bred_Slave", RNG.pick(['azazel', 'pc', 'hiisi'])) GM.main.setModuleFlag("IssixModule", "Todays_Bred_Slave", RNG.pick(['azazel', 'pc', 'hiisi']))
breedSlaveIfNpc()
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: 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", "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

@ -1,5 +1,6 @@
extends SceneBase extends SceneBase
var reaction = false
func _init(): func _init():
sceneID = "IssixFoundPlayer" sceneID = "IssixFoundPlayer"
@ -16,7 +17,10 @@ func _run():
addButton("Not a pet", "Tell your Master that you no longer wish to be his pet", "rejection") addButton("Not a pet", "Tell your Master that you no longer wish to be his pet", "rejection")
else: else:
addDisabledButton("Not a pet", "You are too much of a coward to tell your Master this") addDisabledButton("Not a pet", "You are too much of a coward to tell your Master this")
addButton("Walk away", "Just keep walking", "leave") if (GM.pc.getPersonality().getStat(PersonalityStat.Coward) < -0.8):
addButton("Walk away", "Just keep walking", "leave")
else:
addDisabledButton("Walk away", "Let's be honest, you don't have balls to do this")
if state == "excuse": if state == "excuse":
saynn("[say=pc]I'm sorry, I were working on something really hard lately and...[/say]") saynn("[say=pc]I'm sorry, I were working on something really hard lately and...[/say]")
@ -42,17 +46,162 @@ func _run():
addButton("Continue", "Follow Issix to the corner", "walkcorner") addButton("Continue", "Follow Issix to the corner", "walkcorner")
if state == "leave": if state == "leave":
saynn("You decide to ignore the dragon-demon completely and continue walking, to be stopped not even a step later by Your Master's hand grabbing you by the collar.") saynn("You decide to ignore the dragon-demon completely and continue walking, only to be stopped not even a step later by Your Master's hand grabbing you by the collar.")
saynn("[say=issix]What the fuck do you think you are doing? I asked you a question.[/say]") saynn("[say=issix]What the fuck do you think you are doing? I asked you a question.[/say]")
saynn("[say=pc]I'm walking.[/say]")
saynn("[say=issix]On twos, that's your first mistake, second is the direction you are going at.[/say]")
saynn("As he says that he clasps a leash onto your collar and pulls you towards his corner in the main hall.")
saynn("[say=issix]I'm not going to ask you. You are going with me.[/say]")
addButton("Continue", "Unable to oppose such a strength, you follow Issix to the corner", "walkcorner")
if state == "walkcorner":
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
saynn("As you approach the corner, you feel three pets of Issix clearly thrown off by the situation. They avoid looking at you, intensifying the feeling of disgrace that was put on you. Your Master reaches his chair and forcefully pulls the leash down to make you sit on your blanket.")
saynn("[say=issix]SIT[/say]")
saynn("Seeing no other option, you sit, looking down.")
match getModuleFlag("IssixModule", "Strikes_For_Disobedience", 0):
0, 0.0:
if reaction:
saynn("[say=issix]Listen, pet. Perhaps I weren't clear enough. I expect to see you every day in here. I don't want to hear excuses, unless you are physically unable to appear in here, due to some fucked circumstances - you come here every day without fault.[/say]")
else:
saynn("[say=issix]Here is the deal, pet - I don't take no for an answer, and I don't buy bullshit. I'm very sure I made myself clear that I expect my property to come to my corner once a day, anything short of that is unacceptable. Unless you are abducted by aliens or nurses, you better come here every single day, fucking hell.[/say]")
addButton("Understood", "Acknowledge your Master's commands", "understand")
1, 1.0:
saynn("[say=issix]So you did it again? You ignored my warning and stopped coming on your own? What the fuck are you thinking, pet? Do you think this is a joke? That I'm endlessly good and all? Perhaps it's the time I started to put some discipline in you huh? Yeah, I think you do need some discipline.[/say]")
saynn("He strips down his clothes and puts on the boxers.")
saynn("[say=issix]I tried to reason, but apparently my pet does not understand reason. When reason doesn't work, a more persuasive approach can help.[/say]")
addButton("Fight", "Issix is ready to fight you", "startfight")
addButton("Surrender", "Don't even attempt to fight", "surrenderfight")
2, 2.0:
addMessage("This is still under construction, sowwy :( ~ Frisk") # TODO Finish end of Issix's story on disobedience
saynn("Master Issix sits in silence, just staring into you for a while.")
saynn("[say=issix]I really don't know what to say. No, really. I have no idea what words can I use in here. The demons of this world ran out of juice. Like, what the fuck does this even mean? What am I doing here?[/say]")
addButton("Back", "Maybe chaining mod's creator in the dungeon with a computer will make this go faster.", "endthescene")
if state == "understand":
saynn("[say=pc]I understand, Master.[/say]")
saynn("[say=issix]You are still on the timeout, I expect you to stay in here for an hour longer today. This is the last time it happens.[/say]")
addButton("Continue", "Continue", "backtothething")
if state == "surrenderfight":
# playAnimation(StageScene.PuppyPinned, "pinned", {pc="pc", npc="issix", bodyState={leashedBy="issix"}, npcBodyState={naked=false, hard=false}})
playAnimation(StageScene.PuppyDuo, "kneel", {pc="issix", npc="pc", bodyState={naked=false, hard=false}, npcBodyState={naked=false, hard=false, leashedBy="issix"}})
saynn("[say=issix]All that bravery leaving you the moment I lose my shirt? Or have you came to your senses? Can't complain, I do not like roughing up my pets like this. But since you are so nice on your knees already why not make use of it?[/say]")
saynn("He pulls out bunch of black gear, takes your arms and instructs you to bend your arms which he secures in first part from the gear he pulled out. You quickly recognize the gear is a bitchsuit made to restrict your ability to move.")
saynn("[say=issix]Arms are done, legs, will you?[/say]")
saynn("You can feel your arms being severely restricted, the idea of straightening them is out of question, without external help you would be unable to do anything about your current state of body you are in. As you test your arms, the same thing happens to your legs, as your Master Issix secures them in very similar device.")
saynn("[say=issix]Here we go. Just a few more things and we'll be golden.[/say]")
addButton("Continue", "Oh shit, what now", "contsurrender")
if state == "contsurrender":
playAnimation(StageScene.PuppyPinned, "pinned", {pc="pc", npc="issix", bodyState={leashedBy="issix"}, npcBodyState={naked=false, hard=false}})
saynn("With your lack of mobility and you can't do much at this point, other than accept everything that is happening to you. And so you do, trying to stand on your fours, struggling. Having to adapt to completely new balance and way of „standing”. Your Master continues to add further bondage gear onto you. A ball gag is first pushed into your mouth, then bondage mittens finishing your helpless look.")
saynn("[say=issix]Think that's it, I think you look great now. In AlphaCorp that's how the leg footrest looks like in high-level corporate offices. Not a fan of footrest though, I prefer my feet on the ground, that said, the circumstances are pretty extraordinary here.[/say]")
saynn("He puts his foot on your head and applies force making you collapse your front „legs” with your muzzle touching the ground.")
saynn("[say=issix]This is a place for disobedient pets. Smelling the ground, under my foot. I want you to remember this feeling, to remember the helplessness you feel right now. My pets obey me, when I tell them to come here every day they do that. Do you understand now?[/say]")
saynn("[say=pc]Yes, please, I understand.[/say]")
saynn("[say=issix]Can barely hear your scowling. Good.[/say]")
saynn("He lets go of his foot, kneels and unstraps your legs and arms.")
saynn("[say=issix]Don't want to see you here today, I'm not unlocking the rest - this is your punishment, get the fuck away.[/say]")
addButton("Leave", "Leave the place", "endthescene")
if state == "if_won_issix_lust":
saynn("[say=issix]Huff. Enough. I yield, fucking hell. Huff.[/say]")
saynn("Clearly bothered by his inability to stay unaffected by your lusty advances Issix is on his knees in defeat, with a hardon in his paw.")
saynn("[say=issix]I don't understand how you - a fucking slut could bring me to this state, but the fact is undeniable. To say I've been humiliated is an understatement. I can no longer call you my pet. You are a monster, a sex machine, huff..[/say]")
saynn("His need evident, pent up sexual energy overwhelming the dragon")
addButton("Finish him", "Give the dragon the relief he needs", "finishissix")
addButton("Leave", "Let the dragon take care of his little problem by himself", "leaveissix")
if state == "finishissix":
pass # TODO
if state == "leaveissix":
pass # TODO
if state == "if_won_issix_pain":
saynn("[say=issix]Enough. I yield.[/say]")
saynn("Issix is laying on his knees in submission.")
saynn("[say=issix]It's pathetic, for the Master to lose against his pet in a fight. You've made good enough of display of power. I... Don't know what to say. Leave now, I need a day to think things over, we will talk tomorrow.[/say]") # TODO Missing scene
addButton("Leave", "You've done enough", "endthescene")
if state == "if_lost_issix":
saynn("[say=issix]Do you get it now? Who OWNS YOU? Who is your Master? Do you understand now? You better fucking do. Don't you dare do this again, pet.[/say]")
saynn("Feeling in pain, you don't have anything else to answer other than.")
saynn("[say=pc]I'm sorry, Master, I won't do this again.[/say]")
saynn("[say=issix]Do you really mean it? Or is that another lie? Look at me, LOOK![/say]")
saynn("He grabs you by your neck, tilts your face to meet his gaze, his face angry, furious even, staring deep into you, just like when he was judging you when you wished to become his "+ IssixModule.getPlayerPetName() + ".")
saynn("[say=issix]Don't make me assert control over you again.[/say]")
saynn("He releases your body from heavy grip.")
saynn("[say=issix]I think you suffered enough of humiliation for today. Do whatever you want, but I expect you tomorrow in the corner, as usual.[/say]")
addButton("Leave", "Leave", "endthescene")
func _react(_action: String, _args): func _react(_action: String, _args):
processTime(2*60) processTime(2*60)
if _action == "honest":
reaction = true
if _action == "contsurrender":
var bg: ItemBase = GlobalRegistry.createItem("ballgag")
bg.addSmartLock(SmartLock.KeyholderLock, "issix")
var bm: ItemBase = GlobalRegistry.createItem("bondagemittens")
bm.addSmartLock(SmartLock.KeyholderLock, "issix")
GM.pc.getInventory().forceEquipByStoreOther(bg, "issix")
GM.pc.getInventory().forceEquipByStoreOther(bm, "issix")
increaseModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 60*60)
setModuleFlag("IssixModule", "Unwelcome_At_Corner", true)
if _action == "startfight":
runScene("FightScene", ["issix"], "issixfight")
if _action == "understand":
GM.main.setModuleFlag("IssixModule", "Is_Player_Forced_Today", 2*60*60)
if not (getModuleFlag("IssixModule", "Issix_Mood", 50) >= 70 and reaction == true):
increaseModuleFlag("IssixModule", "Strikes_For_Disobedience")
if _action == "if_lost_issix":
setModuleFlag("IssixModule", "Is_Player_Forced_Today", 3*60*60)
if _action == "walkcorner":
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "hall_ne_corner", [
"Can't fucking believe this shit",
"Did you really think this would work?",
"Master says, pets obey"
], "hall_ne_corner", "crawl"])
if _action == "backtothething":
runScene("SlaveryInfoScreen", [], "finishslaveryinfo")
if(_action == "endthescene"): if(_action == "endthescene"):
endScene() endScene()
return return
setState(_action) setState(_action)
func _react_scene_end(_tag, _result):
if _tag == "finishslaveryinfo":
endScene()
if(_tag == "issixfight"):
processTime(20 * 60)
var battlestate = _result[0]
var wonHow = _result[1]
if(battlestate == "win"):
if(wonHow == "lust"):
setState("if_won_issix_lust")
else:
setState("if_won_issix_pain")
addExperienceToPlayer(150)
increaseModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 60*60)
setModuleFlag("IssixModule", "Unwelcome_At_Corner", true)
else:
setState("if_lost_issix")
increaseModuleFlag("IssixModule", "Pet_Time_Interaction_Today", 60*60)
addExperienceToPlayer(20)

View file

@ -6,7 +6,6 @@ func _init():
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)):
@ -63,6 +62,7 @@ func _run():
func _react(_action: String, _args): func _react(_action: String, _args):
if _action == "training1": if _action == "training1":
IssixModule.addSceneToWatched(sceneID)
if(OPTIONS.isContentEnabled(ContentType.Watersports)) and GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix") == false: if(OPTIONS.isContentEnabled(ContentType.Watersports)) and GM.pc.getFluids().hasFluidTypeWithCharID("Piss", "issix") == false:
GM.pc.cummedOnBy("issix", FluidSource.Pissing, 0.4) GM.pc.cummedOnBy("issix", FluidSource.Pissing, 0.4)

View file

@ -92,7 +92,7 @@ func _run():
# if state == "soulless": # if state == "soulless":
# playAnimation(StageScene.HangingDuo, "idle", {pc="pc", npc="issix", bodyState={naked=true}, npcBodyState={naked=true}}) # playAnimation(StageScene.HangingDuo, "idle", {pc="pc", npc="issix", bodyState={naked=true}, npcBodyState={naked=true}})
# Also, is it just me or the slave collar (aka old collar) makes currently no sense in game other than artificially adding price onto enslavement process? You can't even put it on the slave which makes sense considering they are already wearing an inmate collar which you shouldn't be able to take off. I'd love the bulky slave collar to be on player's neck but yeah
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)