make changes
This commit is contained in:
parent
c800cf0ad3
commit
39b346d40a
305
mods/mobs.js
305
mods/mobs.js
|
|
@ -1,45 +1,49 @@
|
||||||
//Prerequisite Functions and Variables
|
var modName = "mods/mobs.js";
|
||||||
|
var runAfterAutogenMod = "mods/runAfterAutogen and onload restructure.js";
|
||||||
|
|
||||||
headBodyObject = {
|
if(enabledMods.includes(runAfterAutogenMod)) {
|
||||||
|
//Prerequisite Functions and Variables
|
||||||
|
|
||||||
|
headBodyObject = {
|
||||||
"head": "body",
|
"head": "body",
|
||||||
"creeper_head": "creeper_body",
|
"creeper_head": "creeper_body",
|
||||||
"angelic_creeper_head": "angelic_creeper_body",
|
"angelic_creeper_head": "angelic_creeper_body",
|
||||||
"hell_creeper_head": "hell_creeper_body",
|
"hell_creeper_head": "hell_creeper_body",
|
||||||
"bombing_creeper_head": "bombing_creeper_body",
|
"bombing_creeper_head": "bombing_creeper_body",
|
||||||
"zombie_head": "zombie_body",
|
"zombie_head": "zombie_body",
|
||||||
};
|
};
|
||||||
|
|
||||||
var style = document.createElement('style'); //Initialize CSS for creeper spawning's status indicator
|
var style = document.createElement('style'); //Initialize CSS for creeper spawning's status indicator
|
||||||
style.type = 'text/css';
|
style.type = 'text/css';
|
||||||
style.id = 'creeperStatusStylesheet';
|
style.id = 'creeperStatusStylesheet';
|
||||||
//initial style conditional branch
|
//initial style conditional branch
|
||||||
if(typeof(settings.creeperSpawning) === "undefined") { //undefined (falsy but it needs special handling)
|
if(typeof(settings.creeperSpawning) === "undefined") { //undefined (falsy but it needs special handling)
|
||||||
style.innerHTML = '.creeperStatus { color: #E11; text-decoration: none; }';
|
style.innerHTML = '.creeperStatus { color: #E11; text-decoration: none; }';
|
||||||
} else {
|
} else {
|
||||||
if(!settings.creeperSpawning) { //falsy: red
|
if(!settings.creeperSpawning) { //falsy: red
|
||||||
style.innerHTML = '.creeperStatus { color: #E11; text-decoration: none; }';
|
style.innerHTML = '.creeperStatus { color: #E11; text-decoration: none; }';
|
||||||
} else if(settings.creeperSpawning) { //truthy: green
|
} else if(settings.creeperSpawning) { //truthy: green
|
||||||
style.innerHTML = '.creeperStatus { color: #1E1; text-decoration: none; }';
|
style.innerHTML = '.creeperStatus { color: #1E1; text-decoration: none; }';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
document.getElementsByTagName('head')[0].appendChild(style);
|
document.getElementsByTagName('head')[0].appendChild(style);
|
||||||
|
|
||||||
function pyth(xA,yA,xB,yB) { //Distance function, used for explosion trigger
|
function pyth(xA,yA,xB,yB) { //Distance function, used for explosion trigger
|
||||||
var a = Math.abs(xB - xA);
|
var a = Math.abs(xB - xA);
|
||||||
var b = Math.abs(yB - yA);
|
var b = Math.abs(yB - yA);
|
||||||
var c = Math.sqrt(a**2 + b**2);
|
var c = Math.sqrt(a**2 + b**2);
|
||||||
return c;
|
return c;
|
||||||
};
|
};
|
||||||
|
|
||||||
function rgbColorBound(number) { //RGB bounding function, used for safety checking color changes
|
function rgbColorBound(number) { //RGB bounding function, used for safety checking color changes
|
||||||
return Math.min(255,Math.max(0,number));
|
return Math.min(255,Math.max(0,number));
|
||||||
};
|
};
|
||||||
|
|
||||||
function slBound(number) { //SL bounding function (not hue), same use as above
|
function slBound(number) { //SL bounding function (not hue), same use as above
|
||||||
return Math.min(100,Math.max(0,number));
|
return Math.min(100,Math.max(0,number));
|
||||||
};
|
};
|
||||||
|
|
||||||
function angelicUpwardVelocity(pixel,x,y,radius,fire,smoke,power) { //Angelic Creeper's effect, "compatible" with velocity.js by including the modified version of its code in itself
|
function angelicUpwardVelocity(pixel,x,y,radius,fire,smoke,power) { //Angelic Creeper's effect, "compatible" with velocity.js by including the modified version of its code in itself
|
||||||
var info = elements[pixel.element]
|
var info = elements[pixel.element]
|
||||||
if(enabledMods.includes("mods/velocity.js")) {
|
if(enabledMods.includes("mods/velocity.js")) {
|
||||||
//console.log("yeet");
|
//console.log("yeet");
|
||||||
|
|
@ -57,10 +61,10 @@ function angelicUpwardVelocity(pixel,x,y,radius,fire,smoke,power) { //Angelic Cr
|
||||||
//console.log(`Velocities set`);
|
//console.log(`Velocities set`);
|
||||||
};
|
};
|
||||||
//console.log(`end`);
|
//console.log(`end`);
|
||||||
};
|
};
|
||||||
|
|
||||||
//afterFunction(pixel,x,y,radius,fire,smoke,power,damage);
|
//afterFunction(pixel,x,y,radius,fire,smoke,power,damage);
|
||||||
function hellExplosionFire(pixel,x,y,radius,fire,smoke,power,damage) { //Angelic Creeper's effect, "compatible" with velocity.js by including the modified version of its code in itself
|
function hellExplosionFire(pixel,x,y,radius,fire,smoke,power,damage) { //Angelic Creeper's effect, "compatible" with velocity.js by including the modified version of its code in itself
|
||||||
var coords = circleCoords(pixel.x,pixel.y,radius);
|
var coords = circleCoords(pixel.x,pixel.y,radius);
|
||||||
for (var i = 0; i < coords.length; i++) {
|
for (var i = 0; i < coords.length; i++) {
|
||||||
var x = coords[i].x;
|
var x = coords[i].x;
|
||||||
|
|
@ -89,9 +93,9 @@ function hellExplosionFire(pixel,x,y,radius,fire,smoke,power,damage) { //Angelic
|
||||||
firePixel.burning = true;
|
firePixel.burning = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
function explodeAtPlus(x,y,radius,fire="fire",smoke="smoke",beforeFunction=null,afterFunction=null) { //explodeAt with additional arguments, used to allow implementation of Angelic Creeper's effect
|
function explodeAtPlus(x,y,radius,fire="fire",smoke="smoke",beforeFunction=null,afterFunction=null) { //explodeAt with additional arguments, used to allow implementation of Angelic Creeper's effect
|
||||||
// if fire contains , split it into an array
|
// if fire contains , split it into an array
|
||||||
if (fire.indexOf(",") !== -1) {
|
if (fire.indexOf(",") !== -1) {
|
||||||
fire = fire.split(",");
|
fire = fire.split(",");
|
||||||
|
|
@ -188,13 +192,13 @@ function explodeAtPlus(x,y,radius,fire="fire",smoke="smoke",beforeFunction=null,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if(typeof(settings.creeperSpawning) === "undefined") { //Default creeper setting
|
if(typeof(settings.creeperSpawning) === "undefined") { //Default creeper setting
|
||||||
setSetting("creeperSpawning",false);
|
setSetting("creeperSpawning",false);
|
||||||
};
|
};
|
||||||
|
|
||||||
function updateCreeperPreferences() { //Creeper setting handler
|
function updateCreeperPreferences() { //Creeper setting handler
|
||||||
if(settings.creeperSpawning) { //If the setting is on
|
if(settings.creeperSpawning) { //If the setting is on
|
||||||
if(typeof(randomEvents.creeper) !== "function") { //add the event if it's missing
|
if(typeof(randomEvents.creeper) !== "function") { //add the event if it's missing
|
||||||
randomEvents.creeper = function() {
|
randomEvents.creeper = function() {
|
||||||
|
|
@ -228,9 +232,9 @@ function updateCreeperPreferences() { //Creeper setting handler
|
||||||
} else if(!settings.creeperSpawning) { //and if it's off
|
} else if(!settings.creeperSpawning) { //and if it's off
|
||||||
if(randomEvents.creeper) { delete randomEvents.creeper }; //delete it if it exists.
|
if(randomEvents.creeper) { delete randomEvents.creeper }; //delete it if it exists.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
function toggleCreeperSpawning() { //Creeper toggle handler
|
function toggleCreeperSpawning() { //Creeper toggle handler
|
||||||
if(settings.creeperSpawning != true) { //If it's false
|
if(settings.creeperSpawning != true) { //If it's false
|
||||||
setSetting("creeperSpawning",true); //make it true and update the status display CSS
|
setSetting("creeperSpawning",true); //make it true and update the status display CSS
|
||||||
updateCreeperPreferences(); //apply
|
updateCreeperPreferences(); //apply
|
||||||
|
|
@ -240,13 +244,13 @@ function toggleCreeperSpawning() { //Creeper toggle handler
|
||||||
updateCreeperPreferences();
|
updateCreeperPreferences();
|
||||||
document.getElementById("creeperStatusStylesheet").innerHTML = '.creeperStatus { color: #E11; text-decoration: none; }';
|
document.getElementById("creeperStatusStylesheet").innerHTML = '.creeperStatus { color: #E11; text-decoration: none; }';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
enemyHumanoidArray = ["head","body"] //just in case
|
enemyHumanoidArray = ["head","body"] //just in case
|
||||||
|
|
||||||
spawnCreepers = ["creeper","angelic_creeper","bombing_creeper","hell_creeper"];
|
spawnCreepers = ["creeper","angelic_creeper","bombing_creeper","hell_creeper"];
|
||||||
|
|
||||||
if(settings.creeperSpawning) { //creeper spawning option
|
if(settings.creeperSpawning) { //creeper spawning option
|
||||||
randomEvents.creeper = function() {
|
randomEvents.creeper = function() {
|
||||||
var amount = Math.floor((Math.random() * 3)+1); //1-3
|
var amount = Math.floor((Math.random() * 3)+1); //1-3
|
||||||
for(i = 0; i < amount; i++) { //dummy for to break
|
for(i = 0; i < amount; i++) { //dummy for to break
|
||||||
|
|
@ -273,9 +277,9 @@ if(settings.creeperSpawning) { //creeper spawning option
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
standaloneSpawnCreeper = function(amount=1) {
|
standaloneSpawnCreeper = function(amount=1) {
|
||||||
/* The amount is the maximum amount of *attempts*. Often, less creepers will spawn due to things in the way.
|
/* The amount is the maximum amount of *attempts*. Often, less creepers will spawn due to things in the way.
|
||||||
In a generated world, which uses half of the space, you can expect about half of this number to spawn. */
|
In a generated world, which uses half of the space, you can expect about half of this number to spawn. */
|
||||||
for(i = 0; i < amount; i++) { //dummy for to break
|
for(i = 0; i < amount; i++) { //dummy for to break
|
||||||
|
|
@ -293,16 +297,16 @@ standaloneSpawnCreeper = function(amount=1) {
|
||||||
createPixel(element,x,y);
|
createPixel(element,x,y);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
//Prerequisite Functions and Variables
|
//Prerequisite Functions and Variables
|
||||||
|
|
||||||
function getKeyByValue(object, value) {
|
function getKeyByValue(object, value) {
|
||||||
return Object.keys(object).find(key => object[key] === value);
|
return Object.keys(object).find(key => object[key] === value);
|
||||||
}
|
}
|
||||||
//getKeyByValue code by UncleLaz on StackOverflow: https://stackoverflow.com/questions/9907419/how-to-get-a-key-in-a-javascript-object-by-its-value"
|
//getKeyByValue code by UncleLaz on StackOverflow: https://stackoverflow.com/questions/9907419/how-to-get-a-key-in-a-javascript-object-by-its-value"
|
||||||
|
|
||||||
function headHasBody(pixel) {
|
function headHasBody(pixel) {
|
||||||
var pX = pixel.x;
|
var pX = pixel.x;
|
||||||
var pY = pixel.y;
|
var pY = pixel.y;
|
||||||
//console.log("Checking head for body");
|
//console.log("Checking head for body");
|
||||||
|
|
@ -320,9 +324,9 @@ function headHasBody(pixel) {
|
||||||
//console.log("The head does not have corresponding body element.");
|
//console.log("The head does not have corresponding body element.");
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
function bodyHasHead(pixel) {
|
function bodyHasHead(pixel) {
|
||||||
var pX = pixel.x;
|
var pX = pixel.x;
|
||||||
var pY = pixel.y;
|
var pY = pixel.y;
|
||||||
//console.log("Checking body for head");
|
//console.log("Checking body for head");
|
||||||
|
|
@ -340,9 +344,9 @@ function bodyHasHead(pixel) {
|
||||||
//console.log("The body does not have corresponding head element.");
|
//console.log("The body does not have corresponding head element.");
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
function zombifyHuman(pixel) {
|
function zombifyHuman(pixel) {
|
||||||
var pX = pixel.x;
|
var pX = pixel.x;
|
||||||
var pY = pixel.y;
|
var pY = pixel.y;
|
||||||
if(!["head","body"].includes(pixel.element)) {
|
if(!["head","body"].includes(pixel.element)) {
|
||||||
|
|
@ -371,9 +375,9 @@ function zombifyHuman(pixel) {
|
||||||
//console.log("Body turned (body path)");
|
//console.log("Body turned (body path)");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
function dezombifyHuman(pixel) {
|
function dezombifyHuman(pixel) {
|
||||||
var pX = pixel.x;
|
var pX = pixel.x;
|
||||||
var pY = pixel.y;
|
var pY = pixel.y;
|
||||||
if(!["zombie_head","zombie_body"].includes(pixel.element)) {
|
if(!["zombie_head","zombie_body"].includes(pixel.element)) {
|
||||||
|
|
@ -393,9 +397,9 @@ function dezombifyHuman(pixel) {
|
||||||
changePixel(pixel,"body");
|
changePixel(pixel,"body");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.frozen_rotten_meat = {
|
elements.frozen_rotten_meat = {
|
||||||
color: ["#8FB588", "#8FA888"],
|
color: ["#8FB588", "#8FA888"],
|
||||||
behavior: [
|
behavior: [
|
||||||
"XX|CR:plague,stench,stench%0.125 AND CH:meat>rotten_meat%1 AND CH:frozen_meat>frozen_rotten_meat%0.85|XX",
|
"XX|CR:plague,stench,stench%0.125 AND CH:meat>rotten_meat%1 AND CH:frozen_meat>frozen_rotten_meat%0.85|XX",
|
||||||
|
|
@ -409,12 +413,12 @@ elements.frozen_rotten_meat = {
|
||||||
hidden:true,
|
hidden:true,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
density: 1037.5,
|
density: 1037.5,
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.rotten_meat.tempLow = -18;
|
elements.rotten_meat.tempLow = -18;
|
||||||
elements.rotten_meat.stateLow = "frozen_rotten_meat";
|
elements.rotten_meat.stateLow = "frozen_rotten_meat";
|
||||||
|
|
||||||
elements.zombie_blood = {
|
elements.zombie_blood = {
|
||||||
color: ["#d18228", "#9a9e2f"],
|
color: ["#d18228", "#9a9e2f"],
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
reactions: {
|
reactions: {
|
||||||
|
|
@ -462,28 +466,28 @@ elements.zombie_blood = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
var style = document.createElement('style'); //Initialize CSS for zombie spawning's status indicator
|
var style = document.createElement('style'); //Initialize CSS for zombie spawning's status indicator
|
||||||
style.type = 'text/css';
|
style.type = 'text/css';
|
||||||
style.id = 'zombieStatusStylesheet';
|
style.id = 'zombieStatusStylesheet';
|
||||||
//initial style conditional branch
|
//initial style conditional branch
|
||||||
if(typeof(settings.zombieSpawning) === "undefined") { //undefined (falsy but it needs special handling)
|
if(typeof(settings.zombieSpawning) === "undefined") { //undefined (falsy but it needs special handling)
|
||||||
style.innerHTML = '.zombieStatus { color: #E11; text-decoration: none; }';
|
style.innerHTML = '.zombieStatus { color: #E11; text-decoration: none; }';
|
||||||
} else {
|
} else {
|
||||||
if(!settings.zombieSpawning) { //falsy: red
|
if(!settings.zombieSpawning) { //falsy: red
|
||||||
style.innerHTML = '.zombieStatus { color: #E11; text-decoration: none; }';
|
style.innerHTML = '.zombieStatus { color: #E11; text-decoration: none; }';
|
||||||
} else if(settings.zombieSpawning) { //truthy: green
|
} else if(settings.zombieSpawning) { //truthy: green
|
||||||
style.innerHTML = '.zombieStatus { color: #1E1; text-decoration: none; }';
|
style.innerHTML = '.zombieStatus { color: #1E1; text-decoration: none; }';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
document.getElementsByTagName('head')[0].appendChild(style);
|
document.getElementsByTagName('head')[0].appendChild(style);
|
||||||
|
|
||||||
if(typeof(settings.zombieSpawning) === "undefined") { //Default zombie setting
|
if(typeof(settings.zombieSpawning) === "undefined") { //Default zombie setting
|
||||||
setSetting("zombieSpawning",false);
|
setSetting("zombieSpawning",false);
|
||||||
};
|
};
|
||||||
|
|
||||||
function updateZombiePreferences() { //Zombie setting handler
|
function updateZombiePreferences() { //Zombie setting handler
|
||||||
if(settings.zombieSpawning) { //If the setting is on
|
if(settings.zombieSpawning) { //If the setting is on
|
||||||
if(typeof(randomEvents.zombie) !== "function") { //add the event if it's missing
|
if(typeof(randomEvents.zombie) !== "function") { //add the event if it's missing
|
||||||
randomEvents.zombie = function() {
|
randomEvents.zombie = function() {
|
||||||
|
|
@ -517,9 +521,9 @@ function updateZombiePreferences() { //Zombie setting handler
|
||||||
} else if(!settings.zombieSpawning) { //and if it's off
|
} else if(!settings.zombieSpawning) { //and if it's off
|
||||||
if(randomEvents.zombie) { delete randomEvents.zombie }; //delete it if it exists.
|
if(randomEvents.zombie) { delete randomEvents.zombie }; //delete it if it exists.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
function toggleZombieSpawning() { //Zombie toggle handler
|
function toggleZombieSpawning() { //Zombie toggle handler
|
||||||
if(settings.zombieSpawning != true) { //If it's false
|
if(settings.zombieSpawning != true) { //If it's false
|
||||||
setSetting("zombieSpawning",true); //make it true and update the status display CSS
|
setSetting("zombieSpawning",true); //make it true and update the status display CSS
|
||||||
updateZombiePreferences(); //apply
|
updateZombiePreferences(); //apply
|
||||||
|
|
@ -529,11 +533,11 @@ function toggleZombieSpawning() { //Zombie toggle handler
|
||||||
updateZombiePreferences();
|
updateZombiePreferences();
|
||||||
document.getElementById("zombieStatusStylesheet").innerHTML = '.zombieStatus { color: #E11; text-decoration: none; }';
|
document.getElementById("zombieStatusStylesheet").innerHTML = '.zombieStatus { color: #E11; text-decoration: none; }';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
spawnZombies = ["zombie","baby_zombie"];
|
spawnZombies = ["zombie","baby_zombie"];
|
||||||
|
|
||||||
if(settings.zombieSpawning) { //zombie spawning option
|
if(settings.zombieSpawning) { //zombie spawning option
|
||||||
randomEvents.zombie = function() {
|
randomEvents.zombie = function() {
|
||||||
var amount = Math.floor((Math.random() * 3)+1); //1-3
|
var amount = Math.floor((Math.random() * 3)+1); //1-3
|
||||||
for(i = 0; i < amount; i++) { //dummy for to break
|
for(i = 0; i < amount; i++) { //dummy for to break
|
||||||
|
|
@ -560,9 +564,9 @@ if(settings.zombieSpawning) { //zombie spawning option
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
standaloneSpawnZombie = function(amount=1) {
|
standaloneSpawnZombie = function(amount=1) {
|
||||||
/* The amount is the maximum amount of *attempts*. Often, less zombies will spawn due to things in the way.
|
/* The amount is the maximum amount of *attempts*. Often, less zombies will spawn due to things in the way.
|
||||||
In a generated world, which uses half of the space, you can expect about half of this number to spawn. */
|
In a generated world, which uses half of the space, you can expect about half of this number to spawn. */
|
||||||
for(i = 0; i < amount; i++) { //dummy for to break
|
for(i = 0; i < amount; i++) { //dummy for to break
|
||||||
|
|
@ -580,9 +584,9 @@ standaloneSpawnZombie = function(amount=1) {
|
||||||
createPixel(element,x,y);
|
createPixel(element,x,y);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/*Start Main Zombie
|
/*Start Main Zombie
|
||||||
..................
|
..................
|
||||||
.........###......
|
.........###......
|
||||||
.......#######....
|
.......#######....
|
||||||
|
|
@ -597,9 +601,9 @@ standaloneSpawnZombie = function(amount=1) {
|
||||||
.......##...##....
|
.......##...##....
|
||||||
.......##...##....
|
.......##...##....
|
||||||
..................
|
..................
|
||||||
*/
|
*/
|
||||||
|
|
||||||
elements.zombie = {
|
elements.zombie = {
|
||||||
color: ["#567C44","#199A9A","#41369B"],
|
color: ["#567C44","#199A9A","#41369B"],
|
||||||
category: "life",
|
category: "life",
|
||||||
properties: {
|
properties: {
|
||||||
|
|
@ -626,9 +630,9 @@ elements.zombie = {
|
||||||
},
|
},
|
||||||
related: ["zombie_body","zombie_head"],
|
related: ["zombie_body","zombie_head"],
|
||||||
desc: "<em>I'd rather this be toggleable mid-game than require a reload.</em><br/><br/><span class=\"zombieStatus\">If this text is green or underlined, zombies (all types) can spawn.</span> <span onclick=toggleZombieSpawning() style=\"color: #ff00ff;\";>Click here</span> to toggle zombie spawning. If it's on, zombies can spawn through random events."
|
desc: "<em>I'd rather this be toggleable mid-game than require a reload.</em><br/><br/><span class=\"zombieStatus\">If this text is green or underlined, zombies (all types) can spawn.</span> <span onclick=toggleZombieSpawning() style=\"color: #ff00ff;\";>Click here</span> to toggle zombie spawning. If it's on, zombies can spawn through random events."
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.zombie_body = {
|
elements.zombie_body = {
|
||||||
color: "#27719D",
|
color: "#27719D",
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -729,9 +733,9 @@ elements.zombie_body = {
|
||||||
};*/
|
};*/
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.zombie_head = {
|
elements.zombie_head = {
|
||||||
color: "#567C44",
|
color: "#567C44",
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -920,11 +924,11 @@ elements.zombie_head = {
|
||||||
//console.log("Meh.");
|
//console.log("Meh.");
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
//Baby Zombie
|
//Baby Zombie
|
||||||
|
|
||||||
elements.baby_zombie = {
|
elements.baby_zombie = {
|
||||||
color: "#199A9A",
|
color: "#199A9A",
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -1107,9 +1111,9 @@ elements.baby_zombie = {
|
||||||
},
|
},
|
||||||
related: ["zombie"],
|
related: ["zombie"],
|
||||||
desc: "Baby zombies: smaller, faster, and more annoying.",
|
desc: "Baby zombies: smaller, faster, and more annoying.",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*Start Main Creeper
|
/*Start Main Creeper
|
||||||
##################
|
##################
|
||||||
######### ######
|
######### ######
|
||||||
####### ####
|
####### ####
|
||||||
|
|
@ -1124,9 +1128,9 @@ elements.baby_zombie = {
|
||||||
####### ### ####
|
####### ### ####
|
||||||
####### ### ####
|
####### ### ####
|
||||||
##################
|
##################
|
||||||
*/
|
*/
|
||||||
|
|
||||||
elements.creeper = {
|
elements.creeper = {
|
||||||
color: ["#D2D2D2", "#BFDFB9", "#94CE89", "#78D965", "#5ED54C", "#58C546", "#50B143", "#479143", "#559552", "#3F8738", "#5B8B59"],
|
color: ["#D2D2D2", "#BFDFB9", "#94CE89", "#78D965", "#5ED54C", "#58C546", "#50B143", "#479143", "#559552", "#3F8738", "#5B8B59"],
|
||||||
category: "life",
|
category: "life",
|
||||||
properties: {
|
properties: {
|
||||||
|
|
@ -1153,9 +1157,9 @@ elements.creeper = {
|
||||||
},
|
},
|
||||||
related: ["creeper_body","creeper_head"],
|
related: ["creeper_body","creeper_head"],
|
||||||
desc: "<em>I'd rather this be toggleable mid-game than require a reload.</em><br/><br/><span class=\"creeperStatus\">If this text is green or underlined, creepers can spawn.</span> <span onclick=toggleCreeperSpawning() style=\"color: #ff00ff;\";>Click here</span> to toggle creeper spawning. If it's on, creepers (all types) can spawn through random events."
|
desc: "<em>I'd rather this be toggleable mid-game than require a reload.</em><br/><br/><span class=\"creeperStatus\">If this text is green or underlined, creepers can spawn.</span> <span onclick=toggleCreeperSpawning() style=\"color: #ff00ff;\";>Click here</span> to toggle creeper spawning. If it's on, creepers (all types) can spawn through random events."
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.creeper_body = {
|
elements.creeper_body = {
|
||||||
color: ["#D2D2D2", "#BFDFB9", "#94CE89", "#78D965", "#5ED54C", "#58C546", "#50B143", "#479143", "#559552", "#3F8738", "#5B8B59"],
|
color: ["#D2D2D2", "#BFDFB9", "#94CE89", "#78D965", "#5ED54C", "#58C546", "#50B143", "#479143", "#559552", "#3F8738", "#5B8B59"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -1378,9 +1382,9 @@ elements.creeper_body = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.creeper_head = {
|
elements.creeper_head = {
|
||||||
color: ["#5B8B59", "#3F8738", "#559552", "#479143", "#50B143", "#58C546"],
|
color: ["#5B8B59", "#3F8738", "#559552", "#479143", "#50B143", "#58C546"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -1534,7 +1538,7 @@ elements.creeper_head = {
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
if(isEmpty(nX,nY)) {
|
if(isEmpty(nX,nY)) {
|
||||||
////console.log(`Skipping pixel (${nX},${nY}) (empty)`)
|
//console.log(`Skipping pixel (${nX},${nY}) (empty)`)
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
if(!isEmpty(nX,nY,true)) {
|
if(!isEmpty(nX,nY,true)) {
|
||||||
|
|
@ -1573,7 +1577,7 @@ elements.creeper_head = {
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
if(isEmpty(nX,nY)) {
|
if(isEmpty(nX,nY)) {
|
||||||
////console.log(`Skipping pixel (${nX},${nY}) (empty)`)
|
//console.log(`Skipping pixel (${nX},${nY}) (empty)`)
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
if(!isEmpty(nX,nY,true)) {
|
if(!isEmpty(nX,nY,true)) {
|
||||||
|
|
@ -1657,9 +1661,9 @@ elements.creeper_head = {
|
||||||
//console.log("Meh.");
|
//console.log("Meh.");
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/*End Main Creeper
|
/*End Main Creeper
|
||||||
##################
|
##################
|
||||||
##################
|
##################
|
||||||
##################
|
##################
|
||||||
|
|
@ -1674,11 +1678,11 @@ elements.creeper_head = {
|
||||||
####### ### ####
|
####### ### ####
|
||||||
####### ### ####
|
####### ### ####
|
||||||
##################
|
##################
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//Angelic Creeper
|
//Angelic Creeper
|
||||||
|
|
||||||
elements.angelic_creeper = { //let's get this one out of the way first
|
elements.angelic_creeper = { //let's get this one out of the way first
|
||||||
color: ["#f5ef56", "#fcbddf", "#de8aa8", "#e35d95", "#eb4974", "#ed3ea7", "#d645a3", "#a84556", "#9e4f6c", "#91315b", "#8c4963"],
|
color: ["#f5ef56", "#fcbddf", "#de8aa8", "#e35d95", "#eb4974", "#ed3ea7", "#d645a3", "#a84556", "#9e4f6c", "#91315b", "#8c4963"],
|
||||||
category: "life",
|
category: "life",
|
||||||
properties: {
|
properties: {
|
||||||
|
|
@ -1705,9 +1709,9 @@ elements.angelic_creeper = { //let's get this one out of the way first
|
||||||
},
|
},
|
||||||
related: ["angelic_creeper_body","angelic_creeper_head"],
|
related: ["angelic_creeper_body","angelic_creeper_head"],
|
||||||
desc: 'A creeper type from <em>Extra Creeper Types</em> <a href="https://www.curseforge.com/minecraft/mc-mods/extra-creeper-types">(CF)</a>. It sends things upward.'
|
desc: 'A creeper type from <em>Extra Creeper Types</em> <a href="https://www.curseforge.com/minecraft/mc-mods/extra-creeper-types">(CF)</a>. It sends things upward.'
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.angelic_creeper_body = {
|
elements.angelic_creeper_body = {
|
||||||
color: ["#d2d2d2", "#fcbddf", "#de8aa8", "#e35d95", "#eb4974", "#ed3ea7", "#d645a3", "#a84556", "#9e4f6c", "#91315b", "#8c4963"],
|
color: ["#d2d2d2", "#fcbddf", "#de8aa8", "#e35d95", "#eb4974", "#ed3ea7", "#d645a3", "#a84556", "#9e4f6c", "#91315b", "#8c4963"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -1949,8 +1953,8 @@ elements.angelic_creeper_body = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
elements.angelic_creeper_head = {
|
elements.angelic_creeper_head = {
|
||||||
color: ["#f5ef56", "#f0ea4f", "#f0ea60"],
|
color: ["#f5ef56", "#f0ea4f", "#f0ea60"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -2227,11 +2231,11 @@ elements.angelic_creeper_head = {
|
||||||
//console.log("Meh.");
|
//console.log("Meh.");
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
//Bombing Creeper
|
//Bombing Creeper
|
||||||
|
|
||||||
elements.bombing_creeper = {
|
elements.bombing_creeper = {
|
||||||
color: ["#5b8b59", "#3f8738", "#559552", "#479143", "#50b143", "#58c546", "#e83c3c", "#c92a2a", "#f53d3d", "#ad3131"],
|
color: ["#5b8b59", "#3f8738", "#559552", "#479143", "#50b143", "#58c546", "#e83c3c", "#c92a2a", "#f53d3d", "#ad3131"],
|
||||||
category: "life",
|
category: "life",
|
||||||
properties: {
|
properties: {
|
||||||
|
|
@ -2258,9 +2262,9 @@ elements.bombing_creeper = {
|
||||||
},
|
},
|
||||||
related: ["bombing_creeper_body","bombing_creeper_head"],
|
related: ["bombing_creeper_body","bombing_creeper_head"],
|
||||||
desc: 'A creeper type from <em>Extra Creeper Types</em> <a href="https://www.curseforge.com/minecraft/mc-mods/extra-creeper-types">(CF)</a>. It spawns more explosives when it explodes.'
|
desc: 'A creeper type from <em>Extra Creeper Types</em> <a href="https://www.curseforge.com/minecraft/mc-mods/extra-creeper-types">(CF)</a>. It spawns more explosives when it explodes.'
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.bombing_creeper_body = {
|
elements.bombing_creeper_body = {
|
||||||
color: ["#e83c3c", "#c92a2a", "#f53d3d", "#ad3131"],
|
color: ["#e83c3c", "#c92a2a", "#f53d3d", "#ad3131"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -2484,9 +2488,9 @@ elements.bombing_creeper_body = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.bombing_creeper_head = {
|
elements.bombing_creeper_head = {
|
||||||
color: ["#5B8B59", "#3F8738", "#559552", "#479143", "#50B143", "#58C546"],
|
color: ["#5B8B59", "#3F8738", "#559552", "#479143", "#50B143", "#58C546"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -2763,11 +2767,11 @@ elements.bombing_creeper_head = {
|
||||||
//console.log("Meh.");
|
//console.log("Meh.");
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
//Hell Creeper
|
//Hell Creeper
|
||||||
|
|
||||||
elements.hell_creeper = {
|
elements.hell_creeper = {
|
||||||
color: ["#D2D2D2", "#ff141e", "#fc3232", "#DFAFAF", "#e84a4a", "#ce7979", "#d95555", "#d53c3c", "#c53636", "#b13333", "#913535", "#954242", "#872828", "#8b4949", "#2b0304"],
|
color: ["#D2D2D2", "#ff141e", "#fc3232", "#DFAFAF", "#e84a4a", "#ce7979", "#d95555", "#d53c3c", "#c53636", "#b13333", "#913535", "#954242", "#872828", "#8b4949", "#2b0304"],
|
||||||
category: "life",
|
category: "life",
|
||||||
properties: {
|
properties: {
|
||||||
|
|
@ -2794,9 +2798,9 @@ elements.hell_creeper = {
|
||||||
},
|
},
|
||||||
related: ["hell_creeper_body","hell_creeper_head"],
|
related: ["hell_creeper_body","hell_creeper_head"],
|
||||||
desc: 'A creeper type from <em>Extra Creeper Types</em> <a href="https://www.curseforge.com/minecraft/mc-mods/extra-creeper-types">(CF)</a>. It has a small explosion radius, but spawns a lot of fire around its explosion.'
|
desc: 'A creeper type from <em>Extra Creeper Types</em> <a href="https://www.curseforge.com/minecraft/mc-mods/extra-creeper-types">(CF)</a>. It has a small explosion radius, but spawns a lot of fire around its explosion.'
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.hell_creeper_body = {
|
elements.hell_creeper_body = {
|
||||||
color: ["#D2D2D2", "#ff141e", "#fc3232", "#DFAFAF", "#e84a4a", "#ce7979", "#d95555", "#d53c3c", "#c53636", "#b13333", "#913535", "#954242", "#872828", "#8b4949", "#2b0304"],
|
color: ["#D2D2D2", "#ff141e", "#fc3232", "#DFAFAF", "#e84a4a", "#ce7979", "#d95555", "#d53c3c", "#c53636", "#b13333", "#913535", "#954242", "#872828", "#8b4949", "#2b0304"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -3014,9 +3018,9 @@ elements.hell_creeper_body = {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.hell_creeper_head = {
|
elements.hell_creeper_head = {
|
||||||
color: ["#D2D2D2", "#ff141e", "#fc3232", "#e84a4a", "#b13333", "#913535", "#954242", "#872828", "#8b4949", "#2b0304", "#111111", "#faae3c", "#f5e131"],
|
color: ["#D2D2D2", "#ff141e", "#fc3232", "#e84a4a", "#b13333", "#913535", "#954242", "#872828", "#8b4949", "#2b0304", "#111111", "#faae3c", "#f5e131"],
|
||||||
category: "life",
|
category: "life",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
|
@ -3290,41 +3294,41 @@ elements.hell_creeper_head = {
|
||||||
//console.log("Meh.");
|
//console.log("Meh.");
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Creeper generation
|
/* Creeper generation
|
||||||
___#___#___#___#___#___#___#___#___#___
|
___#___#___#___#___#___#___#___#___#___
|
||||||
__#___#___#___#___#___#___#___#___#___#
|
__#___#___#___#___#___#___#___#___#___#
|
||||||
_#___#___#___#___#___#___#___#___#___#_
|
_#___#___#___#___#___#___#___#___#___#_
|
||||||
#___#___#___#___#___#___#___#___#___#__
|
#___#___#___#___#___#___#___#___#___#__
|
||||||
___#___#___#___#___#___#___#___#___#___
|
___#___#___#___#___#___#___#___#___#___
|
||||||
__#___#___#___#___#___#___#___#___#___#
|
__#___#___#___#___#___#___#___#___#___#
|
||||||
_#___#___#___#___#___#___#___#___#___#_
|
_#___#___#___#___#___#___#___#___#___#_
|
||||||
#___#___#___#___#___#___#___#___#___#__
|
#___#___#___#___#___#___#___#___#___#__
|
||||||
___#___#___#___#___#___#___#___#___#___
|
___#___#___#___#___#___#___#___#___#___
|
||||||
__#___#___#___#___#___#___#___#___#___#
|
__#___#___#___#___#___#___#___#___#___#
|
||||||
_#___#___#___#___#___#___#___#___#___#_
|
_#___#___#___#___#___#___#___#___#___#_
|
||||||
#___#___#___#___#___#___#___#___#___#__
|
#___#___#___#___#___#___#___#___#___#__
|
||||||
___#___#___#___#___#___#___#___#___#___
|
___#___#___#___#___#___#___#___#___#___
|
||||||
__#___#___#___#___#___#___#___#___#___#
|
__#___#___#___#___#___#___#___#___#___#
|
||||||
_#___#___#___#___#___#___#___#___#___#_
|
_#___#___#___#___#___#___#___#___#___#_
|
||||||
#___#___#___#___#___#___#___#___#___#__
|
#___#___#___#___#___#___#___#___#___#__
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//This code is a lot worse than I'd have liked it to be...
|
//This code is a lot worse than I'd have liked it to be...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
urlParams = new URLSearchParams(window.location.search);
|
urlParams = new URLSearchParams(window.location.search);
|
||||||
|
|
||||||
//Include generated creepers in Random tool?
|
//Include generated creepers in Random tool?
|
||||||
if(urlParams.get('creeperIncludeRandom') !== null) { //if the variable exists at all
|
if(urlParams.get('creeperIncludeRandom') !== null) { //if the variable exists at all
|
||||||
creeperIncludeRandom = true
|
creeperIncludeRandom = true
|
||||||
} else { //if it doesn't (and it returns null)
|
} else { //if it doesn't (and it returns null)
|
||||||
creeperIncludeRandom = false
|
creeperIncludeRandom = false
|
||||||
}
|
}
|
||||||
|
|
||||||
//Start Creeper Template Functions {
|
//Start Creeper Template Functions {
|
||||||
|
|
||||||
autoCreeperPlacerTick = function(pixel) {
|
autoCreeperPlacerTick = function(pixel) {
|
||||||
var creeperElement = elements[pixel.element].creeperType;
|
var creeperElement = elements[pixel.element].creeperType;
|
||||||
|
|
@ -3842,9 +3846,9 @@ if(urlParams.get('creeperIncludeRandom') !== null) { //if the variable exists at
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
//End Creeper Template Functions }
|
//End Creeper Template Functions }
|
||||||
|
|
||||||
//Start Color Functions and Variables {
|
//Start Color Functions and Variables {
|
||||||
function sumArray(array) { //Sum of array numbers
|
function sumArray(array) { //Sum of array numbers
|
||||||
return array.reduce((partialSum, a) => partialSum + a, 0);
|
return array.reduce((partialSum, a) => partialSum + a, 0);
|
||||||
};
|
};
|
||||||
|
|
@ -3988,7 +3992,7 @@ if(urlParams.get('creeperIncludeRandom') !== null) { //if the variable exists at
|
||||||
//var placeholderColor = "#FF00FF";
|
//var placeholderColor = "#FF00FF";
|
||||||
|
|
||||||
var hslOffsets = [[0, -5, 5], [0, -20, 10], [0, 0, 10], [0, -20, 10], [0, -35, 0], [0, -20, -30], [0, 10, -10], [0, 10, 20], [0, -20, 10], [0, -10, 5]];
|
var hslOffsets = [[0, -5, 5], [0, -20, 10], [0, 0, 10], [0, -20, 10], [0, -35, 0], [0, -20, -30], [0, 10, -10], [0, 10, 20], [0, -20, 10], [0, -10, 5]];
|
||||||
//End Color Functions and Variables }
|
//End Color Functions and Variables }
|
||||||
|
|
||||||
var colorOfRandomCreeper = ["#7ba883", "#8aba8a", "#87b292", "#8aba8a", "#71a171", "#346434", "#4d6d72", "#a0caad", "#8aba8a", "#7dac7f"]
|
var colorOfRandomCreeper = ["#7ba883", "#8aba8a", "#87b292", "#8aba8a", "#71a171", "#346434", "#4d6d72", "#a0caad", "#8aba8a", "#7dac7f"]
|
||||||
//random_creeper's final color but all values of the sixth one increased by 16 decimal and then everything's R and B -= 48 decimal
|
//random_creeper's final color but all values of the sixth one increased by 16 decimal and then everything's R and B -= 48 decimal
|
||||||
|
|
@ -4003,7 +4007,7 @@ if(urlParams.get('creeperIncludeRandom') !== null) { //if the variable exists at
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
runAfterLoad(function() {
|
runAfterAutogen(function() {
|
||||||
creeperElements = Object.keys(elements);
|
creeperElements = Object.keys(elements);
|
||||||
creeperElements.push(["rock","sand"]);
|
creeperElements.push(["rock","sand"]);
|
||||||
//creeperElements = ["water","steel","dirt",["dirt","sand"],"frostwind","antimatter,acid","fire,nonexist"]; //Test array
|
//creeperElements = ["water","steel","dirt",["dirt","sand"],"frostwind","antimatter,acid","fire,nonexist"]; //Test array
|
||||||
|
|
@ -4067,10 +4071,13 @@ runAfterLoad(function() {
|
||||||
};
|
};
|
||||||
var preColor = rgbStringToHSL(startColor);
|
var preColor = rgbStringToHSL(startColor);
|
||||||
var colorsArray = [preColor, preColor, preColor, preColor, preColor, preColor, preColor, preColor, preColor, preColor]
|
var colorsArray = [preColor, preColor, preColor, preColor, preColor, preColor, preColor, preColor, preColor, preColor]
|
||||||
|
var colorObjectArray = [];
|
||||||
for(q = 0; q < hslOffsets.length; q++) {
|
for(q = 0; q < hslOffsets.length; q++) {
|
||||||
colorsArray[q] = addArraysInPairs(colorsArray[q],hslOffsets[q]);
|
colorsArray[q] = addArraysInPairs(colorsArray[q],hslOffsets[q]);
|
||||||
colorsArray[q] = hslToHex((colorsArray[q][0] % 360),slBound(colorsArray[q][1]),slBound(colorsArray[q][2]));
|
colorsArray[q] = hslToHex((colorsArray[q][0] % 360),slBound(colorsArray[q][1]),slBound(colorsArray[q][2]));
|
||||||
|
colorObjectArray[q] = hexToRGB(colorsArray[q]); //hex to RGB
|
||||||
|
var coq = colorObjectArray[q]; //pull the object
|
||||||
|
colorsArray[q] = `rgb(${coq.r},${coq.g},${coq.b})`; //and change to the RGB from its values
|
||||||
};
|
};
|
||||||
|
|
||||||
//End color gen
|
//End color gen
|
||||||
|
|
@ -4081,6 +4088,7 @@ runAfterLoad(function() {
|
||||||
elements[placerName] = {
|
elements[placerName] = {
|
||||||
creeperType: elementOfCreeper,
|
creeperType: elementOfCreeper,
|
||||||
color: colorsArray,
|
color: colorsArray,
|
||||||
|
colorObject: colorObjectArray,
|
||||||
category: "auto creepers",
|
category: "auto creepers",
|
||||||
properties: {
|
properties: {
|
||||||
dead: false,
|
dead: false,
|
||||||
|
|
@ -4098,6 +4106,7 @@ runAfterLoad(function() {
|
||||||
elements[bodyName] = {
|
elements[bodyName] = {
|
||||||
creeperType: elementOfCreeper,
|
creeperType: elementOfCreeper,
|
||||||
color: colorsArray,
|
color: colorsArray,
|
||||||
|
colorObject: colorObjectArray,
|
||||||
category: "auto creepers",
|
category: "auto creepers",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
excludeRandom: true,
|
excludeRandom: true,
|
||||||
|
|
@ -4133,6 +4142,7 @@ runAfterLoad(function() {
|
||||||
elements[headName] = {
|
elements[headName] = {
|
||||||
creeperType: elementOfCreeper,
|
creeperType: elementOfCreeper,
|
||||||
color: colorsArray,
|
color: colorsArray,
|
||||||
|
colorObject: colorObjectArray,
|
||||||
category: "auto creepers",
|
category: "auto creepers",
|
||||||
hidden: true,
|
hidden: true,
|
||||||
excludeRandom: true,
|
excludeRandom: true,
|
||||||
|
|
@ -4178,11 +4188,11 @@ runAfterLoad(function() {
|
||||||
|
|
||||||
headBodyObject[headName] = bodyName;
|
headBodyObject[headName] = bodyName;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
//Standalone generator function
|
//Standalone generator function
|
||||||
|
|
||||||
function generateCreeper(creeperElements,isAfterScriptLoading=false) {//it can be a single element, though
|
function generateCreeper(creeperElements,isAfterScriptLoading=false) {//it can be a single element, though
|
||||||
//To specify an array creeper, have the array be inside another array.
|
//To specify an array creeper, have the array be inside another array.
|
||||||
/*For reasons related to how element colors are loaded, if this function is being run from a JS mod file, isAfterScriptLoading should be false.
|
/*For reasons related to how element colors are loaded, if this function is being run from a JS mod file, isAfterScriptLoading should be false.
|
||||||
Otherwise, you'll get TypeErrors for some reason when trying to place your creeper. If this is being run after the game has loaded (e.g. in the console),
|
Otherwise, you'll get TypeErrors for some reason when trying to place your creeper. If this is being run after the game has loaded (e.g. in the console),
|
||||||
|
|
@ -4375,4 +4385,9 @@ function generateCreeper(creeperElements,isAfterScriptLoading=false) {//it can b
|
||||||
//console.log("nyetted " + placerName);
|
//console.log("nyetted " + placerName);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
alert(`The ${runAfterAutogenMod} mod is required and has been automatically inserted (reload for this to take effect).`)
|
||||||
|
enabledMods.splice(enabledMods.indexOf(modName),0,runAfterAutogenMod)
|
||||||
|
localStorage.setItem("enabledMods", JSON.stringify(enabledMods));
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue