diff --git a/combat.js b/combat.js index 6f07ad9..d85f17f 100644 --- a/combat.js +++ b/combat.js @@ -99,7 +99,29 @@ function grappleDevour(attacker) { }, requirements: [ function(attacker, defender) { return isNormal(attacker) && isGrappled(defender); } ], conditions: [ - function(prefs, player=false) { return player || prefs.player.prey } + function(prefs, player=false) { return player || prefs.player.prey; } + ] + }; +} + +function grappleAnalVore(attacker) { + return { + name: "Anal Vore", + desc: "Try to shove your opponent up your ass.", + attack: function(defender) { + let success = Math.random() < 0.25 + (1 - defender.health / defender.maxHealth) * 0.75; + if (success) { + attacker.butt.feed(defender); + defender.grappled = false; + changeMode("explore"); + return "You shove the " + defender.description() + " between your cheeks. Their head slips into your ass with a wet shlk, and the rest of their body follows suit. You moan and gasp, working them deeper and deeper..."; + } else { + return "Your grasp and shove the " + defender.description() + ", but they manage to avoid becoming " + attacker.species + " chow."; + } + }, requirements: [ + function(attacker, defender) { return isNormal(attacker) && isGrappled(defender); } + ], conditions: [ + function(prefs, player=false) { return player || prefs.player.prey; } ] }; } diff --git a/feast.js b/feast.js index eabfed2..728d7c5 100644 --- a/feast.js +++ b/feast.js @@ -172,6 +172,7 @@ function advanceTime(amount) { time = (time + amount) % 86400; player.health = Math.min(amount * player.maxHealth / 86400 * 12 + player.health, player.maxHealth); update(player.stomach.digest(amount)); + update(player.butt.digest(amount)); } function renderTime(time) { diff --git a/vore.js b/vore.js index 9c437b8..b203afb 100644 --- a/vore.js +++ b/vore.js @@ -24,7 +24,7 @@ function Player(name = "Player") { Creature.call(this, name); this.fullness = function() { - return this.stomach.fullness(); + return this.stomach.fullness() + this.butt.fullness(); }; this.attacks.push(new punchAttack(this)); @@ -32,6 +32,7 @@ function Player(name = "Player") { this.attacks.push(new grapple(this)); this.attacks.push(new grappleDevour(this)); + this.attacks.push(new grappleAnalVore(this)); this.attacks.push(new grappleRelease(this)); this.attacks.push(new grappledStruggle(this));