소스 검색

Added tails and tailmaws

tags/v0.7.0
Fen Dweller 7 년 전
부모
커밋
7111e3fd66
3개의 변경된 파일177개의 추가작업 그리고 6개의 파일을 삭제
  1. +126
    -4
      game.js
  2. +21
    -0
      recursive-desc.js
  3. +30
    -2
      stroll.html

+ 126
- 4
game.js 파일 보기

@@ -36,6 +36,32 @@ var macro =

"assScale": 1,

"tailType": "slinky",
"tailCount": 1,
"baseTailLength": 1,
"baseTailDiameter": 0.1,
"tailDensity": 250,
"tailScale": 1,
"tailMaw": false,

get tailLength() {
return this.scaling(this.baseTailLength * this.tailScale, this.scale, 1);
},
get tailDiameter() {
return this.scaling(this.baseTailDiameter * this.tailScale, this.scale, 1);
},
get tailGirth() {
return Math.pow(this.tailDiameter/2,2) * Math.PI;
},
get tailArea() {
return this.tailLength * this.tailDiameter;
},
get tailVolume() {
return this.tailGirth * this.tailLength;
},
get tailMass() {
return this.tailVolume * this.tailDensity;
},
"dickType": "canine",
"baseDickLength": 0.3,
"baseDickDiameter": 0.08,
@@ -434,6 +460,11 @@ var macro =
return result;
},

get describeTail() {
return (this.tailCount > 1 ? this.tailCount + " " : "") + length(this.tailLength, unit, true) + "-long " + this.tailType;
},


get describeDick() {
state = "";
if (!this.arousalEnabled) {
@@ -453,7 +484,7 @@ var macro =
state = "erect, throbbing, pre-soaked";
}
}
return length(macro.dickLength, unit, true) + " long " + state + " " + macro.dickType;
return length(this.dickLength, unit, true) + " long " + state + " " + this.dickType;
},

get describeVagina() {
@@ -476,7 +507,7 @@ var macro =
}
}

return length(macro.vaginaLength, unit, true) + " long " + state
return length(this.vaginaLength, unit, true) + " long " + state
},

"growthPoints": 0,
@@ -1230,6 +1261,77 @@ function female_orgasm(vol)
update([sound,line,linesummary,newline]);
}

function tail_slap()
{
var area = macro.tailArea * macro.tailCount;
var prey = getPrey(biome, area);
var line = describe("tail-slap", prey, macro, verbose)
var linesummary = summarize(prey.sum(), true);

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

var sound = "Thump";

if (people < 3) {
sound = "Thump!";
} else if (people < 10) {
sound = "Squish!";
} else if (people < 50) {
sound = "Crunch!";
} else if (people < 500) {
sound = "CRUNCH!";
} else if (people < 5000) {
sound = "CRRUUUNCH!!";
} else {
sound = "Oh the humanity!";
}
var preyMass = prey.sum_property("mass");

macro.addGrowthPoints(preyMass);

macro.arouse(5);

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

function tail_vore()
{
var area = macro.tailGirth * macro.tailCount;
var prey = getPrey(biome, area);
var line = describe("tail-vore", prey, macro, verbose)
var linesummary = summarize(prey.sum(), true);

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

var sound = "";
if (people == 0) {
sound = "";
} else if (people < 3) {
sound = "Ulp.";
} else if (people < 10) {
sound = "Gulp.";
} else if (people < 50) {
sound = "Glrrp.";
} else if (people < 500) {
sound = "Glrrrpkh!";
} else if (people < 5000) {
sound = "GLRRKPKH!";
} else {
sound = "Oh the humanity!";
}
var preyMass = prey.sum_property("mass");

macro.addGrowthPoints(preyMass);

macro.arouse(5);

macro.stomach.feed(prey);

updateVictims("tailmaw'd",prey);
update([sound,line,linesummary,newline]);
}

function transformNumbers(line)
{
return line.toString().replace(/[0-9]+(\.[0-9]+)?(e\+[0-9]+)?/g, function(text) { return number(text, numbers); });
@@ -1540,12 +1642,28 @@ function startGame(e) {
}
}

if (!macro.hasTail) {
macro.tailCount = 0;
}

document.getElementById("log-area").style.display = 'inline';
document.getElementById("option-panel").style.display = 'none';
document.getElementById("action-panel").style.display = 'flex';

victimTypes = ["stomped","digested","stomach","bowels","ground"];

if (macro.tailCount > 0) {
victimTypes = victimTypes.concat(["tailslapped"]);
if (macro.tailMaw) {
victimTypes = victimTypes.concat(["tailmaw'd"]);
} else {
document.getElementById("button-tail_vore").style.display = 'none';
}
} else {
document.getElementById("button-tail_slap").style.display = 'none';
document.getElementById("button-tail_vore").style.display = 'none';
}

if (macro.maleParts) {
victimTypes = victimTypes.concat(["cock","balls"]);
} else {
@@ -1630,9 +1748,11 @@ function startGame(e) {
window.addEventListener('load', function(event) {

victims["stomped"] = initVictims();
victims["tailslapped"] = initVictims();
victims["tailmaw'd"] = initVictims();
victims["bowels"] = initVictims();
victims["digested"] = initVictims();
victims["stomach"] = initVictims();
victims["bowels"] = initVictims();
victims["breasts"] = initVictims();
victims["womb"] = initVictims();
victims["cock"] = initVictims();
@@ -1644,13 +1764,15 @@ window.addEventListener('load', function(event) {
document.getElementById("button-look").addEventListener("click",look);
document.getElementById("button-feed").addEventListener("click",feed);
document.getElementById("button-stomp").addEventListener("click",stomp);
document.getElementById("button-anal_vore").addEventListener("click",anal_vore);
document.getElementById("button-tail_slap").addEventListener("click",tail_slap);
document.getElementById("button-tail_vore").addEventListener("click",tail_vore);
document.getElementById("button-breast_crush").addEventListener("click",breast_crush);
document.getElementById("button-unbirth").addEventListener("click",unbirth);
document.getElementById("button-cockslap").addEventListener("click",cockslap);
document.getElementById("button-cock_vore").addEventListener("click",cock_vore);
document.getElementById("button-ball_smother").addEventListener("click",ball_smother);
document.getElementById("button-grind").addEventListener("click",grind);
document.getElementById("button-anal_vore").addEventListener("click",anal_vore);
document.getElementById("button-stroll").addEventListener("click",toggle_auto);
document.getElementById("button-location").addEventListener("click",change_location);
document.getElementById("button-numbers").addEventListener("click",toggle_numbers);


+ 21
- 0
recursive-desc.js 파일 보기

@@ -4,6 +4,8 @@ rules["eat"] = [];
rules["stomp"] = [];
rules["kick"] = [];
rules["anal-vore"] = [];
rules["tail-slap"] = [];
rules["tail-vore"] = [];
rules["ass-crush"] = [];
rules["breast-crush"] = [];
rules["unbirth"] = [];
@@ -113,6 +115,8 @@ function describeDefault(action, container, macro, verbose=true) {
case "kick": return defaultKick(container, macro, verbose);
case "anal-vore": return defaultAnalVore(container, macro, verbose);
case "ass-crush": return defaultAssCrush(container, macro, verbose);
case "tail-slap": return defaultTailSlap(container, macro, verbose);
case "tail-vore": return defaultTailVore(container, macro, verbose);
case "breast-crush": return defaultBreastCrush(container, macro, verbose);
case "unbirth": return defaultUnbirth(container, macro, verbose);
case "cock-vore": return defaultCockVore(container, macro, verbose);
@@ -158,6 +162,23 @@ function defaultAssCrush(container, macro, verbose) {
return "You sit on " + container.describe(verbose);
}

function defaultTailSlap(container, macro, verbose) {
if (isFatal(macro))
return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails swing" : " tail swings") + " into " + container.describe(verbose) + ", smashing everything in "
+ (macro.tailCount > 1 ? "their" : "its") + " path.";
else
return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails slap" : " tail slaps") + " against " + container.describe(verbose) + ", bowling them over.";
}

function defaultTailVore(container, macro, verbose) {
if (isFatal(macro))
return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails lunge, maws agape, " : " tail lunges, maw agape, ") + "at " + container.describe(verbose)
+ ". " + (macro.tailCount > 1 ? "They" : "It") + " scarf down everything in a second, gulping forcefully to drag your prey into your sloppy guts.";
else
return "Your " + macro.describeTail + (macro.tailCount > 1 ? " tails lunge, maws agape, " : " tail lunges, maw agape, ") + "at " + container.describe(verbose)
+ ". " + (macro.tailCount > 1 ? "They" : "It") + " scarf down everything in a second, gulping forcefully and pulling everything into your belly.";
}

function defaultBreastCrush(container, macro, verbose) {
if (isFatal(macro))
return "Your heavy breasts obliterate " + container.describe(verbose) + ". ";


+ 30
- 2
stroll.html 파일 보기

@@ -72,6 +72,8 @@
<button class=action-button id=button-feed>Eat</button>
<button class=action-button id=button-stomp>Stomp</button>
<button class=action-button id=button-anal_vore>Sit</button>
<button class=action-button id=button-tail_slap>Tail Slap</button>
<button class=action-button id=button-tail_vore>Tail Vore</button>
<button class=action-button id=button-grind>Grind</button>
<button class=action-button id=button-breast_crush>Breast Crush</button>
<button class=action-button id=button-unbirth>Unbirth</button>
@@ -89,7 +91,7 @@


<div class=option-container id=option-panel>
<p>Welcome to Stroll 0.4.1</p>
<p>Welcome to Stroll 0.4.2</p>
<p><b>This game features 18+ content</b></p>
<a href="https://chemicalcrux.org/stroll">Changelog</a>
<br>
@@ -169,12 +171,38 @@
</div>
</div>
<br>
<div>
Tail(s):<br>
<input type="checkbox" checked=true name="hasTail"/><br>
<div class=reveal-if-active>
<li>
<label for="tailCount">Tail count</label>
<input type="number" name="tailCount" placeholder="1"/><br>
</li>
<li>
<label for="tailType">Tail type</label>
<input type="text" name="tailType" placeholder="slinky"/><br>
</li>
<li>
<label for="baseTailLength">Tail length</label>
<input type="number" name="baseTailLength" placeholder="1"/><br>
</li>
<li>
<label for="baseTailDiameter">Tail diameter</label>
<input type="number" name="baseTailDiameter" placeholder="0.3"/><br>
</li>
<li>
<label for="baseDickDiameter">Tail maw(s)</label>
<input type="checkbox" name="tailMaw"/><br>
</div>
</div>
<br>
<div>
Male genitals:<br>
<input type="checkbox" checked=true name="maleParts"/><br>
<div class=reveal-if-active>
<li>
<label for="baseDickLength">Cock type</label>
<label for="dickType">Cock type</label>
<input type="text" name="dickType" placeholder="canine"/><br>
</li>
<li>


불러오는 중...
취소
저장