Remove duplicate files

This commit is contained in:
Frisk 2024-11-10 02:11:59 +01:00
parent 503511f7f6
commit c315abdc71
21 changed files with 0 additions and 2769 deletions

View file

@ -1,132 +0,0 @@
extends Character
# Incredibly subby and kinky creature, mostly aligns with mod's author preferences.'
func _init():
id = "azazel"
npcHasMenstrualCycle = true
npcCharacterType = CharacterType.Inmate
pickedSkin="AzazelSkin"
pickedSkinRColor=Color("ff464545")
pickedSkinGColor=Color("ff656465")
pickedSkinBColor=Color("ff72005d")
npcSkinData={
"hair": {"r": Color("ff221310"),"g": Color("ff1f1514"),"b": Color("ff28000c"),},
"horns": {"r": Color("ffa9a9a9"),"b": Color("ff606060"),},
}
npcPersonality = {
PersonalityStat.Brat: -0.9,
PersonalityStat.Mean: -1.0,
PersonalityStat.Subby: 1.0,
PersonalityStat.Impatient: 0.1,
PersonalityStat.Naive: 1.0,
PersonalityStat.Coward: 0.7,
}
npcDefaultFetishInterest = FetishInterest.Neutral
npcFetishes = {
Fetish.AnalSexReceiving : FetishInterest.Loves,
Fetish.AnalSexGiving : FetishInterest.Hates,
Fetish.VaginalSexGiving : FetishInterest.Hates,
Fetish.VaginalSexReceiving : FetishInterest.Loves,
Fetish.OralSexReceiving : FetishInterest.Likes,
Fetish.Sadism : FetishInterest.ReallyDislikes,
Fetish.Masochism : FetishInterest.Likes,
Fetish.UnconsciousSex : FetishInterest.Hates,
Fetish.Breeding : FetishInterest.Hates,
Fetish.BeingBred : FetishInterest.Loves,
Fetish.Bondage : FetishInterest.Loves,
Fetish.Rigging : FetishInterest.Likes,
Fetish.Condoms : FetishInterest.Dislikes,
Fetish.DrugUse : FetishInterest.Likes,
Fetish.Exhibitionism : FetishInterest.Loves,
Fetish.Tribadism : FetishInterest.Dislikes,
Fetish.StraponSexVaginal : FetishInterest.Dislikes,
Fetish.StraponSexAnal : FetishInterest.SlightlyDislikes,
Fetish.Choking : FetishInterest.SlightlyDislikes,
Fetish.HypnosisSubject : FetishInterest.Loves,
}
npcLustInterests = {
InterestTopic.TallyMarks: Interest.ReallyLikes,
InterestTopic.Bodywritings: Interest.ReallyLikes,
InterestTopic.Gags: Interest.Neutral,
InterestTopic.Blindfolds: Interest.KindaLikes,
InterestTopic.BDSMRestraints: Interest.Loves,
InterestTopic.ButtPlugs: Interest.Neutral,
InterestTopic.VaginalPlugs: Interest.Neutral,
InterestTopic.FeminineBody: Interest.KindaLikes,
InterestTopic.AndroBody: Interest.Loves,
InterestTopic.MasculineBody: Interest.ReallyLikes,
InterestTopic.ThickBody: Interest.Dislikes,
InterestTopic.SlimBody: Interest.Loves,
InterestTopic.BigBreasts: Interest.Hates,
InterestTopic.StuffedPussy: Interest.Likes,
InterestTopic.StuffedPussyOrAss: Interest.KindaLikes,
InterestTopic.Pregnant: Interest.Loves,
InterestTopic.StuffedThroat: Interest.ReallyLikes,
InterestTopic.CoveredInCum: Interest.ReallyLikes,
InterestTopic.CoveredInLotsOfCum: Interest.Loves,
InterestTopic.FullyNaked: Interest.Loves,
InterestTopic.ExposedPussy: Interest.Dislikes,
InterestTopic.ExposedAnus: Interest.ReallyLikes,
InterestTopic.ExposedBreasts: Interest.Hates,
InterestTopic.ExposedCock: Interest.ReallyLikes,
InterestTopic.ExposedPanties: Interest.Neutral,
InterestTopic.ExposedBra: Interest.Neutral,
InterestTopic.LooseAnus: Interest.Neutral,
InterestTopic.LoosePussy: Interest.Neutral,
InterestTopic.TightAnus: Interest.Likes,
InterestTopic.TightPussy: Interest.Likes,
InterestTopic.BigCock: Interest.Hates,
}
func interestVerbalReaction(interest):
if(interest == InterestTopic.Pregnant):
return "Oh, do you have litter in there? Cuuute, meoowwww!"
if(interest == InterestTopic.Blindfolds):
return "Purrr. How is your hearing? Can you hear me purring from over there?"
func _getName():
return "Azazel"
func getGender():
return Gender.Male
func getSmallDescription() -> String:
return "Wears an lilac uniform with number P-655. He is the embodiment of ”meek”."
func getSpecies():
return [Species.Feline]
func getThickness() -> int:
return 0
func getFemininity() -> int:
return 67
func createBodyparts():
giveBodypartUnlessSame(GlobalRegistry.createBodypart("felinehead"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("combedbackhair"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("dragonhorns"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("felineears"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthrobody"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthroarms"))
var breasts = GlobalRegistry.createBodypart("malebreasts")
breasts.size = 0
giveBodypartUnlessSame(breasts)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("vagina"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anuswomb"))
var tail = GlobalRegistry.createBodypart("felinetail")
tail.tailScale = 1
giveBodypartUnlessSame(tail)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("plantilegs"))
func onGivingBirth(_impregnatedEggCells: Array, _newkids: Array):
.onGivingBirth(_impregnatedEggCells, _newkids)
func getBirthWaitTime():
return 60*60*24*2
func getDefaultEquipment():
return ["inmatecollar", "inmateuniformSexDeviant"]

View file

@ -1,26 +0,0 @@
extends EventBase
func _init():
id = "EngRoomClosetEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom, "eng_corridor6")
func run(_triggerID, _args):
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(GM.pc.isBlindfolded()):
if getModuleFlag("IssixModule", "Quest_Status") == 1:
addButton("Issix's Task", "Is it time?", "wall")
else:
addButton("Closet", "Time to get that thing", "wall")
elif quest_status > 2:
addDisabledButton("Closet", "This place is of no significance to you anymore")
func getPriority():
return 0
func onButton(_method, _args):
if(_method == "wall"):
runScene("EngRoomScene")

View file

@ -1,203 +0,0 @@
extends SceneBase
var cabinets = {2: {"name": "2"}, 9: {"name": "9"}, 14: {"name": "14"}, 20: {"name": "20"}, 28: {"name": "28"}, 42: {"name": "|/\\"}, 51: {"name": "51"}, 69: {"name": "69"}, 84: {"name": "84"}, 87: {"name": "87"}, 90: {"name": "90"}}
var empty_loots = [
"This shelf is filled to the brim with various metallic nuts and bolts. However it has nothing of interest to you",
"After putting your paw deep within the shelf you start feeling very unpleasant coldness coming from the tips of your fingers. Oof! You immediately pull out your paw.",
"The entire filling cabinet starts vibrating after opening this shelf. It does not bode well, you immediately close this shelf. The vibration stops. That was odd.",
"When opening the shelf you start hearing voice outside the closet, considering how well the doors are masking the sounds from the hallway they must be really close, perhaps they want to use the closet?\nIn panic you try to find some place to hide to no avail, there is not much space to begin with. You stand terrified until voice goes quiet. After sigh of relief you check the opened shelf, however there isn't anything in there other than various replacement parts to electronic devices.",
"You pull out a shelf and find a single piece of paper inside. It has only one sentence on it, in large font that fills entire page saying „OH, DID U GET THE BROOM CLOSET ENDING? THEB ROOM CLOSET ENDING WAS MY FAVRITE!1 XD”. The absolute lack of context and randomness of this message fill you with concern. Engineers must have a very strange sense of humor."
]
var cabinet_random = RandomNumberGenerator.new()
var current_loot = null # TODO will not survive save/load
var current_cabinet = null
func _init():
sceneID = "EngRoomScene"
func _run():
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.")
if GM.main.isVeryLate():
addButton("Wall time", "Trust Issix and walk towards the wall", "nightwallwalking")
else:
addButton("Wall time", "Trust Issix and walk towards the wall", "trust")
addButton("Nope", "You are not trusting Issix, this is stupid", "endthescene")
if(state == "nightwallwalking"):
GM.main.setModuleFlag("IssixModule", "Quest_Bonked", true)
processTime(1*60)
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 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)
saynn("You took "+str(damage_taken)+" damage.")
addButton("Leave", "Leave embarassed before you give someone a reason to laugh at you", "endthescene")
if(state == "trust"):
aimCameraAndSetLocName("eng_closet")
GM.pc.setLocation("eng_closet")
GM.main.setModuleFlag("IssixModule", "Quest_Status", 2)
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 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)
var item: ItemBase = GM.pc.getInventory().getEquippedItem(InventorySlot.Eyes)
if(item != null):
var restraint = item.getRestraintData()
if(restraint != null):
if (restraint.canStruggleFinal() and GM.pc.getStamina() > 0) or GM.pc.getInventory().hasItem("restraintkey"):
addButton("Struggle", "It would be useful to see what is going on around", "strugglemenu")
else:
addDisabledButton("Struggle", "Your "+item.getVisibleName() + " is stuck on your eyes")
else:
addButton("Look around", "Look around", "lookaround")
else:
addButton("Look around", "Look around", "lookaround")
addButton("Leave", "Try to leave the room", "leave")
if state=="leave":
if(GM.pc.isBlindfolded()):
if(GM.pc.hasBlockedHands()):
saynn("You attempt to retrace your setps back where you came from, however it seems like whatever you went through has closed. It's hard to judge how can you even open the doors. After a while of trying, you blast the doors with a serios of forceful pushes, it does not budge.")
processTime(7*60)
else:
saynn("You attempt to retrace your setps back where you came from, however it seems like whatever you went through has closed. Thankfully, it seems like from this end there is a very analog door handle that pulling seems to lead back to the hallway. Or at least you judge that from the sounds.")
processTime(4*60)
else:
processTime(2*60)
saynn("Thankfully, the doors have a regular old-school door handle. You pull it and they swing open.")
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")
GM.pc.setLocation("eng_corridor6")
addButton("Issix", "Guess it's time to go back to Issix", "endthescene")
if state=="lookaround":
saynn(GM.world.getRoomByID("eng_closet").getDescription())
addButton("Cabinets", "Try to search cabinets", "cabinets")
addButton("Leave", "Try to leave the room", "leave")
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
addButton("Back", "Look around again", "lookaround")
var activated_cabinets = getModuleFlag("IssixModule", "Activated_Cabinets", {})
for item in cabinets:
if item in activated_cabinets:
addDisabledButton("Cabinet "+cabinets[item]["name"], "You've already looted this cabinet")
else:
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])
else:
addButton("Cabinet " + cabinets[item]["name"], "Check the cabinet with number "+cabinets[item]["name"], "cabinetloot", [item])
if state=="cabinetloot":
saynn("You chose to open cabinet number "+str(current_cabinet)+"...")
processTime(1*60)
if(typeof(current_loot) == TYPE_NIL): # event
markCabinetAsActivated(current_cabinet)
elif(typeof(current_loot) == TYPE_STRING): #nothing
saynn(current_loot)
markCabinetAsActivated(current_cabinet)
else: #item
saynn("Inside you've found "+str(current_loot.getAmount())+" of "+ current_loot.getVisibleName() +".")
addButton("Take items", "Take the items", "acceptloot")
addButton("Cabinets", "Look at cabinets without picking up anything", "cabinets")
if state=="cabinet84":
processTime(1*60)
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("IssixModule", "Quest_Status", 3)
markCabinetAsActivated(84)
addButton("Back", "Look at cabinets", "cabinets")
if state=="cabinetevent1":
processTime(10*60)
saynn("You chose to open cabinet number "+str(current_cabinet)+"...")
var fluidType = RNG.pick(["Cum", "GirlCum", "Milk"])
saynn("The shelf is located a little higher than your head, since there isn't anything in the closet that you could stand on, your plan is to simply open the shelf and try to feel with your paw if there is anything there. You regret that decision the moment you open the shelf. Entire shelf is filled to brim with a kind of cold slimy fluid that spills on you the moment you open it.\n\nYou've been covered in "+fluidType.to_lower()+".")
GM.pc.coverBodyWithFluid(fluidType, 800.0)
if state=="cabinetevent2":
processTime(3*60)
saynn("You chose to open cabinet number "+str(current_cabinet)+"...")
saynn("The shelf is located a little higher than your head, since there isn't anything in the closet that you could stand on, your plan is to simply open the shelf and try to feel with your paw if there is anything there.\n\nYou pull the shelf and it falls on you!")
if (RNG.randf_range(0, 1) < GM.pc.getDodgeChance()+0.1): # Got protected from the fall, base 10% + whatever player dodge chance has
saynn("You were able to avoid the falling shelf with your quick reflexes. Phew. You push the shelf back where it came from.")
else:
var damage_taken: int = 0
if GM.pc.hasHorns(): # I were curious, so I asked search engine about this, have some cool sciency read code reader masochist! https://bioengineering.hyperbook.mcgill.ca/mechanical-analysis-of-animal-horns/
damage_taken = GM.pc.receiveDamage(DamageType.Physical, 40, 1.0)
else:
damage_taken = GM.pc.receiveDamage(DamageType.Physical, 60, 1.0)
saynn("You were unable to react in time and heavy shelf fell on your head ouch.\n" + ("Seems like your horns helped you with taking a hit from the above to some degree.\n" if GM.pc.hasHorns() else "") + "\nYou took "+str(damage_taken)+" damage.")
if state=="cabinetevent3":
processTime(3*60)
saynn("You chose to open cabinet number "+str(current_cabinet)+"...")
var lust_taken = RNG.randi_range(20, 50)
GM.pc.addLust(lust_taken)
saynn("A red mist surrounds you as the dust from the shelf spills out with the force of your pull.\n\nYou gain "+ str(lust_taken)+" lust.")
func randomItemFromSeed(array):
return array[cabinet_random.randi() % array.size()]
func randomNumberFromSeed(numStart, numEnd):
cabinet_random.randi_range(numStart, numEnd)
func generateLoot(cabinet_number: int):
cabinet_random.seed = GM.main.getDays() + cabinet_number * 1000
var rand_num = cabinet_random.randf() * 100
if (rand_num < 16): # item
var item_type = randomItemFromSeed(["PlantEgg", "Cookie", "lube", "PlasticBottle", "restraintkey", "WorkCredit", "UsedCondom"])
var newItem = GlobalRegistry.createItem(item_type)
if item_type == "PlantEgg":
newItem.whoGaveBirth = "thisnamedoesntexistbecauseplayercantpossiblyknowwhoseggsthoseare"
newItem.setAmount(randomNumberFromSeed(2, 3))
elif item_type == "cookie":
newItem.setAmount(randomNumberFromSeed(2, 3))
elif item_type == "Credit":
newItem.setAmount(randomNumberFromSeed(3, 5))
elif item_type == "UsedCondom":
newItem.markLastUser("unknown person")
newItem.generateFluids()
var fluids = newItem.getFluids()
var allowedFluids = ["CumLube", "BlackGoo"]
if OPTIONS.isContentEnabled(ContentType.Watersports):
allowedFluids.append("Piss")
fluids.addFluid(randomItemFromSeed(allowedFluids), randomNumberFromSeed(2, 5)*100.0)
return newItem
elif (rand_num < 21): # TODO event
markCabinetAsActivated(cabinet_number)
return RNG.randi_range(1,3)
else:
return randomItemFromSeed(empty_loots)
func markCabinetAsActivated(cabinetNumber:int):
var activated_cabinets = getModuleFlag("IssixModule", "Activated_Cabinets", {})
activated_cabinets[cabinetNumber] = true
GM.main.setModuleFlag("IssixModule", "Activated_Cabinets", activated_cabinets)
func _react(_action: String, _args):
if(_action == "endthescene"):
endScene()
return
if(_action == "cabinetloot"):
if getModuleFlag("IssixModule", "Activated_Cabinets", {}).size() > 10:
# TODO Do a force encounter with an engineer
pass
current_loot = generateLoot(_args[0])
current_cabinet = _args[0]
if typeof(current_loot) == TYPE_INT:
_action = "cabinetevent"+str(current_loot)
if(_action == "acceptloot"):
markCabinetAsActivated(current_cabinet)
GM.pc.getInventory().addItem(current_loot)
_action = "cabinets"
if(_action == "strugglemenu"):
runScene("StrugglingScene")
return
setState(_action)

View file

@ -1,68 +0,0 @@
extends EventBase
func _init():
id = "IssixEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom, "hall_ne_corner")
es.addEventCheck(self, "IssixBusy")
func run(_triggerID, _args):
#if(doEventCheck("IssixBusy") != null):
# return false
if(GM.main.isVeryLate()): # Add something in the nightime it's very late?
saynn("You see an empty chair in the corner with three blankets laying around.")
return false
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.")
GM.main.setModuleFlag("IssixModule", "Score_Explored", 0) # is there a better place to do this?
GM.main.setModuleFlag("IssixModule", "Quest_Status", 0)
addButton("Demon", "Talk to the demon-dragon", "talk")
return
GM.main.applyWorldEdit("IssixWorldEdit")
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.")
if getModuleFlag("IssixModule", "Quest_Status") == 5:
addButton("Paper", "A piece of paper lies left in a hurry", "paper")
return
saynn("You see Issix sitting on a chair in a corner, around him there are three leashed slaves.")
addButton("Issix", "Talk to Issix", "talk")
if(!getModuleFlag("IssixModule", "Pets_Introduced")):
#addButton("Look at pets", "Look at pets", "pets")
addDisabledButton("Talk with pets", "You should probably first talk with intimidating figure who got them leashed")
else:
addButton("Pets", "Look at pets", "pets")
#if(checkCharacterBusy("RahiBusy", "Seems like the kitty is not here", "Rahi")):
# return
#
#if(getModuleFlag("RahiModule", "Rahi_NotThereToday", false)):
# saynn("Seems like the kitty is not here")
#
# addDisabledButton("Rahi", "She is not here today")
# return
#if(!getModuleFlag("RahiModule", "Rahi_Introduced")):
# saynn("You see some unknown feline sitting on a bench")
#else:
# saynn("You see the Kitty sitting on a bench")
#addButtonUnlessLate("Rahi", "Talk to the feline", "talk")
func getPriority():
return 0
func onButton(_method, _args):
if(_method == "talk"):
runScene("IssixTalkScene")
if(_method == "pets"):
runScene("PetsTalkScene")
if(_method == "paper"):
runScene("NoPetsTalkScene")
func eventCheck(_checkID, _args = []):
if(getModuleFlag("IssixModule", "Quest_Status") == 5 and getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == true):
return {busy=true}

View file

@ -1,25 +0,0 @@
extends EventBase
func _init():
id = "AzazelCatnipEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom, "main_green_corridor9")
func run(_triggerID, _args):
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_talked") and RNG.chance(30)):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_found", true)
if(GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_found")):
saynn("While staring at plethora of different plants, you recognize one in particular - white flowers and specific smell. Catnip!")
if(!GM.main.getModuleFlag("IssixModule", "Azazel_Catnip_taken_today")):
addButtonUnlessLate("Steal", "Try and steal something", "steal")
else:
addDisabledButton("Steal", "Too dangerous to do this again today")
func getPriority():
return 0
func onButton(_method, _args):
if(_method == "steal"):
runScene("GreenhouseCatnip")

View file

@ -1,49 +0,0 @@
extends SceneBase
func _init():
sceneID = "GreenhouseCatnip"
func _run():
if(state == ""):
saynn("You approach the greenhouses, each one looks like a huge long tent with lots of artificial lights inside. You have to sneak around cause at any moment you can spotted by some guard.")
saynn("This specific station seems to be growing quite a variety of herbs, most of which are unknown to you.")
saynn("You spotted that the doors to the greenhouse have been left opened. Right behind them you see a familiar plant - catnip.")
saynn("What do you wanna do?")
addButton("Take catnip", "Sneak in, grab one and get out", "catnip")
addButton("Don't steal", "Too dangerous", "endthescene")
if(state == "catnip"):
saynn("You find and cut one of many catnip at the bottom of the stem. Time to leave.")
addButton("Continue", "Try to escape without being seen", "caughtcheck")
func _react(_action: String, _args):
if(_action == "catnip"):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_taken_today", true)
GM.pc.getInventory().addItem(GlobalRegistry.createItem("CatnipPlant"))
addMessage("You stole catnip plant.")
if(_action == "caughtcheck"):
processTime(10 * 5)
if(RNG.chance(25)):
if(GM.ES.triggerReact(Trigger.CaughtStealingInGreenhouse)):
endScene()
return
addMessage("Seems like you got away safely")
addButton("Leave", "Leve the crime scene", "endthescene")
return
if(_action == "endthescene"):
endScene()
return
setState(_action)
# The amount of times I wrote "catnap" instead of "catnip" is insane. Thanks that one horror game franchise.

View file

@ -1,126 +0,0 @@
extends Character
# Hiisi is a relatively dominating character out of all three pets. He still has some HighSec energy in them
func _init():
id = "hiisi"
npcHasMenstrualCycle = false
npcCharacterType = CharacterType.Inmate
pickedSkin="ArconSkin"
pickedSkinRColor=Color("ffc8c2c2")
pickedSkinGColor=Color("ff423c51")
pickedSkinBColor=Color("ff767676")
npcSkinData={
"hair": {"r": Color("ffb05745"),"g": Color("ffb05745"),"b": Color("ff2288ab"),},
"penis": {"r": Color("ff4e2626"),"g": Color("ff9d2121"),"b": Color("ff991a1a"),},
}
npcPersonality = {
PersonalityStat.Brat: 0.1,
PersonalityStat.Mean: 0.4,
PersonalityStat.Subby: 1.0,
PersonalityStat.Impatient: 0.9,
PersonalityStat.Naive: -1.0,
PersonalityStat.Coward: -0.4,
}
npcDefaultFetishInterest = FetishInterest.Neutral
npcFetishes = {
Fetish.AnalSexReceiving : FetishInterest.ReallyDislikes,
Fetish.AnalSexGiving : FetishInterest.Likes,
Fetish.VaginalSexGiving : FetishInterest.Likes,
Fetish.OralSexReceiving : FetishInterest.Likes,
Fetish.OralSexGiving : FetishInterest.SlightlyDislikes,
Fetish.Sadism : FetishInterest.Likes,
Fetish.Masochism : FetishInterest.Hates,
Fetish.UnconsciousSex : FetishInterest.Likes,
Fetish.Bondage : FetishInterest.Likes,
Fetish.Rigging : FetishInterest.Likes,
Fetish.Breeding : FetishInterest.Dislikes,
Fetish.Condoms : FetishInterest.Likes,
Fetish.DrugUse : FetishInterest.SlightlyDislikes,
Fetish.Tribadism : FetishInterest.Dislikes,
Fetish.StraponSexVaginal : FetishInterest.Dislikes,
Fetish.StraponSexAnal : FetishInterest.Dislikes,
Fetish.Choking : FetishInterest.Likes,
Fetish.HypnosisSubject : FetishInterest.Hates,
Fetish.HypnosisHypnotist : FetishInterest.Loves
}
npcLustInterests = {
InterestTopic.TallyMarks: Interest.ReallyLikes,
InterestTopic.Bodywritings: Interest.KindaLikes,
InterestTopic.Gags: Interest.Loves,
InterestTopic.Blindfolds: Interest.Loves,
InterestTopic.BDSMRestraints: Interest.Loves,
InterestTopic.ButtPlugs: Interest.Dislikes,
InterestTopic.VaginalPlugs: Interest.Dislikes,
InterestTopic.FeminineBody: Interest.Likes,
InterestTopic.AndroBody: Interest.Likes,
InterestTopic.StuffedPussy: Interest.Likes,
InterestTopic.StuffedPussyOrAss: Interest.KindaLikes,
InterestTopic.StuffedThroat: Interest.Likes,
InterestTopic.CoveredInCum: Interest.Dislikes,
InterestTopic.CoveredInLotsOfCum: Interest.Dislikes,
InterestTopic.FullyNaked: Interest.Likes,
InterestTopic.ExposedPussy: Interest.ReallyLikes,
InterestTopic.ExposedAnus: Interest.ReallyLikes,
InterestTopic.ExposedBreasts: Interest.Likes,
InterestTopic.ExposedCock: Interest.KindaLikes,
InterestTopic.ExposedPanties: Interest.Likes,
InterestTopic.ExposedBra: Interest.Likes,
InterestTopic.TightAnus: Interest.Likes,
InterestTopic.TightPussy: Interest.Likes,
InterestTopic.BigCock: Interest.Hates,
}
func interestVerbalReaction(interest):
if(interest == InterestTopic.Pregnant):
return "Oh, do you have litter in there? Cuuute, meoowwww!"
if(interest == InterestTopic.Blindfolds):
return "Purrr. How is your hearing? Can you hear me purring from over there?"
func _getName():
return "Hiisi"
func getGender():
return Gender.Male
func getSmallDescription() -> String:
return "Wears an red uniform with number P-964."
func getSpecies():
return [Species.Canine]
func getThickness() -> int:
return 23
func getFemininity() -> int:
return 0
func createBodyparts():
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthrobody"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthroarms"))
var breasts = GlobalRegistry.createBodypart("malebreasts")
breasts.size = 0
giveBodypartUnlessSame(breasts)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("caninehead"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("simplehair"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("canineears3"))
var penis = GlobalRegistry.createBodypart("caninepenis")
penis.lengthCM = 10
penis.ballsScale = 1.2
giveBodypartUnlessSame(penis)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anus"))
var tail = GlobalRegistry.createBodypart("huskytail")
tail.tailScale = 1
giveBodypartUnlessSame(tail)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("digilegs"))
func onGivingBirth(_impregnatedEggCells: Array, _newkids: Array):
.onGivingBirth(_impregnatedEggCells, _newkids)
func getBirthWaitTime():
return 60*60*24*2
func getDefaultEquipment():
return ["inmatecollar", "inmateuniformHighSec"]

View file

@ -1,131 +0,0 @@
extends Character
func _init():
id = "issix"
npcHasMenstrualCycle = false
npcCharacterType = CharacterType.Inmate
pickedSkin="SoftSpikySkin" # TODO Check options
pickedSkinRColor=Color("ffca3030")
pickedSkinGColor=Color("ff720505")
pickedSkinBColor=Color("ff000000")
npcSkinData={
"hair": {"r": Color("ffb05745"),"g": Color("ffb05745"),"b": Color("ff2288ab"),},
}
npcPersonality = {
PersonalityStat.Brat: 0.5,
PersonalityStat.Mean: 1.0,
PersonalityStat.Subby: -1.0,
PersonalityStat.Impatient: 0.1,
PersonalityStat.Naive: -1.0,
PersonalityStat.Coward: -0.7,
}
npcDefaultFetishInterest = FetishInterest.Neutral
npcFetishes = {
Fetish.AnalSexReceiving : FetishInterest.ReallyDislikes,
Fetish.AnalSexGiving : FetishInterest.Hates,
Fetish.VaginalSexGiving : FetishInterest.Hates,
Fetish.VaginalSexReceiving : FetishInterest.Loves,
Fetish.OralSexReceiving : FetishInterest.Likes,
Fetish.OralSexGiving : FetishInterest.Likes,
Fetish.Sadism : FetishInterest.ReallyDislikes,
Fetish.Masochism : FetishInterest.Hates,
Fetish.UnconsciousSex : FetishInterest.Loves,
Fetish.BeingBred : FetishInterest.Dislikes,
Fetish.Bondage : FetishInterest.Likes,
Fetish.Rigging : FetishInterest.Likes,
Fetish.Condoms : FetishInterest.Dislikes,
Fetish.DrugUse : FetishInterest.Likes,
Fetish.Exhibitionism : FetishInterest.Loves,
Fetish.Tribadism : FetishInterest.SlightlyDislikes,
Fetish.StraponSexVaginal : FetishInterest.Dislikes,
Fetish.StraponSexAnal : FetishInterest.SlightlyDislikes,
Fetish.Choking : FetishInterest.SlightlyDislikes,
Fetish.HypnosisSubject : FetishInterest.Loves,
}
npcLustInterests = {
InterestTopic.TallyMarks: Interest.ReallyLikes,
InterestTopic.Bodywritings: Interest.KindaLikes,
InterestTopic.Gags: Interest.Loves,
InterestTopic.Blindfolds: Interest.Loves,
InterestTopic.BDSMRestraints: Interest.Loves,
InterestTopic.ButtPlugs: Interest.Dislikes,
InterestTopic.VaginalPlugs: Interest.Dislikes,
InterestTopic.FeminineBody: Interest.KindaLikes,
InterestTopic.AndroBody: Interest.Likes,
InterestTopic.MasculineBody: Interest.ReallyLikes,
InterestTopic.ThickBody: Interest.Dislikes,
InterestTopic.SlimBody: Interest.Likes,
InterestTopic.BigBreasts: Interest.Hates,
InterestTopic.StuffedPussy: Interest.Likes,
InterestTopic.StuffedPussyOrAss: Interest.KindaLikes,
InterestTopic.Pregnant: Interest.ReallyLikes,
InterestTopic.StuffedThroat: Interest.ReallyLikes,
InterestTopic.CoveredInCum: Interest.ReallyLikes,
InterestTopic.CoveredInLotsOfCum: Interest.Likes,
InterestTopic.FullyNaked: Interest.Loves,
InterestTopic.ExposedPussy: Interest.ReallyLikes,
InterestTopic.ExposedAnus: Interest.ReallyLikes,
InterestTopic.ExposedBreasts: Interest.ReallyLikes,
InterestTopic.ExposedCock: Interest.ReallyLikes,
InterestTopic.ExposedPanties: Interest.Hates,
InterestTopic.ExposedBra: Interest.Hates,
InterestTopic.LooseAnus: Interest.SlightlyDislikes,
InterestTopic.LoosePussy: Interest.SlightlyDislikes,
InterestTopic.TightAnus: Interest.Likes,
InterestTopic.TightPussy: Interest.Likes,
InterestTopic.BigCock: Interest.Hates,
}
func interestVerbalReaction(interest):
if(interest == InterestTopic.Pregnant):
return "You are much better fit as a common breeder"
if(interest == InterestTopic.Blindfolds):
return "Overconfident much?"
func _getName():
return "Issix"
func getGender():
return Gender.Male
func getSmallDescription() -> String:
return "Wears a red block uniform with number P-9533. He is an intimidating tall demon-dragon, has red fur."
func getSpecies():
return [Species.Dragon, Species.Demon]
func getThickness() -> int:
return 40
func getFemininity() -> int:
return 0
func createBodyparts():
giveBodypartUnlessSame(GlobalRegistry.createBodypart("dragonhead"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("combedbackhair"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("dragonears2"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("demonhorns3"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthrobody"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("buffarms"))
var breasts = GlobalRegistry.createBodypart("malebreasts")
breasts.size = 0
giveBodypartUnlessSame(breasts)
var penis = GlobalRegistry.createBodypart("dragonpenis")
penis.lengthCM = 15
penis.ballsScale = 1
giveBodypartUnlessSame(penis)
var tail = GlobalRegistry.createBodypart("demontail")
tail.tailScale = 1
giveBodypartUnlessSame(tail)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("hoofs"))
func onGivingBirth(_impregnatedEggCells: Array, _newkids: Array):
.onGivingBirth(_impregnatedEggCells, _newkids)
func getBirthWaitTime():
return 60*60*24*10
func getDefaultEquipment():
return ["inmatecollar", "inmateuniform"]

View file

@ -1,27 +0,0 @@
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

View file

@ -1,536 +0,0 @@
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...")
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", true)
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 saveData():
var data = .saveData()
data["answer"] = answer
data["strikes"] = strikes
return data
func loadData(data):
.loadData(data)
answer = SAVE.loadVar(data, "answer", null)
strikes = SAVE.loadVar(data, "strikes", 0)
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

View file

@ -1,282 +0,0 @@
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 == ""):
setLocationName("Issix's Corner")
if GM.main.getModuleFlag("IssixModule", "Quest_Status") < 6:
playAnimation(StageScene.Duo, "stand", {npc="issix", npcAction="sit"})
else:
playAnimation(StageScene.Duo, "kneel", {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"):
clearCharacter()
addCharacter("issix")
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."+(" He grins, seeing you kneel." if GM.main.getModuleFlag("IssixModule", "Quest_Status") > 5 else ""))
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 == "prison":
saynn("You ask Issix about how he ended up in here. 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=pc]So how long have you been in here?[/say]")
saynn("[say=issix]Enough to find my place, acquire three pets and make my own little business. So 5 years or so. I have it somewhere saved, but I don't really care enough to keep count.[/say]")
addButton("Back", "Turn to other matters", "talk")
if(state == "name"):
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 and they expect us to mine rock for their benefit, we are just slaves.[/say]")
saynn("[say=issix]You are looking at it all wrong. While the rest of the galaxy is participating in a rat-race for who is the most awful of them all, when they are murdering each other daily in show of dominance, when food shortages, speciesism, chaos is happening out there, here? Sure we still have a lot of show of power, but nobody is murdering each other because of it, we have shitty, but food, and speciesism isn't as bad as out there because what's the point, everyone has been reduced to just an inmate. Slavery here isn't only restricted to AlphaCorp's and Syndicate's of the galaxy, which what allows me to have those wonderful pets in here.[/say]")
saynn("[say=pc]So you like it here because you can have your own slaves?[/say]")
saynn("[say=issix]I like it here because I can enjoy what the fuck I enjoy and whatever restrictions this place has don't bother me.[/say]")
addButton("Continue", "Ask about something else", "name")
if(state == "pets"):
addCharacter("azazel")
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"]):
removeCharacter("azazel")
addCharacter("hiisi")
addCharacter("lamia")
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 == "issixdetails"):
saynn("[say=pc]Who are you?[/say]")
saynn("[say=issix]Oh, I'm just a dragon-demon, nobody special. I dabble in... Equipment, and make bunch of things out of it. If you have some unused restraints, feel free to donate them to me, I'll be sure to make use of them, and maybe reward you a little, if I feel like it.[/say]")
saynn("[say=pc]How long have you been in here?[/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)

View file

@ -1,49 +0,0 @@
extends QuestBase
func _init():
id = "PierresPetQuest"
func getVisibleName():
return "Becoming something lesser"
func getProgress():
var quest_status = GM.main.getModuleFlag("PierreModule", "Quest_Status")
var quest_await = GM.main.getModuleFlag("PierreModule", "Quest_Wait_Another_Day", false)
var result = []
result.append("Pierre 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 Pierre asked of you...")
if(quest_status > 2):
result.append("You've got a pack of gum. Return it to Pierre.")
if(quest_status > 4):
result.append("You've delivered a pack of gum to Pierre. 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 Pierre. 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 Pierre. He should have a new task for you today.")
if(quest_status > 5):
pass
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. Pierre 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. Pierre asked you to come other day, at least a day has passed so you should check up with them.")
return result
func isVisible():
return GM.main.getModuleFlag("PierreModule", "Quest_Status") > 0
func isCompleted():
return GM.main.getModuleFlag("PierreModule", "Quest_Status") > 10
func isMainQuest():
return false
# quest_status - state (number)
# 0 - no quest/haven't started
# -1 - refused Pierres quest
# 1 - accepted Pierres quest
# 2 - arrived at closet
# 3 - looted the gumball
# 4 - gave the gumball to Pierre
# 5 -

View file

@ -1,134 +0,0 @@
extends Character
func _init():
id = "lamia"
npcHasMenstrualCycle = false
npcCharacterType = CharacterType.Inmate
pickedSkin="DappledSkin"
pickedSkinRColor=Color("ffca6702")
pickedSkinGColor=Color("ffbb3e03")
pickedSkinBColor=Color("ff9b2226")
npcSkinData={
"hair": {"r": Color("ff274fb9"),"g": Color("ff243770"),"b": Color("ff3022ab"),},
"horns": {"r": Color("ff000000"),"g": Color("ff000000"),},
"penis": {"r": Color("ff2b2a2a"),"g": Color("ff373232"),"b": Color("ff8b0000"),},
"tail": {"skin": "WildSkin",},
}
npcPersonality = {
PersonalityStat.Brat: -0.9,
PersonalityStat.Mean: 0.4,
PersonalityStat.Subby: 1.0,
PersonalityStat.Impatient: 0.9,
PersonalityStat.Naive: -1.0,
PersonalityStat.Coward: -0.4,
}
npcDefaultFetishInterest = FetishInterest.Neutral
npcFetishes = {
Fetish.AnalSexReceiving : FetishInterest.ReallyDislikes,
Fetish.AnalSexGiving : FetishInterest.Hates,
Fetish.VaginalSexGiving : FetishInterest.Hates,
Fetish.OralSexReceiving : FetishInterest.Dislikes,
Fetish.OralSexGiving : FetishInterest.Dislikes,
Fetish.Sadism : FetishInterest.Hates,
Fetish.Masochism : FetishInterest.Hates,
Fetish.UnconsciousSex : FetishInterest.Hates,
Fetish.Breeding : FetishInterest.Hates,
Fetish.Bondage : FetishInterest.Dislikes,
Fetish.Rigging : FetishInterest.Dislikes,
Fetish.Condoms : FetishInterest.Dislikes,
Fetish.DrugUse : FetishInterest.Dislikes,
Fetish.Exhibitionism : FetishInterest.Dislikes,
Fetish.Tribadism : FetishInterest.SlightlyDislikes,
Fetish.StraponSexVaginal : FetishInterest.Dislikes,
Fetish.StraponSexAnal : FetishInterest.SlightlyDislikes,
Fetish.Choking : FetishInterest.SlightlyDislikes,
Fetish.HypnosisSubject : FetishInterest.Hates,
Fetish.HypnosisHypnotist : FetishInterest.Hates,
}
npcLustInterests = {
InterestTopic.TallyMarks: Interest.Dislikes,
InterestTopic.Bodywritings: Interest.Dislikes,
InterestTopic.Gags: Interest.Dislikes,
InterestTopic.Blindfolds: Interest.Dislikes,
InterestTopic.BDSMRestraints: Interest.Dislikes,
InterestTopic.ButtPlugs: Interest.Dislikes,
InterestTopic.VaginalPlugs: Interest.Dislikes,
InterestTopic.FeminineBody: Interest.KindaLikes,
InterestTopic.AndroBody: Interest.Likes,
InterestTopic.MasculineBody: Interest.ReallyLikes,
InterestTopic.ThickBody: Interest.Dislikes,
InterestTopic.SlimBody: Interest.Dislikes,
InterestTopic.BigBreasts: Interest.Hates,
InterestTopic.StuffedPussy: Interest.Dislikes,
InterestTopic.StuffedPussyOrAss: Interest.Dislikes,
InterestTopic.Pregnant: Interest.Dislikes,
InterestTopic.StuffedThroat: Interest.Dislikes,
InterestTopic.CoveredInCum: Interest.Dislikes,
InterestTopic.CoveredInLotsOfCum: Interest.Dislikes,
InterestTopic.FullyNaked: Interest.Loves,
InterestTopic.ExposedPussy: Interest.ReallyLikes,
InterestTopic.ExposedAnus: Interest.ReallyLikes,
InterestTopic.ExposedBreasts: Interest.ReallyLikes,
InterestTopic.ExposedCock: Interest.ReallyLikes,
InterestTopic.ExposedPanties: Interest.Hates,
InterestTopic.ExposedBra: Interest.Hates,
InterestTopic.LooseAnus: Interest.Dislikes,
InterestTopic.LoosePussy: Interest.Dislikes,
InterestTopic.TightAnus: Interest.Dislikes,
InterestTopic.TightPussy: Interest.Dislikes,
InterestTopic.BigCock: Interest.Hates,
}
func interestVerbalReaction(interest):
if(interest == InterestTopic.Pregnant):
return "Oh, do you have litter in there? Cuuute, meoowwww!"
if(interest == InterestTopic.Blindfolds):
return "Purrr. How is your hearing? Can you hear me purring from over there?"
func _getName():
return "Lamia"
func getGender():
return Gender.Male
func getSmallDescription() -> String:
return "Wears an orange uniform with number P-1211."
func getSpecies():
return [Species.Canine] # if in the future foxes are introduced, the character is canonically a fox
func onGivingBirth(_impregnatedEggCells: Array, _newkids: Array):
.onGivingBirth(_impregnatedEggCells, _newkids)
func getBirthWaitTime():
return 60*60*24*2
func getDefaultEquipment():
return ["inmatecollar", "inmateuniformGeneral"]
func getThickness() -> int:
return 70
func getFemininity() -> int:
return 20
func createBodyparts():
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthrobody"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anthroarms"))
var breasts = GlobalRegistry.createBodypart("malebreasts")
breasts.size = 0
giveBodypartUnlessSame(breasts)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("foxhead"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("messyhair2"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("fennecears"))
giveBodypartUnlessSame(GlobalRegistry.createBodypart("dragonhorns"))
var penis = GlobalRegistry.createBodypart("felinepenis")
penis.lengthCM = 15
penis.ballsScale = 1
giveBodypartUnlessSame(penis)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("anuswomb"))
var tail = GlobalRegistry.createBodypart("foxtail")
tail.tailScale = 0.5
giveBodypartUnlessSame(tail)
giveBodypartUnlessSame(GlobalRegistry.createBodypart("digilegs"))

View file

@ -1,28 +0,0 @@
extends EventBase
func _init():
id = "MedicalLamiaPeekEvent"
func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringRoom, "med_near_wards")
es.addEventCheck(self, "ElizaBusy")
func react(_triggerID, _args):
if(getModuleFlag("IssixModule", "Quest_Status") == 5 and getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == true):
runScene("MedicalLamiaPeekScene")
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!
#addButton("Investigate", "Eavesdrop on large commotion in the hospital room next to you", "main")
return false
func getPriority():
return 150
func onButton(_method, _args):
if(_method == "main"):
runScene("MedicalLamiaPeekScene")
func eventCheck(_checkID, _args = []): # sorry player, you can't heal, Eliza is occupied by Issix's pet
if(_checkID == "ElizaBusy" and getModuleFlag("IssixModule", "Quest_Status") == 5 and getModuleFlag("IssixModule", "Quest_Wait_Another_Day") == true):
return {busy=true}

View file

@ -1,72 +0,0 @@
extends SceneBase
func _init():
sceneID = "MedicalLamiaPeekScene"
#func _reactInit():
# endScene()
# return
func _run():
if(state == ""):
if (getModuleFlag("IssixModule", "Medical_Peeked") == null):
saynn("You can definietely hear something happening in the hospital room north...")
addButtonAt(3, "Investigate", "Try to see if you can hear something", "eavesdrop")
else:
saynn("The room to north seems to be quiet now, occassionally some ruffling can be heard.")
addDisabledButtonAt(6, "North", "The double doors leading to the room are closed shut, you can't go in")
addButtonAt(10, "West", "Go west", "west")
addButtonAt(12, "East", "Go east", "east")
#addButtonAt("Leave", "Leave", "endthescene")
# How to lock player out of entering the hospital room?
# just force a scene of them Mr White yo
if(state == "eavesdrop"):
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("[say=issix]- long ---? --- pain?[/say]")
saynn("[say=eliza]-- tell, --- midnight. We've -- anesthetic -- shouldn't feel any -. ------ nutrients --, --- needs - rest.[/say]")
saynn("[say=issix]-- believe --- again, -- sake![/say]")
saynn("There is a sounds of someone banging on something.")
saynn("[say=eliza]-- calm, Issix, --- fine. That -, -- remove - parasite, -- integrated --- at --. -- to live --, - just - Sacrifices.[/say]")
saynn("[say=issix]-- told me -- last --, --- nothing --- done?[/say]")
saynn("[say=eliza]-- AlphaCorp --- the inmate ---... - sorry.[/say]")
saynn("[say=azazel]---, I - Lamia ---.[/say]")
saynn("[say=hiisi]--, Master, ---- be okey.[/say]")
saynn("[say=issix]... Thank -, pets. --[/say]")
saynn("Slight weeping can be heard from behind the doors.")
saynn("[say=issix]--- care ----, I can't lose ---, --? ---- together.[/say]")
saynn("[say=azazel]-- Master! ------![/say]")
saynn("[say=hiisi]No ----![/say]")
saynn("[say=issix]--. wait - Lamia --.[/say]")
saynn("[say=eliza]-- stay ----, -- observe --.[/say]")
saynn("[say=issix]Thank -, -.[/say]")
saynn("The voices are now quiet, you think the conversation ended.")
addButton("Leave", "This seems to be over now", "")
func _react(_action: String, _args):
if(_action == "west"):
aimCameraAndSetLocName("med_corridor13")
GM.pc.setLocation("med_corridor13")
endScene()
return
if(_action == "east"):
aimCameraAndSetLocName("med_corridor14")
GM.pc.setLocation("med_corridor14")
endScene()
return
if(_action == "endthescene"):
endScene()
return
setState(_action)
func getDevCommentary():
return "This is a bonus scene for those who are clever enough to think of checking the hospital room after the medical incident with Lamia happens. I specifically didn't leave any hints that player can come here and just listen in, I consider this scene to be fairly natural outcome and I rely on player's intuition to get in here. I honestly struggled with making it so the player cannot get in the room to the north by themselves, there doesn't seem to be a way to modify cell's properties like going to certain location. Ultimately what I went with is forcing a new scene upon the player. I don't claim this is foolproof way to secure this, I'm sure there will be bugs with some other events that force player to come to the medical room. But I guess I'll solve those when they come up, I'm not too keen on doing a lot of testing at this moment. The fully non-censored dialogue was written in here as it played out in my head. I later replaced the words, tried to do - per one word. Blanks leave a lot to imagination of the player. They can try to decipher it by imagining word that would fit in given context, and that's entirely valid approach. But in general, it's really fun to let the player fill the blanks by themselves. The characters in this one may feel evil, or good depending on player's interpretation. But in general? This scene is supposed to be foreshadowing certain future events, but I'm not planning to include them in 1.0 release. Oh, also, the full dialogue as I've written it is available for just $2.99! Buy it when it still exists on my PC! (that's a joke, of course)"
func hasDevCommentary():
return true

View file

@ -1,20 +0,0 @@
extends SceneBase
func _init():
sceneID = "NoPetsTalkScene"
func _run():
if(state == ""):
setLocationName("Issix's Corner")
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 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.")
addButton("Leave", "Leave the paper as it is", "endthescene")
func _react(_action: String, _args):
if(_action == "endthescene"):
endScene()
return
setState(_action)

View file

@ -1,25 +0,0 @@
extends EventBase
func _init():
id = "Ch1IssixQuestWalk"
func registerTriggers(es):
es.addTrigger(self, Trigger.TalkingToNPC, "issix")
func run(_triggerID, _args):
if(GM.main.getModuleFlag("IssixModule", "Quest_Status") == 6):
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
return false
func onButton(_method, _args):
if(_method == "main"):
GM.main.endCurrentScene()
runScene("IssixPetWalk")
func getPriority():
return 20

View file

@ -1,629 +0,0 @@
extends SceneBase
var answer = null
var strapon_selected = null
var rock_paper_scissors = {1: 3, 2: 1, 3: 2}
var rock_paper_scissors_translation = {1: "Rock", 2: "Paper", 3: "Scissors"}
func _init():
sceneID = "IssixPetWalk"
func _run():
if(state == ""):
#if GM.main.getTime() < 75600:
saynn("[say=issix]So here you are, kneeling, like a good pet. You know, if you don't like it, you can still say no. Once I make you my pet, you won't have much choice in that matter, so I really hope you know what you are doing.[/say]")
saynn("Looks at you, grinning seductively, licking his lips.")
addButton("Own me", "Say that you want Issix to own you", "walkstart")
addButton("Abandon", "Abandon your quest for a master", "refusal")
if(state == "refusal"):
saynn("[say=issix]Disappointing, after everything you've done, but better late than never, huh? In that case you can stop kneeling, your training ended prematurely. If you need anything of me, I'll be here.[/say]")
setModuleFlag("IssixModule", "Quest_Status", 5)
setModuleFlag("IssixModule", "Quest_Rejected_By_Issix", 3)
addButton("Continue", "Finish this talk", "endthescene")
if(state == "walkstart"):
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
GM.pc.getInventory().forceEquipStoreOtherUnlessRestraint(GlobalRegistry.createItem("basketmuzzle"))
saynn("[say=issix]Wondeful, here is how this is going to go. I'm going on a little walk with my three pets in here, we are going to certain, very quiet place. I'm going to clip this leash to your collar and you are going to follow like a good pet.[/say]")
saynn("Not the first time you've been leashed, but this time it would be special, you'll be led by Master Issix along with his other pets.")
saynn("[say=issix]However, I want you to remember - this is a test. Depending on how you perform, you may or may not become my pet. But even if not, I hope it still proves to be a fun experience for you.")
saynn("[say=issix]Now come closer and show me your pretty neck.[/say]")
saynn("You come a little closer, your head is basically in Issix's crotch, until you look at his face. He smiles, puts his fingers under your chin and lifts your head further, holding the end of a leash up to your collar, finally clicking it in place.")
saynn("[say=issix]You look almost perfect, I think I'm missing one more thing, just this time.[/say]")
saynn("He pulls out basket muzzle from behind, you allow him to cover your face with it. His paw reaches behind and fastens the backet muzzle onto your head until it sits securely in place.")
saynn("[say=issix]Perfect, how do you feel?[/say]")
addButton("Good", "Say you feel good", "walkies", [true])
addButton("Uncomfortable", "Say you feel uncomfortable", "walkies", [false])
if state == "walkies":
if answer:
saynn("[say=issix]As you should. We are good to go now.[/say]")
else:
saynn("[say=issix]Aww, well, you can always say no after walk is over, see if you change your mind until the end, okey? We are good now here.[/say]")
saynn("[say=issix]For the walk I expect you to refer to me as Master. You listen to me only, you don't fuck with random people we walk past. If you are confused what you are to do, look at my other pets for guidence.[/say]")
saynn("[say=issix]Azazel, Hiisi, Lamia, we are going for a walk to the pasture.[/say]")
saynn("[say=hiisi]Is {pc.name} coming with us this time?[/say]")
saynn("[say=issix]He wants to see how is it being my pet, I expect you lot to be nice to {pc.him} and no having sex without their permission, understood? He isn't my pet yet.[/say]")
saynn("Every pet nod their head in unison")
saynn("[say=azazel]So happy we've got a friend to walk with us today![/say]")
saynn("[say=issix]So am I, come.[/say]")
addButton("Let's go", "Follow your (temporary) master on fours", "walkies2")
if state == "walkies2":
processTime(10*60)
aimCamera("main_yard_connector")
setLocationName("Corridor")
addCharacter("issix")
addCharacter("nova")
playAnimation(StageScene.Duo, "stand", {pc="nova", npc="issix", npcAction="stand"})
saynn("[say=nova]Got yourself a new pet Issix?[/say]")
saynn("[say=issix]Not exactly, let's just say {pc.he} is on a... Probation.[/say]")
saynn("Issix chuckles, clearly happy wiith his joke.")
if getModuleFlag("NovaModule", "Nova_GotHumiliatedByPC", false):
saynn("[say=nova]Watch out for this one, this one is feisty one.[/say]")
saynn("[say=issix]Oh, speaking from experience?[/say]")
saynn("[say=nova]Experience I'd rather not have, but yes.[/say]")
saynn("[say=issix]I'll keep that in mind. So far they've been well-behaved.[/say]")
saynn("[say=nova]Better keep that leash tight then.[/say]")
else:
saynn("[say=nova]Cute one.[/say]")
saynn("[say=issix]Had experience meeting them yet?[/say]")
if getModuleFlag("NovaModule", "Nova_SawPC") || getModuleFlag("NovaModule", "Nova_Introduced"):
saynn("[say=nova]Indeed. Not much to say about {pc.him} though.[/say]")
saynn("[say=issix]Cool, we will be on our way then.[/say]")
else:
saynn("[say=nova]Not really, no.[/say]")
saynn("[say=issix]Strange, they are a quite popular of a slut. Oh well, we'll be on our way.[/say]")
saynn("[say=nova]Have a nice walk, Issix.[/say]")
saynn("Nova winks at you and continues to walk towards the stocks.")
addButton("Continue", "Continue the walk", "walkies3")
if state == "walkies3":
processTime(15*60)
clearCharacter()
addCharacter("azazel")
addCharacter("hiisi")
addCharacter("lamia")
saynn("Eventually, you reach your destination, a quiet place near a small lake. On the east high above you you can see greenhouses. A very faint sound of water hitting water can be heard coming from the waterfall. Issix places a large blanket near the lake and invites his pets (including you) on it. Surprisingly he comes to each one of you, unclips the leashes, puts them in side pocket of his bag which he leaves near the blanket and comes closer to the lake, wetting his feet. All done without a word, in relative silence only broken by humming of the station along with sound of waterfall in proximity. Three pets around you lose their top clothes, it would be a bit difficult with your basket muzzle.")
saynn("You look at other pets, trying to understand what you should do. \"Pasture\" is the word Issix used to describe this place, is it not? It seems like Azazel lays on their back, looking up in the skylight, at countless stars in the distance. Hiisi seemingly lost in thought watching his Master relaxing just up close, with his feet in the lake while Lamia, taking his stacks of paper from Master's bag keeeps practicing drawing.")
addButton("Azazel", "Talk to Azazel", "azazel")
addButton("Hiisi", "Talk to Hiisi", "hiisi")
addButton("Lamia", "Talk to Lamia", "lamia")
addButton("Look around", "Do something else?", "else")
if state == "walkies4":
playAnimation(StageScene.Solo, "kneel")
#saynn("Eventually, you reach your destination, a quiet place near a small lake. On the east high above you you can see greenhouses. A very fait sounds of water hitting water can be heard coming from the waterfall. Issix places a large blanket near the lake and invites his pets (including you) on it. Surprisingly he comes to each one of you, unclips the leashes, puts them in side pocket of his bag which he leaves near the blanket and comes closer to the lake, wetting his feet. All done without a word, in relative silence only broken by humming of the station along with sound of waterfall in proximity.")
saynn("You look at other pets, trying to understand what you should do. \"Pasture\" is the word Issix used to describe this place, is it not? It seems like Azazel lays on their back, looking up in the skylight, at countless stars in the distance. Hiisi seemingly lost in thought watching his Master relaxing just up close, with his feet in the lake while Lamia, taking his stacks of paper from Master's bag keeeps practicing drawing.")
addButton("Azazel", "Talk to Azazel", "azazel")
addButton("Hiisi", "Talk to Hiisi", "hiisi")
addButton("Lamia", "Talk to Lamia", "lamia")
addButton("Look around", "Do something else?", "else")
if state == "azazel":
processTime(1*60)
playAnimation(StageScene.Duo, "kneel", {npc="azazel", npcAction="kneel"}) # TODO We need laying down!
saynn("Azazel looks at the stars, his face content.")
addButton("What now?", "Ask what the group usually does coming here", "azazelwhathere")
if getModuleFlag("IssixModule", "Azazel_Sky_Response") == null:
addButton("Stars", "Ask Azazel what does he see in the sky", "azazelsky")
else:
addDisabledButton("Stars", "You've already asked Azazel about the stars")
if getModuleFlag("IssixModule", "Lamia_Is_Hungry", true):
addButton("Lamia", "Tell Azazel Lamia is hungry, maybe he'll be able to help", "azazelfood")
addButton("Back", "End the conversation", "walkies4")
if state == "azazelsky":
saynn("[say=pc]What do you see up there?[/say]")
saynn("[say=azazel]Possibilities. Stars, around which there are planets. Trillions of different creatures living across the galaxies. All with their own memories, lives, worries, cherished family members, friends, connections, stories to tell... Meow.[/say]")
saynn("You lay beside Azazel, looking at stars above, he continues.")
saynn("[say=azazel]We live for a fraction of time in the general timeline, we have a little time to tell our own stories before they are gone, and then there are also people who can shorten our lifespan because of simple hatered or economic reasons. How many stories are untold? How many people forgotten? Why do we even matter in grand scheme of things all of this considered?[/say]")
saynn("You prepare to respond, but before you can start speaking he continues")
saynn("[say=azazel]I like to imagine, I really like to imagine, that somewhere out there there is a planet with creatures who don't have existencial worries, who's lives are filled with pleasures, where they can be who they are without being judged, humiliated or killed. I like to think that they pass down stories through generations, maybe write them down and each new generation has access to them, drawing wisdom and not repeating mistakes of the past. They don't have to worry about AlphaCorp, Syndicate and whatever else is out there, not about groups hunting them down for who they are. They live in a moment, they lie on the blanket and look above, at the stars, holding paw of their partner, imagining the worlds full of happy people like them out there.[/say]")
saynn("You listen to Azazel's monologue in curiosity, deciding not to interrupt or add anything, you just lie beside him, thinking along him of such a planet full of happy creatures. After a while, he speaks again.")
saynn("[say=azazel]Do you think such a planet exists?[/say]")
addButton("Hopeful", "You do think such a planet exists", "azazelskyresponse", [true])
addButton("Doubtful", "You don't believe such a planet exists", "azazelskyresponse", [false])
if state == "azazelskyresponse":
if answer:
saynn("While you don't see Azazel's face, judging from tone of his voice are fairly certain he is smiling, happy")
saynn("[say=azazel]I think so too.[/say]")
else:
saynn("Azazel, sounding a little let down says")
saynn("[say=azazel]I see. I think... Personally... That such a planet exists. I really want it to.[/say]")
saynn("[say=azazel]Thanks for listening, by the way. I think about those things a lot, it's good to have someone new beside me to listen to them.[/say]")
addButton("Back", "Focus on something else", "azazel")
if state == "azazelwhathere":
saynn("[say=pc]I'm a bit lost, what do you usually do when you come here? What are the rules? Why are we not on the leash?[/say]")
saynn("Azazel laughs")
saynn("[say=azazel]Sorry, hearing those questions is kind of funny. This place is what we call „pasture”. We sometimes come here to relax and play. The atmosphere in here lets us forget we are in a prison and there is so much space in here. „Pasture” came from our little inside joke, but I like it and I think it fits this place fairly well.[/say]")
saynn("You see Azazel taking a small piece of dirt from the ground and throwing it at Hiisi, before it hits Hiisi he immediately repositions his body as to pretend he wasn't the culprit of random act of falling dirt, while continuing the conversation to make his alibi stronger")
saynn("[say=azazel]So yeah, in general Master unclips our leash and expects us to use the free time in our own way. It really depends on what we want to do, sometimes we fuck with each other, sometimes Master joins it, sometimes we relax like I do today, sometimes we play hide and seek or tag. I'm afraid that if you are hoping for some action today - you might be disappointed. If I had to guess the rest of us is rather tired or not in the mood.[/say]")
saynn("After piece of dirt reached Hiisi he took notice and looked around for culprit. His eyes eventually met Azazel's who smiled while at the same time speaking to you and trying to keep eye contact with you. Hiisi rolled his eyes and continued staring at Master.")
saynn("[say=azazel]As to the rules? All of the usual ones apply, just don't go too far so Master doesn't have to worry about you, don't fuck with other inmates without Master's permission, and maybe don't bother those who don't want to be bothered, it's everyone's time for some peace, I guess.[/say]")
saynn("[say=azazel]Sorry that it's so uneventful in your trial day, perhaps next time we go and you join us as Master's pet there would be more we could do.")
addButton("Back", "Thank Azazel for explanation", "azazel")
if state == "azazelfood":
setModuleFlag("IssixModule", "Lamia_Is_Hungry", false)
saynn("[say=pc]I talked a bit with Lamia, they are hungry, do you have any food?[/say]")
saynn("[say=azazel]Ughhh, I don't know what's up with him. It's not the first time like this. Master explained to them many times already that snacks are in the bag we take every day when we go on pasture and we are free to take any. For some reason Lamia chooses to avoid taking out the snacks from them even though it's fine for them to do so. Thanks for telling me this {pc.name}, I'll take care of it right away.[/say]")
saynn("Azazel crawls to the bag at the edge of the blanket, rummages it for a minute and takes out an apple and energy bar from it, coming to Lamia and giving them the snacks. Lamia pauses their drawing to consume some snacks, they thanked Azazel by their head nods.")
addButton("Back", "Your job is done here", "walkies4")
if state == "hiisi":
playAnimation(StageScene.Duo, "kneel", {npc="hiisi", npcAction="kneel"})
saynn("Hiisi sits with his hands hugging legs, staring at his Master, and a lake in silence.")
addButton("Master", "Ask why is he staring at his Master", "hiisimaster")
addButton("Distraction", "Hiisi seems nervious, maybe he'd be up for some temporary distraction?", "hiisirpc")
addButton("Back", "End the conversation", "walkies4")
if state == "hiisimaster":
processTime(5*60)
saynn("[say=pc]Is there something wrong with Master?[/say]")
saynn("[say=pc]Oh, {pc.name}? I don't know.[/say]")
saynn("He says without looking at you, continuing to look at his Master")
saynn("[say=hiisi]Usually when Master is down he is irritated and sometimes even aggressive. He isn't this time, he just feels off. I asked him about this before but he hasn't given me an answer.[/say]")
saynn("[say=pc]Do you have any theories?[/say]")
saynn("[say=hiisi]... No.[/say]")
saynn("[say=pc]Certainly odd. He does feel strange.[/say]")
saynn("Hiisi doesn't respond, he continues observing back of his master who is currently sitting and looking across the lake.")
addButton("Back", "End the conversation", "hiisi")
if state == "hiisirpc":
saynn("[say=pc]Hey Hiisi, you seem a bit anxious, how about we play a bit of rock, paper, scissors to lighten the mood?[/say]")
saynn("Hissi looks at you, his face quite sad but he seems convinced.")
saynn("[say=hiisi]I guess... We could play until 3 wins if you want... Do you want to play for something?[/say]")
saynn("[say=pc]Sure, what would you like to play for?[/say]")
saynn("[say=hiisi]What about a future favor? I promise it won't be anything harmful... I'd just want to try something.[/say]")
saynn("[say=pc]Sounds suspicious but I'm in, as for myself...[/say]")
addButton("Good time", "Ask Hiisi for sex", "hiisirpsfirst", [1])
addButton("Snuggle", "Wholesome version of close contact fun, but maybe that's what Hiisi needs", "hiisirpsfirst", [2])
addButton("Drink", "Ask Hiisi for something regular, energy drink shouldn't be that hard to get right?", "hiisirpsfirst", [3])
if state == "hiisirpsfirst":
match getModuleFlag("IssixModule", "Hissi_RPS_data")["chosen_reward"]:
1:
saynn("[say=pc]How about good time as a reward? Right after the game?[/say]")
saynn("[say=hiisi]I'm not sure... You are not Master's pet yet...[/say]")
saynn("[say=pc]That's true, and nonetheless Master Issix decided to take me for a walk here, I don't think he would mind.[/say]")
saynn("He thinks for good 20 seconds about your proposition.")
saynn("[say=hiisi]Alright, you're on.[/say]")
2:
saynn("[say=pc]How about a hug as a reward? Right after the game?[/say]")
saynn("[say=hiisi]... Just a hug? You are not using hug as an euphemism, right?[/say]")
saynn("[say=pc]Nope. Just a hug.[/say]")
saynn("Hiisi seems surprised a little, you can see his tail move hearing that.")
saynn("[say=pc]Sounds great, I like it, you're on.[/say]")
3:
saynn("[say=pc]You could give me something... Like an energy drink? Not right now, at some other time.[/say]")
saynn("[say=hiisi]Just that? An energy drink? Sounds doable.[/say]")
saynn("[say=pc]Just that.[/say]")
saynn("[say=pc]Sure, you're on.[/say]")
saynn("[say=pc]Great! Let's do this. Three... Two... One...[/say]")
addButton("Rock", "Use rock in this round", "hiisirps", [1])
addButton("Paper", "Use paper in this round", "hiisirps", [2])
addButton("Scissors", "Use scissors in this round", "hiisirps", [3])
if state == "hiisirps":
var rpc_data = getModuleFlag("IssixModule", "Hissi_RPS_data") # {"winpc": 0, "winh": 0, "chosen_reward": answer, "reward_acquired": false, "last_used": 0}
saynn("[say=pc]"+rock_paper_scissors_translation[rpc_data["last_used"]%10]+"![/say]")
saynn("[say=hiisi]"+rock_paper_scissors_translation[rpc_data["last_used"]/10]+"![/say]")
match rps_win_conditions(rpc_data["last_used"]%10, rpc_data["last_used"]/10):
1:
saynn("{pc.name} wins!")
2:
saynn("Hissi wins!")
3:
saynn("It's a tie!")
if rpc_data["winpc"] or rpc_data["winh"]:
saynn("Current standings: \n{pc.name}: {winpc}\nHissi: {winh}".format(rpc_data))
if rpc_data["winpc"] > 2:
addButton("Celebrate", "You've won, wooho", "hiisirpspcwin")
elif rpc_data["winh"] > 2:
addButton("Lost", "You've lost the game fair and square", "hissirpshiisiwin")
else:
addButton("Rock", "Use rock in this round", "hiisirps", [1])
addButton("Paper", "Use paper in this round", "hiisirps", [2])
addButton("Scissors", "Use scissors in this round", "hiisirps", [3])
if state == "hiisirpspcwin":
saynn("[say=pc]Haha, I did it. Nice game, thanks for playing Hissi.[/say]")
saynn("You've noticed that his mood has brightened, and he isn't so gloomy anymore.")
saynn("[say=hiisi]Yeah, thank you for that, was actually pretty nice, glad we could have this one.\nYou know... You are pretty cool {pc.name}.[/say]")
saynn("He looks down, but with slight grin on his face.")
saynn("[say=pc]Awwwww. Thank you Hiisi! You are pretty cool yourself too, you know![/say]")
saynn("[say=hiisi]Yeah... As to your reward...[/say]")
match getModuleFlag("IssixModule", "Hissi_RPS_data")["chosen_reward"]:
1:
saynn("[say=hiisi]We can do that in here... If you want. But, would you like to be in charge or should I?[/say]")
addButton("Dom Hiisi", "Say you'd like to dominate Hiisi", "hiisisubsex")
addButton("Sub Hiisi", "Say you'd like Hiisi to take charge", "hiisidomsex") # TODO
2:
saynn("[say=hiisi]Let's do it![/say]")
saynn("He exlaims, excited")
addButton("Hug", "Hug the doggo", "hiisihug")
3:
saynn("[say=hiisi]Please ask me once when we are back in our corner, I should have one energy drink by then[/say]")
addButton("Back", "Say that sure, you're going to ask him about it then", "hiisi")
if state == "hiisihug":
playAnimation(StageScene.Hug, "hug", {pc="pc", npc="hiisi", bodyState={naked=true, hard=false}, npcBodyState={naked=true, hard=false}})
saynn("You come really close to Hiisi, stretching your arms and embracing the puppy")
saynn("[say=pc]It's all fine, okey? You are a good boy.[/say]")
saynn("He embraces you back, applying some strength into a hug. This hug feels really intimate for some reason, you can feel Hiisi's breath, you can feel his heartbeat with how close he is. You stay like this for a while.")
saynn("[say=hiisi]Thank you, I needed that.[/say]")
addButton("Back", "This path is not yet finished, sorry!", "hiisi")
if state == "hiisisubsex":
saynn("You reach with your paws to pull Hiisi up close, he puts up no resistance as you embrace him in a tight hug, your paws exploring his back going lower and lower until reaching his butt and squeezing his butt cheeks. He yelps.")
saynn("[say=pc]Is the puppy ready for some action? I'll try to be gentle.[/say]")
saynn("[say=hiisi]Let's just get it over with already.[/say]")
saynn("[say=pc]Good. Let's start.[/say]")
if GM.pc.hasReachablePenis():
addButton("Anal", "Use your tool in doggy ass", "hiisisubanal")
addButton("Oral", "Make the doggo suck your tool", "hiisisuboral") # TODO
elif (GM.pc.isWearingStrapon() or GM.pc.hasStrapons() and GM.pc.canWearStrapon()):
var strapons: ItemBase = GM.pc.getStrapons()
for strapon in strapons:
addButton("Anal", "Use a "+strapon.getCasualName()+" on doggy ass", "hiisisubanal", [strapon.id])
#addButton("Oral", "Make the doggo suck your "+strapon.getCasualName(), "hiisisuboral", [strapon])
#if GM.pc.hasReachableVagina():
# addButton("Vaginal", "Make the dog fuck your pussy", "hiisisubvaginal") # TODO low priority
if state == "hiisisubanal":
playAnimation(StageScene.SexAllFours, "tease", {pc="pc", npc="hiisi", bodyState={naked=true, hard=true}, npcBodyState={naked=true, hard=false}})
# You may believe me or not, but after 7 years of reading furry smut I can't write smut myself. The following is probably my first attempt at writing any kind of sexual scene all by myself, please be gentle with the criticism <3
saynn("[say=pc]What a good subby dog you are! How about you turn around so I can prepare you?[/say]")
saynn("You let go of Hiisi, he turns around on his knees and puts his front paws on the ground, nicely staying on his fours for you. Presenting you with his back full of light gray fur and on lower part of it a brand ”PROPERTY OF ISSIX”. A reminder of what's to come if you decide to dedicate yourself to Master Issix. You run your fingers through the fur on his back gently touching the brand itself, its texture pretty smooth.")
saynn("[say=hiisi]Are you waiting for something? Don't want to hurry you up, just unsure if you want something of me.[/say]")
saynn("[say=pc]You are good, the color of your fur is just so good.[/say]")
if GM.pc.getInventory().hasItemID("lube"):
GM.pc.getInventory().removeXOfOrDestroy("lube", 1)
saynn("You apply some lube onto canine's pucker hole")
saynn("[say=hiisi]Ahhhh, cold![/say]")
saynn("[say=pc]Only for a moment, we are going to make it hot really soon. Hang on tight there Hiisi.[/say]")
saynn("You don't waste your chance to stimulate the dog with your fingers. First putting just one to test out the waters. Hiisi's hole isn't tight nor loose, though one finger already makes the dog lose his composure. He starts panting a little. You insert second finger intensifying the sounds coming from the other end. You massage his ring to relax it a little bit.")
saynn("[say=pc]You okey there?[/say]")
saynn("He respond just with huffs. It really didn't take a lot to stimulate the gray furred canine. You take out your fingers and see glistening hole.")
if strapon_selected != null:
saynn("You fit in place your {pc.penisOrStrapon}, and tease Hiisi with the tip.")
else:
saynn("You tease doggo pucker with the tip of your {pc.penis}.")
saynn("[say=pc]Does the dog want a bone now, or should I keep teasing?[/say]")
saynn("[say=hiisi]Nooo. Please put it in me.[/say]")
addButton("Continue", "Put the bone inside the dog ass", "hiisisubanal2")
if state == "hiisisubanal2":
playAnimation(StageScene.SexAllFours, "sex", {pc="pc", npc="hiisi", bodyState={naked=true, hard=true}, npcBodyState={naked=true, hard=true}})
saynn("[say=pc]Heere we go, ahh.[/say]")
saynn("[say=hiisi]Mmmphhh.[/say]")
saynn("Hiisi lets another yelp as you push your {pc.strapon} into Hiisi's backdoor. "+("Your stapon" if strapon_selected else "Your penis")+" slid with little issues, but the slickness of the hole increased as you continued to ram Hiisi's backside. It was clear that Hiisi didn't want to make too much noise, which has made his pleasure moans even more cute.")
saynn("[say=pc]How are you doing cutie? Should I go faster? Slower?[/say]")
saynn("[say=hiisi]Mhhhmm. You are fine.[/say]")
saynn("Barely comprehensible speech of canine could be hears coming from his muzzle on the other side, pleasure melting away ability to speak well. You slightly quicken the pace being close to orgasm.")
addButton("Creampie?", "Does the canine want you to pull out?", "hiisisubanal3")
if state == "hiisisubanal3":
playAnimation(StageScene.SexAllFours, "fastflop", {pc="pc", npc="hiisi", bodyState={naked=true, hard=true}, npcBodyState={naked=true, hard=true}})
saynn("[say=pc]Umm, Hiisi, do you want me to cum inside or pull out?[/say]")
saynn("[say=hiisi]HMmmaaahhhhh.[/say]")
saynn("Seemingly unable to properly respond you decide to pull out before you reach orgasm, feeling like it's what Hiisi would want. You only now notice Hiisi's hard cock beneath as if there wasn't enough of evidence canine was enjoying the treatment.") # No you stupid bitch of a writer, why would a reader want that??????
saynn("Hiisi's front arms eventually give up and only his butt is sticking out in the air as you ram "+("your stapon" if strapon_selected else "your penis")+" in his pleasure tunnel, eventually feeling that soon your pleasure will achieve its final destination.")
addButton("Pull out", "Pull out of the puppy", "hiisisubanal4")
if state == "hiisisubanal4":
playAnimation(StageScene.SexAllFours, "teaseflop", {pc="pc", npc="hiisi", pcCum=true, npcCum=true, bodyState={naked=true, hard=true}, npcBodyState={naked=true, hard=true}})
saynn("Eventually you feel like you are really close to orgasm and pull out of Hiisi's hole, painting it white just half a second after your tip leaves. Similarly, Hiisi leaves plenty of his own jizz on the blanket below. You both moan in ecstasy drawing looks from pets around and Master Issix. Those aren;t looks of judgement, but rather just curiosity.")
saynn("[say=hiisi]T-thanks. Was okey.[/say]")
saynn("Very restrained words of thanks from Hiisi. But you still take them.")
saynn("[say=pc]Same. Was fun![/say]")
saynn("After a little required cleanup, Hiisi trying to clean up cumstains both from the blanket as well as excessive cum from his ass, you can consider your session truthfully over.")
addButton("Finish", "Your little session with Hiisi is over now, time to go back to other stuff", "hiisi")
if state == "hiisidomsex":
addButton("Back", "This path is not yet finished, sorry!", "hiisi") # TODO
#getCharacter("hiisi").prepareForSexAsDom()
#runScene("GenericSexScene", ["hiisi", "pc"], "subbysex")
if state == "hissirpshiisiwin":
saynn("[say=hiisi]Awesome! I didn't expect to win, that was fun.[/say]")
saynn("He seems somewhat relieved he has won. With a smile on his face he says")
saynn("[say=hiisi]So, regarding my reward. Could you perhaps get one of the Hypnovisors and come to the corner tomorrow? I'd like to test something.[/say]")
saynn("[say=pc]Uhhh, hypnovisors?[/say]")
saynn("[say=hiisi]Yeah, I've seen them around. They seem to be extremaly rare in here, but at least one inmate I saw had one. I'm just curious...[/say]")
saynn("[say=pc]I mean, sure, but are you sure about it? They can make you very vulnerable for a few hours.[/say]")
saynn("[say=hiisi]Well.. I was hoping to mess around with them for a second and use them on you actually...[/say]")
saynn("[say=pc]On me? I'm really not sure about that.[/say]")
saynn("[say=hiisi]Pleaase! I'm just curious, I won't do anything dangerous, and hypnosis doesn't make you go against your will anyways, you can always stop yourself.[/say]")
saynn("It's true that hypnovisors don't really force things onto their wearer, just significantly affect their submissiveness, but would it be a good idea to let Hiisi mess with Hypnovisors and put them on you?")
saynn("[say=pc]Fine, you did win after all. But promise me you won't try to mess with my brain.[/say]")
saynn("[say=hiisi]Of course! I won't.[/say]")
addButton("Back", "You agreed to Hiisi's Hypnovisor session, the conversation ended here", "hiisi")
if state == "lamia":
playAnimation(StageScene.Duo, "kneel", {npc="lamia", npcAction="kneel"}) # TODO We need laying down!
saynn("Lamia lays on his belly, holds one of the colorful pencils from his drawing kit and draws. Next to him a stack of empty paper sheets as well as a visibly smaller but still impressive stack of filled out papers")
if getModuleFlag("IssixModule", "Lamia_Is_Hungry") == null:
addButton("Drawings", "Look at the drawings", "lamiadrawings")
else:
addDisabledButton("Drawings", "You've already asked about the drawings")
addButton("", "", "lamia") # TODO 2nd option walkies for Lamia is needed
addButton("Back", "End the conversation", "walkies4")
if state == "lamiadrawings":
processTime(10*60)
saynn("You crawl to Lamia's stack of drawings, the one at the top is a fairly detailed drawing of a bird. Lamia notices your interest and smiles at you. He takes the top sheet of paper from his drawn pile and invites you to browse.")
saynn("The drawing underneath the bird shows an inmate in orange uniform sitting in front of a table that has a cake on it, considerint the look of the cake you can guess its a birthday cake. Around the inmate there are 4 other inmates.")
saynn("[say=pc]Those are really good. Are they showing real events? Are those things you've seen?[/say]")
saynn("You quickly realize that asking two questions at the same time might make it very difficult for Lamia to answer in a way you'd understand, you quickly correct yourself.")
saynn("[say=pc]Ekhem, I mean, for example, the scene with the birthday cake, or a bird, do you draw based on things you've personally been a witness of?[/say]")
saynn("They look at you and move their head to the sides putting their shoulders slightly higher, you interpret it as „sometimes, sometimes not”.")
saynn("[say=pc]I see, so just sometimes[/say]")
saynn("They nod to confirm")
saynn("You look at their current drawing, it's Issix, with what looks to be like a fishing rod. You look at Issix, just to be sure, he certainly does not hold any fishing rod, but other than that everything else seems to be correct from position of Lamia. Suddenly an idea comes to your mind.")
saynn("[say=pc]Lamia, I do wonder, how would you draw your current feelings?[/say]")
saynn("Without a moment of hesitation, Lamia turns the paper to the other side, pulls out a brown pencil, draws a circle with some darker brown irregular circle like figures inside. After a moment you have a good idea that it's a cookie. Then they draw a very simple sad face.")
saynn("Cookie sad? Sad cookie? Umm... Are you... Hungry perhaps?")
saynn("Lamia nods, their paw on their belly, further confirming your guess.")
addButtonWithChecks("Apple", "Give the fox breed an apple", "giveapple", [], [[ButtonChecks.HasItemID, "appleitem"]])
#addButtonWithChecks("Energy drink", "Give the fox breed an energy drink... Out of lack of better things?", "givedrink", [], [[ButtonChecks.HasItemID, "EnergyDrink"]])
addButtonWithChecks("Cookie", "Give the fox breed a cookie", "givecookie", [], [[ButtonChecks.HasItemID, "Cookie"]])
addButton("Nothing", "You have nothing to give to the fox breed, hoping that they find other way to sate their little hunger", "nofood")
if state == "nofood":
setModuleFlag("IssixModule", "Lamia_Is_Hungry", true)
saynn("[say=pc]Aww, hungry? Unfortunately I have brought no snacks with myself. Sorry![/say]")
saynn("Lamia is visibly saddened after hearing that, however they quickly return to drawing, occupying their mind.")
addButton("Back", "End the conversation", "lamia")
if state == "giveapple":
setModuleFlag("IssixModule", "Lamia_Is_Hungry", false)
saynn("[say=pc]Here, have an apple. That's all I have.[/say]")
saynn("You pass an apple to the fox, they take a bite and give you a warm smile, munching it slowly. You hope it satiates them a bit.")
addButton("Back", "End the conversation", "lamia")
if state == "givecookie":
processTime(15*60)
setModuleFlag("IssixModule", "Lamia_Is_Hungry", false)
setModuleFlag("IssixModule", "Received_Portrait_From_Lamia", true)
saynn("[say=pc]Hmm, cookie you say? So it happens I have one, you pull the cookie in front of them.[/say]")
saynn("Their eyes lit up like candles, you stare at the cookie, pleading look in their face. They need no words to let you know just how much are they starved for such a sweet treat.")
saynn("[say=pc]You are not allergic, right? Wouldn't want to cause an incident.[/say]")
saynn("They shake their head - no, clearly. It feels that if you don't give them cookie very soon, not only the blanket will be wet by salivating fox, but you may eventually lose a finger, or two. You decide to pass the cookie to the fox.\nThey take it, and to your surprise, they do not devour it immediately. They take very small bites, seems like they are treasuring every single bite of that cookie. Watching them be so happy about such a little thing fills your heart with warmth. You could stare at this fox delectating themselves with the cookie for an hour, and it would still be worth watching. Shortly after they eat half of it they show you a pointing finger, a sign you should wait a moment. They pull out a new piece of paper and start drawing.")
saynn("You look at them, being very focused, they look at you too, from time to time. After 15 minutes they are done. They take their artwork and show it to you, being incredibly proud of themselves, closing their eyes.\nYou are astounded. On the paper your very "+GM.pc.getBodypart(BodypartSlot.Head).getName().split("head")[0] +" face. It's a portrait of you from side view, what's special about this portrait however, is that inside of your mouth you have a cookie. Basket muzzle didn't make the cut, probably because it would ruin the portrait. While the portrait looks incredibly silly, the happiness of artist holding it could potentially kill if it was able to.")
addButton("Hug", "Thank and hug Lamia as thanks", "hugandthank")
addButton("Headpat", "Give the artist fox a headpat", "headpat")
if state == "hugandthank":
saynn("Stunned, your heart melted, the first thing that comes to your mind is to hug the fox. You do that completely on impulse with no hesitation. Fox at first taken aback by that gesture (embarassed, blushing hard), eventually embraces the hug and reciprocates. Still hugging you say")
saynn("[say=pc]Thank you Lamia, I love it so much. I'll cherish it.[/say]")
saynn("They smile and nod twice to you excitedly.")
addButton("Back", "End the conversation", "lamia")
if state == "headpat":
playAnimation(StageScene.Grope, "pat", {pc="pc", npc="lamia", bodyState={naked=true, hard=false}, npcBodyState={naked=true, hard=false}})
saynn("Stunned, your heart melted, the first thing that comes to your mind is to give the fox a headpat. You put your paw on their head and gently pat them. Their ears flatten and their face seems very pleased by your patting.")
saynn("[say=pc]Thank you Lamia, I like it very much.[/say]")
saynn("They smile and nod to you excitedly.")
addButton("Back", "End the conversation", "lamia")
if state == "else":
saynn("You are thinking of doing something else. With plenty of space you could do plenty of activities, even if alone, considering all of the others don't seem to be keen on doing anything.")
if getModuleFlag("IssixModule", "Shared_Marshmallows") == null:
addButton("Walk", "Go for a walk near your group", "elsewalk")
else:
addDisabledButton("Walk", "You've already taken a walk")
addButton("Wait", "Spend time until Master calls it the end of the little picnic (you won't be able to come back to other activities)", "elsewait")
if state == "elsewalk":
playAnimation(StageScene.Solo, "stand", {pc="pc", bodyState={naked=false, hard=false}})
processTime(10*60)
saynn("You slowly are walking alongside the lake. Eventually you arrive at short waterfall. You can come so close to it, that you can feel the droplets of water hitting your fur, the air more humid and the sounds louder but yet still gentle. You look at the opposite side, greenhouses high above you. It's surprising how little attention this place gets with so many inmates in the prison.") # TODO Fur? Skin?
saynn("As you focus on the waterfall you suddenly get spooked by the sounds behind you, you turn around and just see another inmate jogging. Talk about lack of inmates... They reach the wall, touch it and go back the way they came from. What catches your attention however is a pack of... Something dropping on the ground as the inmate turned around and started running away. Curious, you approached the lost item and found it's a very small bag of... Marshmallows of some sorts? If that's so, that would be considered a treat in the prison, sweets such as that are pretty expensive rarity. You look back at the inmate, however at this point they are beyond the point where shouting at them makes sense, that's one athletic jogger. You grab the bag and decide what to do with it.")
addButton("Share", "Come back to your group and share with everyone", "sharemarshmallows")
addButton("Eat", "There aren't a lot of them in the bag, enough to share with the group but then, you could just eat them yourself?", "eatmarshmallows")
if state == "sharemarshmallows":
setModuleFlag("IssixModule", "Shared_Marshmallows", true)
playAnimation(StageScene.Duo, "crawl", {pc="pc", npc="issix", bodyState={naked=false, hard=false}, npcBodyState={naked=true, hard=false}})
saynn("You come back to your group walking rather fast, being excited about sharing something you've found with everyone else.")
saynn("[say=pc]Hey, I've found this little bag, they seem like marshmallows? There aren't a lot of them, do you want some?[/say]")
saynn("This catches the attention of Issix, who gives you a signal to approach him. You get on your knees and come to him with the bag in your maw.")
saynn("[say=issix]A bag of „marshmallows” huh? Where did you get it from? Give it to me.[/say]")
saynn("You explain it fell of the pocket of one of the joggin inmates. He opens the bag and takes a sniff.")
saynn("[say=issix]Hmm. That's not an ordinary bag of marshmallows, I've seen things such as those before in this prison. They are a little „extra” you'd say. Pretty sure I know who your jogging inmate was.[/say]")
saynn("He laugs, taking one of the „marshmallows” out of the bag before putting it into his mouth.")
saynn("[say=issix]Yeah, it's a fun one. Feel free to share them with other pets, they aren't bad, just a little packed, who knows, maybe it will brighten the mood.[/say]")
saynn("He gives you back the opened bag, before turning around and continuing his feet wetting activity. You come back to the blanket.")
saynn("[say=pc]Master Issix said those are fine, they aren't regular marshmallows as they seem to be with something in them, but they are fine. Who wants one?[/say]")
saynn("[say=azazel]I'll take one![/say]")
saynn("[say=hiisi]So will I.[/say]")
saynn("Lamia taking a break from drawing nods their head in approval. You hand everyone their marshmallows, Azazel gets 2, Hiisi 1, Lamia 2 and you are left with the last one. You all eat them together discussing its sweet but a bit strange taste that leaves a weird aftertaste, which you all try to get rid of with water bottle from Master's bag, unsuccessfully.")
addButton("Back", "Feast is over", "else")
if state == "eatmarshmallows":
setModuleFlag("IssixModule", "Shared_Marshmallows", false)
saynn("Your eyes wander. You are a bit away from your group and they are all occupied. Besides, that's stranger food, you don't know if it's safe to eat, and you wouldn't want to poison Master and his pets! You open the pack and pick the marshmallows and eat them one by one, they are incredibly sweet, though they leave a very strange aftertaste in your mouth. Odd. After consuming them all you throw away the packaging a decide to come back, finding yourself back in your little picnic like group, feeling a bit doozy.")
addButton("Back", "You ate the marshmallows and came back from your little walk", "else")
if state == "elsewait":
saynn("During an hour or so Master came back to the blanket and spent the time with you and his other pets. He talked about various things he saw in his life as well as deals he has struck in the time he spent in the prison. Azazel, Hiisi and Lamia all put on their inmate uniforms. Eventually he started packing - blanket, paper sheets, toys and other things, came to each one of us, clipped the leash to our collars and looked around.")
saynn("[say=issix]Everyone got all of their stuff? Good good. Let's head back to our corner, we'll talk there {pc.name}.[/say]")
saynn("With that, you've all started walking towards the corner.")
processTime(30*60)
addButton("Leave", "Let's head back", "walkies4")
if state == "walkies4":
aimCamera("hall_ne_corner")
setLocationName("Issix's Corner")
if GM.main.isVeryLate():
saynn("You arrive in Issix's corner. Since it's pretty late Issix talks with his other pets and promptly lets them go to their cells, he asks you to stay. He sits on his chair and starts talking.")
else:
saynn("You arrive in Issix's corner. Other pets situate themselves on their own blankets on the floor. Issix is unpacking stuff from the bag, you stay there kneeling next to him, observing his every move. He makes some conversations with his other pets. Eventually he finishes, sits down and faces you.")
saynn("[say=issix]So, how was the walk? Have you enjoyed it?[/say]")
addButton("I did", "Say that you enjoyed the walk", "walkenjoyed")
addButton("Nope", "Say that you didn't enjoy the walk", "walkbad")
if state == "walkenjoyed":
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
var lamia_task = getModuleFlag("IssixModule", "Lamia_Is_Hungry")
var azazel_talk = getModuleFlag("IssixModule", "Azazel_Sky_Response")
var hiisi_game = getModuleFlag("IssixModule", "Hissi_RPS_data")
var walk_result = getModuleFlag("IssixModule", "Shared_Marshmallows")
var walk_score = pet_handle_flag_response(lamia_task) + pet_handle_flag_response(azazel_talk != null) + pet_handle_flag_response(hiisi_game != null) + pet_handle_flag_response(walk_result)
saynn("[say=pc]Yeah, it was fun to „camp” on the pasture, how often do you go there?[/say]")
saynn("[say=issix]Every 9 days or so, whenever I feel like I need some time out. Being in here all the time, among this noise requires breaks to hang out with just my pets or at least get away from all this hustle. Today it was... More passive, mostly due to myself needing some time for myself. That's not usually how our walks there go, but it happens.[/say]")
saynn("You nod your head in understanding")
saynn("[say=issix]Anyways, you are probably wondering if you passed the last trial. I was mainly testing how well you'd do with my other pets, I've talked with them briefly after the walk.[/say]")
if lamia_task == false:
saynn("[say=issix]Lamia was all happy and enjoyed your company. Said that you helped with their hunger issue. I still don't understand why they don't just take food from my bag on during the walks but they are stubborn about it.[/say]")
else:
saynn("[say=issix]When I took out food from my bag Lamia practically begged me for food, they know full well where the food is during our walks and yet they haven't taken it out by themselves. I wouldn't want to put you on spotlight for not tending and inquiring about how they feel, but I had hoped you'd at least help them out somehow.[/say]")
if azazel_talk == true or azazel_talk == false:
saynn("[say=issix]Azazel was really happy to have a conversation partner. Hiisi was too focused on me for the walk and Lamia was doing his own thing. I'm really happy that you kept them company on the pasture. They can have their own philosophical ramblings from time to time, guess they got it after me.[/say]")
saynn("He laugs")
saynn("[say=issix]But seriously, that's really nice of you to engage them in one of those.[/say]")
else:
saynn("[say=issix]Azazel mentioned that you didn't exactly talk with them much during the walk. That's a little disappointing but they themselves weren't really outgoing that day so I understand. However please tend to the needs of my other pets next time.[/say]")
if hiisi_game != null:
saynn("[say=issix]It's quite an amazing feat, but I've also heard you engaged Hiisi in a game! That's phenomenal! I know lately he is very focused on me, he is concerned about my wellbeing, what a cute pet. No matter how many times I tell him to stop worrying he never does. Such is that puppy.[/say]")
if hiisi_game["winpc"] == 3 and hiisi_game["chosen_reward"] == 1:
saynn("[say=issix]Normally if someone was trying to mate with my pet without my permission I'd make an example of them for entire prison. However for today you were temporally my pet on probation. So it was pretty cute seeing Hiisi engaging in some fun with you for a change. He usually isn't this forward. Good job out there.[/say]")
saynn("You blush")
else:
saynn("[say=issix]Hiisi was very down for the entire walk, I did not expect you to not even attempt to brighten his mood. I believe you should have thought of that, you had plenty of time. What a shame.[/say]")
if walk_result == true:
saynn("[say=issix]I'm also really happy you decided to share the „marshmallows” with us all. It's been a while since I last ate one of those, so that helped me plenty considering I myself were a bit downed today, and other pets seemed to like them as well.[/say]")
if walk_score < 2:
setModuleFlag("IssixModule", "Quest_Rejected_By_Issix", 3)
saynn("[say=issix]Ultimately, I'm afraid you've failed the last trial. While I can't really call the relationship my pets have with me and themselves „family”, since they are my property, we aren't equal and they are listening to me without any question, they do have to take care of each other. If my new pet doesn't have any care in the world about my other pets, I don't think it would be a good fit. I can train many things, but empathy is one of those things I'm not willing to spend time on.[/say]")
saynn("He says that with sadness in his voice. It's clear he doesn't like the decision he has made by is sticking to his convictions.")
addButton("Apologize", "Apologize and ask for forgiveness", "issixapologize")
addButton("Accept", "Accept the decision", "issixacceptdefeat")
return
elif walk_score < 4:
saynn("[say=issix]I'm glad that you've spend the time with my other pets, that's exactly waht I wanted to see and I'm relieved you knew what to do. I'm proud to announce that you've passed my last trial and you have my permission to become my pet, though the details of how this will work we'll have to figure out tomorrow. It's late already and I'd like to attend to other matters. Think about it for one more night, after you agree to become my pet there is no going back. See you tomorrow, pet.[/say]")
else:
saynn("[say=issix]I have to say, you've exceeded my expectations. You've been a large part of today activities and you engaged everyone. You cared about problems of every pet and addressed them in one way or another. That's exactly what I wanted to see and more, I'm relieved you knew what to do. I'm proud to announce that you've passed my last trial and you have my permission to become my pet, though the details of how this will work we'll have to figure out tomorrow. It's late already and I'd like to attend to other matters. Think about it for one more night, after you agree to become my pet there is no going back. See you tomorrow, pet.[/say]")
GM.main.setModuleFlag("IssixModule", "Quest_Wait_Another_Day", true) # TODO Mention the basket muzzle and what to do with it
setModuleFlag("IssixModule", "Quest_Status", 7)
addButton("Agree", "Thank Issix and agree to come tomorrow", "endthescene")
if state == "issixapologize":
saynn("[say=pc]I apologize, I didn't know, I were stressed on my first walk and I didn't know what to do. I spent it in silence because that's a new situation for me. Please give me another chance Master Issix![/say]")
saynn("[say=issix]I'm sorry {pc.name} but that's not good enough. My decision was hard to make but final. Spend more time and look at creatures around you, even in such grim place as this one, there are many that need it.[/say]")
addButton("Leave", "You've been rejected, nothing more to do here", "endthescene")
if state == "issixacceptdefeat":
saynn("[say=pc]I understand, thank you for giving me an opportunity to prove myself, and I'm sorry for not doing enough.[/say]")
saynn("[say=issix]It's a lesson for the future. I'm glad you took my rejection just fine. Try to focus on needs of others, even in such grim place as this one there are creatures hurting, you always have the power to help them in your own way, don't waste it.[/say]")
addButton("Leave", "You've been rejected, nothing more to do here", "endthescene")
func pet_handle_flag_response(response): # true + true doesn't exist in GDScript :(
if response == null or response == false:
return 0
if response == true:
return 1
return 1
## Function to determine a winner of given Rock Paper Scissors game
## Takes Player answer that is an int from 1 to 3 (1: Rock, 2: Paper, 3: Scissors)
## And NPC answer of same format
## Returns 1 if player wins, 2 if NPC wins, 3 if it's a tie
func rps_win_conditions(pc_answer: int, h_answer: int):
if pc_answer == h_answer: # tie
return 3
if rock_paper_scissors[pc_answer] == h_answer: # player win
return 1
return 2 # npc wins
func _react(_action: String, _args):
if _args:
answer = _args[0]
if _action == "hiisisubanal":
strapon_selected = answer
GM.pc.getInventory().forceEquipStoreOtherUnlessRestraint(strapon_selected)
GM.pc.addLust(30)
if _action == "hiisisubanal2":
GM.pc.addLust(30)
if _action == "hiisisubanal3":
GM.pc.addLust(30)
if _action == "hiisisubanal4":
GM.pc.orgasmFrom("rahi")
GM.main.getCharacter("hiisi").cummedOnBy("pc")
if _action == "azazelskyresponse":
setModuleFlag("IssixModule", "Azazel_Sky_Response", answer)
if _action == "hiisirpsfirst":
setModuleFlag("IssixModule", "Hissi_RPS_data", {"winpc": 0, "winh": 0, "chosen_reward": answer, "reward_acquired": false, "last_used": 0})
if _action == "hiisirps":
var current_data = getModuleFlag("IssixModule", "Hissi_RPS_data")
var npc_answer = RNG.randi_range(1,3)
match rps_win_conditions(answer, npc_answer):
1:
current_data["winpc"] += 1
2:
current_data["winh"] += 1
current_data["last_used"] = answer+(npc_answer*10)
setModuleFlag("IssixModule", "Hissi_RPS_data", current_data)
if _action == "walkies2":
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "main_yard_connector", [
"Lamia, please try to keep up",
"Azazel, watch out, inmate on your right is aboout to reach her climax",
"Hiisi, stop sniffing every inmate, you are slowing us all down",
"{pc.name} stay in between Lamia and Hiisi, you fit there perfectly"
], "main_yard_connector", "crawl"])
if _action == "walkies3":
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "yard_waterfall", [
"Lamia, please try to keep up",
"Azazel, watch out, inmate on your right is aboout to reach her climax",
"Hiisi, stop sniffing every inmate, you are slowing us all down",
"{pc.name} stay in between Lamia and Hiisi, you fit there perfectly"
], "yard_waterfall", "crawl"])
if _action == "walkies4": # Heading back
playAnimation(StageScene.Duo, "kneel", {npc="issix", npcAction="stand", bodyState={leashedBy="issix"}})
runScene("ParadedOnALeashScene", ["issix", GM.pc.getLocation(), "hall_ne_corner", [
"Lamia, I understand you are tired but please try to keep up",
"Azazel, can you focus? You are stepping on me",
"Hiisi, head up"
], "hall_ne_corner", "crawl"])
if _action == "eatmarshmallows":
GM.pc.addIntoxication(0.5)
if _action == "sharemarshmallows":
GM.main.getCharacter("azazel").addIntoxication(0.2)
GM.main.getCharacter("hiisi").addIntoxication(0.1)
GM.main.getCharacter("lamia").addIntoxication(0.2)
GM.pc.addIntoxication(0.1)
if _action == "giveapple":
GM.pc.getInventory().removeXOfOrDestroy("appleitem", 1)
if _action == "givecookie":
GM.pc.getInventory().removeXOfOrDestroy("Cookie", 1)
if(_action == "endthescene"):
endScene()
return
setState(_action)

View file

@ -1,152 +0,0 @@
extends SceneBase
func _init():
sceneID = "PetsTalkScene"
func _run():
if(state == ""):
setLocationName("Issix's Corner")
saynn("In front of you - three slaves belonging to Issix.")
addCharacter("azazel")
addCharacter("lamia")
addCharacter("hiisi")
addButton("Azazel", "Approach Azazel", "azazelmain")
addButton("Hiisi", "Approach Hiisi", "hiisimain")
addButton("Lamia", "Approach Lamia", "lamiamain")
addButton("Leave", "Be on your way", "endthescene")
if(state == "azazelmain"):
playAnimation(StageScene.Duo, "kneel", {pc="azazel", npc="pc", bodyState={naked=false, hard=false}})
clearCharacter()
addCharacter("azazel")
addButton("Talk", "Talk to Azazel", "azazeltalk")
addButton("Appearance", "Look at Azazel", "azazelappearance")
if(GM.pc.getInventory().hasItemID("CatnipPlant")):
saynn("Before you even have the time to approach Azazel, you see his head hovering over his body, his little nose working very hard to track down the source of the curious smell. He looks around with interest, until he sees you approaching.\nHe observes you with interest as you come close.")
saynn("[say=azazel]Meow! You really smell of a catnip, do you have catnip? Do you??[/say]")
saynn("{azazel.name} becomes really excited, as exemplified by his tail stretching high as if it was a broom stick. His body constantly sways.")
addButton("Give Catnip", "Give Azazel the catnip", "catnip")
else:
if getModuleFlag("IssixModule", "PC_Enslavement_Status", 0) == 0:
saynn("You approach Azazel, he recognizes sudden attention given to him, he goes on his fours doing some kitty back streching before kneeling towards you expectandly. You notice he took a quick peek at his master beforehand.")
else:
pass # TODO
addButton("Back", "Take a step back", "")
if state == "hiisimain":
if getModuleFlag("IssixModule", "PC_Enslavement_Status", 0) == 0:
saynn("You approach Lamia")
else:
addButton("Talk", "Talk to Lamia", "hiisitalk")
addButton("Appearance", "Look at Lamia", "hiisiappearance")
if state == "hiisitalk":
var HiisiRPS = getModuleFlag("IssixModule", "Hissi_RPS_data")
if HiisiRPS != null:
if HiisiRPS["chosen_reward"] == 3 and HiisiRPS["reward_acquired"] == false:
addButton("Drink", "Ask Hiisi about energy drink that you've won through the game of Rock Paper Scissors", "hiisienergy")
# TODO
if state == "hiisienergy":
var HiisiRPS = getModuleFlag("IssixModule", "Hissi_RPS_data")
HiisiRPS["reward_acquired"] = true
setModuleFlag("IssixModule", "Hissi_RPS_data", HiisiRPS)
saynn("[say=hiisi]Sure, I got it, here you go.[/say]")
saynn("He passes energy drink can to you. Thanks for brightening my mood that day.")
saynn("You received 1 Energy Drink.")
addButton("Back", "Take a step back", "hiisitalk")
if(state == "lamiamain"):
if getModuleFlag("IssixModule", "PC_Enslavement_Status", 0) == 0:
saynn("You approach Lamia")
else:
pass # TODO
addButton("Talk", "Talk to Lamia", "lamiatalk")
addButton("Appearance", "Look at Lamia", "lamiaappearance")
saynn("")
if(state == "catnip"):
saynn("You take the catnip and slowly reach your paw with the plant to the feline. Halfway there feline snatches the catnip from you paw and throws it in the air. His paws go above and he plays airborne valley...catnip with it? Eventually he misses with his paw and catnip falls on his muzzle, he freezes for a moment as if paralyzed, the pupils in his eyes become large.")
saynn("[say=pc]Umm, Azazel, are you okey?[/say]")
sayn("He turns his face towards you again, enlarged pupils still in his eyes, surprised face expression staring at you.")
saynn("After a moment his pupils go back to normal, and his face expression turns content.")
saynn("[say=azazel]Meow! I mean... Yes, sorry, I got... A bit carried away.[/say]")
saynn("He becomes a little embarassed. Looks down at the catnip plant on his blanket. Picks it up with his paw and consumes it.")
saynn("[say=azazel]Twank yuu {pc.name}. It was really nice![/say]")
processTime(1 * 60)
addButton("Back", "End catnip therapy session", "azazelmain")
#setState("azazelmain")
if(state == "azazeltalk"):
GM.main.setModuleFlag("IssixModule", "Azazel_Catnip_talked", true)
var affection = getModuleFlag("IssixModule", "Azazel_Affection_given")
addButton("Prison", "Ask how did he end up in prison?", "azazelprison")
addButton("Hobby", "Ash what hobbies does he have", "azazelhobby")
if affection > 2:
addButton("Issix", "Ask what he thinks of his master?", "azazelmaster")
else:
addDisabledButton("Issix", "You don't have good enough relationship with Azazel to ask about his master")
if affection > 5:
addButton("Breeder", "Ask what he thinks of his position as a breeding bitch?", "azazelbreeding")
else:
addDisabledButton("Breeder", "You don't have good enough relationship with Azazel to ask about his position as breeding bitch")
if affection > 10:
addButton("Fetishes", "He mentioned his fetishes, perhaps he could elaborate?", "azazelfetishes")
else:
addDisabledButton("Breeder", "You don't have good enough relationship with Azazel to ask about his fetishes")
if affection > 18:
addButton("Pussy", "Azazel has a pussy and yet he is rather masculine", "azazelintersex")
else:
addDisabledButton("Pussy", "You don't have good enough relationship with Azazel to ask about his genitalia")
#addButton("Hero", "")
if(GM.pc.getInventory().hasItemID("CatnipPlant")):
pass
else:
pass
addButton("Back", "Do something else", "azazelmain")
if(state == "azazelappearance"):
if(OPTIONS.isContentEnabled(ContentType.Watersports)):
saynn("When approaching there are two distinct smells coming from Azazel - his own pheromones advertising his fertility to everyone around, as well another strong smell of his master. Azazel has been marked, in more ways than one.")
else:
saynn("When approaching there is one distinct smell coming from Azazel - his own pheromones advertising his fertility to everyone around.")
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 a womb tattoo seemingly glowing a bit in shade of red.")
saynn("On his lower back words ”PROPERTY OF ISSIX” branded onto the skin - a mark of his master.")
addButton("Back", "Do something else", "azazelmain")
if state == "azazelprison":
saynn("[say=pc]Tell me Azazel, what had happened that you've ended up in this prison? You are a Lilac, so I assume it had something to do with sex.[/say]")
saynn("[say=azazel]It's true... There is a group on my home planet, they claim they want to cleanse the society of trash, and by trash they of course mean everyone they deem too radical for their own liking.[/say]")
saynn("Azazel looks down, this conversation seems to bring back bad memories.")
saynn("[say=azazel]One of the group's members wanted to meet me one day, they wanted to... Procure my services. Turns out it was all just a plot, they got close to me and I didn't really see anything wrong with that, I shared a lot of personal details with them - my life, financial situation even fetishes, they felt really honest and... Caring. Eventually they tore down their mask and said they have all kind of dirt on me. That's where the hell broke loose, their group were on my back for a while, stalking, harassing me. Eventually one of my clients gave me the bug, I think it was the group who sent me that client and...[/say]")
saynn("Azazel's voice starts to break down.")
saynn("[say=azazel]They reported me, I had my license taken and now I'm in here.[/say]")
saynn("You both sit in awkward silence while Azazel recovers.")
saynn("[say=azazel]I will never understand groups as that one. There are more of those all over the galaxy, I know that. They ruin the lives of so many of us.. Workers. What have we done to wrong them? Nothing, we just sell our time and bodies to give others and ourselves some temporary pleasures in this grim world we live in.[/say]")
saynn("He sighs, it seems to have calmed him down")
saynn("[say=azazel]When I first arrived here I were so lost. Still very confused by this series of events, felt betrayed, hurt. Eventually I've met Master, they saw something in me and theey guided me through my trauma. I were really happy to become his pet, I've finally understood what it really means to care for someone. And honestly? It's not so bad, I have food, shelter and Master who takes care of me. And my heats.[/say]")
saynn("He says the last one, showing you his tongue at you in a grin")
saynn("[say=azazel]So... Yeah... That's how I ended up here. Not a happy story, but I doubt anyone's is. Ironically, I think I'm better here, and I can still engage in sex without any stupid license.[/say]")
addButton("Back", "Do something else", "azazelmain")
if state == "lamiatalk":
addButton("Try drawing", "You can try and draw something with lamia", "lamiadraw") # TODO
func _react(_action: String, _args):
if(_action == "catnip"):
GM.pc.getInventory().removeXOfOrDestroy("CatnipPlant", 1)
GM.main.getCharacter("azazel").addLust(10)
GM.main.increaseModuleFlag("IssixModule", "Azazel_Affection_given")
if _action == "hiisienergy":
GM.pc.getInventory().addItem(GlobalRegistry.createItem("EnergyDrink"))
if(_action == "endthescene"):
endScene()
return
setState(_action)

View file

@ -1,22 +0,0 @@
extends EventBase
func _init():
id = "ArtworkModifyingPlayerCell"
func registerTriggers(es):
es.addTrigger(self, Trigger.EnteringPlayerCell)
func run(_triggerID, _args):
if getModuleFlag("IssixModule", "Placed_Portrait_In_Cell", false):
saynn("On the wall you can see a vertical sheet of paper with your face holding a cookie in the mouth. Drawn by Lamia.")
return
if getModuleFlag("IssixModule", "Received_Portrait_From_Lamia", false) and getModuleFlag("IssixModule", "Placed_Portrait_In_Cell") == null:
addButton("Portrait", "You can choose to put a portrait you've received from Lamia on the wall of your cell", "portrait")
func onButton(_method, _args):
if(_method == "portrait"):
runScene("PlayerCellLamiaPortraitScene")
func getPriority():
return 11

View file

@ -1,33 +0,0 @@
extends SceneBase
func _init():
sceneID = "PlayerCellLamiaPortraitScene"
#func _reactInit():
# endScene()
# return
func _run():
if(state == ""):
saynn("You can choose to put up Lamia's portrait of you in your cell if you so choose.")
addButton("Put", "Put the portrait on your wall", "putportrait")
addButton("Don't put", "Don't hang your portrait on the wall (won't ask in the future)", "dontput")
addButton("Ignore", "Don't do anything with it for now", "endthescene")
if(state == "putportrait"):
setModuleFlag("IssixModule", "Placed_Portrait_In_Cell", true)
saynn("You grab your portrait you got from Lamia, find some scraps of a tape in your stash and hang it on the wall. It looks wonderful. Reminds you of a great moment you shared with Lamia... And shows everyone who comes near who's cell it is.")
addButton("Back", "Job well done", "endthescene")
if state == "dontput":
setModuleFlag("IssixModule", "Placed_Portrait_In_Cell", false)
saynn("You grab your portrait you got from Lamia and stash it.")
addButton("Back", "Job well done", "endthescene")
func _react(_action: String, _args):
if(_action == "endthescene"):
endScene()
return
setState(_action)