From 1bfda7e21ca6ab7cd1a6400e0de4bbc0c06e203a Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Thu, 27 Dec 2018 22:02:38 -0600 Subject: [PATCH] Added wings --- features.js | 28 ++++++++++++++++++++++++++++ game.js | 28 ++++++++++++++++++++++++++++ recursive-desc.js | 19 +++++++++++++++++-- stroll.html | 1 + 4 files changed, 74 insertions(+), 2 deletions(-) diff --git a/features.js b/features.js index ce30493..195c644 100644 --- a/features.js +++ b/features.js @@ -948,5 +948,33 @@ options = [ [ ] + }, + { + "name": "Wings", + "id": "hasWings", + "optional": true, + "entries": + [ + { + "name": "Wing width", + "id": "baseWingWidth", + "type": "float", + "default": "1", + "unit": "length" + }, + { + "name": "Wing length", + "id": "baseWingLength", + "type": "float", + "default": "1", + "unit": "length" + }, + { + "name": "Wing description", + "id": "wingDesc", + "type": "text", + "default": "feathery" + } + ] } ]; diff --git a/game.js b/game.js index 1b99bd5..ed1a629 100644 --- a/game.js +++ b/game.js @@ -71,6 +71,10 @@ let macro = get assArea() { return this.scaling(this.baseAssArea * this.assScale, this.scale, 2); }, get handArea() { return this.scaling(this.baseHandArea, this.scale, 2); }, + get wingLength() { return this.scaling(this.baseWingLength, this.scale, 1); }, + get wingWidth() { return this.scaling(this.baseWingWidth, this.scale, 1); }, + get wingArea() { return this.wingLength * this.wingWidth; }, + "footOnlyDesc": function(plural=false,capital=false) { let result = ""; @@ -3646,6 +3650,24 @@ function magic_fast_digestion() update([line, newline]); } +function wings_flap() +{ + let area = macro.wingArea * 2; + let prey = getPrey(biome, area, false); + let line = describe("wings-flap", prey, macro, verbose); + let linesummary = summarize(prey.sum(), true); + + let people = get_living_prey(prey.sum()); + + let preyMass = prey.sum_property("mass"); + + let sound = getSound("breath", preyMass); + + add_victim_people("wings-flap", prey); + + update([sound,line,linesummary,newline]); +} + function cooldown_start(name) { let button = document.querySelector("#" + "button-action-" + name); @@ -4451,6 +4473,12 @@ function startGame(e) { } } + if (macro.hasWings) { + enable_panel("misc"); + enable_button("wings_flap"); + enable_victim("wings-flap"); + } + document.getElementById("button-arousal").innerHTML = (macro.arousalEnabled ? "Arousal On" : "Arousal Off"); if (!macro.arousalEnabled) { document.getElementById("arousal").style.display = "none"; diff --git a/recursive-desc.js b/recursive-desc.js index a6461bc..3c88ac2 100644 --- a/recursive-desc.js +++ b/recursive-desc.js @@ -31,9 +31,9 @@ var action_keys = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick" "sheath-toy","slit-toy","breast-toy","melt","solidify","flood","stomp-goo","goo-digest","ass-goo","goo-stomach-pull","goo-stomach-push", "goo-bowels-pull","goo-bowels-push","goo-womb-pull","goo-womb-push","goo-balls-pull","goo-balls-push","goo-breasts-pull","goo-breasts-push", "goo-tail-pull","goo-tail-push","goo-paws-pull","goo-paws-push","paw-vore","paw-vore-toes","paws","crop-swallow","crop-transfer", -"breath-fire","breath-ice","breath-electric","breath-smoke","breath-radiation","breath-foul","drool","magic-shrink","magic-hypnotize"]; +"breath-fire","breath-ice","breath-electric","breath-smoke","breath-radiation","breath-foul","drool","magic-shrink","magic-hypnotize","wings-flap"]; -var victim_keys = ["victim-cum-flood", "victim-femcum-flood", "victim-stomped", "victim-flex-toes", "victim-eaten", "victim-ass-crush", "victim-ass-ground", "victim-humped", "victim-vomit", "victim-chew", "victim-drool", "victim-anal-vore", "victim-tail-slap", "victim-tail-vore", "victim-cock-slap", "victim-cock-vore", "victim-ball-smother", "victim-sheath-crush", "victim-sheath-absorb", "victim-cum-flood", "victim-male-spurt-musk", "victim-male-orgasm-musk", "victim-unbirth", "victim-femcum-flood", "victim-female-spurt-musk", "victim-female-orgasm-musk", "victim-breast-crush", "victim-cleavage-crush", "victim-cleavage-absorb", "victim-cleavage-drop", "victim-milk-flood", "victim-breast-vore", "victim-pouch-absorb", "victim-soul-digest", "victim-soul-paw", "victim-paw-stench", "victim-ass-stench", "victim-gas-belch", "victim-gas-fart", "victim-piss", "victim-bladder-vore", "victim-piss-stench", "victim-scat", "victim-scat-stench", "victim-goo", "victim-paw-vore", "victim-breath-fire", "victim-breath-ice", "victim-breath-electric", "victim-breath-smoke", "victim-breath-radiation", "victim-breath-foul"] +var victim_keys = ["victim-cum-flood", "victim-femcum-flood", "victim-stomped", "victim-flex-toes", "victim-eaten", "victim-ass-crush", "victim-ass-ground", "victim-humped", "victim-vomit", "victim-chew", "victim-drool", "victim-anal-vore", "victim-tail-slap", "victim-tail-vore", "victim-cock-slap", "victim-cock-vore", "victim-ball-smother", "victim-sheath-crush", "victim-sheath-absorb", "victim-cum-flood", "victim-male-spurt-musk", "victim-male-orgasm-musk", "victim-unbirth", "victim-femcum-flood", "victim-female-spurt-musk", "victim-female-orgasm-musk", "victim-breast-crush", "victim-cleavage-crush", "victim-cleavage-absorb", "victim-cleavage-drop", "victim-milk-flood", "victim-breast-vore", "victim-pouch-absorb", "victim-soul-digest", "victim-soul-paw", "victim-paw-stench", "victim-ass-stench", "victim-gas-belch", "victim-gas-fart", "victim-piss", "victim-bladder-vore", "victim-piss-stench", "victim-scat", "victim-scat-stench", "victim-goo", "victim-paw-vore", "victim-breath-fire", "victim-breath-ice", "victim-breath-electric", "victim-breath-smoke", "victim-breath-radiation", "victim-breath-foul", "victim-wings-flap"] for (let i=0; iRub Pouch +