Changed mod's name and rewritten name from Pierre to Issix everywhere
This commit is contained in:
parent
60a935159e
commit
1bf2854a16
|
@ -5,12 +5,13 @@ func _init():
|
||||||
npcHasMenstrualCycle = true
|
npcHasMenstrualCycle = true
|
||||||
npcCharacterType = CharacterType.Inmate
|
npcCharacterType = CharacterType.Inmate
|
||||||
|
|
||||||
pickedSkin="SoftSpikySkin" # TODO Check options
|
pickedSkin="AzazelSkin"
|
||||||
pickedSkinRColor=Color("ffca3030")
|
pickedSkinRColor=Color("ff464545")
|
||||||
pickedSkinGColor=Color("ff720505")
|
pickedSkinGColor=Color("ff656465")
|
||||||
pickedSkinBColor=Color("ff000000")
|
pickedSkinBColor=Color("ff72005d")
|
||||||
npcSkinData={
|
npcSkinData={
|
||||||
"hair": {"r": Color("ffb05745"),"g": Color("ffb05745"),"b": Color("ff2288ab"),},
|
"hair": {"r": Color("ff221310"),"g": Color("ff1f1514"),"b": Color("ff28000c"),},
|
||||||
|
"horns": {"r": Color("ffa9a9a9"),"b": Color("ff606060"),},
|
||||||
}
|
}
|
||||||
npcPersonality = {
|
npcPersonality = {
|
||||||
PersonalityStat.Brat: -0.9,
|
PersonalityStat.Brat: -0.9,
|
||||||
|
|
|
@ -64,4 +64,4 @@ func loadData(data):
|
||||||
.loadData(data)
|
.loadData(data)
|
||||||
|
|
||||||
func getInventoryImage():
|
func getInventoryImage():
|
||||||
return "res://Modules/PierreModule/Items/catnip.png"
|
return "res://Modules/IssixModule/Items/catnip.png"
|
||||||
|
|
|
@ -52,4 +52,4 @@ func loadData(data):
|
||||||
.loadData(data)
|
.loadData(data)
|
||||||
|
|
||||||
func getInventoryImage():
|
func getInventoryImage():
|
||||||
return "res://Modules/PierreModule/Items/cookie.png"
|
return "res://Modules/IssixModule/Items/cookie.png"
|
||||||
|
|
|
@ -7,11 +7,11 @@ func registerTriggers(es):
|
||||||
es.addTrigger(self, Trigger.EnteringRoom, "eng_corridor6")
|
es.addTrigger(self, Trigger.EnteringRoom, "eng_corridor6")
|
||||||
|
|
||||||
func run(_triggerID, _args):
|
func run(_triggerID, _args):
|
||||||
var quest_status = getModuleFlag("PierreModule", "Quest_Status")
|
var quest_status = getModuleFlag("IssixModule", "Quest_Status")
|
||||||
if(3 > quest_status and quest_status > 0): # In the future potentially make it possible to be a daily event thing
|
if(3 > quest_status and quest_status > 0): # In the future potentially make it possible to be a daily event thing
|
||||||
if(GM.pc.isBlindfolded()):
|
if(GM.pc.isBlindfolded()):
|
||||||
if getModuleFlag("PierreModule", "Quest_Status") == 1:
|
if getModuleFlag("IssixModule", "Quest_Status") == 1:
|
||||||
addButton("Pierre's Task", "Is it time?", "wall")
|
addButton("Issix's Task", "Is it time?", "wall")
|
||||||
else:
|
else:
|
||||||
addButton("Closet", "Time to get that thing", "wall")
|
addButton("Closet", "Time to get that thing", "wall")
|
||||||
elif quest_status > 2:
|
elif quest_status > 2:
|
||||||
|
|
|
@ -19,16 +19,16 @@ func _run():
|
||||||
if(state == ""):
|
if(state == ""):
|
||||||
saynn("You hesitate, last time you walked this hallway you are sure that in this part the only thing you'll meet, if you continue walking, is a wall. This entire thing sounds dumb, and yet... It's a trust excercie, no? Realistically the worst thing that will happen is that you'll eventually hit a wall, doesn't sound like something you can't take.")
|
saynn("You hesitate, last time you walked this hallway you are sure that in this part the only thing you'll meet, if you continue walking, is a wall. This entire thing sounds dumb, and yet... It's a trust excercie, no? Realistically the worst thing that will happen is that you'll eventually hit a wall, doesn't sound like something you can't take.")
|
||||||
if GM.main.isVeryLate():
|
if GM.main.isVeryLate():
|
||||||
addButton("Wall time", "Trust Pierre and walk towards the wall", "nightwallwalking")
|
addButton("Wall time", "Trust Issix and walk towards the wall", "nightwallwalking")
|
||||||
else:
|
else:
|
||||||
addButton("Wall time", "Trust Pierre and walk towards the wall", "trust")
|
addButton("Wall time", "Trust Issix and walk towards the wall", "trust")
|
||||||
addButton("Nope", "You are not trusting Pierre, this is stupid", "endthescene")
|
addButton("Nope", "You are not trusting Issix, this is stupid", "endthescene")
|
||||||
|
|
||||||
if(state == "nightwallwalking"):
|
if(state == "nightwallwalking"):
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Bonked", true)
|
GM.main.setModuleFlag("IssixModule", "Quest_Bonked", true)
|
||||||
processTime(1*60)
|
processTime(1*60)
|
||||||
saynn("You decide to trust Pierre. You turn 90 degrees, take a deep breath and walk forward. Last time you went this corridor while not blind there was a wall here, an maybe this time...")
|
saynn("You decide to trust Issix. You turn 90 degrees, take a deep breath and walk forward. Last time you went this corridor while not blind there was a wall here, an maybe this time...")
|
||||||
saynn("Four confidence in Pierre is rewarded with a loud bang on the wall. While your feet were the first to hit the wall, your head followed and... You hit the wall like a fool. Why would it work anyways, it's a solid wall.")
|
saynn("Four confidence in Issix is rewarded with a loud bang on the wall. While your feet were the first to hit the wall, your head followed and... You hit the wall like a fool. Why would it work anyways, it's a solid wall.")
|
||||||
var damage_taken = GM.pc.receiveDamage(DamageType.Physical, 40, 1.0)
|
var damage_taken = GM.pc.receiveDamage(DamageType.Physical, 40, 1.0)
|
||||||
saynn("You took "+str(damage_taken)+" damage.")
|
saynn("You took "+str(damage_taken)+" damage.")
|
||||||
addButton("Leave", "Leave embarassed before you give someone a reason to laugh at you", "endthescene")
|
addButton("Leave", "Leave embarassed before you give someone a reason to laugh at you", "endthescene")
|
||||||
|
@ -36,9 +36,9 @@ func _run():
|
||||||
if(state == "trust"):
|
if(state == "trust"):
|
||||||
aimCameraAndSetLocName("eng_closet")
|
aimCameraAndSetLocName("eng_closet")
|
||||||
GM.pc.setLocation("eng_closet")
|
GM.pc.setLocation("eng_closet")
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 2)
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 2)
|
||||||
saynn("You decide to trust Pierre. You turn 90 degrees, take a deep breath and walk forward. Last time you went this corridor while not blind there was a wall here, an maybe this time...")
|
saynn("You decide to trust Issix. You turn 90 degrees, take a deep breath and walk forward. Last time you went this corridor while not blind there was a wall here, an maybe this time...")
|
||||||
saynn("You hear a beep before you, a few screeching sounds. Holy shit, perhaps Pierre was onto something here? You continue walking, the atmosphere changes, the echo of your steps disappeared, the air is more dry and you start to feel claustrophobic. You cautiously drag your foot forward until it hits something seemingly metal. Have you reached your destination?")
|
saynn("You hear a beep before you, a few screeching sounds. Holy shit, perhaps Issix was onto something here? You continue walking, the atmosphere changes, the echo of your steps disappeared, the air is more dry and you start to feel claustrophobic. You cautiously drag your foot forward until it hits something seemingly metal. Have you reached your destination?")
|
||||||
processTime(2*60)
|
processTime(2*60)
|
||||||
var item: ItemBase = GM.pc.getInventory().getEquippedItem(InventorySlot.Eyes)
|
var item: ItemBase = GM.pc.getInventory().getEquippedItem(InventorySlot.Eyes)
|
||||||
if(item != null):
|
if(item != null):
|
||||||
|
@ -68,7 +68,7 @@ func _run():
|
||||||
saynn("On the other side - curiously, completely flat wall texture. You close the doors and observe how this fit of engineering doors leading to ancient technology closet fits the wall so perfectly that it leaves no evidence of ever existing, not even a tiny crevice can be seen. Above the doors is a camera, maybe it opens the doors?")
|
saynn("On the other side - curiously, completely flat wall texture. You close the doors and observe how this fit of engineering doors leading to ancient technology closet fits the wall so perfectly that it leaves no evidence of ever existing, not even a tiny crevice can be seen. Above the doors is a camera, maybe it opens the doors?")
|
||||||
aimCameraAndSetLocName("eng_corridor6")
|
aimCameraAndSetLocName("eng_corridor6")
|
||||||
GM.pc.setLocation("eng_corridor6")
|
GM.pc.setLocation("eng_corridor6")
|
||||||
addButton("Pierre", "Guess it's time to go back to Pierre", "endthescene")
|
addButton("Issix", "Guess it's time to go back to Issix", "endthescene")
|
||||||
|
|
||||||
if state=="lookaround":
|
if state=="lookaround":
|
||||||
saynn(GM.world.getRoomByID("eng_closet").getDescription())
|
saynn(GM.world.getRoomByID("eng_closet").getDescription())
|
||||||
|
@ -78,12 +78,12 @@ func _run():
|
||||||
if state=="cabinets":
|
if state=="cabinets":
|
||||||
saynn("Within so many filling cabinets there are over 12 shelves. You could open some of them and see what's in them, however only one of them is really interesting to you.") # TODO placeholder
|
saynn("Within so many filling cabinets there are over 12 shelves. You could open some of them and see what's in them, however only one of them is really interesting to you.") # TODO placeholder
|
||||||
addButton("Back", "Look around again", "lookaround")
|
addButton("Back", "Look around again", "lookaround")
|
||||||
var activated_cabinets = getModuleFlag("PierreModule", "Activated_Cabinets", {})
|
var activated_cabinets = getModuleFlag("IssixModule", "Activated_Cabinets", {})
|
||||||
for item in cabinets:
|
for item in cabinets:
|
||||||
if item in activated_cabinets:
|
if item in activated_cabinets:
|
||||||
addDisabledButton("Cabinet "+cabinets[item]["name"], "You've already looted this cabinet")
|
addDisabledButton("Cabinet "+cabinets[item]["name"], "You've already looted this cabinet")
|
||||||
else:
|
else:
|
||||||
if item == 84 and GM.main.getModuleFlag("PierreModule", "Quest_Status") == 2:
|
if item == 84 and GM.main.getModuleFlag("IssixModule", "Quest_Status") == 2:
|
||||||
addButton("Cabinet " + cabinets[item]["name"], "Check the cabinet with number "+cabinets[item]["name"], "cabinet84", [item])
|
addButton("Cabinet " + cabinets[item]["name"], "Check the cabinet with number "+cabinets[item]["name"], "cabinet84", [item])
|
||||||
else:
|
else:
|
||||||
addButton("Cabinet " + cabinets[item]["name"], "Check the cabinet with number "+cabinets[item]["name"], "cabinetloot", [item])
|
addButton("Cabinet " + cabinets[item]["name"], "Check the cabinet with number "+cabinets[item]["name"], "cabinetloot", [item])
|
||||||
|
@ -103,8 +103,8 @@ func _run():
|
||||||
|
|
||||||
if state=="cabinet84":
|
if state=="cabinet84":
|
||||||
processTime(1*60)
|
processTime(1*60)
|
||||||
saynn("It is the cabinet mentioned by Pierre. You reach your paw inside and there is a single item inside - a pack of gumball. You grab and take it.")
|
saynn("It is the cabinet mentioned by Issix. You reach your paw inside and there is a single item inside - a pack of gumball. You grab and take it.")
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 3)
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 3)
|
||||||
markCabinetAsActivated(84)
|
markCabinetAsActivated(84)
|
||||||
addButton("Back", "Look at cabinets", "cabinets")
|
addButton("Back", "Look at cabinets", "cabinets")
|
||||||
|
|
||||||
|
@ -173,9 +173,9 @@ func generateLoot(cabinet_number: int):
|
||||||
return randomItemFromSeed(empty_loots)
|
return randomItemFromSeed(empty_loots)
|
||||||
|
|
||||||
func markCabinetAsActivated(cabinetNumber:int):
|
func markCabinetAsActivated(cabinetNumber:int):
|
||||||
var activated_cabinets = getModuleFlag("PierreModule", "Activated_Cabinets", {})
|
var activated_cabinets = getModuleFlag("IssixModule", "Activated_Cabinets", {})
|
||||||
activated_cabinets[cabinetNumber] = true
|
activated_cabinets[cabinetNumber] = true
|
||||||
GM.main.setModuleFlag("PierreModule", "Activated_Cabinets", activated_cabinets)
|
GM.main.setModuleFlag("IssixModule", "Activated_Cabinets", activated_cabinets)
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
func _react(_action: String, _args):
|
||||||
if(_action == "endthescene"):
|
if(_action == "endthescene"):
|
||||||
|
@ -183,7 +183,7 @@ func _react(_action: String, _args):
|
||||||
return
|
return
|
||||||
|
|
||||||
if(_action == "cabinetloot"):
|
if(_action == "cabinetloot"):
|
||||||
if getModuleFlag("PierreModule", "Activated_Cabinets", {}).size() > 10:
|
if getModuleFlag("IssixModule", "Activated_Cabinets", {}).size() > 10:
|
||||||
# TODO Do a force encounter with an engineer
|
# TODO Do a force encounter with an engineer
|
||||||
pass
|
pass
|
||||||
current_loot = generateLoot(_args[0])
|
current_loot = generateLoot(_args[0])
|
||||||
|
|
|
@ -1,38 +1,38 @@
|
||||||
extends EventBase
|
extends EventBase
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
id = "PierreEvent"
|
id = "IssixEvent"
|
||||||
|
|
||||||
func registerTriggers(es):
|
func registerTriggers(es):
|
||||||
es.addTrigger(self, Trigger.EnteringRoom, "hall_ne_corner")
|
es.addTrigger(self, Trigger.EnteringRoom, "hall_ne_corner")
|
||||||
es.addEventCheck(self, "PierreBusy")
|
es.addEventCheck(self, "IssixBusy")
|
||||||
|
|
||||||
func run(_triggerID, _args):
|
func run(_triggerID, _args):
|
||||||
#if(doEventCheck("PierreBusy") != null):
|
#if(doEventCheck("IssixBusy") != null):
|
||||||
# return false
|
# return false
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
if(!getModuleFlag("PierreModule", "Pierre_Introduced")): # Do that if not night
|
if(!getModuleFlag("IssixModule", "Issix_Introduced")): # Do that if not night
|
||||||
saynn("You see a demon-dragon sitting on a chair in a corner, around him there are three leashed creatures.")
|
saynn("You see a demon-dragon sitting on a chair in a corner, around him there are three leashed creatures.")
|
||||||
GM.main.setModuleFlag("PierreModule", "Score_Explored", 0) # is there a better place to do this?
|
GM.main.setModuleFlag("IssixModule", "Score_Explored", 0) # is there a better place to do this?
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 0)
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 0)
|
||||||
addButton("Demon", "Talk to the demon-dragon", "talk")
|
addButton("Demon", "Talk to the demon-dragon", "talk")
|
||||||
return
|
return
|
||||||
|
|
||||||
GM.main.applyWorldEdit("PierreWorldEdit")
|
GM.main.applyWorldEdit("IssixWorldEdit")
|
||||||
|
|
||||||
if(checkCharacterBusy("PierreBusy", "Pierre is not here", "Pierre")):
|
if(checkCharacterBusy("IssixBusy", "Issix is not here", "Issix")):
|
||||||
saynn("This corner is not occupied by anyone at the momentm, just three empty blankets with a chair.")
|
saynn("This corner is not occupied by anyone at the momentm, just three empty blankets with a chair.")
|
||||||
if getModuleFlag("PierreModule", "Quest_Status") == 5:
|
if getModuleFlag("IssixModule", "Quest_Status") == 5:
|
||||||
addButton("Paper", "A piece of paper lies left in a hurry", "paper")
|
addButton("Paper", "A piece of paper lies left in a hurry", "paper")
|
||||||
return
|
return
|
||||||
|
|
||||||
saynn("You see Pierre 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("Pierre", "Talk to Pierre", "talk")
|
addButton("Issix", "Talk to Issix", "talk")
|
||||||
if(!getModuleFlag("PierreModule", "Pets_Introduced")):
|
if(!getModuleFlag("IssixModule", "Pets_Introduced")):
|
||||||
#addButton("Look at pets", "Look at pets", "pets")
|
#addButton("Look at pets", "Look at pets", "pets")
|
||||||
addDisabledButton("Talk with pets", "You should probably first talk with intimidating figure who got them leashed")
|
addDisabledButton("Talk with pets", "You should probably first talk with intimidating figure who got them leashed")
|
||||||
else:
|
else:
|
||||||
|
@ -57,12 +57,12 @@ func getPriority():
|
||||||
|
|
||||||
func onButton(_method, _args):
|
func onButton(_method, _args):
|
||||||
if(_method == "talk"):
|
if(_method == "talk"):
|
||||||
runScene("PierreTalkScene")
|
runScene("IssixTalkScene")
|
||||||
if(_method == "pets"):
|
if(_method == "pets"):
|
||||||
runScene("PetsTalkScene")
|
runScene("PetsTalkScene")
|
||||||
if(_method == "paper"):
|
if(_method == "paper"):
|
||||||
runScene("NoPetsTalkScene")
|
runScene("NoPetsTalkScene")
|
||||||
|
|
||||||
func eventCheck(_checkID, _args = []):
|
func eventCheck(_checkID, _args = []):
|
||||||
if(getModuleFlag("PierreModule", "Quest_Status") == 5 and getModuleFlag("PierreModule", "Quest_Wait_Another_Day") == true):
|
if(getModuleFlag("IssixModule", "Quest_Status") == 5 and getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == true):
|
||||||
return {busy=true}
|
return {busy=true}
|
||||||
|
|
|
@ -7,12 +7,12 @@ 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("PierreModule", "Azazel_Catnip_talked") and RNG.chance(30)):
|
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_talked") and RNG.chance(30)):
|
||||||
GM.main.setModuleFlag("PierreModule", "Azazel_Catnip_found", true)
|
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_found", true)
|
||||||
|
|
||||||
if(GM.main.getModuleFlag("PierreModule", "Azazel_Catnip_found")):
|
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!")
|
saynn("While staring at plethora of different plants, you recognize one in particular - white flowers and specific smell. Catnip!")
|
||||||
if(!GM.main.getModuleFlag("PierreModule", "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", "steal")
|
||||||
else:
|
else:
|
||||||
addDisabledButton("Steal", "Too dangerous to do this again today")
|
addDisabledButton("Steal", "Too dangerous to do this again today")
|
||||||
|
|
|
@ -23,7 +23,7 @@ func _run():
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
func _react(_action: String, _args):
|
||||||
if(_action == "catnip"):
|
if(_action == "catnip"):
|
||||||
GM.main.setModuleFlag("PierreModule", "Azazel_Catnip_taken_today", true)
|
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", 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.")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
extends Character
|
extends Character
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
id = "pierre"
|
id = "issix"
|
||||||
npcHasMenstrualCycle = false
|
npcHasMenstrualCycle = false
|
||||||
npcCharacterType = CharacterType.Inmate
|
npcCharacterType = CharacterType.Inmate
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ func interestVerbalReaction(interest):
|
||||||
return "Overconfident much?"
|
return "Overconfident much?"
|
||||||
|
|
||||||
func _getName():
|
func _getName():
|
||||||
return "Pierre"
|
return "Issix"
|
||||||
|
|
||||||
func getGender():
|
func getGender():
|
||||||
return Gender.Male
|
return Gender.Male
|
8
IssixMod.json
Normal file
8
IssixMod.json
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"name": "Issix Mod",
|
||||||
|
"description": "Adds 4 characters, a questline and a system where the player can become enslaved by the character",
|
||||||
|
"author": "Frisk",
|
||||||
|
"repository": "https://github.com/Friskygote/Issix-mod",
|
||||||
|
"modversion": "1.0",
|
||||||
|
"gameversion": "0.1.6"
|
||||||
|
}
|
53
IssixPetQuest.gd
Normal file
53
IssixPetQuest.gd
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
extends QuestBase
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
id = "IssixsPetQuest"
|
||||||
|
|
||||||
|
func getVisibleName():
|
||||||
|
return "Becoming something lesser"
|
||||||
|
|
||||||
|
func getProgress():
|
||||||
|
var quest_status = GM.main.getModuleFlag("IssixModule", "Quest_Status")
|
||||||
|
var quest_await = GM.main.getModuleFlag("IssixModule", "Quest_Wait_Another_Day", false)
|
||||||
|
var quest_rejection = GM.main.getModuleFlag("IssixModule", "Quest_Rejected_By_Issix", 0)
|
||||||
|
var result = []
|
||||||
|
if quest_rejection == 1:
|
||||||
|
return ["You rejected Issix's offer to become his pet."]
|
||||||
|
result.append("Issix gave you a map and a task - to get him whatever is in a place marked on the map, and look for number 84. Apparently this trust exercise requires you to wear a blindfold, wonder why...")
|
||||||
|
if(quest_status > 1):
|
||||||
|
result.append("You've found the hidden closet. Now just to find what Issix asked of you...")
|
||||||
|
if(quest_status > 2):
|
||||||
|
result.append("You've got a pack of gum. Return it to Issix.")
|
||||||
|
if(quest_status > 4):
|
||||||
|
result.append("You've delivered a pack of gum to Issix. His next request was of you to complete a ”test” of some sorts.")
|
||||||
|
if(quest_status == 3 and quest_await):
|
||||||
|
result.append("You've delivered a pack of gum to Issix. He has asked you to wait until tomorrow when he will have next task for you")
|
||||||
|
if(quest_status == 3 and !quest_await):
|
||||||
|
result.append("You've delivered a pack of gum to Issix. He should have a new task for you today.")
|
||||||
|
if(quest_status > 5 and quest_rejection == 0):
|
||||||
|
result.append("You've finished the questionnaire which you've passed. Issix asked you to come back the next day for last trial.")
|
||||||
|
if(quest_status == 5 and quest_await):
|
||||||
|
result.append("You started the questionnaire, however your answering session was abruptly interrupted by medical emergency of Lamia. Issix asked you to come other day.")
|
||||||
|
if(quest_status == 5 and !quest_await):
|
||||||
|
result.append("You started the questionnaire, however your answering session was abruptly interrupted by medical emergency of Lamia. Issix asked you to come other day, at least a day has passed so you should check up with them.")
|
||||||
|
if(quest_rejection == 2):
|
||||||
|
result.append("Issix rejected the idea of you being his pet after you failed his test.")
|
||||||
|
return result
|
||||||
|
|
||||||
|
func isVisible():
|
||||||
|
return GM.main.getModuleFlag("IssixModule", "Quest_Status") > 0
|
||||||
|
|
||||||
|
func isCompleted():
|
||||||
|
return GM.main.getModuleFlag("IssixModule", "Quest_Status") > 10 or GM.main.getModuleFlag("IssixModule", "Quest_Rejected_By_Issix", 0) > 1
|
||||||
|
|
||||||
|
func isMainQuest():
|
||||||
|
return false
|
||||||
|
|
||||||
|
# quest_status - state (number)
|
||||||
|
# 0 - no quest/haven't started
|
||||||
|
# -1 - refused Issixs quest
|
||||||
|
# 1 - accepted Issixs quest
|
||||||
|
# 2 - arrived at closet
|
||||||
|
# 3 - looted the gumball
|
||||||
|
# 4 - gave the gumball to Issix
|
||||||
|
# 5 -
|
27
IssixQuestionnaireEvent.gd
Normal file
27
IssixQuestionnaireEvent.gd
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
extends EventBase
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
id = "Ch1IssixQuestQuestionnaire"
|
||||||
|
|
||||||
|
func registerTriggers(es):
|
||||||
|
es.addTrigger(self, Trigger.TalkingToNPC, "issix")
|
||||||
|
|
||||||
|
func run(_triggerID, _args):
|
||||||
|
if(GM.main.getModuleFlag("IssixModule", "Quest_Status") == 4):
|
||||||
|
if GM.main.getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == false:
|
||||||
|
addButton("Next task", "Ask Issix about next task", "main")
|
||||||
|
else:
|
||||||
|
addDisabledButton("Next task", "You need to wait until tomorrow")
|
||||||
|
return true
|
||||||
|
elif(GM.main.getModuleFlag("IssixModule", "Quest_Status") == 5):
|
||||||
|
addButton("Questionnaire", "Ask Issix about continuing the questionnaire", "main")
|
||||||
|
return false
|
||||||
|
|
||||||
|
|
||||||
|
func onButton(_method, _args):
|
||||||
|
if(_method == "main"):
|
||||||
|
GM.main.endCurrentScene()
|
||||||
|
runScene("IssixQuestionnaire")
|
||||||
|
|
||||||
|
func getPriority():
|
||||||
|
return 20
|
520
IssixQuestionnaireScene.gd
Normal file
520
IssixQuestionnaireScene.gd
Normal file
|
@ -0,0 +1,520 @@
|
||||||
|
extends SceneBase
|
||||||
|
|
||||||
|
var answer = null
|
||||||
|
var strikes = 0
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
sceneID = "IssixQuestionnaire"
|
||||||
|
|
||||||
|
func _run():
|
||||||
|
if(state == ""):
|
||||||
|
playAnimation(StageScene.Duo, "sit", {npc="issix", npcAction="sit"})
|
||||||
|
if(GM.main.getModuleFlag("IssixModule", "Quest_Status") == 4):
|
||||||
|
saynn("[say=issix]Alrighty, pet in training. It's the first time I do this, but I'm going to give you a bunch of questions and I expect you to answer them truthfully. Don't dwell too long on them, trust your instinct.\nBlah blah blah, there are no wrong answers something something. You get the drill right? You must have filled a similar one in the past. Tablet will only present you with questions, you answer to me.[/say]")
|
||||||
|
saynn("[say=issix]Also, this will take a bit, here, have a seat.[/say]")
|
||||||
|
saynn("He pulls a folding chair from behind his and unfolds it in front of himself, you sit and he passes a tablet to you. On it a giant button titled ”Start”.")
|
||||||
|
addButton("Start", "Start the questionnaire", "q1")
|
||||||
|
addButton("Later", "Maybe do this later, it looks like it is gonna take a while...", "endthescene")
|
||||||
|
else:
|
||||||
|
saynn("[say=pc]Could we continue the quiz?[/say]")
|
||||||
|
saynn("Issix looks at you confused for a second.")
|
||||||
|
saynn("[say=issix]Ohhhh, the quiz, right. Sorry, I've had... A rough night, sit down, the chair is still there.[/say]")
|
||||||
|
addButton("Lamia", "Ask about Lamia", "lamiaquestion")
|
||||||
|
addButton("Start", "Start the questionnaire", "q4")
|
||||||
|
addButton("Later", "Maybe do this later, it looks like it is gonna take a while...", "endthescene")
|
||||||
|
|
||||||
|
if(state == "q1"):
|
||||||
|
processTime(2*60)
|
||||||
|
saynn("You hit giant Start button. Screen flashes for split of a second in Silver color. You feel intense gaze of Issix studying your face as you read the first question.")
|
||||||
|
saynn("„Do you believe creatures possess a soul?”")
|
||||||
|
saynn("This question lingers in for you a second, but your ultimate answer is...")
|
||||||
|
addButton("Yes", "Yes, you do believe souls exist", "q1yes", [true])
|
||||||
|
addButton("No", "You don't believe in existance of souls", "q1no", [false])
|
||||||
|
|
||||||
|
if(state == "q1yes"):
|
||||||
|
saynn("[say=pc]I do believe creatures possess a soul, yeah.[/say]")
|
||||||
|
saynn("You look at Issix to see his reaction.")
|
||||||
|
saynn("[say=issix]Interesting, what do you think happens with it after a creature dies?[/say]")
|
||||||
|
addButton("Disappears", "The soul disappears when the body dies", "q2")
|
||||||
|
addButton("Moves", "The soul goes to heaven/hell/purgatory/other kind of place", "q2")
|
||||||
|
addButton("Reincarnates", "The soul reincarnates as different creature", "q2")
|
||||||
|
|
||||||
|
if(state == "q1no"):
|
||||||
|
saynn("[say=pc]I don't believe that souls exist honestly, when we die - we die, there is no reason to be sentimental and add on some kind of feel good concept onto the death.[/say]")
|
||||||
|
saynn("[say=issix]Bold. Death is scary to many, but is soul really just a concept giving us closure to idea of living? Hmm. Anyways, lets move on.[/say]")
|
||||||
|
addButton("Next question", "Moving on", "q2")
|
||||||
|
|
||||||
|
if(state == "q2"):
|
||||||
|
saynn("Looking back at tablet's screen, next question pops up.")
|
||||||
|
saynn("„Do you consider yourself loyal?”")
|
||||||
|
saynn("Not an unexpected question for this quiz.")
|
||||||
|
addButton("Yes", "I do consider myself loyal", "q2yes", [true])
|
||||||
|
addButton("No", "I don't consider myself loyal", "q2no", [false])
|
||||||
|
|
||||||
|
if(state == "q2yes"):
|
||||||
|
var protectedTavi = getModuleFlag("TaviModule", "Ch3ProtectedTavi")
|
||||||
|
var onlyTaviPunished = getModuleFlag("TaviModule", "Ch5OnlyTaviPunished")
|
||||||
|
if(protectedTavi == null and onlyTaviPunished == true):
|
||||||
|
saynn("Issix chuckes as you said yes")
|
||||||
|
saynn("[say=issix]I see. I see.[/say]")
|
||||||
|
elif(protectedTavi == true and onlyTaviPunished == false):
|
||||||
|
saynn("Issix gives you a warm smile as you said that. One that makes you feel particularly good about this answer.")
|
||||||
|
saynn("[say=issix]I see. Loyal pets are a rarity.[/say]")
|
||||||
|
elif(protectedTavi == null and onlyTaviPunished == false):
|
||||||
|
saynn("Issix gives you a smile as you said that.")
|
||||||
|
saynn("[say=issix]Good to know.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("Issix gives you a smile as you said that.")
|
||||||
|
saynn("[say=issix]I like loyal pets.[/say]")
|
||||||
|
saynn("[say=issix]Anyways, lets proceed with the next one.[/say]")
|
||||||
|
addButton("Next question", "Moving on", "q3")
|
||||||
|
|
||||||
|
if(state == "q2no"):
|
||||||
|
var protectedTavi = getModuleFlag("TaviModule", "Ch3ProtectedTavi")
|
||||||
|
var onlyTaviPunished = getModuleFlag("TaviModule", "Ch5OnlyTaviPunished")
|
||||||
|
if(protectedTavi == null and onlyTaviPunished == true):
|
||||||
|
saynn("You look at Issix, he doesn't seem to be surprised by your answer, his face is still.")
|
||||||
|
saynn("[say=issix]Alright.[/say]")
|
||||||
|
elif(protectedTavi == true and onlyTaviPunished == false):
|
||||||
|
saynn("Issix gives you a smile as you said that, he seems surprised.")
|
||||||
|
saynn("[say=issix]Hmm, that's interesting. I wonder, are you being humble or... Anyways, let's move on.[/say]")
|
||||||
|
elif(protectedTavi == null and onlyTaviPunished == false):
|
||||||
|
saynn("Issix looks at you with curiosity.")
|
||||||
|
saynn("[say=issix]Funny.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("Issix considers you for a moment.")
|
||||||
|
saynn("[say=issix]Okey then, I suppose we can move on.[/say]")
|
||||||
|
addButton("Next!", "Another one", "q3")
|
||||||
|
|
||||||
|
if(state == "q3"):
|
||||||
|
processTime(2*60)
|
||||||
|
saynn("You look back at your tablet. You stare it for good 10 seconds, but no new question comes up. You start wondering if something is wrong or...")
|
||||||
|
saynn("[say=issix]Give me that for a second.[/say]")
|
||||||
|
saynn("He takes the tablet from your paws and holds it. He then shakes it in all directions as if it was a snow globe toy, hitting it a few times on the floor for a good measure. After a solid minute of this treatment the tablet flashes with Lilac color for a second and displays the next question.")
|
||||||
|
saynn("[say=issix]Here you go. Technology is sometimes stubborn, you'd think that violence is never an option, but for electronics? Those things fear you. Givving them a good whack sometimes helps them come to their senses.[/say]")
|
||||||
|
saynn("He laughs, while passing the tablet back to you. Next questions says...")
|
||||||
|
saynn("„What body part of yours do you consider most desirable?”")
|
||||||
|
saynn("[say=issix]By that I mean, which one of them you find the most essential to your identity... I guess...[/say]")
|
||||||
|
var body_parts = GM.pc.getBodyparts()
|
||||||
|
for bp in body_parts:
|
||||||
|
var body_part = body_parts[bp]
|
||||||
|
if body_parts[bp] == null or bp in [BodypartSlot.Body, BodypartSlot.Hair]:
|
||||||
|
continue
|
||||||
|
addButton(body_part.getName().capitalize(), "Your "+body_part.getName()+" feels like the most appropriate answer here", "q3answer", [body_part.id])
|
||||||
|
|
||||||
|
if(state == "q3answer"):
|
||||||
|
processTime(5*60)
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 5)
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", true)
|
||||||
|
saynn("[say=issix]Fascinating![/say]")
|
||||||
|
saynn("He notes, presumably your answer, then he looks at the time.")
|
||||||
|
saynn("[say=issix]Wow, we are so quick with those![/say]")
|
||||||
|
saynn("[say=issix]Perhaps you'd like some wat-[/say]")
|
||||||
|
saynn("[say=azazel]Master, master![/say]")
|
||||||
|
saynn("You can hear sense of urgency in Azazel's voice.")
|
||||||
|
saynn("[say=issix]Yes, pet? What happened?[/say]")
|
||||||
|
saynn("[say=azazel]Lamia, they... I think they...[/say]")
|
||||||
|
saynn("Everyone immediately starts looking at Lamia. The fox is curled up, their head hidden under all of their fluff, they are visibly shaking.\nIssix jumps out of the chair, it falling on its back and making a lot of noise. He kneels next to Lamia and puts his paw gently under their head to see their face. Lamia is in tears, it's difficult to look at him at this state.")
|
||||||
|
saynn("[say=issix]Lamia, please, show.[/say]")
|
||||||
|
saynn("He grabs a pen and hands it to Lamia. Lamia with great struggle takes the pen and scribbles something on piece of paper, you can't see it, it's behind Issix's body. Issix looks at the piece of paper and as he realizes what Lamia drew he shouts")
|
||||||
|
saynn("[say=issix]Pets, with me. To medical, now.[/say]")
|
||||||
|
saynn("He grabs Lamia on his muscular hands and holds them in front. Fox is still curled up. It looks as if he is holding a large furry donut, but without a hole.")
|
||||||
|
saynn("[say=issix]"+GM.pc.getName() + ", we will finish the questionnaire later. Azazel, Hiisi, with me.[/say]")
|
||||||
|
saynn("You haven't heard his tone being so serious... Ever. Two pets followed their master, still leashed, him holding the other ends in his paw while almost running towards the elevator.\nIt's interesting how he always takes all of his pets with him wherever he goes. This situation looked really urgent, makes you wonder what had happened. but you guess there is no point in standing here.")
|
||||||
|
addButton("Leave", "That would be it for today, you guess", "endthescene")
|
||||||
|
|
||||||
|
if(state == "lamiaquestion"):
|
||||||
|
saynn("[say=pc]Uhh, are you okey? Is Lamia okey? They didn't look great yesterday.[/say]")
|
||||||
|
saynn("Issix sighs")
|
||||||
|
saynn("[say=issix]Thank you for asking, pet. I'm fine, Lamia is... Well, let's just say it isn't the first time it happens, it's really due to my own negligence. But they are fine for now.[/say]")
|
||||||
|
saynn("[say=pc]I see[/say]")
|
||||||
|
saynn("Doesn't seem like Issix is willing to elaborate on this one.")
|
||||||
|
addButton("Start", "Start the questionnaire", "q4")
|
||||||
|
addButton("Later", "Maybe do this later, it looks like it is gonna take a while...", "endthescene")
|
||||||
|
|
||||||
|
if(state == "q4"):
|
||||||
|
saynn("Issix taps the sceen of the tablet a few times and passes to you. Screen already shows the 4th question. Issix looks at your face again, though not with same intensity as the last time, yesterday's event made him feel really out of it. His eyes are reddened and there are visible bags under them, lack of sleep? Maybe?")
|
||||||
|
saynn("[say=issix]Let's start[/say]")
|
||||||
|
saynn("The question says: „Can you bear children?”")
|
||||||
|
if(GM.pc.isVisiblyPregnant()):
|
||||||
|
saynn("[say=issix]Uhhh... You know what, let's skip this question, I think we know the answer already.[/say]")
|
||||||
|
addButton("Skip", "There is no way to hide your pregnancy, Issix already knows the answer", "q4answer", [true])
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]I need to know everything about my pets, and you know, this really helps.[/say]")
|
||||||
|
if(GM.pc.hasAnyWomb() and GM.pc.hasPerk(Perk.StartInfertile) == false):
|
||||||
|
addButton("Yes", "Yes, you can bear children", "q4answer", [true])
|
||||||
|
addButton("No (lie)", "No, you can't bear children", "q4answer", [false])
|
||||||
|
else:
|
||||||
|
addButton("Yes (lie)", "Yes, you can bear children", "q4answer", [true])
|
||||||
|
addButton("No", "No, you can't bear children", "q4answer", [false])
|
||||||
|
|
||||||
|
if(state == "q5"):
|
||||||
|
saynn("Screen flashes for a second, Aqua color fills the screen. Next question says: „What sexual activity are you interested in the most?”")
|
||||||
|
saynn("[say=issix]Just to clerify - all of those assume you take the submissive role.[/say]")
|
||||||
|
addButton("Anal", "Anal sex interests you the most", "q5answer", ['anal'])
|
||||||
|
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
||||||
|
addButton("Watersports", "Say you are interested in piss", "q5answer", ['watersports'])
|
||||||
|
addButton("Oral", "Oral sex interests you the most", "q5answer", ['oral'])
|
||||||
|
addButton("Bondage", "Bondage interests you the most", "q5answer", ['bondage'])
|
||||||
|
addButton("Masochism", "Masochism interests you the most", "q5answer", ['masochism'])
|
||||||
|
addButton("Breeding", "Breeding excites you the most", "q5answer", ['breeding'])
|
||||||
|
|
||||||
|
if(state == "q5answer"):
|
||||||
|
saynn("Issix looks at you for a while, as if lost in thought, finally he livens up and notes your answer.")
|
||||||
|
saynn("[say=issix]Anyways, lets move on. Next question.[/say]")
|
||||||
|
addButton("Another one", "Move onto question number 6", "q6")
|
||||||
|
|
||||||
|
if(state == "q6"):
|
||||||
|
processTime(2*60)
|
||||||
|
saynn("Another question shows up on your screen")
|
||||||
|
saynn("„Do you own any slaves of your own?”")
|
||||||
|
addButton("Yes", "You do have slaves", "q6answer", [true])
|
||||||
|
addButton("No", "I do not have slaves", "q6answer", [false])
|
||||||
|
|
||||||
|
if(state == "q7"):
|
||||||
|
if(GM.main.getPCSlaveAmount() > 0 or getModuleFlag("RahiModule", "rahiMile7Enslaved") or getModuleFlag("JackiModule", "Jacki_ch2GotEnslaved")) and answer == false:
|
||||||
|
saynn("Issix looks at you with surprise.")
|
||||||
|
saynn("[say=issix]Noted. Lets get to next question.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]Noted. Ooonntooo the neext onnne![/say]")
|
||||||
|
saynn("Issix says that with excitement as if he was singing.")
|
||||||
|
saynn("Screen blinks in Violet color and another questions shows up.\n\n„Do you believe more in teaching by reward or by punishment?”")
|
||||||
|
saynn("Issix looks oddly excited about this question, judging by movement of his tail.")
|
||||||
|
saynn("[say=issix]There are two schools of thought here, I'm simply wondering what do you think about this dillema.[/say]")
|
||||||
|
addButton("Reward", "You believe in superiority of rewards in education", "q7answer", [true])
|
||||||
|
addButton("Punishment", "You believe in punishment as being better motivational drive than rewards", "q7answer", [false])
|
||||||
|
|
||||||
|
if(state == "q8"):
|
||||||
|
processTime(2*60)
|
||||||
|
if answer == true:
|
||||||
|
saynn("Issix claps his paws, so suddently that it spooked you a little bit. He seems happy.")
|
||||||
|
saynn("[say=issix]Apologies, I just... Got carried away.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("Issix smiles.")
|
||||||
|
saynn("[say=issix]Respectable response. You aren't the only one thinking this way, considering you found yourself in place like this.[/say]")
|
||||||
|
saynn("[say=issix]No time to waste, we are drawing near the end now.[/say]")
|
||||||
|
saynn("Screen of the tablet flashes, in Evergreen color this time, and a new question appears.")
|
||||||
|
saynn("„What species do you find most attractive?”")
|
||||||
|
var species = GlobalRegistry.getAllPlayableSpecies()
|
||||||
|
for species_id in species:
|
||||||
|
addButton(species[species_id].getVisibleName()+"s", "I find "+species[species_id].getVisibleName()+"s to be most attractive", "q8answer", [str(species_id)])
|
||||||
|
|
||||||
|
if(state == "q9"):
|
||||||
|
if(answer in ['demon', 'dragon']):
|
||||||
|
saynn("Issix laugs")
|
||||||
|
saynn("[say=issix]I hope my body had no effect on that answer[/say]")
|
||||||
|
saynn("Issix notes the answer, he puts his own tablet on the floor as he picks up a glass of water to drink")
|
||||||
|
saynn("[say=issix]How do you feel about your answers so far? I hope you are honest with those, you know.[/say]")
|
||||||
|
saynn("He puts the glass back on its earlier position, taps his tablet and you get the next question.")
|
||||||
|
if(getModuleFlag("IssixModule", "QuestionnaireQ4") == true):
|
||||||
|
saynn("„Your Master asks you to have his child. What do you do?”")
|
||||||
|
else:
|
||||||
|
saynn("„Your Master asks you to have his child (after first making you able to conceive one). What do you do?”")
|
||||||
|
addButton("Refuse", "You aren't willing to bear your Master's child", "q9answer", [false])
|
||||||
|
addButton("Accept", "You would agree to bear your Master's child", "q9answer", [true])
|
||||||
|
|
||||||
|
if(state == "q10"):
|
||||||
|
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])
|
||||||
|
|
||||||
|
if(state == "q10answer"):
|
||||||
|
if(answer < 3):
|
||||||
|
saynn("It feels as if he is trying to compose his body language to hide something. That or your answer didn't have much of effect on him. He notes your answer.")
|
||||||
|
saynn("[say=issix]That's indeed how pretty much everyone reacts, not surprising.[/say]")
|
||||||
|
if(answer == 3):
|
||||||
|
saynn("He gives you a curious look, perhaps a grin.")
|
||||||
|
saynn("[say=issix]That's most curious, a very... Scientific response. Cold, non-emotional observation. Most creatures writhe on mention of a parasite, not you.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("For some reason this answer lifted his spirit.")
|
||||||
|
saynn("[say=issix]You are one kinky creature, you know that? I really like your boldness in this response, you are either very naive or sex worms have eaten your brain.[/say]")
|
||||||
|
saynn("He laugs.")
|
||||||
|
saynn("[say=issix]We are at the end, last question.[/say]")
|
||||||
|
saynn("„What do you think about AlphaCorp?” the screen displays.")
|
||||||
|
addButton("Good", "AlphaCorp is doing good work, better than anyone else in this part of the galaxy", "q11answer", true)
|
||||||
|
addButton("Neutral", "You either have no opinion or feel entirely neutral about AlphaCorp", "q11answer")
|
||||||
|
addButton("Bad", "Your typical corrupt corporation, you dislike/hate it", "q11answer", false)
|
||||||
|
|
||||||
|
if(state == "q11answer"):
|
||||||
|
saynn("He writes notes your last answer.")
|
||||||
|
saynn("[say=issix]And we are done! Wasn't so bad, was it? Just 11 questions.\nI have to admit something to you, I lied. This test had wrong answers. Making a pet out of someone requires a lot, and I want my pets to be loyal as well as trustworthy. Of course there are more things than just those, but I needed you to feel safe while writing this test to make sure you give it your best shot as well as don't have reasons to lie to me.[/say]")
|
||||||
|
saynn("[say=issix]I'll now discuss those questions and your answers with you. Are you ready? Good.[/say]")
|
||||||
|
saynn("[say=issix]As your first question I've asked you if you believe creatures posses a soul. You answered "+("yes" if getModuleFlag("IssixModule", "QuestionnaireQ1") else "no")+".[/say]")
|
||||||
|
saynn("[say=issix]The nature of souls is a very interesting one, how do you even define a soul? It may mean different things for each one of us. For me, a soul is your essence - a thing that makes you - you, so yes, I do think that souls do exist. Once you lose your soul you... Stop being yourself, or at least true to yourself, you become mallable by something or someone else. The choices your body makes aren't really made by someone in specific, they are impulses of the body or extensions of someone else's will and nothing more...[/say]") # ;)
|
||||||
|
saynn("He thinks for a moment")
|
||||||
|
saynn("[say=issix]That said, maybe at the end of the day, when soul leaves the body, it can still be itself... Somewhere else, better...[/say]")
|
||||||
|
saynn("He coughs")
|
||||||
|
saynn("[say=issix]Anyways, this question was entirely for your own consideration, there is truthfully no right or wrong answer in here. Let's discuss question number two.[/say]")
|
||||||
|
addButton("Summary", "", "summary2")
|
||||||
|
|
||||||
|
if(state == "summary2"):
|
||||||
|
processTime(3*60)
|
||||||
|
var protectedTavi = getModuleFlag("TaviModule", "Ch3ProtectedTavi")
|
||||||
|
var onlyTaviPunished = getModuleFlag("TaviModule", "Ch5OnlyTaviPunished")
|
||||||
|
saynn("[say=issix]Your next question was about loyality. It's a very important quality that I'm looking for in a pet. Perhaps not the reckless and completely maniacal type of loyality, but a loyality nonetheless.[/say]")
|
||||||
|
if getModuleFlag("IssixModule", "QuestionnaireQ2"):
|
||||||
|
saynn("[say=issix]You have answered that you consider yourself loyal.[/say]")
|
||||||
|
if(protectedTavi == null and onlyTaviPunished == true): # Total lack of loyality
|
||||||
|
strikes += 1
|
||||||
|
saynn("[say=issix]You see, sadly, I don't believe you are entirely honest with me, or yourself. Whenever something happens in this prison - rumors spread, people talk. Guards are surprisingly chatty with inmates.\nAnd what rumors - very trustworthy ones, mind you, say - is that you've abandoned your partner in crime twice. I'm sorry, but this is troubling answer. Not only you weren't loyal, but also you are not being truthful with yourself AND me. I don't tolerate this in my pets.[/say]")
|
||||||
|
saynn("Issix likely has in mind Tavi, you want to correct Issix about this, and how you made the right decisions but the moment you breathe air to start talking his look clearly says he doesn't want you to defend yourself. You comply.")
|
||||||
|
elif(protectedTavi == true and onlyTaviPunished == false): # Total loyality
|
||||||
|
saynn("[say=issix]This is further confirmed by what rumors I've heard about you. You stuck with your partner in crime to the very end - commendable behavior. My pets don't have to make many difficult decisions, but it's important they are honest both with me and also themselves when making them. And if they are disloyal, I can hardly call myself their master. I think you were honest and dependable with your answer. Good job, pet.[/say]")
|
||||||
|
saynn("Your body feels incredibly good after those words by Issix, you feel rewarded for your honesty and loyality.")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]I can't say for sure whether you were being honest or not with me. But loyality is incredibly important quality of a pet, and the fact you consider yourself loyal makes me happy.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]You have answered that you don't consider yourself loyal.[/say]")
|
||||||
|
if(protectedTavi == null and onlyTaviPunished == true): # Total lack of loyality
|
||||||
|
saynn("[say=issix]Ehh, you are giving me a really hard time in here, you know? I've heard of your adventures with certain other inmate from the prison - people talk in here, a lot. And reports confim that you weren't exactly the most loyal when your partner in crime needed you the most. But you also said that you don't consider yourself loyal, making your answer a honest one - something I can respect. You seem to be true to yourself, maybe a little lost. I think we can overlook this and just work on your loyality as we go.[/say]")
|
||||||
|
saynn("Issix likely has in mind Tavi, it's surprising he still gives you a chance even though he is aware how you basically let Tavi take all the blame for the failure - especially considering how much she went through after you got captured.")
|
||||||
|
elif(protectedTavi == true and onlyTaviPunished == false): # Total loyality
|
||||||
|
saynn("[say=issix]Hmm, your answer baffles me, pet. Rumors I've heard described your actions as heroic and loyal to your partner in crime, when they needed you the most, not minding the consequences. And yet, you say you are not loyal? I can't tell, whether you are not honest with yourself, too humble or something else, but either way, I hope we can work on it as we go on.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]I can't say for sure whether you were being honest or not with me. But loyality is incredibly important quality of a pet, it's a pity you don't consider yourself loyal. But regardless, this is something we can work on, don't worry.[/say]")
|
||||||
|
saynn("[say=issix]Second question done, just 9 more to go.[/say]")
|
||||||
|
addButton("Continue", "", "summary3")
|
||||||
|
|
||||||
|
if(state == "summary3"):
|
||||||
|
processTime(3*60)
|
||||||
|
saynn("[say=issix]What do we have here... Body parts. Ah yes. It bears no any significance, but thought the answer would be fun.[/say]")
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ3")
|
||||||
|
saynn("[say=issix]You said that the body part you are most interested in is... "+answer+"[/say]")
|
||||||
|
saynn("[say=issix]If you are wondering what I'm going to do with this information, I will say - time will tell.[/say]") # no, really, I have no fucking idea lol
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ4")
|
||||||
|
var wants_to = getModuleFlag("IssixModule", "QuestionnaireQ9")
|
||||||
|
var was_pregnant = GM.CS.getChildrenAmountOfOnlyMother("pc")
|
||||||
|
saynn("[say=issix]Next, you answered that you "+("can become pregnant with a child" if answer else "cannot become pregnant with a child")+".[/say]")
|
||||||
|
if answer == false and was_pregnant == true:
|
||||||
|
saynn("[say=issix]Hmm, interesting. I'm aware of you having a child in the past in this very prison, did something happen in the meantime?[/say]")
|
||||||
|
if(GM.pc.hasAnyWomb() and GM.pc.hasPerk(Perk.StartInfertile) == false):
|
||||||
|
addButton("Infertile", "Say you are no longer able to have offspring", "summary3lie")
|
||||||
|
addButton("Fertile", "Say you are fertile and can have master's baby", "summary3truth")
|
||||||
|
else:
|
||||||
|
addButton("Infertile", "Say you are no longer able to have offspring", "summary3truth")
|
||||||
|
addButton("Fertile", "Say you are fertile and can have master's baby", "summary3lie")
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
if answer == false and was_pregnant == false:
|
||||||
|
if wants_to:
|
||||||
|
saynn("[say=issix]But even though you cannot have a child you'd still be willing to let Master impregnate you. That's very good of you, perhaps this is something you've always wanted to do - be a good parent for child you brought to the world. But let me tell you outright - I'm not forcing my pets to bear my children. It's everyone's decision and it would be up to you to make. Azazel is proud „mother” of many of my children, he loves having my litter.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]You've also mentioned you are not willing to have your Master's children - that's entirely fair, I'm not one to force anyone in this specific matter. I already have Azazel as my litter bearer and this is entirely enough for me.[/say]")
|
||||||
|
elif answer == true and wants_to:
|
||||||
|
saynn("[say=issix]I'm always happy to have another breeding bitch as my pet. You and Azazel will look very cute with your pregnant bellies, can't wait for that.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]I have to say, I'm a little saddened to hear that while you can bear children, you are not willing to bear your Master's. I could use another breeding bitch, but it's your choice and I'm going to honor that.[/say]")
|
||||||
|
addButton("Continue", "", "summary4")
|
||||||
|
|
||||||
|
if state == "summary3lie":
|
||||||
|
strikes += 1
|
||||||
|
if GM.pc.hasAnyWomb() and GM.pc.hasPerk(Perk.StartInfertile) == false:
|
||||||
|
if getModuleFlag("IssixModule", "QuestionnaireQ9"):
|
||||||
|
# Lied twice about not being able to have offspring but says they want to have Master's child after making it possible, Issix knows it was a lie
|
||||||
|
saynn("[say=issix]I see. And you are saying you'd be okey with having your Master's child in you? Curious, but possible.[/say]")
|
||||||
|
else:
|
||||||
|
# Lied twice about not being able to have offspring and says they don't want to have Master's child after making it possible, Issix knows its a lie and
|
||||||
|
saynn("[say=issix]I'll say, I'm disappointed. Not because you don't want Master's child, but because you are deceiving me. You were pregnant in the past, as well as I can feel you are able to have a child of your own. I'm really at loss here, as I don't understand why are you lying to me, I hope you don't think I'd force you to anything if you agreed to be my pet, that's not my intention.[/say]")
|
||||||
|
else:
|
||||||
|
# Said they cannot become pregnant with a child, when asked about past pregnancy however they lied that they are fertile
|
||||||
|
if getModuleFlag("IssixModule", "QuestionnaireQ9"):
|
||||||
|
# They want a child
|
||||||
|
saynn("[say=issix]That's very nice that you'd like to have Master's child, though... I don't feel you are fertile, it's odd to me for you to say you are. Please do not lie to me, whether you want a child with your Master or not does not matter for becoming my pet. What matters is honesty.[/say]")
|
||||||
|
else:
|
||||||
|
# They don't want a child
|
||||||
|
saynn("[say=issix]You are... Very conflicted. You said you cannot become pregnant, when I asked you about your past pregnancy you changed your tune and said you are fertile... But you don't want Master's children? I'm... Unsure how to feel about it.[/say]")
|
||||||
|
addButton("Continue", "", "summary4")
|
||||||
|
|
||||||
|
if state == "summary3truth":
|
||||||
|
if GM.pc.hasAnyWomb() and GM.pc.hasPerk(Perk.StartInfertile) == false:
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ4", true)
|
||||||
|
saynn("[say=issix]Usure why you said earlier that you are not fertile, but I'll let that slide. Thank you for being honest this time. [/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]Sorry to hear that you can't bear children anymore. Thank you for being honest and explaining that to me.[/say]")
|
||||||
|
addButton("Continue", "", "summary4")
|
||||||
|
|
||||||
|
if state == "summary4":
|
||||||
|
processTime(4*60)
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ5")
|
||||||
|
saynn("[say=issix]The next one is pretty fun, you've said that "+answer+" is your favorite sexual activity. With me as your master you might - or might not have a choice in matter of sex we will be doing, it will all depend on your future choices, you will see.[/say]")
|
||||||
|
if (answer == "anal"):
|
||||||
|
saynn("Issix moves his paw to your rear and squishes the ass cheek")
|
||||||
|
saynn("[say=issix]A butt-slut, aren'tcha? That's entirely fine with me.[/say]")
|
||||||
|
elif(answer == "watersports"):
|
||||||
|
saynn("[say=issix]Anyways. You are in for a treat. All my pets have my mark at all times. Just one of the ways to show everyone else who they belong to, so there is no confusion about that. If you'll want it can be more than just a mark, though perhaps you should shower every now and then, piss sluts tend to have unbearable smell after a day. Who knows, maybe you are into that.[/say]")
|
||||||
|
saynn("He chuckles.")
|
||||||
|
elif(answer == "oral"):
|
||||||
|
saynn("[say=issix]That's pretty mild. let me take a look.[/say]")
|
||||||
|
saynn("He moves his chair closer to yours.")
|
||||||
|
if(GM.pc.isMuzzled()):
|
||||||
|
saynn("Issix pulls aside your muzzle.")
|
||||||
|
if GM.pc.hasBuff(Buff.GagBuff):
|
||||||
|
saynn("Issix pulls aside your gag.")
|
||||||
|
if GM.pc.hasBuff(Buff.RingGagBuff):
|
||||||
|
saynn("He mentions your ring gag chuckling.")
|
||||||
|
saynn("[say=issix]I see you've came prepared, as oral slut should.[/say]")
|
||||||
|
saynn("He puts two of his fingers into your mouth and moves them around.")
|
||||||
|
else:
|
||||||
|
saynn("He asks you to open your mouth, you obey. His fingers explore the inside of your mouth.")
|
||||||
|
var fluidsMouth = GM.pc.getBodypart(BodypartSlot.Head).getFluids()
|
||||||
|
if(!fluidsMouth.isEmpty()):
|
||||||
|
saynn("[say=issix]That's a one used {pc.throatStretch} mouth you got there. Didn't care about not cleaning it before coming? Or maybe you like cum breath? Doesn't bother me, just wondering.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]That's a one {pc.throatStretch} mouth you got there. Bet you trained it well.")
|
||||||
|
saynn("He continues exploring your mouth with his fingers for uncomfortable amount of time, your saliva covers almost the entirety of his fist. Eventually he stops, seemingly content with his inspection.")
|
||||||
|
saynn("[say=issix]Good pet.[/say]")
|
||||||
|
elif(answer == "bondage"):
|
||||||
|
saynn("[say=issix]Satisfying this one should be easy in this place. Do you know just how many inmates come to me with those? Anyways, we can yet make a total bondage puppy out of you.[/say]")
|
||||||
|
elif(answer == "masochism"):
|
||||||
|
saynn("[say=issix]Pain is pleasure for you? Or do you just like being treated rough? Didn't expect that one, but it's something I can do. If you want to be a painslut, so be it, but don't complain when you are left with a little memento of your escapades for a day or two.[/say]")
|
||||||
|
elif(answer == "breeding"):
|
||||||
|
if getModuleFlag("IssixModule", "QuestionnaireQ4"):
|
||||||
|
saynn("[say=issix]Is that so? Can't wait to see you fight with Azazel for who should be my breeding bitch at any given day.[/say]")
|
||||||
|
saynn("He laughs")
|
||||||
|
saynn("Azazel hearing his name looks at his master and then gives you serious look, before going back to sleep.")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]Breeding? How so? You did say you can't bear children. How can you enjoy breeding then? Is it methaphorical or you like breeding others? I'll say it outright, my pets can't breed others, they are meant to be bred, that's only acceptable outcome for me.[/say]")
|
||||||
|
|
||||||
|
saynn("Issix seems to be a little aroused by your answer, considering his penis peeking out.")
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ6")
|
||||||
|
saynn("[say=issix]Annyyyways. Let's move on. I've asked you next if you have any slaves, it was yet another question to you to test your honesty. It's pretty trivial for me to learn of such facts, so I'm not sure why would one lie in that easily verifiable question, but nonetheless, you've said that "+("you own a slave" if answer else "you don't own a slave") +".")
|
||||||
|
var slaves = GM.main.getPCSlaveAmount()
|
||||||
|
var dialogue = ""
|
||||||
|
if answer == false:
|
||||||
|
strikes += 1
|
||||||
|
if slaves > 0:
|
||||||
|
dialogue = "And yet, I know that in your very own cell you have "+str(slaves)+" slaves."
|
||||||
|
elif getModuleFlag("RahiModule", "rahiMile7Enslaved"):
|
||||||
|
dialogue = "And yet I know of certain kitty of name Rahi who resides in general block seems to have a certain owner of name "+GM.pc.getName()+", does it sound like a coincidence? I think not."
|
||||||
|
elif getModuleFlag("JackiModule", "Jacki_ch2GotEnslaved"):
|
||||||
|
dialogue = "And yet I know of certain puppy of name Jacki who resides in general block seems to have a certain owner of name "+GM.pc.getName()+", apparently they've had quite a transformation into a slut there. Are they stray puppy now? Do you not want the responsibility? A bad master, that would be."
|
||||||
|
else:
|
||||||
|
strikes -= 1
|
||||||
|
saynn("[say=issix]And it appears to be true. Not a dominant type, are you? Saves me time required to break you into a submissive slut.[/say]")
|
||||||
|
saynn("He laugs, it appears he wasn't serious.")
|
||||||
|
if dialogue:
|
||||||
|
saynn("[say=issix]" + dialogue + "To lie about something like this is ridiculous, why would you even do this? Do you take me for a fool? Do you think that creatures don't talk in here? I hoped you'd be better than this.[/say]")
|
||||||
|
else:
|
||||||
|
if slaves or getModuleFlag("RahiModule", "rahiMile7Enslaved") or getModuleFlag("JackiModule", "Jacki_ch2GotEnslaved"):
|
||||||
|
saynn("[say=issix]That seems to check out. I'm aware you have at least one slave. Just to let you know - it does not bother me. Even though, I have certain expectations of my pets, and no, any kind of dominative behavior will not be tolerated. You'll be my slave, keep that in mind. What you do with your slaves is of no concern to me.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]You do have slaves huh? Where? In this prison? Are you trying to impress me? Don't be a fool. I'm not aware of you owning any slave, I'd know that, I do my research morsel. Do not try to deceive me.[/say]")
|
||||||
|
saynn("Issix relaxes on his chair, streatches and breathes loudly.")
|
||||||
|
if strikes>1:
|
||||||
|
saynn("[say=issix]Maybe you have found your place, not with me, mind you, but in here, in this institution. Perhaps you are planning on staying here for a long time huh?[/say]")
|
||||||
|
saynn("He smiles")
|
||||||
|
saynn("[say=issix]Just being a bit of a tease[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]This is going pretty well so far I'd say, lets keep going, I want to wrap it up - hopefully before the night falls.[/say]")
|
||||||
|
addButton("Continue", "", "summary5")
|
||||||
|
|
||||||
|
if state == "summary5":
|
||||||
|
processTime(3*60)
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ7")
|
||||||
|
saynn("[say=issix]You might have noticed that the next question „Do you believe more in teaching by reward or by punishment?” excited me when I wanted to see you answer. One of the rare moments where hiding my emotions tends to be difficult, I really like philosophy and this classic carrot and a stick is pretty relevant to my line of interests.\nI've worked with many different people, I've experienced falls, victories. But more often than not, when it comes to reacting to certain unwanted behaviors - people tend to choose the stick option. It feels easier, it lets you convert your anger or frustration into a „lesson”. Simple, and effective, is it not?[/say]")
|
||||||
|
saynn("[say=issix]Fuck that. Every single person I've met who enjoyed punishing their inferior always was a psychopath. I've seen it time and time again in AlphaCorp. Some creatures were on the ladder just as a punching bag for those assholes. But of course, they were only „setting an example”, „educating”, excuses for letting their anger use violence. You could lick their asses for a year, you could increase efficiency by 300%, it was never enough for those assholes to say even a simple „thank you, good job”. They only cared about punishment, that was their fucking reason to exist.[/say]")
|
||||||
|
saynn("Issix notices he got a little worked up. He takes a breath and continues.")
|
||||||
|
saynn("[say=issix]All I'm saying is that I've had bad experience with people who answer to this question by saying they prefer punishment.")
|
||||||
|
if answer:
|
||||||
|
saynn("[say=issix]Ultimately, even if you said that you prefer punishment that still wouldn't make you necessarily like them, but you chose reward, and that, in my eyes is good to hear. My relationsip with pets does have elements of punishment, but reward or lack of it is much better tool to control pets, it's not just much more effective but it's also better in every other angle. I'm using punishment only in specific cases. Hope it doesn't come to that.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]And no, just because you've said you prefer punishment as education method doesn't put them on the same spot as those fuckers. There is more to being who they were than just that, That said, while my relationsip with pets does have elements of punishment, the reward or lack of it is much better tool to control pets, it's not just much more effective but it's also better in every other angle. I'm using punishment only in specific cases. Hope it doesn't come to that.[/say]")
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ8")
|
||||||
|
saynn("[say=issix]Next I asked you about which species you find most attractive, this was entirely for fun and my own research. You've mentioned you do find "+answer+"s most attractive, that's great.")
|
||||||
|
addButton("Continue", "", "summary6")
|
||||||
|
|
||||||
|
if state == "summary6":
|
||||||
|
processTime(3*60)
|
||||||
|
saynn("[say=issix]Lastly, a question about AlphaCorp, this one doesn't really have anything to do with you, or me or you becoming my pet, but I simply were interested in your opinion. I've spent way too long inside AlphaCorp to get entirely sick of this corpo-circlejerk bullshit. Learning what others think of it, is always good, especially if their opinion matches my own or they have stories of their own to tell.[/say]")
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ11")
|
||||||
|
if answer == true:
|
||||||
|
saynn("[say=issix]Seems like you approve of AlphaCorp, either you are absolutely blind to what they've been doing and are doing, you are a fool or there is some other reason for you to take their side. Like I mentioned - has nothing to do with us. I'd love to know what made you believe this way but that's a conversation for some other day, maybe.[/say]")
|
||||||
|
elif answer == false:
|
||||||
|
saynn("[say=issix]You've told me that you dislike AlphaCorp as well. Don't know your motives, whether it's because you are where you are, they killed your family or something else - I'm with you on that. AlphaCorp is just another entirely corrupt bullshit machine that uses doesn't know any other way to do anything other than resort to violence. Their executives are bunch of dickheads who's brains long time ago got eaten by money worms. But you probably know all of that. Hope one day comes where AlphaCorp is no more.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]Seems like you don't have an opinion on that, that's fair. I'd ask why, when politics have such large impact on us all, but I've lived enough to just let it be. You know how I feel about this intergalatic corpo shitstain, that's probably all you need to know. Whatever, I'm sick of talking politics for now.[/say]")
|
||||||
|
saynn("[say=issix]That would be all of the questions covered. Let's see... That makes it that... Plus this...[/say]")
|
||||||
|
addButton("Results", "Wait for Issix to count the results", "finalresults")
|
||||||
|
addButton("All questions?", "You remember there was one more question he asked of you, why didn't he sum it up?", "parasiteq")
|
||||||
|
|
||||||
|
if state == "parasiteq":
|
||||||
|
saynn("[say=pc]Are those really all of the questions? I could swear there was one more.[/say]")
|
||||||
|
saynn("He tenses up a little, looks at you, at his tablet, at you and his tablet again.")
|
||||||
|
answer = getModuleFlag("IssixModule", "QuestionnaireQ10")
|
||||||
|
match answer:
|
||||||
|
1, 2:
|
||||||
|
saynn("[say=issix]Hmm, I guess you are right, yeah, I did ask you one more question. That was for my own purposes, you don't have to worry about it. Let's go to the results.[/say]")
|
||||||
|
3:
|
||||||
|
saynn("[say=issix]Hah, I were just really wondering. Your outlook on things such as parasites is honestly fascinating. It was a really great answer that I didn't expect. Anyways, results![/say]")
|
||||||
|
4:
|
||||||
|
saynn("[say=issix]Yeah, you are indeed right. I didn't mention the parasite question. Truth be told, your answer surprised me and... Made me a bit relieved. Forgive me, but I won't be able to tell you at the moment what that was about, but I assure you, there was a really good reason for this question. Now, let's count the results, shall we?[/say]")
|
||||||
|
addButton("Results", "Wait for Issix to count the results", "finalresults")
|
||||||
|
|
||||||
|
if state == "finalresults":
|
||||||
|
saynn("He looks at responses, counts them, tries to figure something out, finally reaches a conclusion and in official tone announces...")
|
||||||
|
if strikes == 0:
|
||||||
|
saynn("[say=issix]I have no objections to you becoming my pet. As far as I'm aware you were honest with all of the answers. That was the only thing that truthfully mattered during the test.[/say]")
|
||||||
|
saynn("You are happy to hear the result")
|
||||||
|
saynn("[say=issix]There is only one more trial before I make my final decision. You'll face it tomorrow. And from tomorrow, I expect you to kneel before me, understood?[/say]")
|
||||||
|
setModuleFlag("IssixModule", "Quest_Status", 6)
|
||||||
|
elif strikes == 1:
|
||||||
|
saynn("[say=issix]You pass. While I feel like you weren't entirely honest with me duright the questionnaire, I'll chuck it as a mistake.[/say]")
|
||||||
|
saynn("You are happy to hear the result")
|
||||||
|
saynn("[say=issix]Mind you, there is one more thing that I expect you to do, the last trial. That's for tomorrow, you got it? And from tomorrow onwards, I expect you to kneel before me when you address me.[/say]")
|
||||||
|
setModuleFlag("IssixModule", "Quest_Status", 6)
|
||||||
|
else:
|
||||||
|
saynn("Issix looks at you, his piercing black eyes judging you, or is he trying to intimidate you?")
|
||||||
|
saynn("[say=issix]I'm afraid you can't become my pet. You weren't honest with me on multiple occasions. Trust is paramount in this relationship, and you have none of that, sorry, I don't know of reasons why you decided to deceive me, those are your own to know. You can still come, we can talk, you can talk with my pets, but you yourself will not become my pet, this is my final decision. A shame, really, you'd make a fine pet, except the lying part, of course.[/say]")
|
||||||
|
setModuleFlag("IssixModule", "Quest_Status", 5)
|
||||||
|
setModuleFlag("IssixModule", "Quest_Rejected_By_Issix", 2)
|
||||||
|
addButton("Back", "", "endthescene")
|
||||||
|
|
||||||
|
|
||||||
|
func _react(_action: String, _args):
|
||||||
|
if(_action == "endthescene"):
|
||||||
|
endScene()
|
||||||
|
return
|
||||||
|
|
||||||
|
if(_args):
|
||||||
|
if(_action.begins_with("q10")): # number parasite
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ10", _args[0])
|
||||||
|
elif(_action.begins_with("q11")): # bool alphacorp
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ11", _args[0])
|
||||||
|
elif(_action.begins_with("q1")): # bool Creatures possess a soul
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ1", _args[0])
|
||||||
|
elif(_action.begins_with("q2")): # bool Consider yourself loyal
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ2", _args[0])
|
||||||
|
elif(_action.begins_with("q3")): # text Favorite bodypart
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ3", _args[0])
|
||||||
|
elif(_action.begins_with("q4")): # bool Can you be pregnant
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ4", _args[0])
|
||||||
|
_action = "q5"
|
||||||
|
elif(_action.begins_with("q5")): # text fav sexual activity
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ5", _args[0])
|
||||||
|
elif(_action.begins_with("q6")): # bool have slaves
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ6", _args[0])
|
||||||
|
_action = "q7"
|
||||||
|
elif(_action.begins_with("q7")): # bool carrot and a stick
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ7", _args[0])
|
||||||
|
_action = "q8"
|
||||||
|
elif(_action.begins_with("q8")): # text attractive species
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ8", _args[0])
|
||||||
|
_action = "q9"
|
||||||
|
elif(_action.begins_with("q9")): # text bearing a baby
|
||||||
|
setModuleFlag("IssixModule", "QuestionnaireQ9", _args[0])
|
||||||
|
_action = "q10"
|
||||||
|
|
||||||
|
answer = _args[0] # I'm lazy
|
||||||
|
|
||||||
|
setState(_action)
|
||||||
|
|
||||||
|
|
||||||
|
func getDevCommentary():
|
||||||
|
return "Writing questionnaire took me a while. I knew I wanted to write wuestionnaire and I wanted it to be meaningful in a way. At first the idea was that a player will choose some options and then Issix will use them to apply punishments and rewards according to those responses. However evantually I felt like this may not be the best usage of questionnaire. One thing that to me is missing in the game is the lack of impact of choices made in other character arcs on the rest of the prison, I really wanted to do something about it, so I decided to possibly involve choices made in Tavi's questline as well as Rahi's to judge player for slavery fitness. There is also the fact that I enjoy ethics, so I slapped some ethics questions as well, this allows me to show that Issix is not a two-dimensional character and works according to some rules he subscribes to as well. The end result is a weird mix of stuff. Don't know how I ultimately feel about all of this, but I think the idea of questionnaire is a solid one in here. Also, the abrupt break was added as I were writing the quiestionnaire, completely on impulse. I've felt like we needed some dramatic break or this would feel too boring, and it would allow me to add some relevant foreshadowing and story bits for later. Didn't want the quest to be this quick. It should be spread across multiple days, sorry for artificial filler ><"
|
||||||
|
|
||||||
|
func hasDevCommentary():
|
||||||
|
return true
|
267
IssixTalkMain.gd
Normal file
267
IssixTalkMain.gd
Normal file
|
@ -0,0 +1,267 @@
|
||||||
|
extends SceneBase
|
||||||
|
|
||||||
|
var random_issix_activities_talk = [
|
||||||
|
"He notices you right away and follows you with his gaze."
|
||||||
|
] #TODO Write more
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
sceneID = "IssixTalkScene"
|
||||||
|
|
||||||
|
func _reactInit():
|
||||||
|
if(GM.ES.triggerReact(Trigger.TalkingToNPC, ["issix"])):
|
||||||
|
endScene()
|
||||||
|
return
|
||||||
|
|
||||||
|
func _run():
|
||||||
|
if(state == ""):
|
||||||
|
playAnimation(StageScene.Duo, "stand", {npc="issix", npcAction="sit"})
|
||||||
|
|
||||||
|
|
||||||
|
if(state == ""):
|
||||||
|
if(!GM.main.getModuleFlag("IssixModule", "Issix_Introduced")):
|
||||||
|
sayn("While exploring the cellblock you stumble upon an uncommon sight - three leashed creatures resting on blankets around a sitting man. One of the creatures appears to be sleeping, the other one is laying on their front turned towards the man sitting on the chair and the third one is licking their paws with their eyes closed.\nThe sitting figure appears to be talking with the creature laying on their belly.")
|
||||||
|
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
||||||
|
sayn("All of the three leashed creatures give off a pretty strong smell - they are all marked. While their fur seems dry, it's undeniable it had contact with piss, of a single male. Not difficult to figure out which.")
|
||||||
|
addButton("Talk", "Talk to the intimidating demon", "talk")
|
||||||
|
addButton("Appearance", "Take a closer look at the intimidating demon", "appearance")
|
||||||
|
else:
|
||||||
|
saynn("While exploring the station a in the corner of a platform sits a demon-dragon Issix with three leashed creatures.")
|
||||||
|
addButton("Talk", "Talk to Issix", "talk")
|
||||||
|
addButton("Appearance", "Take a closer look at Issix", "appearance")
|
||||||
|
addButton("Leave", "Be on your way", "endthescene")
|
||||||
|
|
||||||
|
if(state == "appearance"):
|
||||||
|
saynn("Before you, on his ”throne” stands an intimidating figure - a demon-dragon hybrid. His piercing black eyes look distinct from any other inmate.\n\nHe can certainly be called muscular, his arms and legs are on the beefier side, not extremaly so, but one wouldn't want to pick a fight with him.\nEven though intimidating, his face... Shows kindness and calm.\n\nWhat makes him much different from everyone else is the... Harem? He holds a bundle of 3 leashes attached to his wrist, at the end of each is a creature laying or sitting on a blanket.")
|
||||||
|
addButton("Back", "Go back", "")
|
||||||
|
|
||||||
|
if(state == "talk"):
|
||||||
|
if(!GM.main.getModuleFlag("IssixModule", "Issix_Introduced")):
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Issix_Introduced", true)
|
||||||
|
saynn("You approach the intimidating demon, with a lot of distance still in-between you and him, standing right in front of his harem.")
|
||||||
|
saynn("[say=issix]Oh hello little morsel. Don't believe I've seen you. Name is Issix. Do you have a name?[/say]")
|
||||||
|
addButton("I'm "+GM.pc.getName(), "Introduce yourself with your name", "name")
|
||||||
|
else:
|
||||||
|
saynn("You approach the demon.")
|
||||||
|
saynn(RNG.pick(random_issix_activities_talk))
|
||||||
|
addButton("Prison", "How did he end up in prison?", "prison")
|
||||||
|
addButton("Pets", "Have they really willingly gave to him?", "pets2")
|
||||||
|
addButton("Guards", "Are prison guards giving him trouble?", "guards")
|
||||||
|
if GM.main.getModuleFlag("IssixModule", "Quest_Status") == 1 and GM.main.getModuleFlag("IssixModule", "Quest_Bonked") == true:
|
||||||
|
addButton("Exercise", "Ask Issix for explanation about your incident with the wall", "quest1bonk")
|
||||||
|
if GM.main.getModuleFlag("IssixModule", "Quest_Status") == 3:
|
||||||
|
addButton("Gumball", "Bring back the gumball to Issix", "quest1turn")
|
||||||
|
GM.ES.triggerRun(Trigger.TalkingToNPC, ["issix"])
|
||||||
|
addButton("Leave", "Be on your way", "endthescene")
|
||||||
|
|
||||||
|
if(state == "name"):
|
||||||
|
addCharacter("issix")
|
||||||
|
saynn("[say=issix]I see. Nice to meet you "+GM.pc.getName()+" and welcome to my humble corner in this piece of heaven.[/say]")
|
||||||
|
saynn("He holds his paw up to you, not fazed by the fact that you are still separated by an awkwardly long distance from the demon-dragon.\nNot wanting to be rude, you lean forwards while making extra sure you will not trample upon laying inmate or fall forwards by yourself. Eventually your " + ("hand" if len(GM.pc.getSpecies()) == 1 and GM.pc.getSpecies()[0] == "human" else "paw") + " meets his and you are able to do shake them.") # ok, I have no idea what's the difference between buff arms and anthro arms, they seem the same, and technically neither have paws, too bad I'm the one writing dialogue though
|
||||||
|
saynn("[say=issix]I own this little corner including those three wonderful leashed pets beside me. You do NOT touch my pets without permission. Normally I wouldn't think this has to be mentioned, but for some reasons inmates think otherwise, those who do - don't keep this thought for long.[/say]")
|
||||||
|
sayn("[say=issix]That's probably everything you need to know about me. \nAlso, considering we didn't start on the wrong foot, you have my permission to speak with my pets. \nNow, please find some other business to attend to, unless you need something else of me?[/say]")
|
||||||
|
addButton("Heaven?", "Did you hear that correctly?", "heaven")
|
||||||
|
addButton("Issix", "Learn more about Issix", "issixdetails")
|
||||||
|
addButton("Pets", "Who are the pets?", "pets")
|
||||||
|
|
||||||
|
if(state == "heaven"):
|
||||||
|
saynn("[say=pc]Did you just call this prison a piece of heaven? Why?[/say]")
|
||||||
|
saynn("[say=issix]Because it is. I don't understand why everyone says it's not.[/say]")
|
||||||
|
saynn("[say=pc]Because it's... A prison? It's a middle-of-nothing rock that belongs to some mega rich empire. Because we have collars on our necks.[/say]")
|
||||||
|
saynn("[say=issix]You are looking at it all wrong [/say]") # TODO
|
||||||
|
addButton("Continue", "Ask about something else", "name")
|
||||||
|
|
||||||
|
if(state == "pets"):
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Pets_Introduced", true)
|
||||||
|
saynn("[say=pc]So... Who are your pets exactly?[/say]")
|
||||||
|
saynn("[say=issix]Curious about my treasured pearls, aren't you? Oh, I'm happy to introduce you, people usually talk only with me, but I feel like they could use some social interactions with someone else than myself and themselves.[/say]")
|
||||||
|
sayn("[say=issix]This kitty here is my very first pet, they've recognized me as their master shortly after I came here. They were very spooked and lost in here, still unsure what exactly they did to end up in this place. I gave them meaning, they repay me by being an excellent pet. Azazel, say hi.[/say]")
|
||||||
|
saynn("Issix looks expectantly at Azazel - a fairly regular looking feline, he is wearing an lilac uniform. Until now he was curled and seemingly asleep, even though his ears were perking up whenever his master spoke. After hearing his master's voice speak his name however his head immediately went up, and along with it the rest of his body. He stood on his fours and turned towards you.")
|
||||||
|
saynn("[say=azazel]Hello... Stranger.[/say]")
|
||||||
|
saynn("Azazel said with reservation. He looked away from you for a second to look at face of his master, whos face didn't lose his expectant look. Turning back to you he hesitently rubbed his cheek on your leg and collapsed onto his blanket again, making sure to take a last look at his master before closing his eyelids and presumably continuing his slumber.")
|
||||||
|
saynn("[say=issix]Good kitty. He is the best breeding bitch in this entire institution, that's what nature made him to be. He doesn't mind petting his head, if that's something you'd like, otherwise we can move on.[/say]")
|
||||||
|
saynn("In corner of your eye you see Azazel's faint smile in reaction to Issix's comment.")
|
||||||
|
addButton("Pet Azazel", "Pet that kitty!", "hiisipet")
|
||||||
|
addButton("Move on", "Learn about second pet", "hiisi")
|
||||||
|
|
||||||
|
if(state in ["hiisipet", "hiisi"]):
|
||||||
|
if(state == "hiisipet"):
|
||||||
|
saynn("You crouch and gently pet Azazel's head. You can feel very delicate vibrations produced by the kitten. He doesn't open his eyes, but it's clear cat enjoys this treatment.")
|
||||||
|
sayn("Master looks at this interaction with interest and sincere smile on his face.")
|
||||||
|
saynn("After a short moment you stand back up and look at pet on your right.")
|
||||||
|
saynn("[say=issix]This one here is Hiisi. He is my lastest, which doesn't mean I love him any different. This puppy was actually one of the more recognized troublemakers around this prison.\nHe's been getting into pants of everyone against their own will, it got to a point where even guards started getting concerned and wanted to take action. At one point he even attempted to breed my precious kitty Azazel, do you remember that Hiisi?[/say]") # TODO
|
||||||
|
saynn("Hissi looks at his master and shakes his head.")
|
||||||
|
saynn("[say=issix]Right, of course you don't, hah. But look at him now, pristine puppy boy! He love his belly rubs and stays out of the trouble! ... Well, mostly. Anyways, despite his troubled past, he agreed to join me and became my pup! Hiisi cmon, welcome our guest, give {pc.him} a sniff!")
|
||||||
|
saynn("[say=hiisi]" + GM.pc.getName() + " isn't it? Umm... Hi.[/say]")
|
||||||
|
saynn("{hiisi.name} licks your leg, leaving a bit of saliva on your fur.") # TODO Fur/skin
|
||||||
|
saynn("[say=issix]I apologize for my pets, they aren't used to longer conversations with strangers. They've been through a lot and... *sigh* Anyways, Lamia! Lamia is a fox breed, he doesn't speak. He communicates with drawings. He is getting pretty good at them. He also doesn't seem to mind being mute, quite to the opposite, he seems excited that his... Speech is in form of images.[/say]")
|
||||||
|
saynn("You can see Lamia drawing something, Issix gives you a signal to just wait a second. After a minute, Lamia presents you with a drawing, smiling.")
|
||||||
|
saynn("The drawing shows a pretty good representation of yourself, on fours, while leashed by a figure that you can only infer to be Issix. There is Lamia, Azazel and Hiisi hanging around there as well besides you. Issix laughs when he sees the drawing.")
|
||||||
|
saynn("[say=issix]Lamia, please, don't scare our guest, not every friendly face you see must become my pet. You selfish little rascal.[/say]")
|
||||||
|
saynn("While Issix's words seem playful, Lamia still is saddened by his Master's words.")
|
||||||
|
saynn("[say=issix]Anyways, those are the three of my beloved pets. ")
|
||||||
|
addButton("Back", "Turn to other matters", "talk")
|
||||||
|
|
||||||
|
if(state == "lamia"):
|
||||||
|
saynn("You take a step towards Lamia to give him a pawshake. He sits on a blanket, next to him a stack of empty paper sheets, and a smaller pile of ")
|
||||||
|
|
||||||
|
if(state == "issixdetails"):
|
||||||
|
saynn("You ask Issix about himself. He looks at you with intensity, studying your face.")
|
||||||
|
saynn("[say=issix]Honestly, don't think there is much for you to know morsel. But sure, I can entertain you a little.[/say]")
|
||||||
|
saynn("Issix relaxes, his shoulders straight, he puts one leg on another, in crossed position.")
|
||||||
|
saynn("[say=issix]I wanted to be here. My position offered me plenty of opportunities, everyone had their own expectations of everyone else's needs and wishes. I gave them all a big middle finger.\nThrough my connections I became an inmate. Nobody convicted me of any crime, like everyone else in here. I simply used my connections at AlphaCorp to be here. To gain my paradise.[/say]")
|
||||||
|
if (GM.pc.getPersonality().getStat(PersonalityStat.Coward) < -0.2):
|
||||||
|
saynn("[say=pc]You are craz-[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=pc]That's... Cr-[/say]")
|
||||||
|
saynn("[say=issix]Crazy. I know. I've heard it a million times, thanks.[/say]")
|
||||||
|
saynn("He rolls his eyes and sips water from the glass nearby.")
|
||||||
|
saynn("[say=issix]Anyways, this short story will have to do, morsel. I've talked enough about myself.[/say]")
|
||||||
|
addButton("Back", "If he says so", "name")
|
||||||
|
|
||||||
|
if(state == "pets2"):
|
||||||
|
playAnimation(StageScene.Duo, "stand", {npc="issix", npcAction="sit"})
|
||||||
|
pass
|
||||||
|
|
||||||
|
if(state == "join"):
|
||||||
|
var score = calculateHaremScore()
|
||||||
|
var score_explored = GM.main.getModuleFlag("IssixModule", "Score_Explored")
|
||||||
|
if(GM.pc.getPersonality().getStat(PersonalityStat.Subby) < 0):
|
||||||
|
saynn("[say=issix]Look, you are lovely and all that, but I don't think you are the right fit. I require absolute obedience. Once you submit to me there is no going back, you become MY treasured pet forever. Those three? They know their place, they are ready to be mated whenever I feel like doing so. You? You strike me as leader - like myself. Why not just be business partners in here eh? I think you are entirely capable of gathering your own pets.[/say]")
|
||||||
|
elif(score > 89 and GM.main.getModuleFlag("IssixModule", "Quest_Status") > 1):
|
||||||
|
pass
|
||||||
|
elif(score > 75 and score_explored < 9999):
|
||||||
|
playAnimation(StageScene.Duo, "stand", {npc="issix", npcAction="stand"})
|
||||||
|
saynn("You mention the intention to join his harem of pets, lust in your eyes. He looks at you and starts grinning.")
|
||||||
|
saynn("[say=issix]Mmmmmm. You are almost done morsel. Not mine yet, but so close... I really like you. I really really like you. I think you have all of the qualities I'm looking for in a pet but...[/say]")
|
||||||
|
saynn("He looks away, and looks... Concerned? No. In deep thought rather.")
|
||||||
|
saynn("[say=hiisi]Is something the matter, master?[/say]")
|
||||||
|
saynn("[say=issix]No Hiisi, you don't have to...[/say]")
|
||||||
|
saynn("[say=azazel]Will "+GM.pc.getName()+" join us, master?[/say]")
|
||||||
|
saynn("Issix stands up, pulling on both Azazel's and Hiisi's leashes.")
|
||||||
|
saynn("[say=issix]You two, do not concern yourself. "+GM.pc.getName()+" here...[/say]")
|
||||||
|
saynn("He looks at you, his black eyes again staring into yours. His face is neutral, still hazed by wandering thoughts.")
|
||||||
|
saynn("[say=issix]... Is interested, but he still needs to prove he is worthy to be owned by your master.[/say]")
|
||||||
|
saynn("He comes closer to you, leashes in his paw, eyes on you. There are only two steps separating you and him, but with each his tall posture makes you feel as if he is getting taller and taller, or perhaps you smaller and smaller. Eventually you can feel his body heat on yours, he is standing just in front of you, a peanut away. Your face meets his chest, you don't dare to look him in the face.\nHis paw reaches your chin to correct that. You see his black eyes again, looking down on you, as if you were a little feral kitten looking at big human. Insignificant. Tiny. His face has a serious expression.")
|
||||||
|
saynn("[say=issix]Tell me "+GM.pc.getName()+", do you want to be my pet or do you want to stay a stray kitten?[/say]") # TODO depending on species
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Score_Explored", score)
|
||||||
|
addButton("Y-your pet", "Submit to Issix", "quest")
|
||||||
|
if (GM.pc.getPersonality().getStat(PersonalityStat.Subby) < 0.3) and GM.pc.getLust() < 30 and !GM.pc.isWearingHypnovisor() and !GM.pc.hasEffect(StatusEffect.Suggestible) and !GM.pc.hasEffect(StatusEffect.UnderHypnosis): # Good luck lol
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 0)
|
||||||
|
setModuleFlag("IssixModule", "Quest_Rejected_By_Issix", 1)
|
||||||
|
addButton("Stray kitten", "You don't want to be his kitten", "quest")
|
||||||
|
else:
|
||||||
|
addDisabledButton("Stray kitten", "Your mind doesn't allow you to make this choice")
|
||||||
|
elif(score > 45 and score_explored < 76):
|
||||||
|
playAnimation(StageScene.Duo, "stand", {npc="issix", npcAction="stand"})
|
||||||
|
saynn("[say=issix]Heh, interesting ask. It's still a no, though I have to admit, I do see some potential in here.[/say]")
|
||||||
|
if (GM.pc.isBlindfolded()):
|
||||||
|
saynn("Issix stands up, takes a step towards you, grabs your blindfold, pulls it higher, grabs you by your chin to look you straight in your eyes.")
|
||||||
|
elif (GM.pc.isWearingHypnovisor()):
|
||||||
|
saynn("[say=issix]Heh, I see you already come with the equipment. Let me take a look at you.[/say]")
|
||||||
|
saynn("Issix stands up, takes a step towards you, pulls you forward, grabs your chin, pulls your head higher to face his head on top of his tall body. You barely see his eyes through your visor, which continues to massage your brain to obey every whim of every alpha in the prison.")
|
||||||
|
else:
|
||||||
|
saynn("Issix stands up, takes a step towards you, grabs you by your chin without asking and looks you straight into your eyes.")
|
||||||
|
GM.pc.addLust(30)
|
||||||
|
sayn("The moment takes forever, just as his gaze pierces through your eyes, you also observe his black, void pupils and irises. For a moment, it feels as if his pupil turned bright red. Could be just a play of light or something... But then... There is allure in those eyes. Something dangerous, yet enticing. You feel primal, bare. With every moment of this eye contact you feel less in control, weaker, inferior. Your knees start to bend ever so slightly before Issix stedies your head again and takes his paws from your chin.")
|
||||||
|
if (GM.pc.isBlindfolded()):
|
||||||
|
sayn("He fixes your blindfold to be back on your eyes.")
|
||||||
|
saynn("[say=issix]Yess, you have the potential, whether you'll use it or not is up to you.[/say]")
|
||||||
|
saynn("Issix goes back to his chair and sits, staring at you with a grin on his face.")
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Score_Explored", score)
|
||||||
|
elif(score > 25 and score_explored < 46):
|
||||||
|
saynn("[say=issix]I gotta say, I did hear of a certain "+GM.pc.getName()+" around doing some whoring, but that's about it. You must understand, my pets must have prior experience and right spirit that I can exploit. You seem like a small fish. So nah, my apologies but I'm simply not interested in you at the moment.[/say]")
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Score_Explored", score)
|
||||||
|
elif(score_explored > 1):
|
||||||
|
saynn("[say=issix]Hmm. you still look mostly the same, still unworthy.[/say]")
|
||||||
|
else:
|
||||||
|
saynn("[say=issix]Look, you are lovely and all that, but I don't think you have what it takes to join my other pets. I require absolute obedience and sexual experience. Once you submit to me there is no going back, you become MY treasured pet forever. Those three? They know their place, they are ready to be mated whenever I feel like doing so. They obey my every single command. I just don't see that in you, sorry.[/say]")
|
||||||
|
addButton("Back", "Maybe another time then...", "pets2")
|
||||||
|
|
||||||
|
if(state == "quest"):
|
||||||
|
playAnimation(StageScene.Duo, "stand", {npc="issix", npcAction="sit"})
|
||||||
|
if (GM.main.getModuleFlag("IssixModule", "Quest_Status") == -1):
|
||||||
|
saynn("[say=issix]I see... Disappointing, but it's your choice and I respect that.[/say]")
|
||||||
|
saynn("He looks at you some more, he takes away his paw from your chin, turns around and sits on his chair. A serious and... Disappointed look on his face.")
|
||||||
|
saynn("[say=issix]I'll give you one more chance if you change your mind. But this one will be final. My pets trust me, and they don't say no to me.[/say]")
|
||||||
|
addButton("Leave", "Take your leave", "endthescene")
|
||||||
|
else:
|
||||||
|
saynn("He smiles briefly.")
|
||||||
|
saynn("[say=issix]Very well.[/say]")
|
||||||
|
saynn("He puts his paws on sides of your head and starts scratching you behind your ears. Immediately you feel... Comfortable. Loved. Protected. You closed your eyes in bliss. And then he... Stops, the feeling of his paws is filled with void. You feel empty, unfulfilled. You open your eyes and meet his eyes staring at you again from the above. He looks at you expectendly. You aren't sure what to do, you don't want to fail your Master, but... His black eyes speak to you, yes. They want you to open your mouth. You don't even realize when your mouth opens. You didn't do that by yourself, did you?")
|
||||||
|
sayn("He takes your tongue in between his paw fingers gently, pulls it out a little. He opens his mouth and he spits. Spit lands right on your tongue, with incredible precision right in the middle. He does it again, using the fact your mouth is still open. It lands deeper inside your mount. He pulls his paw fingers from your tongue and uses his two fingers to pressure your chin from below, giving you a signal to close your mouth.")
|
||||||
|
sayn("You comply. There is nothing other than his eyes staring deep at you, his will is your will. His spit doesn't feel particularly different from yours, perhaps you can pick up some flavor or two, but it's more dignified flavor than one of cum that you are so used to. You keep the spit inside your mouth for a bit, tasting it, feeling it, connecting with its owner. And you swallow it, with a visible gulp.")
|
||||||
|
saynn("Issix smiles. He ruffles your " + ("hair" if GM.pc.hasHair() else "ears") + " with his paws.")
|
||||||
|
saynn("[say=issix]Good pet.\nNow, to be MY pet you'll have to prove yourself further. Besides the fact I want my pets to be all famous in this little heaven of ours, I want to make sure they follow my orders. For you my dear, I have a few little tasks, nothing you can't do, I'm sure, but it will be the proof I need you can become MY pet.[/say]")
|
||||||
|
saynn("He turns around and moves towards his chair, where he sits.")
|
||||||
|
saynn("[say=issix]Your first task will require... Trust. In me. Tell me, do you trust me?[/say]")
|
||||||
|
addButton("Yes", "Say you trust Issix", "questresponseyes")
|
||||||
|
addButton("No", "Say you don't trust Issix", "questresponseno")
|
||||||
|
|
||||||
|
if(state in ["questresponseyes", "questresponseno"]):
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 1)
|
||||||
|
if(state=="questresponseyes"):
|
||||||
|
saynn("Issix grins after hearing the answer.")
|
||||||
|
sayn("[say=issix]Excellent. Now, what I want to do is verify your trust, and gain some of my own trust in you. You must be acutely aware how words, especially in this place"+ (" and especially coming from a red like yourself" if GM.pc.getInmateType() == InmateType.HighSec else "") + " can be deceptive.[/say]")
|
||||||
|
if(state=="questresponseno"):
|
||||||
|
saynn("Issix looks at you, studying you.")
|
||||||
|
saynn("[say=issix]Curious. Not the answer I anticipated. It's fine, we can work on that.[/say]")
|
||||||
|
saynn("[say=issix]For your first task, you'll need something I'm sure you are now well acquainted with - a blindfold. After all, what is the better tool to test someone's trust than tell them to do something stupid blind?[/say]")
|
||||||
|
saynn("He chuckles")
|
||||||
|
saynn("[say=issix]You will have to use your little head a bit too before you put one. I'll give you a map, I've drawn it myself, but it has to do. I won't spoil your fun and tell you what it shows, I'm sure you are clever enough to figure it out by yourself, after all, this prison isn't thaaat big, right?[/say]")
|
||||||
|
saynn("He winks at you, and lets out a chuckle.")
|
||||||
|
saynn("[say=issix]Go there, blind yourself, go through a wall and bring me the goods. The number you'll need is 84. And morsel, don't hang in there for too long, trust me on that. Don't worry, I'll know if you succeed or not, don't try to cheat. Remember, trust is the key.[/say]")
|
||||||
|
addButton("Leave", "Take your leave", "endthescene")
|
||||||
|
|
||||||
|
if(state == "quest1bonk"):
|
||||||
|
saynn("Before you even start speaking Issix starts laughing maniacally, catching you off guard.")
|
||||||
|
saynn("[say=issix]Oh Morsel[/say]")
|
||||||
|
saynn("He almost chokes with laughter.")
|
||||||
|
saynn("[say=issix]I've been told you- you've had a[/say]")
|
||||||
|
saynn("He barely breathes thanks to constant laughter.")
|
||||||
|
saynn("[say=issix]certain mee- meeting with a wall.[/say]")
|
||||||
|
saynn("He starts recovering from the laughter.")
|
||||||
|
saynn("[say=issix]I'm sorry, it was just... I've seen the clip, little birdie showed me it, told me I'd enjoy, and oh morsel, it made my week.[/say]")
|
||||||
|
saynn("[say=pc]W-was it all a joke then? Have I passed your trust exercise?[/say]")
|
||||||
|
saynn("[say=issix]Haha, don't get ahead of yourself there. I just didn't mention one very important fact, honestly didn't anticipate you trying to be sneaky.[/say]")
|
||||||
|
saynn("[say=pc]What do you mean?[/say]")
|
||||||
|
saynn("[say=issix]I mean that you weren't supposed to do that at night! I appreciate the attempt, but the mechanism closes shut at night.[/say]")
|
||||||
|
saynn("That... Would make sense. Still unsure what mechanism Issix is referring to, but its true that the prison isn't exactly the same when the night comes, and some places are simply locked. "+("Your tail wraps around you in embarassment" if GM.pc.hasTail() else "You blush in embarassment")+".")
|
||||||
|
saynn("[say=issix]It's fine pet, you didn't know. Go there today and do the same thing, just perhaps not during the night, okey?[/say]")
|
||||||
|
addButton("Leave", "Nod and leave embarassed", "endthescene")
|
||||||
|
|
||||||
|
if(state == "quest1turn"):
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Quest_Status", 4)
|
||||||
|
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", true)
|
||||||
|
saynn("[say=pc]Is... This what you wanted?[/say]")
|
||||||
|
saynn("You said with uncertainty in your voice, presenting Issix with a packet of gumball.\nIssix looks at you elated, he claps his paws.")
|
||||||
|
saynn("[say=issix]Yes, YES. This is exactly what I needed, pet.[/say]")
|
||||||
|
saynn("He stands up, and takes the packet of gum from your paw.")
|
||||||
|
saynn("He opens one end of it and immediately pops one of the gums in his mouth. He goes back to sit on his chair.")
|
||||||
|
saynn("[say=issix]You know, a lot of goods in here are generally unavailable to inmates. I knew what I were getting into arriving in here, and didn't really care about most of favorite dishes or products. But this gum? I can't live without it. I were able to make sure it arrives here, in this prison just for myself regularly. You wouldn't believe just how much I had to work to have it delivered, it's not exactly the most popular destination in the galaxy. I have a contact who drops it always in same place where you got it from.[/say]")
|
||||||
|
saynn("He savours the taste of gum, closing his eyes and resting his head on chair's headrest.")
|
||||||
|
saynn("[say=issix]Ahhhhhh. So good. I've been chewing this brand since I were little, out of all things, it never gets old.[/say]")
|
||||||
|
saynn("He looks back at you.")
|
||||||
|
if GM.main.getModuleFlag("IssixModule", "Quest_Bonked") == true:
|
||||||
|
saynn("[say=issix]I assume no more, akhem, ”wall incidents”?[/say]")
|
||||||
|
saynn("He grins")
|
||||||
|
saynn("[say=issix]And with just that you've passed my first test. Congratulations! I knew you could do it.[/say]")
|
||||||
|
saynn("[say=issix]That would be it for today. For your next time I'll have to prepare a little. I should have something for you tomorrow, so please come then.[/say]")
|
||||||
|
addButton("Alright", "Leave", "endthescene")
|
||||||
|
# Which body part you hold dearest?
|
||||||
|
# 2 questions based on stories from Tavi, and Rahi, using their flags to phrase the questions
|
||||||
|
# Trolley problem?
|
||||||
|
# Favorite species
|
||||||
|
#
|
||||||
|
|
||||||
|
func calculateHaremScore():
|
||||||
|
var score = 0
|
||||||
|
score += GM.pc.getPersonality().getStat("Subby")*10 # -10 - 10
|
||||||
|
score += GM.pc.getReputation().getRepLevel(RepStat.Whore)*10 # 0 - 90
|
||||||
|
return int(score) # -10 - 100
|
||||||
|
|
||||||
|
func _react(_action: String, _args):
|
||||||
|
if(_action == "endthescene"):
|
||||||
|
endScene()
|
||||||
|
return
|
||||||
|
|
||||||
|
setState(_action)
|
|
@ -1,8 +1,8 @@
|
||||||
extends WorldEditBase
|
extends WorldEditBase
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
id = "PierreWorldEdit"
|
id = "IssixWorldEdit"
|
||||||
|
|
||||||
func apply(world: GameWorld):
|
func apply(world: GameWorld):
|
||||||
if(getFlag("PierreModule.Pierre_Introduced")):
|
if(getFlag("IssixModule.Issix_Introduced")):
|
||||||
world.setRoomSprite("hall_ne_corner", RoomStuff.RoomSprite.PERSON)
|
world.setRoomSprite("hall_ne_corner", RoomStuff.RoomSprite.PERSON)
|
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/catnip.png-8e8639f539d499b22a07b1ce8bee6c82.stex"
|
path="res://.import/catnip.png-225c9de9d66fa9225bcc1239ca3cabf0.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Modules/PierreModule/Items/catnip.png"
|
source_file="res://Modules/IssixModule/Items/catnip.png"
|
||||||
dest_files=[ "res://.import/catnip.png-8e8639f539d499b22a07b1ce8bee6c82.stex" ]
|
dest_files=[ "res://.import/catnip.png-225c9de9d66fa9225bcc1239ca3cabf0.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/cookie.png-336e1b6e247a83a565bb339a213d5e2c.stex"
|
path="res://.import/cookie.png-bc8b9cb3712e5314bb44b4aeb129e69d.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Modules/PierreModule/Items/cookie.png"
|
source_file="res://Modules/IssixModule/Items/cookie.png"
|
||||||
dest_files=[ "res://.import/cookie.png-336e1b6e247a83a565bb339a213d5e2c.stex" ]
|
dest_files=[ "res://.import/cookie.png-bc8b9cb3712e5314bb44b4aeb129e69d.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
Items/issixsmap.png
Normal file
BIN
Items/issixsmap.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
35
Items/issixsmap.png.import
Normal file
35
Items/issixsmap.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/issixsmap.png-69be316bd4e4ee3cbbea8dd1d419b13b.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Modules/IssixModule/Items/issixsmap.png"
|
||||||
|
dest_files=[ "res://.import/issixsmap.png-69be316bd4e4ee3cbbea8dd1d419b13b.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=0
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=false
|
||||||
|
svg/scale=1.0
|
|
@ -1,10 +1,10 @@
|
||||||
extends ItemBase
|
extends ItemBase
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
id = "PierresMap"
|
id = "IssixsMap"
|
||||||
|
|
||||||
func getVisibleName():
|
func getVisibleName():
|
||||||
return "Pierre's Map"
|
return "Issix's Map"
|
||||||
|
|
||||||
func getDescription():
|
func getDescription():
|
||||||
return "A map showing directinons"
|
return "A map showing directinons"
|
||||||
|
@ -13,7 +13,7 @@ func canUseInCombat():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
func useInCombat(_attacker:Character, _receiver):
|
func useInCombat(_attacker:Character, _receiver):
|
||||||
return "Map shows the following:\n\n[font=res://Fonts/smallconsolefont.tres]"+Util.readFile("res://Modules/PierreModule/Misc/asciimapsmall.txt")+"[/font]"
|
return "Map shows the following:\n\n[font=res://Fonts/smallconsolefont.tres]"+Util.readFile("res://Modules/IssixModule/Misc/asciimapsmall.txt")+"[/font]"
|
||||||
|
|
||||||
func getPossibleActions():
|
func getPossibleActions():
|
||||||
if(true): # We really shouldn't assume the item is being used by a player character, but sadly game does not give us context for the item user :(
|
if(true): # We really shouldn't assume the item is being used by a player character, but sadly game does not give us context for the item user :(
|
||||||
|
@ -59,4 +59,4 @@ func loadData(data):
|
||||||
.loadData(data)
|
.loadData(data)
|
||||||
|
|
||||||
func getInventoryImage():
|
func getInventoryImage():
|
||||||
return "res://Modules/PierreModule/Items/pierresmap.png"
|
return "res://Modules/IssixModule/Items/issixsmap.png"
|
||||||
|
|
|
@ -8,7 +8,7 @@ func registerTriggers(es):
|
||||||
es.addEventCheck(self, "ElizaBusy")
|
es.addEventCheck(self, "ElizaBusy")
|
||||||
|
|
||||||
func react(_triggerID, _args):
|
func react(_triggerID, _args):
|
||||||
if(getModuleFlag("PierreModule", "Quest_Status") == 5 and getModuleFlag("PierreModule", "Quest_Wait_Another_Day") == true):
|
if(getModuleFlag("IssixModule", "Quest_Status") == 5 and getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == true):
|
||||||
runScene("MedicalLamiaPeekScene")
|
runScene("MedicalLamiaPeekScene")
|
||||||
return true
|
return true
|
||||||
# I don't have any other way of preventing the player from entiering the medical room so we do some forcy scene on them, they would never see that coming!
|
# I don't have any other way of preventing the player from entiering the medical room so we do some forcy scene on them, they would never see that coming!
|
||||||
|
@ -23,6 +23,6 @@ func onButton(_method, _args):
|
||||||
if(_method == "main"):
|
if(_method == "main"):
|
||||||
runScene("MedicalLamiaPeekScene")
|
runScene("MedicalLamiaPeekScene")
|
||||||
|
|
||||||
func eventCheck(_checkID, _args = []): # sorry player, you can't heal, Eliza is occupied by Pierre's pet
|
func eventCheck(_checkID, _args = []): # sorry player, you can't heal, Eliza is occupied by Issix's pet
|
||||||
if(_checkID == "ElizaBusy" and getModuleFlag("PierreModule", "Quest_Status") == 5 and getModuleFlag("PierreModule", "Quest_Wait_Another_Day") == true):
|
if(_checkID == "ElizaBusy" and getModuleFlag("IssixModule", "Quest_Status") == 5 and getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == true):
|
||||||
return {busy=true}
|
return {busy=true}
|
||||||
|
|
|
@ -10,7 +10,7 @@ func _init():
|
||||||
func _run():
|
func _run():
|
||||||
if(state == ""):
|
if(state == ""):
|
||||||
|
|
||||||
if (getModuleFlag("PierreModule", "Medical_Peeked") == null):
|
if (getModuleFlag("IssixModule", "Medical_Peeked") == null):
|
||||||
saynn("You can definietely hear something happening in the hospital room north...")
|
saynn("You can definietely hear something happening in the hospital room north...")
|
||||||
addButtonAt(3, "Investigate", "Try to see if you can hear something", "eavesdrop")
|
addButtonAt(3, "Investigate", "Try to see if you can hear something", "eavesdrop")
|
||||||
else:
|
else:
|
||||||
|
@ -23,25 +23,25 @@ func _run():
|
||||||
# just force a scene of them Mr White yo
|
# just force a scene of them Mr White yo
|
||||||
|
|
||||||
if(state == "eavesdrop"):
|
if(state == "eavesdrop"):
|
||||||
setModuleFlag("PierreModule", "Medical_Peeked", true)
|
setModuleFlag("IssixModule", "Medical_Peeked", true)
|
||||||
saynn("There are a couple of voices you can hear throuh the doors, none of them are loud enough to make out full sentences, but from the tone you can at least make out who is speaking.")
|
saynn("There are a couple of voices you can hear throuh the doors, none of them are loud enough to make out full sentences, but from the tone you can at least make out who is speaking.")
|
||||||
saynn("[say=pierre]- long ---? --- pain?[/say]")
|
saynn("[say=issix]- long ---? --- pain?[/say]")
|
||||||
saynn("[say=eliza]-- tell, --- midnight. We've -- anesthetic -- shouldn't feel any -. ------ nutrients --, --- needs - rest.[/say]")
|
saynn("[say=eliza]-- tell, --- midnight. We've -- anesthetic -- shouldn't feel any -. ------ nutrients --, --- needs - rest.[/say]")
|
||||||
saynn("[say=pierre]-- believe --- again, -- sake![/say]")
|
saynn("[say=issix]-- believe --- again, -- sake![/say]")
|
||||||
saynn("There is a sounds of someone banging on something.")
|
saynn("There is a sounds of someone banging on something.")
|
||||||
saynn("[say=eliza]-- calm, Pierre, --- fine. That -, -- remove - parasite, -- integrated --- at --. -- to live --, - just - Sacrifices.[/say]")
|
saynn("[say=eliza]-- calm, Issix, --- fine. That -, -- remove - parasite, -- integrated --- at --. -- to live --, - just - Sacrifices.[/say]")
|
||||||
saynn("[say=pierre]-- told me -- last --, --- nothing --- done?[/say]")
|
saynn("[say=issix]-- told me -- last --, --- nothing --- done?[/say]")
|
||||||
saynn("[say=eliza]-- AlphaCorp --- the inmate ---... - sorry.[/say]")
|
saynn("[say=eliza]-- AlphaCorp --- the inmate ---... - sorry.[/say]")
|
||||||
saynn("[say=azazel]---, I - Lamia ---.[/say]")
|
saynn("[say=azazel]---, I - Lamia ---.[/say]")
|
||||||
saynn("[say=hiisi]--, Master, ---- be okey.[/say]")
|
saynn("[say=hiisi]--, Master, ---- be okey.[/say]")
|
||||||
saynn("[say=pierre]... Thank -, pets. --[/say]")
|
saynn("[say=issix]... Thank -, pets. --[/say]")
|
||||||
saynn("Slight weeping can be heard from behind the doors.")
|
saynn("Slight weeping can be heard from behind the doors.")
|
||||||
saynn("[say=pierre]--- care ----, I can't lose ---, --? ---- together.[/say]")
|
saynn("[say=issix]--- care ----, I can't lose ---, --? ---- together.[/say]")
|
||||||
saynn("[say=azazel]-- Master! ------![/say]")
|
saynn("[say=azazel]-- Master! ------![/say]")
|
||||||
saynn("[say=hiisi]No ----![/say]")
|
saynn("[say=hiisi]No ----![/say]")
|
||||||
saynn("[say=pierre]--. wait - Lamia --.[/say]")
|
saynn("[say=issix]--. wait - Lamia --.[/say]")
|
||||||
saynn("[say=eliza]-- stay ----, -- observe --.[/say]")
|
saynn("[say=eliza]-- stay ----, -- observe --.[/say]")
|
||||||
saynn("[say=pierre]Thank -, -.[/say]")
|
saynn("[say=issix]Thank -, -.[/say]")
|
||||||
saynn("The voices are now quiet, you think the conversation ended.")
|
saynn("The voices are now quiet, you think the conversation ended.")
|
||||||
addButton("Leave", "This seems to be over now", "")
|
addButton("Leave", "This seems to be over now", "")
|
||||||
|
|
||||||
|
|
57
Module.gd
57
Module.gd
|
@ -1,12 +1,13 @@
|
||||||
extends Module
|
extends Module
|
||||||
class_name PierreModule
|
class_name IssixModule
|
||||||
|
|
||||||
func getFlags():
|
func getFlags():
|
||||||
return {
|
return {
|
||||||
"Pierre_Introduced": flag(FlagType.Bool),
|
"Issix_Introduced": flag(FlagType.Bool),
|
||||||
"Pets_Introduced": flag(FlagType.Bool),
|
"Pets_Introduced": flag(FlagType.Bool),
|
||||||
"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),
|
||||||
"Azazel_Catnip_talked": flag(FlagType.Bool),
|
"Azazel_Catnip_talked": flag(FlagType.Bool),
|
||||||
"Azazel_Catnip_found": flag(FlagType.Bool),
|
"Azazel_Catnip_found": flag(FlagType.Bool),
|
||||||
"Azazel_Catnip_taken_today": flag(FlagType.Bool),
|
"Azazel_Catnip_taken_today": flag(FlagType.Bool),
|
||||||
|
@ -26,54 +27,54 @@ func getFlags():
|
||||||
"QuestionnaireQ8": flag(FlagType.Text),
|
"QuestionnaireQ8": flag(FlagType.Text),
|
||||||
"QuestionnaireQ9": flag(FlagType.Bool),
|
"QuestionnaireQ9": flag(FlagType.Bool),
|
||||||
"QuestionnaireQ10": flag(FlagType.Number),
|
"QuestionnaireQ10": flag(FlagType.Number),
|
||||||
"QuestionnaireQ11": flag(FlagType.Bool),
|
"QuestionnaireQ11": flag(FlagType.Bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func _init():
|
func _init():
|
||||||
id = "PierreModule"
|
id = "IssixModule"
|
||||||
author = "Frisk"
|
author = "Frisk"
|
||||||
|
|
||||||
events = [
|
events = [
|
||||||
"res://Modules/PierreModule/EventTileOnEnter.gd",
|
"res://Modules/IssixModule/EventTileOnEnter.gd",
|
||||||
"res://Modules/PierreModule/GreenhouseCatnip.gd",
|
"res://Modules/IssixModule/GreenhouseCatnip.gd",
|
||||||
"res://Modules/PierreModule/EngRoomClosetEvent.gd",
|
"res://Modules/IssixModule/EngRoomClosetEvent.gd",
|
||||||
"res://Modules/PierreModule/PierreQuestionnaireEvent.gd",
|
"res://Modules/IssixModule/IssixQuestionnaireEvent.gd",
|
||||||
"res://Modules/PierreModule/MedicalPeekEvent.gd"
|
"res://Modules/IssixModule/MedicalPeekEvent.gd"
|
||||||
]
|
]
|
||||||
|
|
||||||
scenes = [
|
scenes = [
|
||||||
"res://Modules/PierreModule/PierreTalkMain.gd",
|
"res://Modules/IssixModule/IssixTalkMain.gd",
|
||||||
"res://Modules/PierreModule/GreenhouseCatnipStealScene.gd",
|
"res://Modules/IssixModule/GreenhouseCatnipStealScene.gd",
|
||||||
"res://Modules/PierreModule/PetsTalkMain.gd",
|
"res://Modules/IssixModule/PetsTalkMain.gd",
|
||||||
"res://Modules/PierreModule/EngRoomScene.gd",
|
"res://Modules/IssixModule/EngRoomScene.gd",
|
||||||
"res://Modules/PierreModule/PierreQuestionnaireScene.gd",
|
"res://Modules/IssixModule/IssixQuestionnaireScene.gd",
|
||||||
"res://Modules/PierreModule/NoPetsTalkMain.gd",
|
"res://Modules/IssixModule/NoPetsTalkMain.gd",
|
||||||
"res://Modules/PierreModule/MedicalPeekScene.gd"
|
"res://Modules/IssixModule/MedicalPeekScene.gd"
|
||||||
]
|
]
|
||||||
|
|
||||||
characters = [
|
characters = [
|
||||||
"res://Modules/PierreModule/PierreCharacter.gd",
|
"res://Modules/IssixModule/IssixCharacter.gd",
|
||||||
"res://Modules/PierreModule/LamiaCharacter.gd",
|
"res://Modules/IssixModule/LamiaCharacter.gd",
|
||||||
"res://Modules/PierreModule/HiisiCharacter.gd",
|
"res://Modules/IssixModule/HiisiCharacter.gd",
|
||||||
"res://Modules/PierreModule/AzazelCharacter.gd"
|
"res://Modules/IssixModule/AzazelCharacter.gd"
|
||||||
]
|
]
|
||||||
|
|
||||||
worldEdits = [
|
worldEdits = [
|
||||||
"res://Modules/PierreModule/PierreWorldEdit.gd"
|
"res://Modules/IssixModule/IssixWorldEdit.gd"
|
||||||
]
|
]
|
||||||
|
|
||||||
items = [
|
items = [
|
||||||
"res://Modules/PierreModule/CatnipItem.gd",
|
"res://Modules/IssixModule/CatnipItem.gd",
|
||||||
"res://Modules/PierreModule/MapItem.gd",
|
"res://Modules/IssixModule/MapItem.gd",
|
||||||
"res://Modules/PierreModule/CookieItem.gd" # I just felt like this game needs more variety in items, even if by themselves they don't do much
|
"res://Modules/IssixModule/CookieItem.gd" # I just felt like this game needs more variety in items, even if by themselves they don't do much
|
||||||
]
|
]
|
||||||
|
|
||||||
quests = [
|
quests = [
|
||||||
"res://Modules/PierreModule/PierresPetQuest.gd"
|
"res://Modules/IssixModule/IssixPetQuest.gd"
|
||||||
]
|
]
|
||||||
|
|
||||||
func resetFlagsOnNewDay():
|
func resetFlagsOnNewDay():
|
||||||
GM.main.setModuleFlag("PierreModule", "Azazel_Catnip_taken_today", false)
|
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", false)
|
||||||
GM.main.setModuleFlag("PierreModule", "Activated_Cabinets", {})
|
GM.main.setModuleFlag("IssixModule", "Activated_Cabinets", {})
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Wait_Another_Day", false)
|
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", false)
|
||||||
|
|
|
@ -5,7 +5,7 @@ func _init():
|
||||||
|
|
||||||
func _run():
|
func _run():
|
||||||
if(state == ""):
|
if(state == ""):
|
||||||
saynn("You take a look at sheet of paper laying on the floor. It must have been dropped by Pierre when he stormed out of here with his pets.")
|
saynn("You take a look at sheet of paper laying on the floor. It must have been dropped by Issix when he stormed out of here with his pets.")
|
||||||
saynn("It's insanely difficult to tell what exactly is drawn on the sheet of paper. The lines are very shaky and by themselves they hardly make anything recognizable.")
|
saynn("It's insanely difficult to tell what exactly is drawn on the sheet of paper. The lines are very shaky and by themselves they hardly make anything recognizable.")
|
||||||
saynn("It kind of reminds you of a snake, though it has no head and rather is like a tube with spiky tail. The other end of that tube seems to have been filled with color.")
|
saynn("It kind of reminds you of a snake, though it has no head and rather is like a tube with spiky tail. The other end of that tube seems to have been filled with color.")
|
||||||
saynn("There isn't much more you can gather from this little piece of paper.")
|
saynn("There isn't much more you can gather from this little piece of paper.")
|
||||||
|
|
|
@ -6,7 +6,7 @@ func _init():
|
||||||
func _run():
|
func _run():
|
||||||
|
|
||||||
if(state == ""):
|
if(state == ""):
|
||||||
saynn("In front of you - three slaves belonging to Pierre.")
|
saynn("In front of you - three slaves belonging to Issix.")
|
||||||
addButton("Azazel", "Approach Azazel", "azazelmain")
|
addButton("Azazel", "Approach Azazel", "azazelmain")
|
||||||
addButton("Hiisi", "Approach Hiisi", "hiisimain")
|
addButton("Hiisi", "Approach Hiisi", "hiisimain")
|
||||||
addButton("Lamia", "Approach Lamia", "lamiamain")
|
addButton("Lamia", "Approach Lamia", "lamiamain")
|
||||||
|
@ -17,7 +17,7 @@ func _run():
|
||||||
|
|
||||||
if(state == "azazelmain"):
|
if(state == "azazelmain"):
|
||||||
playAnimation(StageScene.Duo, "stand", {npc="azazel", npcAction="sit"}) # TODO There is better sitting pose, like in gym, but need to find where poses are stored
|
playAnimation(StageScene.Duo, "stand", {npc="azazel", npcAction="sit"}) # TODO There is better sitting pose, like in gym, but need to find where poses are stored
|
||||||
if GM.main.getModuleFlag("PierreModule", "PC_Enslavement_Status") == 0:
|
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Status") == 0:
|
||||||
saynn("You approach Azazel, he recognizes sudden attention given to him, raises on his fours and streches his back before sitting towards you expectandly. You notice he took a quick peek at his master beforehand.")
|
saynn("You approach Azazel, he recognizes sudden attention given to him, raises on his fours and streches his back before sitting towards you expectandly. You notice he took a quick peek at his master beforehand.")
|
||||||
else:
|
else:
|
||||||
pass # TODO
|
pass # TODO
|
||||||
|
@ -31,7 +31,7 @@ func _run():
|
||||||
addButton("Back", "Take a step back", "")
|
addButton("Back", "Take a step back", "")
|
||||||
|
|
||||||
if(state == "lamiamain"):
|
if(state == "lamiamain"):
|
||||||
if GM.main.getModuleFlag("PierreModule", "PC_Enslavement_Status") == 0:
|
if GM.main.getModuleFlag("IssixModule", "PC_Enslavement_Status") == 0:
|
||||||
saynn("You approach Lamia")
|
saynn("You approach Lamia")
|
||||||
else:
|
else:
|
||||||
pass # TODO
|
pass # TODO
|
||||||
|
@ -51,9 +51,9 @@ func _run():
|
||||||
|
|
||||||
|
|
||||||
if(state == "azazeltalk"):
|
if(state == "azazeltalk"):
|
||||||
GM.main.setModuleFlag("PierreModule", "Azazel_Catnip_talked", true)
|
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_talked", true)
|
||||||
addButton("Prison", "How did he end up in prison?", "azazelprison")
|
addButton("Prison", "How did he end up in prison?", "azazelprison")
|
||||||
addButton("Pierre", "What he thinks of his master?", "azazelmaster")
|
addButton("Issix", "What he thinks of his master?", "azazelmaster")
|
||||||
addButton("Breeder", "What he thinks of his position as a breeding bitch?", "azazelbreeding")
|
addButton("Breeder", "What he thinks of his position as a breeding bitch?", "azazelbreeding")
|
||||||
addButton("Fetishes", "He mentioned his fetishes, perhaps he could elaborate?", "azazelfetishes")
|
addButton("Fetishes", "He mentioned his fetishes, perhaps he could elaborate?", "azazelfetishes")
|
||||||
addButton("Hobby", "Does he do anything other than sex???", "azazelhobby")
|
addButton("Hobby", "Does he do anything other than sex???", "azazelhobby")
|
||||||
|
@ -66,14 +66,14 @@ func _run():
|
||||||
addButton("Back", "Do something else", "azazelmain")
|
addButton("Back", "Do something else", "azazelmain")
|
||||||
|
|
||||||
if(state == "azazelappearance"):
|
if(state == "azazelappearance"):
|
||||||
saynn("You take a closer look at {azazel.name}. He is a very thin and fairly short feline, judging from him sitting he is around " + Util.cmToString(150) + " tall, with no visible muscles, likely not very strong. Overall his body is still mostly masculine, though here and there there are feminine features like his face or shoulders.\nHis fur is in majority dark grey, though his belly and face are of ligher shade of gray. A small set of horns protrudes from his head. On his backside there is a medium sized feline tail.\n\nOne significant detail is that he does not possess a penis, in its place there is a {azazel.pussyStretch} vagina, above which you can see words ”PIERRE'S PROPERTY” branded onto the skin.")
|
saynn("You take a closer look at {azazel.name}. He is a very thin and fairly short feline, judging from him sitting he is around " + Util.cmToString(150) + " tall, with no visible muscles, likely not very strong. Overall his body is still mostly masculine, though here and there there are feminine features like his face or shoulders.\nHis fur is in majority dark grey, though his belly and face are of ligher shade of gray. A small set of horns protrudes from his head. On his backside there is a medium sized feline tail.\n\nOne significant detail is that he does not possess a penis, in its place there is a {azazel.pussyStretch} vagina, above which you can see words ”ISSIX'S PROPERTY” branded onto the skin.")
|
||||||
addButton("Back", "Do something else", "azazelmain")
|
addButton("Back", "Do something else", "azazelmain")
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
func _react(_action: String, _args):
|
||||||
if(_action == "catnip"):
|
if(_action == "catnip"):
|
||||||
GM.pc.getInventory().removeXOfOrDestroy("CatnipPlant", 1)
|
GM.pc.getInventory().removeXOfOrDestroy("CatnipPlant", 1)
|
||||||
GM.main.getCharacter("azazel").addLust(10)
|
GM.main.getCharacter("azazel").addLust(10)
|
||||||
GM.main.increaseModuleFlag("PierreModule", "Azazel_Catnips_given")
|
GM.main.increaseModuleFlag("IssixModule", "Azazel_Catnips_given")
|
||||||
|
|
||||||
if(_action == "endthescene"):
|
if(_action == "endthescene"):
|
||||||
endScene()
|
endScene()
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Pierre Mod",
|
|
||||||
"description": "Because all subs deserve a master",
|
|
||||||
"author": "Frisk",
|
|
||||||
"repository": "https://github.com/Friskygote/Pierre-mod",
|
|
||||||
"modversion": "1.0",
|
|
||||||
"gameversion": "0.1.6"
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
extends EventBase
|
|
||||||
|
|
||||||
func _init():
|
|
||||||
id = "Ch1PierreQuestQuestionnaire"
|
|
||||||
|
|
||||||
func registerTriggers(es):
|
|
||||||
es.addTrigger(self, Trigger.TalkingToNPC, "pierre")
|
|
||||||
|
|
||||||
func run(_triggerID, _args):
|
|
||||||
if(GM.main.getModuleFlag("PierreModule", "Quest_Status") == 4):
|
|
||||||
if GM.main.getModuleFlag("PierreModule", "Quest_Wait_Another_Day") == false:
|
|
||||||
addButton("Next task", "Ask Pierre about next task", "main")
|
|
||||||
else:
|
|
||||||
addDisabledButton("Next task", "You need to wait until tomorrow")
|
|
||||||
return true
|
|
||||||
elif(GM.main.getModuleFlag("PierreModule", "Quest_Status") == 5):
|
|
||||||
addButton("Questionnaire", "Ask Pierre about continuing the questionnaire", "main")
|
|
||||||
return false
|
|
||||||
|
|
||||||
|
|
||||||
func onButton(_method, _args):
|
|
||||||
if(_method == "main"):
|
|
||||||
GM.main.endCurrentScene()
|
|
||||||
runScene("PierreQuestionnaire")
|
|
||||||
|
|
||||||
func getPriority():
|
|
||||||
return 20
|
|
|
@ -1,362 +0,0 @@
|
||||||
extends SceneBase
|
|
||||||
|
|
||||||
var answer = null
|
|
||||||
|
|
||||||
func _init():
|
|
||||||
sceneID = "PierreQuestionnaire"
|
|
||||||
|
|
||||||
func _run():
|
|
||||||
if(state == ""):
|
|
||||||
playAnimation(StageScene.Duo, "sit", {npc="pierre", npcAction="sit"})
|
|
||||||
if(GM.main.getModuleFlag("PierreModule", "Quest_Status") == 4):
|
|
||||||
saynn("[say=pierre]Alrighty, pet in training. It's the first time I do this, but I'm going to give you a bunch of questions and I expect you to answer them truthfully. Don't dwell too long on them, trust your instinct.\nBlah blah blah, there are no wrong answers something something. You get the drill right? You must have filled a similar one in the past. Tablet will only present you with questions, you answer to me.[/say]")
|
|
||||||
saynn("[say=pierre]Also, this will take a bit, here, have a seat.[/say]")
|
|
||||||
saynn("He pulls a folding chair from behind his and unfolds it in front of himself, you sit and he passes a tablet to you. On it a giant button titled ”Start”.")
|
|
||||||
addButton("Start", "Start the questionnaire", "q1")
|
|
||||||
addButton("Later", "Maybe do this later, it looks like it is gonna take a while...", "endthescene")
|
|
||||||
else:
|
|
||||||
saynn("[say=pc]Could we continue the quiz?[/say]")
|
|
||||||
saynn("Pierre looks at you confused for a second.")
|
|
||||||
saynn("[say=pierre]Ohhhh, the quiz, right. Sorry, I've had... A rough night, sit down, the chair is still there.[/say]")
|
|
||||||
addButton("Lamia", "Ask about Lamia", "lamiaquestion")
|
|
||||||
addButton("Start", "Start the questionnaire", "q4")
|
|
||||||
addButton("Later", "Maybe do this later, it looks like it is gonna take a while...", "endthescene")
|
|
||||||
|
|
||||||
if(state == "q1"):
|
|
||||||
saynn("You hit giant Start button. Screen flashes for split of a second in Silver color. You feel intense gaze of Pierre studying your face as you read the first question.")
|
|
||||||
saynn("„Do you believe creatures possess a soul?”")
|
|
||||||
saynn("This question lingers in for you a second, but your ultimate answer is...")
|
|
||||||
addButton("Yes", "Yes, you do believe souls exist", "q1yes", [true])
|
|
||||||
addButton("No", "You don't believe in existance of souls", "q1no", [false])
|
|
||||||
|
|
||||||
if(state == "q1yes"):
|
|
||||||
saynn("[say=pc]I do believe creatures possess a soul, yeah.[/say]")
|
|
||||||
saynn("You look at Pierre to see his reaction.")
|
|
||||||
saynn("[say=pierre]Interesting, what do you think happens with it after a creature dies?[/say]")
|
|
||||||
addButton("Disappears", "The soul disappears when the body dies", "q2")
|
|
||||||
addButton("Moves", "The soul goes to heaven/hell/purgatory/other kind of place", "q2")
|
|
||||||
addButton("Reincarnates", "The soul reincarnates as different creature", "q2")
|
|
||||||
|
|
||||||
if(state == "q1no"):
|
|
||||||
saynn("[say=pc]I don't believe that souls exist honestly, when we die - we die, there is no reason to be sentimental and add on some kind of feel good concept onto the death.[/say]")
|
|
||||||
saynn("[say=pierre]Bold. Death is scary to many, but is soul really just a concept giving us closure to idea of living? Hmm. Anyways, lets move on.[/say]")
|
|
||||||
addButton("Next question", "Moving on", "q2")
|
|
||||||
|
|
||||||
if(state == "q2"):
|
|
||||||
saynn("Looking back at tablet's screen, next question pops up.")
|
|
||||||
saynn("„Do you consider yourself loyal?”")
|
|
||||||
saynn("Not an unexpected question for this quiz.")
|
|
||||||
addButton("Yes", "I do consider myself loyal", "q2yes", [true])
|
|
||||||
addButton("No", "I don't consider myself loyal", "q2no", [false])
|
|
||||||
|
|
||||||
if(state == "q2yes"):
|
|
||||||
var protectedTavi = getModuleFlag("TaviModule", "Ch3ProtectedTavi")
|
|
||||||
var onlyTaviPunished = getModuleFlag("TaviModule", "Ch5OnlyTaviPunished")
|
|
||||||
if(protectedTavi == null and onlyTaviPunished == true):
|
|
||||||
saynn("Pierre chuckes as you said yes")
|
|
||||||
saynn("[say=pierre]I see. I see.[/say]")
|
|
||||||
elif(protectedTavi == true and onlyTaviPunished == false):
|
|
||||||
saynn("Pierre gives you a warm smile as you said that. One that makes you feel particularly good about this answer.")
|
|
||||||
saynn("[say=pierre]I see. Loyal pets are a rarity.[/say]")
|
|
||||||
elif(protectedTavi == null and onlyTaviPunished == false):
|
|
||||||
saynn("Pierre gives you a smile as you said that.")
|
|
||||||
saynn("[say=pierre]Good to know.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("Pierre gives you a smile as you said that.")
|
|
||||||
saynn("[say=pierre]I like loyal pets.[/say]")
|
|
||||||
saynn("[say=pierre]Anyways, lets proceed with the next one.[/say]")
|
|
||||||
addButton("Next question", "Moving on", "q3")
|
|
||||||
|
|
||||||
if(state == "q2no"):
|
|
||||||
var protectedTavi = getModuleFlag("TaviModule", "Ch3ProtectedTavi")
|
|
||||||
var onlyTaviPunished = getModuleFlag("TaviModule", "Ch5OnlyTaviPunished")
|
|
||||||
if(protectedTavi == null and onlyTaviPunished == true):
|
|
||||||
saynn("You look at Pierre, he doesn't seem to be surprised by your answer, his face is still.")
|
|
||||||
saynn("[say=pierre]Alright.[/say]")
|
|
||||||
elif(protectedTavi == true and onlyTaviPunished == false):
|
|
||||||
saynn("Pierre gives you a smile as you said that, he seems surprised.")
|
|
||||||
saynn("[say=pierre]Hmm, that's interesting. I wonder, are you being humble or... Anyways, let's move on.[/say]")
|
|
||||||
elif(protectedTavi == null and onlyTaviPunished == false):
|
|
||||||
saynn("Pierre looks at you with curiosity.")
|
|
||||||
saynn("[say=pierre]Funny.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("Pierre considers you for a moment.")
|
|
||||||
saynn("[say=pierre]Okey then, I suppose we can move on.[/say]")
|
|
||||||
addButton("Next!", "Another one", "q3")
|
|
||||||
|
|
||||||
if(state == "q3"):
|
|
||||||
saynn("You look back at your tablet. You stare it for good 10 seconds, but no new question comes up. You start wondering if something is wrong or...")
|
|
||||||
saynn("[say=pierre]Give me that for a second.[/say]")
|
|
||||||
saynn("He takes the tablet from your paws and holds it. He then shakes it in all directions as if it was a snow globe toy, hitting it a few times on the floor for a good measure. After a solid minute of this treatment the tablet flashes with Lilac color for a second and displays the next question.")
|
|
||||||
saynn("[say=pierre]Here you go. Technology is sometimes stubborn, you'd think that violence is never an option, but for electronics? Those things fear you. Givving them a good whack sometimes helps them come to their senses.[/say]")
|
|
||||||
saynn("He laughs, while passing the tablet back to you. Next questions says...")
|
|
||||||
saynn("„What body part of yours do you consider most desirable?”")
|
|
||||||
saynn("[say=pierre]By that I mean, which one of them you find the most essential to your identity... I guess...[/say]")
|
|
||||||
var body_parts = GM.pc.getBodyparts()
|
|
||||||
for bp in body_parts:
|
|
||||||
var body_part = body_parts[bp]
|
|
||||||
if body_parts[bp] == null or bp in [BodypartSlot.Body, BodypartSlot.Hair]:
|
|
||||||
continue
|
|
||||||
addButton(body_part.getName().capitalize(), "Your "+body_part.getName()+" feels like the most appropriate answer here", "q3answer", [body_part.id])
|
|
||||||
|
|
||||||
if(state == "q3answer"):
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 5)
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Wait_Another_Day", true)
|
|
||||||
saynn("[say=pierre]Fascinating![/say]")
|
|
||||||
saynn("He notes, presumably your answer, then he looks at the time.")
|
|
||||||
saynn("[say=pierre]Wow, we are so quick with those![/say]")
|
|
||||||
saynn("[say=pierre]Perhaps you'd like some wat-[/say]")
|
|
||||||
saynn("[say=azazel]Master, master![/say]")
|
|
||||||
saynn("You can hear sense of urgency in Azazel's voice.")
|
|
||||||
saynn("[say=pierre]Yes, pet? What happened?[/say]")
|
|
||||||
saynn("[say=azazel]Lamia, they... I think they...[/say]")
|
|
||||||
saynn("Everyone immediately starts looking at Lamia. The fox is curled up, their head hidden under all of their fluff, they are visibly shaking.\nPierre jumps out of the chair, it falling on its back and making a lot of noise. He kneels next to Lamia and puts his paw gently under their head to see their face. Lamia is in tears, it's difficult to look at him at this state.")
|
|
||||||
saynn("[say=pierre]Lamia, please, show.[/say]")
|
|
||||||
saynn("He grabs a pen and hands it to Lamia. Lamia with great struggle takes the pen and scribbles something on piece of paper, you can't see it, it's behind Pierre's body. Pierre looks at the piece of paper and as he realizes what Lamia drew he shouts")
|
|
||||||
saynn("[say=pierre]Pets, with me. To medical, now.[/say]")
|
|
||||||
saynn("He grabs Lamia on his muscular hands and holds them in front. Fox is still curled up. It looks as if he is holding a large furry donut, but without a hole.")
|
|
||||||
saynn("[say=pierre]"+GM.pc.getName() + ", we will finish the questionnaire later. Azazel, Hiisi, with me.[/say]")
|
|
||||||
saynn("You haven't heard his tone being so serious... Ever. Two pets followed their master, still leashed, him holding the other ends in his paw while almost running towards the elevator.\nIt's interesting how he always takes all of his pets with him wherever he goes. This situation looked really urgent, makes you wonder what had happened. but you guess there is no point in standing here.")
|
|
||||||
addButton("Leave", "That would be it for today, you guess", "endthescene")
|
|
||||||
|
|
||||||
if(state == "lamiaquestion"):
|
|
||||||
saynn("[say=pc]Uhh, are you okey? Is Lamia okey? They didn't look great yesterday.[/say]")
|
|
||||||
saynn("Pierre sighs")
|
|
||||||
saynn("[say=pierre]Thank you for asking, pet. I'm fine, Lamia is... Well, let's just say it isn't the first time it happens, it's really due to my own negligence. But they are fine for now.[/say]")
|
|
||||||
saynn("[say=pc]I see[/say]")
|
|
||||||
saynn("Doesn't seem like Pierre is willing to elaborate on this one.")
|
|
||||||
addButton("Start", "Start the questionnaire", "q4")
|
|
||||||
addButton("Later", "Maybe do this later, it looks like it is gonna take a while...", "endthescene")
|
|
||||||
|
|
||||||
if(state == "q4"):
|
|
||||||
saynn("Pierre taps the sceen of the tablet a few times and passes to you. Screen already shows the 4th question. Pierre looks at your face again, though not with same intensity as the last time, yesterday's event made him feel really out of it. His eyes are reddened and there are visible bags under them, lack of sleep? Maybe?")
|
|
||||||
saynn("[say=pierre]Let's start[/say]")
|
|
||||||
saynn("The question says: „Can you bear children?”")
|
|
||||||
if(GM.pc.isVisiblyPregnant()):
|
|
||||||
saynn("[say=pierre]Uhhh... You know what, let's skip this question, I think we know the answer already.[/say]")
|
|
||||||
addButton("Skip", "There is no way to hide your pregnancy, Pierre already knows the answer", "q4answer", [true])
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]I need to know everything about my pets, and you know, this really helps.[/say]")
|
|
||||||
if(GM.pc.hasAnyWomb() and GM.pc.hasPerk(Perk.StartInfertile) == false):
|
|
||||||
addButton("Yes", "Yes, you can bear children", "q4answer", [true])
|
|
||||||
addButton("No (lie)", "No, you can't bear children", "q4answer", [false])
|
|
||||||
else:
|
|
||||||
addButton("Yes (lie)", "Yes, you can bear children", "q4answer", [true])
|
|
||||||
addButton("No", "No, you can't bear children", "q4answer", [false])
|
|
||||||
|
|
||||||
if(state == "q5"):
|
|
||||||
saynn("Screen flashes for a second, Aqua color fills the screen. Next question says: „What sexual activity are you interested in the most?”")
|
|
||||||
saynn("[say=pierre]Just to clerify - all of those assume you take the submissive role.[/say]")
|
|
||||||
addButton("Anal", "Anal sex interests you the most", "q5answer", ['anal'])
|
|
||||||
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
|
||||||
addButton("Watersports", "Say you are interested in piss", "q5answer", ['watersports'])
|
|
||||||
addButton("Oral", "Oral sex interests you the most", "q5answer", ['oral'])
|
|
||||||
addButton("Bondage", "Bondage interests you the most", "q5answer", ['bondage'])
|
|
||||||
addButton("Masochism", "Masochism interests you the most", "q5answer", ['masochism'])
|
|
||||||
addButton("Breeding", "Breeding excites you the most", "q5answer", ['breeding'])
|
|
||||||
|
|
||||||
if(state == "q5answer"):
|
|
||||||
|
|
||||||
# this entire section should be at the summary part.
|
|
||||||
if (answer == "anal"):
|
|
||||||
saynn("Pierre moves his paw to your rear and squishes the ass cheek")
|
|
||||||
saynn("[say=pierre]A butt-slut, aren'tcha? That's entirely fine with me.[/say]")
|
|
||||||
elif(answer == "watersports"):
|
|
||||||
saynn("[say=pierre]Hoo hoo, spicy! You are in for a treat. All my pets have my mark at all times. Just one of the ways to show everyone else who they belong to, so there is no confusion about that.[/say]")
|
|
||||||
elif(answer == "oral"):
|
|
||||||
saynn("[say=pierre]That's pretty mild. let me take a look.[/say]")
|
|
||||||
saynn("He moves his chair closer to yours.")
|
|
||||||
if(GM.pc.isMuzzled()):
|
|
||||||
saynn("Pierre pulls aside your muzzle.")
|
|
||||||
if GM.pc.hasBuff(Buff.GagBuff):
|
|
||||||
saynn("Pierre pulls aside your gag.")
|
|
||||||
if GM.pc.hasBuff(Buff.RingGagBuff):
|
|
||||||
saynn("He mentions your ring gag chuckling.")
|
|
||||||
saynn("[say=pierre]I see you've came prepared, as oral slut should.[/say]")
|
|
||||||
saynn("He puts two of his fingers into your mouth and moves them around.")
|
|
||||||
else:
|
|
||||||
saynn("He asks you to open your mouth, you obey. His fingers explore the inside of your mouth.")
|
|
||||||
var fluidsMouth = GM.pc.getBodypart(BodypartSlot.Head).getFluids()
|
|
||||||
if(!fluidsMouth.isEmpty()):
|
|
||||||
saynn("[say=pierre]That's a one used {pc.throatStretch} mouth you got there. Didn't care about not cleaning it before coming? Or maybe you like cum breath? Doesn't bother me, just wondering.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]That's a one {pc.throatStretch} mouth you got there. Bet you trained it well.")
|
|
||||||
saynn("He continues exploring your mouth with his fingers for uncomfortable amount of time, your saliva covers almost the entirety of his fist. Eventually he stops, seemingly content with his inspection.")
|
|
||||||
saynn("[say=pierre]Good pet.[/say]")
|
|
||||||
elif(answer == "bondage"):
|
|
||||||
saynn("[say=pierre]Satisfying this one should be easy in this place.[/say]")
|
|
||||||
elif(answer == "masochism"):
|
|
||||||
saynn("[say=pierre]Pain is pleasure for you? Or do you just like being treated rough? Didn't expect that one, but it's something I can do.[/say]")
|
|
||||||
elif(answer == "breeding"):
|
|
||||||
if getModuleFlag("PierreModule", "QuestionnaireQ4"):
|
|
||||||
saynn("[say=pierre]Is that so? Can't wait to see you fight with Azazel for who should be my breeding bitch at any given day.[/say]")
|
|
||||||
saynn("He laughs")
|
|
||||||
saynn("Azazel hearing his name looks at his master and then gives you serious look, before going back to sleep.")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]Breeding? How so? You did say you can't bear children. How can you enjoy breeding then?[/say]")
|
|
||||||
saynn("[say=pierre]Anyways, lets move on. Next question.[/say]")
|
|
||||||
addButton("Another one", "Move onto question number 6", "q6")
|
|
||||||
|
|
||||||
if(state == "q6"):
|
|
||||||
saynn("Another question shows up on your screen")
|
|
||||||
saynn("„Do you own any slaves of your own?”")
|
|
||||||
addButton("Yes", "You do have slaves", "q6answer", [true])
|
|
||||||
addButton("No", "I do not have slaves", "q6answer", [false])
|
|
||||||
|
|
||||||
if(state == "q7"):
|
|
||||||
if(GM.main.getPCSlaveAmount() > 0 or getModuleFlag("RahiModule", "rahiMile7Enslaved")) and answer == false:
|
|
||||||
saynn("Pierre looks at you with surprise.")
|
|
||||||
saynn("[say=pierre]Noted. Lets get to next question.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]Noted. Ooonntooo the neext onnne![/say]")
|
|
||||||
saynn("Pierre says with excitement.")
|
|
||||||
saynn("Screen blinks in Violet color and another questions shows up.\n\n„Do you believe more in teaching by reward or by punishment?”")
|
|
||||||
saynn("Pierre looks oddly excited about this question, judging by movement of his tail.")
|
|
||||||
saynn("[say=pierre]There are two schools of thought here, I'm simply wondering what do you think about this dillema.[/say]")
|
|
||||||
addButton("Reward", "You believe in superiority of rewards in education", "q7answer", [true])
|
|
||||||
addButton("Punishment", "You believe in punishment as being better motivational drive than rewards", "q7answer", [false])
|
|
||||||
|
|
||||||
if(state == "q8"):
|
|
||||||
if answer == true:
|
|
||||||
saynn("Pierre claps his paws, so suddently that it spooked you a little bit. He seems happy.")
|
|
||||||
saynn("[say=pierre]Apologies, I just... Got carried away.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("Pierre smiles.")
|
|
||||||
saynn("[say=pierre]Respectable response. You aren't the only one thinking this way, considering you found yourself in place like this.[/say]")
|
|
||||||
saynn("[say=pierre]No time to waste, we are drawing near the end now.[/say]")
|
|
||||||
saynn("Screen of the tablet flashes, in Evergreen color this time, and a new question appears.")
|
|
||||||
saynn("„What species do you find most attractive?”")
|
|
||||||
var species = GlobalRegistry.getAllPlayableSpecies()
|
|
||||||
for species_id in species:
|
|
||||||
addButton(species[species_id].getVisibleName()+"s", "I find "+species[species_id].getVisibleName()+"s to be most attractive", "q8answer", [str(species_id)])
|
|
||||||
|
|
||||||
if(state == "q9"):
|
|
||||||
if(answer in ['demon', 'dragon']):
|
|
||||||
saynn("Pierre laugs")
|
|
||||||
saynn("[say=pierre]I hope my body had no effect on that answer[/say]")
|
|
||||||
saynn("Pierre notes the answer, he puts his own tablet on the floor as he picks up a glass of water to drink")
|
|
||||||
saynn("[say=pierre]How do you feel about your answers so far? I hope you are honest with those, you know.[/say]")
|
|
||||||
saynn("He puts the glass back on its earlier position, taps his tablet and you get the next question.")
|
|
||||||
if(getModuleFlag("PierreModule", "QuestionnaireQ4") == true):
|
|
||||||
saynn("„Your Master asks you to have his child. What do you do?”")
|
|
||||||
else:
|
|
||||||
saynn("„Your Master asks you to have his child (after first making you able to conceive one). What do you do?”")
|
|
||||||
addButton("Refuse", "You aren't willing to bear your Master's child", "q9answer", [false])
|
|
||||||
addButton("Accept", "You would agree to bear your Master's child", "q9answer", [true])
|
|
||||||
|
|
||||||
if(state == "q10"):
|
|
||||||
saynn("There is no reaction coming from Pierre 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])
|
|
||||||
|
|
||||||
if(state == "q10answer"):
|
|
||||||
if(answer < 3):
|
|
||||||
saynn("It feels as if he is trying to compose his body language to hide something. That or your answer didn't have much of effect on him. He notes your answer.")
|
|
||||||
saynn("[say=pierre]That's indeed how pretty much everyone reacts, not surprising.[/say]")
|
|
||||||
if(answer == 3):
|
|
||||||
saynn("He gives you a curious look, perhaps a grin.")
|
|
||||||
saynn("[say=pierre]That's most curious, a very... Scientific response. Cold, non-emotional observation. Most creatures writhe on mention of a parasite, not you.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("For some reason this answer lifted his spirit.")
|
|
||||||
saynn("[say=pierre]You are one kinky creature, you know that? I really like your boldness in this response, you are either very naive or sex worms have eaten your brain.[/say]")
|
|
||||||
saynn("He laugs.")
|
|
||||||
saynn("[say=pierre]We are at the end, last question.[/say]")
|
|
||||||
saynn("„What do you think about AlphaCorp?” the screen displays.")
|
|
||||||
addButton("Good", "AlphaCorp is doing good work, better than anyone else in this part of the galaxy", "q11answer", true)
|
|
||||||
addButton("Neutral", "You either have no opinion or feel entirely neutral about AlphaCorp", "q11answer")
|
|
||||||
addButton("Bad", "Your typical corrupt corporation, you dislike/hate it", "q11answer", false)
|
|
||||||
|
|
||||||
if(state == "q11answer"):
|
|
||||||
saynn("He writes notes your last answer.")
|
|
||||||
saynn("[say=pierre]And we are done! Wasn't so bad, was it? Just 11 questions.\nI have to admit something to you, I lied. This test had wrong answers. Making a pet out of someone requires a lot, and I want my pets to be loyal as well as trustworthy. Of course there are more things than just those, but I needed you to feel safe while writing this test to make sure you give it your best shot as well as don't have reasons to lie to me.[/say]")
|
|
||||||
saynn("[say=pierre]I'll now discuss those questions and your answers with you. Are you ready? Good.[/say]")
|
|
||||||
saynn("[say=pierre]As your first question I've asked you if you believe creatures posses a soul. You answered "+("yes" if getModuleFlag("PierreModule", "QuestionnaireQ1") else "no")+".[/say]")
|
|
||||||
saynn("[say=pierre]The nature of souls is a very interesting one, how do you even define a soul? It may mean different things for each one of us. For me, a soul is your essence - a thing that makes you - you, so yes, I do think that souls do exist. Once you lose your soul you... Stop being yourself, or at least true to yourself, you become mallable by something or someone else. The choices your body makes aren't really made by someone in specific, they are impulses of the body and nothing more...[/say]") # ;)
|
|
||||||
saynn("He thinks for a moment")
|
|
||||||
saynn("[say=pierre]That said, maybe at the end of the day, when soul leaves the body, it can still be itself... Somewhere else...[/say]")
|
|
||||||
saynn("He coughs")
|
|
||||||
saynn("[say=pierre]Anyways, this question was entirely for your own consideration, there is truthfully no right or wrong answer in here. Let's discuss question number two.[/say]")
|
|
||||||
addButton("Summary", "", "summary2")
|
|
||||||
|
|
||||||
if(state == "summary2"):
|
|
||||||
var protectedTavi = getModuleFlag("TaviModule", "Ch3ProtectedTavi")
|
|
||||||
var onlyTaviPunished = getModuleFlag("TaviModule", "Ch5OnlyTaviPunished")
|
|
||||||
saynn("[say=pierre]Your next question was about loyality. It's a very important quality that I'm looking for in a pet. Perhaps not the reckless and completely maniacal type of loyality, but a loyality nonetheless.[/say]")
|
|
||||||
if getModuleFlag("PierreModule", "QuestionnaireQ2"):
|
|
||||||
saynn("[say=pierre]You have answered that you consider yourself loyal.[/say]")
|
|
||||||
if(protectedTavi == null and onlyTaviPunished == true): # Total lack of loyality
|
|
||||||
saynn("[say=pierre]You see, sadly, I don't believe you are entirely honest with me, or yourself. Whenever something happens in this prison - rumors spread, people talk. Guards are surprisingly chatty with inmates.\nAnd what rumors - very trustworthy ones, mind you, say - is that you've abandoned your partner in crime twice. I'm sorry, but this is troubling answer. Not only you weren't loyal, but also you are not being truthful with yourself AND me. I don't tolerate this in my pets.[/say]")
|
|
||||||
saynn("Pierre likely has in mind Tavi, you want to correct Pierre about this, and how you made the right decisions but the moment you breathe air to start talking his look clearly says he doesn't want you to defend yourself. You comply.")
|
|
||||||
elif(protectedTavi == true and onlyTaviPunished == false): # Total loyality
|
|
||||||
saynn("[say=pierre]This is further confirmed by what rumors I've heard about you. You stuck with your partner in crime to the very end - commendable behavior. My pets don't have to make many difficult decisions, but it's important they are honest both with me and also themselves when making them. And if they are disloyal, I can hardly call myself their master. I think you were honest and dependable with your answer. Good job, pet.[/say]")
|
|
||||||
saynn("Your body feels incredibly good after those words by Pierre, you feel rewarded for your honesty and loyality.")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]I can't say for sure whether you were being honest or not with me. But loyality is incredibly important quality of a pet, and the fact you consider yourself loyal makes me happy.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]You have answered that you don't consider yourself loyal.[/say]")
|
|
||||||
if(protectedTavi == null and onlyTaviPunished == true): # Total lack of loyality
|
|
||||||
saynn("[say=pierre]Ehh, you are giving me a really hard time in here, you know? I've heard of your adventures with certain other inmate from the prison - people talk in here, a lot. And reports confim that you weren't exactly the most loyal when your partner in crime needed you the most. But you also said that you don't consider yourself loyal, making your answer a honest one - something I can respect. You seem to be true to yourself, maybe a little lost. I think we can overlook this and just work on your loyality as we go.[/say]")
|
|
||||||
saynn("Pierre likely has in mind Tavi, it's surprising he still gives you a chance even though he is aware how you basically let Tavi take all the blame for the failure - especially considering how much she went through after you got captured.")
|
|
||||||
elif(protectedTavi == true and onlyTaviPunished == false): # Total loyality
|
|
||||||
saynn("[say=pierre]Hmm, your answer baffles me, pet. Rumors I've heard described your actions as heroic and loyal to your partner in crime, when they needed you the most, not minding the consequences. And yet, you say you are not loyal? I can't tell, whether you are not honest with yourself, too humble or something else, but either way, I hope we can work on it as we go on.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]I can't say for sure whether you were being honest or not with me. But loyality is incredibly important quality of a pet, it's a pity you don't consider yourself loyal. But regardless, this is something we can work on, don't worry.[/say]")
|
|
||||||
saynn("[say=pierre]Second question done, just 9 more to go.[/say]")
|
|
||||||
addButton("Continue", "", "summary3")
|
|
||||||
|
|
||||||
if(state == "summary3"):
|
|
||||||
saynn("[say=pierre]What do we have here... Body parts. Ah yes. It bears no any significance, but thought the answer would be fun.[/say]")
|
|
||||||
answer = getModuleFlag("PierreModule", "QuestionnaireQ3")
|
|
||||||
saynn("[say=pierre]You said that the body part you are most interested in is... "+answer+"[/say]")
|
|
||||||
#TODO
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
|
||||||
if(_action == "endthescene"):
|
|
||||||
endScene()
|
|
||||||
return
|
|
||||||
|
|
||||||
if(_args):
|
|
||||||
if(_action.begins_with("q10")): # number parasite
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ10", _args[0])
|
|
||||||
elif(_action.begins_with("q11")): # bool alphacorp
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ11", _args[0])
|
|
||||||
elif(_action.begins_with("q1")): # bool Creatures possess a soul
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ1", _args[0])
|
|
||||||
elif(_action.begins_with("q2")): # bool Consider yourself loyal
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ2", _args[0])
|
|
||||||
elif(_action.begins_with("q3")): # text Favorite bodypart
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ3", _args[0])
|
|
||||||
elif(_action.begins_with("q4")): # bool Can you be pregnant
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ4", _args[0])
|
|
||||||
_action = "q5"
|
|
||||||
elif(_action.begins_with("q5")): # text fav sexual activity
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ5", _args[0])
|
|
||||||
elif(_action.begins_with("q6")): # bool have slaves
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ6", _args[0])
|
|
||||||
_action = "q7"
|
|
||||||
elif(_action.begins_with("q7")): # bool carrot and a stick
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ7", _args[0])
|
|
||||||
_action = "q8"
|
|
||||||
elif(_action.begins_with("q8")): # text attractive species
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ8", _args[0])
|
|
||||||
_action = "q9"
|
|
||||||
elif(_action.begins_with("q9")): # text bearing a baby
|
|
||||||
setModuleFlag("PierreModule", "QuestionnaireQ9", _args[0])
|
|
||||||
_action = "q10"
|
|
||||||
|
|
||||||
answer = _args[0] # I'm lazy
|
|
||||||
|
|
||||||
setState(_action)
|
|
||||||
|
|
||||||
|
|
||||||
func getDevCommentary():
|
|
||||||
return "Writing questionnaire took me a while. I knew I wanted to write wuestionnaire and I wanted it to be meaningful in a way. At first the idea was that a player will choose some options and then Pierre will use them to apply punishments and rewards according to those responses. However evantually I felt like this may not be the best usage of questionnaire. One thing that to me is missing in the game is the lack of impact of choices made in other character arcs on the rest of the prison, I really wanted to do something about it, so I decided to possibly involve choices made in Tavi's questline as well as Rahi's to judge player for slavery fitness. There is also the fact that I enjoy ethics, so I slapped some ethics questions as well, this allows me to show that Pierre is not a two-dimensional character and works according to some rules he subscribes to as well. The end result is a weird mix of stuff. Don't know how I ultimately feel about all of this, but I think the idea of questionnaire is a solid one in here. Also, the abrupt break was added as I were writing the quiestionnaire, completely on impulse. I've felt like we needed some dramatic break or this would feel too boring, and it would allow me to add some relevant foreshadowing and story bits for later. Didn't want the quest to be this quick. It should be spread across multiple days, sorry for artificial filler ><"
|
|
||||||
|
|
||||||
func hasDevCommentary():
|
|
||||||
return true
|
|
|
@ -1,262 +0,0 @@
|
||||||
extends SceneBase
|
|
||||||
|
|
||||||
var random_pierre_activities_talk = [
|
|
||||||
"He notices you right away and follows you with his gaze."
|
|
||||||
] #TODO Write more
|
|
||||||
|
|
||||||
func _init():
|
|
||||||
sceneID = "PierreTalkScene"
|
|
||||||
|
|
||||||
func _reactInit():
|
|
||||||
if(GM.ES.triggerReact(Trigger.TalkingToNPC, ["pierre"])):
|
|
||||||
endScene()
|
|
||||||
return
|
|
||||||
|
|
||||||
func _run():
|
|
||||||
if(state == ""):
|
|
||||||
playAnimation(StageScene.Duo, "stand", {npc="pierre", npcAction="sit"})
|
|
||||||
|
|
||||||
|
|
||||||
if(state == ""):
|
|
||||||
if(!GM.main.getModuleFlag("PierreModule", "Pierre_Introduced")):
|
|
||||||
sayn("While exploring the cellblock you stumble upon an uncommon sight - three leashed creatures resting on blankets around a sitting man. One of the creatures appears to be sleeping, the other one is laying on their front turned towards the man sitting on the chair and the third one is licking their paws with their eyes closed.\nThe sitting figure appears to be talking with the creature laying on their belly.")
|
|
||||||
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
|
|
||||||
sayn("All of the three leashed creatures give off a pretty strong smell - they are all marked. While their fur seems dry, it's undeniable it had contact with piss, of a single male. Not difficult to figure out which.")
|
|
||||||
addButton("Talk", "Talk to the intimidating demon", "talk")
|
|
||||||
addButton("Appearance", "Take a closer look at the intimidating demon", "appearance")
|
|
||||||
else:
|
|
||||||
saynn("While exploring the station a in the corner of a platform sits a demon-dragon Pierre with three leashed creatures.")
|
|
||||||
addButton("Talk", "Talk to Pierre", "talk")
|
|
||||||
addButton("Appearance", "Take a closer look at Pierre", "appearance")
|
|
||||||
addButton("Leave", "Be on your way", "endthescene")
|
|
||||||
|
|
||||||
if(state == "appearance"):
|
|
||||||
saynn("Before you, on his ”throne” stands an intimidating figure - a demon-dragon hybrid. His piercing black eyes look distinct from any other inmate.\n\nHe can certainly be called muscular, his arms and legs are on the beefier side, not extremaly so, but one wouldn't want to pick a fight with him.\nEven though intimidating, his face... Shows kindness and calm.\n\nWhat makes him much different from everyone else is the... Harem? He holds a bundle of 3 leashes attached to his wrist, at the end of each is a creature laying or sitting on a blanket.")
|
|
||||||
addButton("Back", "Go back", "")
|
|
||||||
|
|
||||||
if(state == "talk"):
|
|
||||||
if(!GM.main.getModuleFlag("PierreModule", "Pierre_Introduced")):
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Pierre_Introduced", true)
|
|
||||||
saynn("You approach the intimidating demon, with a lot of distance still in-between you and him, standing right in front of his harem.")
|
|
||||||
saynn("[say=pierre]Oh hello little morsel. Don't believe I've seen you. Name is Pierre. Do you have a name?[/say]")
|
|
||||||
addButton("I'm "+GM.pc.getName(), "Introduce yourself with your name", "name")
|
|
||||||
else:
|
|
||||||
saynn("You approach the demon.")
|
|
||||||
saynn(RNG.pick(random_pierre_activities_talk))
|
|
||||||
addButton("Prison", "How did he end up in prison?", "prison")
|
|
||||||
addButton("Pets", "Have they really willingly gave to him?", "pets2")
|
|
||||||
addButton("Guards", "Are prison guards giving him trouble?", "guards")
|
|
||||||
if GM.main.getModuleFlag("PierreModule", "Quest_Status") == 1 and GM.main.getModuleFlag("PierreModule", "Quest_Bonked") == true:
|
|
||||||
addButton("Exercise", "Ask Pierre for explanation about your incident with the wall", "quest1bonk")
|
|
||||||
if GM.main.getModuleFlag("PierreModule", "Quest_Status") == 3:
|
|
||||||
addButton("Gumball", "Bring back the gumball to Pierre", "quest1turn")
|
|
||||||
GM.ES.triggerRun(Trigger.TalkingToNPC, ["pierre"])
|
|
||||||
addButton("Leave", "Be on your way", "endthescene")
|
|
||||||
|
|
||||||
if(state == "name"):
|
|
||||||
addCharacter("pierre")
|
|
||||||
saynn("[say=pierre]I see. Nice to meet you "+GM.pc.getName()+" and welcome to my humble corner in this piece of heaven.[/say]")
|
|
||||||
saynn("He holds his paw up to you, not fazed by the fact that you are still separated by an awkwardly long distance from the demon-dragon.\nNot wanting to be rude, you lean forwards while making extra sure you will not trample upon laying inmate or fall forwards by yourself. Eventually your " + ("hand" if len(GM.pc.getSpecies()) == 1 and GM.pc.getSpecies()[0] == "human" else "paw") + " meets his and you are able to do shake them.") # ok, I have no idea what's the difference between buff arms and anthro arms, they seem the same, and technically neither have paws, too bad I'm the one writing dialogue though
|
|
||||||
saynn("[say=pierre]I own this little corner including those three wonderful leashed pets beside me. You do NOT touch my pets without permission. Normally I wouldn't think this has to be mentioned, but for some reasons inmates think otherwise, those who do - don't keep this thought for long.[/say]")
|
|
||||||
sayn("[say=pierre]That's probably everything you need to know about me. \nAlso, considering we didn't start on the wrong foot, you have my permission to speak with my pets. \nNow, please find some other business to attend to, unless you need something else of me?[/say]")
|
|
||||||
addButton("Heaven?", "Did you hear that correctly?", "heaven")
|
|
||||||
addButton("Pierre", "Learn more about Pierre", "pierredetails")
|
|
||||||
addButton("Pets", "Who are the pets?", "pets")
|
|
||||||
|
|
||||||
if(state == "heaven"):
|
|
||||||
saynn("[say=pc]Did you just call this prison a piece of heaven? Why?[/say]")
|
|
||||||
saynn("[say=pierre]Because it is. I don't understand why everyone says it's not.[/say]")
|
|
||||||
saynn("[say=pc]Because it's... A prison? It's a middle-of-nothing rock that belongs to some mega rich empire. Because we have collars on our necks.[/say]")
|
|
||||||
saynn("[say=pierre]You are looking at it all wrong [/say]") # TODO
|
|
||||||
addButton("Continue", "Ask about something else", "name")
|
|
||||||
|
|
||||||
if(state == "pets"):
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Pets_Introduced", true)
|
|
||||||
saynn("[say=pc]So... Who are your pets exactly?[/say]")
|
|
||||||
saynn("[say=pierre]Curious about my treasured pearls, aren't you? Oh, I'm happy to introduce you, people usually talk only with me, but I feel like they could use some social interactions with someone else than myself and themselves.[/say]")
|
|
||||||
sayn("[say=pierre]This kitty here is my very first pet, they've recognized me as their master shortly after I came here. They were very spooked and lost in here, still unsure what exactly they did to end up in this place. I gave them meaning, they repay me by being an excellent pet. Azazel, say hi.[/say]")
|
|
||||||
saynn("Pierre looks expectantly at Azazel - a fairly regular looking feline, he is wearing an lilac uniform. Until now he was curled and seemingly asleep, even though his ears were perking up whenever his master spoke. After hearing his master's voice speak his name however his head immediately went up, and along with it the rest of his body. He stood on his fours and turned towards you.")
|
|
||||||
saynn("[say=azazel]Hello... Stranger.[/say]")
|
|
||||||
saynn("Azazel said with reservation. He looked away from you for a second to look at face of his master, whos face didn't lose his expectant look. Turning back to you he hesitently rubbed his cheek on your leg and collapsed onto his blanket again, making sure to take a last look at his master before closing his eyelids and presumably continuing his slumber.")
|
|
||||||
saynn("[say=pierre]Good kitty. He is the best breeding bitch in this entire institution, that's what nature made him to be. He doesn't mind petting his head, if that's something you'd like, otherwise we can move on.[/say]")
|
|
||||||
saynn("In corner of your eye you see Azazel's faint smile in reaction to Pierre's comment.")
|
|
||||||
addButton("Pet Azazel", "Pet that kitty!", "hiisipet")
|
|
||||||
addButton("Move on", "Learn about second pet", "hiisi")
|
|
||||||
|
|
||||||
if(state in ["hiisipet", "hiisi"]):
|
|
||||||
if(state == "hiisipet"):
|
|
||||||
saynn("You crouch and gently pet Azazel's head. You can feel very delicate vibrations produced by the kitten. He doesn't open his eyes, but it's clear cat enjoys this treatment.")
|
|
||||||
sayn("Master looks at this interaction with interest and sincere smile on his face.")
|
|
||||||
saynn("After a short moment you stand back up and look at pet on your right.")
|
|
||||||
saynn("[say=pierre]This one here is Hiisi. He is my lastest, which doesn't mean I love him any different. This puppy was actually one of the more recognized troublemakers around this prison.\nHe's been getting into pants of everyone against their own will to the point that even guards started getting concerned and wanted to take action. At one point he even attempted to breed my precious kitty Azazel, do you remember that Hiisi?[/say]") # TODO
|
|
||||||
saynn("Hissi looks at his master and shakes his head.")
|
|
||||||
saynn("[say=pierre]Right, of course you don't, hah. But look at him now, pristine puppy boy! He love his belly rubs and stays out of the trouble! ... Well, mostly. Anyways, despite his troubled past, he agreed to join me and became my pup! Hiisi cmon, welcome our guest, give {pc.him} a sniff!")
|
|
||||||
saynn("[say=hiisi]" + GM.pc.getName() + " isn't it? Umm... Hi.[/say]")
|
|
||||||
saynn("{hiisi.name} licks your leg, leaving a bit of saliva on your fur.") # TODO Fur/skin
|
|
||||||
saynn("[say=pierre]I apologize for my pets, they aren't used to longer conversations with strangers. They've been through a lot and... *sigh* Anyways, Lamia! Lamia is a fox breed, he doesn't speak. He communicates with drawings. He isn't great at them, by any means, but to me it makes him very special. He doesn't mind being mute.[/say]")
|
|
||||||
addButton("Leave", "Be on your way", "endthescene")
|
|
||||||
addButton("Pets", "Ask more about pets", "hiisipet")
|
|
||||||
|
|
||||||
if(state == "lamia"):
|
|
||||||
saynn("You take a step towards Lamia to give him a pawshake. He sits on a blanket, next to him a stack of empty paper sheets, and a smaller pile of ")
|
|
||||||
|
|
||||||
if(state == "pierredetails"):
|
|
||||||
saynn("You ask Pierre about himself. He looks at you with intensity, studying your face.")
|
|
||||||
saynn("[say=pierre]Honestly, don't think there is much for you to know morsel. But sure, I can entertain you a little.[/say]")
|
|
||||||
saynn("Pierre relaxes, his shoulders straight, he puts one leg on another, in crossed position.")
|
|
||||||
saynn("[say=pierre]I wanted to be here. My position offered me plenty of opportunities, everyone had their own expectations of everyone else's needs and wishes. I gave them all a big middle finger.\nThrough my connections I became an inmate. Nobody convicted me of any crime, like everyone else in here. I simply used my connections at AlphaCorp to be here. To gain my paradise.[/say]")
|
|
||||||
if (GM.pc.getPersonality().getStat(PersonalityStat.Coward) < -0.2):
|
|
||||||
saynn("[say=pc]You are craz-[/say]")
|
|
||||||
else:
|
|
||||||
saynn("[say=pc]That's... Cr-[/say]")
|
|
||||||
saynn("[say=pierre]Crazy. I know. I've heard it a million times, thanks.[/say]")
|
|
||||||
saynn("He rolls his eyes and sips water from the glass nearby.")
|
|
||||||
saynn("[say=pierre]Anyways, this short story will have to do, morsel. I've talked enough about myself.[/say]")
|
|
||||||
addButton("Back", "If he says so", "name")
|
|
||||||
|
|
||||||
if(state == "pets2"):
|
|
||||||
playAnimation(StageScene.Duo, "stand", {npc="pierre", npcAction="sit"})
|
|
||||||
pass
|
|
||||||
|
|
||||||
if(state == "join"):
|
|
||||||
var score = calculateHaremScore()
|
|
||||||
var score_explored = GM.main.getModuleFlag("PierreModule", "Score_Explored")
|
|
||||||
if(GM.pc.getPersonality().getStat(PersonalityStat.Subby) < 0):
|
|
||||||
saynn("[say=pierre]Look, you are lovely and all that, but I don't think you are the right fit. I require absolute obedience. Once you submit to me there is no going back, you become MY treasured pet forever. Those three? They know their place, they are ready to be mated whenever I feel like doing so. You? You strike me as leader - like myself. Why not just be business partners in here eh? I think you are entirely capable of gathering your own pets.[/say]")
|
|
||||||
elif(score > 89 and GM.main.getModuleFlag("PierreModule", "Quest_Status") > 1):
|
|
||||||
pass
|
|
||||||
elif(score > 75 and score_explored < 9999):
|
|
||||||
playAnimation(StageScene.Duo, "stand", {npc="pierre", npcAction="stand"})
|
|
||||||
saynn("You mention the intention to join his harem of pets, lust in your eyes. He looks at you and starts grinning.")
|
|
||||||
saynn("[say=pierre]Mmmmmm. You are almost done morsel. Not mine yet, but so close... I really like you. I really really like you. I think you have all of the qualities I'm looking for in a pet but...[/say]")
|
|
||||||
saynn("He looks away, and looks... Concerned? No. In deep thought rather.")
|
|
||||||
saynn("[say=hiisi]Is something the matter, master?[/say]")
|
|
||||||
saynn("[say=pierre]No Hiisi, you don't have to...[/say]")
|
|
||||||
saynn("[say=azazel]Will "+GM.pc.getName()+" join us, master?[/say]")
|
|
||||||
saynn("Pierre stands up, pulling on both Azazel's and Hiisi's leashes.")
|
|
||||||
saynn("[say=pierre]You two, do not concern yourself. "+GM.pc.getName()+" here...[/say]")
|
|
||||||
saynn("He looks at you, his black eyes again staring into yours. His face is neutral, still hazed by wandering thoughts.")
|
|
||||||
saynn("[say=pierre]... Is interested, but he still needs to prove he is worthy to be owned by your master.[/say]")
|
|
||||||
saynn("He comes closer to you, leashes in his paw, eyes on you. There are only two steps separating you and him, but with each his tall posture makes you feel as if he is getting taller and taller, or perhaps you smaller and smaller. Eventually you can feel his body heat on yours, he is standing just in front of you, a peanut away. Your face meets his chest, you don't dare to look him in the face.\nHis paw reaches your chin to correct that. You see his black eyes again, looking down on you, as if you were a little feral kitten looking at big human. Insignificant. Tiny. His face has a serious expression.")
|
|
||||||
saynn("[say=pierre]Tell me "+GM.pc.getName()+", do you want to be my pet or do you want to stay a stray kitten?[/say]") # TODO depending on species
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Score_Explored", score)
|
|
||||||
addButton("Y-your pet", "Submit to Pierre", "quest")
|
|
||||||
if (GM.pc.getPersonality().getStat(PersonalityStat.Subby) < 0.3) and GM.pc.getLust() < 30 and !GM.pc.isWearingHypnovisor() and !GM.pc.hasEffect(StatusEffect.Suggestible) and !GM.pc.hasEffect(StatusEffect.UnderHypnosis): # Good luck lol
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", -1)
|
|
||||||
addButton("Stray kitten", "You don't want to be his kitten", "quest")
|
|
||||||
else:
|
|
||||||
addDisabledButton("Stray kitten", "Your mind doesn't allow you to make this choice")
|
|
||||||
elif(score > 45 and score_explored < 76):
|
|
||||||
playAnimation(StageScene.Duo, "stand", {npc="pierre", npcAction="stand"})
|
|
||||||
saynn("[say=pierre]Heh, interesting ask. It's still a no, though I have to admit, I do see some potential in here.[/say]")
|
|
||||||
if (GM.pc.isBlindfolded()):
|
|
||||||
saynn("Pierre stands up, takes a step towards you, grabs your blindfold, pulls it higher, grabs you by your chin to look you straight in your eyes.")
|
|
||||||
elif (GM.pc.isWearingHypnovisor()):
|
|
||||||
saynn("[say=pierre]Heh, I see you already come with the equipment. Let me take a look at you.[/say]")
|
|
||||||
saynn("Pierre stands up, takes a step towards you, pulls you forward, grabs your chin, pulls your head higher to face his head on top of his tall body. You barely see his eyes through your visor, which continues to massage your brain to obey every whim of every alpha in the prison.")
|
|
||||||
else:
|
|
||||||
saynn("Pierre stands up, takes a step towards you, grabs you by your chin without asking and looks you straight into your eyes.")
|
|
||||||
GM.pc.addLust(30)
|
|
||||||
sayn("The moment takes forever, just as his gaze pierces through your eyes, you also observe his black, void pupils and irises. For a moment, it feels as if his pupil turned bright red. Could be just a play of light or something... But then... There is allure in those eyes. Something dangerous, yet enticing. You feel primal, bare. With every moment of this eye contact you feel less in control, weaker, inferior. Your knees start to bend ever so slightly before Pierre stedies your head again and takes his paws from your chin.")
|
|
||||||
if (GM.pc.isBlindfolded()):
|
|
||||||
sayn("He fixes your blindfold to be back on your eyes.")
|
|
||||||
saynn("[say=pierre]Yess, you have the potential, whether you'll use it or not is up to you.[/say]")
|
|
||||||
saynn("Pierre goes back to his chair and sits, staring at you with a grin on his face.")
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Score_Explored", score)
|
|
||||||
elif(score > 25 and score_explored < 46):
|
|
||||||
saynn("[say=pierre]I gotta say, I did hear of a certain "+GM.pc.getName()+" around doing some whoring, but that's about it. You must understand, my pets must have prior experience and right spirit that I can exploit. You seem like a small fish. So nah, my apologies but I'm simply not interested in you at the moment.[/say]")
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Score_Explored", score)
|
|
||||||
elif(score_explored > 1):
|
|
||||||
saynn("[say=pierre]Hmm. you still look mostly the same, still unworthy.[/say]")
|
|
||||||
else:
|
|
||||||
saynn("[say=pierre]Look, you are lovely and all that, but I don't think you have what it takes to join my other pets. I require absolute obedience and sexual experience. Once you submit to me there is no going back, you become MY treasured pet forever. Those three? They know their place, they are ready to be mated whenever I feel like doing so. They obey my every single command. I just don't see that in you, sorry.[/say]")
|
|
||||||
addButton("Back", "Maybe another time then...", "pets2")
|
|
||||||
|
|
||||||
if(state == "quest"):
|
|
||||||
playAnimation(StageScene.Duo, "stand", {npc="pierre", npcAction="sit"})
|
|
||||||
if (GM.main.getModuleFlag("PierreModule", "Quest_Status") == -1):
|
|
||||||
saynn("[say=pierre]I see... Disappointing, but it's your choice and I respect that.[/say]")
|
|
||||||
saynn("He looks at you some more, he takes away his paw from your chin, turns around and sits on his chair. A serious and... Disappointed look on his face.")
|
|
||||||
saynn("[say=pierre]I'll give you one more chance if you change your mind. But this one will be final. My pets trust me, and they don't say no to me.[/say]")
|
|
||||||
addButton("Leave", "Take your leave", "endthescene")
|
|
||||||
else:
|
|
||||||
saynn("He smiles briefly.")
|
|
||||||
saynn("[say=pierre]Very well.[/say]")
|
|
||||||
saynn("He puts his paws on sides of your head and starts scratching you behind your ears. Immediately you feel... Comfortable. Loved. Protected. You closed your eyes in bliss. And then he... Stops, the feeling of his paws is filled with void. You feel empty, unfulfilled. You open your eyes and meet his eyes staring at you again from the above. He looks at you expectendly. You aren't sure what to do, you don't want to fail your Master, but... His black eyes speak to you, yes. They want you to open your mouth. You don't even realize when your mouth opens. You didn't do that by yourself, did you?")
|
|
||||||
sayn("He takes your tongue in between his paw fingers gently, pulls it out a little. He opens his mouth and he spits. Spit lands right on your tongue, with incredible precision right in the middle. He does it again, using the fact your mouth is still open. It lands deeper inside your mount. He pulls his paw fingers from your tongue and uses his two fingers to pressure your chin from below, giving you a signal to close your mouth.")
|
|
||||||
sayn("You comply. There is nothing other than his eyes staring deep at you, his will is your will. His spit doesn't feel particularly different from yours, perhaps you can pick up some flavor or two, but it's more dignified flavor than one of cum that you are so used to. You keep the spit inside your mouth for a bit, tasting it, feeling it, connecting with its owner. And you swallow it, with a visible gulp.")
|
|
||||||
saynn("Pierre smiles. He ruffles your " + ("hair" if GM.pc.hasHair() else "ears") + " with his paws.")
|
|
||||||
saynn("[say=pierre]Good pet.\nNow, to be MY pet you'll have to prove yourself further. Besides the fact I want my pets to be all famous in this little heaven of ours, I want to make sure they follow my orders. For you my dear, I have a few little tasks, nothing you can't do, I'm sure, but it will be the proof I need you can become MY pet.[/say]")
|
|
||||||
saynn("He turns around and moves towards his chair, where he sits.")
|
|
||||||
saynn("[say=pierre]Your first task will require... Trust. In me. Tell me, do you trust me?[/say]")
|
|
||||||
addButton("Yes", "Say you trust Pierre", "questresponseyes")
|
|
||||||
addButton("No", "Say you don't trust Pierre", "questresponseno")
|
|
||||||
|
|
||||||
if(state in ["questresponseyes", "questresponseno"]):
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 1)
|
|
||||||
if(state=="questresponseyes"):
|
|
||||||
saynn("Pierre grins after hearing the answer.")
|
|
||||||
sayn("[say=pierre]Excellent. Now, what I want to do is verify your trust, and gain some of my own trust in you. You must be acutely aware how words, especially in this place"+ (" and especially coming from a red like yourself" if GM.pc.getInmateType() == InmateType.HighSec else "") + " can be deceptive.[/say]")
|
|
||||||
if(state=="questresponseno"):
|
|
||||||
saynn("Pierre looks at you, studying you.")
|
|
||||||
saynn("[say=pierre]Curious. Not the answer I anticipated. It's fine, we can work on that.[/say]")
|
|
||||||
saynn("[say=pierre]For your first task, you'll need something I'm sure you are now well acquainted with - a blindfold. After all, what is the better tool to test someone's trust than tell them to do something stupid blind?[/say]")
|
|
||||||
saynn("He chuckles")
|
|
||||||
saynn("[say=pierre]You will have to use your little head a bit too before you put one. I'll give you a map, I've drawn it myself, but it has to do. I won't spoil your fun and tell you what it shows, I'm sure you are clever enough to figure it out by yourself, after all, this prison isn't thaaat big, right?[/say]")
|
|
||||||
saynn("He winks at you, and lets out a chuckle.")
|
|
||||||
saynn("[say=pierre]Go there, blind yourself, go through a wall and bring me the goods. The number you'll need is 84. And morsel, don't hang in there for too long, trust me on that. Don't worry, I'll know if you succeed or not, don't try to cheat. Remember, trust is the key.[/say]")
|
|
||||||
addButton("Leave", "Take your leave", "endthescene")
|
|
||||||
|
|
||||||
if(state == "quest1bonk"):
|
|
||||||
saynn("Before you even start speaking Pierre starts laughing maniacally, catching you off guard.")
|
|
||||||
saynn("[say=pierre]Oh Morsel[/say]")
|
|
||||||
saynn("He almost chokes with laughter.")
|
|
||||||
saynn("[say=pierre]I've been told you- you've had a[/say]")
|
|
||||||
saynn("He barely breathes thanks to constant laughter.")
|
|
||||||
saynn("[say=pierre]certain mee- meeting with a wall.[/say]")
|
|
||||||
saynn("He starts recovering from the laughter.")
|
|
||||||
saynn("[say=pierre]I'm sorry, it was just... I've seen the clip, little birdie showed me it, told me I'd enjoy, and oh morsel, it made my week.[/say]")
|
|
||||||
saynn("[say=pc]W-was it all a joke then? Have I passed your trust exercise?[/say]")
|
|
||||||
saynn("[say=pierre]Haha, don't get ahead of yourself there. I just didn't mention one very important fact, honestly didn't anticipate you trying to be sneaky.[/say]")
|
|
||||||
saynn("[say=pc]What do you mean?[/say]")
|
|
||||||
saynn("[say=pierre]I mean that you weren't supposed to do that at night! I appreciate the attempt, but the mechanism closes shut at night.[/say]")
|
|
||||||
saynn("That... Would make sense. Still unsure what mechanism Pierre is referring to, but its true that the prison isn't exactly the same when the night comes, and some places are simply locked. "+("Your tail wraps around you in embarassment" if GM.pc.hasTail() else "You blush in embarassment")+".")
|
|
||||||
saynn("[say=pierre]It's fine pet, you didn't know. Go there today and do the same thing, just perhaps not during the night, okey?[/say]")
|
|
||||||
addButton("Leave", "Nod and leave embarassed", "endthescene")
|
|
||||||
|
|
||||||
if(state == "quest1turn"):
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 4)
|
|
||||||
GM.main.setModuleFlag("PierreModule", "Quest_Wait_Another_Day", true)
|
|
||||||
saynn("[say=pc]Is... This what you wanted?[/say]")
|
|
||||||
saynn("You said with uncertainty in your voice, presenting Pierre with a packet of gumball.\nPierre looks at you elated, he claps his paws.")
|
|
||||||
saynn("[say=pierre]Yes, YES. This is exactly what I needed, pet.[/say]")
|
|
||||||
saynn("He stands up, and takes the packet of gum from your paw.")
|
|
||||||
saynn("He opens one end of it and immediately pops one of the gums in his mouth. He goes back to sit on his chair.")
|
|
||||||
saynn("[say=pierre]You know, a lot of goods in here are generally unavailable to inmates. I knew what I were getting into arriving in here, and didn't really care about most of favorite dishes or products. But this gum? I can't live without it. I were able to make sure it arrives here, in this prison just for myself regularly. You wouldn't believe just how much I had to work to have it delivered, it's not exactly the most popular destination in the galaxy. I have a contact who drops it always in same place where you got it from.[/say]")
|
|
||||||
saynn("He savours the taste of gum, closing his eyes and resting his head on chair's headrest.")
|
|
||||||
saynn("[say=pierre]Ahhhhhh. So good. I've been chewing this brand since I were little, out of all things, it never gets old.[/say]")
|
|
||||||
saynn("He looks back at you.")
|
|
||||||
if GM.main.getModuleFlag("PierreModule", "Quest_Bonked") == true:
|
|
||||||
saynn("[say=pierre]I assume no more, akhem, ”wall incidents”?[/say]")
|
|
||||||
saynn("He grins")
|
|
||||||
saynn("[say=pierre]And with just that you've passed my first test. Congratulations! I knew you could do it.[/say]")
|
|
||||||
saynn("[say=pierre]That would be it for today. For your next time I'll have to prepare a little. I should have something for you tomorrow, so please come then.[/say]")
|
|
||||||
addButton("Alright", "Leave", "endthescene")
|
|
||||||
# Which body part you hold dearest?
|
|
||||||
# 2 questions based on stories from Tavi, and Rahi, using their flags to phrase the questions
|
|
||||||
# Trolley problem?
|
|
||||||
# Favorite species
|
|
||||||
#
|
|
||||||
|
|
||||||
func calculateHaremScore():
|
|
||||||
var score = 0
|
|
||||||
score += GM.pc.getPersonality().getStat("Subby")*10 # -10 - 10
|
|
||||||
score += GM.pc.getReputation().getRepLevel(RepStat.Whore)*10 # 0 - 90
|
|
||||||
return int(score) # -10 - 100
|
|
||||||
|
|
||||||
func _react(_action: String, _args):
|
|
||||||
if(_action == "endthescene"):
|
|
||||||
endScene()
|
|
||||||
return
|
|
||||||
|
|
||||||
setState(_action)
|
|
47
README.md
47
README.md
|
@ -1,6 +1,37 @@
|
||||||
# Pierre
|
# Pierre
|
||||||
A mod for Broken Dreams Correctional Center. Introduces Pierre (name will be changed later on for compatibility reasons) and his harem of sl- pets.
|
A mod for Broken Dreams Correctional Center. Introduces Pierre (name will be changed later on for compatibility reasons) and his harem of sl- pets.
|
||||||
|
|
||||||
|
# Existing content (assuming I don't get lazy before 1.0)
|
||||||
|
- Pierre - a dragon-demon hybrid, he owns 3 pets, all of them have some story that you can uncover (and which may be expanded in the future)
|
||||||
|
- Azazel - a feline breeding bitch
|
||||||
|
- Hiisi - a canine pup
|
||||||
|
- Lamia - a troubled fox
|
||||||
|
- One quest that leads to your enslavement by Pierre (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
|
||||||
|
- Finally, voluntary enslavement, if you eventually get enslaved it may make your game a bit more difficult
|
||||||
|
- Skill tree? (currently no idea how this is going to be implemented)
|
||||||
|
|
||||||
|
# Goals
|
||||||
|
## Mod's audience
|
||||||
|
Mod is directed pretty much exclusively at players who are submissive. In game there are already a bunch of ways the player can effectively submit to other creatures - recentlishly added hypnokink is a great example of that, Tavi's questline also has a route/revolves around player submitting to Tavi as their pet. Those things are wonderful and I love them, but in-game slave system is definitely directed at dominant players. This mod tries to address that by adding a character that can enslave **the player**.
|
||||||
|
|
||||||
|
## Slavery
|
||||||
|
I think there is a reason why there are dozens of harem-management games where player becomes harem's owner and manages slave instead of being one. I think in large part there isn't much of a way to make the player be a slave and keep the gameplay entertaining. If becoming a slave means less choice - the game may become boring. In this mod I'm trying my best to still feel like player is enslaved while at the same time let them continue playing the game. This is not an easy task to do, but probably better than eternity of being stuck in one time playing card game with another pet.
|
||||||
|
|
||||||
|
## Planned content
|
||||||
|
- Some parasite related content (already foreshadowed)
|
||||||
|
- Expanded slavery scenes/systems
|
||||||
|
- Alternative route of enslavement for players who are the type of people that completes Undertale's genocide run 5 times just for fun *stares with judgement*
|
||||||
|
|
||||||
|
## Technical stuff
|
||||||
|
The goal is to create a mod with as little of overwriting the core modules to preserve compatibility and not have a dance every time base game gets an update. This means that we'll try to use as many of mechanics that already exist in the game as possible. Granted, while I'm a coder, I'm unsure I can properly implement complex system in Godot, so I might need some help with that.
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
Anyone is encouraged to contribute! If you think you have a good idea the issue tracker is there, I welcome pull requests, if you are unsure whether what you like would fit the mod feel free to join a discussion, I don't bite and no kink grosses me out really *wink wink*!
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
I also license the mod on the same license base game is licensed on, it's a nod both to game's developer who I insanely respect for creating such a big, organized, **open-source**, kinky project. I give my permission to use any part if not the entirety in other projects, including base game if one so desires. If you want to be extra sure you use my work in a way that I'd be alright with, you can also look at my [acceptable use policy for my fursona character](https://frisk.space/about/fursona-use/#specific-terms), even though my fursona is not part of the mod, the terms described in there are generally applicable, even if not enforceable. Of course, if you use my work, please credit my name appropriately.
|
||||||
|
|
||||||
# Why?
|
# Why?
|
||||||
So many reasons.
|
So many reasons.
|
||||||
- I wanted to try myself at modding.
|
- I wanted to try myself at modding.
|
||||||
|
@ -11,22 +42,6 @@ So many reasons.
|
||||||
|
|
||||||
Majority of this mod's content has been written without too much thought put into it, on fly and on sheer impulse. I'm certainly far from award winning story writer, but I tried my best, only you can judge how good of a job I've done.
|
Majority of this mod's content has been written without too much thought put into it, on fly and on sheer impulse. I'm certainly far from award winning story writer, but I tried my best, only you can judge how good of a job I've done.
|
||||||
|
|
||||||
# Goals
|
|
||||||
## Mod's audience
|
|
||||||
Mod is directed pretty much exclusively at players who are submissive. In game there are already a bunch of ways the player can effectively submit to other creatures - recentlishly added hypnokink is a great example of that, Tavi's questline also has a route/revolves around player submitting to Tavi as their pet. Those things are wonderful and I love them, but in-game slave system is definitely directed at dominant players. This mod tries to address that by adding a character that can enslave the player.
|
|
||||||
|
|
||||||
## Slavery
|
|
||||||
I think there is a reason why there are dozens of harem-management games where player becomes harem's owner and manages slave instead of being one. I think in large part there isn't much of a way to make the player be a slave and keep the gameplay entertaining. If becoming a slave means less choice - the game may become boring.
|
|
||||||
|
|
||||||
## Base game
|
|
||||||
The goal is to create a mod with as little of overwriting the core modules to preserve compatibility and not have a dance every time base game gets an update. This means that we'll try to use as many of mechanics that already exist in the game.
|
|
||||||
|
|
||||||
# Contributing
|
|
||||||
Anyone is encouraged to contribute! If you think you have a good idea the issue tracker is there, I welcome pull requests, if you are unsure whether what you like would fit the mod feel free to join a discussion, I don't bite and no kink grosses me out really *wink wink*!
|
|
||||||
|
|
||||||
# Usage
|
|
||||||
I also license the mod on the same license base game is licensed on, it's a nod both to game's developer who I insanely respect for creating such a big, organized, **open-source**, kinky project. I give my permission to use any part if not the entirety in other projects, including base game if one so desires. If you want to be extra sure you use my work in a way that I'd be alright with, you can also look at my [acceptable use policy for my fursona character](https://frisk.space/about/fursona-use/#specific-terms), even though my fursona is not part of the mod, the terms described in there are generally applicable, even if not enforceable. Of course, if you use my work, please credit my name appropriately.
|
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
Making games is a lot of work. This entire mod has taken me days worth of hours just to get to 1.0. And it's just a single mod. Rahi (Broken Dreams Correctional Center creator) has done enormous work on making a base game to build off. They have dedicated time and effort to create tools that allow others to make the additional content (this is a rarity! I want to see more of such projects, lets build kinky stuff together, open your kink games everyone!).
|
Making games is a lot of work. This entire mod has taken me days worth of hours just to get to 1.0. And it's just a single mod. Rahi (Broken Dreams Correctional Center creator) has done enormous work on making a base game to build off. They have dedicated time and effort to create tools that allow others to make the additional content (this is a rarity! I want to see more of such projects, lets build kinky stuff together, open your kink games everyone!).
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue