From 8911d2866ffa129bd9a15c8b3ac147bcda30c430 Mon Sep 17 00:00:00 2001 From: CajunAvenger Date: Fri, 24 Mar 2023 20:35:31 -0500 Subject: [PATCH] New bubble system --- index.html | 165 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 150 insertions(+), 15 deletions(-) diff --git a/index.html b/index.html index 1b897a8..5aaabef 100644 --- a/index.html +++ b/index.html @@ -95,10 +95,14 @@ canvas { position: absolute; } .bubble { - z-index: 9; + z-index: 0; position: absolute; top: 0px; bottom: 0px; + border-radius: 25px; + background: #b4b4b4; + border-style: solid; + border-width: 2px; } #actual-btn { 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 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 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) { if(shinyCharm) { toggleShiny(gen, type); @@ -1897,13 +2003,7 @@ canvas { }else{ 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 maxRows = 5 if(currently_previewing.length <= 20) @@ -1915,12 +2015,45 @@ canvas { if(maxCols > 5) { 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) left_corner -= (rightp-2276) 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 - @@ -2605,5 +2739,6 @@ canvas { • Other later generation sprites from the Gen 8 and Gen 9 Resource Packs.
• If you want to support more code silliness, you can donate to my caffeine addiction Ko-Fi.
+
\ No newline at end of file