let success = statHealthCheck(attacker, defender, "str");
if (success) {
defender.grappled = true;
defender.flags.grappled = true;
return "You charge at " + defender.description("the") + ", tackling them and knocking them to the ground.";
} else {
return "You charge at " + defender.description("the") + ", but they dodge out of the way!";
@@ -79,7 +83,7 @@ function grapple(attacker) {
attackPlayer: function(defender) {
let success = Math.random() < 0.5;
if (success) {
defender.grappled = true;
defender.flags.grappled = true;
return attacker.description("The") + " lunges at you, pinning you to the floor!";
} else {
return attacker.description("The") + " tries to tackle you, but you deftly avoid them.";
@@ -101,7 +105,7 @@ function grappleDevour(attacker) {
let success = statHealthCheck(attacker, defender, "str");
if (success) {
attacker.stomach.feed(defender);
defender.grappled = false;
defender.flags.grappled = false;
changeMode("explore");
return "You open your jaws wide, stuffing " + defender.description("the") + "'s head into your gullet and greedily wolfing them down. Delicious.";
} else {
@@ -111,7 +115,7 @@ function grappleDevour(attacker) {
attackPlayer: function(defender) {
let success = statHealthCheck(attacker, defender, "str");
if(success) {
defender.grappled = false;
defender.flags.grappled = false;
changeMode("eaten");
return attacker.description("The") + " forces your head into their sloppy jaws, devouring you despite your frantic struggles. Glp.";
} else {
@@ -134,7 +138,7 @@ function grappleAnalVore(attacker) {
let success = statHealthCheck(attacker, defender, "str");
if (success) {
attacker.butt.feed(defender);
defender.grappled = false;
defender.flags.grappled = false;
changeMode("explore");
return "You shove " + defender.description("the") + " between your cheeks. Their head slips into your ass with a wet <i>shlk</i>, and the rest of their body follows suit. You moan and gasp, working them deeper and deeper...";
} else {
@@ -154,7 +158,7 @@ function grappleRelease(attacker) {
return attacker.description() + " pulls a strange device from his pocket and points it at you. A blinding flash envelops your vision...and as your sight returns, you find yourself shrunken down to no more than two inches tall.";
}
},
requirements: [
function(attacker, defender) {
return isNormal(attacker) && isNormal(defender);
}
],
priority: 2
};
}
function getaGrab(attacker) {
return {
attackPlayer: function(defender) {
defender.flags.grappled = true;
return attacker.description() + " leans down and snatches you up, stuffing you into his maw.";