|
|
@@ -56,6 +56,7 @@ let macro = |
|
|
"dickScale": 1, |
|
|
"dickScale": 1, |
|
|
"ballScale": 1, |
|
|
"ballScale": 1, |
|
|
"vaginaScale": 1, |
|
|
"vaginaScale": 1, |
|
|
|
|
|
"wombScale": 1, |
|
|
"breastScale": 1, |
|
|
"breastScale": 1, |
|
|
"tailScale": 1, |
|
|
"tailScale": 1, |
|
|
|
|
|
|
|
|
@@ -274,6 +275,7 @@ let macro = |
|
|
|
|
|
|
|
|
"biteDesc": function(plural=false,capital=false) { |
|
|
"biteDesc": function(plural=false,capital=false) { |
|
|
let result = ""; |
|
|
let result = ""; |
|
|
|
|
|
|
|
|
switch(this.jawType) { |
|
|
switch(this.jawType) { |
|
|
case "jaw": |
|
|
case "jaw": |
|
|
result = plural ? "crushes" : "crush"; |
|
|
result = plural ? "crushes" : "crush"; |
|
|
@@ -373,8 +375,12 @@ let macro = |
|
|
get vaginaWidth() { return this.scaling(this.baseVaginaWidth * this.vaginaScale, this.scale, 1); }, |
|
|
get vaginaWidth() { return this.scaling(this.baseVaginaWidth * this.vaginaScale, this.scale, 1); }, |
|
|
get vaginaArea() { return this.vaginaLength * this.vaginaWidth; }, |
|
|
get vaginaArea() { return this.vaginaLength * this.vaginaWidth; }, |
|
|
get vaginaStretchArea() { return this.vaginaStretchiness * this.vaginaStretchiness * this.vaginaLength * this.vaginaWidth; }, |
|
|
get vaginaStretchArea() { return this.vaginaStretchiness * this.vaginaStretchiness * this.vaginaLength * this.vaginaWidth; }, |
|
|
|
|
|
// this isn't how biology works but I'll leave it in |
|
|
|
|
|
|
|
|
get vaginaVolume() { return this.vaginaArea * this.vaginaWidth; }, |
|
|
get vaginaVolume() { return this.vaginaArea * this.vaginaWidth; }, |
|
|
|
|
|
|
|
|
|
|
|
get wombVolume() { return this.scaling(this.baseWombVolume, this.wombScale * this.scale, 3); }, |
|
|
|
|
|
|
|
|
get femcumVolume() { |
|
|
get femcumVolume() { |
|
|
let vol = this.scaling(this.baseFemcumVolume, this.scale, 3); |
|
|
let vol = this.scaling(this.baseFemcumVolume, this.scale, 3); |
|
|
return this.scaling(vol, this.vaginaScale, 2); |
|
|
return this.scaling(vol, this.vaginaScale, 2); |
|
|
@@ -1130,7 +1136,7 @@ let macro = |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
"fillCum": function(self) { |
|
|
"fillCum": function(self) { |
|
|
self.cumStorage.amount += self.cumScale * self.cumStorage.limit / self.cumStorageScale / 1000; |
|
|
|
|
|
|
|
|
self.cumStorage.amount += self.scaling(self.baseCumProduction / 10, self.scale * self.ballScale, 3); |
|
|
if (self.cumStorage.amount > self.cumStorage.limit) |
|
|
if (self.cumStorage.amount > self.cumStorage.limit) |
|
|
self.arouse(1 * (self.cumStorage.amount / self.cumStorage.limit - 1)); |
|
|
self.arouse(1 * (self.cumStorage.amount / self.cumStorage.limit - 1)); |
|
|
setTimeout(function () { self.fillCum(self); }, 100); |
|
|
setTimeout(function () { self.fillCum(self); }, 100); |
|
|
@@ -1138,7 +1144,7 @@ let macro = |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
"fillFemcum": function(self) { |
|
|
"fillFemcum": function(self) { |
|
|
self.femcumStorage.amount += self.femcumScale * self.femcumStorage.limit / self.femcumStorageScale / 1000; |
|
|
|
|
|
|
|
|
self.femcumStorage.amount += self.scaling(self.baseFemcumProduction / 10, self.scale * self.wombScale, 3); |
|
|
if (self.femcumStorage.amount > self.femcumStorage.limit) |
|
|
if (self.femcumStorage.amount > self.femcumStorage.limit) |
|
|
self.arouse(1 * (self.femcumStorage.amount / self.femcumStorage.limit - 1)); |
|
|
self.arouse(1 * (self.femcumStorage.amount / self.femcumStorage.limit - 1)); |
|
|
setTimeout(function () { self.fillFemcum(self); }, 100); |
|
|
setTimeout(function () { self.fillFemcum(self); }, 100); |
|
|
@@ -1210,14 +1216,14 @@ let macro = |
|
|
"cumStorage": { |
|
|
"cumStorage": { |
|
|
"amount": 0, |
|
|
"amount": 0, |
|
|
get limit() { |
|
|
get limit() { |
|
|
return this.owner.ballVolume * this.owner.cumStorageScale; |
|
|
|
|
|
|
|
|
return this.owner.ballVolume * this.owner.cumStorageScale * 2; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
"femcumStorage": { |
|
|
"femcumStorage": { |
|
|
"amount": 0, |
|
|
"amount": 0, |
|
|
get limit() { |
|
|
get limit() { |
|
|
return this.owner.vaginaVolume * this.owner.femcumStorageScale; |
|
|
|
|
|
|
|
|
return this.owner.wombVolume * this.owner.femcumStorageScale; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@@ -1356,6 +1362,11 @@ let macro = |
|
|
|
|
|
|
|
|
if (self.orgasm) { |
|
|
if (self.orgasm) { |
|
|
let spurt = Math.min(this.cumVolume, this.cumStorage.amount); |
|
|
let spurt = Math.min(this.cumVolume, this.cumStorage.amount); |
|
|
|
|
|
|
|
|
|
|
|
if (spurt == this.cumVolume) { |
|
|
|
|
|
let excess = this.cumStorage.amount - this.cumVolume; |
|
|
|
|
|
spurt += excess / 5; |
|
|
|
|
|
} |
|
|
this.cumStorage.amount -= spurt; |
|
|
this.cumStorage.amount -= spurt; |
|
|
male_orgasm(spurt, false); |
|
|
male_orgasm(spurt, false); |
|
|
setTimeout(function() { self.maleOrgasm(self); }, 5000); |
|
|
setTimeout(function() { self.maleOrgasm(self); }, 5000); |
|
|
@@ -1368,6 +1379,12 @@ let macro = |
|
|
|
|
|
|
|
|
if (this.orgasm) { |
|
|
if (this.orgasm) { |
|
|
let spurt = Math.min(this.femcumVolume, this.femcumStorage.amount); |
|
|
let spurt = Math.min(this.femcumVolume, this.femcumStorage.amount); |
|
|
|
|
|
|
|
|
|
|
|
if (spurt == this.femcumVolume) { |
|
|
|
|
|
let excess = this.femcumStorage.amount - this.femcumVolume; |
|
|
|
|
|
spurt += excess / 5; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.femcumStorage.amount -= spurt; |
|
|
this.femcumStorage.amount -= spurt; |
|
|
female_orgasm(spurt, false); |
|
|
female_orgasm(spurt, false); |
|
|
setTimeout(function() { self.femaleOrgasm(self); }, 5000); |
|
|
setTimeout(function() { self.femaleOrgasm(self); }, 5000); |
|
|
@@ -3925,6 +3942,7 @@ function grow_pick(times) { |
|
|
case "dick": grow_dick(times); break; |
|
|
case "dick": grow_dick(times); break; |
|
|
case "balls": grow_balls(times); break; |
|
|
case "balls": grow_balls(times); break; |
|
|
case "slit": grow_vagina(times); break; |
|
|
case "slit": grow_vagina(times); break; |
|
|
|
|
|
case "womb": grow_womb(times); break; |
|
|
case "breasts": grow_breasts(times); break; |
|
|
case "breasts": grow_breasts(times); break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@@ -4028,6 +4046,19 @@ function grow_vagina(factor) |
|
|
update(["Power surges through you as your moist slit expands by by " + length(lengthDelta, unit, false),newline]); |
|
|
update(["Power surges through you as your moist slit expands by by " + length(lengthDelta, unit, false),newline]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function grow_womb(factor) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
let oldVolume = macro.wombVolume; |
|
|
|
|
|
|
|
|
|
|
|
macro.wombScale *= factor; |
|
|
|
|
|
|
|
|
|
|
|
let volumeDelta = macro.wombVolume - oldVolume; |
|
|
|
|
|
|
|
|
|
|
|
update(["Power surges through you as your womb grows larger, gaining " + volume(volumeDelta, unit, false) + " of capacity",newline]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function grow_ass(factor) |
|
|
function grow_ass(factor) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
@@ -4375,6 +4406,7 @@ function startGame(e) { |
|
|
enable_stat("femcum"); |
|
|
enable_stat("femcum"); |
|
|
|
|
|
|
|
|
enable_growth_part("slit"); |
|
|
enable_growth_part("slit"); |
|
|
|
|
|
enable_growth_part("womb"); |
|
|
|
|
|
|
|
|
if (macro.arousalEnabled) { |
|
|
if (macro.arousalEnabled) { |
|
|
enable_victim("femcum-flood","Flooded by femcum"); |
|
|
enable_victim("femcum-flood","Flooded by femcum"); |
|
|
|