소스 검색

Added small skyscrapers and some content for them

tags/v0.7.0
Fen Dweller 7 년 전
부모
커밋
0b3e8b83a4
3개의 변경된 파일76개의 추가작업 그리고 33개의 파일을 삭제
  1. +5
    -4
      game.js
  2. +10
    -0
      recursive-desc.js
  3. +61
    -29
      recursive-macro.js

+ 5
- 4
game.js 파일 보기

@@ -39,6 +39,7 @@ function initVictims()
"Tram": 0,
"Motorcycle": 0,
"House": 0,
"Small Skyscraper": 0,
"Train": 0,
"Train Car": 0,
"Parking Garage": 0,
@@ -57,7 +58,7 @@ var bowels = []

function getOnePrey(area)
{
var potential = ["Person", "Car", "Bus", "Tram", "House", "Train", "Parking Garage"];
var potential = ["Person", "Car", "Bus", "Tram", "House", "Train", "Parking Garage", "Small Skyscraper"];

var potAreas = []

@@ -88,7 +89,7 @@ function getPrey(region, area)

function suburbPrey(area)
{
return fill_area2(area, {"Person": 0.5, "House": 0.5, "Car": 0.2, "Tram": 0.1, "Bus": 0.1});
return fill_area2(area, {"Person": 0.5, "House": 0.5, "Car": 0.2, "Tram": 0.1, "Bus": 0.1, "Small Skyscraper": 0.05, "Parking Garage": 0.02, "Train": 0.05});
}

function updateVictims(type,prey)
@@ -143,9 +144,9 @@ function stomp()

function anal_vore()
{
var prey = getOnePrey(scale*scale);
var prey = getOnePrey(0.25*scale*scale);
var crushed = getPrey("suburb",3*scale*scale);
var line1 = prey.anal_vore() + " " + summarize(prey.sum(), false);
var line1 = prey.anal_vore(baseHeight*scale) + " " + summarize(prey.sum(), false);
var line2 = crushed.buttcrush() + " " + summarize(crushed.sum(), false)

var preyMass = prey.sum_property("mass");


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

@@ -74,3 +74,13 @@ function personStomp(person) {

return "";
}

function skyscraperAnalVore(skyscraper,height = 10) {
if (height < 5000) {
return "You ease yourself down over the skyscraper, spreading your ass wide as you take it to the ground - then, with a powerful clench, snap it from its base. " + describe_all(skyscraper.contents) + " are sealed away in your ass.";
} else {
return "You stuff the skyscraper up your ass with ease. Bad luck for " + describe_all(skyscraper.contents) + " inside.";
}

return "";
}

+ 61
- 29
recursive-macro.js 파일 보기

@@ -9,6 +9,7 @@ var things =
"Tram": Tram,
"Motorcycle": Motorcycle,
"House": House,
"Small Skyscraper": SmallSkyscraper,
"Train": Train,
"Train Car": TrainCar,
"Parking Garage": ParkingGarage,
@@ -24,12 +25,29 @@ var areas =
"Tram": 20,
"Motorcycle": 2,
"House": 1000,
"Small Skyscraper": 10000,
"Train": 500,
"TrainCar": 500,
"Parking Garage": 20000,
"Parking Garage": 5000,
"Overpass": 10000,
};

var masses =
{
"Container": 0,
"Person": 80,
"Car": 1000,
"Bus": 5000,
"Tram": 10000,
"Motorcycle": 200,
"House": 10000,
"Small Skyscraper": 100000,
"Train": 5000,
"Train Car": 5000,
"Parking Garage": 100000,
"Overpass": 100000,
};

// general logic: each step fills in a fraction of the remaining space

function fill_area2(area, weights = {"Person": 0.1, "Car": 0.05, "House": 0.1})
@@ -127,21 +145,6 @@ function fill_area(area, weights = {"Person": 0.1})
return new Person();
}

var masses =
{
"Container": 0,
"Person": 80,
"Car": 1000,
"Bus": 5000,
"Tram": 10000,
"Motorcycle": 200,
"House": 10000,
"Train": 5000,
"Train Car": 5000,
"Parking Garage": 100000,
"Overpass": 100000,
};

// describes everything in the container

function describe_all(contents,verbose=true) {
@@ -223,23 +226,23 @@ function distribution(min, max, samples) {
/* default actions */

function defaultStomp(thing) {
return function () { return "You crush " + thing.describe() + " underfoot."};
return function (height=10) { return "You crush " + thing.describe() + " underfoot."};
}

function defaultKick(thing) {
return function() { return "You punt " + thing.describe() + ", destroying " + (thing.count > 1 ? "them" : "it") + "."; }
return function(height=10) { return "You punt " + thing.describe() + ", destroying " + (thing.count > 1 ? "them" : "it") + "."; }
}

function defaultEat(thing) {
return function() { return "You scoop up " + thing.describe() + " and swallow " + (thing.count > 1 ? "them" : "it") + " whole."; }
return function(height=10) { return "You scoop up " + thing.describe() + " and swallow " + (thing.count > 1 ? "them" : "it") + " whole."; }
}

function defaultAnalVore(thing) {
return function() { return "You sit yourself down on " + thing.describe() + ". " + (thing.count > 1 ? "They slide" : "It slides") + " inside with ease."; }
return function(height=10) { return "You sit yourself down on " + thing.describe() + ". " + (thing.count > 1 ? "They slide" : "It slides") + " inside with ease."; }
}

function defaultButtcrush(thing) {
return function() { return "Your heavy ass obliterates " + thing.describe() + ". "; }
return function(height=10) { return "Your heavy ass obliterates " + thing.describe() + ". "; }
}

function defaultArea(thing) {
@@ -649,9 +652,6 @@ function House(count = 1) {
this.count = count;
this.contents = {};




var amount = distribution(0,8,count);
this.contents.person = new Person(amount);
amount = distribution(0,2,count);
@@ -677,14 +677,49 @@ function House(count = 1) {
}
}

function ParkingGarage(count = 1) {
this.name = "Parking Garage";
function SmallSkyscraper(count = 1) {
this.name = "Small Skyscraper";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = {};

var amount = distribution(50,500,1);
this.contents.person = new Person(amount);
amount = distribution(10,50,count);
this.contents.emptycar = new EmptyCar(amount);

this.describeOne = function(verbose=true) {
color = random_desc(["blue","white","gray","tan","green"], (verbose ? 0.5 : 0));
name = random_desc(["skyscraper","office tower","office building"], 1);
return "a " + merge_desc([color,name]);
}

this.describe = function(verbose = true) {
if (this.count <= 3) {
list = [];
for (var i = 0; i < this.count; i++) {
list.push(this.describeOne(this.count < 2));
}
return merge_things(list) + " with " + describe_all(this.contents,false) + " inside";
} else {
return this.count + " small skyscrapers with " + describe_all(this.contents,false) + " inside";
}
}

this.anal_vore = function(height=10) {
var line = skyscraperAnalVore(this,height);
if (line == "")
return defaultAnalVore(this)();
else
return line;
};
}

function ParkingGarage(count = 1) {
this.name = "Parking Garage";
copy_defaults(this,new DefaultEntity());
this.count = count;
this.contents = {};

var amount = distribution(10,200,count);
this.contents.person = new Person(amount);
@@ -716,9 +751,6 @@ function Overpass(count = 1) {
this.count = count;
this.contents = {};




var amount = distribution(0,20,count);
this.contents.person = new Person(amount);
amount = distribution(25,100,count);


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