Parcourir la source

Flavor lines, submission, fixed a/an

tags/v0.2.9
Fen Dweller il y a 7 ans
Parent
révision
56b595bb35
1 fichiers modifiés avec 38 ajouts et 9 suppressions
  1. +38
    -9
      forest.js

+ 38
- 9
forest.js Voir le fichier

@@ -336,7 +336,14 @@ function Anaconda() {

this.hasName = false;

this.description = function(prefix) { return prefix + " anaconda"; };
this.description = function(prefix) {
if (prefix == "a")
return "an anaconda";
if (prefix == "A")
return "A anaconda";
else
return prefix + " anaconda";
};

this.flags.state = "combat";

@@ -367,9 +374,24 @@ function Anaconda() {

this.status = function() {
if (this.flags.state == "oral") {
return ["Oral depth: " + this.flags.oral.depth];
switch(this.flags.oral.depth) {
case 1: return ["You're trapped at the top of the serpent's throat."];
case 2: return ["Your body is a heavy bulge, hanging five feet down the snake's gullet."];
case 3: return ["Hot flesh squeezes all around you, grinding on your body as you're held perilously close to the anaconda's stomach."];
case 4: return ["Unyielding flesh holds you tight against the entrance of the serpent's stomach. One last swallow and you're going in."]
}
} else if (this.flags.state == "stomach") {
return ["Stomach depth: " + this.flags.stomach.depth];
if (this.flags.stomach.depth <= 1) {
return ["You're held up right against the entrance to the snake's sloppy gut."];
} else if (this.flags.stomach.depth < 10) {
return ["The rippling stomach squeezes on your slick, delicious body."];
} else if (this.flags.stomach.depth < 20) {
return ["You're trapped halway into the anaconda's crushing stomach."];
} else if (this.flags.stomach.depth < 30) {
return ["The anaconda's guts seem endless - rippling, churning, crushing."];
} else {
return ["You're so very deep..."];
}
} else {
return [];
}
@@ -400,7 +422,7 @@ function Anaconda() {
this.attacks.push({
attackPlayer: function(defender) {
if (statHealthCheck(attacker, defender, "str")) {
let damage = attack(attacker, defender, attacker.str);
let damage = attack(attacker, defender, attacker.str/2);
return ["The snake's tail whips around, smacking you for " + damage + " damage!"];
} else {
return ["The serpent's tail lashes at you, but you manage to stay out of its way."];
@@ -421,6 +443,7 @@ function Anaconda() {
if (statHealthCheck(attacker, defender, "str")) {
attacker.flags.state = "grapple";
attacker.flags.tail.turns = 0;
attacker.flags.tail.submits = 0;
let damage = attack(attacker, defender, attacker.str/2);
return ["The snake's tail whips around and grabs you! A tight embrace of smooth, cold scales grips your entire upper body, a lazy <i>clench</i> of muscle suppressing your meek struggles."];
} else {
@@ -471,7 +494,7 @@ function Anaconda() {
}
],
priority: 1,
weight: function(attacker, defender) { return defender.healthPercentage(); }
weight: function(attacker, defender) { return 1 - defender.healthPercentage() + attacker.flags.tail.submits; }
});

// swallow player
@@ -492,7 +515,7 @@ function Anaconda() {
}
],
priority: 1,
weight: function(attacker, defender) { return defender.healthPercentage(); }
weight: function(attacker, defender) { return 1; }
});

// squeeze
@@ -512,7 +535,8 @@ function Anaconda() {
}
],
priority: 1,
weight: function(attacker, defender) { return defender.healthPercentage(); }
weight: function(attacker, defender) { return defender.healthPercentage(); },
gameover: function() { return "Crushed and digested by " + attacker.description("a"); }
});

// pull into stomach
@@ -583,7 +607,7 @@ function Anaconda() {
],
priority: 1,
weight: function(attacker, defender) { return defender.healthPercentage(); },
gameover: function() { return "Digested alive by " + attacker.description("an"); }
gameover: function() { return "Digested alive by " + attacker.description("a"); }
});


@@ -620,7 +644,11 @@ function Anaconda() {
defender.flags.state = "combat";
return ["You pry your way of the snake's coils!"];
} else {
return ["Your struggles accomplish nothing."];
return pickRandom([
["You struggle without effect."],
["Your struggles do nothing."],
["The snake's crushing coils hold you fast."]
]);
}
},
requirements: [
@@ -639,6 +667,7 @@ function Anaconda() {
name: "Submit",
desc: "Do nothing",
attack: function(defender) {
defender.flags.tail.submits++;
return ["You lie limp in the coils."];
},
requirements: [


Chargement…
Annuler
Enregistrer