From 5f720f1bc25b3e9a273a0126b90b71e2bdc7a6ca Mon Sep 17 00:00:00 2001 From: Frisk <7283122+Friskygote@users.noreply.github.com> Date: Thu, 26 Dec 2024 02:21:41 +0100 Subject: [PATCH] 25.12 update --- .../IssixModule/Characters/AzazelCharacter.gd | 5 +- Modules/IssixModule/Items/BellCollar.gd | 61 ++++++++++ .../IssixModule/Items/Models/CollarModel.tscn | 9 ++ .../IssixModule/Items/Models/collarbell.png | Bin 0 -> 6294 bytes .../Items/Models/collarbell.png.import | 35 ++++++ .../IssixModule/Items/Models/collarbell.png~ | Bin 0 -> 5683 bytes .../AzazelCorruption/AzazelCorruptionScene.gd | 4 +- .../AzazelCorruptionScene2.gd | 105 ++++++++++++++++-- Modules/IssixModule/Skills/Perks/Relocated.gd | 26 +++++ .../StatusEffects/CatnipOverdose.gd | 2 +- 10 files changed, 236 insertions(+), 11 deletions(-) create mode 100644 Modules/IssixModule/Items/BellCollar.gd create mode 100644 Modules/IssixModule/Items/Models/CollarModel.tscn create mode 100644 Modules/IssixModule/Items/Models/collarbell.png create mode 100644 Modules/IssixModule/Items/Models/collarbell.png.import create mode 100644 Modules/IssixModule/Items/Models/collarbell.png~ create mode 100644 Modules/IssixModule/Skills/Perks/Relocated.gd diff --git a/Modules/IssixModule/Characters/AzazelCharacter.gd b/Modules/IssixModule/Characters/AzazelCharacter.gd index e70eddd..1a6f3e5 100644 --- a/Modules/IssixModule/Characters/AzazelCharacter.gd +++ b/Modules/IssixModule/Characters/AzazelCharacter.gd @@ -85,6 +85,9 @@ func _init(): InterestTopic.BigCock: Interest.Hates, } +func updateBodyparts(): + addEffect(StatusEffect.TaviWombMark) # Not Tavi though womb mark was in Azazel's character design before I realized we have this effect lol + func interestVerbalReaction(interest): if(interest == InterestTopic.Pregnant): return "Oh, do you have litter in there? Cuuute, meoowwww!" @@ -149,4 +152,4 @@ func getBirthWaitTime(): return 60*60*24*3 func getDefaultEquipment(): - return ["inmatecollar", "inmateuniformSexDeviant", "plainPanties"] + return ["inmatecollarbell", "inmateuniformSexDeviant", "plainPanties"] diff --git a/Modules/IssixModule/Items/BellCollar.gd b/Modules/IssixModule/Items/BellCollar.gd new file mode 100644 index 0000000..4bc6343 --- /dev/null +++ b/Modules/IssixModule/Items/BellCollar.gd @@ -0,0 +1,61 @@ +extends ItemBase + +func _init(): + id = "inmatecollarbell" + +func getVisibleName(): + return "Inmate collar with bell" + +func getDescription(): + return "Bulky and very uncomfortable collar made out of casted iron. Has a magnetic lock and a constantly blinking red light. A bell is placed in a loop of this one." + +func getClothingSlot(): + return InventorySlot.Neck + +func getBuffs(): + return [ + ] + +func getTakeOffScene(): + return "CollarTuggingScene" + +func getTags(): + return [ItemTag.AllowsEnslaving] + + +func isImportant(): + return true + +func isRestraint(): + return true + +func generateRestraintData(): + restraintData = RestraintUnremovable.new() + +func getUnriggedParts(_character): + return { + "neck": ["res://Modules/IssixModule/Items/Models/CollarModel.tscn"], + #"wrist.L": ["res://Inventory/UnriggedModels/Cuff/CuffModel.tscn"], + #"wrist.R": ["res://Inventory/UnriggedModels/Cuff/CuffModel.tscn"], + #"ankle.L": ["res://Inventory/UnriggedModels/Cuff/CuffModel.tscn"], + #"ankle.R": ["res://Inventory/UnriggedModels/Cuff/CuffModel.tscn"], + } + +#func getRiggedParts(_character): +# return { +# "harness": "res://Inventory/RiggedModels/RopeHarness/RopeHarness.tscn", +# } + +#func getRiggedParts(_character): +# return { +# "asd": "res://Player/Player3D/Parts/Legs/DigiLegs/DigiLegs.tscn", +# "asd2": "res://Player/Player3D/Parts/Arms/HumanArms/HumanArms.tscn", +# } +# +#func getHidesParts(_character): +# return { +# BodypartSlot.Penis: true, +# } + +func getInventoryImage(): + return "res://Images/Items/bdsm/collar.png" diff --git a/Modules/IssixModule/Items/Models/CollarModel.tscn b/Modules/IssixModule/Items/Models/CollarModel.tscn new file mode 100644 index 0000000..871c3e1 --- /dev/null +++ b/Modules/IssixModule/Items/Models/CollarModel.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Modules/IssixModule/Items/Models/collarbell.png" type="Texture" id=1] + +[node name="CollarModel" type="Spatial"] + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform( 0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, -0.0372997, 0, 0.0324069 ) +texture = ExtResource( 1 ) diff --git a/Modules/IssixModule/Items/Models/collarbell.png b/Modules/IssixModule/Items/Models/collarbell.png new file mode 100644 index 0000000000000000000000000000000000000000..384710159d969498f625df9568786ae1cb5b9493 GIT binary patch literal 6294 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 V=Zl!=e~$)$nu?Zk70@#5{{X0b^Y{P& literal 0 HcmV?d00001 diff --git a/Modules/IssixModule/Items/Models/collarbell.png.import b/Modules/IssixModule/Items/Models/collarbell.png.import new file mode 100644 index 0000000..ce671fb --- /dev/null +++ b/Modules/IssixModule/Items/Models/collarbell.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/collarbell.png-e152fc3c697a61858aa08f0c28921973.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Modules/IssixModule/Items/Models/collarbell.png" +dest_files=[ "res://.import/collarbell.png-e152fc3c697a61858aa08f0c28921973.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=0 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Modules/IssixModule/Items/Models/collarbell.png~ b/Modules/IssixModule/Items/Models/collarbell.png~ new file mode 100644 index 0000000000000000000000000000000000000000..74575d1a3e12d50ff5f201990d9a3827e92013f7 GIT binary patch literal 5683 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 literal 0 HcmV?d00001 diff --git a/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene.gd b/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene.gd index 862dfff..9f89623 100644 --- a/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene.gd +++ b/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene.gd @@ -5,7 +5,7 @@ func _init(): func _run(): if(state == ""): - + addCharacter("azazel") saynn("As you walk in the hallway you spot a certain familiar feline a few steps in front of you. It's Azazel, he stands against the wall with his entire body fully naked, right leg on the floor while left one bent and is in contact with the wall. Looking at you, he winks.") saynn("[say=azazel]Heeeey there {pc.name}, sweetie! How are you doing?[/say]") saynn("[say=pc]Pretty fine, what are you doing here? Shouldn't you be with your Master?[/say]") @@ -32,7 +32,7 @@ func _run(): saynn("[say=azazel]Wouldn't you want to have scratches behind your ear every morning? To have food in your bowl? To be cared for in this bleak world? To fulfill your Master's wishes and be rewarded?[/say]") saynn("He said, continuing a surprised tone.") addButton("Yes", "Say that this does sound good...", "hot") - addButton("No", "Say that this is delusional to like it (disables future Azazel's corruption scene)", "nothot") + addButton("No", "Say that this is delusional to like it (disables future Azazel's corruption scenes)", "nothot") if state == "hot": saynn("[say=pc]I would love that, actually...[/say]") diff --git a/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene2.gd b/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene2.gd index 2019c7c..c245833 100644 --- a/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene2.gd +++ b/Modules/IssixModule/Scenes/AzazelCorruption/AzazelCorruptionScene2.gd @@ -1,22 +1,113 @@ extends SceneBase +var player_fluids = null + func _init(): sceneID = "AzazelCorruption2" func _run(): if(state == ""): - - saynn("Lost in the murmur of big hallways you walk towards your goal when you get hit on your chest by a tail, a long leathery red tail ending in a spade. You blink, and realize that the tail you saw is in actuality a regular gray feline tail, you stop in your tracks, confused, looking for tail's owner you follow the trail, finding Azazel lusty look on you.") + addCharacter("azazel") + saynn("Lost in the murmur of big hallways you walk towards your goal when you get gently hit on your chest by a tail, a long leathery red tail ending in a spade. You blink, and realize that the tail you saw is in actuality a regular gray feline tail, you stop in your tracks, confused, looking for tail's owner you follow the appendage, finding Azazel lusty look focused on you.") saynn("[say=azazel]What's that in your look? Surprised to see me again outside of the corner?[/say]") saynn("[say=pc]Uhh, no, it's just... Ah, forget it.[/say]") - saynn("He smiles.") - saynn("[say=azazel]Tell me sweetie, have you ever kissed?[/say]") - # Plan for the scene - # - # + saynn("He smiles and walks to your right side, his tail curled around the front of your body, climbing upwards, blocking your way. His arms wrap around you, his smell sticking to you as he borrows your personal space entirely. He says, close to your right ear.") + saynn("[say=azazel]Tell me cutie, have you ever kissed?[/say]") + addButton("Yes", "You did kiss in the past", "kissed") + addButton("No", "Didn't kiss before", "notkissed") + + if state == "kissed": + saynn("[say=azazel]Oh, experienced? I don't have to teach you that important skill then. Though... Everyone's kiss is different, and you never know how it feels until you try![/say]") + saynn("He giggles playfully into your ear, you turn your head to meet feline's eyes, they look so [color=#ac1eff]inviting[/color].") + saynn("[say=azazel]This days I rarely kiss lips though, not much space for romance in this place...[/say]") + saynn("He says the last part quieter than usual, in rather disappointed tone, you barely hear it, before his tone shifts once again to seductive kitten.") + saynn("[say=azazel]So what do you say about some tongue muscle training with me? I really want to taste you![/say]") + addButton("Sure", "Accept Azazel's offer (CW: drug use, cum swap)", "agreekiss") + if (GM.pc.getPersonality().getStat(PersonalityStat.Subby) < 0.3) and GM.pc.getLust() < 70 and !GM.pc.isWearingHypnovisor() and !GM.pc.hasEffect(StatusEffect.Suggestible) and !GM.pc.hasEffect(StatusEffect.UnderHypnosis): + addButton("Reject", "Reject Azazel's advance", "denykiss") + else: + addDisabledButton("Reject", "You are too subby, too lusty or are under forced obedience effect, you cannot resist Azazel's allure") + + if state == "notkissed": + + + if state == "agreekiss": + saynn("[say=pc]Don't see why not, lets do this![/say]") + saynn("You can feel Azazel's purr coming from your body as you say that. He goes behind you, his tail trailing behind but constantly making contact with your body, teasing you, tasting you. He comes from your left side and goes in front of you, his tail finally leaving you alone as it swishes behind his back. His face in sly grin.") + saynn("[say=azazel][color=#ac1eff]You look so good.[/color][/say]") + saynn("Immediately after saying those words he leans into you, his arms wrapping around yours as his lips touch yours. He isn't forceful but he isn't entirely passive either, his tongue mingling with yours, so does his saliva. Your arms wrap around his shoulders as well, which felt like the only natural action you could think of while being embraced by the feline.") + saynn("What Azazel said before, about everyone's kiss being different is certainly true, you can feel just how much Azazel's kiss feels like his personal „brand” of kiss, which is exactly how you imagined slutty kitten to taste like, feeling salty, like... Cum. The taste intensified, with each moment it felt like more and more of salty cum, which he was now being spit into your mouth.") + addButton("Continue", "Continue making out with Azazel", "kisscontinue") + if GM.pc.hasPerk(Perk.CumBreath) or GM.pc.getSkillLevel(Skill.CumLover) > 10: + saynn("And you eagerly accepted the gift, which you are so well acquainted with. It's just sharing the seed of another male, you are quite good with that.") + else: + saynn("At first you wanted to protest, not having a lot of experience and contact with cum in your mouth, but this thought quickly got lost as the idea of swallowing virile male cum somehow made you feel hot, wanting for this treatment.") + addDisabledButton("Push", "You can't refuse Azazel's gift, it feels too good") + + if state == "kisscontinue": + if GM.pc.getFetishHolder().getFetishValue(Fetish.DrugUse) > 0: + saynn("As the kiss continues, you feel Azazel pushing something else along with plentiful of cum, something much more solid - small, but solid, you quickly realize what it is - pills. You don't know what kind of, you don't know where from and what they will do to you, but you want to [color=#ac1eff]swallow them[/color], you want them in your belly, to work on you. Whatever Azazel planned for you, it must be good, and you love this kind of fun. You play around with the pills in your mouth for a moment before you [color=#ac1eff]swallow them[/color] whole into your gullet, awaiting fun effects they may have on you.") + else: + saynn("As the kiss continues a realization dawns on you as Azazel pushes something expertly with his skilled tongue - something much more solid than just cum, something small - pills. Panic sets in, you feel betrayed, you want to pull out of the kiss and yet you feel Azazel's paw behind your head, his mouth pushing onto yours with even bigger force locking you in. He continues to push the pills to go inside of your gullet, and... [color=#ac1eff]You let him[/color]. You can't tell if it was your own mistake or you have given in to the moment of lust, but along with cum you swallowed what you think were two pills.") + + saynn("The after 30 seconds of kissing, both of you relent, haaving made mess with your saliva on both faces. Azazel looks at your face and laughs lightheartedly.") + + if player_fluids != null: + if "Piss" in player_fluids and ("Cum" in player_fluids or "GirlCum" in player_fluids): + saynn("[say=azazel]Haha, I totally didn't expect you to be way ahead of me in mouth dirtiness, not only I could feel cum inside of your mouth but piss as well! I almost feel defeated![/say]") + saynn("He laughs after saying that") + elif "Cum" in player_fluids or "GirlCum" in player_fluids: + saynn("[say=azazel]Here I were, thinking I'll introduce new flavor to your pretty mouth and you already had plenty of your own inside, damn. Guess both of our us are cum starved [color=#ac1eff]sluts[/color].[/say]") + elif "Piss" in player_fluids: + saynn("[say=azazel]You surprised me {pc.name}, I didn't expect you to taste of piss! That's so hot and kinky, how do you like the taste of urine? I mean, I know how was my first time but you get used to it pretty quick.[/say]") + + saynn("[say=azazel]That was really something, thank you {pc.name}![/say]") + + saynn("[say=pc]It was! Thank you Azazel![/say]") + + saynn("Azazel cleans his face with his surprisingly very long tongue, it's still drenched in saliva but now it's not as visible as before, maybe except the obvious lingering smell of cum which you now have as well thanks to all that cum that spilled out when you were making out.") + + saynn("[say=pc]Oh, I almost forgot to ask... Uhh.. What were the two pills that you had for me?[/say]") + + saynn("[say=azazel]Hehehehe, both of them are making you feel good, you don't have to worry about it. I can share more with you if you want, but you'd have to join my Master as his pet, there would be much for you if you did that, and we could make out daily![/say]") + + + +func saveData(): + var data = .saveData() + + data["playetFluids"] = player_fluids + + return data + +func loadData(data): + .loadData(data) + + player_fluids = SAVE.loadVar(data, "playetFluids", null) + func _react(_action: String, _args): + if _action == "kisscontinue": + var itemRef = GlobalRegistry.getItemRef("HeatPill") + if(itemRef == null): + return + itemRef.useInSex(GM.pc) + GM.pc.getPersonality().addStat(PersonalityStat.Subby, 0.25) + addMessage("You became more subby after the pill given to you by Azazel") + if GM.pc.getFetishHolder().getFetishValue(Fetish.DrugUse) > 0: + GM.pc.addLust(50) + else: + GM.pc.addLust(20) + if _action == "agreekiss": + # Cum, Piss, Girlcum + var azazel = GlobalRegistry.getCharacter("azazel") + azazel.cummedInBodypartByAdvanced(BodypartSlot.Head, "issix", {"noEvent": true}, FluidSource.Penis, 0.4) + azazel.bodypartTransferFluidsToAmount(BodypartSlot.Head, "pc", BodypartSlot.Head, 0.8, 0.2) + GM.pc.addLust(20) + + if _action == "kissed": + player_fluids = GM.pc.getBodypart(BodypartSlot.Head).getFluids().getFluidList() if _action == "hot": processTime(5*60) diff --git a/Modules/IssixModule/Skills/Perks/Relocated.gd b/Modules/IssixModule/Skills/Perks/Relocated.gd new file mode 100644 index 0000000..1a507ff --- /dev/null +++ b/Modules/IssixModule/Skills/Perks/Relocated.gd @@ -0,0 +1,26 @@ +extends PerkBase + +func _init(): + id = "PetRelocated" + skillGroup = "Pet" + +func getVisibleName(): + return "Relocated" + +func getVisibleDescription(): + return "Your Master's tiny cell has became your new cell" + +func getSkillTier(): + return 0 + +func getPicture(): + return "res://Modules/IssixModule/Skills/Images/relocated.png" + +func toggleable(): + return false + +func unlockable(): + return false + +func hiddenWhenLocked(): + return true diff --git a/Modules/IssixModule/StatusEffects/CatnipOverdose.gd b/Modules/IssixModule/StatusEffects/CatnipOverdose.gd index f5b3c7f..aa44efb 100644 --- a/Modules/IssixModule/StatusEffects/CatnipOverdose.gd +++ b/Modules/IssixModule/StatusEffects/CatnipOverdose.gd @@ -32,7 +32,7 @@ func getIconColor(): func combine(_args = []): if(_args.size() > 0): - turns = max(_args[0], turns) + turns = _args[0]+turns func getBuffs(): return [