浏览代码

Splooged! Added orgasms, flooding. Fixed up some units

tags/v0.7.0
Fen Dweller 7 年前
父节点
当前提交
ea5994dccf
共有 4 个文件被更改,包括 179 次插入5 次删除
  1. +157
    -1
      game.js
  2. +11
    -1
      recursive-macro.js
  3. +5
    -1
      stroll.html
  4. +6
    -2
      units.js

+ 157
- 1
game.js 查看文件

@@ -63,6 +63,12 @@ var macro =
return volume * this.ballDensity;
},

"baseCumRatio": 0.25,
"cumScale": 1,
get cumVolume() {
return this.ballVolume * this.baseCumRatio * this.cumScale;
},

"baseVaginaLength": 0.1,
"baseVaginaWidth": 0.05,
"vaginaScale": 1,
@@ -71,6 +77,12 @@ var macro =
get vaginaWidth() { return this.scaling(this.baseVaginaWidth * this.vaginaScale, this.scale, 1); },
get vaginaArea() { return this.vaginaLength * this.vaginaWidth },

"femcumRatio": 0.1,
"femcumScale": 1,
get femcumVolume() {
return this.vaginaArea * this.vaginaLength * this.femcumRatio * this.femcumScale;
},

"baseBreastDiameter": 0.1,
"breastScale": 1,
"breastDensity": 1000,
@@ -194,6 +206,55 @@ var macro =
"maleParts": true,
"femaleParts": true,

"orgasm": false,
"arousal": 0,

"arouse": function(amount) {
this.arousal += amount;

if (this.arousal >= 100) {
this.arousal = 100;

if (!this.orgasm) {
this.orgasm = true;
if (this.maleParts) {
this.maleOrgasm(this);
}
if (this.femaleParts) {
this.femaleOrgasm(this);
}
}
}
},

"quench": function(amount) {
this.arousal -= amount;

if (this.arousal <= 0) {
this.arousal = 0;
if (this.orgasm) {
this.orgasm = false;
}
}
},

"maleOrgasm": function(self) {
if (self.orgasm) {
self.quench(10);
male_orgasm();
setTimeout(function() { self.maleOrgasm(self) }, 2000);
}
},

"femaleOrgasm": function(self) {
if (this.orgasm) {
this.quench(10);
female_orgasm();
setTimeout(function() { self.femaleOrgasm(self) }, 2000);
}
},


get description() {
result = [];
line = "You are a " + length(macro.height, unit, true) + " tall " + macro.species + ". You weigh " + mass(macro.mass, unit) + ".";
@@ -410,7 +471,6 @@ function feed()

var people = get_living_prey(prey.sum());
var sound = "Ulp";

if (people < 3) {
sound = "Ulp.";
} else if (people < 10) {
@@ -431,6 +491,8 @@ function feed()

macro.stomach.feed(prey);

macro.arouse(5);

updateVictims("stomach",prey);
update([sound,line,linesummary,newline]);
}
@@ -463,6 +525,8 @@ function stomp()

macro.scaleWithMass(preyMass);

macro.arouse(5);

updateVictims("stomped",prey);
update([sound,line,linesummary,newline]);
}
@@ -523,6 +587,8 @@ function anal_vore()

macro.bowels.feed(prey);

macro.arouse(10);

updateVictims("bowels",prey);
updateVictims("stomped",crushed);
update([sound,line1,line1summary,newline,sound2,line2,line2summary,newline]);
@@ -556,6 +622,8 @@ function breast_crush()

macro.scaleWithMass(preyMass);

macro.arouse(10);

updateVictims("breasts",prey);
update([sound,line,linesummary,newline]);
}
@@ -591,6 +659,8 @@ function unbirth()

macro.womb.feed(prey);

macro.arouse(20);

updateVictims("womb",prey);
update([sound,line,linesummary,newline]);
}
@@ -624,6 +694,8 @@ function cockslap()

macro.scaleWithMass(preyMass);

macro.arouse(15);

updateVictims("cock",prey);
update([sound,line,linesummary,newline]);
}
@@ -658,6 +730,8 @@ function cock_vore()

macro.balls.feed(prey);

macro.arouse(20);

updateVictims("balls",prey);
update([sound,line,linesummary,newline]);
}
@@ -690,10 +764,86 @@ function ball_smother()

macro.scaleWithMass(preyMass);

macro.arouse(10);

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

function male_orgasm()
{
var vol = macro.cumVolume;

// let's make it 10cm thick

var area = vol * 10;

var prey = getPrey(biome, area);
var line = prey.male_orgasm(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.scaleWithMass(preyMass);

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

function female_orgasm()
{
var vol = macro.femcumVolume;

// let's make it 10cm thick

var area = vol * 10;

var prey = getPrey(biome, area);
var line = prey.female_orgasm(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.scaleWithMass(preyMass);

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

function update(lines = [])
{
var log = document.getElementById("log");
@@ -708,6 +858,7 @@ function update(lines = [])

document.getElementById("height").innerHTML = "Height: " + length(macro.height, unit);
document.getElementById("mass").innerHTML = "Mass: " + mass(macro.mass, unit);
document.getElementById("arousal").innerHTML = "Arousal: " + macro.arousal + "%";

for (var type in victims) {
if (victims.hasOwnProperty(type)) {
@@ -797,6 +948,10 @@ function startGame() {
document.getElementById("stats-breasts").style.display = 'none';
}

if (!macro.maleParts && !macro.femaleParts) {
document.getElementById("stats-splooged").style.display = 'none';
}

var species = document.getElementById("option-species").value;
var re = /^[a-zA-Z\- ]+$/;

@@ -818,6 +973,7 @@ window.addEventListener('load', function(event) {
victims["cock"] = initVictims();
victims["balls"] = initVictims();
victims["smothered"] = initVictims();
victims["splooged"] = initVictims();

macro.init();



+ 11
- 1
recursive-macro.js 查看文件

@@ -267,7 +267,15 @@ function defaultCockVore(thing) {
}

function defaultBallSmother(thing) {
return function(verbose=true,height=10) { return "Your weighty balls spread over " + thing.describe(verbose) + ", smothering them in musk. "; }
return function(verbose=true,height=10) { return "Your weighty balls spread over " + thing.describe(verbose) + ", smothering them in musk."; }
}

function defaultMaleOrgasm(thing) {
return function(verbose=true,height=10) { return "You're cumming! Your thick cock spurts out $VOLUME of seed, splooging " + thing.describe(verbose) + "."; }
}

function defaultFemaleOrgasm(thing) {
return function(verbose=true,height=10) { return "You're cumming! Your moist slit sprays $VOLUME of sluck femcum, splooging " + thing.describe(verbose) + "."; }
}

function defaultArea(thing) {
@@ -355,6 +363,8 @@ function DefaultEntity() {
this.cockslap = defaultCockslap;
this.cock_vore = defaultCockVore;
this.ball_smother = defaultBallSmother;
this.male_orgasm = defaultMaleOrgasm;
this.female_orgasm = defaultFemaleOrgasm;
this.sum = defaultSum;
this.area = defaultArea;
this.mass = defaultMass;


+ 5
- 1
stroll.html 查看文件

@@ -16,6 +16,7 @@
<p>Stats</p>
<div class=stat-line id=height></div>
<div class=stat-line id=mass></div>
<div class=stat-line id=arousal></div>
</div>
<div class=stat-header id=stats-stomped>
<p>Stomped</p>
@@ -44,10 +45,13 @@
<div class=stat-header id=stats-smothered>
<p>Smothered</p>
</div>
<div class=stat-header id=stats-splooged>
<p>Splooged</p>
</div>
</div>
<div id=log-area>
<div id=log>
<div>Welcome to Stroll 0.2.3</div>
<div>Welcome to Stroll 0.2.4</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>


+ 6
- 2
units.js 查看文件

@@ -25,6 +25,7 @@ function volume(m3, type="metric", singular=false) {
case "approx": return approxVolume(m3, singular); break;
}
}

function metricMass(kg, singular=false) {
if (kg < 1/1000) {
var mass = round(kg * 1e6,0);
@@ -139,8 +140,11 @@ function approxLength(m, singular=false) {
}

function metricVolume(m3, singular=false) {
if (m3 < 1) {
var volume = round(m3/1000, 1);
if (m3 < 1/1000) {
var volume = round(m3*1e6, 0);
return volume + (singular || volume == 1 ? " milliliter" : " milliliters");
} else if (m3 < 1) {
var volume = round(m3*1000, 1);
return volume + (singular || volume == 1 ? " liter" : " liters");
} else if (m3 < 1000000) {
var volume = round(m3, 0);


正在加载...
取消
保存