Fen Dweller 6 лет назад
Родитель
Сommit
fb0c5e3e82
4 измененных файлов: 142 добавлений и 4 удалений
  1. +19
    -0
      features.js
  2. +77
    -0
      game.js
  3. +45
    -4
      recursive-desc.js
  4. +1
    -0
      stroll.html

+ 19
- 0
features.js Просмотреть файл

@@ -974,6 +974,25 @@ options = [
"id": "wingDesc",
"type": "text",
"default": "feathery"
},
{
"name": "Wing Vore",
"id": "wingVoreEnabled",
"type": "subcategory",
"entries":
[
{
"name": "Digestion time",
"id": "wingDigestTime",
"type": "float",
"default": "15"
},
{
"name": "Wing vore goes to stomach",
"id": "wingVoreToStomach",
"type": "checkbox"
}
]
}
]
}


+ 77
- 0
game.js Просмотреть файл

@@ -909,6 +909,49 @@ let macro =
"stages": 3
},

"wings": {
"name" : "wings",
"setup": function(owner) {
this.owner = owner;
for (let i = 0; i < this.stages; i++)
this.contents.push(new Container());
owner.digest(owner, this, owner.wingDigestTime);
},
"feed": function(prey) {
this.feedFunc(prey,this,this.owner);
},
"feedFunc": function(prey,self,owner) {
this.contents[0] = this.contents[0].merge(prey);
},
"describeMove" : function(container) {
return describe("wings-to-stomach",container,this.owner,verbose);
},
"describeDigestion" : function(container) {
return describe("wings",container,this.owner,verbose);
},
"fill": function(owner,container) {
// no-op
},
get description() {
let prey = new Container();
this.contents.forEach(function(x) {
prey = prey.merge(x);
});

if (prey.count == 0) {
return "Your don't have anyone trapped in your wings.";
} else {
if (macro.brutality > 0) {
return "Your folded wings bulge as they squeeze in on " + prey.describe(false) + ", slowly breaking them down.";
} else {
return "Your wings bulge with " + prey.describe(false) + ".";
}
}
},
"contents" : [],
"stages": 3
},

// holding spots

"pouch": {
@@ -1010,6 +1053,7 @@ let macro =
this.goo.setup(this);
this.pawsVore.setup(this);
this.crop.setup(this);
this.wings.setup(this);
this.cumStorage.owner = this;
this.femcumStorage.owner = this;
this.milkStorage.owner = this;
@@ -1027,6 +1071,10 @@ let macro =
this.tail.moves = this.stomach;
}

if (this.wingVoreToStomach) {
this.wings.moves = this.stomach;
}

this.crop.moves = this.stomach;

if (this.maleParts)
@@ -1394,6 +1442,10 @@ let macro =
result.push(this.souls.description);
}

if (this.wingVoreEnabled) {
result.push(this.wings.description);
}

if (this.hasPouch) {
result.push(this.pouch.description);
}
@@ -3668,6 +3720,26 @@ function wings_flap()
update([sound,line,linesummary,newline]);
}

function wings_vore()
{
let area = macro.wingArea * 2;
let prey = getPrey(biome, area, false);
let line = describe("wings-vore", 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("insert", preyMass);

macro.wings.feed(prey);

add_victim_people("wings-vore", prey);

update([sound,line,linesummary,newline]);
}

function cooldown_start(name) {
let button = document.querySelector("#" + "button-action-" + name);

@@ -4477,6 +4549,11 @@ function startGame(e) {
enable_panel("misc");
enable_button("wings_flap");
enable_victim("wings-flap");

if (macro.wingVoreEnabled) {
enable_button("wings_vore");
enable_victim("wings-vore");
}
}

document.getElementById("button-arousal").innerHTML = (macro.arousalEnabled ? "Arousal On" : "Arousal Off");


+ 45
- 4
recursive-desc.js Просмотреть файл

@@ -27,13 +27,13 @@ var action_keys = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick"
"female-orgasm","grind","pouch-stuff","pouch-rub","pouch-eat","pouch-absorb","soul-vore","soul-absorb-paw",
"paw-stench","ass-stench","piss-stench","scat-stench","male-orgasm-musk","female-orgasm-musk","male-spurt-musk","female-spurt-musk",
"belch","fart","stomach","tail","tail-to-stomach","womb","balls","bowels","bowels-to-stomach","breasts","bladder",
"soul-digest","wear-shoe","remove-shoe","wear-sock","remove-sock","stuff-shoe","dump-shoe","stuff-sock","dump-sock","piss","bladder-vore","scat",
"soul-digest","wings","wings-to-stomach","wear-shoe","remove-shoe","wear-sock","remove-sock","stuff-shoe","dump-shoe","stuff-sock","dump-sock","piss","bladder-vore","scat",
"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","wings-flap"];
"breath-fire","breath-ice","breath-electric","breath-smoke","breath-radiation","breath-foul","drool","magic-shrink","magic-hypnotize","wings-flap","wings-vore"];

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"]
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", "victim-wings-vore"]

for (let i=0; i<action_keys.length; i++) {
rules[action_keys[i]] = [];
@@ -752,6 +752,22 @@ function defaultSoulDigest(container, macro, verbose) {
}
}

function defaultWings(container, macro, verbose) {
if (isSadistic(macro))
return "Your wings slacken as the " + container.describe(false) + " within melts into a slurry of meat and wreckage.";
if (isFatal(macro))
return "Your wings squeeze tightly as they absorb " + container.describe(false) + " into your body";
else
return "Your wings squeeze as they absorb " + container.describe(false);
}

function defaultWingsToStomach(container, macro, verbose) {
if (isFatal(macro))
return "Your wings clench, forcing " + container.describe(false) + " deeper and into your stomach.";
else
return "Your wings squeeze " + container.describe(false) + " into your belly.";
}

function defaultWearShoe(container, macro, verbose) {
if (container.count == 0) {
return "You slip on your " + macro.shoeDesc(true,false) + ".";
@@ -1124,7 +1140,20 @@ function defaultMagicShrink(container, macro, verbose) {
}

function defaultWingsFlap(container, macro, verbose) {
return "You flap your wings, blowing away " + container.describe(verbose) + ".";
if (container.counter == 0) {
return "You flap your wings.";
} else {
return "You flap your wings, blowing away " + container.describe(verbose) + ".";
}
}

function defaultWingsVore(container, macro, verbose) {
if (container.counter == 0) {
return "You flap your wings aggressively.";
} else {
return "You spread your wings wide, wrapping them around " + container.describe(verbose) + " and ensnaring them";
}

}

function defaultVictimCumFlood(container, macro, verbose) {
@@ -1760,6 +1789,18 @@ function defaultVictimWingsFlap(container, macro, verbose) {
return "blown away by your wings";
}
}

function defaultVictimWingsVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "shrink-wrapped in your wings and dissolved";
} else if (isGory(macro)) {
return "wrapped up in your airless wings and digested";
} else if (isFatal(macro)) {
return "snared in your wings and digested";
} else if (isNonFatal(macro)) {
return "trapped in your wings";
}
}
// EATING

rules["eat"].push({


+ 1
- 0
stroll.html Просмотреть файл

@@ -330,6 +330,7 @@
<button class="action-button" id="button-action-pouch_eat">Eat From Pouch</button>
<button class="action-button" id="button-action-pouch_absorb">Absorb Pouch</button>
<button class="action-button" id="button-action-wings_flap">Flap Wings</button>
<button class="action-button" id="button-action-wings_vore">Wing Vore</button>
</div>

<div class="action-tab" id="actions-breath">


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