Преглед изворни кода

Fleshed out cock vore, added oral vore

tags/v0.2.8
Fen Dweller пре 7 година
родитељ
комит
03aa0c8c75
1 измењених фајлова са 157 додато и 6 уклоњено
  1. +157
    -6
      mountain.js

+ 157
- 6
mountain.js Прегледај датотеку

@@ -37,10 +37,15 @@ function MountainWyrm() {
this.attacks.push(wyrmPounce(this));

this.attacks.push(wyrmGrind(this));
this.attacks.push(wyrmOralVore(this));
this.attacks.push(wyrmCockVore(this));

this.attacks.push(wyrmOralSwallow(this));

this.attacks.push(wyrmStomachDigest(this));

this.attacks.push(wyrmCockSwallow(this));
//this.attacks.push(wyrmCockCrush(this));
this.attacks.push(wyrmCockCrush(this));

this.attacks.push(wyrmBallsDigest(this));

@@ -49,8 +54,10 @@ function MountainWyrm() {
this.playerAttacks.push(punchAttack);
this.playerAttacks.push(flankAttack);

this.playerAttacks.push(cockStruggle);
this.playerAttacks.push(ballStruggle);
this.playerAttacks.push(wyrmOralStruggle);
this.playerAttacks.push(wyrmStomachStruggle);
this.playerAttacks.push(wyrmCockStruggle);
this.playerAttacks.push(wyrmBallStruggle);

this.playerAttacks.push(pass);
this.playerAttacks.push(flee);
@@ -62,6 +69,10 @@ function MountainWyrm() {
this.finishCombat = function() {
if (this.flags.state == "combat")
return [this.description("The") + " knocks you to the ground. You bash your head on a rock and black out."];
else if (this.flags.state == "cock")
return ["You expire in the dragon's shaft, crushed to death by the wyrm's lust."];
else if (this.flags.state == "stomach")
return ["You give one last heave...and digest."];
else if (this.flags.state == "balls")
return ["You fall limp in " + this.description("the") + "'s balls."];
};
@@ -172,6 +183,58 @@ function wyrmGrind(attacker) {
};
}

function wyrmOralVore(attacker) {
return {
attackPlayer: function(defender){
if (statHealthCheck(attacker, defender, "str")) {
attacker.flags.state = "oral";
attacker.flags.oralDepth = 1;
defender.changeStamina(-25);
return ["Gasping for breath, you can only watch as the wyrm's jaws splay wide - strands of drool lashing out like bolts of lightning - and force over your head."];
} else {
return ["The wyrm's jaws splay wide, lunging in and trying to wrap around your head, but you manage to punch the beast in the snout and force him to back off."];
}
},
requirements: [
function(attacker, defender) {
return attacker.flags.state == "grapple";
},
function(attacker, defender) {
return defender.prefs.vore.oral > 0;
},
function(attacker, defender) {
return defender.prefs.prey;
}
],
priority: 1,
weight: function(attacker, defender) {return (1 - 0.5 * defender.staminaPercentage()) * defender.prefs.vore.oral; }
};
}

function wyrmOralSwallow(attacker) {
return {
attackPlayer: function(defender) {
attacker.flags.oralDepth += 1;
if (attacker.flags.oralDepth == 4) {
attacker.flags.state = "stomach";
return ["The beast gulps one last time, pulling your whole body into his roiling guts."];
} else if (attacker.flags.oralDepth == 3) {
return ["Hot, slimy flesh smothers your legs as they're dragged down. Trapped and teased, smothered and squeezed - you're one swallow away from being sealed away for good."];
} else if (attacker.flags.oralDepth == 2) {
return ["A powerful swallow claims your belly and hips. Your head pops into the wyrm's burning-hot belly, shoved into the slimy, fleshy prison with ease."];
}
},
requirements: [
function(attacker, defender) {
return attacker.flags.state == "oral";
}
],
priority: 1,
weight: function(attacker, defender) { return 1; }
};
}


function wyrmCockVore(attacker) {
return {
attackPlayer: function(defender){
@@ -196,7 +259,7 @@ function wyrmCockVore(attacker) {
}
],
priority: 1,
weight: function(attacker, defender) {return 2 - defender.staminaPercentage(); }
weight: function(attacker, defender) { return (2 - defender.staminaPercentage()) * defender.prefs.vore.cock; }
};
}

@@ -225,6 +288,41 @@ function wyrmCockSwallow(attacker) {
};
}

function wyrmCockCrush(attacker) {
return {
attackPlayer: function(defender) {
let damage = attack(attacker, defender, attacker.str * attacker.flags.cockDepth);

return ["The wyrm's cock throbs and clenches, crushing the life from your body!"];
},
requirements: [
function(attacker, defender) {
return attacker.flags.state == "cock";
}
],
priority: 1,
weight: function(attacker, defender) { return 0.13; },
gameover: function() { return "Crushed to death in the cock of " + attacker.description("a"); }
};
}

function wyrmStomachDigest(attacker) {
return {
attackPlayer: function(defender) {
attack(attacker, defender, 25);
return ["The wyrm's swollen gut gurgles, swiftly melting you down."];
},
requirements: [
function(attacker, defender) {
return attacker.flags.state == "stomach";
}
],
priority: 1,
weight: function(attacker, defender) { return 1; },
gameover: function() { return "Digested in the stomach of " + attacker.description("a"); }
};
}

function wyrmBallsDigest(attacker) {
return {
attackPlayer: function(defender) {
@@ -242,8 +340,61 @@ function wyrmBallsDigest(attacker) {
};
}

function wyrmOralStruggle(attacker) {
return {
name: "Struggle",
desc: "Try to escape the wyrm's throat!",
attack: function(defender) {
let success = statHealthCheck(attacker, defender, "str");
if (success) {
attacker.changeStamina(-15);
defender.flags.oralDepth -= 1;
if (defender.flags.oralDepth == 2) {
return ["You grunt and shove, forcing your legs out of the beast's jaws."];
} else if (defender.flags.oralDepth == 1) {
return ["Your struggles bear fruit, pushing your hips and belly out into the cool mountain air."];
} else if (defender.flags.oralDepth == 0) {
defender.flags.state = "combat";
attacker.flags.grappled = false;
return ["You manage to escape! Your eyes struggle to focus as your head slides from the wyrm's gullet, leaving you vulnerable for a moment - but the beast is no metter off than you, hacking and coughing as you rise to your feet."];
}
} else {
attacker.changeStamina(-25);
return ["You struggle, but it's of no use..."];
}
},
requirements: [
function(attacker, defender) { return defender.flags.state == "oral"; }
],
priority: 1,
};
}

function wyrmStomachStruggle(attacker) {
return {
name: "Struggle",
desc: "Try to free yourself from the wyrm's guts!",
attack: function(defender) {
let success = statHealthCheck(attacker, defender, "str");
if (success) {
attacker.changeStamina(-5);
defender.flags.state = "oral";
defender.flags.oralDepth = 2;
return ["You struggle and squirm, forcing yourself back into the wyrm's hot throat. He's not letting you go just yet..."];
} else {
attacker.changeStamina(-10);
return ["You struggle, but it's of no use."];
}
},
requirements: [
function(attacker, defender) { return defender.flags.state == "stomach"; }
],
priority: 1,
};
}


function cockStruggle(attacker) {
function wyrmCockStruggle(attacker) {
return {
name: "Struggle",
desc: "Try to pull yourself from the wyrm's cock!",
@@ -275,7 +426,7 @@ function cockStruggle(attacker) {
};
}

function ballStruggle(attacker) {
function wyrmBallStruggle(attacker) {
return {
name: "Struggle",
desc: "Try to free yourself from the wyrm's balls!",


Loading…
Откажи
Сачувај