Some more updates
This commit is contained in:
parent
eae0e2ca1b
commit
dbf3e3d018
|
@ -7,9 +7,15 @@ func registerTriggers(es):
|
|||
es.addTrigger(self, Trigger.EnteringRoom, "eng_corridor6")
|
||||
|
||||
func run(_triggerID, _args):
|
||||
if(3 > getModuleFlag("PierreModule", "Quest_Status") and getModuleFlag("PierreModule", "Quest_Status") > 0): # In the future potentially make it possible to be a daily event thing
|
||||
var quest_status = getModuleFlag("PierreModule", "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("PierreModule", "Quest_Status") == 1:
|
||||
addButton("Pierre'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
|
||||
|
|
|
@ -3,9 +3,11 @@ 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 shelve 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 shelve. It does not bode well, you immediately close this shelve. The vibration stops. That was odd."
|
||||
]# TODO Write more of those
|
||||
"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
|
||||
|
@ -16,9 +18,21 @@ func _init():
|
|||
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 Pierre and walk towards the wall", "nightwallwalking")
|
||||
else:
|
||||
addButton("Wall time", "Trust Pierre and walk towards the wall", "trust")
|
||||
addButton("Nope", "You are not trusting Pierre, this is stupid", "endthescene")
|
||||
|
||||
if(state == "nightwallwalking"):
|
||||
GM.main.setModuleFlag("PierreModule", "Quest_Bonked", true)
|
||||
processTime(1*60)
|
||||
saynn("You decide to trust Pierre. You turn 90 degrees, take a deep breath and walk forward. Last time you went this corridor while not blind there was a wall here, an maybe this time...")
|
||||
saynn("Four confidence in Pierre is rewarded with a loud bang on the wall. While your feet were the first to hit the wall, your head followed and... You hit the wall like a fool. Why would it work anyways, it's a solid wall.")
|
||||
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")
|
||||
|
@ -68,25 +82,62 @@ func _run():
|
|||
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("PierreModule", "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)+"...")
|
||||
if(typeof(current_loot) == 2 or typeof(current_loot) == 0): # event
|
||||
pass
|
||||
elif(typeof(current_loot) == 4): #nothing
|
||||
processTime(1*60)
|
||||
if(typeof(current_loot) == TYPE_NIL): # event
|
||||
markCabinetAsActivated(current_cabinet)
|
||||
elif(typeof(current_loot) == TYPE_STRING): #nothing
|
||||
saynn(current_loot)
|
||||
else:
|
||||
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 Pierre. You reach your paw inside and there is a single item inside - a pack of gumball. You grab and take it.")
|
||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 3)
|
||||
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()]
|
||||
|
||||
|
@ -116,14 +167,15 @@ func generateLoot(cabinet_number: int):
|
|||
fluids.addFluid(randomItemFromSeed(allowedFluids), randomNumberFromSeed(2, 5)*100.0)
|
||||
return newItem
|
||||
elif (rand_num < 21): # TODO event
|
||||
saynn(randomItemFromSeed(empty_loots))
|
||||
var activated_cabinets = getModuleFlag("PierreModule", "Activated_Cabinets", {})
|
||||
activated_cabinets[cabinet_number] = true
|
||||
GM.main.setModuleFlag("PierreModule", "Activated_Cabinets", activated_cabinets)
|
||||
return 1
|
||||
markCabinetAsActivated(cabinet_number)
|
||||
return RNG.randi_range(1,3)
|
||||
else:
|
||||
return randomItemFromSeed(empty_loots)
|
||||
|
||||
func markCabinetAsActivated(cabinetNumber:int):
|
||||
var activated_cabinets = getModuleFlag("PierreModule", "Activated_Cabinets", {})
|
||||
activated_cabinets[cabinetNumber] = true
|
||||
GM.main.setModuleFlag("PierreModule", "Activated_Cabinets", activated_cabinets)
|
||||
|
||||
func _react(_action: String, _args):
|
||||
|
||||
|
@ -132,13 +184,16 @@ func _react(_action: String, _args):
|
|||
return
|
||||
|
||||
if(_action == "cabinetloot"):
|
||||
if getModuleFlag("PierreModule", "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"):
|
||||
var activated_cabinets = getModuleFlag("PierreModule", "Activated_Cabinets", {})
|
||||
activated_cabinets[current_cabinet] = true
|
||||
GM.main.setModuleFlag("PierreModule", "Activated_Cabinets", activated_cabinets)
|
||||
markCabinetAsActivated(current_cabinet)
|
||||
GM.pc.getInventory().addItem(current_loot)
|
||||
_action = "cabinets"
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ func getFlags():
|
|||
"Azazel_Catnip_taken_today": flag(FlagType.Bool),
|
||||
"PC_Enslavement_Status": flag(FlagType.Number),
|
||||
"Azazel_Catnips_given": flag(FlagType.Number),
|
||||
"Quest_Bonked": flag(FlagType.Bool),
|
||||
"Activated_Cabinets": flag(FlagType.Dict)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
extends SceneBase
|
||||
|
||||
var random_pierre_activities_talk = [
|
||||
"He notices you right away and follows you with his gaze."
|
||||
] #TODO Write more
|
||||
|
||||
func _init():
|
||||
sceneID = "PierreTalkScene"
|
||||
|
||||
|
@ -16,7 +20,7 @@ func _run():
|
|||
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 with three creatures.")
|
||||
saynn("While exploring the station a in the corner of a platform sits a demon-dragon Pierre with three leashed creatures.")
|
||||
addButton("Talk", "Talk to Pierre", "talk")
|
||||
addButton("Appearance", "Take a closer look at Pierre", "appearance")
|
||||
addButton("Leave", "Be on your way", "endthescene")
|
||||
|
@ -32,14 +36,20 @@ func _run():
|
|||
saynn("[say=pierre]Oh hello little morsel. Don't believe I've seen you. Name is Pierre. Do you have a name?[/say]")
|
||||
addButton("I'm "+GM.pc.getName(), "Introduce yourself with your name", "name")
|
||||
else:
|
||||
saynn("You approach the demon.")
|
||||
saynn(RNG.pick(random_pierre_activities_talk))
|
||||
addButton("Prison", "How did he end up in prison?", "prison")
|
||||
addButton("Pets", "Have they really willingly gave to him?", "pets2")
|
||||
addButton("Guards", "Are prison guards giving him trouble?", "guards")
|
||||
if GM.main.getModuleFlag("PierreModule", "Quest_Status") == 1 and GM.main.getModuleFlag("PierreModule", "Quest_Bonked") == true:
|
||||
addButton("Exercise", "Ask Pierre for explanation about your incident with the wall", "quest1bonk")
|
||||
if GM.main.getModuleFlag("PierreModule", "Quest_Status") == 3:
|
||||
addButton("Gumball", "Bring back the gumball to Pierre", "quest1turn")
|
||||
addButton("Leave", "Be on your way", "endthescene")
|
||||
|
||||
if(state == "name"):
|
||||
addCharacter("pierre")
|
||||
saynn("[say=pierre]I see. Nice to meet you "+GM.pc.getName()+" and welcome to my humble corner in this piece of heaven. My name is Pierre.[/say]")
|
||||
saynn("[say=pierre]I see. Nice to meet you "+GM.pc.getName()+" and welcome to my humble corner in this piece of heaven.[/say]")
|
||||
saynn("He holds his paw up to you, not fazed by the fact that you are still separated by an awkwardly long distance from the demon-dragon.\nNot wanting to be rude, you lean forwards while making extra sure you will not trample upon laying inmate or fall forwards by yourself. Eventually your " + ("hand" if len(GM.pc.getSpecies()) == 1 and GM.pc.getSpecies()[0] == "human" else "paw") + " meets his and you are able to do shake them.") # ok, I have no idea what's the difference between buff arms and anthro arms, they seem the same, and technically neither have paws, too bad I'm the one writing dialogue though
|
||||
saynn("[say=pierre]I own this little corner including those three wonderful leashed pets beside me. You do NOT touch my pets without permission. Normally I wouldn't think this has to be mentioned, but for some reasons inmates think otherwise, those who do - don't keep this thought for long.[/say]")
|
||||
sayn("[say=pierre]That's probably everything you need to know about me. \nAlso, considering we didn't start on the wrong foot, you have my permission to speak with my pets. \nNow, please find some other business to attend to, unless you need something else of me?[/say]")
|
||||
|
@ -58,7 +68,7 @@ func _run():
|
|||
GM.main.setModuleFlag("PierreModule", "Pets_Introduced", true)
|
||||
saynn("[say=pc]So... Who are your pets exactly?[/say]")
|
||||
saynn("[say=pierre]Curious about my treasured pearls, aren't you? Oh, I'm happy to introduce you, people usually talk only with me, but I feel like they could use some social interactions with someone else than myself and themselves.[/say]")
|
||||
sayn("[say=pierre]This kitty here is my very first pet, they've recognized me as their master shortly after I came here. They were very spooked and lost in here, still unsure what exactly they did to end up in this place. I gave them meaning, they repay me by being an excellent pet. Azazel, say hi.")
|
||||
sayn("[say=pierre]This kitty here is my very first pet, they've recognized me as their master shortly after I came here. They were very spooked and lost in here, still unsure what exactly they did to end up in this place. I gave them meaning, they repay me by being an excellent pet. Azazel, say hi.[/say]")
|
||||
saynn("Pierre looks expectantly at Azazel - a fairly regular looking feline, he is wearing an lilac uniform. Until now he was curled and seemingly asleep, even though his ears were perking up whenever his master spoke. After hearing his master's voice speak his name however his head immediately went up, and along with it the rest of his body. He stood on his fours and turned towards you.")
|
||||
saynn("[say=azazel]Hello... Stranger.[/say]")
|
||||
saynn("Azazel said with reservation. He looked away from you for a second to look at face of his master, whos face didn't lose his expectant look. Turning back to you he hesitently rubbed his cheek on your leg and collapsed onto his blanket again, making sure to take a last look at his master before closing his eyelids and presumably continuing his slumber.")
|
||||
|
@ -188,6 +198,39 @@ func _run():
|
|||
saynn("[say=pierre]Go there, blind yourself, go through a wall and bring me the goods. The number you'll need is 84. And morsel, don't hang in there for too long, trust me on that. Don't worry, I'll know if you succeed or not, don't try to cheat. Remember, trust is the key.[/say]")
|
||||
addButton("Leave", "Take your leave", "endthescene")
|
||||
|
||||
if(state == "quest1bonk"):
|
||||
saynn("Before you even start speaking Pierre starts laughing maniacally, catching you off guard.")
|
||||
saynn("[say=pierre]Oh Morsel[/say]")
|
||||
saynn("He almost chokes with laughter.")
|
||||
saynn("[say=pierre]I've been told you- you've had a[/say]")
|
||||
saynn("He barely breathes thanks to constant laughter.")
|
||||
saynn("[say=pierre]certain mee- meeting with a wall.[/say]")
|
||||
saynn("He starts recovering from the laughter.")
|
||||
saynn("[say=pierre]I'm sorry, it was just... I've seen the clip, little birdie showed me it, told me I'd enjoy, and oh morsel, it made my week.[/say]")
|
||||
saynn("[say=pc]W-was it all a joke then? Have I passed your trust exercise?[/say]")
|
||||
saynn("[say=pierre]Haha, don't get ahead of yourself there. I just didn't mention one very important fact, honestly didn't anticipate you trying to be sneaky.[/say]")
|
||||
saynn("[say=pc]What do you mean?[/say]")
|
||||
saynn("[say=pierre]I mean that you weren't supposed to do that at night! I appreciate the attempt, but the mechanism closes shut at night.[/say]")
|
||||
saynn("That... Would make sense. Still unsure what mechanism Pierre is referring to, but its true that the prison isn't exactly the same when the night comes, and some places are simply locked. "+("Your tail wraps around you in embarassment" if GM.pc.hasTail() else "You blush in embarassment")+".")
|
||||
saynn("[say=pierre]It's fine pet, you didn't know. Go there today and do the same thing, just perhaps not during the night, okey?[/say]")
|
||||
addButton("Leave", "Nod and leave embarassed", "endthescene")
|
||||
|
||||
if(state == "quest1turn"):
|
||||
GM.main.setModuleFlag("PierreModule", "Quest_Status", 4)
|
||||
saynn("[say=pc]Is... This what you wanted?[/say]")
|
||||
saynn("You said with uncertainty in your voice, presenting Pierre with a packet of gumball.\nPierre looks at you elated, he claps his paws.")
|
||||
saynn("[say=pierre]Yes, YES. This is exactly what I needed, pet.[/say]")
|
||||
saynn("He stands up, and takes the packet of gum from your paw.")
|
||||
saynn("He opens one end of it and immediately pops one of the gums in his mouth. He goes back to sit on his chair.")
|
||||
saynn("[say=pierre]You know, a lot of goods in here are generally unavailable to inmates. I knew what I were getting into arriving in here, and didn't really care about most of favorite dishes or products. But this gum? I can't live without it. I were able to make sure it arrives here, in this prison just for myself regularly. You wouldn't believe just how much I had to work to have it delivered, it's not exactly the most popular destination in the galaxy. I have a contact who drops it always in same place where you got it from.[/say]")
|
||||
saynn("He savours the taste of gum, closing his eyes and resting his head on chair's headrest.")
|
||||
saynn("[say=pierre]Ahhhhhh. So good. I've been chewing this brand since I were little, out of all things, it never gets old.[/say]")
|
||||
saynn("He looks back at you.")
|
||||
if GM.main.getModuleFlag("PierreModule", "Quest_Bonked") == true:
|
||||
saynn("[say=pierre]I assume no more, akhem, ”wall incidents”?[/say]")
|
||||
saynn("He grins")
|
||||
saynn("[say=pierre]And with just that you've passed my first test. Congratulations! I knew you could do it.[/say]")
|
||||
# TODO
|
||||
|
||||
func calculateHaremScore():
|
||||
var score = 0
|
||||
|
|
|
@ -14,8 +14,9 @@ func getProgress():
|
|||
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 gumball. Return it to Pierre.")
|
||||
|
||||
result.append("You've got a pack of gum. Return it to Pierre.")
|
||||
if(quest_status > 3):
|
||||
result.append("You've delivered a pack of gum to Pierre. ")
|
||||
return result
|
||||
|
||||
func isVisible():
|
||||
|
|
Loading…
Reference in a new issue