338 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			338 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | 
 | ||
|  | class OTHER: | ||
|  |     game_name = "shapez" | ||
|  | 
 | ||
|  | 
 | ||
|  | class SLOTDATA: | ||
|  |     goal = "goal" | ||
|  |     maxlevel = "maxlevel" | ||
|  |     finaltier = "finaltier" | ||
|  |     req_shapes_mult = "required_shapes_multiplier" | ||
|  |     allow_float_layers = "allow_floating_layers" | ||
|  |     rand_level_req = "randomize_level_requirements" | ||
|  |     rand_upgrade_req = "randomize_upgrade_requirements" | ||
|  |     rand_level_logic = "randomize_level_logic" | ||
|  |     rand_upgrade_logic = "randomize_upgrade_logic" | ||
|  |     throughput_levels_ratio = "throughput_levels_ratio" | ||
|  |     comp_growth_gradient = "complexity_growth_gradient" | ||
|  |     same_late = "same_late_upgrade_requirements" | ||
|  |     toolbar_shuffling = "toolbar_shuffling" | ||
|  |     seed = "seed" | ||
|  |     shapesanity = "shapesanity" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def level_building(number: int) -> str: | ||
|  |         return f"Level building {number}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def upgrade_building(number: int) -> str: | ||
|  |         return f"Upgrade building {number}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def phase_length(number: int) -> str: | ||
|  |         return f"Phase {number} length" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def cat_buildings_amount(category: str) -> str: | ||
|  |         return f"{category} category buildings amount" | ||
|  | 
 | ||
|  | 
 | ||
|  | class GOALS: | ||
|  |     vanilla = "vanilla" | ||
|  |     mam = "mam" | ||
|  |     even_fasterer = "even_fasterer" | ||
|  |     efficiency_iii = "efficiency_iii" | ||
|  | 
 | ||
|  | 
 | ||
|  | class CATEGORY: | ||
|  |     belt = "Belt" | ||
|  |     miner = "Miner" | ||
|  |     processors = "Processors" | ||
|  |     painting = "Painting" | ||
|  |     random = "Random" | ||
|  |     belt_low = "belt" | ||
|  |     miner_low = "miner" | ||
|  |     processors_low = "processors" | ||
|  |     painting_low = "painting" | ||
|  |     big = "Big" | ||
|  |     small = "Small" | ||
|  |     gigantic = "Gigantic" | ||
|  |     rising = "Rising" | ||
|  |     demonic = "Demonic" | ||
|  | 
 | ||
|  | 
 | ||
|  | class OPTIONS: | ||
|  |     logic_vanilla = "vanilla" | ||
|  |     logic_stretched = "stretched" | ||
|  |     logic_quick = "quick" | ||
|  |     logic_random_steps = "random_steps" | ||
|  |     logic_hardcore = "hardcore" | ||
|  |     logic_dopamine = "dopamine" | ||
|  |     logic_dopamine_overflow = "dopamine_overflow" | ||
|  |     logic_vanilla_like = "vanilla_like" | ||
|  |     logic_linear = "linear" | ||
|  |     logic_category = "category" | ||
|  |     logic_category_random = "category_random" | ||
|  |     logic_shuffled = "shuffled" | ||
|  |     sphere_1 = "sphere_1" | ||
|  |     buildings_3 = "3_buildings" | ||
|  |     buildings_5 = "5_buildings" | ||
|  | 
 | ||
|  | 
 | ||
|  | class REGIONS: | ||
|  |     menu = "Menu" | ||
|  |     belt = "Shape transportation" | ||
|  |     extract = "Shape extraction" | ||
|  |     main = "Main" | ||
|  |     levels_1 = "Levels with 1 building" | ||
|  |     levels_2 = "Levels with 2 buildings" | ||
|  |     levels_3 = "Levels with 3 buildings" | ||
|  |     levels_4 = "Levels with 4 buildings" | ||
|  |     levels_5 = "Levels with 5 buildings" | ||
|  |     upgrades_1 = "Upgrades with 1 building" | ||
|  |     upgrades_2 = "Upgrades with 2 buildings" | ||
|  |     upgrades_3 = "Upgrades with 3 buildings" | ||
|  |     upgrades_4 = "Upgrades with 4 buildings" | ||
|  |     upgrades_5 = "Upgrades with 5 buildings" | ||
|  |     paint_not_quad = "Achievements with (double) painter" | ||
|  |     cut_not_quad = "Achievements with half cutter" | ||
|  |     rotate_cw = "Achievements with clockwise rotator" | ||
|  |     stack_shape = "Achievements with stacker" | ||
|  |     store_shape = "Achievements with storage" | ||
|  |     trash_shape = "Achievements with trash" | ||
|  |     blueprint = "Achievements with blueprints" | ||
|  |     wiring = "Achievements with wires" | ||
|  |     mam = "Achievements needing a MAM" | ||
|  |     any_building = "Achievements with any placeable building" | ||
|  |     all_buildings = "Achievements with all main buildings" | ||
|  |     all_buildings_x1_6_belt = "Achievements with x1.6 belt speed" | ||
|  |     full = "Full" | ||
|  |     half = "Half" | ||
|  |     piece = "Piece" | ||
|  |     stitched = "Stitched" | ||
|  |     east_wind = "East Windmill" | ||
|  |     half_half = "Half-Half" | ||
|  |     col_east_wind = "Colorful East Windmill" | ||
|  |     col_half_half = "Colorful Half-Half" | ||
|  |     col_full = "Colorful Full" | ||
|  |     col_half = "Colorful Half" | ||
|  |     uncol = "Uncolored" | ||
|  |     painted = "Painted" | ||
|  |     mixed = "Mixed" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def sanity(processing: str, coloring: str): | ||
|  |         return f"Shapesanity {processing} {coloring}" | ||
|  | 
 | ||
|  | 
 | ||
|  | class LOCATIONS: | ||
|  |     my_eyes = "My eyes no longer hurt" | ||
|  |     painter = "Painter" | ||
|  |     cutter = "Cutter" | ||
|  |     rotater = "Rotater" | ||
|  |     wait_they_stack = "Wait, they stack?" | ||
|  |     wires = "Wires" | ||
|  |     storage = "Storage" | ||
|  |     freedom = "Freedom" | ||
|  |     the_logo = "The logo!" | ||
|  |     to_the_moon = "To the moon" | ||
|  |     its_piling_up = "It's piling up" | ||
|  |     use_it_later = "I'll use it later" | ||
|  |     efficiency_1 = "Efficiency 1" | ||
|  |     preparing_to_launch = "Preparing to launch" | ||
|  |     spacey = "SpaceY" | ||
|  |     stack_overflow = "Stack overflow" | ||
|  |     its_a_mess = "It's a mess" | ||
|  |     faster = "Faster" | ||
|  |     even_faster = "Even faster" | ||
|  |     get_rid_of_them = "Get rid of them" | ||
|  |     a_long_time = "It's been a long time" | ||
|  |     addicted = "Addicted" | ||
|  |     cant_stop = "Can't stop" | ||
|  |     is_this_the_end = "Is this the end?" | ||
|  |     getting_into_it = "Getting into it" | ||
|  |     now_its_easy = "Now it's easy" | ||
|  |     computer_guy = "Computer Guy" | ||
|  |     speedrun_master = "Speedrun Master" | ||
|  |     speedrun_novice = "Speedrun Novice" | ||
|  |     not_idle_game = "Not an idle game" | ||
|  |     efficiency_2 = "Efficiency 2" | ||
|  |     branding_1 = "Branding specialist 1" | ||
|  |     branding_2 = "Branding specialist 2" | ||
|  |     king_of_inefficiency = "King of Inefficiency" | ||
|  |     its_so_slow = "It's so slow" | ||
|  |     mam = "MAM (Make Anything Machine)" | ||
|  |     perfectionist = "Perfectionist" | ||
|  |     next_dimension = "The next dimension" | ||
|  |     oops = "Oops" | ||
|  |     copy_pasta = "Copy-Pasta" | ||
|  |     ive_seen_that_before = "I've seen that before ..." | ||
|  |     memories = "Memories from the past" | ||
|  |     i_need_trains = "I need trains" | ||
|  |     a_bit_early = "A bit early?" | ||
|  |     gps = "GPS" | ||
|  |     goal = "Goal" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def level(number: int, additional: int = 0) -> str: | ||
|  |         if not additional: | ||
|  |             return f"Level {number}" | ||
|  |         elif additional == 1: | ||
|  |             return f"Level {number} Additional" | ||
|  |         else: | ||
|  |             return f"Level {number} Additional {additional}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def upgrade(category: str, tier: str) -> str: | ||
|  |         return f"{category} Upgrade Tier {tier}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def shapesanity(number: int) -> str: | ||
|  |         return f"Shapesanity {number}" | ||
|  | 
 | ||
|  | 
 | ||
|  | class ITEMS: | ||
|  |     cutter = "Cutter" | ||
|  |     cutter_quad = "Quad Cutter" | ||
|  |     rotator = "Rotator" | ||
|  |     rotator_ccw = "Rotator (CCW)" | ||
|  |     rotator_180 = "Rotator (180°)" | ||
|  |     stacker = "Stacker" | ||
|  |     painter = "Painter" | ||
|  |     painter_double = "Double Painter" | ||
|  |     painter_quad = "Quad Painter" | ||
|  |     color_mixer = "Color Mixer" | ||
|  | 
 | ||
|  |     belt = "Belt" | ||
|  |     extractor = "Extractor" | ||
|  |     extractor_chain = "Chaining Extractor" | ||
|  |     balancer = "Balancer" | ||
|  |     comp_merger = "Compact Merger" | ||
|  |     comp_splitter = "Compact Splitter" | ||
|  |     tunnel = "Tunnel" | ||
|  |     tunnel_tier_ii = "Tunnel Tier II" | ||
|  |     trash = "Trash" | ||
|  | 
 | ||
|  |     belt_reader = "Belt Reader" | ||
|  |     storage = "Storage" | ||
|  |     switch = "Switch" | ||
|  |     item_filter = "Item Filter" | ||
|  |     display = "Display" | ||
|  |     wires = "Wires" | ||
|  |     const_signal = "Constant Signal" | ||
|  |     logic_gates = "Logic Gates" | ||
|  |     virtual_proc = "Virtual Processing" | ||
|  |     blueprints = "Blueprints" | ||
|  | 
 | ||
|  |     upgrade_big_belt = "Big Belt Upgrade" | ||
|  |     upgrade_big_miner = "Big Miner Upgrade" | ||
|  |     upgrade_big_proc = "Big Processors Upgrade" | ||
|  |     upgrade_big_paint = "Big Painting Upgrade" | ||
|  |     upgrade_small_belt = "Small Belt Upgrade" | ||
|  |     upgrade_small_miner = "Small Miner Upgrade" | ||
|  |     upgrade_small_proc = "Small Processors Upgrade" | ||
|  |     upgrade_small_paint = "Small Painting Upgrade" | ||
|  |     upgrade_gigantic_belt = "Gigantic Belt Upgrade" | ||
|  |     upgrade_gigantic_miner = "Gigantic Miner Upgrade" | ||
|  |     upgrade_gigantic_proc = "Gigantic Processors Upgrade" | ||
|  |     upgrade_gigantic_paint = "Gigantic Painting Upgrade" | ||
|  |     upgrade_rising_belt = "Rising Belt Upgrade" | ||
|  |     upgrade_rising_miner = "Rising Miner Upgrade" | ||
|  |     upgrade_rising_proc = "Rising Processors Upgrade" | ||
|  |     upgrade_rising_paint = "Rising Painting Upgrade" | ||
|  |     trap_upgrade_belt = "Belt Upgrade Trap" | ||
|  |     trap_upgrade_miner = "Miner Upgrade Trap" | ||
|  |     trap_upgrade_proc = "Processors Upgrade Trap" | ||
|  |     trap_upgrade_paint = "Painting Upgrade Trap" | ||
|  |     trap_upgrade_demonic_belt = "Demonic Belt Upgrade Trap" | ||
|  |     trap_upgrade_demonic_miner = "Demonic Miner Upgrade Trap" | ||
|  |     trap_upgrade_demonic_proc = "Demonic Processors Upgrade Trap" | ||
|  |     trap_upgrade_demonic_paint = "Demonic Painting Upgrade Trap" | ||
|  |     upgrade_big_random = "Big Random Upgrade" | ||
|  |     upgrade_small_random = "Small Random Upgrade" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def upgrade(size: str, category: str) -> str: | ||
|  |         return f"{size} {category} Upgrade" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def trap_upgrade(category: str, size: str = "") -> str: | ||
|  |         return f"{size} {category} Upgrade Trap".strip() | ||
|  | 
 | ||
|  |     bundle_blueprint = "Blueprint Shapes Bundle" | ||
|  |     bundle_level = "Level Shapes Bundle" | ||
|  |     bundle_upgrade = "Upgrade Shapes Bundle" | ||
|  | 
 | ||
|  |     trap_locked = "Locked Building Trap" | ||
|  |     trap_throttled = "Throttled Building Trap" | ||
|  |     trap_malfunction = "Malfunctioning Trap" | ||
|  |     trap_inflation = "Inflation Trap" | ||
|  |     trap_draining_inv = "Inventory Draining Trap" | ||
|  |     trap_draining_blueprint = "Blueprint Shapes Draining Trap" | ||
|  |     trap_draining_level = "Level Shapes Draining Trap" | ||
|  |     trap_draining_upgrade = "Upgrade Shapes Draining Trap" | ||
|  |     trap_clear_belts = "Belts Clearing Trap" | ||
|  | 
 | ||
|  |     goal = "Goal" | ||
|  | 
 | ||
|  | 
 | ||
|  | class SHAPESANITY: | ||
|  |     circle = "Circle" | ||
|  |     square = "Square" | ||
|  |     star = "Star" | ||
|  |     windmill = "Windmill" | ||
|  |     red = "Red" | ||
|  |     blue = "Blue" | ||
|  |     green = "Green" | ||
|  |     yellow = "Yellow" | ||
|  |     purple = "Purple" | ||
|  |     cyan = "Cyan" | ||
|  |     white = "White" | ||
|  |     uncolored = "Uncolored" | ||
|  |     adjacent_pos = "Adjacent" | ||
|  |     cornered_pos = "Cornered" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def full(color: str, subshape: str): | ||
|  |         return f"{color} {subshape}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def half(color: str, subshape: str): | ||
|  |         return f"Half {color} {subshape}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def piece(color: str, subshape: str): | ||
|  |         return f"{color} {subshape} Piece" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def cutout(color: str, subshape: str): | ||
|  |         return f"Cut Out {color} {subshape}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def cornered(color: str, subshape: str): | ||
|  |         return f"Cornered {color} {subshape}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def three_one(first: str, second: str): | ||
|  |         return f"3-1 {first} {second}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def halfhalf(combo: str): | ||
|  |         return f"Half-Half {combo}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def checkered(combo: str): | ||
|  |         return f"Checkered {combo}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def singles(combo: str, position: str = ""): | ||
|  |         return f"{position} Singles {combo}".strip() | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def two_one(first: str, second: str, position: str): | ||
|  |         return f"{position} 2-1 {first} {second}" | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def two_one_one(first: str, second: str, position: str): | ||
|  |         return f"{position} 2-1-1 {first} {second}" |