diff --git a/changelog/CHANGELOG b/changelog/CHANGELOG index 6b349448..093bf360 100644 --- a/changelog/CHANGELOG +++ b/changelog/CHANGELOG @@ -1,3 +1,4 @@ +2026-05-21: New W7 sections: Zenith Market and Research 2026-04-28: Updates from patch v2.503 2026-04-16: Updates from patch v2.502 2026-03-29: Crash fixes + new St Patrick's event items diff --git a/mysite/consts/consts_w7.py b/mysite/consts/consts_w7.py index 8222c145..476af12b 100644 --- a/mysite/consts/consts_w7.py +++ b/mysite/consts/consts_w7.py @@ -35,3 +35,17 @@ for index, (name, max_level, base_value, _, bonus, description ) in enumerate(LegendTalents) if name.lower() != "filler" } + +# Last updated in v2.505 May 18 +ZenithMarket = ["TRUE_ZEN 1 1.14 250 2 1 }x_higher_bonuses_from_Zenith_Statues".split(" ", ),"KRUK_BUBBLES 2 6 5 1 1 Adds_a_new_bubble_for_Kattlekruk_to_boost!".split(" ", ),"LAMP_BOOST 5 1.09 200 1 1 }x_higher_bonuses_from_The_Lamp_in_Caverns".split(" ", ),"DOUBLE_CLUSTER 8 1.17 100 5 1 +{%_chance_for_a_Double_Zenith_Cluster_drop".split(" ", ),"BUBBLE_BOOST 15 1.5 25 2 1 +{_daily_LVs_for_all_Kattlekruk_bubbles".split(" ", ),"SUPER_DUPERS 50 1.7 25 1 1 Super_Talents_get_+{_more_LVs".split(" "),"MOST_GRANDIOSE 250 1.25 50 4 1 }x_Grand_Discovery_Chance_in_Spelunking".split(" ", ),"GIGA_SYMBOLS 1000 1.15 100 1 1 }x_Sneaking_Symbol_success_chance".split(" ", ),"WOOZLE_WUZZLE 5000 1.125 30 1 1 +{%_EXP_Gain_for_the_Research_skill!".split(" ", ),"CLASSY_GOGO 25000 1.115 100 1 1 }x_Class_EXP_gain,_for_now...".split(" ", ), ] +zenith_market_upgrade_data = [] +for upgrade in ZenithMarket: + name, base_price, price_mult_per_level, max_level, bonus_per_level, _, description_template = upgrade + zenith_market_upgrade_data.append({ + "Name": name.replace("_", " "), + "Base Price": parse_number(base_price), + "Price Mult per Level": parse_number(price_mult_per_level), + "Max Level": parse_number(max_level), + "Bonus per Level": parse_number(bonus_per_level), + "Description Template": description_template.replace("_", " "), + }) \ No newline at end of file diff --git a/mysite/consts/idleon/consts_idleon.py b/mysite/consts/idleon/consts_idleon.py index dca67a52..e041fb90 100644 --- a/mysite/consts/idleon/consts_idleon.py +++ b/mysite/consts/idleon/consts_idleon.py @@ -7,6 +7,9 @@ # Last updated in v2.43 Nov 6. Make sure to manually turn any `.split("")` into `.split(" ")` RANDOlist = ["mushG frogG beanG poopSmall ratB slimeG snakeG carrotO branch acorn goblinG plank frogBIG mushR mushW".split(" "), "jarSand mimicA crabcake shovelR coconut sandcastle pincermin potato steak moonman sandgiant snailZ".split(" "), "20 24 21 25 22 26 41 42 72 73 74 75 76 77 78 79 52 45 49 37 39 46 53 54 55".split(" "), "5 6 7 42 43 8 9 10 11 12 13 14 15 4 25 26 27 59 45 49 46 50 47 51 52 53 54 55 28 29 30 31 32 33 34 35 56 57 36 37".split(" "), "STR AGI WIS LUK UQ1val UQ2val Defence Weapon_Power".split(" "), "bloque flake speaker penguin eye mamoth snakeB glass stache snowball thermostat sheep sheep".split(" "), "0 7 14 22 30 37 44 51".split(" "), "Cardboard_Boxes Silkskin_Boxes Wooden_Crates Natural_Crates Steel_Trapper Meaty_Trapper Royal_Trapper".split(" "), "310 17 394 17 478 17 562 17 268 86 352 86 436 86 520 86 604 86 226 157 310 157 394 157 478 157 562 157 268 228 352 228 436 228 520 228 604 228 226 299 310 299 394 299 478 299 562 299 646 299".split(" "), "1 60 85 110 150 170 200 250 9999 9999 9999 9999 9999 9999 999 999 999 999 999 999 999".split(" "), "Goblin_Gorefest Wakawaka_War Acorn_Assault Frosty_Firefight Clash_of_Cans Tower_Defence_6 Tower_Defence_7".split(" "), ["0", "14", "39", "69"], ["30", "200", "1500", "10000"], "3 200 2250 12000 25000 60000 100000 150000 50000000 5 100 700 5000 40000 125000 400000 1000000 3500000 10 250 1000 7500 40000 200000 2000000 7000000 60000000".split(" "), "Build_this_space_to_unlock_the_3D_Printer. Build_this_space_to_unlock_the_Library._Wow!_What_a_game_changer! Build_this_space_to_get_your_very_own_Death_Note_thingy._Anime_doesn't_actually_exist_around_here,_so_wipe_that_smirk_off_your_face! Build_this_space_to_unlock_a_way_to_unlock_other_bonuses_using_Salt!_Its_almost_like_you're_Summoning_more_bonuses_with_Salt,_so_you_can_speedrun_the_game_faster! Build_this_space_to_get_more_Storage_Chest_slots!_I_KNOW_RIGHT?_It's_about_time!! Build_this_space_to_make_upgrading_other_Buildings_way_easier._Ok,_maybe_just_easier,_not_'way_easier'. Build_this_space_to_remotely_place,_collect_and_remove_Critter_Traps_to_and_from_any_location!_This_done_changin'_the_Trap_Game_fo'_real_yo! Build_this_space_to_harness_the_power_of_Automation!_Good_thing_you're_a_gamer,_thats_a_job_that_robots_will_never_replace. Build_this_space_because_it's_the_last_one..._I_mean_what_else_are_you_gonna_do? Build_this_space_to_get_your_first_Wizard_Defender._This_one_will_zap_nearby_monsters_as_they_run_by! Build_this_space_to_get_your_second_Wizard_Defender._This_one_will_throw_exploding_fireballs_toward_monsters,_which_explode!_Did_I_mention_the_fireballs_EXPLODE! Build_this_space_to_get_your_third_Wizard_Defender._This_one_will_roll_a_boulder_at_the_monsters,_squashing_them_into_inedible_pancakes! Build_this_space_to_get_your_fourth_Wizard_Defender._This_one_will_freeze_monsters..._pretty_cool,_right? Build_this_space_to_get_your_fifth_Wizard_Defender._This_one_will_smite_the_monsters_for_their_sins!_I_mean,_sure,_you're_the_one_murdering_them,_but_they're_monsters! Build_this_space_to_get_your_sixth_Wizard_Defender._This_one_will_rock_and_roll_all_night,_and_party_every_day!_I_don't_know_how_he_got_his_wizarding_license,_but_he_did_and_now_that's_your_problem! Build_this_space_to_get_your_seventh_Wizard_Defender._This_one_will_summon_giant_eyeballs,_which_boop_into_enemies!_Eye_think_you're_gonna_love_this_one! Build_this_space_to_get_your_eigth_Wizard_Defender._This_one_is_real_smelly._That's_his_thing,_he_stinks. Build_this_space_to_get_your_last_Wizard_Defender._This_one_is_crazy_good..._kinda_makes_all_the_other_tower_wizards_pointless. Build_this_space_to_get_your_first_Shrine._You_can_place_it_anywhere_in_the_game,_and_it_will_boost_all_characters_in_that_map!_This_one_boosts_damage! Build_this_space_to_get_your_second_Shrine._This_one_is_full_of_life,_as_well_as_pulmonary_veins_and_arteries. Build_this_space_to_get_your_third_Shrine!_This_one_is_a_bit_of_a_brain_bender,_it's_kinda_like_a_shrine_for_shrines. Build_this_space_to_get_your_fourth_Shrine._This_one's_for_all_you_institutional_bankers_out_there!_I'm_sure_I_speak_for_everyone_born_after_2008_when_I_say,_you're_the_best! Build_this_space_to_get_your_fifth_Shrine._This_one_is_green. Build_this_space_to_get_your_sixth_Shrine._This_one_is_a_pile_of_books,_which_will_somehow_give_you_a_boost_even_though_we_both_know_you_don't_read. Build_this_space_to_get_your_seventh_Shrine._This_one_is_practically_worthless,_and_will_be_forgotten_about_within_a_week_of_being_unlocked. Build_this_space_to_get_your_eigth_Shrine!_Dang,_we're_close_to_the_end,_I'm_gonna_miss_vaguely_describing_upcoming_shrines_to_you!_Anyway,_this_one's_spooky_and_scary. Build_this_space_to_get_your_last_Shrine._Yep,_definitely_the_last_one._No_need_to_look_for_a_10th_shrine_anywhere..._yet...".split(" "), "sheep flake stache ram bloque mamoth snowball penguin thermostat glass snakeB speaker eye skele2".split(" "), "10 11 12 23 75 86 87 266 267 446 447 79".split(" "), "InvStorage31 InvStorage32 InvStorage33 InvStorage34 InvStorage35 InvStorage36 InvStorage37 InvStorage38 InvStorage39 InvStorage40 InvStorage41 InvStorage42 InvBag21 InvBag22 InvBag23 InvBag24 InvBag25 InvBag26 EquipmentHats31 EquipmentHats32 EquipmentHats33 EquipmentHats34 EquipmentHats35 EquipmentHats36 EquipmentHats37 EquipmentHats38 EquipmentHats40 EquipmentHats43 EquipmentHats46 EquipmentHats47 EquipmentHats48 EquipmentHats49 EquipmentHats50 EquipmentHats45 EquipmentHats57 EquipmentHats62 Quest28 EquipmentRingsChat1 EquipmentRingsChat2 EquipmentRingsChat3 EquipmentRingsChat4 EquipmentRingsChat5 EquipmentRingsChat6 EquipmentRingsChat8 EquipmentRingsChat9 LockedInvSpace null Blank TestObj4 TestObj5 TestObj8 TestObj9 TestObj10 EquipmentWeapons1 TestObj2 EquipmentWands4 ExpSmith1 Starlight AlienTreetutorial EquipmentWeapons2 Secretstone InvStorage99 COIN EXP FillerMaterial DungWeaponBow1 DungWeaponWand1 DungWeaponSword1 TestObj15 TestObj16 TestObj14 EquipmentCape1 EquipmentHats72 Spice0 Spice6 Spice9 SailTr10 SailTr12 SailTr14 SailTr21 SailTr25 SailTr29 Bits EquipmentHatsBeg1 EquipmentShirts8 EquipmentShirts9 EquipmentPants11 EquipmentPants14 EquipmentShoes6 EquipmentShoes8 EquipmentShoes13 EquipmentPendant1 EquipmentPendant2 EquipmentPendant3 EquipmentPendant4 EquipmentPendant5 EquipmentPendant6 EquipmentPendant7 EquipmentPendant8 Trophy4 DoubleAFKtix ObolFrag DeliveryBox EquipmentHats23 EquipmentHats24 Quest8 CraftMat15 CraftMat16 CraftMat17 NPCtoken8 EquipmentShirts4 EquipmentPants12 EquipmentShoes10 EquipmentShoes11 EquipmentShoes12 EquipmentShoes14 EquipmentPendant13 EquipmentPendant15 EquipmentRings1 FoodHealth8 FishingRod1 CatchingNet1 MaxCapBagFi0 MaxCapBagB0 MaxCapBagTr0 MaxCapBagTr2 MaxCapBagS0 MaxCapBagS2 ObolPlatinumSpeed StampC10 StampC11 StampC12 EquipmentShirts7 EquipmentPants7 EquipmentPants13 EquipmentRings4 EquipmentRings5 EquipmentRings8 EquipmentRings9 EquipmentRings10 IceMountains2 InvBag9 Quest31 GemP25".split(" "), "50 50 200 800 3000 8000 14000 20000 30000 40000 50000 65000 80000 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1000000 1000000 1000000".split(" "), "Stiltzcho Builder_Bird Bushlyte Dazey Dog_Bone Egggulyte Funguy Giftmas_Blobulyte Glumlee Grasslands_Gary Hamish Krunk Loveulyte Meel Mutton Mr_Pigibank Papua_Piggea Picnic_Stowaway Promotheus Rocklyte Scripticus Sprout Stiltzcho Telescope Tiki_Chief Town_Marble TP_Pete Typhoon Woodsman Toadstall Falloween_Pumpkin Bubbulyte Coastiolyte".split(" "), "Bandit_Bob Walupiggy Cactolyte Carpetiem Centurion Clown Constructor_Crow Cowbo_Jones Desert_Davey Djonnut Fishpaste97 Goldric Loominadi Obol_Altar Omar_Da_Ogar Postboy_Pablob Scubidew Snake_Jar Speccius Wellington Whattso XxX_Cattleprod_XxX Gangster_Gus".split(" "), "Bellows Bill_Brr Carpenter_Cardinal Crystalswine Hoggindaz Iceland_Irwin Lonely_Hunter Lord_of_the_Hunt Shuvelle Snouts Worldo Yondergreen Worldo".split(" "), "ObolSilver0 7 ObolSilver1 14 ObolSilver2 21 ObolSilver3 28 ObolSilverCard 32 ObolSilverCatching 37 ObolSilverChoppin 42 ObolSilverFishing 47 ObolSilverMining 52 ObolSilverCons 53 ObolSilverWorship 54 ObolSilverTrapping 55 ObolSilverDamage 60 ObolSilverDef 64 ObolSilverEXP 65 ObolSilverLuck 66 ObolSilverMoney 67 ObolGold0 70 ObolGold1 73 ObolGold2 76 ObolGold3 78 ObolGoldMoney 79 ObolGoldCard 80 ObolGoldKill 82 ObolGoldChoppin 84 ObolGoldMining 86 ObolGoldLuck 88 ObolGoldCatching 90 ObolGoldFishing 92 ObolGoldEXP 93 ObolGoldDef 95 ObolGoldPop 96 ObolGoldDamage 200".split(" "), "ObolGold0 7 ObolGold1 14 ObolGold2 21 ObolGold3 28 ObolGoldMoney 32 ObolGoldCard 34 ObolGoldKill 36 ObolGoldChoppin 41 ObolGoldMining 46 ObolGoldLuck 47 ObolGoldCatching 52 ObolGoldFishing 57 ObolGoldCons 58 ObolGoldWorship 59 ObolGoldTrapping 60 ObolGoldDamage 63 ObolGoldEXP 64 ObolGoldDef 65 ObolPlatinum0 67 ObolPlatinum1 69 ObolPlatinum2 71 ObolPlatinum3 73 ObolPlatinumCard 74 ObolPlatinumCatching 76 ObolPlatinumChoppin 78 ObolPlatinumDamage 81 ObolPlatinumDef 82 ObolPlatinumEXP 83 ObolPlatinumFishing 85 ObolPlatinumKill 86 ObolPlatinumMining 88 ObolPlatinumPop 89 ObolPlatinumLuck 90 ObolPink0 91 ObolPink1 92 ObolPink2 93 ObolPink3 94 ObolPinkCard 94.5 ObolPinkCatching 95 ObolPinkDamage 96 ObolPinkDef 95.5 ObolPinkEXP 97 ObolPinkFishing 98 ObolPinkKill 98.4 ObolPinkLuck 99.2 ObolPinkMining 99.8 ObolPinkPop 200".split(" "), "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60".split(" "), "Key1_x1.png Key2_x1.png Key3_x1.png Key4_x1.png TixCol_x1.png MGp.png rtt0_x1.png ObolFrag_x1.png PremiumGem_x1.png PachAcc.png Libz.png Quest89_x1.png Key5_x1.png".split(" "), "NPCtoken5 NPCtoken6 NPCtoken4 NPCtoken9 NPCtoken10 NPCtoken11 NPCtoken13 NPCtoken7 Quest9 NPCtoken15 NPCtoken12 NPCtoken14 NPCtoken16 NPCtoken17 NPCtoken18 NPCtoken19 NPCtoken20 NPCtoken21 NPCtoken27 NPCtoken22 NPCtoken24 NPCtoken25 NPCtoken26 NPCtoken23 NPCtoken32 NPCtoken31 NPCtoken34 NPCtoken35 NPCtoken36 NPCtoken38 NPCtoken33 NPCtoken37".split(" "), "365 232 113 8 0 263 252 237".split(" "), ["DungCredits1", "DungCredits2"], "0 4 10 18 28 40 70 110 160 230 320 470 670 940 1310 1760 2400 3250 4000 5000 6160 8000 10000 12500 15000 18400 21000 25500 30500 36500 45400 52000 61000 72500 85000 110000 125000 145000 170000 200000 250000 275000 325000 400000 490000 600000 725000 875000 1000000 1200000 1500000 3000000 5000000 10000000 20000000 30000000 40000000 50000000 60000000 80000000 100000000 999999999 999999999 999999999 999999999 999999999 1999999999 1999999999 1999999999 1999999999 1999999999".split(" "), "51 189 5 0 112 189 5 0 173 189 5 0 51 292 10 1 112 292 10 1 173 292 10 1 33 395 15 2 86 395 15 2 139 395 15 2 192 395 15 2 305 189 20 3 374 189 20 3 260 292 25 4 313 292 25 4 366 292 25 4 419 292 25 4 278 395 30 5 339 395 30 5 400 395 30 5 505 189 35 6 566 189 35 6 627 189 35 6 532 292 40 7 601 292 40 7 487 395 50 8 540 395 50 8 593 395 50 8 646 395 50 8".split(" "), "a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z".split(" "), "0 1 3 2 4 5 0 1 1 1 3 0 2 0 4 1 5 1".split(" "), "0 1 3 2 4 5 6 7".split(" "), "897 9 918 37 912 95 557 942 933 102 932 184 914 204 903 266 929 271 613 515 591 478 536 516 318 515 291 485 250 479 230 515 185 512 171 484 131 479".split(" "), "915 59 915 59 916 227 627 483 574 499 261 500 200 479 139 497".split(" "), "1 2 3 4 5 6 7 8".split(" "), "DungWeaponPunch DungWeaponSword DungWeaponBow DungWeaponWand DungEquipmentHats DungEquipmentShirt DungEquipmentPants DungEquipmentShoes DungEquipmentPendant DungEquipmentRings".split(" "), "10 11 12 13 14 19 20 21 22 23 24 26 27 29 30 31 8 7 100 101 102".split(" "), ["DungCredits1", "DungCredits2"], "Iron 75 CopperBar 50 JungleTree 50 BirchTree 60 Fish1 50 Fish2 50 Gold 75 Bug1 125 Bug2 150".split(" "), "Dementia 80 PalmTree 120 StumpTree 100 Fish3 100 Fish4 100 Gold 75 PlatBar 20 Bug3 150 Bug5 100".split(" "), "16 50 90 85 75 60".split(" "), "15 30 46 90 91 105 106 115 120 121 270 271 285 286 300 301 450 451 453 460 465 466 467 480 481 482 495 496 497 135 136 137 165 360 316 317 315 361 362 363 525 526 527".split(" "), ["636", "638", "633", "637", "640"], "0 1 2 3 4 5 6 7 25 26".split(" "), "8 9 10 11 12 13 14 15 16".split(" "), "17 18 19 20 21 22 23 24 27 28".split(" "), "2 7 9 11 17 16 4 5 3 7 12 20 19 16 4 5 7 18 13 21 23 16 4 5 7 14 16 5 24 22 25 26 28".split(" "), "0 3 5 8 10 13 15 19 20 23 27 31 33 37 41 45 48 50 53 56 58 60 63 66 70".split(" "), "1 .20 .10 .05 .02 .01 .004 .001 .0005 .0003".split(" "), "_ _ _ _ _ _ _ _ _ _ BarCook.png BarBreed.png BarLab.png BarB2.png BarDiv.png BarR2.png BarB5.png BarB2.png BarB4.png BarSpel.png BarSpel.png BarSpel.png".split(" "), "1 16 28 51 55 57 63 70 101 108 110 116".split(" "), "2 5 8 12 15 20 25 35 50 65 80 100 125 150 175 200".split(" "), "2 3 4 7 11 15 20 35 60 100 170 300 500 800 1250 1700 2550 3000 4000 5000 7000 9000 12500 17500 25000 35000 45000 60000 100000 150000 200000 350000 600000 1200000 1500000 1900000 2500000 3500000 5000000 7000000 10000000 15000000 25000000 50000000 65000000 80000000 125000000 150000000 160000000 200000000 250000000 350000000 400000000 500000000 600000000 800000000 1000000000 1250000000 1500000000 1800000000 2000000000 3000000000 5000000000 8000000000 12000000000 18000000000 25000000000 40000000000 60000000000 75000000000 90000000000".split(" "), "0 2 7 3 0 12 21 9 20 1 6 3 22 2 15 26 19 0 9 13 8 28 30 18 23 6 15 22 14 11 17 21 33 19 16 13 8 10 7 23 11 14 25 16 31 24 33 32 29 14 27 31 25 24 10 33 6 9 12 16 20 23 25 27 33 32 26 2 2 2 2".split(" "), "0 2 7 0 3 12 21 2 7 9 1 3 20 6 12 22 21 15 0 9 23 1 19 20 2 13 6 8 22 15 18 23 14 21 19 11 13 8 17 7 18 16 14 1 10 20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11".split(" "), "1 10 30 75 125 500 1000 999999".split(" "), "Gobo Oinkin Capital_P Blobbo Nebula_Neddy Eliteus Rift_Ripper Nebulyte Monolith Royal_Worm".split(" "), "5 5 15 5 1 15 5 1 1".split(" "), "105 110 111 113 130 131 134 137 138 142 143 144 146 149 152 153 154 155 156 157 159 161 164 165 166 167 168 171 174 178 179 180 182 183".split(" "), "WORLD_7_v1.00;NEW_UPDATE_PATCH_NOTES_@_*NEW_WORLD:_World_7_is_HERE!_Defeat_The_Emperor_boss_at_the_end_of_World_6_to_unlock!_@_*NEW_MAP:_Explore_through_12_maps_full_of_monsters,_resources,_secrets,_and_new_NPCs!_@_*NEW_SKILL:_Spelunking!_Level_up_by_exploring_caves_found_throughout_World_7,_then_delve_down_tunnels_to_find_amber_and_defeat_Lore_Bosses_to_unlock_new_content_for_the_rest_of_IdleOn!_@_*TOWN_FEATURES:_Rescue_fishies_to_boost_your_Coral_Reef_for_game_changing_bonuses,_and_spend_Legendary_Talent_PTS_earned_by_leveling_up_at_Whallamus!_@_*THE_GALLERY:_Codfrey_will_give_you_bonuses_from_all_the_Trophies_and_Nametags_you've_ever_found!_The_new_Replica_items_in_the_Town_Shop_let_you_mix_and_match_Trophies_and_Nametags_however_you_like!_@_*NEW_CONTENT:_Gaming_Palette,_Exotic_and_Medal_Farming,_Duperbits,_Teal_Summoning,_Ethereal_Sigils,_Mini_Ninja_Knowledge,_Killroy_Upgrades,_and_SO_much_more..._(Many_of_these_are_unlocked_via_Spelunking)_@_*SO_MANY_MORE_THINGS_SERIOUSLY_YOU_GUYS!!!_Click_Discord_button_up_there_for_full_patch_notes!;*Le Monde 6 est arriv\u00e9, avec tout ce que vous pourriez souhaiter ! De nouveaux monstres, de nouvelles comp\u00e9tences, de nouvelles cartes, de nouveaux tampons, de nouvelles bulles, de nouvelles fioles, de nouvelles statues, de nouveaux \u00e9quipements, tellement de nouveaut\u00e9s ! @ *Vous pouvez d\u00e9couvrir le Monde 6 vous-m\u00eame, \u00e0 la place, ces notes de mise \u00e0 jour concernent tous les changements de cette mise \u00e0 jour non li\u00e9s au Monde 6. @ *Nouvel affichage des pi\u00e8ces ajout\u00e9 ! Collectez 100 pi\u00e8ces Godshard pour voir ce que je veux dire ! @ *Le succ\u00e8s Trial by Time peut d\u00e9sormais \u00eatre compl\u00e9t\u00e9 \u00e0 n'importe quelle vitesse de d\u00e9placement. @ *Mise \u00e0 l'\u00e9chelle du bonus ajust\u00e9e sur la 6\u00e8me bulle de chaque couleur. C'est un buff pour toute personne en dessous du niveau de bulle 300, sinon c'est un nerf. @ * Correction du probl\u00e8me o\u00f9 les archers glissaient lorsqu'ils essayaient de combattre des foules prot\u00e9g\u00e9es. @ *Les attaques au canon de Siege Breaker apparaissent d\u00e9sormais derri\u00e8re lui.;*Welt 6 ist da, mit allem, was Sie sich nur w\u00fcnschen k\u00f6nnen! Neue Monster, neue F\u00e4higkeiten, neue Karten, neue Stempel, neue Blasen, neue Fl\u00e4schchen, neue Statuen, neue Ausr\u00fcstung, so viel neues Zeug! @ *Sie k\u00f6nnen Welt 6 selbst entdecken. Stattdessen gelten diese Patchnotizen f\u00fcr alle \u00c4nderungen in diesem Update, die nicht mit Welt 6 zusammenh\u00e4ngen. @ *Neue M\u00fcnzanzeige hinzugef\u00fcgt! Sammle 100 Godshard-M\u00fcnzen, um zu sehen, was ich meine! @ *Die Errungenschaft \u201ePr\u00fcfung durch Zeit\u201c kann jetzt bei jeder Bewegungsgeschwindigkeit abgeschlossen werden. @ *Bonusskalierung f\u00fcr die 6. Blase jeder Farbe angepasst. Es ist ein Buff f\u00fcr alle unter Bubble Lv 300, andernfalls ist es ein Nerf. @ *Das Problem wurde behoben, bei dem Bogensch\u00fctzen herumrutschten, wenn sie versuchten, gegen abgeschirmte Mobs zu k\u00e4mpfen. @ *Die Kanonenangriffe von Belagerungsbrecher erscheinen jetzt hinter ihm.;*\uc6d0\ud558\ub294 \ubaa8\ub4e0 \uac83\uc744 \uac16\ucd98 \uc6d4\ub4dc 6\uc774 \ub3c4\ucc29\ud588\uc2b5\ub2c8\ub2e4! \uc0c8\ub85c\uc6b4 \ubaac\uc2a4\ud130, \uc0c8\ub85c\uc6b4 \uae30\uc220, \uc0c8\ub85c\uc6b4 \uc9c0\ub3c4, \uc0c8\ub85c\uc6b4 \uc6b0\ud45c, \uc0c8\ub85c\uc6b4 \uac70\ud488, \uc0c8\ub85c\uc6b4 \uc57d\ubcd1, \uc0c8\ub85c\uc6b4 \uc870\uac01\uc0c1, \uc0c8\ub85c\uc6b4 \uc7a5\ube44, \ub108\ubb34\ub098 \ub9ce\uc740 \uc0c8\ub85c\uc6b4 \uac83\ub4e4! @ *\uc6d4\ub4dc 6\ub97c \uc9c1\uc811 \ubc1c\uacac\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub300\uc2e0 \uc774 \ud328\uce58 \ub178\ud2b8\ub294 \uc6d4\ub4dc 6\uacfc \uad00\ub828\ub418\uc9c0 \uc54a\uc740 \uc774\ubc88 \uc5c5\ub370\uc774\ud2b8\uc758 \ubaa8\ub4e0 \ubcc0\uacbd \uc0ac\ud56d\uc5d0 \ub300\ud55c \uac83\uc785\ub2c8\ub2e4. @ *\uc0c8\ub85c\uc6b4 \ucf54\uc778 \ud45c\uc2dc\uac00 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4! 100\uac1c\uc758 \uac13\uc0e4\ub4dc \ub3d9\uc804\uc744 \ubaa8\uc544 \ubb34\uc2a8 \ub73b\uc778\uc9c0 \uc54c\uc544\ubcf4\uc138\uc694! @ *\uc774\uc81c \ubaa8\ub4e0 \uc774\ub3d9 \uc18d\ub3c4\uc5d0\uc11c \uc2dc\uac04\ubcc4 \uc2dc\ud5d8 \uc5c5\uc801\uc744 \uc644\ub8cc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. @ *\uac01 \uc0c9\uc0c1\uc758 6\ubc88\uc9f8 \ubc84\ube14\uc5d0 \ub300\ud55c \ubcf4\ub108\uc2a4 \uc2a4\ucf00\uc77c\ub9c1\uc744 \uc870\uc815\ud588\uc2b5\ub2c8\ub2e4. \ubc84\ube14 Lv 300 \ubbf8\ub9cc\uc778 \uc0ac\ub78c\uc5d0\uac8c\ub294 \ubc84\ud504\uc774\uace0, \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \ub108\ud504\uc785\ub2c8\ub2e4. @ *\ubc29\uc5b4\ub9c9\uc774 \uc788\ub294 \ubab9\uacfc \uc2f8\uc6b8 \ub54c \uad81\uc218\uac00 \ubbf8\ub044\ub7ec\uc9c0\ub294 \ubb38\uc81c\ub97c \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. @ *Siege Breaker\uc758 \ub300\ud3ec \uacf5\uaca9\uc774 \uc774\uc81c \uadf8\uc758 \ub4a4\uc5d0\uc11c \uc0dd\uc131\ub429\ub2c8\ub2e4.;*\u3042\u306a\u305f\u304c\u671b\u3080\u3059\u3079\u3066\u304c\u63c3\u3063\u305f\u30ef\u30fc\u30eb\u30c9 6 \u304c\u5230\u7740\u3057\u307e\u3057\u305f!\u65b0\u3057\u3044\u30e2\u30f3\u30b9\u30bf\u30fc\u3001\u65b0\u3057\u3044\u30b9\u30ad\u30eb\u3001\u65b0\u3057\u3044\u30de\u30c3\u30d7\u3001\u65b0\u3057\u3044\u30b9\u30bf\u30f3\u30d7\u3001\u65b0\u3057\u3044\u30d0\u30d6\u30eb\u3001\u65b0\u3057\u3044\u5c0f\u74f6\u3001\u65b0\u3057\u3044\u5f6b\u50cf\u3001\u65b0\u3057\u3044\u88c5\u5099\u306a\u3069\u3001\u65b0\u3057\u3044\u3082\u306e\u304c\u305f\u304f\u3055\u3093\u3042\u308a\u307e\u3059\u3002 @ *\u30ef\u30fc\u30eb\u30c9 6 \u306f\u3054\u81ea\u8eab\u3067\u767a\u898b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4ee3\u308f\u308a\u306b\u3001\u3053\u308c\u3089\u306e\u30d1\u30c3\u30c1\u30ce\u30fc\u30c8\u306f\u3001\u30ef\u30fc\u30eb\u30c9 6 \u306b\u95a2\u4fc2\u3057\u306a\u3044\u3053\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306e\u3059\u3079\u3066\u306e\u5909\u66f4\u3092\u5bfe\u8c61\u3068\u3057\u3066\u3044\u307e\u3059\u3002 @ *\u65b0\u3057\u3044\u30b3\u30a4\u30f3\u306e\u8868\u793a\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002 Godshard \u30b3\u30a4\u30f3\u3092 100 \u679a\u96c6\u3081\u3066\u3001\u79c1\u306e\u8a00\u3063\u3066\u3044\u308b\u610f\u5473\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002 @ *Trial by Time \u30a2\u30c1\u30fc\u30d6\u30e1\u30f3\u30c8\u306f\u4efb\u610f\u306e\u79fb\u52d5\u901f\u5ea6\u3067\u5b8c\u4e86\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002 @ *\u5404\u8272\u306e 6 \u756a\u76ee\u306e\u30d0\u30d6\u30eb\u306e\u30dc\u30fc\u30ca\u30b9 \u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u3092\u8abf\u6574\u3057\u307e\u3057\u305f\u3002\u30d0\u30d6\u30ebLv 300\u4ee5\u4e0b\u306e\u4eba\u306b\u3068\u3063\u3066\u306f\u30d0\u30d5\u3067\u3059\u304c\u3001\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f\u30ca\u30fc\u30d5\u3067\u3059\u3002 @ *\u5c04\u624b\u304c\u30b7\u30fc\u30eb\u30c9\u3055\u308c\u305fMob\u3068\u6226\u304a\u3046\u3068\u3059\u308b\u3068\u6ed1\u308a\u56de\u308b\u554f\u984c\u3092\u4fee\u6b63\u3057\u307e\u3057\u305f\u3002 @ *Siege Breaker \u306e\u5927\u7832\u653b\u6483\u304c\u5f7c\u306e\u80cc\u5f8c\u306b\u51fa\u73fe\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002;*\u4e16\u754c 6 \u5df2\u7ecf\u5230\u6765\uff0c\u62e5\u6709\u60a8\u60f3\u8981\u7684\u4e00\u5207\uff01\u65b0\u602a\u7269\u3001\u65b0\u6280\u80fd\u3001\u65b0\u5730\u56fe\u3001\u65b0\u5370\u7ae0\u3001\u65b0\u6ce1\u6ce1\u3001\u65b0\u74f6\u5b50\u3001\u65b0\u96d5\u50cf\u3001\u65b0\u88c5\u5907\uff0c\u8fd9\u4e48\u591a\u65b0\u4e1c\u897f\uff01 @ *\u60a8\u53ef\u4ee5\u81ea\u5df1\u53d1\u73b0\u4e16\u754c 6\uff0c\u76f8\u53cd\uff0c\u8fd9\u4e9b\u8865\u4e01\u8bf4\u660e\u9002\u7528\u4e8e\u672c\u6b21\u66f4\u65b0\u4e2d\u4e0e\u4e16\u754c 6 \u65e0\u5173\u7684\u6240\u6709\u66f4\u6539\u3002@ *\u6dfb\u52a0\u4e86\u65b0\u786c\u5e01\u663e\u793a\uff01\u6536\u96c6 100 \u4e2a\u795e\u788e\u7247\u786c\u5e01\u5c31\u660e\u767d\u6211\u7684\u610f\u601d\u4e86\uff01 @ *\u65f6\u95f4\u5ba1\u5224\u6210\u5c31\u73b0\u5728\u53ef\u4ee5\u4ee5\u4efb\u4f55\u79fb\u52a8\u901f\u5ea6\u5b8c\u6210\u3002 @ *\u8c03\u6574\u4e86\u6bcf\u79cd\u989c\u8272\u7684\u7b2c\u516d\u4e2a\u6c14\u6ce1\u7684\u5956\u91d1\u6bd4\u4f8b\u3002\u5bf9\u4e8e 300 \u7ea7\u4ee5\u4e0b\u7684\u6ce1\u6ce1\u6765\u8bf4\u662f\u4e00\u4e2a buff\uff0c\u5426\u5219\u5c31\u662f nerf\u3002 @ *\u4fee\u590d\u4e86\u5f13\u7bad\u624b\u5728\u8bd5\u56fe\u5bf9\u6297\u5c4f\u853d\u5c0f\u602a\u65f6\u4f1a\u6ed1\u52a8\u7684\u95ee\u9898\u3002 @ *\u653b\u57ce\u8005\u7684\u5927\u70ae\u653b\u51fb\u73b0\u5728\u5728\u4ed6\u8eab\u540e\u4ea7\u751f\u3002".split(";"), "Pet0 Pet1 Pet3 Pet2 Pet7 w4b4 Pet10 Pet5 Pet8 Pet11 PetNA".split(" "), "0 2 7 13 22 31 38 48 54 62 62".split(" "), "TestObj16 TestObj5 TestObj8 TestObj14 TestObj15 EquipmentWeapons1 Trophy4 EquipmentCape1 EquipmentWeapons2 EquipmentRingsChat8 EquipmentHats72 EquipmentNametag2 EquipmentGown0 TrophyReplica4 EquipmentNametagReplica2".split(" "), "babayaga babaHour poopBig babaMummy mini3a mini4a iceBossZ iceBossZ2 iceBossZ3 snakeZ snakeZ2 snakeZ3 frogGR frogGR2 frogGR3 Meteor".split(" "), "BLOOD_BERSERKER DEATH_BRINGER DIVINE_KNIGHT ROYAL_GUARDIAN SIEGE_BREAKER MAYHEIM WIND_WALKER BEAST_MASTER ELEMENTAL_SORCERER SPIRITUAL_MONK ARCANE_CULTIST BUBONIC_CONJUROR FILLER MINING SMITHING CHOPPING FISHING ALCHEMY BUG_CATCHING TRAPPING CONSTRUCTION WORSHIP COOKING BREEDING LABORATORY SAILING DIVINITY GAMING FARMING SNEAKING SUMMONING".split(" "), "_ DEATH_BRINGER _ ROYAL_GUARDIAN _ MAYHEIM WIND_WALKER _ _ SPIRITUAL_MONK ARCANE_CULTIST _ FILLER MINING SMITHING CHOPPING FISHING ALCHEMY BUG_CATCHING TRAPPING CONSTRUCTION WORSHIP COOKING BREEDING LABORATORY SAILING DIVINITY GAMING FARMING SNEAKING SUMMONING".split(" "), "GrasslandsA GrasslandsB SewerA TreeInteriorA GrasslandsC SewerB JungleA GrasslandsD TreeInteriorB JungleB JungleC ForestA ForestB ForestC TreeInteriorC".split(" "), "zDesertCalmA zDesertCalmB zDesertCalmC zDesertMildA zDesertMildB zDesertMildC zDesertMildD zDesertNightA zDesertNightB zDesertNightC zDesertNightD".split(" "), "ySnowA1 ySnowA2 ySnowA3 ySnowB1 ySnowB2 ySnowB3 ySnowB4 ySnowB5 ySnowC1 ySnowC2 ySnowC3 ySnowC4 ySnowD1".split(" "), "xSpaceA1 xSpaceA2 xSpaceA3 xSpaceA4 xSpaceB1 xSpaceB2 xSpaceB3 xSpaceB4 xSpaceB5 xSpaceC1 xSpaceC2 xSpaceC3 xSpaceC4".split(" "), "wLavaA1 wLavaA2 wLavaA3 wLavaA4 wLavaA5 wLavaB1 wLavaB2 wLavaB3 wLavaB4 wLavaB5 wLavaB6 wLavaC1 wLavaC2".split(" "), "Oh_hi_again_cutie..._how_you_doing? Heyyyyy..._so_uhm,_yea..._about_that... Oh,_it's_you..._huh.... Well_well_well_look_who_came_back!_I_knew_you_couldn't_resist_me! Great_timing!_I_just_finished_work,_I_dropped_351_new_players_off_at_world_1_# My_my..._you_look_just_as_handsome_as_the_day_we_first_met! Ew,_the_noob_is_back_|_@_Haha_just_kidding_you're_still_a_cutie. Oh_how_long_I've_been_waiting_for_you_to_return... Aha!_I_knew_you_wouldn't_forget_about_me! I_knew_what_we_had_between_us_was_special,_I'm_glad_you_felt_the_same_way...".split(" "), "Kill_all_monsters_in_under_25_seconds!_Tick_tock,_times_running_out!! Defeat_10_monsters_without_hurting_a_green_mushroom! Yahtzee!!!!_You_need_a_6,_or_it's_gonna_be_all_over_baby! Oh_no,_the_energy_orbs_are_coming!_Hehehe_don't_get_zapped! I'm_gonna_close_my_eyes_and_count_to_10._You_better_be_climbing_when_I_open_them! Defeat_5_monsters_within_20_seconds!_Yeah_yeah_move_them_feet!! Ok_uhhmm..._how_about_a_classic_coin_flip?_Look_right_for_heads,_look_left_for_tails! Hmmm..._now_kill_the_monster_closest_to_the_middle_of_the_screen! 'Yawn'..._Uh,_do_100_lines_of_damage_before_I_get_bored_and_self_heal! WHAT?_Who_let_all_these_shrooms_in??!?_Haha_jk_jk_it_was_obviously_me._Ya_got_35_seconds... I_sure_love_my_soda,_it'd_be_a_real_shame_if_any_were_to_get_spilled..._anyway,_go_kill_that_crab_hehe! ".split(" "), "Aaaaarrrggghhh...._aauuguauauauauauau..._I'm_ded...._hehehehe OOF_OUCHIE!_I'm_gonna_need_an_ice_pack_for_this_one..._pfft_hahahaha!! Awww_ya_got_me_^_hahaha_\\ Oh_jeez,_Lava_ain't_gonna_be_happy_when_I_tell_him_that_you_made_it_this_Far..._erm,_I_mean_dying_noises!!!_Gahh_I'm_dead!! Golly!_You_done_killed_me!_Shucks,_guess_you_get_all_this_loot_now_since_I'm_dead_and_all_that_lol ..._@_I'd_congratulate_you_for_killing_me,_but_I_think_Lava_told_me_that_playing_dead_means_not_talking,_so_I_won't_say_anything... Oh_no_I'm_dead_etc_etc_yada_yada..._ugh_when_is_my_shift_over... Oof_there_goes_my_HP_bar,_guess_you_finally_vanquished_IdleOn's_'FINAL'_Boss...._tehehehe Wow_what_a_fight!_Here,_you_deserve_these_great_items,_after_all_I_am_the_final_boss_and_you_did_kill_me_once_and_for_all_#".split(" "), "0 1 6 7 8 9 11 12 19 28 29 30 31 32 filler filler".split(" "), ["ObolAmarokA", "ObolEfauntA", "ObolChizoarA", "ObolSlush", "ObolTroll"], "96 137 168 159 57 258 247 160 113 308 197 315 325 205 280 330".split(" "), "Slargon Pirate_Porkchop Muhmuguh Poigu Lava_Larry Tired_Mole".split(" "), "Lafu_Shi Hoov Woodlin_Elder Tribal_Shaman Legumulyte Potti Sussy_Gene Spirit_Sungmin Masterius".split(" "), ["Meteor", "rocky", "iceknight", "snakeZ", "frogGR"], ["EquipmentHats78", "EquipmentRingsChat10"], ["EquipmentToolsHatchet11"], ["EquipmentHats79", "ObolKnight"], ["EquipmentTools13"], ["ObolFrog"], "w5a1 w5a2 w5a3 w5a4 w5a5 w5b1 w5b2 w5b3 w5b4 w5b5 w5b6 w5c1 w5c2 Copper Iron Gold Plat Dementia Void Lustre Starfire Dreadlo Godshard FishSmall FishMed Bug2 FishBig w6a1 w6a2 w6a3 w6a4 w6a5 w6b1 w6b2 w6b3 w6b4 w6c1 w6c2 w6d1 w6d2 w6d3 rift1 rift2 rift3 rift4 rift5 w7a1 w7a2 w7a3 w7a4 w7a5 w7a6 w7a7 w7a8 w7a9 w7a10 w7a11 w7a12".split(" "), "6 7 5 6 6 3 10 15 8 5 7 6 6 0 9 0 3 0 7 11 8 4 3 1 5 5 0 7 8 3 -1 10 2 5 5 10 4 4 2 2 0 1 3 10 0 5 5 3 2 4 4 0 5 4 6 0 -2 5 2 5 6 6 12 3 10 0 0 4 8 2 1 3 9 0".split(" "), "7 6 4 -1 9 4 3 5 6 9 5 1 7 0 2 0 6 0 7 4 1 0 -4 3 5 2 6 6 2 -1 -3 7 1 2 2 10 -3 0 3 4 0 1 -1 4 0 2 -1 0 0 -1 3 0 1 1 8 -6 -2 -3 -5 6 0 0 9 3 9 0 0 9 8 -4 4 2 11 0".split(" "), "0 16 3 5 15 20 0 1 3 4 10 22 2 3 11 19 16 6 5 22 21 20 7 12 15 3 8 0 23 9 22 4 21 5 1 13 3 2 24 16 14 17 25 6 4 15 24 7 18 21 5 3 0 9 24 1 6 2 4 23 16 24 25 7 5 8 9 20 16 1".split(" "), "+{%_Drop_Rate +{%_Class_EXP +{%_Skill_EXP +{_Infinite_Star_Signs +{%_Multikill_Per_Tier +{%_Total_Damage +{_Base_STR +{_Base_AGI +{_Base_WIS +{_Base_LUK +{_Tab_1_Talent_Pts +{_Tab_2_Talent_Pts +{_Tab_3_Talent_Pts +{_Tab_4_Talent_Pts +{_Star_Talent_Pts +{%_Faster_Refinery_Speed +{%_Faster_Shiny_Pet_Lv_Up_Rate +{%_Sail_Captain_EXP_Gain +{%_Lower_Minimum_Travel_Time_for_Sailing +{%_Line_Width_in_Lab +{%_Bonuses_from_All_Meals +{%_Higher_Artifact_Find_Chance +{_Base_Efficiency_for_All_Skills +{_Base_Critters_per_Trap +{%_Farming_EXP_gain +{%_Summoning_EXP_gain".split(" "), "1 1 2 2 1 1 2 2 2 2 2 2 2 2 2 2 3 3 1 1 1 2 20 1 1 1".split(" "), "test2;test2 Copy;dez;Beach;testi;testorama;des;Beach2".split(";"), "42 318 497 79 146 362 43 536 165 35".split(" "), "30 185 237 346 238 414 398 412 178 660 879 889 731 867 724 500 501 568 68 382 255 31 554 666 724 514".split(" "), "113 208 113 89 23 191 229 212 172 64 119 88 185 22 155 145 210 111 18 20 40 80 23 43 204 228".split(" "), "9999999 172800 86400 57600 43200 28800 14400 7200 3600".split(" "), "w6a1 w6a1 w6a3 w6a4 w6a4 w6a5 w6b1 w6b2 w6b3 w6b4 w6c1 w6d3 w6d1 w6d2 w6a2".split(" "), "vSpiritA1 vSpiritA2 vSpiritA3 vSpiritA4 vSpiritA5 vSpiritB1 vSpiritB2 vSpiritB3 vSpiritB4 vSpiritC1 vSpiritC2 vSpiritD1 vSpiritD2 vSpiritD3".split(" "), "\u00c2 \u00e2 \u0153 \u0178 \u00d4 \u00d6 \u00f4 \u00c9 \u00c8 \u00c7 \u0152 \u0152\u00e2 \u0152\u0153 \u0152\u0178".split(" "), "Gemstone_Ninja_Knowledge_{_+30%_DROP_RARITY New_Gold_Charms_added_{_+10%_ALL_STAT Bargain_Ninja_Knowledge_{_+5_All_Talent_LV +30_Max_LV_for_Sneaking_Items_{_1.10#_DMG_MULTI Centurion_Ninja_Knowledge_{_+10%_DAILY_CORAL Haha_yea_there's_no_bonus_here_yet. Haha_yea_there's_no_bonus_here_yet. Haha_yea_there's_no_bonus_here_yet.".split(" "), "{}%_Stealth_@_for_all_Ninjas {}%_Jade_@_Gain {}%_Damage_@_to_Doors +}%_Gold_@_Charm_Bonus {}%_Sneak_@_EXP_Gain {}%_Bonuses_@_from_Gemstones $%_Cheaper_@_Upgrades {}_Higher_@_Charm_LVs".split(" "), "Mega-Rare_Drop Rare_Drop LockedInvSpace Blank InvStorage99 GemP16 GemP25 GemP19 GemP9 GemP10 InvBag21 InvBag22 InvBag23 InvBag24 InvBag25 InvBag26 InvStorage31 InvStorage32 InvStorage33 InvStorage34 InvStorage35 InvStorage36 InvStorage37 InvStorage38 InvStorage39 InvStorage40 InvStorage41 InvStorage42 GemP35 EquipmentHats43 Quest31 EquipmentHats36".split(" "), "mushG frogG beanG slimeG snakeG carrotO goblinG plank frogBIG branch acorn jarSand mimicA crabcake coconut sandcastle pincermin poopSmall ratB potato steak moonman sandgiant snailZ sheep flake stache bloque mamoth snowball penguin thermostat glass snakeB speaker eye ram mushP w4a2 w4a3 demonP w4b2 w4b1 w4b3 w4b4 w4b5 w4c1 w4c2 w4c3 w4c4 w5a1 w5a2 w5a3 w5a4 w5a5 w5b1 w5b2 w5b3 w5b4 w5b5 w5b6 w5c1 w5c2 w5b6 w6a1 w6a2 w6a3 w6a4 w6a5 w6b1 w6b2 w6b3 w6b4 w6c1 w6c2 w6d1 w6d2 w6d3".split(" "), "3 2 4 5 106 8 12 6 7 107 118 10 110 116 9 113 11 114 109 108 117 115 112 111".split(" "), "14 17 119 18 120 16 15 21 122 124 19 123 20 121 22 129 125 130 134 128 127 133 24 25 132 131 23 135 26 136 126".split(" "), "28 29 139 35 137 30 142 34 140 141 32 145 31 37 138 38 146 33 144 36 148 147 150 149 39 143".split(" "), "42 41 43 44 45 154 151 47 152 49 48 155 46 52 50 157 53 158 153 56 51 156 164 55 163 57 162 159 167 54 161 58 166 160 165 168 169 59".split(" "), "60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105".split(" "), ["\u62f3", "\u62d6", "\u62d2", "\u62c7", "\u62c5"], "\u62a2 \u62a0 \u626f \u626d \u626b \u6258 \u6253 \u624d \u624b".split(" "), "mushG frogG beanG slimeG snakeG carrotO goblinG plank frogBIG branch acorn mushW poopSmall ratB poopD Crystal0 jarSand mimicA crabcake coconut sandcastle pincermin potato steak moonman sandgiant snailZ Crystal1 sheep flake stache bloque mamoth snowball penguin thermostat glass snakeB speaker eye ram skele2 skele rockS Crystal2 mushP w4a2 w4a3 demonP w4b2 w4b1 w4b3 w4b4 w4b5 w4c1 w4c2 w4c3 w4c4 Crystal3 w5a1 w5a2 w5a3 w5a4 w5a5 w5b1 w5b2 w5b3 w5b4 w5b5 w5b6 w5c1 w5c2 caveA caveB caveC Crystal4 w6a1 w6a2 w6a3 w6a4 w6a5 w6b1 w6b2 w6b3 w6b4 w6c1 w6c2 w6d1 w6d2 w6d3 Crystal5 reindeer mushR shovelR slimeB babayaga poopBig babaHour babaMummy mini3a mini4a mini5a mini6a ghost slimeR sheepB snakeY crabcakeB shovelY Meteor frogGR rocky snakeZ iceknight ChestA1 ChestB1 ChestC1 ChestA2 ChestB2 ChestC2 ChestA3 ChestB3 ChestC3 ChestA4 ChestB4 ChestC4 ChestA5 ChestB5 ChestC5 ChestA6 ChestB6 ChestC6".split(" "), "COPPER_SET IRON_SET AMAROK_SET GOLD_SET PLATINUM_SET EFAUNT_SET DEMENTIA_SET VOID_SET CHIZOAR_SET LUSTRE_SET DIABOLICAL_SET TROLL_SET SECRET_SET MAGMA_SET KATTLEKRUK_SET MARBIGLASS_SET GODSHARD_SET EMPEROR_SET PREHISTORIC_SET".split(" "), ["Snootie", "Sad_Urie", "Bloo_Radley", "Toobus_Goobus"]] +# Last updated in v2.505 May 18 +MapDispName = "Blunder_Hills Spore_Meadows Froggy_Fields JungleZ PlayerSelect PlayerSelect Tunnels_Entrance Freefall_Caverns Poopy_Sewers The_Office The_Ol'_Straightaway Echoing_Egress Slip_Slidy_Ledges The_Base_Of_The_Bark Valley_Of_The_Beans Rats_Nest Jungle_Perimeter Birch_Enclave Hollowed_Trunk Winding_Willows TutorialA TutorialB TutorialC TutorialD Vegetable_Patch JungleX Forest_Outskirts Encroaching_Forest_Villas Tucked_Away End_Of_The_Road The_Roots Where_the_Branches_End Motherlode_Pit How_Did_u_get_here Miningg1 Miningg2 Dewdrop_Colosseum Spike_Surprise Meel's_Crypt Grandfrog's_Backyard Grandfrog's_Gazebo Pet_Park Grand_Owl_Perch Z Z Z Z Z Z Z YumYum_Grotto Jar_Bridge The_Mimic_Hole Dessert_Dunes Salty_Shores Faraway_Piers Filler The_Grandioso_Canyon Shifty_Sandbox Pincer_Plateau Slamabam_Straightaway Deepwater_Docks The_Ring Up_Up_Down_Down Sands_of_Time Djonnuttown Efaunt's_Tomb Bandit_Bob's_Hideout Sandstone_Colosseum Mummy_Memorial Heaty_Hole Gravel_Tomb YumYum_Islands The_Oasis Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Frostbite_Towndra Steep_Sheep_Ledge Trappers_Folley Snowfield_Outskirts The_Stache_Split Refrigeration_Station Mamooooth_Mountain Rollin'_Tundra Signature_Slopes Thermonuclear_Climb Waterlogged_Entrance Cryo_Catacombs Overpass_of_Sound Crystal_Basecamp Chizoar's_Cavern Coldsnap_Colosseum Wam_Wonderland Hell_Hath_Frozen_Over Inside_the_Igloo Igloo's_Basement Equinox_Valley Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Outer_World_Town Spaceway_Raceway TV_Outpost Donut_Drive-In Outskirts_of_Fallstar_Isle Mountainous_Deugh Wurm_Highway Jelly_Cube_Bridge Cocoa_Tunnel Standstill_Plains Shelled_Shores The_Untraveled_Octopath Flamboyant_Bayou Enclave_of_Eyes Astro_Colosseum Enclave_a_la_Troll The_Rift Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Magma_Rivertown Naut_Sake_Perimeter Niagrilled_Falls The_Killer_Roundabout Cracker_Jack_Lake The_Great_Molehill Erruption_River Mount_Doomish OJ_Bay Lampar_Lake Spitfire_River Miner_Mole_Outskirts Crawly_Catacombs The_Worm_Nest KattleKruk's_Volcano Molten_Colosseum The_Hole Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Spirit_Village Gooble_Goop_Creek Picnic_Bridgeways Irrigation_Station Troll_Playground Edge_of_the_Valley Bamboo_Laboredge Lightway_Path Troll_Broodnest Above_the_Clouds Sleepy_Skyline Dozey_Dogpark Yolkrock_Basin Chieftain_Stairway Emperor's_Castle_Doorstep Whimsical_Colosseum Emperor's_Castle Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Shimmerfin_Grove Refraction_Bend Doodle_Reef Seaweed_Street Barnacle_Curb Balloon_Bay The_Clamworks Plastic_Basin Puffpuff_Overpass Pinpoint_Summit Middle_of_Nowhere Coralcave_Outskirts Coralcave_Perimeter Unused Unused Deep_End_of_the_Koipond Minefield Pirate_Upper_Deck Sushi_Perimeter Jellofish_Fields Where_the_Kelp_Meets_Trench Trench_Precipice fillername fillername fillername Pirate_Mess_Hall fillername".split(" ") + # `ClassNames` in source. Last updated in v2.43 Nov 10. # Note that this includes skills and various placeholders ClassNames = "0 BEGINNER JOURNEYMAN MAESTRO VOIDWALKER INFINILYTE RAGE_BASICS WARRIOR BARBARIAN SQUIRE BLOOD_BERSERKER NOPE DIVINE_KNIGHT NOPE DEATH_BRINGER FILLER ROYAL_GUARDIAN FILLER CALM_BASICS ARCHER BOWMAN HUNTER SIEGE_BREAKER NOPE NOPE BEAST_MASTER FILLER FILLER FILLER WIND_WALKER SAVVY_BASICS MAGE WIZARD SHAMAN ELEMENTAL_SORCERER SPIRITUAL_MONK BUBONIC_CONJUROR NOPE FILLER FILLER ARCANE_CULTIST FILLER MINING SMITHING CHOPPING FISHING ALCHEMY BUG_CATCHING TRAPPING CONSTRUCTION WORSHIP COOKING BREEDING LABORATORY SAILING DIVINITY GAMING FARMING SNEAKING SUMMONING SPELUNKING".split(" ") diff --git a/mysite/consts/idleon/w7/research.py b/mysite/consts/idleon/w7/research.py new file mode 100644 index 00000000..e3b6d01c --- /dev/null +++ b/mysite/consts/idleon/w7/research.py @@ -0,0 +1,38 @@ +from utils.number_formatting import parse_number +from utils.text_formatting import numberToLetter + +# Last updated in v2.505 May 18 +# make sure to manually turn `.split("")` into `.split(" ")` and add spaces between each value +Research = ["16,0;32,29;16,59;0,30 29,0;45,5;55,16;58,28;54,44;47,52;31,58;15,54;4,44;0,30;3,16;14,4 1,1;31,1;31,31;1,31 17,0;58,0;75,33;58,67;17,67;0,34 0,0;111,0;111,80;0,80 42,0;53,26;83,29;63,50;71,80;42,67;12,80;20,50;0,29;30,26 110,0;141,63;0,58 62,0;92,8;103,21;67,18;46,30;35,52;37,82;48,99;71,109;102,105;100,113;86,122;65,127;40,123;20,110;5,90;0,70;2,45;15,22;36,6 20,0;31,3;35,7;39,3;50,0;63,5;70,19;64,34;35,63;4,32;0,18;7,5 14,0;33,10;40,0;47,11;55,11;62,0;69,10;88,0;102,25;99,30;102,34;89,60;57,45;51,54;45,45;13,60;0,34;3,30;0,25".split(" ", ), "33,60 59,59 33,33 76,68 111,83 84,82 142,64 104,128 71,64 103,61".split(" ", ),"-140,2,-10,20,34 60,-129,13,125,69 239,-127,3,244,29 -126,86,5,46,158 -127,114,-2,181,180 289,-131,-5,362,50 265,-135,10,294,142 -130,190,-3,22,267 396,-128,8,473,24 438,-128,2,435,144 -128,230,3,136,271 -130,240,-3,273,267 272,-132,4,382,244 426,-138,-11,496,260".split(" ", ),"Purple_Diamond Blue_Circle Green_Microsquare Cyan_Hexagon Golden_Rectangle Orange_Star Maroon_Triangle White_Moon Pink_Heart Bat_Symbol".split(" ", ),"Multiplies_highlighted_bonuses_by_}x Multiplies_highlighted_bonuses_by_}x Multiplies_highlighted_bonuses_by_}x +{%_Research_EXP_per_highlighted_bonus Multiplies_highlighted_bonuses_by_}x Multiplies_highlighted_bonuses_by_}x +{%_Research_EXP_per_highlighted_bonus Multiplies_highlighted_bonuses_by_}x Multiplies_highlighted_bonuses_by_}x Multiplies_highlighted_bonuses_by_}x".split(" ", ), "25 15 50 20 20 35 25 30 35 60".split(" "),"Adds_a_new_Magnifier_for_you_to_use!_Drag_it_around_just_like_you_do_with_your_other_magnifier! Adds_a_new_shape_to_your_Research_Grid,_which_boosts_the_bonuses_of_all_squares_it_touches! Adds_another_shape_to_your_Research_Grid!_Keep_in_mind,_each_grid_upgrade_can_only_be_boosted_by_one_shape_at_a_time._No_point_in_overlapping_shapes! You_can_now_place_TWO_magnifiers_on_the_same_Observation! Adds_another_shape_to_your_Research_Grid! You_now_get_an_additional_Grid_Point_every_10_Research_Levels! You_can_now_place_THREE_magnifiers_on_the_same_Observation! Adds_another_shape_to_your_Research_Grid! You_can_now_rotate_your_shapes!_You'll_find_the_rotation_buttons_after_selecting_a_shape. Adds_yet_another_Magnifier_to_your_Clipboard!_Those_Observations_wont_observe_themselves! Adds_another_shape_to_your_Research_Grid! You_can_now_place_TWENTY_magnif...._wait,_wait_no,_I_meant_four..._FOUR_magnifiers_on_the_same_Observation! Adds_an_additional_Magnifier_to_your_Clipboard! +1_Magnifier!_Bro_why_you_even_clicking_on_this_one,_you_absolutely_knew_what_this_did_from_the_picture...".split(" ", ), ["Magnifying_Glass", "Optical_Monocle", "Kaleidoscope"],["When_placed_on_an_observation,_this_lens_will_give_you_Research_EXP!","When_placed_on_an_observation,_this_lens_will_give_insight_for_that_observation,_which_levels_it_up_over_time!","When_placed_on_an_observation,_all_adjacent_lenses_will_be_{%_more_powerful!", ],"3,3 4,3 5,3 4,4 6,3 5,4 6,4 7,4 6,5 7,5 8,5 9,5 10,5 9,6 10,6 11,6 12,6".split(" ", ),"20 3 19 16 21 17 1 12 14 26 8 2 13 9 28 5 15 10 7 24 0 6 18 4 22 11 23 25 27 29 30 31".split(" ", ),"Brainhead Basshead Goldhead Gemhead Baldhead Screamhead Brainhead Blindhead Clownhead Ironhead Grosshead Stouthead Kelphead Maizehead Snouthead Ballhead Sashimihead Saturnhead Leopahead Yarnhead Bronzehead Bleckhead Royalhead Chillhead Detahead Summerhead Threadhead Tentahead Purrhead Humungohead Mr_Minehead Boghead".split(" ", ), "0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 4 3".split(" "), ["200", "170", "100", "65", "52"],["3,-3", "-6,-8", "-21,-26", "-54,-51", "-65,-67"],"first second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth thirteenth fourteenth fifteenth sixteenth seventeenth eighteenth nineteenth twentieth twenty_first twenty_second twenty_third twenty_fourth twenty_fifth twenty_sixth twenty_seventh twenty_eighth twenty_ninth thirtieth final permanent".split(" ", ),"the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_honorable the_big_man_himself the_never_ending".split(" ", ), "0 0 2 5 1 6 7 9 1 1 1 1 4 4 7 4 3 3 1 6 0 8 2 1 8 8 6 5 3 6 1 9".split(" "),"255,236,223;228,176,146;96,64,52 231,245,255;162,178,189;70,77,84 255,248,215;255,215,99;121,72,25 255,232,209;255,166,87;119,46,0 237,255,181;174,226,113;41,88,32 247,208,255;185,128,243;71,36,133 255,196,183;255,117,117;149,28,25 255,220,251;236,146,208;129,49,119 255,241,236;200,176,162;101,78,73 196,255,228;127,193,173;53,99,90".split(" ", ),"}x_Total_Damage_and_}x_Drop_Rate!_@_(NOTE:All_Bonuses_earned_from_beating_Opponents_affect_the_rest_of_the_game) +{%_AFK_gains_for_Research!_This_affects_offline_Research,_you_get_100%_gains_if_you're_online!_Current_Research_AFK_rate:_$%. +{_new_Research_Magnifier_to_study_your_Observations! Increases_the_Max_LV_of_'Blooming_Axe'_upgrade_in_Breeding_by_+{_LVs +{%_Damage_per_Weapon_POW._Based_on_your_current_weapon,_you're_getting_$x_Damage All_of_Bubba_the_Seal's_upgrades_are_}x_cheaper_than_normal Multiplies_Minehead_Currency_gain_by_}x Unlock_another_Atom_for_your_Atom_Collider,_which_boosts_minehead_currency_gain_when_upgraded +{_more_weekly_Exotic_Market_purchases_for_Farming,_and_first_few_purchases_cost_no_crops +{_Max_LVs_for_blessing_upgrades,_for_all_Divinities +{%_extra_AFK_gains_for_research }x_multiplier_to_Bucks_gained_in_the_Sushi_Station +{_new_Magnifier,_with_which_you_can_more_carefully_observe_your_Observations! +{_LVs_for_your_Grind_Time_bubble_every_day +{%_grand_discovery_chance_per_Spelunking_LV +{_daily_bubble_LVs_from_Kattlekruk_divinity The_trapping_bonus_from_your_Magnesium_Atom_keeps_increasing_for_+{_extra_days }x_higher_chance_to_grow_Chemical_Plants_in_Gaming +{_more_Trimmed_Construction_Slot,_which_build_things_$x_faster }x_extra_Monument_AFK_Hours_gained_from_all_sources_for_all_monuments +{_new_Magnifier,_further_expanding_your_capacity_to_scrutinize_and_systematically_examine_your_Observations +{%_Hat_Rack_bonus_multi }x_daily_amber_gains_from_your_Biggest_Hauls_in_Spelunking Nothing..._yet... Nothing..._yet... Nothing..._yet... Nothing..._yet... Nothing..._yet... Nothing..._yet... Nothing..._yet... Nothing..._yet... Nothing..._yet...".split(" ", ), "10 2 1 40 1 100 50 1 2 80 3 25 1 30 2 10 20 5 1 25 1 2 50 23 24 25 26 27 28 29 30 31".split(" ", ),["38,0", "28,-2", "15,-20", "-18,-36", "-31,-49"],"188,146,119;159,121,98;117,87,71;81,58,49 141,169,178;119,141,149;98,119,129;68,84,92 255,219,85;211,161,47;180,118,40;121,76,29 255,169,104;228,130,79;180,93,62;128,60,43 141,173,88;108,136,63;80,108,49;51,71,34 217,148,232;170,107,186;137,75,148;87,51,100 251,138,123;213,97,94;171,67,71;111,40,48 240,144,225;200,113,183;166,83,134;104,57,95 213,195,189;170,153,150;132,116,114;84,72,72 161,199,179;127,165,149;99,129,116;62,78,74".split(" ", ),"Mega_Mongo_Sticker Laissez_Maize_Sticker Chocotastic_Muffin_Sticker UWU_Kawaii_Rice_Sticker Sporrious_Stalk_Sticker Glassical_Bananical_Sticker Threepeat_Champ_Sticker Nonexistent_Sticker Nonexistent_Sticker Nonexistent_Sticker Nonexistent_Sticker Nonexistent_Sticker".split(" ", ),"Multiplies_Class_EXP_gain_for_all_of_your_players_by_a_staggering_}x Boosts_your_Research_EXP_gain_rate_by_approximately_+{% Increases_Artifact_Find_Chance_by_a_measly,_almost_imperceivable_+{% Multiplies_your_Bits_Gained_in_Gaming_by_a_whopping_}x Boost_Crop_Evolution_chance_by_what_some_consider_a_lot,_that_being_}x Multiplies_Megacrop_growth_chance,_AKA_your_Sticker_Find_chance,_by_}x Multiplies_Spelunking_POW_by_}x_in_an_effort_to_help_you_defeat_Lore_bosses! Exclusive_access_to_secret_areas_that_only_cool_people_are_in Unlimited_Tradeable_pets Infinite_Gems 200%_Character_Size Complete_ownership_of_all_players'_storage_chests".split(" ", ), "10 5 15 250 40 30 60 1 1 1 1 1".split(" "),"2 3 13 21 32 43 45 50 54 56 57 58 61 63 65 68 71 75 81 85 87 89".split(" ", ),"Coral3 Pearl6 Refinery3 Refinery4 w7B1b Critter7A Refinery5 Coral4 Refinery6 Critter9A Timecandy5 Refinery7 Refinery8 Soul8 Quest110 w7B11b Critter10A Ladle Critter11 Spelunking4 SilverPen Refinery9".split(" ", ),"1.06 1.005 1.20 1.10 1.40 1.06 1.10 1.06 1.10 1.05 1.01 1.10 1.30 1.35 1.35 1.25 1.07 1.25 1.20 1.25 1.5 1.5".split(" ", ), "1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0".split(" "),"Fish_Eggs Eggroll Egg_Maki Sashimi Tuna_Maki Salmon_Uramaki Salmon_Maki Cucumber_Uramaki Cucumber_Maki Onigiri Toro_Slice Toro_Nigiri Beef_Nigiri Beef_Tobo_Nigiri Tobiko_Maki Tobiko_Temaki Tobiko_Cluster Tobo_Sardine Tobo_Twins Live_Squid Live_Octopus Calamari_Ring Bluefin_Ring Tobo_Tamago Tako_Sashimi Hamachi_Sashimi Fat_Tuna_Sashimi King_Beef_Sashimi Salmon_Sashimi Salmon_Nigiri Fried_Bass_Nigiri Seasoned_Bass_Nigiri Jumbo_Shrimp Aged_Shrimp_Nigiri Tempura_Shrimp Ika_Sashimi Abalone_Sashimi Aji_Sashimi Aji_Aji_Sashimi Bubba_Grand_Salmon Tobiko_Roll Spicy_Tuna_Roll Salmon_Uramajor Sesame_Salmon_Muramajor Dragon_Roll Imaginei_Dragonroll Dragon_Nigiri Tamago_Nigiri Unagi_Nigiri Soylent_Nigiri Masago Masago_Temaki Masagoroll Caviar_Supreme Dulce_Vitiri Wasabaisamarama Kraken_Roll Leviathan_Roll Golthulu_Roll".split(" ", ), ["lol"],"41 8 44 1 30 9 0 6 2 43 17 31 14 42 13 23 35 10 3 20 32 7 18 16 27 29 11 36 21 4 37 24 19 15 12 22 33 28 26 5 25 40 38 34 39".split(" ", ),"0 1 2 0 2 3 1 0 2 4 3 0 1 5 2 4 3 0 6 3 2 5 1 4 0 6 2 7 3 5 1 6 0 4 8 2 7 5 6 3 1 8 4 9 2 7 5 8 3 10 6 9 8 10".split(" ", ),"+{%_more_Bucks_generated +{%_bonus_Knowledge_XP +^%_chance_for_+1_Tier_for_cooked_sushi }x_higher_Fuel_Capacity +{%_faster_Fuel_generation +^%_chance_for_free_shaker_usage +{%_cheaper_upgrades }x_faster_Fuel_generation +^%_bigger_effects_from_Slots +^%_bigger_effects_from_Fireplaces }x_higher_chance_to_Perfecto_all_sushi".split(" ", ), "20 2 0.1 10 3 .05 1 2 .2 .2 100".split(" "),"}x_multiplier_to_Research_EXP_gain All_Minehead_upgrades_are_{%_cheaper +{_daily_rolls_for_getting_new_Observations_in_Research +{_Research_Points_to_buy_upgrades_with +{%_Research_AFK_gains..._if_you're_at_100%,_I_have_good_news_and_bad_news... Every_new_event,_you_get_+{_play_at_the_event_game,_FOREVER! All_Spelunk_Shop_upgrades_are_{%_cheaper }x_artifact_find_chance +{_new_magnifier_to_study_your_observations_with All_Summoning_upgrades_are_{%_cheaper All_your_breeding_Mobs_deal_}x_damage_when_fighting }x_Stamina_Regen_Multi_so_you_can_get_back_to_delving_asap }x_multiplier_to_Minehead_currency_gain +{_Research_Point_to_buy_upgrades Whenever_you_get_a_new_ribbon,_theres_a_{%_chance_it's_1_tier_higher }x_Class_EXP_gain All_Minehead_upgrades_are_now_{%_cheaper_instead_of_just_25% All_your_Exalted_Stamps_give_a_0.01x_higher_bonus_than_before }x_extra_coins_dropped_by_monsters +{_Legend_Talent_Point._Sponsored_by_Whallamus. }x_Spelunking_POW +{%_grand_discovery_chance_per_Spelunking_LV Unlocks_a_new_Atom,_which_boosts_Bucks_gained All_your_Prisma_Bubbles_give_a_0.01x_higher_bonus_than_before +{%_Research_AFK_gains }x_Burger. All_Sushi_Station_upgrades_are_{%_cheaper All_Spelunk_Shop_upgrades_are_now_{%_cheaper_instead_of_just_25% }x_more_Amber_gained_from_Spelunking,_time_for_new_Biggest_Hauls! }x_bits_gained_from_Gaming +{_maximum_possible_roll_when_rolling_for_new_Observations }x_higher_odds_of_getting_new_crowns_for_the_Rat_King_in_Gaming }x_more_Stealth_for_all_your_Ninja_Twins_in_Sneaking Get_+{_more_Exotic_Market_purchases_at_the_start_of_each_week All_Summoning_upgrades_are_now_{%_cheaper_instead_of_just_25% }x_higher_farming_Evo_chance,_to_get_new_crop_types_with +{%_Hat_Rack_multi }x_extra_coins_dropped_by_monsters All_Upgrade_Vault_upgrades_are_{%_cheaper Bubba_now_produced_}x_more_Meat_Slice._Business_is_BOOMING! Get_+{_more_Tiny_Cogs_every_day._You_do_have_them_unlocked_by_now_right? }x_multiplier_to_all_Sigil_EXP_gains }x_higher_Palette_Luck_in_Gaming }x_Lab_EXP_gain All_Sushi_Station_upgrades_are_now_{%_cheaper_instead_of_just_25% All_your_Sailing_Captains_earn_}x_more_personal_EXP_than_before Generate_}x_more_Divinity_PTS_for_Divinity All_Upgrade_Vault_upgrades_are_now_{%_cheaper_instead_of_just_25% }x_Drop_Rate }x_Total_DMG +{%_Bonus_Ballot_Multiplier +{%_Meritocracy_Bonus_Multi }x_chance_for_'Blue_Chest'_Monument_Rewards }x_bonuses_from_ALL_Research_upgrades +{%_Gallery_Bonus_Multi }x_Megacrop_Growth_Chance_for_getting_more_Farming_Stickers +{_Opals_for_your_Villagers }x_extra_Treasure_found_from_opening_Sailing_Chests +{_Max_Build_LVs_for_all_Shrines_in_Construction".split(" ", ),"100 30 2 2 2 1 30 30 1 30 100 25 50 1 20 25 50 1 20 1 200 3 1 1 2 30 25 50 100 100 1 50 100 3 50 100 1 40 25 100 1 100 20 50 50 25 30 50 10 10 10 10 50 1 1 25 2 30 10".split(" ", ), ["0,0", "82,23", "82,23", "82,23"],"42 89 15 63 28 91 3 76 54 11 68 24 95 37 80 1 59 22 73 14 66 9 83 31 47 70 5 98 26 61 18 85 34 72 0 56 13 92 40 77 21 64 8 99 30 52 17 69 2 88 45 12 79 33 94 6 57 25 81 39 67 4 90 53 19 74 29 87 10 62 36 96 23 58 41 78 16 65 32 84 27 7 71 44 93 20 60 35 82 48 97 38 75 50 86 43 55 49 46 51".split(" ", ), ] + +# Last updated in v2.505 May 18 +ResGridSquares = ["Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Smart_Eye 3 5 0 0 Raises_the_minimum_possible_Roll_by_+1_for_each_failed_Roll,_up_to_+$._This_resets_back_to_0_upon_a_successful_Roll._Also_+{%_Research_EXP_Gain.".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Sticker-it_To_Em! 2 1 0 0 Unlocks_a_new_TRUE_Damage_Multiplier_as_shown_in_the_Sticker_Depot,_which_goes_up_by_+{%_for_every_Sticker_you_find!".split(" "), "Materials_Science 4 25 0 0 Reduces_the_Cycle_Time_for_the_Polymerization_tab_in_the_Refinery_by_{%".split(" "), "Polymer_Refinery 2 5 0 0 Unlocks_a_new_tab_in_the_Refinery,_POLYMERIZATION!_Also,_+{%_faster_refinery_cycles_for_ALL_tabs!".split(" "), "Pts_Every_Ten 1 5 0 0 Get_+|_extra_Research_PTS_every_10_Research_LVs!_Also,_+{%_Research_EXP_Gain!".split(" "), "Sharp_Eye 4 5 0 0 Increase_the_max_possible_Roll_while_searching_for_new_observations_by_+|,_and_+{%_Research_EXP_gain!".split(" "), "Holding_Onto_You 3 10 0 0 Twists_the_Kaleidoscope_behind_both_of_your_eyes,_increasing_their_effect_by_+{%".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Sticky_Crowns 3 25 0 0 For_every_King_Rat_Crown_you_reclaim,_your_Megacrop_growth_chance_goes_up_by_{%._Total_Bonus:^x".split(" "), "Boony_Crowns 1 1 0 0 For_every_King_Rat_Crown_you_reclaim,_all_your_stickers_gives_{%_higher_bonuses._Total_Bonus:$%".split(" "), "Adequate_Sized,_Actually 2 50 0 0 All_Tiny_Cogs_you_get_have_a_{%_chance_be_1_Tier_higher_than_they_otherwise_would've_been!_Huge,_honestly!".split(" "), "Takin'_Notes 4 12 0 0 Multiplies_Research_EXP_gain_by_}x,_TRUE_multiplier_style!_So_this_bonus_will_never_be_additive!".split(" "), "Powered_Down_Research 2 1 0 0 Further_increases_your_Research_AFK_Gains_rate_by_+{%,_in_your_unending_quest_for_100%".split(" "), "Kaleidoscope 4 5 0 0 Gives_+|_Kaleidoscopes_to_use_for_Observations!_Also,_+{%_Kaleidoscope_effect!".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Equinox_Nightmares 3 20 0 0 Unlocks_new_dreams_to_complete_at_the_Equinox_Valley_in_World_3!_@_Also_boosts_Equinox_Bar_Fill_Rate_by_}x".split(" "), "Gaming_Zuperbits 2 200 0 0 Unlocks_the_Zuperbits_page_of_Superbits_in_Gaming!_Yea,_you_ain't_done_with_those_just_yet!_Also_gives_}x_Gaming_Bit_Multi!".split(" "), "Sticker_Depot 3 50 0 0 Unlocks_the_Sticker_mechanic_for_Farming!_Also,_boosts_Megacrop_growth_chance_by_}x".split(" "), "Tiny_Cogs 4 200 0 0 Unlocks_the_Tiny_Cog_board,_and_generates_a_single_Tiny_Cog_per_day!_Also_boosts_Flaggy_Rate_by_}x".split(" "), "Observationalistic 4 1 0 0 Gives_you_+|_more_Daily_Rolls_for_getting_new_Observations!_Also,_+{%_Research_EXP_gain!".split(" "), "Optical_Monocle 4 1 0 0 Gives_+|_Optical_Monocles_to_use_for_Observations!_Also_+{%_Insight_EXP_gain,_to_level_up_your_Observations_faster_with!".split(" "), "Oracular_Spectacular 2 25 0 0 Taking_only_what_you_need_from_it,_your_Optical_Monocles_generate_+{%_more_Insight!".split(" "), "Game_Design_101 3 4 0 0 Psst..._you_forgot_to_give_Observation_LV_a_purpose_while_helping_Lava_research_new_content!_How_about_you_do..._Observations_give_}x_more_EXP_per_LV!".split(" "), "Game_Design_102 4 1 0 0 Design_problem,_why_would_players_level_up_old_Observations?_How_about..._+{%_Research_EXP_per_TOTAL_Observation_LV!_@_Total_Bonus:$%".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Revival_of_the_Undead_Battalion 1 1 0 0 Your_Sailing_Boats_turn_into_the_Undead_Battalion_at_LV_400+_These_boats_find_3x_more_Treasure,_are_3x_faster,_and_have_3x_higher_Artifact_Find_Chance!".split(" "), "The_Maw 4 25 0 0 Unlocks_a_new_island_in_Sailing,_THE_MAW!_@_Also,_}x_Artifact_Find_Chance._You'll_need_it.".split(" "), "Palettable_Crowns 1 3 0 0 +{%_Palette_Luck_for_every_King_Rat_Crown_you_reclaim._@_Total_Bonus:$%".split(" "), "Rat_King_of_Olde 2 25 0 0 You_can_now_buy_the_Rat_King_from_the_Import_Shop_in_Gaming!_Also,_+{%_King_Tokens_per_hour!".split(" "), "Transcendent_Artifacts 1 25 0 0 Unlocks_Transcendent_Sailing_Artifacts_tier,_and_boosts_Artifact_Find_Chance_by_a_smol_+{%".split(" "), "All_Night_Studying 2 50 0 0 Boosts_Research_EXP_gain_by_+{%_@_You'll_be_filling_out_this_Grid_in_no_time_at_all!".split(" "), "Research_AFK_Gains 2 5 0 0 +{%_Research_AFK_Gains._This_affects_OFFLINE_gains_for_Research,_Minehead,_Insight..._everything_Research_related!".split(" "), "See_'Em_All 1 5 0 0 +{%_Research_EXP_gain_per_Observation_found!_@_Total_Bonus:+$%".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Better_Button 3 5 0 0 All_button_bonuses_are_+{%_bigger,_which_is_ballin'_since_all_button_upgrades_sans_Class_EXP_are_multiplicative!".split(" "), "Insta_Skips 2 3 0 0 Every_week,_you_get_+|_Insta_uses_for_The_Button_on_the_Mantaray_map,_which_let_you_skip_the_current_demand._@_Also,_+{%_chance_for_+1_use_every_day".split(" "), "Eclectoplasmaticism 1 1 0 0 What_kind_of_word_is_Eclectopl..._whatever,_this_gives_you_+{%_TRUE_DMG_Multi_per_Eclectic_Sigil!".split(" "), "Eclectic_Sigils 1 10 0 0 Sigils_can_be_upgraded_a_5th_time_to_Eclectic!_@_NOTE:You_must_defeat_Lore_Boss_7_in_Spelunking_first!".split(" "), "Mr_Minehead_Linguistics 4 10 0 0 You_can_now_speak_to_Mr_Minehead_and_play_his_Depth_Charge_game!_Also,_+{_base_Minehead_Currency/hr".split(" "), "Legendary_Yellow_Fever 3 5 0 0 Raises_the_Max_LV_of_certain_Yellow_Legend_Talents_by_+|._Also,_}x_Class_EXP_gain!".split(" "), "Legendary_Red_Fever 3 5 0 0 Raises_the_Max_LV_of_certain_Red_Legend_Talents_by_+|._@_Also,_}x_Class_EXP_gain!".split(" "), "Legendary_Brown_Fever 3 5 0 0 Raises_the_Max_LV_of_certain_Brown_Legend_Talents_by_+|._Also,_}x_Class_EXP_gain!".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Risky_Strategy 2 10 0 0 Your_Minehead_Damage_is_boosted_by_+{%_for_every_tile_revealed_in_a_single_turn._This_resets_at_the_start_of_every_turn.".split(" "), "Depth_Charge_Rematch! 4 25 0 0 Gives_you_+|_more_tries_every_day_at_Mr_Minehead's_Depth_Charge!_Also,_+{%_Minehead_Currency/hr".split(" "), "More_of_that_Minehead_Money_Pls 4 25 0 0 Multiplies_Minehead_Currency/hr_by_}x".split(" "), "Glimbo_Linguistics 1 15 0 0 You_can_now_speak_to_Glimbo,_and_make_trades_with_him!_Also_boosts_coins_dropped_by_monsters_by_}x!".split(" "), "Masterclass_Research 2 10 0 0 Reduces_the_cost_of_all_Masterclass_upgrades_by_{%_every_day,_FOREVER!_Total_Reduction:-&%".split(" "), "Spelunking_Research 2 25 0 0 Boosts_Spelunking_POW_by_+{%_every_day,_FOREVER!_@_Total_Boost:^x_POW".split(" "), "Legendary_Green_Fever 3 5 0 0 Raises_the_Max_LV_of_certain_Green_Legend_Talents_by_+|._Also,_}x_Class_EXP_gain!".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Minehead_Copium 4 15 0 0 If_your_1st_click_is_on_a_depth_charge,_50%_chance_it_wiggles_and_doesn't_count!_Happens_up_to_|_times_per_game._@_Also,_+{%_Minehead_Currency_gain!".split(" "), "Minehead_Damagio 3 15 0 0 Multiplies_all_damage_you_deal_in_Mr_Minehead's_Depth_Charge_by_}x".split(" "), "Glimbo_Insider_Trading_Secrets 1 1 0 0 +{%_Drop_Rate_TRUE_Multi_per_100_Glimbo_Trades!_@_Total_Bonus:^x_DR".split(" "), "Glimbo_BOGO_Offer 2 10 0 0 Some_of_Glimbo's_trades_give_+|_additional_LVs!_This_works_retroactively._Also,_}x_Coin_gain".split(" "), "All_Quick_All_Done 3 50 0 0 Every_day,_the_first_'All_Quick'_use_at_the_MSA_in_World_3_gives_}x_more_Souls_and_EXP!".split(" "), "Day_'N'_Nite 4 50 0 0 Increases_the_Max_LV_of_all_Day_and_Night_Market_upgrades_by_+{".split(" "), "Well_Dressed 2 25 0 0 The_first_MISC_Bonus_on_your_Attire_Equipment_(i.e._Clothing)_gives_}x_more_bonus!".split(" "), "Divine_Design 1 25 0 0 <._Also,_+{%_Drop_Rate.".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Shakin'_It 2 1 0 0 Every_day,_you_get_another_+|_extra_uses_for_ALL_your_shakers_at_the_Sushi_Station!_@_And_+{%_chance_for_free_use_when_using_Shakers!".split(" "), "Sushi_Station_Linguistics 4 25 0 0 You_can_now_speak_to_the_knife_found_in_the_map_past_Glimbo_to_play_the_Sushi_Station_game!_@_Also,_}x_more_Bucks_gained_from_your_Sushi!".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" "), "Name 1 1 0 0 desc".split(" ")] +research_grid_row_size = 20 +ResGridSquares = [ResGridSquares[i:i + research_grid_row_size] for i in range(0, len(ResGridSquares), research_grid_row_size)] +ResGridSquares.reverse() # row data is in top-to-bottom order, but grid numbering is bottom-to-top + +research_grid_upgrade_data = [] +for row_index, row in enumerate(ResGridSquares): + for index, upgrade_data in enumerate(row): + name, max_level, base_value_per_level, _, _, description_template = upgrade_data + research_grid_upgrade_data.append({ + "Grid Index": numberToLetter(index + 1).upper() + str(row_index + 1), + "Name": name.replace("_", " "), + "Max Level": parse_number(max_level), + "Base Value Per Level": parse_number(base_value_per_level), + "Description Template": description_template.replace("_", " ").replace(" @ ", "
"), + }) + +# Last updated in v2.505 May 18 +Occurences = ["Bored_Tree 1 14 553 484 1 1 Found_in_World_1,_where_boredom_meets_bean".split(" ",),"Shopping_Oyseter 3 300 1462 795 2 30 Found_in_World_7_town,_inscribed_with_a_four_letter_word".split(" ",),"Bridge_Plank 5 51 658 342 3 50 Found_in_World_2,_the_only_wood_pieces_east_of_the_Town".split(" ",),"Carrot_Patch 6 24 1173 355 4 60 Found_in_World_1,_they_grow_long_and_orange_with_a_tuft_of_green".split(" ",),"Salty_Seawebs 8 301 993 708 5 70 Found_in_World_7,_spun_in_a_cave_by_a_spider_you'll_never_see".split(" ",),"Dogbone_Tombstone 10 27 551 337 6 75 Found_in_World_1,_the_final_resting_place_of_a_poor_villager".split(" ",),"Ominous_Signage 11 19 46 632 8 80 Found_in_World_1,_pointing_you_in_the_right_direction_to_find_Amarok".split(" ",),"Canyon_Pointerino 13 59 611 458 5 82 Found_in_World_2,_one_of_many_arrows_leading_you_to_a_secret_platform".split(" ",),"Corange_Coral 15 302 1325 406 5 85 Found_in_World_7,_growing_among_the_doodlefish".split(" ",),"Oasis_Erosion 17 73 585 415 5 90 Found_in_World_2,_these_waters_are_home_of_the_much_beloved_Poppy".split(" ",),"Barnacle_Brothers 20 304 298 581 5 92 Found_in_World_7,_covered_in_a_sludge_of_either_snail_or_slug_origin".split(" ",),"Green_Shallowrock 22 303 278 661 5 93 Found_in_World_7,_growing_among_the_seaweed_and_stubble_of_the_shallow_waters".split(" ",),"Broken_Spacerocks 24 154 450 199 5 93 Found_in_World_4,_the_only_broken_platform_among_many_walkable_ones".split(" ",),"Meenie_Cactus 27 69 102 335 5 94 Found_in_World_2,_next_to_the_tomb_of_the_late_great_King".split(" ",),"Coraltree_Branch 30 305 155 345 5 95 Found_in_World_7,_growing_unbelieveably_larger_than_any_other_coral".split(" ",),"Useless_Anchor 31 61 590 169 5 95 Found_in_World_2,_sitting_atop_the_board_while_yearning_to_be_below_the_waves".split(" ",),"Oboe_Coral_Trio 34 308 1117 744 5 96 Found_in_World_7,_half_way_up_your_climb_to_Pinpoint_Summit".split(" ",),"Spadespire 37 70 670 563 5 96 Found_in_World_2,_at_the_enterance_of_Snakenhotep's_Crypt".split(" ",),"Seaswept_Ruins 40 307 316 173 5 97 Found_in_World_7,_sitting_crumbled_and_defeated_under_the_watchful_gaze_of_Billroy".split(" ",),"Tetrino_Stones 42 65 1061 200 5 97 Found_in_World_2,_gaming_scholars_still_debate_these_which_sit_atop_the_pyramid".split(" ",),"Stalagtite 45 118 696 159 5 97 Found_in_World_3,_tucked_away_in_an_igloo_where_nobody_goes_no_more".split(" ",),"OG_Secret_Rock 48 64 222 577 5 98 Found_in_World_2,_it's_the_only_rock_that_just_feels_out_of_place".split(" ",),"Happy_Piggy 50 157 476 249 5 98 Found_in_World_4,_where_the_party_never_ends".split(" ",),"Treeception 52 18 327 508 5 99 Found_in_World_1,_you'll_find_this_tree_within,_well,_another_tree".split(" ",),"Keymaster 55 12 729 797 5 100 Found_in_World_1,_they're_the_long_forgotten_character_of_a_long_forgotten_game".split(" ",),"Space_Drip 57 159 1297 267 5 100 Found_in_World_4,_flowing_from_one_region_into_another".split(" ",),"Coralcave_Coral 60 311 1278 447 5 100 Found_in_World_7,_at_the_outskirts_of_a_crustacean_kingdom".split(" ",),"Unblinking_Eye 63 163 453 410 5 100 Found_in_World_4,_with_a_gaze_that's_unbreakable_and_unmistakable".split(" ",),"Monster_Decoy 66 315 604 365 5 101 Found_in_World_7,_it_looks_like_a_monster_but_aint_no_monster_of_mine".split(" ",),"Standard_Stump 70 16 271 366 5 101 Found_in_World_1,_surrounded_by_sludge_and_slime".split(" ",),"Big_Ol_Reef 72 307 320 892 5 101 Found_in_World_7,_sitting_off_to_the_left_on_your_final_steps_to_the_Summit".split(" ",),"Oasis_Palm 74 53 500 222 5 101 Found_in_World_2,_the_oasis_sitting_just_beyond_it's_palmy_leaves".split(" ",),"Stalagmite 76 110 749 570 5 102 Found_in_World_3,_clear_as_glass_and_cold_as_ice".split(" ",),"Rope_Lamp 78 62 233 256 5 102 Found_in_World_2,_lighting_the_way_and_holding_the_path_further_into_the_desert".split(" ",),"Unremarkable_Rock 80 312 500 783 5 102 Found_in_World_7,_surrounded_by_what_was_once_the_most_fearsome_foe_in_the_ocean".split(" ",),"Standard_Mine 82 316 439 481 5 103 Found_in_World_7,_just_one_floating_disaster_waiting_to_happen".split(" ",),"Ancient_Chainrope 84 11 544 543 5 103 Found_in_World_1,_it_leads_down_to_a_path_that_never_existed".split(" ",),"Birchtree_Bitty 87 17 496 260 5 104 Found_in_World_1,_where_houses_walk".split(" ",),"Unreachable_Grate 90 15 843 966 5 104 Found_in_World_1,_just_a_few_dirty_bars_that'll_never_be_broken".split(" ",),"Genuine_Deadwood 92 26 223 341 5 104 Found_in_World_1,_it_twists_and_turns_looking_for_even_a_slimmer_of_sunlight".split(" ",),"Rifty_Crystals 94 166 643 378 5 105 Found_in_World_4,_just_waiting_to_change_colour_once_again".split(" ",),"Pirate_Flag 97 316 1744 287 5 105 Found_in_World_7,_a_sign_to_many_that_their_sailing_days_are_about_to_end".split(" ",),"Happy_Tree 100 1 763 274 5 105 Found_in_World_1,_where_the_adventure_began_all_those_years_ago".split(" ",),"Name 200 317 328 693 5 0 Found_in_World_7,_".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" "), "Name 111 1 300 200 5 0 desc".split(" "), "Name 113 1 300 200 5 0 desc".split(" "), "Name 114 1 300 200 5 0 desc".split(" "), "Name 116 1 300 200 5 0 desc".split(" "), "Name 118 1 300 200 5 0 desc".split(" "), "Name 120 1 300 200 5 0 desc".split(" "), "Name 123 1 300 200 5 0 desc".split(" "), "Name 126 1 300 200 5 0 desc".split(" "), "Name 128 1 300 200 5 0 desc".split(" "), "Name 130 1 300 200 5 0 desc".split(" "), "Name 131 1 300 200 5 0 desc".split(" "), "Name 133 1 300 200 5 0 desc".split(" "), "Name 134 1 300 200 5 0 desc".split(" "), "Name 136 1 300 200 5 0 desc".split(" "), "Name 138 1 300 200 5 0 desc".split(" "), "Name 140 1 300 200 5 0 desc".split(" "), "Name 141 1 300 200 5 0 desc".split(" "), "Name 143 1 300 200 5 0 desc".split(" "), "Name 146 1 300 200 5 0 desc".split(" "), "Name 148 1 300 200 5 0 desc".split(" "), "Name 150 1 300 200 5 0 desc".split(" "), "Name 170 1 300 200 5 0 desc".split(" "), "Name 200 1 300 200 5 0 desc".split(" ")] +observation_data = [] +for observation in Occurences: + name, level_requirement, map_index, _, _, _, _, description = observation + observation_data.append({ + "Name": name.replace("_", " "), + "Level Requirement": parse_number(level_requirement), + "Map Index": parse_number(map_index), + "Description": description.replace("_", " "), + }) + +posty_notes_descriptions = [raw.replace("_", " ") for raw in Research[6]] diff --git a/mysite/models/account_calcs.py b/mysite/models/account_calcs.py index 73e760b7..8e4f8194 100644 --- a/mysite/models/account_calcs.py +++ b/mysite/models/account_calcs.py @@ -2223,6 +2223,8 @@ def _calculate_w7(account): _calculate_w7_coral_reef(account) account.meritocracy.calculate_bonuses() account.gallery.calculate_bonuses(account) + account.zenith_market.calculate_bonuses() + account.research.calculate_bonuses() def _calculate_w7_coral_reef(account): diff --git a/mysite/models/general/account.py b/mysite/models/general/account.py index ba146377..83b63ac8 100644 --- a/mysite/models/general/account.py +++ b/mysite/models/general/account.py @@ -11,11 +11,13 @@ from models.w6.emperor import Emperor from models.w6.beanstalk import Beanstalk from models.w6.sneaking import Sneaking +from models.w7.research import Research from models.w7.spelunk import Spelunk from models.w7.advice_fish import AdviceFish from models.w7.clam_work import ClamWork from models.w7.meritocracy import Meritocracy from models.w7.gallery import Gallery +from models.w7.zenith_market import ZenithMarket from utils.safer_data_handling import safe_loads, safer_get from utils.text_formatting import InputType from flask import g @@ -99,6 +101,8 @@ def __init__(self, json_data, source_string: InputType): self.clam_work = ClamWork(self.raw_data) self.meritocracy = Meritocracy(self.raw_data) self.gallery = Gallery(self.raw_data) + self.zenith_market = ZenithMarket(self.raw_data) + self.research = Research(self.raw_data) def add_alert_list( self, group_name: str, advice_list: list[Advice | None] | set[Advice | None] diff --git a/mysite/models/w7/research.py b/mysite/models/w7/research.py new file mode 100644 index 00000000..d47ffb97 --- /dev/null +++ b/mysite/models/w7/research.py @@ -0,0 +1,153 @@ +from consts.consts_autoreview import ValueToMulti +from consts.idleon.consts_idleon import MapDispName +from consts.idleon.w7.research import research_grid_upgrade_data, research_grid_row_size, observation_data, \ + posty_notes_descriptions +from models.advice.advice import Advice +from utils.logging import get_logger +from utils.number_formatting import round_and_trim +from utils.safer_data_handling import safe_loads, safer_index, safer_math_pow, safer_get + +logger = get_logger(__name__) + +class ResearchGridUpgrade: + def __init__(self, info: dict, level: int): + self.grid_index = info["Grid Index"] + self.level = level + self.name = info["Name"] + self.description_template = info["Description Template"] + self.max_level = info["Max Level"] + self.base_value_per_level = info["Base Value Per Level"] + self.value = 0 + self.max_value = self.base_value_per_level * self.max_level + self._image = f"research-grid-{self.grid_index}" + + def calculate_bonus(self): + # TODO: any mults that increase research bonuses + self.value = self.level * self.base_value_per_level + + def get_bonus_advice(self, link_to_section: bool = True) -> Advice: + label = "" + if link_to_section: + label += "{{Research|#research}} - " + if "{" in self.description_template: + value = self.value + max_value = self.max_value + else: + value = ValueToMulti(self.value) + max_value = ValueToMulti(self.max_value) + + # TODO: handle "^x" in description. The values are mostly based on other mechanics + # TODO: handle "$" in description. The values are mostly based on other mechanics + + bonus = f"{round_and_trim(value)}/{round_and_trim(max_value)}" + bonus_description = self.description_template.replace("{", bonus).replace("}", bonus).replace("|", str(self.level)) + if self.name == "Divine Design": + from utils.misc.has_companion import has_companion + divine_design_description = "You_are_now_permanently_linked_to_Arctis_on_all_characters".replace("_", " ") + if has_companion("King Doot"): + divine_design_description = "Arctis_nods_in_approval..._all_Research_Grid_bonuses_are_1.05x_higher".replace("_", " ") + bonus_description = bonus_description.replace("<", divine_design_description) + + label += f"{self.name} ({self.grid_index}):
{bonus_description}" + return Advice( + label=label, + picture_class=self._image, + progression=self.level, + goal=self.max_level, + ) + + +class ResearchGrid(dict[str, ResearchGridUpgrade]): + def __init__(self, raw_research_info: list): + + research_levels: list[int] = safer_index(raw_research_info, 0, []) + research_levels: list[list[int]] = [research_levels[i:i + research_grid_row_size] for i in range(0, len(research_levels), research_grid_row_size)] + research_levels.reverse() + research_levels: list[int] = [level for row in research_levels for level in row] + + for index, info in enumerate(research_grid_upgrade_data): + if info["Name"] == "Name": + continue + level = safer_index(research_levels, index, 0) + upgrade = ResearchGridUpgrade(info, level) + self[upgrade.name] = upgrade + + def calculate_bonuses(self): + for upgrade in self.values(): + upgrade.calculate_bonus() + + +class Observation: + def __init__(self,observation_raw_data: dict, index: int, unlocked: bool, level: int, xp:int): + self.name = observation_raw_data["Name"] + self.level_requirement = observation_raw_data["Level Requirement"] + self.description = observation_raw_data["Description"] + self.map = MapDispName[observation_raw_data["Map Index"]].replace("_", " ") + self.unlocked = bool(unlocked) + self.level = level + self.xp = round_and_trim(xp, 0) + self.xp_required = round_and_trim( + (2 + 0.7 * index) + * safer_math_pow(1.75 + index / 200, self.level, ) + * (1 + safer_math_pow(index, 2) / 100) + + self.level + , 0) + self.image = f"observation-{index}" + + def get_advice(self) -> Advice: + label = f"{self.name}" + if not self.unlocked: + label += f" ({self.map})
{self.description}" + else: + label += f"
Level {self.level}: {self.xp}/{self.xp_required} XP" + return Advice( + label=label, + picture_class=self.image, + progression=int(self.unlocked), + goal=1 + ) + +class Observations(dict[str, Observation]): + def __init__(self, raw_research_info: list): + observations_unlocked = safer_index(raw_research_info, 2, []) + observation_xp = safer_index(raw_research_info, 3, []) + observation_levels = safer_index(raw_research_info, 4, []) + for index, (unlocked, xp, level) in enumerate(zip(observations_unlocked, observation_xp, observation_levels)): + observation_raw_data = observation_data[index] + if observation_raw_data["Name"] == "Name": + continue + self[observation_raw_data["Name"]] = Observation(observation_raw_data, index, unlocked, level, xp) + + +class PostyNote: + def __init__(self, index: int, description: str, research_level: int): + self.description = description + self.unlocked = research_level // 10 >= index + 1 + self.image = f"posty-note-{index}" + + def get_advice(self): + return Advice( + label=f"{self.description}", + picture_class=self.image, + progression=int(self.unlocked), + goal=1 + ) + +class PostyNotes(dict[str, PostyNote]): + def __init__(self, research_level: int): + for index, description in enumerate(posty_notes_descriptions): + self[str(index)] = PostyNote(index, description, research_level) + + +class Research: + def __init__(self, raw_data: dict): + research_level = safer_index(safer_get(raw_data, "Lv0_0", []), 20, 0) + raw_research_info = safe_loads(raw_data.get("Research", [])) + if not raw_research_info: + logger.warning("Research data not present.") + self.grid = ResearchGrid(raw_research_info) + self.observations = Observations(raw_research_info) + self.posty_notes = PostyNotes(research_level) + + def calculate_bonuses(self): + self.grid.calculate_bonuses() \ No newline at end of file diff --git a/mysite/models/w7/zenith_market.py b/mysite/models/w7/zenith_market.py new file mode 100644 index 00000000..cd8fff59 --- /dev/null +++ b/mysite/models/w7/zenith_market.py @@ -0,0 +1,57 @@ +from locale import currency +from math import floor + +from consts.consts_autoreview import ValueToMulti +from consts.consts_w7 import zenith_market_upgrade_data +from models.advice.advice import Advice +from utils.logging import get_logger +from utils.safer_data_handling import safe_loads, safer_index, safer_math_pow + +logger = get_logger(__name__) + + +class ZenithMarketUpgrade: + def __init__(self, info: dict, level: int, index: int): + self.name = info["Name"] + self.description_template = info["Description Template"] + self.level = level + self.max_level = info["Max Level"] + self.base_price = info["Base Price"] + self.price_mult_per_level = info["Price Mult per Level"] + self.bonus_per_level = info["Bonus per Level"] + self.price = floor(self.level + self.base_price * safer_math_pow(self.price_mult_per_level, self.level)) + self.value = 0 + + def calculate_bonus(self): + self.value = self.level * self.bonus_per_level + + def get_advice(self): + description = self.description_template + if "}" in description: + description = description.replace("}", str(ValueToMulti(self.value))) + elif "{" in description: + description = description.replace("{", str(self.value)) + return Advice( + label=f"{self.name}:
{description}", + picture_class="zenith-market", + resource="zenith-crystal", + progression=self.level, + goal=self.max_level, + ) + + + +class ZenithMarket(dict[str, ZenithMarketUpgrade]): + def __init__(self, raw_data: dict): + raw_spelunk_info = safe_loads(raw_data.get("Spelunk", [])) + if not raw_spelunk_info: + logger.warning("Zenith Market data not present.") + market_upgrade_levels: list[int] = safer_index(raw_spelunk_info, 45, []) + for index, info in enumerate(zenith_market_upgrade_data): + level = safer_index(market_upgrade_levels, index, 0) + upgrade = ZenithMarketUpgrade(info, level, index) + self[upgrade.name] = upgrade + + def calculate_bonuses(self): + for upgrade in self.values(): + upgrade.calculate_bonus() diff --git a/mysite/static/assets/_research.scss b/mysite/static/assets/_research.scss new file mode 100644 index 00000000..0635f2d2 --- /dev/null +++ b/mysite/static/assets/_research.scss @@ -0,0 +1,138 @@ +$research-grid: ( + research-grid-f6: img('customized/ResearchGridF6.png'), + research-grid-f7: img('customized/ResearchGridF7.png'), + + research-grid-g4: img('customized/ResearchGridG4.png'), + research-grid-g5: img('customized/ResearchGridG5.png'), + research-grid-g6: img('customized/ResearchGridG6.png'), + research-grid-g7: img('customized/ResearchGridG7.png'), + research-grid-g8: img('customized/ResearchGridG8.png'), + + research-grid-h4: img('customized/ResearchGridH4.png'), + research-grid-h5: img('customized/ResearchGridH5.png'), + research-grid-h6: img('customized/ResearchGridH6.png'), + research-grid-h7: img('customized/ResearchGridH7.png'), + research-grid-h8: img('customized/ResearchGridH8.png'), + research-grid-h9: img('customized/ResearchGridH9.png'), + research-grid-h10: img('customized/ResearchGridH10.png'), + + research-grid-i3: img('customized/ResearchGridI3.png'), + research-grid-i4: img('customized/ResearchGridI4.png'), + research-grid-i5: img('customized/ResearchGridI5.png'), + research-grid-i6: img('customized/ResearchGridI6.png'), + research-grid-i7: img('customized/ResearchGridI7.png'), + research-grid-i8: img('customized/ResearchGridI8.png'), + research-grid-i9: img('customized/ResearchGridI9.png'), + research-grid-i10: img('customized/ResearchGridI10.png'), + + research-grid-j3: img('customized/ResearchGridJ3.png'), + research-grid-j4: img('customized/ResearchGridJ4.png'), + research-grid-j5: img('customized/ResearchGridJ5.png'), + research-grid-j6: img('customized/ResearchGridJ6.png'), + research-grid-j7: img('customized/ResearchGridJ7.png'), + research-grid-j8: img('customized/ResearchGridJ8.png'), + research-grid-j9: img('customized/ResearchGridJ9.png'), + research-grid-j10: img('customized/ResearchGridJ10.png'), + + research-grid-k4: img('customized/ResearchGridK4.png'), + research-grid-k5: img('customized/ResearchGridK5.png'), + research-grid-k6: img('customized/ResearchGridK6.png'), + research-grid-k7: img('customized/ResearchGridK7.png'), + research-grid-k8: img('customized/ResearchGridK8.png'), + research-grid-k9: img('customized/ResearchGridK9.png'), + research-grid-k10: img('customized/ResearchGridK10.png'), + + research-grid-l4: img('customized/ResearchGridL4.png'), + research-grid-l5: img('customized/ResearchGridL5.png'), + research-grid-l6: img('customized/ResearchGridL6.png'), + research-grid-l7: img('customized/ResearchGridL7.png'), + research-grid-l8: img('customized/ResearchGridL8.png'), + research-grid-l9: img('customized/ResearchGridL9.png'), + research-grid-l10: img('customized/ResearchGridL10.png'), + research-grid-l11: img('customized/ResearchGridL11.png'), + + research-grid-m4: img('customized/ResearchGridM4.png'), + research-grid-m5: img('customized/ResearchGridM5.png'), + research-grid-m6: img('customized/ResearchGridM6.png'), + research-grid-m7: img('customized/ResearchGridM7.png'), + research-grid-m8: img('customized/ResearchGridM8.png'), + research-grid-m9: img('customized/ResearchGridM9.png'), + research-grid-m10: img('customized/ResearchGridM10.png'), + + research-grid-n4: img('customized/ResearchGridN4.png'), + research-grid-n8: img('customized/ResearchGridN8.png'), + + research-grid-o8: img('customized/ResearchGridO8.png') +); + +$research-observations: ( + observation-0: img('data/ResObj0.png'), + observation-1: img('data/ResObj1.png'), + observation-2: img('data/ResObj2.png'), + observation-3: img('data/ResObj3.png'), + observation-4: img('data/ResObj4.png'), + observation-5: img('data/ResObj5.png'), + observation-6: img('data/ResObj6.png'), + observation-7: img('data/ResObj7.png'), + observation-8: img('data/ResObj8.png'), + observation-9: img('data/ResObj9.png'), + observation-10: img('data/ResObj10.png'), + observation-11: img('data/ResObj11.png'), + observation-12: img('data/ResObj12.png'), + observation-13: img('data/ResObj13.png'), + observation-14: img('data/ResObj14.png'), + observation-15: img('data/ResObj15.png'), + observation-16: img('data/ResObj16.png'), + observation-17: img('data/ResObj17.png'), + observation-18: img('data/ResObj18.png'), + observation-19: img('data/ResObj19.png'), + observation-20: img('data/ResObj20.png'), + observation-21: img('data/ResObj21.png'), + observation-22: img('data/ResObj22.png'), + observation-23: img('data/ResObj23.png'), + observation-24: img('data/ResObj24.png'), + observation-25: img('data/ResObj25.png'), + observation-26: img('data/ResObj26.png'), + observation-27: img('data/ResObj27.png'), + observation-28: img('data/ResObj28.png'), + observation-29: img('data/ResObj29.png'), + observation-30: img('data/ResObj30.png'), + observation-31: img('data/ResObj31.png'), + observation-32: img('data/ResObj32.png'), + observation-33: img('data/ResObj33.png'), + observation-34: img('data/ResObj34.png'), + observation-35: img('data/ResObj35.png'), + observation-36: img('data/ResObj36.png'), + observation-37: img('data/ResObj37.png'), + observation-38: img('data/ResObj38.png'), + observation-39: img('data/ResObj39.png'), + observation-40: img('data/ResObj40.png'), + observation-41: img('data/ResObj41.png'), + observation-42: img('data/ResObj42.png'), + observation-43: img('data/ResObj43.png'), +); + +$research-posty-notes: ( + posty-note-0: img('data/ResPosty0.png'), + posty-note-1: img('data/ResPosty1.png'), + posty-note-2: img('data/ResPosty2.png'), + posty-note-3: img('data/ResPosty3.png'), + posty-note-4: img('data/ResPosty4.png'), + posty-note-5: img('data/ResPosty5.png'), + posty-note-6: img('data/ResPosty6.png'), + posty-note-7: img('data/ResPosty7.png'), + posty-note-8: img('data/ResPosty8.png'), + posty-note-9: img('data/ResPosty9.png'), + posty-note-10: img('data/ResPosty10.png'), + posty-note-11: img('data/ResPosty11.png'), + posty-note-12: img('data/ResPosty12.png'), + posty-note-13: img('data/ResPosty13.png') +); + +$all-research: ( + research: img('data/ClassIcons61.png') +); + +$all-research: map-merge($all-research, $research-grid); +$all-research: map-merge($all-research, $research-observations); +$all-research: map-merge($all-research, $research-posty-notes); diff --git a/mysite/static/assets/_slab-items.scss b/mysite/static/assets/_slab-items.scss index ecb92166..c2684722 100644 --- a/mysite/static/assets/_slab-items.scss +++ b/mysite/static/assets/_slab-items.scss @@ -1201,6 +1201,7 @@ $misc: ( urie-s-special-childhood-rock: img('data/Quest106.png'), stamina-battery: img('data/Quest108.png'), cropfall-basket: img('data/Quest109.png'), + zenith-crystal: img('data/Quest110.png') ); $all-slab: map-merge($resources, $monster-drops); diff --git a/mysite/static/assets/_zenith_market.scss b/mysite/static/assets/_zenith_market.scss new file mode 100644 index 00000000..e2963c82 --- /dev/null +++ b/mysite/static/assets/_zenith_market.scss @@ -0,0 +1,5 @@ +@import "slab-items"; + +$zenith-market: ( + zenith-market: map-get($all-slab, zenith-crystal), +); diff --git a/mysite/static/assets/image-mapping.scss b/mysite/static/assets/image-mapping.scss index a0baeda8..98ff5f04 100644 --- a/mysite/static/assets/image-mapping.scss +++ b/mysite/static/assets/image-mapping.scss @@ -126,18 +126,22 @@ $id-map: map-merge($id-map, $all-summoning); @import "advice_fish"; @import "clam"; @import "coral"; -@import "spelunking"; -@import "legend-talents"; @import "gallery"; +@import "legend-talents"; @import "meritocracy"; +@import "research"; +@import "spelunking"; +@import "zenith_market"; $id-map: map-merge($id-map, $all-advice-fish); $id-map: map-merge($id-map, $all-clam); $id-map: map-merge($id-map, $all-coral); -$id-map: map-merge($id-map, $all-spelunking); -$id-map: map-merge($id-map, $all-legend-talents); $id-map: map-merge($id-map, $all-gallery); +$id-map: map-merge($id-map, $all-legend-talents); +$id-map: map-merge($id-map, $all-research); +$id-map: map-merge($id-map, $all-spelunking); $id-map: map-merge($id-map, $meritocracy); +$id-map: map-merge($id-map, $zenith-market); @each $class, $link in $id-map { diff --git a/mysite/static/imgs/1x/font-746.fnt b/mysite/static/imgs/1x/font-746.fnt new file mode 100644 index 00000000..16f490c3 --- /dev/null +++ b/mysite/static/imgs/1x/font-746.fnt @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mysite/static/imgs/1x/font-746.png b/mysite/static/imgs/1x/font-746.png new file mode 100644 index 00000000..8ab758ed Binary files /dev/null and b/mysite/static/imgs/1x/font-746.png differ diff --git a/mysite/static/imgs/customized/ResearchGridF6.png b/mysite/static/imgs/customized/ResearchGridF6.png new file mode 100644 index 00000000..d4f9abc4 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridF6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridF7.png b/mysite/static/imgs/customized/ResearchGridF7.png new file mode 100644 index 00000000..e5203eac Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridF7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridG4.png b/mysite/static/imgs/customized/ResearchGridG4.png new file mode 100644 index 00000000..a13fffc8 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridG4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridG5.png b/mysite/static/imgs/customized/ResearchGridG5.png new file mode 100644 index 00000000..d10e5f20 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridG5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridG6.png b/mysite/static/imgs/customized/ResearchGridG6.png new file mode 100644 index 00000000..440a26be Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridG6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridG7.png b/mysite/static/imgs/customized/ResearchGridG7.png new file mode 100644 index 00000000..7840cb09 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridG7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridG8.png b/mysite/static/imgs/customized/ResearchGridG8.png new file mode 100644 index 00000000..74d88a28 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridG8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH10.png b/mysite/static/imgs/customized/ResearchGridH10.png new file mode 100644 index 00000000..92379f6c Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH10.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH4.png b/mysite/static/imgs/customized/ResearchGridH4.png new file mode 100644 index 00000000..f03a0ee3 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH5.png b/mysite/static/imgs/customized/ResearchGridH5.png new file mode 100644 index 00000000..84bd1957 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH6.png b/mysite/static/imgs/customized/ResearchGridH6.png new file mode 100644 index 00000000..4f0dc64d Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH7.png b/mysite/static/imgs/customized/ResearchGridH7.png new file mode 100644 index 00000000..11196abb Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH8.png b/mysite/static/imgs/customized/ResearchGridH8.png new file mode 100644 index 00000000..5f9e4341 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridH9.png b/mysite/static/imgs/customized/ResearchGridH9.png new file mode 100644 index 00000000..fc8fd4b6 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridH9.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI10.png b/mysite/static/imgs/customized/ResearchGridI10.png new file mode 100644 index 00000000..a7511f6f Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI10.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI3.png b/mysite/static/imgs/customized/ResearchGridI3.png new file mode 100644 index 00000000..4d221ca7 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI3.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI4.png b/mysite/static/imgs/customized/ResearchGridI4.png new file mode 100644 index 00000000..41c1975a Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI5.png b/mysite/static/imgs/customized/ResearchGridI5.png new file mode 100644 index 00000000..429644b6 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI6.png b/mysite/static/imgs/customized/ResearchGridI6.png new file mode 100644 index 00000000..8fc7c03d Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI7.png b/mysite/static/imgs/customized/ResearchGridI7.png new file mode 100644 index 00000000..f11fa7c5 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI8.png b/mysite/static/imgs/customized/ResearchGridI8.png new file mode 100644 index 00000000..39be142b Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridI9.png b/mysite/static/imgs/customized/ResearchGridI9.png new file mode 100644 index 00000000..7f39fd00 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridI9.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ10.png b/mysite/static/imgs/customized/ResearchGridJ10.png new file mode 100644 index 00000000..a3bd39c6 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ10.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ3.png b/mysite/static/imgs/customized/ResearchGridJ3.png new file mode 100644 index 00000000..e116cc2f Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ3.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ4.png b/mysite/static/imgs/customized/ResearchGridJ4.png new file mode 100644 index 00000000..242cd607 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ5.png b/mysite/static/imgs/customized/ResearchGridJ5.png new file mode 100644 index 00000000..22ea7ad1 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ6.png b/mysite/static/imgs/customized/ResearchGridJ6.png new file mode 100644 index 00000000..e2b70c97 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ7.png b/mysite/static/imgs/customized/ResearchGridJ7.png new file mode 100644 index 00000000..1afd61dd Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ8.png b/mysite/static/imgs/customized/ResearchGridJ8.png new file mode 100644 index 00000000..42f58cce Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridJ9.png b/mysite/static/imgs/customized/ResearchGridJ9.png new file mode 100644 index 00000000..057fb438 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridJ9.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK10.png b/mysite/static/imgs/customized/ResearchGridK10.png new file mode 100644 index 00000000..527c0fa0 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK10.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK4.png b/mysite/static/imgs/customized/ResearchGridK4.png new file mode 100644 index 00000000..9c10bfeb Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK5.png b/mysite/static/imgs/customized/ResearchGridK5.png new file mode 100644 index 00000000..79bbfac9 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK6.png b/mysite/static/imgs/customized/ResearchGridK6.png new file mode 100644 index 00000000..4b3d59db Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK7.png b/mysite/static/imgs/customized/ResearchGridK7.png new file mode 100644 index 00000000..d860422a Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK8.png b/mysite/static/imgs/customized/ResearchGridK8.png new file mode 100644 index 00000000..9100ddf5 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridK9.png b/mysite/static/imgs/customized/ResearchGridK9.png new file mode 100644 index 00000000..472eae63 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridK9.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL10.png b/mysite/static/imgs/customized/ResearchGridL10.png new file mode 100644 index 00000000..918b6207 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL10.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL11.png b/mysite/static/imgs/customized/ResearchGridL11.png new file mode 100644 index 00000000..b2c1d9f0 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL11.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL4.png b/mysite/static/imgs/customized/ResearchGridL4.png new file mode 100644 index 00000000..e6f906d8 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL5.png b/mysite/static/imgs/customized/ResearchGridL5.png new file mode 100644 index 00000000..036b21ca Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL6.png b/mysite/static/imgs/customized/ResearchGridL6.png new file mode 100644 index 00000000..5a5447d8 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL7.png b/mysite/static/imgs/customized/ResearchGridL7.png new file mode 100644 index 00000000..67e0cb32 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL8.png b/mysite/static/imgs/customized/ResearchGridL8.png new file mode 100644 index 00000000..cc93c16f Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridL9.png b/mysite/static/imgs/customized/ResearchGridL9.png new file mode 100644 index 00000000..a9b8d2f3 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridL9.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM10.png b/mysite/static/imgs/customized/ResearchGridM10.png new file mode 100644 index 00000000..6e6cd1a3 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM10.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM4.png b/mysite/static/imgs/customized/ResearchGridM4.png new file mode 100644 index 00000000..93c6bf8d Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM5.png b/mysite/static/imgs/customized/ResearchGridM5.png new file mode 100644 index 00000000..6739daa8 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM5.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM6.png b/mysite/static/imgs/customized/ResearchGridM6.png new file mode 100644 index 00000000..f6359e0b Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM6.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM7.png b/mysite/static/imgs/customized/ResearchGridM7.png new file mode 100644 index 00000000..09a5731d Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM7.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM8.png b/mysite/static/imgs/customized/ResearchGridM8.png new file mode 100644 index 00000000..eeeab901 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridM9.png b/mysite/static/imgs/customized/ResearchGridM9.png new file mode 100644 index 00000000..96c68cac Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridM9.png differ diff --git a/mysite/static/imgs/customized/ResearchGridN4.png b/mysite/static/imgs/customized/ResearchGridN4.png new file mode 100644 index 00000000..8ef6fd39 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridN4.png differ diff --git a/mysite/static/imgs/customized/ResearchGridN8.png b/mysite/static/imgs/customized/ResearchGridN8.png new file mode 100644 index 00000000..06e20d6a Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridN8.png differ diff --git a/mysite/static/imgs/customized/ResearchGridO8.png b/mysite/static/imgs/customized/ResearchGridO8.png new file mode 100644 index 00000000..85278544 Binary files /dev/null and b/mysite/static/imgs/customized/ResearchGridO8.png differ diff --git a/mysite/static/imgs/data/ClassIcons61.png b/mysite/static/imgs/data/ClassIcons61.png new file mode 100644 index 00000000..8d79ef10 Binary files /dev/null and b/mysite/static/imgs/data/ClassIcons61.png differ diff --git a/mysite/static/imgs/data/ResObj0.png b/mysite/static/imgs/data/ResObj0.png new file mode 100644 index 00000000..b6048dea Binary files /dev/null and b/mysite/static/imgs/data/ResObj0.png differ diff --git a/mysite/static/imgs/data/ResObj1.png b/mysite/static/imgs/data/ResObj1.png new file mode 100644 index 00000000..bdc4abbb Binary files /dev/null and b/mysite/static/imgs/data/ResObj1.png differ diff --git a/mysite/static/imgs/data/ResObj10.png b/mysite/static/imgs/data/ResObj10.png new file mode 100644 index 00000000..4fb3c044 Binary files /dev/null and b/mysite/static/imgs/data/ResObj10.png differ diff --git a/mysite/static/imgs/data/ResObj11.png b/mysite/static/imgs/data/ResObj11.png new file mode 100644 index 00000000..68d31a4c Binary files /dev/null and b/mysite/static/imgs/data/ResObj11.png differ diff --git a/mysite/static/imgs/data/ResObj12.png b/mysite/static/imgs/data/ResObj12.png new file mode 100644 index 00000000..f319b96e Binary files /dev/null and b/mysite/static/imgs/data/ResObj12.png differ diff --git a/mysite/static/imgs/data/ResObj13.png b/mysite/static/imgs/data/ResObj13.png new file mode 100644 index 00000000..4fd1b40d Binary files /dev/null and b/mysite/static/imgs/data/ResObj13.png differ diff --git a/mysite/static/imgs/data/ResObj14.png b/mysite/static/imgs/data/ResObj14.png new file mode 100644 index 00000000..bcac0e0a Binary files /dev/null and b/mysite/static/imgs/data/ResObj14.png differ diff --git a/mysite/static/imgs/data/ResObj15.png b/mysite/static/imgs/data/ResObj15.png new file mode 100644 index 00000000..6af41a8e Binary files /dev/null and b/mysite/static/imgs/data/ResObj15.png differ diff --git a/mysite/static/imgs/data/ResObj16.png b/mysite/static/imgs/data/ResObj16.png new file mode 100644 index 00000000..b7ec99d3 Binary files /dev/null and b/mysite/static/imgs/data/ResObj16.png differ diff --git a/mysite/static/imgs/data/ResObj17.png b/mysite/static/imgs/data/ResObj17.png new file mode 100644 index 00000000..625ea618 Binary files /dev/null and b/mysite/static/imgs/data/ResObj17.png differ diff --git a/mysite/static/imgs/data/ResObj18.png b/mysite/static/imgs/data/ResObj18.png new file mode 100644 index 00000000..a54010f0 Binary files /dev/null and b/mysite/static/imgs/data/ResObj18.png differ diff --git a/mysite/static/imgs/data/ResObj19.png b/mysite/static/imgs/data/ResObj19.png new file mode 100644 index 00000000..03a9ee12 Binary files /dev/null and b/mysite/static/imgs/data/ResObj19.png differ diff --git a/mysite/static/imgs/data/ResObj2.png b/mysite/static/imgs/data/ResObj2.png new file mode 100644 index 00000000..740a4d0b Binary files /dev/null and b/mysite/static/imgs/data/ResObj2.png differ diff --git a/mysite/static/imgs/data/ResObj20.png b/mysite/static/imgs/data/ResObj20.png new file mode 100644 index 00000000..35f93b18 Binary files /dev/null and b/mysite/static/imgs/data/ResObj20.png differ diff --git a/mysite/static/imgs/data/ResObj21.png b/mysite/static/imgs/data/ResObj21.png new file mode 100644 index 00000000..bab3038d Binary files /dev/null and b/mysite/static/imgs/data/ResObj21.png differ diff --git a/mysite/static/imgs/data/ResObj22.png b/mysite/static/imgs/data/ResObj22.png new file mode 100644 index 00000000..2228191f Binary files /dev/null and b/mysite/static/imgs/data/ResObj22.png differ diff --git a/mysite/static/imgs/data/ResObj23.png b/mysite/static/imgs/data/ResObj23.png new file mode 100644 index 00000000..37757b51 Binary files /dev/null and b/mysite/static/imgs/data/ResObj23.png differ diff --git a/mysite/static/imgs/data/ResObj24.png b/mysite/static/imgs/data/ResObj24.png new file mode 100644 index 00000000..c7e44c6d Binary files /dev/null and b/mysite/static/imgs/data/ResObj24.png differ diff --git a/mysite/static/imgs/data/ResObj25.png b/mysite/static/imgs/data/ResObj25.png new file mode 100644 index 00000000..fe92169f Binary files /dev/null and b/mysite/static/imgs/data/ResObj25.png differ diff --git a/mysite/static/imgs/data/ResObj26.png b/mysite/static/imgs/data/ResObj26.png new file mode 100644 index 00000000..ac9451cb Binary files /dev/null and b/mysite/static/imgs/data/ResObj26.png differ diff --git a/mysite/static/imgs/data/ResObj27.png b/mysite/static/imgs/data/ResObj27.png new file mode 100644 index 00000000..fd237fdc Binary files /dev/null and b/mysite/static/imgs/data/ResObj27.png differ diff --git a/mysite/static/imgs/data/ResObj28.png b/mysite/static/imgs/data/ResObj28.png new file mode 100644 index 00000000..e34a67b3 Binary files /dev/null and b/mysite/static/imgs/data/ResObj28.png differ diff --git a/mysite/static/imgs/data/ResObj29.png b/mysite/static/imgs/data/ResObj29.png new file mode 100644 index 00000000..79f8965a Binary files /dev/null and b/mysite/static/imgs/data/ResObj29.png differ diff --git a/mysite/static/imgs/data/ResObj3.png b/mysite/static/imgs/data/ResObj3.png new file mode 100644 index 00000000..20c4d768 Binary files /dev/null and b/mysite/static/imgs/data/ResObj3.png differ diff --git a/mysite/static/imgs/data/ResObj30.png b/mysite/static/imgs/data/ResObj30.png new file mode 100644 index 00000000..f77195a1 Binary files /dev/null and b/mysite/static/imgs/data/ResObj30.png differ diff --git a/mysite/static/imgs/data/ResObj31.png b/mysite/static/imgs/data/ResObj31.png new file mode 100644 index 00000000..28925b04 Binary files /dev/null and b/mysite/static/imgs/data/ResObj31.png differ diff --git a/mysite/static/imgs/data/ResObj32.png b/mysite/static/imgs/data/ResObj32.png new file mode 100644 index 00000000..7735101f Binary files /dev/null and b/mysite/static/imgs/data/ResObj32.png differ diff --git a/mysite/static/imgs/data/ResObj33.png b/mysite/static/imgs/data/ResObj33.png new file mode 100644 index 00000000..5f411c28 Binary files /dev/null and b/mysite/static/imgs/data/ResObj33.png differ diff --git a/mysite/static/imgs/data/ResObj34.png b/mysite/static/imgs/data/ResObj34.png new file mode 100644 index 00000000..7950fa66 Binary files /dev/null and b/mysite/static/imgs/data/ResObj34.png differ diff --git a/mysite/static/imgs/data/ResObj35.png b/mysite/static/imgs/data/ResObj35.png new file mode 100644 index 00000000..dfe914e8 Binary files /dev/null and b/mysite/static/imgs/data/ResObj35.png differ diff --git a/mysite/static/imgs/data/ResObj36.png b/mysite/static/imgs/data/ResObj36.png new file mode 100644 index 00000000..3ff95036 Binary files /dev/null and b/mysite/static/imgs/data/ResObj36.png differ diff --git a/mysite/static/imgs/data/ResObj37.png b/mysite/static/imgs/data/ResObj37.png new file mode 100644 index 00000000..9d12684b Binary files /dev/null and b/mysite/static/imgs/data/ResObj37.png differ diff --git a/mysite/static/imgs/data/ResObj38.png b/mysite/static/imgs/data/ResObj38.png new file mode 100644 index 00000000..4135ca94 Binary files /dev/null and b/mysite/static/imgs/data/ResObj38.png differ diff --git a/mysite/static/imgs/data/ResObj39.png b/mysite/static/imgs/data/ResObj39.png new file mode 100644 index 00000000..10e167b1 Binary files /dev/null and b/mysite/static/imgs/data/ResObj39.png differ diff --git a/mysite/static/imgs/data/ResObj4.png b/mysite/static/imgs/data/ResObj4.png new file mode 100644 index 00000000..d94f5d36 Binary files /dev/null and b/mysite/static/imgs/data/ResObj4.png differ diff --git a/mysite/static/imgs/data/ResObj40.png b/mysite/static/imgs/data/ResObj40.png new file mode 100644 index 00000000..cf0f9927 Binary files /dev/null and b/mysite/static/imgs/data/ResObj40.png differ diff --git a/mysite/static/imgs/data/ResObj41.png b/mysite/static/imgs/data/ResObj41.png new file mode 100644 index 00000000..07d43960 Binary files /dev/null and b/mysite/static/imgs/data/ResObj41.png differ diff --git a/mysite/static/imgs/data/ResObj42.png b/mysite/static/imgs/data/ResObj42.png new file mode 100644 index 00000000..570dcfe1 Binary files /dev/null and b/mysite/static/imgs/data/ResObj42.png differ diff --git a/mysite/static/imgs/data/ResObj43.png b/mysite/static/imgs/data/ResObj43.png new file mode 100644 index 00000000..3bfadae0 Binary files /dev/null and b/mysite/static/imgs/data/ResObj43.png differ diff --git a/mysite/static/imgs/data/ResObj5.png b/mysite/static/imgs/data/ResObj5.png new file mode 100644 index 00000000..8fd3b76c Binary files /dev/null and b/mysite/static/imgs/data/ResObj5.png differ diff --git a/mysite/static/imgs/data/ResObj6.png b/mysite/static/imgs/data/ResObj6.png new file mode 100644 index 00000000..4c18b7d1 Binary files /dev/null and b/mysite/static/imgs/data/ResObj6.png differ diff --git a/mysite/static/imgs/data/ResObj7.png b/mysite/static/imgs/data/ResObj7.png new file mode 100644 index 00000000..31204b8e Binary files /dev/null and b/mysite/static/imgs/data/ResObj7.png differ diff --git a/mysite/static/imgs/data/ResObj8.png b/mysite/static/imgs/data/ResObj8.png new file mode 100644 index 00000000..b3a8ec01 Binary files /dev/null and b/mysite/static/imgs/data/ResObj8.png differ diff --git a/mysite/static/imgs/data/ResObj9.png b/mysite/static/imgs/data/ResObj9.png new file mode 100644 index 00000000..641a863c Binary files /dev/null and b/mysite/static/imgs/data/ResObj9.png differ diff --git a/mysite/static/imgs/data/ResPosty0.png b/mysite/static/imgs/data/ResPosty0.png new file mode 100644 index 00000000..3ec66f88 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty0.png differ diff --git a/mysite/static/imgs/data/ResPosty1.png b/mysite/static/imgs/data/ResPosty1.png new file mode 100644 index 00000000..d5662be2 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty1.png differ diff --git a/mysite/static/imgs/data/ResPosty10.png b/mysite/static/imgs/data/ResPosty10.png new file mode 100644 index 00000000..3d515df3 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty10.png differ diff --git a/mysite/static/imgs/data/ResPosty11.png b/mysite/static/imgs/data/ResPosty11.png new file mode 100644 index 00000000..169112d0 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty11.png differ diff --git a/mysite/static/imgs/data/ResPosty12.png b/mysite/static/imgs/data/ResPosty12.png new file mode 100644 index 00000000..00c97205 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty12.png differ diff --git a/mysite/static/imgs/data/ResPosty13.png b/mysite/static/imgs/data/ResPosty13.png new file mode 100644 index 00000000..e605466f Binary files /dev/null and b/mysite/static/imgs/data/ResPosty13.png differ diff --git a/mysite/static/imgs/data/ResPosty2.png b/mysite/static/imgs/data/ResPosty2.png new file mode 100644 index 00000000..8a8b9a32 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty2.png differ diff --git a/mysite/static/imgs/data/ResPosty3.png b/mysite/static/imgs/data/ResPosty3.png new file mode 100644 index 00000000..3ef60493 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty3.png differ diff --git a/mysite/static/imgs/data/ResPosty4.png b/mysite/static/imgs/data/ResPosty4.png new file mode 100644 index 00000000..922e3ff7 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty4.png differ diff --git a/mysite/static/imgs/data/ResPosty5.png b/mysite/static/imgs/data/ResPosty5.png new file mode 100644 index 00000000..e8f274aa Binary files /dev/null and b/mysite/static/imgs/data/ResPosty5.png differ diff --git a/mysite/static/imgs/data/ResPosty6.png b/mysite/static/imgs/data/ResPosty6.png new file mode 100644 index 00000000..2856169b Binary files /dev/null and b/mysite/static/imgs/data/ResPosty6.png differ diff --git a/mysite/static/imgs/data/ResPosty7.png b/mysite/static/imgs/data/ResPosty7.png new file mode 100644 index 00000000..c3120fc5 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty7.png differ diff --git a/mysite/static/imgs/data/ResPosty8.png b/mysite/static/imgs/data/ResPosty8.png new file mode 100644 index 00000000..06eac28c Binary files /dev/null and b/mysite/static/imgs/data/ResPosty8.png differ diff --git a/mysite/static/imgs/data/ResPosty9.png b/mysite/static/imgs/data/ResPosty9.png new file mode 100644 index 00000000..fc988871 Binary files /dev/null and b/mysite/static/imgs/data/ResPosty9.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid0.png b/mysite/static/imgs/extracted_sprites/ResearchGrid0.png new file mode 100644 index 00000000..dac86fe0 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid0.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid1.png b/mysite/static/imgs/extracted_sprites/ResearchGrid1.png new file mode 100644 index 00000000..824d6e31 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid1.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid2.png b/mysite/static/imgs/extracted_sprites/ResearchGrid2.png new file mode 100644 index 00000000..a13146f8 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid2.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid3.png b/mysite/static/imgs/extracted_sprites/ResearchGrid3.png new file mode 100644 index 00000000..4d86da1c Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid3.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid4.png b/mysite/static/imgs/extracted_sprites/ResearchGrid4.png new file mode 100644 index 00000000..7505077d Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid4.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid5.png b/mysite/static/imgs/extracted_sprites/ResearchGrid5.png new file mode 100644 index 00000000..9ae46d1d Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid5.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid6.png b/mysite/static/imgs/extracted_sprites/ResearchGrid6.png new file mode 100644 index 00000000..34473fc5 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid6.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid7.png b/mysite/static/imgs/extracted_sprites/ResearchGrid7.png new file mode 100644 index 00000000..d5bb7683 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid7.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid8.png b/mysite/static/imgs/extracted_sprites/ResearchGrid8.png new file mode 100644 index 00000000..c904f27e Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid8.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGrid9.png b/mysite/static/imgs/extracted_sprites/ResearchGrid9.png new file mode 100644 index 00000000..90732b23 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGrid9.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridA.png b/mysite/static/imgs/extracted_sprites/ResearchGridA.png new file mode 100644 index 00000000..124e5733 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridA.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridB.png b/mysite/static/imgs/extracted_sprites/ResearchGridB.png new file mode 100644 index 00000000..3f9ed7b0 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridB.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridC.png b/mysite/static/imgs/extracted_sprites/ResearchGridC.png new file mode 100644 index 00000000..6067c983 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridC.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridD.png b/mysite/static/imgs/extracted_sprites/ResearchGridD.png new file mode 100644 index 00000000..f08b1cb1 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridD.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridE.png b/mysite/static/imgs/extracted_sprites/ResearchGridE.png new file mode 100644 index 00000000..8e084717 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridE.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridF.png b/mysite/static/imgs/extracted_sprites/ResearchGridF.png new file mode 100644 index 00000000..49f5d8c8 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridF.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridG.png b/mysite/static/imgs/extracted_sprites/ResearchGridG.png new file mode 100644 index 00000000..9b903a64 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridG.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridH.png b/mysite/static/imgs/extracted_sprites/ResearchGridH.png new file mode 100644 index 00000000..60625ee0 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridH.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridI.png b/mysite/static/imgs/extracted_sprites/ResearchGridI.png new file mode 100644 index 00000000..67561ffe Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridI.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridJ.png b/mysite/static/imgs/extracted_sprites/ResearchGridJ.png new file mode 100644 index 00000000..955c3756 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridJ.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridK.png b/mysite/static/imgs/extracted_sprites/ResearchGridK.png new file mode 100644 index 00000000..2c790726 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridK.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridL.png b/mysite/static/imgs/extracted_sprites/ResearchGridL.png new file mode 100644 index 00000000..e6c0f4e8 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridL.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridM.png b/mysite/static/imgs/extracted_sprites/ResearchGridM.png new file mode 100644 index 00000000..660ae122 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridM.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridN.png b/mysite/static/imgs/extracted_sprites/ResearchGridN.png new file mode 100644 index 00000000..e3de797e Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridN.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridO.png b/mysite/static/imgs/extracted_sprites/ResearchGridO.png new file mode 100644 index 00000000..0dd2e824 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridO.png differ diff --git a/mysite/static/imgs/extracted_sprites/ResearchGridTile.png b/mysite/static/imgs/extracted_sprites/ResearchGridTile.png new file mode 100644 index 00000000..35f81523 Binary files /dev/null and b/mysite/static/imgs/extracted_sprites/ResearchGridTile.png differ diff --git a/mysite/taskSuggester.py b/mysite/taskSuggester.py index bb059a42..b88b238d 100644 --- a/mysite/taskSuggester.py +++ b/mysite/taskSuggester.py @@ -32,6 +32,8 @@ clam_work, meritocracy, gallery, + zenith_market, + research, ) logger = get_logger(__name__) @@ -166,12 +168,14 @@ def main(inputData, source_string, runType="web"): ], sections_7 := [ spelunking.get_spelunking_advicesection(), - coral_reef.get_coral_reef_section(), + meritocracy.get_section(), + gallery.get_section(), legend_talents.get_legend_talents_section(), + coral_reef.get_coral_reef_section(), + research.get_section(), advice_fish.get_section(), + zenith_market.get_zenith_market_section(), clam_work.get_section(), - meritocracy.get_section(), - gallery.get_section(), ] ] diff --git a/mysite/templates/sidebar.html b/mysite/templates/sidebar.html index 647ea4eb..4cb677d7 100644 --- a/mysite/templates/sidebar.html +++ b/mysite/templates/sidebar.html @@ -7,13 +7,13 @@ {% if beta %} Heads up! You're on the beta-testing page. If you run into problems, try heading back to the Live Page
- Beta testing: 2026-04-28: See Discord #beta-blog channel! + Beta testing: 2026-05-21: See Discord #beta-blog channel! {% else %} To try out the beta site, head to the Beta Page {% endif %}

- Latest Update 2026-04-28: See Discord #release-notes channel! + Latest Update 2026-05-21: See Discord #release-notes channel!

diff --git a/mysite/utils/image_tools/sprite_extractor/sprite_extractor_dict.py b/mysite/utils/image_tools/sprite_extractor/sprite_extractor_dict.py index e6fb4f4b..0db79b66 100644 --- a/mysite/utils/image_tools/sprite_extractor/sprite_extractor_dict.py +++ b/mysite/utils/image_tools/sprite_extractor/sprite_extractor_dict.py @@ -25,6 +25,34 @@ class SpritesheetDefinition(TypedDict): 33945: "BasketballShopCurrency", 32435: "DartsShopCurrency" }, + "font-746.fnt": { + 48: "ResearchGrid0", + 49: "ResearchGrid1", + 50: "ResearchGrid2", + 51: "ResearchGrid3", + 52: "ResearchGrid4", + 53: "ResearchGrid5", + 54: "ResearchGrid6", + 55: "ResearchGrid7", + 56: "ResearchGrid8", + 57: "ResearchGrid9", + 65: "ResearchGridA", + 66: "ResearchGridB", + 67: "ResearchGridC", + 68: "ResearchGridD", + 69: "ResearchGridE", + 70: "ResearchGridF", + 71: "ResearchGridG", + 72: "ResearchGridH", + 73: "ResearchGridI", + 74: "ResearchGridJ", + 75: "ResearchGridK", + 76: "ResearchGridL", + 77: "ResearchGridM", + 78: "ResearchGridN", + 79: "ResearchGridO", + 91: "ResearchGridTile", + }, "sprite-673-16.png": { "base_file_name": "SummoningStone", "columns": 3, diff --git a/mysite/w7/research.py b/mysite/w7/research.py new file mode 100644 index 00000000..c713c397 --- /dev/null +++ b/mysite/w7/research.py @@ -0,0 +1,74 @@ +from models.advice.advice import Advice +from models.general.session_data import session_data +from models.advice.advice_section import AdviceSection +from models.advice.advice_group import AdviceGroup + + +def get_upgrade_info_group(): + advices = [ + upgrade.get_bonus_advice(False) + for upgrade in session_data.account.research.grid.values() + ] + for advice in advices: + advice.mark_advice_completed() + return AdviceGroup( + pre_string="Research Grid", + advices=advices, + tier="", + informational=True + ) + +def get_observations_info_group(): + advices = [ + observation.get_advice() + for observation in session_data.account.research.observations.values() + ] + for advice in advices: + advice.mark_advice_completed() + return AdviceGroup( + pre_string="Observations", + advices=advices, + tier="", + informational=True + ) + +def get_posty_notes_info_group(): + advices = [ + Advice( + label="Note: New Posty Notes are unlocked every 10 Research levels", + picture_class="", + ) + ] + advices += [ + posty.get_advice() + for posty in session_data.account.research.posty_notes.values() + ] + for advice in advices: + advice.mark_advice_completed() + return AdviceGroup( + pre_string="Posty Notes", + advices=advices, + tier="", + informational=True + ) + +def get_section(): + if session_data.account.highest_world_reached < 7: + return AdviceSection( + name="Research", + tier="Not Yet Evaluated", + header="Come back after unlocking Research in W7!", + picture="research", + unreached=True, + ) + + groups = [get_upgrade_info_group(), get_observations_info_group(), get_posty_notes_info_group()] + return AdviceSection( + name="Research", + tier="", + header="Research", + picture="data/ClassIcons61.png", + groups=groups, + informational=True, + unrated=True, + ) diff --git a/mysite/w7/zenith_market.py b/mysite/w7/zenith_market.py new file mode 100644 index 00000000..6bb8c358 --- /dev/null +++ b/mysite/w7/zenith_market.py @@ -0,0 +1,40 @@ +from models.advice.advice import Advice +from models.advice.advice_group import AdviceGroup +from models.advice.advice_section import AdviceSection +from models.general.session_data import session_data + + +def get_upgrades_info_group() -> AdviceGroup: + upgrade_advice: list[Advice] = [ + upgrade.get_advice() for upgrade in session_data.account.zenith_market.values() + ] + return AdviceGroup( + pre_string='Upgrades', + advices=upgrade_advice, + tier='', + informational=True + ) + + +def get_zenith_market_section(): + # Check if player has reached this section + if session_data.account.highest_world_reached < 7: + zenith_AdviceSection = AdviceSection( + name='Zenith Market', + tier='Not Yet Evaluated', + header='Come back after unlocking the Zenith Market in Doodle Reef!', + picture='data/Quest110.png', + unreached=True, + ) + return zenith_AdviceSection + + groups = [get_upgrades_info_group()] + return AdviceSection( + name='Zenith Market', + tier='', + header='Zenith Market', + picture='data/Quest110.png', + groups=groups, + informational=True, + unrated=True, + )