diff --git a/customs.js b/customs.js index 28a9057..7107c56 100644 --- a/customs.js +++ b/customs.js @@ -884,11 +884,11 @@ function Selicia() { this.startCombat = function() { return ["You stumble across a small cave. Stepping closer to investigate, you find yourself face-to-face with a glossy, slender dragon! Her ten-foot body is matched by a tail that's nearly as long, and she looms over you, devious blue eyes framed by curved horns."]; }; this.finishDigest = function() { switch(this.flags.voreType) { - case "stomach": return ["The dragon's belly breaks you down..."]; - case "womb": return ["The dragon's womb melts you down into femcum..."]; + case "stomach": return ["The dragoness's belly breaks you down..."]; + case "womb": return ["The dragoness's womb melts you down into femcum..."]; } - return ["The kitsune digests you..."]; + return ["The dragoness digests you..."]; }; this.defeated = function() { startDialog(FallenFoe(this)); }; @@ -909,15 +909,15 @@ function Selicia() { this.digests = []; - //this.digests.push(seliciaStomachDigest(this)); + this.digests.push(seliciaStomachDigest(this)); this.digests.push(seliciaUnbirthPull(this)); this.digests.push(seliciaWombDigest(this)); this.struggles = []; - //this.struggles.push(seliciaStomachStruggle(this)); - //this.struggles.push(seliciaUnbirthStruggle(this)); - //this.struggles.push(seliciaWombStruggle(this)); + this.struggles.push(seliciaStomachStruggle(this)); + this.struggles.push(seliciaUnbirthStruggle(this)); + this.struggles.push(seliciaWombStruggle(this)); this.struggles.push(submit(this)); } @@ -1069,6 +1069,21 @@ function seliciaUnbirthPull(predator) { }; } +function seliciaStomachDigest(predator) { + return { + digest: function(player) { + attack(predator, player, 50); + player.changeStamina(-20); + return ["Selicia's stomach clenches and grinds, dousing you in her acids."]; + }, + requirements: [ + function(attacker, defender) { return attacker.flags.voreType == "stomach"; } + ], + priority: 1, + weight: function() { return 1; } + }; +} + function seliciaWombDigest(predator) { return { digest: function(player) { @@ -1084,3 +1099,95 @@ function seliciaWombDigest(predator) { weight: function() { return 1; } }; } + + +function seliciaStomachStruggle(predator) { + return { + name: "Struggle", + desc: "Try to squirm free. More effective if you've hurt your predator.", + struggle: function(player) { + let escape = Math.random() > predator.health / predator.maxHealth && Math.random() < 0.33; + if (player.health <= 0 || player.stamina <= 0) { + escape = escape && Math.random() < 0.25; + } + + if (escape) { + return { + "escape": "stay", + "lines": ["Your struggles force Selicia to hork you up, leaving you dazed and confused on the ground."] + }; + } else { + return { + "escape": "stuck", + "lines": ["You squirm and writhe, to no avail. The stomach walls squeeze tighter."] + }; + } + }, + requirements: [ + function(predator, player) { + return predator.flags.voreType == "stomach"; + } + ] + }; +} + +function seliciaWombStruggle(predator) { + return { + name: "Struggle", + desc: "Try to squirm free. More effective if you've hurt your predator.", + struggle: function(player) { + let escape = Math.random() > predator.health / predator.maxHealth && Math.random() < 0.33; + if (player.health <= 0 || player.stamina <= 0) { + escape = escape && Math.random() < 0.25; + } + + if (escape) { + predator.flags.voreType = "unbirth"; + return { + "escape": "stuck", + "lines": ["Your struggles force the dragon to let you out of her womb...but you're still stuck in her snatch."] + }; + } else { + return { + "escape": "stuck", + "lines": ["You squirm and writhe within the velvety walls of Selicia's womb, to no avail."] + }; + } + }, + requirements: [ + function(predator, player) { + return predator.flags.voreType == "womb"; + } + ] + }; +} + +function seliciaUnbirthStruggle(predator) { + return { + name: "Struggle", + desc: "Try to squirm free. More effective if you've hurt your predator.", + struggle: function(player) { + let escape = Math.random() > predator.health / predator.maxHealth && Math.random() < 0.33; + if (player.health <= 0 || player.stamina <= 0) { + escape = escape && Math.random() < 0.25; + } + + if (escape) { + return { + "escape": "stay", + "lines": ["With a mighty shove, you pop free of the dragoness's cooch - a loud, lewd shllk announcing your return to the world."] + }; + } else { + return { + "escape": "stuck", + "lines": ["You squirm and writhe, to no avail."] + }; + } + }, + requirements: [ + function(predator, player) { + return predator.flags.voreType == "unbirth"; + } + ] + }; +}