diff --git a/mountain.js b/mountain.js index 972e1fc..055d133 100644 --- a/mountain.js +++ b/mountain.js @@ -26,12 +26,13 @@ function MountainWyrm() { this.attacks = []; this.flags.state = "combat"; + this.flags.roars = 0; this.attacks.push(wyrmBite(this)); - /*this.attacks.push(wyrmTail(this)); + this.attacks.push(wyrmTail(this)); this.attacks.push(wyrmRoar(this)); - this.attacks.push(wyrmPounce(this)); + /*this.attacks.push(wyrmPounce(this)); this.attacks.push(wyrmGrind(this)); this.attacks.push(wyrmCockVore(this)); @@ -48,9 +49,9 @@ function MountainWyrm() { }; this.finishCombat = function() { - if (this.flags.stage == "combat") + 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.stage == "balls") + else if (this.flags.state == "balls") return ["You fall limp in " + this.description("the") + "'s balls."]; }; } @@ -73,3 +74,46 @@ function wyrmBite(attacker) { weight: function(attacker, defender) { return 1 + defender.health/defender.maxHealth; } }; } + +function wyrmTail(attacker) { + return { + attackPlayer: function(defender){ + let damage = attack(attacker, defender, attacker.dex); + return [attacker.description("The") + " lashes at you with his tail, dealing " + damage + " damage."]; + }, + requirements: [ + function(attacker, defender) { + return attacker.flags.state == "combat"; + }, + function(attacker, defender) { + return !attacker.flags.grappled && !defender.flags.grappled; + } + ], + priority: 1, + weight: function(attacker, defender) { return 1 + defender.health/defender.maxHealth; } + }; +} + +function wyrmRoar(attacker) { + return { + attackPlayer: function(defender){ + attacker.flags.roars += 1; + attacker.statBuffs.push(new StatBuff("str", 1.25)); + attacker.statBuffs.push(new StatBuff("con", 1.25)); + return [attacker.description("The") + " lets out an earsplitting roar. It looks even angrier now."]; + }, + requirements: [ + function(attacker, defender) { + return attacker.flags.state == "combat"; + }, + function(attacker, defender) { + return !attacker.flags.grappled && !defender.flags.grappled; + }, + function(attacker, defender) { + return attacker.flags.roars < 2; + } + ], + priority: 1, + weight: function(attacker, defender) { return 0.25 + attacker.flags.roars / 2; } + }; +}