Fen Dweller 7 лет назад
Родитель
Сommit
f738fc2fe6
1 измененных файлов: 171 добавлений и 8 удалений
  1. +171
    -8
      customs.js

+ 171
- 8
customs.js Просмотреть файл

@@ -445,7 +445,14 @@ function Taluthus() {
this.description = function() { return "Taluthus"; };

this.startCombat = function() { return ["You jump back as a hulking kitsune leaps out at you, his four massive tails swaying as he sizes you up."]; };
this.finishDigest = function() { return ["The kitsune's guts melt you down..."]; };
this.finishDigest = function() {
switch(this.flags.grappleType) {
case "belly": return ["The kitsune's guts break you down..."];
case "balls": return ["The kitsune melts you down into cum..."];
}

return ["The kitsune digests you..."];
};
this.defeated = function() { changeMode("explore"); moveToByName("Nature Trail"); update(["The kitsune growls and vanishes in a blinding flash of light. You pass out, eventually coming to in the woods."]); };
this.prefs.prey = false;

@@ -453,6 +460,7 @@ function Taluthus() {

this.attacks.push(taluthusGrab(this));
this.attacks.push(taluthusGrabDevour(this));
this.attacks.push(taluthusGrabCockVore(this));

this.attacks.push(taluthusTailDevour(this));

@@ -460,11 +468,15 @@ function Taluthus() {

this.digests.push(taluthusDigest(this));
this.digests.push(taluthusTailSwallow(this));
this.digests.push(taluthusCockSwallow(this));
this.digests.push(taluthusBallsDigest(this));

this.struggles = [];

this.struggles.push(taluthusBallStruggle(this));
this.struggles.push(taluthusBellyStruggle(this));
this.struggles.push(taluthusTailStruggle(this));
this.struggles.push(taluthusCockStruggle(this));
}

function taluthusPunchAttack(attacker) {
@@ -531,6 +543,34 @@ function taluthusGrabDevour(attacker) {
};
}

function taluthusGrabCockVore(attacker) {
return {
attackPlayer: function(defender) {
let success = statHealthCheck(attacker, defender, "str");
if(success) {
attacker.changeStamina(-10);
defender.changeStamina(-50);
defender.flags.grappled = true;
attacker.flags.grappleType = "cock";
attacker.flags.cockSwallows = 4;
changeMode("eaten");
return ["Taluthus abruptly shoves you downward, enveloping your feet in his black shaft."];
} else {
attacker.changeStamina(-25);
defender.changeStamina(-25);
return ["The kitsune tries to force you into his cock, but you keep your feet free."];
}
}, requirements: [
function(attacker, defender) { return isNormal(attacker) && isGrappled(defender) && defender.flags.shrunk != true; },
function(attacker, defender) { return attacker.flags.grappleType == "hands"; }
], conditions: [
function(attacker, defender) { return defender.prefs.prey; }
],
priority: 1,
weight: function(attacker, defender) { return 1; }
};
}

function taluthusTailDevour(attacker) {
return {
attackPlayer: function(defender) {
@@ -570,7 +610,26 @@ function taluthusDigest(predator,damage=50) {
function(attacker, defender) { return attacker.flags.grappleType == "belly"; }
],
priority: 1,
weight: function() { return 1; }
weight: function() { return 1; },
gameover: function() { return "Digested in the glowing gut of Taluthus"; }
};
}

function taluthusBallsDigest(predator,damage=50) {
return {
digest: function(player) {
attack(predator, player, damage);
player.changeStamina(-50);
return pickRandom([
["Thick, musky cum smears over your body, steadily breaking you down into seed."]
]);
},
requirements: [
function(attacker, defender) { return attacker.flags.grappleType == "balls"; }
],
priority: 1,
weight: function() { return 1; },
gameover: function() { return "Dissolved into cum by Taluthus"; }
};
}

@@ -604,15 +663,31 @@ function taluthusTailSwallow(predator,damage=50) {
};
}

function taluthusTailCrush(predator,damage=20) {
function taluthusCockSwallow(predator) {
return {
digest: function(player) {
attack(predator, player, damage);
player.changeStamina(-50);
return pickRandom([
["The kitsune's tail squeezes and grinds your body."]
]);
let success = statHealthCheck(predator, player, "str");
if (success) {
predator.changeStamina(-5);
player.changeStamina(-25);
predator.flags.cockSwallows -= 1;

if (predator.flags.cockSwallows == 0) {
player.flags.grappled = false;
predator.flags.grappleType = "balls";
return ["A final clench drags you all the way into the kitsune's balls. Your body is roughly crammed into a lake of blue cum, squeezed on all sides by hot, musky flesh."];
} else {
return ["A powerful swallow pulls you deeper into Taluthus' shaft."];
}
} else {
predator.changeStamina(-15);
player.changeStamina(-25);
return ["You brace yourself against the walls of the crushing shaft, holding yourself in place as he clenches."];
}
},
requirements: [
function(attacker, defender) { return attacker.flags.grappleType == "cock"; }
],
priority: 1,
weight: function() { return 1; }
};
@@ -650,6 +725,38 @@ function taluthusBellyStruggle(predator) {
};
}

function taluthusBallStruggle(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) {
player.clear();
predator.clear();
return {
"escape": "stay",
"lines": ["You struggle and squirm, forcing Tal to let you out of his cock. He's not done with you yet..."]
};
} else {
return {
"escape": "stuck",
"lines": ["You squirm and writhe within Tal's balls, to no avail."]
};
}
},
requirements: [
function(predator, player) {
return predator.flags.grappleType == "balls";
}
]
};
}

function taluthusTailStruggle(predator) {
return {
name: "Struggle",
@@ -705,3 +812,59 @@ function taluthusTailStruggle(predator) {
]
};
}

function taluthusCockStruggle(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;
}

let position = "";

switch(predator.flags.cockSwallows) {
case 1:
position = "You're one clench away from being dragged into Tal's balls, utterly lost inside that throbbing cock.";
break;
case 2:
position = "Your face is grinding against the tip of the sune's shaft.";
break;
case 3:
position = "Your upper body is still hanging outside of Tal's cock.";
break;
case 4:
position = "You're almost free - only your legs are trapped in that tight sune cock.";
break;
}

if (escape) {
predator.flags.tailSwallows += 1;

if (predator.flags.tailSwallows > 4) {
return {
"escape": "stay",
"lines": ["You struggle and squirm, forcing your way out from the kitsune's voracious shaft."]
};
} else {
return {
"escape": "stuck",
"lines": ["You struggle and squirm, inching closer to freedom.", newline, position]
};
}
} else {
return {
"escape": "stuck",
"lines": ["You squirm and writhe within Tal's shaft, to no avail.", newline, position]
};
}
},
requirements: [
function(predator, player) {
return predator.flags.grappleType == "cock" && predator.flags.cockSwallows > 0;
}
]
};
}

Загрузка…
Отмена
Сохранить