commit
e01551f6c0
174
mods/Lab.js
174
mods/Lab.js
|
|
@ -18,7 +18,7 @@ elements.lab = {
|
|||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:player|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:player|CR:player_2|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
"CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall",
|
||||
|
|
@ -119,8 +119,8 @@ if(enabledMods.includes(libraryMod)) {
|
|||
case 90:
|
||||
sussyKey = "Z";
|
||||
break;
|
||||
case 72:
|
||||
sussyKey = "H";
|
||||
case 86:
|
||||
sussyKey = "V";
|
||||
break;
|
||||
};
|
||||
});
|
||||
|
|
@ -191,7 +191,7 @@ if(enabledMods.includes(libraryMod)) {
|
|||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "H": //Alt+D is something else in some browsers.
|
||||
case "V": //Alt+D is something else in some browsers.
|
||||
if(isAlt) {
|
||||
controllablePixelTryCreatePixelNullCheck(userElement,xx+1,yy);
|
||||
};
|
||||
|
|
@ -221,13 +221,177 @@ if(enabledMods.includes(libraryMod)) {
|
|||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
} else {
|
||||
alert(`The ${libraryMod} mod is required and has been automatically inserted (reload for this to take effect).`)
|
||||
enabledMods.splice(enabledMods.indexOf(modName),0,libraryMod)
|
||||
localStorage.setItem("enabledMods", JSON.stringify(enabledMods));
|
||||
};
|
||||
|
||||
|
||||
var libraryMod = "mods/code_library.js";
|
||||
|
||||
if(enabledMods.includes(libraryMod)) {
|
||||
sussyKey = null;
|
||||
isShift = false;
|
||||
isAlt = false;
|
||||
|
||||
document.addEventListener("keydown", function(modifierDownListener) {
|
||||
// User presses shift
|
||||
if (modifierDownListener.keyCode == 16) {
|
||||
isShift = true;
|
||||
}
|
||||
// User presses alt
|
||||
if (modifierDownListener.keyCode == 18) {
|
||||
isAlt = true;
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("keyup", function(modifierUpListener) {
|
||||
// User releases shift
|
||||
if (modifierUpListener.keyCode == 16) {
|
||||
isShift = false;
|
||||
}
|
||||
// User releases alt
|
||||
if (modifierUpListener.keyCode == 18) {
|
||||
isAlt = false;
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("keyup", function(sussyListener) {
|
||||
switch (sussyListener.keyCode) {
|
||||
case 84:
|
||||
sussyKey = "T";
|
||||
break;
|
||||
case 70:
|
||||
sussyKey = "F";
|
||||
break;
|
||||
case 72:
|
||||
sussyKey = "H";
|
||||
break;
|
||||
case 71:
|
||||
sussyKey = "G";
|
||||
break;
|
||||
case 81:
|
||||
sussyKey = "Q";
|
||||
break;
|
||||
case 88:
|
||||
sussyKey = "X";
|
||||
break;
|
||||
case 90:
|
||||
sussyKey = "Z";
|
||||
break;
|
||||
case 86:
|
||||
sussyKey = "V";
|
||||
break;
|
||||
};
|
||||
});
|
||||
|
||||
function controllablePixelTryCreatePixelNullCheck(element,x,y) {
|
||||
if(!elements[element]) { //catch the null
|
||||
return false;
|
||||
};
|
||||
if(isEmpty(x,y)) {
|
||||
tryCreatePixel(element,x,y);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
elements.player_2 = {
|
||||
color: "#FFFFFF",
|
||||
colorOn: "#FFFF00",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
density: 2000,
|
||||
maxSize: 1,
|
||||
conduct: 1,
|
||||
hardness: 1,
|
||||
tick: function(pixel) {
|
||||
var xx = pixel.x;
|
||||
var yy = pixel.y;
|
||||
userElement = currentElement;
|
||||
if(userElement === pixel.element) {
|
||||
userElement = null;
|
||||
};
|
||||
if(isShift && !isAlt) {
|
||||
sussyKey === "Z" ? pixel.color = "rgb(255,191,127)" : pixel.color = "rgb(255,127,127)";
|
||||
}
|
||||
if(isAlt && !isShift) {
|
||||
sussyKey === "Z" ? pixel.color = "rgb(191,255,127)" : pixel.color = "rgb(127,255,127)";
|
||||
}
|
||||
if(isAlt && isShift) {
|
||||
sussyKey === "Z" ? pixel.color = "rgb(255,255,0)" : pixel.color = "rgb(255,255,127)";
|
||||
}
|
||||
if(!isAlt && !isShift) {
|
||||
sussyKey === "Z" ? pixel.color = "rgb(255,255,191)" : pixel.color = "rgb(255,255,255)";
|
||||
}
|
||||
if(sussyKey !== null) {
|
||||
switch (sussyKey) {
|
||||
case "T":
|
||||
isAlt ? controllablePixelTryCreatePixelNullCheck(userElement,xx,yy-1) : tryMove(pixel,xx,yy-1);
|
||||
if(!isShift) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "F":
|
||||
isAlt ? controllablePixelTryCreatePixelNullCheck(userElement,xx-1,yy) : tryMove(pixel,xx-1,yy);
|
||||
if(!isShift) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "G":
|
||||
isAlt ? controllablePixelTryCreatePixelNullCheck(userElement,xx,yy+1) : tryMove(pixel,xx,yy+1);
|
||||
if(!isShift) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "H":
|
||||
tryMove(pixel,xx+1,yy);
|
||||
if(!isShift) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "V": //Alt+D is something else in some browsers.
|
||||
if(isAlt) {
|
||||
controllablePixelTryCreatePixelNullCheck(userElement,xx+1,yy);
|
||||
};
|
||||
if(!isShift) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "X":
|
||||
explodeAt(xx,yy,5)
|
||||
if(!isShift) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "Z":
|
||||
if (!pixel.charge && !pixel.chargeCD && !isEmpty(pixel.x,pixel.y,true)) {
|
||||
pixel.charge = 1;
|
||||
}
|
||||
if(!isShift === 0) {
|
||||
sussyKey = null;
|
||||
}
|
||||
break;
|
||||
case "Q": //Use if a key gets stuck
|
||||
sussyKey = null;
|
||||
isShift = null;
|
||||
isAlt = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
} else {
|
||||
alert(`The ${libraryMod} mod is required and has been automatically inserted (reload for this to take effect).`)
|
||||
enabledMods.splice(enabledMods.indexOf(modName),0,libraryMod)
|
||||
localStorage.setItem("enabledMods", JSON.stringify(enabledMods));
|
||||
};
|
||||
|
||||
|
||||
|
||||
// i know it looks messy but it works
|
||||
|
||||
// if u dont belive me test it but place it in the center of the canvas
|
||||
|
|
|
|||
Loading…
Reference in New Issue