Переглянути джерело

Added some ways to stuff things up your ass. Added precum/spurting

tags/v0.7.0
Fen Dweller 7 роки тому
джерело
коміт
c4483868d0
3 змінених файлів з 151 додано та 7 видалено
  1. +81
    -0
      game.js
  2. +68
    -5
      recursive-desc.js
  3. +2
    -2
      stroll.html

+ 81
- 0
game.js Переглянути файл

@@ -294,6 +294,9 @@ var macro =
"arousal": 0,
"edge": 0,

"maleSpurt": 0,
"femaleSpurt": 0,

"arouse": function(amount) {
if (!this.arousalEnabled)
return;
@@ -345,6 +348,18 @@ var macro =
self.edge += Math.sqrt((self.arousal - 100)) / 500;
self.edge = Math.min(1,self.edge);
self.edge = Math.max(0,self.edge - 0.002);

self.maleSpurt += ((self.arousal-100)/100 + Math.random()) / 25 * (self.edge);
self.femaleSpurt += ((self.arousal-100)/100 + Math.random()) / 25 * (self.edge);

if (self.maleSpurt > 1) {
male_spurt(macro.cumVolume * (0.1 + Math.random() / 10));
self.maleSpurt = 0;
}
if (self.femaleSpurt > 1) {
female_spurt(macro.femcumVolume * (0.1 + Math.random() / 10));
self.femaleSpurt = 0;
}
update();
} else if (self.afterglow) {
self.quench(0.5);
@@ -1081,6 +1096,39 @@ function ball_smother()
update([sound,line,linesummary,newline]);
}

function male_spurt(vol)
{
var area = Math.pow(vol, 2/3);

var prey = getPrey(biome, area);
var line = describe("male-spurt", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false))
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());

var sound = "Spurt!";

if (people < 3) {
sound = "Spurt!";
} else if (people < 10) {
sound = "Sploosh!";
} else if (people < 50) {
sound = "Sploooooosh!";
} else if (people < 500) {
sound = "SPLOOSH!";
} else if (people < 5000) {
sound = "SPLOOOOOOOOOOSH!!";
} else {
sound = "Oh the humanity!";
}
var preyMass = prey.sum_property("mass");

macro.addGrowthPoints(preyMass);

updateVictims("splooged",prey);
update([sound,line,linesummary,newline]);
}

function male_orgasm(vol)
{
var area = Math.pow(vol, 2/3);
@@ -1114,6 +1162,39 @@ function male_orgasm(vol)
update([sound,line,linesummary,newline]);
}

function female_spurt(vol)
{
var area = Math.pow(vol, 2/3);

var prey = getPrey(biome, area);
var line = describe("female-spurt", prey, macro, verbose).replace("$VOLUME",volume(vol,unit,false))
var linesummary = summarize(prey.sum(), true);

var people = get_living_prey(prey.sum());

var sound = "Spurt!";

if (people < 3) {
sound = "Spurt!";
} else if (people < 10) {
sound = "Sploosh!";
} else if (people < 50) {
sound = "Sploooooosh!";
} else if (people < 500) {
sound = "SPLOOSH!";
} else if (people < 5000) {
sound = "SPLOOOOOOOOOOSH!!";
} else {
sound = "Oh the humanity!";
}
var preyMass = prey.sum_property("mass");

macro.addGrowthPoints(preyMass);

updateVictims("splooged",prey);
update([sound,line,linesummary,newline]);
}

function female_orgasm(vol)
{
var area = Math.pow(vol, 2/3);


+ 68
- 5
recursive-desc.js Переглянути файл

@@ -10,7 +10,9 @@ rules["unbirth"] = [];
rules["cock-vore"] = [];
rules["cockslap"] = [];
rules["ball-smother"] = [];
rules["male-spurt"] = [];
rules["male-orgasm"] = [];
rules["female-spurt"] = [];
rules["female-orgasm"] = [];
rules["grind"] = [];

@@ -95,7 +97,7 @@ function describe(action, container, macro, verbose=true) {
}
}

if (options.length > 0) {
if (options.length > 0 && Math.random() > (1 / (2 + rules[action].length))) {
let choice = Math.floor(Math.random() * options.length);
return options[choice](container, macro, verbose);
}
@@ -116,7 +118,9 @@ function describeDefault(action, container, macro, verbose=true) {
case "cock-vore": return defaultCockVore(container, macro, verbose);
case "cockslap": return defaultCockslap(container, macro, verbose);
case "ball-smother": return defaultBallSmother(container, macro, verbose);
case "male-spurt": return defaultMaleSpurt(container, macro, verbose);
case "male-orgasm": return defaultMaleOrgasm(container, macro, verbose);
case "female-spurt": return defaultFemaleSpurt(container, macro, verbose);
case "female-orgasm": return defaultFemaleOrgasm(container, macro, verbose);
case "grind": return defaultGrind(container, macro, verbose);
case "stomach": return defaultStomach(container, macro, verbose);
@@ -183,18 +187,32 @@ function defaultBallSmother(container, macro, verbose) {
return "Your weighty balls spread over " + container.describe(verbose) + ".";
}

function defaultMaleSpurt(container, macro, verbose) {
if (isFatal(macro))
return "Your " + macro.describeDick + " cock spurts out $VOLUME of bitter precum, drowning " + container.describe(verbose) + " in a deluge of musk.";
else
return "Your " + macro.describeDick + " shaft spurts out $VOLUME of precum, splooging " + container.describe(verbose) + ".";
}

function defaultMaleOrgasm(container, macro, verbose) {
if (isFatal(macro))
return "You're cumming! Your " + macro.describeDick + " cock spurts out $VOLUME of seed, obliterating " + container.describe(verbose) + " in a torrent of cum.";
return "You're cumming! Your " + macro.describeDick + " cock gushes $VOLUME of seed, obliterating " + container.describe(verbose) + " in a torrent of cum.";
else
return "You're cumming! Your " + macro.describeDick + " shaft gushes $VOLUME of seed, splooging " + container.describe(verbose) + ".";
}

function defaultFemaleSpurt(container, macro, verbose) {
if (isFatal(macro))
return "Your moist slit splatters $VOLUME of slick juices, drowning " + container.describe(verbose) + " in your building lust.";
else
return "You're cumming! Your " + macro.describeDick + " shaft spurts out $VOLUME of seed, splooging " + container.describe(verbose) + ".";
return "Your moist slit splatters $VOLUME of slick juices, splooging " + container.describe(verbose) + ".";
}

function defaultFemaleOrgasm(container, macro, verbose) {
if (isFatal(macro))
return "You're cumming! Your moist slit sprays $VOLUME of slick femcum, obliterating " + container.describe(verbose) + " in a torrent of femcum.";
return "Your moist slit sprays $VOLUME of slick femcum, obliterating " + container.describe(verbose) + " in a torrent of femcum.";
else
return "You're cumming! Your moist slit sprays $VOLUME of slick femcum, splooging " + container.describe(verbose) + ".";
return "Your moist slit sprays $VOLUME of slick femcum, splooging " + container.describe(verbose) + ".";
}

function defaultGrind(container, macro, verbose) {
@@ -352,3 +370,48 @@ rules["stomp"].push({
falling off.";
}
});

// ANAL VORE

rules["anal-vore"].push({
"test": function(container, macro) {
return hasExactly(container, "Person", 1)
&& hasOnly(container, ["Person"]);
}, "desc": function(container, macro, verbose) {
let adjective = ["musky","winding","churning"][Math.floor(Math.random()*3)];
return "Your weighty rump slams against the ground. A shock of pleasure runs up your spine as a " + container.describe(verbose) + " slides up your ass,"
+ (macro.maleParts ? " grinding against your prostate" : "") + ". A powerful clench drags them deeper into your bowels, sealing them away in your " + adjective + " depths.";
}
});

rules["anal-vore"].push({
"test": function(container, macro) {
return hasExactly(container, "Car", 1)
&& hasOnly(container, ["Car"]);
}, "desc": function(container, macro, verbose) {
return "You ram " + container.describe(verbose) + " up your ass, biting your lip as it" + (macro.maleParts ? " rubs along your prostate" : " slides into velvety depths") + ".\
You moan and clench hard, yanking it in with a wet <i>shlrrp</i> and abruplty silencing its blaring horn.";
}
});

rules["anal-vore"].push({
"test": function(container, macro) {
return hasExactly(container, "Bus", 1)
&& hasOnly(container, ["Bus"]);
}, "desc": function(container, macro, verbose) {
return "A speeding bus slams on its brakes as you abruptly sit - but it's too late to stop. A gasp flies from your lips as it penetrates your greedy ass, sinking halfway in and coming to a halt. \
You grunt and squeeze, causing its frame to creak and groan. Two fingers to the back are enough to get it moving again, and it slowly works inside. You shiver and moan, taking it in all the way. \
Your ass claims " + container.describe(verbose) + ".";
}
});

rules["anal-vore"].push({
"test": function(container, macro) {
return hasExactly(container, "Bus", 1)
&& hasOnly(container, ["Bus"]);
}, "desc": function(container, macro, verbose) {
return "A speeding bus slams on its brakes as you abruptly sit - but it's too late to stop. A gasp flies from your lips as it penetrates your greedy ass, sinking halfway in and coming to a halt. \
You grunt and squeeze, causing its frame to creak and groan. Two fingers to the back are enough to get it moving again, and it slowly works inside. You shiver and moan, taking it in all the way. \
Your ass claims " + container.describe(verbose) + ".";
}
});

+ 2
- 2
stroll.html Переглянути файл

@@ -60,7 +60,7 @@
</div>
<div id=log-area>
<div id=log>
<div>Welcome to Stroll 0.4.0</div>
<div>Welcome to Stroll 0.4.1</div>
<div><b>This game features 18+ content</b></div>
<div><a href="https://chemicalcrux.org/stroll">Changelog</a></div>
<div>It's a nice day for a walk</div>
@@ -89,7 +89,7 @@


<div class=option-container id=option-panel>
<p>Welcome to Stroll 0.4.0</p>
<p>Welcome to Stroll 0.4.1</p>
<p><b>This game features 18+ content</b></p>
<a href="https://chemicalcrux.org/stroll">Changelog</a>
<br>


Завантаження…
Відмінити
Зберегти