소스 검색

Added tails and tailmaws

tags/v0.7.0
Fen Dweller 8 년 전
부모
커밋
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, "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", "dickType": "canine",
"baseDickLength": 0.3, "baseDickLength": 0.3,
"baseDickDiameter": 0.08, "baseDickDiameter": 0.08,
@@ -434,6 +460,11 @@ var macro =
return result; return result;
}, },


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


get describeDick() { get describeDick() {
state = ""; state = "";
if (!this.arousalEnabled) { if (!this.arousalEnabled) {
@@ -453,7 +484,7 @@ var macro =
state = "erect, throbbing, pre-soaked"; 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() { 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, "growthPoints": 0,
@@ -1230,6 +1261,77 @@ function female_orgasm(vol)
update([sound,line,linesummary,newline]); 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) function transformNumbers(line)
{ {
return line.toString().replace(/[0-9]+(\.[0-9]+)?(e\+[0-9]+)?/g, function(text) { return number(text, numbers); }); 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("log-area").style.display = 'inline';
document.getElementById("option-panel").style.display = 'none'; document.getElementById("option-panel").style.display = 'none';
document.getElementById("action-panel").style.display = 'flex'; document.getElementById("action-panel").style.display = 'flex';


victimTypes = ["stomped","digested","stomach","bowels","ground"]; 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) { if (macro.maleParts) {
victimTypes = victimTypes.concat(["cock","balls"]); victimTypes = victimTypes.concat(["cock","balls"]);
} else { } else {
@@ -1630,9 +1748,11 @@ function startGame(e) {
window.addEventListener('load', function(event) { window.addEventListener('load', function(event) {


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


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

@@ -4,6 +4,8 @@ rules["eat"] = [];
rules["stomp"] = []; rules["stomp"] = [];
rules["kick"] = []; rules["kick"] = [];
rules["anal-vore"] = []; rules["anal-vore"] = [];
rules["tail-slap"] = [];
rules["tail-vore"] = [];
rules["ass-crush"] = []; rules["ass-crush"] = [];
rules["breast-crush"] = []; rules["breast-crush"] = [];
rules["unbirth"] = []; rules["unbirth"] = [];
@@ -113,6 +115,8 @@ function describeDefault(action, container, macro, verbose=true) {
case "kick": return defaultKick(container, macro, verbose); case "kick": return defaultKick(container, macro, verbose);
case "anal-vore": return defaultAnalVore(container, macro, verbose); case "anal-vore": return defaultAnalVore(container, macro, verbose);
case "ass-crush": return defaultAssCrush(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 "breast-crush": return defaultBreastCrush(container, macro, verbose);
case "unbirth": return defaultUnbirth(container, macro, verbose); case "unbirth": return defaultUnbirth(container, macro, verbose);
case "cock-vore": return defaultCockVore(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); 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) { function defaultBreastCrush(container, macro, verbose) {
if (isFatal(macro)) if (isFatal(macro))
return "Your heavy breasts obliterate " + container.describe(verbose) + ". "; 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-feed>Eat</button>
<button class=action-button id=button-stomp>Stomp</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-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-grind>Grind</button>
<button class=action-button id=button-breast_crush>Breast Crush</button> <button class=action-button id=button-breast_crush>Breast Crush</button>
<button class=action-button id=button-unbirth>Unbirth</button> <button class=action-button id=button-unbirth>Unbirth</button>
@@ -89,7 +91,7 @@




<div class=option-container id=option-panel> <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> <p><b>This game features 18+ content</b></p>
<a href="https://chemicalcrux.org/stroll">Changelog</a> <a href="https://chemicalcrux.org/stroll">Changelog</a>
<br> <br>
@@ -169,12 +171,38 @@
</div> </div>
</div> </div>
<br> <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> <div>
Male genitals:<br> Male genitals:<br>
<input type="checkbox" checked=true name="maleParts"/><br> <input type="checkbox" checked=true name="maleParts"/><br>
<div class=reveal-if-active> <div class=reveal-if-active>
<li> <li>
<label for="baseDickLength">Cock type</label>
<label for="dickType">Cock type</label>
<input type="text" name="dickType" placeholder="canine"/><br> <input type="text" name="dickType" placeholder="canine"/><br>
</li> </li>
<li> <li>


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