ソースを参照

Redid the entire victim system to use generated descriptions

tags/v1.0.0
Fen Dweller 6年前
コミット
f61c2b226e
6個のファイルの変更661行の追加16行の削除
  1. +2
    -1
      darkmode.js
  2. +13
    -0
      features.js
  3. +11
    -9
      game.js
  4. +2
    -1
      presets.js
  5. +630
    -3
      recursive-desc.js
  6. +3
    -2
      stroll.html

+ 2
- 1
darkmode.js ファイルの表示

@@ -1,6 +1,7 @@
// do da dark mode

let dark = false;
let dark = true;
setDarkMode(dark);

function toggleDarkMode(e) {
dark = !dark;


+ 13
- 0
features.js ファイルの表示

@@ -0,0 +1,13 @@
features = {
"default": {
"dependencies": [

],
"growth_parts": [
"paws"
],
"victims": [
["stomped"],
]
}
}

+ 11
- 9
game.js ファイルの表示

@@ -286,6 +286,9 @@ let macro =
get tailDesc() {
return this.tailType + " " + (this.tailCount > 1 ? "tails" : "tail");
},
get tailNoDesc() {
return (this.tailCount > 1 ? "tails" : "tail");
},
"dickType": "canine",
"baseDickLength": 0.3,
"baseDickDiameter": 0.08,
@@ -1088,8 +1091,9 @@ let macro =
this.fillFemcum(this);
if (this.lactationEnabled && this.hasBreasts)
this.fillBreasts(this);
if (this.arousalEnabled)
this.quenchExcess(this);

this.quenchExcess(this);

if (this.gasEnabled)
this.fillGas(this);
if (this.pissEnabled)
@@ -1381,7 +1385,6 @@ let macro =
return;

if (this.orgasm) {
this.quench(10);
setTimeout(function() { self.nullOrgasm(self); }, 2000);
}
},
@@ -3325,7 +3328,7 @@ function bladder_vore() {

let sound = getSound("insert",preyMass);

add_victim_people("bladder_vore",prey);
add_victim_people("bladder-vore",prey);

macro.bladder.feed(prey);

@@ -4127,10 +4130,9 @@ function add_victim_people(category, prey) {
update();
}

function enable_victim(category, name) {
function enable_victim(category) {
victims[category] = {};
victims[category]["people"] = 0;
victims[category]["name"] = name;
}

function enable_button(name) {
@@ -4316,7 +4318,7 @@ function startGame(e) {
}

if (macro.arousalEnabled) {
enable_victim("cum-flood","Flooded by cum");
enable_victim("cum-flood",describe("victim-cum-flood", null, macro, null));

if (macro.maleMuskEnabled) {
enable_victim("male-spurt-musk","Inundated in masculine precum musk");
@@ -4458,7 +4460,7 @@ function startGame(e) {
if (macro.bladderVore) {
enable_button("bladder_vore");

enable_victim("bladder_vore","Dissolved into piss");
enable_victim("bladder-vore","Dissolved into piss");

if (macro.bladderDigestTime == 0) {
enable_button("digest_bladder");
@@ -4605,7 +4607,7 @@ function showStats() {
let total = 0;
for (var key in victims) {
if (victims.hasOwnProperty(key)) {
lines.push(victims[key]["name"] + ": " + victims[key]["people"]);
lines.push(victims[key]["people"] + " " + describe("victim-" + key, null, macro, false));
total += victims[key]["people"];
}
}


+ 2
- 1
presets.js ファイルの表示

@@ -1017,5 +1017,6 @@ let presets = [{
"pawDigestTime": 15
},
{"name":"Famis","species":"crux","scale":155,"baseHeight":1.52,"baseMass":135,"basePawArea":0.1,"baseHandArea":0.1,"baseAssArea":0.25,"difficulty":"1","brutality":"1","victimsHuman":true,"victimsMilitary":true,"victimsMacros":true,"victimsMicros":true,"sameSizeVore":true,"sameSizeStomp":true,"oralDigestTime":30,"vomitEnabled":false,"footType":"paw","jawType":"jaw","footWear":true,"footSockEnabled":false,"footSock":"sock","footShoeEnabled":false,"footShoe":"shoe","analVore":true,"baseAnalVoreDiameter":0.1,"analVoreToStomach":true,"analDigestTime":30,"arousalEnabled":true,"arousalFactor":1,"hasTail":true,"tailCount":1,"tailType":"slinky","baseTailLength":1,"baseTailDiameter":0.3,"tailMaw":true,"tailStretchiness":50,"tailDigestTime":15,"tailVoreToStomach":true,"hasPouch":false,"maleParts":true,"dickType":"canine","baseDickLength":0.3,"baseDickDiameter":0.08,"dickStretchiness":15,"baseBallDiameter":0.05,"baseCumRatio":1,"cumScale":1,"cumStorageScale":1,"baseCumDigestFactor":1,"cockDigestTime":45,"hasSheath":true,"cumScaleWithSize":true,"maleMuskEnabled":true,"baseMaleMuskArea":5,"hasBreasts":false,"baseBreastDiameter":0.1,"lactationEnabled":false,"lactationFactor":0.25,"lactationScale":1,"milkStorageScale":1,"breastVore":false,"breastStretchiness":1,"baseMilkDigestFactor":1,"breastDigestTime":15,"milkScaleWithSize":false,"femaleParts":false,"baseVaginaLength":0.1,"baseVaginaWidth":0.05,"vaginaStretchiness":1,"baseFemcumRatio":1,"femcumScale":1,"femcumStorageScale":1,"baseFemcumDigestFactor":1,"unbirthDigestTime":15,"femcumScaleWithSize":false,"femaleMuskEnabled":false,"baseFemaleMuskArea":0.5,"stenchEnabled":true,"basePawStenchArea":4,"baseAssStenchArea":0,"basePissStenchArea":0,"baseScatStenchArea":0,"gasEnabled":false,"belchEnabled":false,"fartEnabled":false,"gasScale":1,"gasStorageScale":1,"baseGasDigestFactor":1,"gasScaleWithSize":false,"soulVoreEnabled":true,"soulDigestTime":60,"soulVoreType":"body","pissEnabled":false,"pissScale":1,"pissStorageScale":1,"bladderVore":false,"baseUrethraDiameter":0.03,"urethraStretchiness":5,"basePissDigestFactor":1,"bladderDigestTime":15,"pissScaleWithSize":false,"scatEnabled":false,"baseScatDigestFactor":1,"scatScale":0,"scatStorageScale":1,"scatScaleWithSize":false,"gooEnabled":true,"gooDigestion":true,"gooDigestTime":20,"pawVoreEnabled":true,"pawDigestTime":45,"cropEnabled":false,"cropTransferTime":15,"breathEnabled":false,"breathFire":false,"breathIce":false,"breathElectric":false,"breathSmoke":false,"breathRadiation":false,"breathFoul":false,"droolEnabled":true,"droolBaseVolume":0.0001},
{"name":"Kassy","species":"Ram","scale":1,"baseHeight":1.7,"baseMass":90,"basePawArea":0.1,"baseHandArea":0.1,"baseAssArea":0.25,"difficulty":"0","brutality":"3","victimsHuman":false,"victimsMilitary":true,"victimsMacros":true,"victimsMicros":true,"sameSizeVore":true,"sameSizeStomp":true,"oralDigestTime":25,"vomitEnabled":false,"footType":"foot","jawType":"jaw","footWear":true,"footSockEnabled":false,"footSock":"sock","footShoeEnabled":true,"footShoe":"sandal","analVore":true,"baseAnalVoreDiameter":0.1,"analVoreToStomach":false,"analDigestTime":20,"arousalEnabled":true,"arousalFactor":1,"hasTail":true,"tailCount":1,"tailType":"Wooly","baseTailLength":0.1,"baseTailDiameter":0.3,"tailMaw":false,"tailStretchiness":1,"tailDigestTime":15,"tailVoreToStomach":true,"hasPouch":false,"maleParts":true,"dickType":"Human","baseDickLength":0.3,"baseDickDiameter":0.08,"dickStretchiness":1,"baseBallDiameter":0.05,"baseCumRatio":1,"cumScale":1,"cumStorageScale":1,"baseCumDigestFactor":1,"cockDigestTime":15,"hasSheath":false,"cumScaleWithSize":true,"maleMuskEnabled":true,"baseMaleMuskArea":0.1,"hasBreasts":false,"baseBreastDiameter":0.1,"lactationEnabled":false,"lactationFactor":0.25,"lactationScale":1,"milkStorageScale":1,"breastVore":false,"breastStretchiness":1,"baseMilkDigestFactor":1,"breastDigestTime":15,"milkScaleWithSize":false,"femaleParts":false,"baseVaginaLength":0.1,"baseVaginaWidth":0.05,"vaginaStretchiness":1,"baseFemcumRatio":1,"femcumScale":1,"femcumStorageScale":1,"baseFemcumDigestFactor":1,"unbirthDigestTime":15,"femcumScaleWithSize":false,"femaleMuskEnabled":false,"baseFemaleMuskArea":0.5,"stenchEnabled":false,"basePawStenchArea":1,"baseAssStenchArea":2,"basePissStenchArea":0.75,"baseScatStenchArea":1.5,"gasEnabled":true,"belchEnabled":true,"fartEnabled":false,"gasScale":1,"gasStorageScale":1,"baseGasDigestFactor":1,"gasScaleWithSize":true,"soulVoreEnabled":false,"soulDigestTime":15,"soulVoreType":"release","pissEnabled":false,"pissScale":1,"pissStorageScale":1,"bladderVore":false,"baseUrethraDiameter":0.03,"urethraStretchiness":5,"basePissDigestFactor":1,"bladderDigestTime":15,"pissScaleWithSize":false,"scatEnabled":false,"baseScatDigestFactor":1,"scatScale":0,"scatStorageScale":1,"scatScaleWithSize":false,"gooEnabled":false,"gooDigestion":true,"gooDigestTime":15,"pawVoreEnabled":false,"pawDigestTime":15,"cropEnabled":false,"cropTransferTime":15,"breathEnabled":false,"breathFire":false,"breathIce":false,"breathElectric":false,"breathSmoke":false,"breathRadiation":false,"breathFoul":false,"droolEnabled":true,"droolBaseVolume":0.00001}
{"name":"Kassy","species":"Ram","scale":1,"baseHeight":1.7,"baseMass":90,"basePawArea":0.1,"baseHandArea":0.1,"baseAssArea":0.25,"difficulty":"0","brutality":"3","victimsHuman":false,"victimsMilitary":true,"victimsMacros":true,"victimsMicros":true,"sameSizeVore":true,"sameSizeStomp":true,"oralDigestTime":25,"vomitEnabled":false,"footType":"foot","jawType":"jaw","footWear":true,"footSockEnabled":false,"footSock":"sock","footShoeEnabled":true,"footShoe":"sandal","analVore":true,"baseAnalVoreDiameter":0.1,"analVoreToStomach":false,"analDigestTime":20,"arousalEnabled":true,"arousalFactor":1,"hasTail":true,"tailCount":1,"tailType":"Wooly","baseTailLength":0.1,"baseTailDiameter":0.3,"tailMaw":false,"tailStretchiness":1,"tailDigestTime":15,"tailVoreToStomach":true,"hasPouch":false,"maleParts":true,"dickType":"Human","baseDickLength":0.3,"baseDickDiameter":0.08,"dickStretchiness":1,"baseBallDiameter":0.05,"baseCumRatio":1,"cumScale":1,"cumStorageScale":1,"baseCumDigestFactor":1,"cockDigestTime":15,"hasSheath":false,"cumScaleWithSize":true,"maleMuskEnabled":true,"baseMaleMuskArea":0.1,"hasBreasts":false,"baseBreastDiameter":0.1,"lactationEnabled":false,"lactationFactor":0.25,"lactationScale":1,"milkStorageScale":1,"breastVore":false,"breastStretchiness":1,"baseMilkDigestFactor":1,"breastDigestTime":15,"milkScaleWithSize":false,"femaleParts":false,"baseVaginaLength":0.1,"baseVaginaWidth":0.05,"vaginaStretchiness":1,"baseFemcumRatio":1,"femcumScale":1,"femcumStorageScale":1,"baseFemcumDigestFactor":1,"unbirthDigestTime":15,"femcumScaleWithSize":false,"femaleMuskEnabled":false,"baseFemaleMuskArea":0.5,"stenchEnabled":false,"basePawStenchArea":1,"baseAssStenchArea":2,"basePissStenchArea":0.75,"baseScatStenchArea":1.5,"gasEnabled":true,"belchEnabled":true,"fartEnabled":false,"gasScale":1,"gasStorageScale":1,"baseGasDigestFactor":1,"gasScaleWithSize":true,"soulVoreEnabled":false,"soulDigestTime":15,"soulVoreType":"release","pissEnabled":false,"pissScale":1,"pissStorageScale":1,"bladderVore":false,"baseUrethraDiameter":0.03,"urethraStretchiness":5,"basePissDigestFactor":1,"bladderDigestTime":15,"pissScaleWithSize":false,"scatEnabled":false,"baseScatDigestFactor":1,"scatScale":0,"scatStorageScale":1,"scatScaleWithSize":false,"gooEnabled":false,"gooDigestion":true,"gooDigestTime":15,"pawVoreEnabled":false,"pawDigestTime":15,"cropEnabled":false,"cropTransferTime":15,"breathEnabled":false,"breathFire":false,"breathIce":false,"breathElectric":false,"breathSmoke":false,"breathRadiation":false,"breathFoul":false,"droolEnabled":true,"droolBaseVolume":0.00001},
{"name":"Elijah","species":"Blue Jay","scale":1,"baseHeight":1.77,"baseMass":63,"basePawArea":0.031,"baseHandArea":0.023,"baseAssArea":0.15,"difficulty":"0","brutality":"3","victimsHuman":true,"victimsMilitary":false,"victimsMacros":false,"victimsMicros":false,"sameSizeVore":true,"sameSizeStomp":true,"oralDigestTime":15,"vomitEnabled":false,"footType":"avian","jawType":"beak","footWear":true,"footSockEnabled":false,"footSock":"sock","footShoeEnabled":true,"footShoe":"sandal","analVore":true,"baseAnalVoreDiameter":0.08,"analVoreToStomach":false,"analDigestTime":15,"arousalEnabled":true,"arousalFactor":1,"edgeFactor":3,"hasTail":true,"tailCount":1,"tailType":"Feathered","baseTailLength":0.8,"baseTailDiameter":0.2,"tailMaw":false,"tailStretchiness":1,"tailDigestTime":15,"tailVoreToStomach":true,"hasPouch":false,"maleParts":true,"dickType":"Avian","baseDickLength":0.18,"baseDickDiameter":0.08,"dickStretchiness":1,"baseBallDiameter":0.05,"baseCumRatio":1,"cumScale":1,"cumStorageScale":1,"baseCumDigestFactor":1,"cockDigestTime":20,"hasSheath":true,"cumScaleWithSize":true,"maleMuskEnabled":false,"baseMaleMuskArea":0.5,"hasBreasts":false,"baseBreastDiameter":0.1,"lactationEnabled":false,"lactationFactor":0.25,"lactationScale":1,"milkStorageScale":1,"breastVore":false,"breastStretchiness":1,"baseMilkDigestFactor":1,"breastDigestTime":15,"milkScaleWithSize":false,"femaleParts":false,"baseVaginaLength":0.1,"baseVaginaWidth":0.05,"vaginaStretchiness":1,"baseFemcumRatio":1,"femcumScale":1,"femcumStorageScale":1,"baseFemcumDigestFactor":1,"unbirthDigestTime":15,"femcumScaleWithSize":false,"femaleMuskEnabled":false,"baseFemaleMuskArea":0.5,"stenchEnabled":false,"basePawStenchArea":1,"baseAssStenchArea":2,"basePissStenchArea":0.75,"baseScatStenchArea":1.5,"gasEnabled":false,"belchEnabled":true,"fartEnabled":false,"gasScale":1,"gasStorageScale":1,"baseGasDigestFactor":1,"gasScaleWithSize":false,"soulVoreEnabled":false,"soulDigestTime":15,"soulVoreType":"release","pissEnabled":false,"pissScale":1,"pissStorageScale":1,"bladderVore":false,"baseUrethraDiameter":0.03,"urethraStretchiness":5,"basePissDigestFactor":1,"bladderDigestTime":15,"pissScaleWithSize":false,"scatEnabled":false,"baseScatDigestFactor":1,"scatScale":0,"scatStorageScale":1,"scatScaleWithSize":false,"gooEnabled":false,"gooDigestion":true,"gooDigestTime":15,"pawVoreEnabled":false,"pawDigestTime":15,"cropEnabled":true,"cropTransferTime":30,"breathEnabled":false,"breathFire":false,"breathIce":false,"breathElectric":false,"breathSmoke":false,"breathRadiation":false,"breathFoul":false,"droolEnabled":false,"droolBaseVolume":0.0001,"magicEnabled":false}
];

+ 630
- 3
recursive-desc.js ファイルの表示

@@ -20,7 +20,7 @@ function getDefault(name) {
return window[funcName];
}

var actions = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick","anal-vore","ass-crush","ass-grind","tail-slap","tail-vore","tails-vore",
var action_keys = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick","anal-vore","ass-crush","ass-grind","tail-slap","tail-vore","tails-vore",
"cleavage-stuff","cleavage-crush","cleavage-drop","cleavage-absorb","breast-crush",
"breast-vore","breast-milk","unbirth","sheath-stuff","sheath-clench","sheath-crush",
"sheath-absorb","cock-vore","cockslap","ball-smother","male-spurt","male-orgasm","female-spurt",
@@ -33,8 +33,14 @@ var actions = ["eat","chew","vomit","stomp","stomp-wedge","flex-toes","kick","an
"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"];

for (let i=0; i<actions.length; i++) {
rules[actions[i]] = [];
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"]

for (let i=0; i<action_keys.length; i++) {
rules[action_keys[i]] = [];
}

for (let i=0; i<victim_keys.length; i++) {
rules[victim_keys[i]] = [];
}

function isNonFatal(macro) {
@@ -1117,6 +1123,627 @@ function defaultMagicShrink(container, macro, verbose) {
return "You envelop " + container.describe(verbose) + " in swirling tendrils of magic, shrinking " + (container.count == 1 ? "it" : "them") + " down!";
}

function defaultVictimCumFlood(container, macro, verbose) {
if (isSadistic(macro)) {
return "drowned in viscous cum";
} else if (isGory(macro)) {
return "drowned in cum";
} else if (isFatal(macro)) {
return "smothered in cum";
} else if (isNonFatal(macro)) {
return "washed away by cum";
}
}

function defaultVictimFemcumFlood(container, macro, verbose) {
if (isSadistic(macro)) {
return "drowned in slick femcum";
} else if (isGory(macro)) {
return "drowned in femcum";
} else if (isFatal(macro)) {
return "smothered in femcum";
} else if (isNonFatal(macro)) {
return "washed away by femcum";
}
}

function defaultVictimStomped(container, macro, verbose) {
if (isSadistic(macro)) {
return "crushed into pulp beneath your " + macro.footDesc(true);
} else if (isGory(macro)) {
return "crushed beneath your " + macro.footDesc(true);
} else if (isFatal(macro)) {
return "stomped on";
} else if (isNonFatal(macro)) {
return "stepped on";
}
}

function defaultVictimFlexToes(container, macro, verbose) {
if (isSadistic(macro)) {
return "ground to a thick paste between your " + macro.toeDesc(true);
} else if (isGory(macro)) {
return "crushed to death between your " + macro.toeDesc(true);
} else if (isFatal(macro)) {
return "crushed between your " + macro.toeDesc(true);
} else if (isNonFatal(macro)) {
return "squeezed in your " + macro.toeDesc(true);
}
}

function defaultVictimEaten(container, macro, verbose) {
if (isSadistic(macro)) {
return "devoured and digested down to molten chyme";
} else if (isGory(macro)) {
return "consumed and digested alive";
} else if (isFatal(macro)) {
return "devoured alive";
} else if (isNonFatal(macro)) {
return "swallowed";
}
}

function defaultVictimAssCrush(container, macro, verbose) {
if (isSadistic(macro)) {
return "snuffed out under your ass";
} else if (isGory(macro)) {
return "crushed by your ass";
} else if (isFatal(macro)) {
return "flattened under your ass";
} else if (isNonFatal(macro)) {
return "sat on";
}
}

function defaultVictimAssGround(container, macro, verbose) {
if (isSadistic(macro)) {
return "ground out of existence beneath your heavy ass";
} else if (isGory(macro)) {
return "crushed by your grinding ass";
} else if (isFatal(macro)) {
return "flattened by your grinding ass";
} else if (isNonFatal(macro)) {
return "ground under your ass";
}
}

function defaultVictimHumped(container, macro, verbose) {
if (isSadistic(macro)) {
return "smashed to gory paste by your thrusting hips";
} else if (isGory(macro)) {
return "crushed to death by your hips";
} else if (isFatal(macro)) {
return "ground on by your sultry hips";
} else if (isNonFatal(macro)) {
return "humped";
}
}

function defaultVictimVomit(container, macro, verbose) {
if (isSadistic(macro)) {
return "spewed from your caustic depths and left to die";
} else if (isGory(macro)) {
return "vomited out in a puddle of acid and chyme";
} else if (isFatal(macro)) {
return "puked up from your churning guts";
} else if (isNonFatal(macro)) {
return "horked out";
}
}

function defaultVictimChew(container, macro, verbose) {
if (isSadistic(macro)) {
return "chewed to a bloody pulp by your scything " + macro.jawDesc(true);
} else if (isGory(macro)) {
return "crushed to pulp by your " + macro.jawDesc(true);
} else if (isFatal(macro)) {
return "chewed up in your " + macro.jawDesc(true);
} else if (isNonFatal(macro)) {
return "gnawed on by your " + macro.jawDesc(true);
}
}

function defaultVictimDrool(container, macro, verbose) {
if (isSadistic(macro)) {
return "inundated in your drool and drowned";
} else if (isGory(macro)) {
return "swept away by a tide of drool";
} else if (isFatal(macro)) {
return "flooded in your drool";
} else if (isNonFatal(macro)) {
return "soaked by your drool";
}
}

function defaultVictimAnalVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "crammed into your bowels and obliterated";
} else if (isGory(macro)) {
return "shoved into your greedy ass";
} else if (isFatal(macro)) {
return "slipped into your bowels";
} else if (isNonFatal(macro)) {
return "used as toys in your ass";
}
}

function defaultVictimTailSlap(container, macro, verbose) {
if (isSadistic(macro)) {
return "cut down like wheat by your swooping, scything " + macro.tailDesc;
} else if (isGory(macro)) {
return "smashed to bloody pieces by your " + macro.tailDesc;
} else if (isFatal(macro)) {
return "leveled by your " + macro.tailDesc;
} else if (isNonFatal(macro)) {
return "thwapped with your " + macro.tailDesc;
}
}

function defaultVictimTailVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "snapped up and devoured by your ravenous " + macro.tailNoDesc;
} else if (isGory(macro)) {
return "swallowed down by your powerful" + macro.tailNoDesc;
} else if (isFatal(macro)) {
return "devoured by your " + macro.tailNoDesc;
} else if (isNonFatal(macro)) {
return "gulped down by your " + macro.tailNoDesc;
}
}

function defaultVictimCockSlap(container, macro, verbose) {
if (isSadistic(macro)) {
return "obliterated beneath your massive, swinging shaft.";
} else if (isGory(macro)) {
return "crushed by your cock";
} else if (isFatal(macro)) {
return "flattened under your dick";
} else if (isNonFatal(macro)) {
return "smacked with your dick";
}
}

function defaultVictimCockVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "plunged into the depths of your shaft";
} else if (isGory(macro)) {
return "devoured by your ravenous cock";
} else if (isFatal(macro)) {
return "sucked down your shaft";
} else if (isNonFatal(macro)) {
return "slipped into your cock";
}
}

function defaultVictimBallSmother(container, macro, verbose) {
if (isSadistic(macro)) {
return "reduce to broken gore under your massive balls";
} else if (isGory(macro)) {
return "snuffed out by your crushing balls";
} else if (isFatal(macro)) {
return "crushed under your balls";
} else if (isNonFatal(macro)) {
return "trapped under your balls";
}
}

function defaultVictimSheathCrush(container, macro, verbose) {
if (isSadistic(macro)) {
return "crushed and smeared between your shaft and sheath";
} else if (isGory(macro)) {
return "ground into paste within your sheath";
} else if (isFatal(macro)) {
return "crushed between your sheath and shaft";
} else if (isNonFatal(macro)) {
return "squeezed in your sheath";
}
}

function defaultVictimSheathAbsorb(container, macro, verbose) {
if (isSadistic(macro)) {
return "dissolved and absorbed into your tight sheath";
} else if (isGory(macro)) {
return "absorbed by the flesh of your sheath";
} else if (isFatal(macro)) {
return "absorbed into your sheath";
} else if (isNonFatal(macro)) {
return "taken into your sheath";
}
}

function defaultVictimCumFlood(container, macro, verbose) {
if (isSadistic(macro)) {
return "drowned in a caustic flood of cum";
} else if (isGory(macro)) {
return "drowned in your cum";
} else if (isFatal(macro)) {
return "washed away by your cum";
} else if (isNonFatal(macro)) {
return "flooded with your cum";
}
}

function defaultVictimMaleSpurtMusk(container, macro, verbose) {
if (isSadistic(macro)) {
return "dissolved in a tide of slick, musky precum";
} else if (isGory(macro)) {
return "drowned in your slick precum";
} else if (isFatal(macro)) {
return "washed away by precum";
} else if (isNonFatal(macro)) {
return "flooded with your precum";
}
}

function defaultVictimMaleOrgasmMusk(container, macro, verbose) {
if (isSadistic(macro)) {
return "corroded by your caustic, overwhelming masculine musk";
} else if (isGory(macro)) {
return "snuffed out by your masculine musk";
} else if (isFatal(macro)) {
return "overwhelmed by masculine musk";
} else if (isNonFatal(macro)) {
return "dazed by masculine musk";
}
}

function defaultVictimUnbirth(container, macro, verbose) {
if (isSadistic(macro)) {
return "crushed by your overwhelming womb";
} else if (isGory(macro)) {
return "crammed into your womb";
} else if (isFatal(macro)) {
return "stuffed into your nethers";
} else if (isNonFatal(macro)) {
return "slipped into your slit";
}
}

function defaultVictimFemcumFlood(container, macro, verbose) {
if (isSadistic(macro)) {
return "drowned and dissolved in slippery femcum";
} else if (isGory(macro)) {
return "drowned in your femcum";
} else if (isFatal(macro)) {
return "washed away by femcum";
} else if (isNonFatal(macro)) {
return "flooded with femcum";
}
}

function defaultVictimFemaleSpurtMusk(container, macro, verbose) {
if (isSadistic(macro)) {
return "suffocated by a spurt of corrosive feminine precum";
} else if (isGory(macro)) {
return "snuffed out by a splatter of feminine fluid";
} else if (isFatal(macro)) {
return "flooded by your spurting precum";
} else if (isNonFatal(macro)) {
return "soaked with your feminine precum";
}
}

function defaultVictimFemaleOrgasmMusk(container, macro, verbose) {
if (isSadistic(macro)) {
return "corroded by your caustic, overwhelming feminine musk";
} else if (isGory(macro)) {
return "snuffed out by your feminine musk";
} else if (isFatal(macro)) {
return "overwhelmed by feminine musk";
} else if (isNonFatal(macro)) {
return "dazed by feminine musk";
}
}

function defaultVictimBreastCrush(container, macro, verbose) {
if (isSadistic(macro)) {
return "reduced to broken gore beneath your breasts";
} else if (isGory(macro)) {
return "crushed to death by your bosom";
} else if (isFatal(macro)) {
return "flattened under your heavy breasts";
} else if (isNonFatal(macro)) {
return "smooshed by your breasts";
}
}

function defaultVictimCleavageCrush(container, macro, verbose) {
if (isSadistic(macro)) {
return "cracked open like gore-filled nuts between your breasts";
} else if (isGory(macro)) {
return "crushed to paste between your breasts";
} else if (isFatal(macro)) {
return "smashed between your breasts";
} else if (isNonFatal(macro)) {
return "squeezed between your breasts";
}
}

function defaultVictimCleavageAbsorb(container, macro, verbose) {
if (isSadistic(macro)) {
return "agonizingly absorbed into your greedy bosom";
} else if (isGory(macro)) {
return "absorbed into your greedy breasts";
} else if (isFatal(macro)) {
return "absorbed by your breasts";
} else if (isNonFatal(macro)) {
return "pulled into your breasts";
}
}

function defaultVictimCleavageDrop(container, macro, verbose) {
if (isSadistic(macro)) {
return "dropped from your cleavage and dashed to bloody bits";
} else if (isGory(macro)) {
return "dropped from your cleavage to their deaths";
} else if (isFatal(macro)) {
return "dropped from your cleavage and smashed";
} else if (isNonFatal(macro)) {
return "dropped from your cleavage";
}
}

function defaultVictimMilkFlood(container, macro, verbose) {
if (isSadistic(macro)) {
return "drenched in and dissolved by your milk";
} else if (isGory(macro)) {
return "drowned in your milk";
} else if (isFatal(macro)) {
return "washed away by your milk";
} else if (isNonFatal(macro)) {
return "flooded in your milk";
}
}

function defaultVictimBreastVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "fed into your breasts to be churned and obliterated";
} else if (isGory(macro)) {
return "shoved into your greedy bosom and lost for good";
} else if (isFatal(macro)) {
return "stuffed into your breasts to be absorbed";
} else if (isNonFatal(macro)) {
return "slipped into your nipples";
}
}

function defaultVictimPouchAbsorb(container, macro, verbose) {
if (isSadistic(macro)) {
return "crushed, torn, and absorbed by your perilous pouch";
} else if (isGory(macro)) {
return "smothered and soaked into the walls of your pouch";
} else if (isFatal(macro)) {
return "claimed by your pouch";
} else if (isNonFatal(macro)) {
return "absorbed into your pouch";
}
}

function defaultVictimSoulDigest(container, macro, verbose) {
switch(macro.soulVoreType) {
case "release":
return "souls freed from your depths";
case "body":
return "souls imprisoned in your body for good";
case "oblivion":
return "souls annihilated for eternity";
}
}

function defaultVictimSoulPaw(container, macro, verbose) {
switch(macro.soulVoreType) {
case "release":
return "souls briefly trapped in your paws";
case "body":
return "souls claimed forever by your paws";
case "oblivion":
return "souls annihilated in your paws";
}
}

function defaultVictimPawStench(container, macro, verbose) {
if (isSadistic(macro)) {
return "corroded and melted alive by the stench of your " + macro.footDesc(true);
} else if (isGory(macro)) {
return "suffocated by the powerful stench of your " + macro.footDesc(true);
} else if (isFatal(macro)) {
return "snuffed out by the scent of your" + macro.footDesc(true);
} else if (isNonFatal(macro)) {
return "sickened by the smell of your " + macro.footDesc(true);
}
}

function defaultVictimAssStench(container, macro, verbose) {
if (isSadistic(macro)) {
return "reduced to bubbling flesh by the caustic scent of your ass";
} else if (isGory(macro)) {
return "suffocated by the rank odor of your ass";
} else if (isFatal(macro)) {
return "snuffed out by the scent of your ass";
} else if (isNonFatal(macro)) {
return "sickened by the smell of your butt";
}
}

function defaultVictimGasBelch(container, macro, verbose) {
if (isSadistic(macro)) {
return "dissolved by your rich, acidic belches";
} else if (isGory(macro)) {
return "corroded by your acrid belches";
} else if (isFatal(macro)) {
return "slain by your foul, deafening belches";
} else if (isNonFatal(macro)) {
return "knocked out by your belches";
}
}

function defaultVictimGasFart(container, macro, verbose) {
if (isSadistic(macro)) {
return "burned alive and melted down by your farts";
} else if (isGory(macro)) {
return "dissolved by your caustic farts";
} else if (isFatal(macro)) {
return "inundated in the miasma of your farts";
} else if (isNonFatal(macro)) {
return "knocked out by your farts";
}
}

function defaultVictimPiss(container, macro, verbose) {
if (isSadistic(macro)) {
return "drowned and dissolved in acrid piss";
} else if (isGory(macro)) {
return "drowned in your acrid piss";
} else if (isFatal(macro)) {
return "inundated in hot piss";
} else if (isNonFatal(macro)) {
return "flooded with your piss";
}
}

function defaultVictimBladderVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "dissolved in a golden-yellow sea of searing piss";
} else if (isGory(macro)) {
return "digested in your bladder and pissed out";
} else if (isFatal(macro)) {
return "dissolved in your bladder";
} else if (isNonFatal(macro)) {
return "absorbed into your bladder";
}
}

function defaultVictimPissStench(container, macro, verbose) {
if (isSadistic(macro)) {
return "rent asunder by the miasma wafting from your piss";
} else if (isGory(macro)) {
return "corroded and consumed by the stench of your piss";
} else if (isFatal(macro)) {
return "snuffed out by the stench of your piss";
} else if (isNonFatal(macro)) {
return "sickeded by your smelly piss";
}
}

function defaultVictimScat(container, macro, verbose) {
if (isSadistic(macro)) {
return "buried alive and dissolved by your acrid shit";
} else if (isGory(macro)) {
return "crushed beneath your scat";
} else if (isFatal(macro)) {
return "flattened by your scat";
} else if (isNonFatal(macro)) {
return "trapped under your scat";
}
}

function defaultVictimScatStench(container, macro, verbose) {
if (isSadistic(macro)) {
return "melted into slag by the wretched miasma of your scat";
} else if (isGory(macro)) {
return "killed by the overwhelming smell of your scat";
} else if (isFatal(macro)) {
return "snuffed out by your scat's stench";
} else if (isNonFatal(macro)) {
return "sickened by your scat";
}
}

function defaultVictimGoo(container, macro, verbose) {
if (isSadistic(macro)) {
return "shredded and soaked up by your goo";
} else if (isGory(macro)) {
return "digested and dissolved into your goo";
} else if (isFatal(macro)) {
return "dissolved in your goo";
} else if (isNonFatal(macro)) {
return "turned into more of your goo";
}
}

function defaultVictimPawVore(container, macro, verbose) {
if (isSadistic(macro)) {
return "broken down and absorbed directly into your " + macro.footOnlyDesc(true);
} else if (isGory(macro)) {
return "crushed under and sucked into your " + macro.footOnlyDesc(true);
} else if (isFatal(macro)) {
return "absorbed by your greedy " + macro.footOnlyDesc(true);
} else if (isNonFatal(macro)) {
return "absorbed into your " + macro.footOnlyDesc(true);
}
}

function defaultVictimBreathFire(container, macro, verbose) {
if (isSadistic(macro)) {
return "cooked alive and reduced to ash by your flaming breath";
} else if (isGory(macro)) {
return "burned alive by your fiery breath";
} else if (isFatal(macro)) {
return "burned by your scorching breath";
} else if (isNonFatal(macro)) {
return "singed by your breath";
}
}

function defaultVictimBreathIce(container, macro, verbose) {
if (isSadistic(macro)) {
return "flash-frozen by your breath and shattered into gory dust";
} else if (isGory(macro)) {
return "fatally frozen by your icy breath";
} else if (isFatal(macro)) {
return "turned to ice sculptures by your breath";
} else if (isNonFatal(macro)) {
return "frozen by your breath";
}
}

function defaultVictimBreathElectric(container, macro, verbose) {
if (isSadistic(macro)) {
return "blasted into bloody sludge by your shocking breath";
} else if (isGory(macro)) {
return "electrocuted by your electric breath";
} else if (isFatal(macro)) {
return "fried by your shocking breath";
} else if (isNonFatal(macro)) {
return "zapped by your electric breath";
}
}

function defaultVictimBreathSmoke(container, macro, verbose) {
if (isSadistic(macro)) {
return "cooked alive and cauterized by your smoky breath";
} else if (isGory(macro)) {
return "suffocated by your hot, smoky breath";
} else if (isFatal(macro)) {
return "snuffed out by smoky breath";
} else if (isNonFatal(macro)) {
return "singed by your smoky breath";
}
}

function defaultVictimBreathRadiation(container, macro, verbose) {
if (isSadistic(macro)) {
return "reduced to bubbling, glowing sludge by your radioactive breath";
} else if (isGory(macro)) {
return "cooked alive by your radioactive breath";
} else if (isFatal(macro)) {
return "nuked by your radioactive breath";
} else if (isNonFatal(macro)) {
return "mutated by your radioactive breath";
}
}

function defaultVictimBreathFoul(container, macro, verbose) {
if (isSadistic(macro)) {
return "suffocated and slain by thick, miasmic breath";
} else if (isGory(macro)) {
return "snuffed out by your foul breath";
} else if (isFatal(macro)) {
return "slain by your foul breath";
} else if (isNonFatal(macro)) {
return "sickened by your smelly breath";
}
}

// EATING



+ 3
- 2
stroll.html ファイルの表示

@@ -365,12 +365,13 @@

<p><b>Stroll is designed for modern browsers. Chrome, Firefox, or Edge are suggested. Older browsers will likely fail to run the game. Mobile should work fine.</b></p>

<br>
<div id="browser-ok"></div>

<p>Leave a box empty for a sane default value</p>
<p>Lengths in meters, areas in square meters, masses in kilograms, times in seconds</p>
<p>(but you can preview the customary value)</p>
<p>Click on highlight/darkened titles to enable and disable features.</p>
<p>Click on boxed titles to enable and disable features.</p>
<div id="custom-species">




読み込み中…
キャンセル
保存