Antheia/index.html

556 lines
23 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Antheia</title>
<link rel='icon' type="image/x-icon" href='https://raw.githubusercontent.com/squiresgrant/Antheia/main/icon.ico'></link>
<style>
.flower{
transform:scale(0.7);
color:#ff6699;
}
</style>
</head>
<body>
<script>
//set background to dark grey
var BgColor = '#dddddd';
document.body.style.backgroundColor = BgColor;
let ranks = {
1:"poor",
100:"painter",
500:"carpet weaver",
1000:"graffiti artist",
5000:"caricature artist",
10000:"ascii artist"
}
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function allowDrop(ev) {
ev.preventDefault();
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
function getRank(){
bank = getCookie('bank')
for(let k in ranks){
//console.log(k)
//console.log(bank)
if(parseInt(bank)>parseInt(k)){
} else {
return(ranks[k])
}
}
}
console.log(getRank())
function rgbToHex(r, g, b) {
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
}
function hexToRgb(hex) { //made by people smarter than me, ty stackoverflow!
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
function averageColor(a, b) {
// force the input as numbers *1
let e = ((a * 1 + b * 1) / 2)
if (e > 255) {e = 255}
if (e < 0) {e = 0}
return e;
}
function drag(ev, from) {
ev.dataTransfer.setData("text", ev.target.id);
ev.dataTransfer.setData("from", from);
}
function drop2(ev, index) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
storage=getCookie("storage")
storage=JSON.parse(storage)
inv=getCookie("inv")
inv=JSON.parse(inv)
console.log(storage)
storage.push(inv[data])
inv.splice(data,1)
createCookie('inv', JSON.stringify(inv))
createCookie('storage', JSON.stringify(storage))
}
function drop(ev, index, fromDrop) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
var fromDrag = ev.dataTransfer.getData("from");
console.log(fromDrag+fromDrop)
var inv = getCookie('inv');
inv = JSON.parse(inv)
var store = getCookie('storage');
store = JSON.parse(store)
if(fromDrag == 'store' && fromDrop == 'inv'){
inv.push(store[data])
store.splice(data,1)
createCookie('storage', JSON.stringify(store))
createCookie('inv', JSON.stringify(inv))
} else {
let r = averageColor(hexToRgb(inv[data].color).r, hexToRgb(inv[index].color).r)
let g = averageColor(hexToRgb(inv[data].color).g, hexToRgb(inv[index].color).g)
let b = averageColor(hexToRgb(inv[data].color).b, hexToRgb(inv[index].color).b)
if(data>index){
inv.splice(data, 1)
inv.splice(index, 1)
} else {
inv.splice(index, 1)
inv.splice(data, 1)
}
createCookie('inv', JSON.stringify(inv));
let hex = (rgbToHex(r, g, b))
hex = hex.split(".")[0]
console.log(hex)
//let v = Math.floor(((255*3)-(r+g+b))/5)
let v = 0;
let hexadecimal = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"a":10,"A":10,"b":11,"B":11,"c":12,"C":12,"d":13,"D":13,"e":14,"E":14,"f":15,"F":15}
for(let letter of hex.split("#")[1].split("")){
v+= hexadecimal[letter]
}
let craft = ""
if(v==90){
craft+="pure"
} else if (v>=80){
craft+="pure-ish"
} else if(v >=70){
craft+="bright"
} else if(v >= 60){
craft+="bright-ish"
} else if(v>= 50){
craft+="normal-ish"
} else if(v>=40){
craft+="normal"
} else if(v>=20){
craft+="dirty-ish"
} else {
craft+="dirty"
}
let ne = {"color": hex, "rarity": craft + "\<font size=1>(crafted)\</font>", "value": v, "att":r,"def":g,"spd":b,"level":0,"xp":0}
//if(data!=index && inv[data].color != inv[data].color){
var inv = getCookie('inv');
inv = JSON.parse(inv)
inv.push(ne)
createCookie('inv', JSON.stringify(inv));
//}
}
}
function s(value, index) {
var inv = getCookie('inv');
inv = JSON.parse(inv)
createCookie('bank', parseInt(getCookie('bank')) + parseInt(value));
inv.splice(index, 1)
console.log(inv)
createCookie('inv', JSON.stringify(inv));
}
function toInv(index) {
var inv = getCookie('inv');
inv = JSON.parse(inv)
var store = getCookie('storage');
store = JSON.parse(store)
inv.push(store[index])
store.splice(index, 1)
createCookie('storage', JSON.stringify(store));
createCookie('inv', JSON.stringify(inv));
updateInv()
}
function updateInv() {
var inve = document.getElementById("inv");
var store = document.getElementById("storage");
//console.log(store.innerHTML)
var inv = getCookie('inv');
inv = JSON.parse(inv)
var storage = getCookie('storage');
storage = JSON.parse(storage)
var balance = document.getElementById("balance");
balance.innerHTML = getCookie("bank") + " <font size=1.5>(" + getRank() + ")</font>"
let i = ""
for (let item of inv) {
let t = '{color:' + String(item.color) + ', rarity:' + String(item.rarity) + ', value: ' + String(item.value) + '}'
if(item.s){
i += ("<div style='cursor: pointer;user-select:none;min-width:50px;min-height:10px;' class='shiny' ondrop=\"drop(event," + inv.indexOf(item) + ", 'inv')\" ondragstart=\"drag(event, 'inv')\" ondragover=\"allowDrop(event)\" draggable=\"true\" onclick='s(" + item.value + "," + inv.indexOf(item) + ")' onmouseout='this.innerHTML = \"" + t + "\"'onmouseover='this.innerHTML=\"sell? (or drag to combine) \"' id='" + inv.indexOf(item) + "'>" + t + " //shiny!</div>")
} else {
i += ("<div style='cursor: pointer;user-select:none;min-width:50px;min-height:10px;' ondrop=\"drop(event," + inv.indexOf(item) + ", 'inv')\" ondragstart=\"drag(event, 'inv')\" ondragover=\"allowDrop(event)\" draggable=\"true\" onclick='s(" + item.value + "," + inv.indexOf(item) + ")' onmouseout='this.innerHTML = \"" + t + "\"'onmouseover='this.innerHTML=\"sell? (or drag to combine) \"' id='" + inv.indexOf(item) + "'style='color:" + item.color + ";'>" + t + "</div>")
}
}
inve.innerHTML = i
let s = "storage:[</br>"
for (let item of storage) {
if(item != null){
let t = '{color:' + String(item.color) + ', rarity:' + String(item.rarity) + ', value: ' + String(item.value) + '}'
if(item.s){
s += ("<div style='cursor: pointer;user-select:none;' ondrop=\"drop(event," + inv.indexOf(item) + ", 'store')\" ondragstart=\"drag(event, 'store')\" ondragover=\"allowDrop(event)\" draggable=\"true\" class='shiny' onmouseout='this.innerHTML = \"" + t + "\"'onmouseover='this.innerHTML=\"click to move to inv \"' id='" + storage.indexOf(item) + "'>" + t + " //shiny!</div>")
} else {
s += ("<div style='cursor: pointer;user-select:none;' ondrop=\"drop(event," + inv.indexOf(item) + ", 'store')\" ondragstart=\"drag(event, 'store')\" ondragover=\"allowDrop(event)\" draggable=\"true\" onmouseout='this.innerHTML = \"" + t + "\"'onmouseover='this.innerHTML=\"click to move to inv \"' onclick='toInv(" + storage.indexOf(item) + ");' id='" + storage.indexOf(item) + "'style='color:" + item.color + ";'>" + t + "</div>")
}
}
}
store.innerHTML = s
}
function clear() {
createCookie('inv', JSON.stringify([]))
createCookie('storage', JSON.stringify([]));
createCookie('bank', 15);
}
let file = "./crates.json"
var bank = getCookie('bank');
var inv = getCookie('inv');
var storage = getCookie('storage');
if (bank == "") {
createCookie('bank', 15);
var bank = getCookie('bank');
location.reload();
}
if (inv == "") {
createCookie('inv', JSON.stringify([]));
var inv = getCookie('inv');
location.reload();
}
if (storage == "") {
createCookie('storage', JSON.stringify([]));
var inv = getCookie('storage');
location.reload();
}
var arr = JSON.parse(inv);
var storage = JSON.parse(storage);
// console.log(arr)
// console.log(bank)
// createCookie('bank', 15);
function min(item) {
console.log(item)
x = document.getElementsByClassName(item)
//x[i].outerText="\ncontents: [ ... ] <div class='"+item+"'>";
x[0].hidden = !x[0].hidden
}
function randomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return ({
color: color,
att: hexToRgb(color).r,
def: hexToRgb(color).g,
spd: hexToRgb(color).b
})
}
function fight() {
var inv = getCookie('inv');
inv = JSON.parse(inv)
var storage = getCookie('storage');
storage = JSON.parse(storage)
let team = [inv[0], inv[1], inv[2], inv[3], inv[4]]
let opp = [randomColor(), randomColor(), randomColor(), randomColor(), randomColor()]
document.write("<div id='fight' style='position:absolute;height: 100%;width: 100%;top:0%;background-color: "+BgColor+"'>")
let po = 75
let le = 40
for(let t of team){
document.write("<div class='"+t.color+"' style='left:"+le+"px;top:"+po+"px;position:absolute;height: 75px;width: 75px;background-color: "+t.color+"'></div>")
po+=90
le+= 15
}
po = 75
le = 600
for(let t of opp){
document.write("<div class='"+t.color+"' style='left:"+le+"px;top:"+po+"px;position:absolute;height: 75px;width: 75px;background-color: "+t.color+"'></div>")
po+=90
le+= 15
}
document.write("</div>")
}
function roll(item) {
fetch(file)
.then(response => {
return response.json();
})
.then(data => {
var bank = getCookie('bank');
var inv = getCookie('inv');
var arr = JSON.parse(inv);
if (data.crates[item].price <= bank) {
//console.log(data.crates[item].contents[Math.floor(Math.random()*data.crates[item].contents.length)])
var x = document.getElementById("popup");
if (x.style.display != "block") { //anti spam check thingy
x.style.display = "block";
let chance = Math.floor(Math.random() * 100)
let shiny = chance > 98
let select = Math.floor(Math.random() * data.crates[item].contents.length)
if(!shiny){
x.innerHTML = "you got a:</br></br><code> >> " + (data.crates[item].contents[select].color) + (' ( r = ' + data.crates[item].contents[select].rarity + " && value = " + data.crates[item].contents[select].value + ")</code>").fontsize(1)
} else {
x.innerHTML = "you got a (shiny):</br></br><code> >> " + (data.crates[item].contents[select].color) + (' ( r = ' + data.crates[item].contents[select].rarity + " && value = " + data.crates[item].contents[select].value + ")</code>").fontsize(1)
}
x.style.background = (data.crates[item].contents[select].color)
createCookie('bank', bank - data.crates[item].price);
console.log(chance)
data.crates[item].contents[select]['storage'] = false
data.crates[item].contents[select]['s'] = shiny
data.crates[item].contents[select]['att'] = hexToRgb(data.crates[item].contents[select].color).r
data.crates[item].contents[select]['def'] = hexToRgb(data.crates[item].contents[select].color).g
data.crates[item].contents[select]['spd'] = hexToRgb(data.crates[item].contents[select].color).b
data.crates[item].contents[select]['level'] = 0
data.crates[item].contents[select]['xp'] = 0
arr.push(data.crates[item].contents[select])
createCookie('inv', JSON.stringify(arr));
setTimeout(function () {document.getElementById("popup").style.display = "none";}, 500);
}
} else {
var x = document.getElementById("popup");
if (x.style.display != "block") { //anti spam check thingy
x.style.display = "block";
x.innerHTML = "you can't afford this:("
x.style.background = ("#000000")
setTimeout(function () {document.getElementById("popup").style.display = "none";}, 1000);
}
}
})
}
fetch(file)
.then(response => {
return response.json();
})
.then(data => {
var intervalID = window.setInterval(udate, 500);
function udate() {
updateInv()
x = document.getElementsByClassName("shiny")
for(let i of x){
inner = i.innerHTML.split("")
//console.log(inner.split(""))
i.innerHTML = ""
for(let letter in inner){
let color = rgbToHex(Math.floor(Math.random() * 255),Math.floor(Math.random() * 255),Math.floor(Math.random() * 255))
inner[letter] = "<div style='color:"+color+";display:inline;'>" + inner[letter] + "</div>"
//console.log(inner[letter])
i.innerHTML += inner[letter]
}
}
}
document.write("<title>Antheia</title>")
function setFavicons(favImg){
let headTitle = document.querySelector('head');
let setFavicon = document.createElement('link');
setFavicon.setAttribute('rel','shortcut icon');
setFavicon.setAttribute('href',favImg);
headTitle.appendChild(setFavicon);
console.log("favicon set")
}
document.write("<div id='shroom' style='position:absolute;bottom:0%;right:0%;transform:scale(0.6);'><b><strong><tt>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>_______________________</div><div style='display:inline;color:red;'>.-'~~~-.</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>_____________________</div><div style='display:inline;color:red;'>.'o oOOOo`.</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>____________________</div><div style='display:inline;color:red;'>:~~~-.oOo o`.</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>______________________</div><div style='display:inline;color:red;'>`. </div>\ <div style='display:inline;color:red;'>~-. oOOo.</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>_______________________</div><div style='display:inline;color:red;'>`.</div><div style='display:inline;color:#964B00;'>; / </div><div style='display:inline;color:red;'>~. OO:</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>_______________________</div><div style='display:inline;color:#964B00;'>.' ;</div><div style='display:inline;color:red;'>-- `.o.'</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>______________________</div><div style='display:inline;color:#964B00;'>,' ;</div><div style='display:inline;color:red;'> ~~--'~</div></br>\
<div style='display:inline;color:rgba(0, 0, 0, 0);'>______________________</div><div style='display:inline;color:#964B00;'>'; ;</div></br>\
<div style='display:inline;color:green;'>_______\|/__________\\;_\\//___\|/________ </div></b></strong></tt></div>") //yeah i stacked a bold and a strong tag, fight me
setFavicons('https://git.disroot.org/grantsquires/Antheia/raw/branch/main/icon.ico');
var bank = getCookie('bank');
var inv = getCookie('inv');
var inv = getCookie('storage');
inv = JSON.parse(inv)
document.write("<div style='position:absolute;right:5%;'>")
document.write("inv:{ //<a style='color:#696969;' href = \"https://git.disroot.org/grantsquires/\">https://git.disroot.org/grantsquires/</a> <a style='color:pink;' href=\"https://git.disroot.org/grantsquires/Antheia\">v1.3+11</a><a style='color=purple;'> \<3 " + "dXd1IQ==".fontsize(1) + "</a></br>")
document.write("items:[</br>")
document.write("<div id='inv'>")
document.write("</div>")
document.write("],</br>")
document.write("<div id='storage' ondragover=\"allowDrop(event)\" ondrop=\"drop2(event)\">storage:[</br>")
let storage = getCookie("storage")
storage=JSON.parse(storage)
document.write("/* drag items here to prevent them from being sold! */")
document.write("</div>")
document.write("]")
document.write("bank:<div id='balance'>" + bank + " <font size=1.5> (" + getRank() + ")</font></br></div>")
document.write("}")
document.write("</div>")
for (let crate of data.crates) {
let r = averageColor(hexToRgb(crate.contents[0].color).r,hexToRgb(crate.contents[2].color).r)
let g = averageColor(hexToRgb(crate.contents[0].color).g,hexToRgb(crate.contents[2].color).g)
let b = averageColor(hexToRgb(crate.contents[0].color).b,hexToRgb(crate.contents[2].color).b)
document.write("<div style='border-radius:5px;width:25%;background-color:rgba("+r+","+g+","+b+", .2)'>")
document.write("{</br>name: " + crate.name)
document.write("</br>price: " + crate.price)
document.write("<div onclick='min(\"" + data.crates.indexOf(crate) + "\")'</br>contents: [<div class='" + data.crates.indexOf(crate) + "'>")
for (let item of crate.contents) {
if (item == crate.contents[0]) {
document.write("<div style='color:" + item.color + ";'>{color:" + item.color + ", rarity:" + item.rarity + ", value:" + item.value + "}</div>")
} else {
document.write("<div style='color:" + item.color + ";'>{color:" + item.color + ", rarity:" + item.rarity + ", value:" + item.value + "}</div>")
}
}
document.write("</div>]</div>}")
x = document.getElementsByClassName(data.crates.indexOf(crate))
x[0].hidden = true
//x[i].outerText="\ncontents: [ ... ] <div class='"+item+"'>";
document.write("<button style=' padding: 3px 13px;font-size: 14px; display: inline-block;cursor: pointer;background-color: #FAFBFC; border: 1px solid rgba(27, 31, 35, 0.15); border-radius: 3px;'onclick='roll(" + data.crates.indexOf(crate) + ")'>roll</button></br></div>")
// document.write("<button style=' padding: 6px 16px;font-size: 14px; display: inline-block;cursor: pointer;background-color: #FAFBFC; border: 1px solid rgba(27, 31, 35, 0.15); border-radius: 6px;'onclick='createCookie(\"inv\", JSON.stringify([]));updateInv()'>reset</button>")
//document.write("<p>" + d.crates[0].price + "</p>")
}
document.body.style.backgroundColor = BgColor;
//centered button
document.write("<div style='position:absolute;left:50%;top:10%;transform:translate(-50%,-20%);'>")
document.write("<button style=' padding: 6px 16px;font-size: 14px; display: inline-block;cursor: pointer;background-color: #FAFBFC; border: 1px solid rgba(27, 31, 35, 0.15); border-radius: 6px;'onclick='fight()'>fight!</button></div>")
return (0)
}).then((open) => {
var number = 5; //just for an example
//------------^ // Not sure but ; is a must in some places.
document.write('<div id = "popup"style="height:50%;position:absolute;width:100%;top:25%;background: #1a1a1a;color:#fff;">null</div>')
var x = document.getElementById("popup");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
})
//
</script>
if you see this;) try refreshing your page! (ctrl+r will work!)<tt><bold><div class='flower'>
______________________________....</br>
___________________________,;;'''';;,____________________,;;;;,</br>
________________,________;;'_______`;;,_______________.,;;;'___;</br>
______________,;;;_______;;_________`;;,';;;,.______,%;;'_______'</br>
____________,;;,;;_______;;_________,;`;;;, `;::. %%;'</br>
___________;;;,;;;_______`'_______,;;; ;;,;;,_`::,%%;'</br>
___________;;;,;;;,__________.,%%%%%'%_;;;;,;;___%;;;</br>
_,%,.______`;;;,;;;,____.,%%%%%%%%%'%;_;;;;;,;;__%;;;</br>
;,`%%%%%%%%%%`;;,;;'%%%%%%%%%%%%%'%%'__`;;;;;,;, %;;;</br>
;;;,`%%%%%%%%%%%,;_..`%%%%%%%%;'%%%'____`;;;;,;; %%;;</br>
_`;;;;;,`%%%%%,;;/,_.._`"""'',%%%%%______`;;;;;; %%;;,</br>
___`;;;;;;;,;;/////,._____,;%%%%%%%_______`;;;;,`%%;;</br>
__________;;;/%%%%,%///;;;';%%%%%%,__________`;;;%%;;,</br>
_________;;;/%%%,%%%%%/;;;';;'%%%%%,____________`%%;;</br>
________.;;/%%,%%%%%//;;'__;;;'%%%%%,____________%%;;,</br>
________;;//%,%%%%//;;;'___`;;;;'%%%%_____________`%;;;</br>
_________;;//%,%//;;;;'______`;;;;'%%%______________%;;;,</br>
_________`;;//,/;;;'___________`;;;'%%'______________`%;;;</br>
___________`;;;;'________________`;'%'________________`;;;;</br>
__________________________________'______.,,,.________`;;;;</br>
______________________________________,;;;;;;;;;;,_____`;;;;</br>
_____________________________________;;;'____;;;,;;,____`;;;;</br>
_____________________________________;;;______;;;;,;;.___`;;;;</br>
_____________________________________`;;______;;;;;,;;___;;;;</br>
_______________________________________`'______`;;;;,;;__;;;;</br>
__________________________________________________`;;,;,_;;;;</br>
_____________________________________________________;;,_;;;;</br>
________________________________________________________';;;;;</br>
_________________________________________________________;;;;;</br>
________________________________________________________.;;;;'</br>
_______________________________________________________.;;;;'</br>
______________________________________________________;;;;;'</br>
_____________________________________________________,;;;;' //art by susie oviatt (find it <a href="https://www.asciiart.eu/plants/flowers">here</a>)</br>
</tt></bold></div>
stuck on this page? make sure you have cookies and javascript enabled, dont know how to? goodluck (lol)
</body>
</html>