mirror of
https://github.com/CajunAvenger/cajunavenger.github.io.git
synced 2026-04-26 10:06:47 -05:00
New bubble system
This commit is contained in:
parent
0e9106372f
commit
8911d2866f
165
index.html
165
index.html
|
|
@ -95,10 +95,14 @@ canvas {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
.bubble {
|
.bubble {
|
||||||
z-index: 9;
|
z-index: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
|
border-radius: 25px;
|
||||||
|
background: #b4b4b4;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 2px;
|
||||||
}
|
}
|
||||||
#actual-btn {
|
#actual-btn {
|
||||||
z-index: 6;
|
z-index: 6;
|
||||||
|
|
@ -1819,6 +1823,108 @@ canvas {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bubbleRows(count) {
|
||||||
|
if(count == 6) {
|
||||||
|
return [3, 3];
|
||||||
|
}else if(count == 12) {
|
||||||
|
return [4, 4, 4];
|
||||||
|
}
|
||||||
|
var column_soft_cap = 5;
|
||||||
|
var row_soft_cap = 5;
|
||||||
|
var column_hard_cap = 12;
|
||||||
|
var row_hard_cap = 5;
|
||||||
|
|
||||||
|
var soft_size = column_soft_cap * row_soft_cap;
|
||||||
|
var hard_size = column_hard_cap * row_hard_cap;
|
||||||
|
|
||||||
|
var row_sizes = [];
|
||||||
|
|
||||||
|
if(count > hard_size) {
|
||||||
|
var excess = count - hard_size;
|
||||||
|
var nec_rows = Math.ceil(excess / column_hard_cap);
|
||||||
|
var row_break_cap = row_hard_cap + nec_rows
|
||||||
|
var holes = (column_hard_cap * nec_rows) - excess;
|
||||||
|
var extra_cols = Math.ceil(holes/row_break_cap);
|
||||||
|
var over = (extra_cols*row_break_cap) - holes
|
||||||
|
/*
|
||||||
|
so if given 61
|
||||||
|
excess = 1, nec_rows = ceil(1/12) = 1
|
||||||
|
and there are 11 new empty spots
|
||||||
|
partial/empty columns = ceil(holes/rows) = 2
|
||||||
|
we can remove 2 columns, leaving -1 empty slot
|
||||||
|
then readd those in a partial 11th column
|
||||||
|
11 - 10 - 10 - 10 - 10 - 10
|
||||||
|
|
||||||
|
if given 70
|
||||||
|
excess = 10, nec_rows = ceil(10/12) = 1
|
||||||
|
holes = 2, extra_cols = 1, over = 3
|
||||||
|
12 - 12 - 12 - 11 - 11 - 11
|
||||||
|
|
||||||
|
if given 73
|
||||||
|
excess = 13, nec_rows = ceil(13/12) = 2
|
||||||
|
holes = 11, extra_cols = 2, over = 3
|
||||||
|
11 - 11 - 11 - 10 - 10 - 10 - 10
|
||||||
|
|
||||||
|
*/
|
||||||
|
for(var i=0; i<row_break_cap; i++) {
|
||||||
|
var cols = column_hard_cap - extra_cols;
|
||||||
|
if(over > 0) {
|
||||||
|
cols++;
|
||||||
|
over--;
|
||||||
|
}
|
||||||
|
row_sizes.push(cols);
|
||||||
|
}
|
||||||
|
return row_sizes;
|
||||||
|
}
|
||||||
|
else if(count <= soft_size) {
|
||||||
|
// this fits in the 5x5
|
||||||
|
var over = count % column_soft_cap;
|
||||||
|
var full_rows = Math.floor(count / column_soft_cap);
|
||||||
|
if(full_rows < 1) {
|
||||||
|
// short row
|
||||||
|
return [count];
|
||||||
|
}
|
||||||
|
else if(over > 0 && over < full_rows) {
|
||||||
|
// prefer adding 1 to some complete rows
|
||||||
|
// than adding a new very short row
|
||||||
|
for(var i=1; i<full_rows+1; i++) {
|
||||||
|
var cols = column_soft_cap;
|
||||||
|
if(i != full_rows) {
|
||||||
|
cols++;
|
||||||
|
over--;
|
||||||
|
}else{
|
||||||
|
cols += over;
|
||||||
|
}
|
||||||
|
row_sizes.push(cols);
|
||||||
|
}
|
||||||
|
return row_sizes;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
for(var i=0; i<full_rows; i++)
|
||||||
|
row_sizes.push(column_soft_cap);
|
||||||
|
if(over > 0)
|
||||||
|
row_sizes.push(over);
|
||||||
|
return row_sizes;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
var has_over = (over != 0);
|
||||||
|
var full_columns = Math.floor(count / row_hard_cap);
|
||||||
|
var over = count % row_hard_cap;
|
||||||
|
for(var i=1; i<=row_hard_cap; i++) {
|
||||||
|
var cols = full_columns;
|
||||||
|
if(has_over) {
|
||||||
|
if(i != row_hard_cap) {
|
||||||
|
cols++;
|
||||||
|
over--;
|
||||||
|
}else{
|
||||||
|
cols += over;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
row_sizes.push(cols);
|
||||||
|
}
|
||||||
|
return row_sizes;
|
||||||
|
}
|
||||||
|
}
|
||||||
function openBox(gen, type) {
|
function openBox(gen, type) {
|
||||||
if(shinyCharm) {
|
if(shinyCharm) {
|
||||||
toggleShiny(gen, type);
|
toggleShiny(gen, type);
|
||||||
|
|
@ -1897,13 +2003,7 @@ canvas {
|
||||||
}else{
|
}else{
|
||||||
currently_previewing = arrays[type_order[type]][gen];
|
currently_previewing = arrays[type_order[type]][gen];
|
||||||
}
|
}
|
||||||
var left_corner = (type*99)+100
|
/*
|
||||||
var top_corner = (gen*99)+101
|
|
||||||
|
|
||||||
if(gen == 0) {
|
|
||||||
left_corner = zerogen_coords[Math.min(24, type)][0] + 100
|
|
||||||
top_corner = zerogen_coords[Math.min(24, type)][1] + 100
|
|
||||||
}
|
|
||||||
var maxCols = Math.max(Math.ceil(currently_previewing.length/5), 5)
|
var maxCols = Math.max(Math.ceil(currently_previewing.length/5), 5)
|
||||||
var maxRows = 5
|
var maxRows = 5
|
||||||
if(currently_previewing.length <= 20)
|
if(currently_previewing.length <= 20)
|
||||||
|
|
@ -1915,12 +2015,45 @@ canvas {
|
||||||
if(maxCols > 5) {
|
if(maxCols > 5) {
|
||||||
bubble_img = "./bubble/"+maxCols+"c.png";
|
bubble_img = "./bubble/"+maxCols+"c.png";
|
||||||
}
|
}
|
||||||
var rightp = left_corner + (99*maxCols)
|
*/
|
||||||
var botp = top_corner + (99*maxRows)
|
// get upgraded bubble row numbers
|
||||||
|
var row_numbers = bubbleRows(currently_previewing.length);
|
||||||
|
// save to figure out offset rows
|
||||||
|
var max_cols = row_numbers[0];
|
||||||
|
// position the bubble
|
||||||
|
var left_corner = (type*99)+96
|
||||||
|
var top_corner = (gen*99)+99
|
||||||
|
if(gen == 0) {
|
||||||
|
left_corner = zerogen_coords[Math.min(24, type)][0] + 100
|
||||||
|
top_corner = zerogen_coords[Math.min(24, type)][1] + 100
|
||||||
|
}
|
||||||
|
var rightp = left_corner + Math.max(99, 99*max_cols);
|
||||||
|
var botp = top_corner + Math.max(99, 99*row_numbers.length);
|
||||||
if(rightp > 2276)
|
if(rightp > 2276)
|
||||||
left_corner -= (rightp-2276)
|
left_corner -= (rightp-2276)
|
||||||
if(botp > 1571)
|
if(botp > 1571)
|
||||||
top_corner -= (99*(maxRows+1))
|
top_corner -= (99*(row_numbers.length+1))
|
||||||
|
// current index of currently_previewing
|
||||||
|
var pr_ind = 0;
|
||||||
|
for(var r=0; r<row_numbers.length; r++) {
|
||||||
|
var pokemon_in_row = row_numbers[r];
|
||||||
|
var hole_offset = (max_cols - pokemon_in_row)*49.5;
|
||||||
|
for(var c=0; c<pokemon_in_row; c++) {
|
||||||
|
var mon_key = currently_previewing[pr_ind];
|
||||||
|
// if this mon is already in the box, put the remove option instead
|
||||||
|
if(choices[currently_selecting[0]][currently_selecting[1]] == mon_key)
|
||||||
|
mon_key = "BLANK";
|
||||||
|
var mon_img = domlink + spriteFile + "/" + mon_key + ".png"
|
||||||
|
var ele = document.getElementById('preview'+pr_ind)
|
||||||
|
ele.src = mon_img;
|
||||||
|
ele.style.zIndex = 9;
|
||||||
|
//change the position
|
||||||
|
ele.style.top = top_corner + 99*r;
|
||||||
|
ele.style.left = left_corner + 99*c + hole_offset;
|
||||||
|
pr_ind++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*
|
||||||
for(var i=0; i<currently_previewing.length; i++) {
|
for(var i=0; i<currently_previewing.length; i++) {
|
||||||
var mon_key = currently_previewing[i];
|
var mon_key = currently_previewing[i];
|
||||||
// if this mon is already in the box, put the remove option instead
|
// if this mon is already in the box, put the remove option instead
|
||||||
|
|
@ -1938,12 +2071,14 @@ canvas {
|
||||||
offset = underflow*99/2;
|
offset = underflow*99/2;
|
||||||
ele.style.top = top_corner + (row*99);
|
ele.style.top = top_corner + (row*99);
|
||||||
ele.style.left = left_corner + (col*99) + offset;
|
ele.style.left = left_corner + (col*99) + offset;
|
||||||
}
|
}*/
|
||||||
var bubble = document.getElementById('bubble')
|
var bubble = document.getElementById('bubble')
|
||||||
bubble.src = bubble_img;
|
//bubble.src = bubble_img;
|
||||||
bubble.style.left = left_corner;
|
bubble.style.left = left_corner;
|
||||||
bubble.style.top = top_corner;
|
bubble.style.top = top_corner;
|
||||||
bubble.style.zIndex = 9;
|
bubble.style.zIndex = 8;
|
||||||
|
bubble.style.width = Math.max(99, max_cols * 99) + 1;
|
||||||
|
bubble.style.height = Math.max(99, row_numbers.length * 99) + 1;
|
||||||
}
|
}
|
||||||
function closeBox() {
|
function closeBox() {
|
||||||
for(var i=0; i<currently_previewing.length; i++) {
|
for(var i=0; i<currently_previewing.length; i++) {
|
||||||
|
|
@ -2495,7 +2630,6 @@ canvas {
|
||||||
<img class="charmbox" id="charmbox2" src="./charmbox2.png" alt="" height="28" width="400" onclick="fullShiny();" />
|
<img class="charmbox" id="charmbox2" src="./charmbox2.png" alt="" height="28" width="400" onclick="fullShiny();" />
|
||||||
<img class="charmbox" id="teambox" src="./teambox.png" alt="" height="65" width="470" />
|
<img class="charmbox" id="teambox" src="./teambox.png" alt="" height="65" width="470" />
|
||||||
|
|
||||||
<img class="bubble" id="bubble" src="./blank.png" >
|
|
||||||
<img class="preview" id="preview0" src="./blank.png" height="96" width="96" onclick="pickMon(0);">
|
<img class="preview" id="preview0" src="./blank.png" height="96" width="96" onclick="pickMon(0);">
|
||||||
<img class="preview" id="preview1" src="./blank.png" height="96" width="96" onclick="pickMon(1);">
|
<img class="preview" id="preview1" src="./blank.png" height="96" width="96" onclick="pickMon(1);">
|
||||||
<img class="preview" id="preview2" src="./blank.png" height="96" width="96" onclick="pickMon(2);">
|
<img class="preview" id="preview2" src="./blank.png" height="96" width="96" onclick="pickMon(2);">
|
||||||
|
|
@ -2605,5 +2739,6 @@ canvas {
|
||||||
• Other later generation sprites from the <a href="https://reliccastle.com/resources/1101/">Gen 8<a> and <a href="https://reliccastle.com/resources/952/">Gen 9</a> Resource Packs.<br />
|
• Other later generation sprites from the <a href="https://reliccastle.com/resources/1101/">Gen 8<a> and <a href="https://reliccastle.com/resources/952/">Gen 9</a> Resource Packs.<br />
|
||||||
• If you want to support more code silliness, you can donate to my <s>caffeine addiction</s> <a href="https://ko-fi.com/cajun42">Ko-Fi</a>.<br />
|
• If you want to support more code silliness, you can donate to my <s>caffeine addiction</s> <a href="https://ko-fi.com/cajun42">Ko-Fi</a>.<br />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="bubble" id="bubble"><div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Loading…
Reference in New Issue
Block a user