diff --git a/worlds/keymasters_keep/games/BackpackBattles_game.py b/worlds/keymasters_keep/games/backpack_battles_game.py similarity index 81% rename from worlds/keymasters_keep/games/BackpackBattles_game.py rename to worlds/keymasters_keep/games/backpack_battles_game.py index cc41cbfd8de4..8303a9650dd5 100644 --- a/worlds/keymasters_keep/games/BackpackBattles_game.py +++ b/worlds/keymasters_keep/games/backpack_battles_game.py @@ -8,339 +8,381 @@ from ..game_objective_template import GameObjectiveTemplate from ..enums import KeymastersKeepGamePlatforms -############################## -## Created by ManNamedGarbo ## -############################## + + @dataclass class BackpackBattlesArchipelagoOptions: pass + class BackpackBattlesGame(Game): + ############################## + ## Created by ManNamedGarbo ## + ############################## + name = "Backpack Battles" platform = KeymastersKeepGamePlatforms.PC - platforms_other = [] + platforms_other = None is_adult_only_or_unrated = False options_cls = BackpackBattlesArchipelagoOptions def optional_game_constraint_templates(self) -> List[GameObjectiveTemplate]: - return [] + return list() def game_objective_templates(self) -> List[GameObjectiveTemplate]: return [ GameObjectiveTemplate( - label="Craft RANGERRECIPE in a match", - data={"RANGERRECIPE": (self.rangerrecipe(), 1)}, + label="Craft RECIPE in a match", + data={ + "RECIPE": (self.rangerrecipe, 1) + }, is_time_consuming=False, is_difficult=False, weight=4, ), GameObjectiveTemplate( - label="Craft REAPERRECIPE in a match", - data={"REAPERRECIPE": (self.reaperrecipe(), 1)}, + label="Craft RECIPE in a match", + data={ + "RECIPE": (self.reaperrecipe, 1) + }, is_time_consuming=False, is_difficult=False, weight=4, ), GameObjectiveTemplate( - label="Craft BERSERKERRECIPE in a match", - data={"BERSERKERRECIPE": (self.berserkerrecipe(), 1)}, + label="Craft RECIPE in a match", + data={ + "RECIPE": (self.berserkerrecipe, 1) + }, is_time_consuming=False, is_difficult=False, weight=4, ), GameObjectiveTemplate( - label="Craft PYROMANCERRECIPE in a match", - data={"PYROMANCERRECIPE": (self.pyromancerrecipe(), 1)}, + label="Craft RECIPE in a match", + data={ + "RECIPE": (self.pyromancerrecipe, 1) + }, is_time_consuming=False, is_difficult=False, weight=4, ), GameObjectiveTemplate( - label="Craft NEUTRALRECIPE in a match", - data={"NEUTRALRECIPE": (self.neutralrecipe(), 1)}, + label="Craft RECIPE in a match", + data={ + "RECIPE": (self.neutralrecipe, 1) + }, is_time_consuming=False, is_difficult=False, weight=7, ), GameObjectiveTemplate( label="Might Need a Loan for That - Purchase an item worth more 12 or more gold", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( label="Empty Pockets - Spend gold until you reach 0 remaining in the shop", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( - label="Win a Ranked Match as CLASSES", - data={"CLASSES": (self.classes(), 1)}, + label="Win a Ranked Match as CLASS", + data={ + "CLASS": (self.classes, 1) + }, is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( - label="Win a Casual Match as CLASSES", - data={"CLASSES": (self.classes(), 1)}, + label="Win a Casual Match as CLASS", + data={ + "CLASS": (self.classes, 1) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Deadly Ego - Enter Sudden Death and Win the Match", - data={}, + data=dict(), is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Consistent Hoarder - Obtain 3 of a single bag type", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Rising Power - Gain RANDOMRANGE of any buff at the end of a round", - data={"RANDOMRANGE": (self.randomrange(), 1)}, + data={ + "RANDOMRANGE": (self.randomrange, 1) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Woe Upon Ye - Inflict RANDOMRANGE of any debuff at the end of a round", - data={"RANDOMRANGE": (self.randomrange(), 1)}, + data={ + "RANDOMRANGE": (self.randomrange, 1) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="You Call That a Fight? - Win a Round with at least 50% Health remaining", - data={}, + data=dict(), is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Not Even Close - Win a Round with less than 10% Health remaining", - data={}, + data=dict(), is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( - label="I Can Do It Better! - Create any Class Recipe as an opposing class.", - data={}, + label="I Can Do It Better! - Create any Class Recipe as an opposing class", + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( - label="Suited Up - Wear at least a Helmet, Chest, Glove, and Boot item inside your backpack at once.", - data={}, + label="Suited Up - Wear at least a Helmet, Chest, Glove, and Boot item inside your backpack at once", + data=dict(), is_time_consuming=True, is_difficult=False, weight=1, ), GameObjectiveTemplate( - label="No Rest Allowed - Reach 3.0 Stamina Consumption in your backpack at once.", - data={}, + label="No Rest Allowed - Reach 3.0 Stamina Consumption in your backpack at once", + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Truly Crafty - Have at least 3 unique crafted items in your backpack at once (Non-Potion)", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Alchemist - Have 4 unique potions in a potion's bag", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Weapons Master - Fill a Stamina Bag with 3 Unique Weapons", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Swift Battle - Defeat an enemy before Fatigue phase", - data={}, + data=dict(), is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Jack of All Trades - Win a game as each Class", - data={}, + data=dict(), is_time_consuming=True, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Tense Yet Alive - Survive Sudden Death with only one life remaining", - data={}, + data=dict(), is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Indomiatable - Survive Sudden Death without losing a round", - data={}, + data=dict(), is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="I'm Just Better! - Win 10 rounds against the same class (Across any number of Matches)", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Doppelganger - Win 3 rounds against the someone using the same Starting bag (Across any number of Matches)", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Big Number Funny - Equip Just Stats and More Stats in the same Backpack", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Not again... - With a maximum sized Backpack completely filled with items, Shuffle your Backpack", # I'm not sorry for this. You've know you've done it at least once before. - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Archaeologist - Have a Shovel dig up SMALLRANGE items total", - data={"SMALLRANGE": (self.smallrange(), 1)}, + data={ + "SMALLRANGE": (self.smallrange, 1) + }, is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Special Dig - Have a Shovel dig up an item of RARITY rarity", - data={"RARITY": (self.rarity(), 1)}, + data={ + "RARITY": (self.rarity, 1) + }, is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( label="Frugal Shopper - Have a Customer Card and Piggy Bank equipped for more than 3 rounds", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( - label="Artisan - Craft any two of the following recipes and equip them at the same time; ANYRECIPE", - data={"ANYRECIPE": (self.anyrecipe(), 3)}, + label="Artisan - Craft any two of the following recipes and equip them at the same time: RECIPES", + data={ + "RECIPES": (self.anyrecipe, 3) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Shiny! - Upgrade a GEMSTONE to a higher tier", - data={"GEMSTONE": (self.gemstone(), 1)}, + data={ + "GEMSTONE": (self.gemstones, 1) + }, is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( label="Fire Sale - Buy SMALLRANGE Items on Sale from the Shop across any amount of matches", - data={"SMALLRANGE": (self.smallrange(), 1)}, + data={ + "SMALLRANGE": (self.smallrange, 1) + }, is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="There are some who call him... - As a Reaper, find Tim", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( - label="As a Berserker, craft two of the following; BERSERKERRECIPE", - data={"BERSERKERRECIPE": (self.berserkerrecipe(), 3)}, + label="As a Berserker, craft two of the following: RECIPES", + data={ + "RECIPES": (self.berserkerrecipe, 3) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( - label="As a Reaper, craft two of the following; REAPERRECIPE", - data={"REAPERRECIPE": (self.reaperrecipe(), 3)}, + label="As a Reaper, craft two of the following: RECIPES", + data={ + "RECIPES": (self.reaperrecipe, 3) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( - label="As a Pyromancer, craft two of the following; PYROMANCERRECIPE", - data={"PYROMANCERRECIPE": (self.pyromancerrecipe(), 3)}, + label="As a Pyromancer, craft two of the following: RECIPES", + data={ + "RECIPES": (self.pyromancerrecipe, 3) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( - label="As a Ranger, craft two of the following; RANGERRECIPE", - data={"RANGERRECIPE": (self.rangerrecipe(), 3)}, + label="As a Ranger, craft two of the following: RECIPES", + data={ + "RECIPES": (self.rangerrecipe, 3) + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Scared to Get Hurt? - Equip at least 5 Armor items in your Backpack at once", - data={} + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Picky Assassin - Craft one of Each Dagger in a single match", - data={} + data=dict(), is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Why... - Sell any Subclass Item", - data={} + data=dict(), is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Gamba! - Play a Match using the Random Class option", - data={} + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( - label="Pandora's Bag - Play a Match as CLASSES while using the Sack of Surprises option", - data={"CLASSES": (self.classes(), 1)}, + label="Pandora's Bag - Play a Match as CLASS while using the Sack of Surprises option", + data={ + "CLASS": (self.classes, 1) + }, is_time_consuming=False, is_difficult=False, weight=2, @@ -375,7 +417,7 @@ def rarity() -> List[str]: ] @staticmethod - def GEMSTONE() -> List[str]: + def gemstones() -> List[str]: return [ "Amethyst", "Emerald", @@ -437,7 +479,7 @@ def neutralrecipe() -> List[str]: "Shell Totem", "Thornbloom", "Stone Golem", - "Prismatic Sword" + "Prismatic Sword", ] @staticmethod @@ -469,8 +511,7 @@ def reaperrecipe() -> List[str]: "Strong Demonic Flask", "Ruby Chonk", "Ice Dragon", - ] - + ] @staticmethod def berserkerrecipe() -> List[str]: @@ -522,4 +563,6 @@ def anyrecipe(self) -> List[str]: + self.neutralrecipe() ) + # Archipelago Options +# ... diff --git a/worlds/keymasters_keep/games/GTFO_game.py b/worlds/keymasters_keep/games/gtfo_game.py similarity index 84% rename from worlds/keymasters_keep/games/GTFO_game.py rename to worlds/keymasters_keep/games/gtfo_game.py index 91af245747f7..9b523e1f3072 100644 --- a/worlds/keymasters_keep/games/GTFO_game.py +++ b/worlds/keymasters_keep/games/gtfo_game.py @@ -8,232 +8,290 @@ from ..game_objective_template import GameObjectiveTemplate from ..enums import KeymastersKeepGamePlatforms -################################################ -## Created by ManNamedGarbo and TheBreadstick ## -################################################ + + @dataclass class GTFOArchipelagoOptions: - Pass + pass + class GTFOGame(Game): + ################################################ + ## Created by ManNamedGarbo and TheBreadstick ## + ################################################ + name = "GTFO" platform = KeymastersKeepGamePlatforms.PC - platforms_other = [] + platforms_other = None is_adult_only_or_unrated = False options_cls = GTFOArchipelagoOptions def optional_game_constraint_templates(self) -> List[GameObjectiveTemplate]: - return [] + return list() def game_objective_templates(self) -> List[GameObjectiveTemplate]: return [ GameObjectiveTemplate( label="Complete EASYMISSION using only WEAPONCATEGORY", - data={"EASYMISSION": (self.easymissions(), 1), "WEAPONCATEGORY": (self.weaponcategories(), 1)}, + data={ + "EASYMISSION": (self.easymissions, 1), + "WEAPONCATEGORY": (self.weaponcategories, 1), + }, is_time_consuming=True, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Complete HARDMISSION without letting your weapons reach 0%", - data={"HARDMISSION": (self.hardmissions(), 1)}, + data={ + "HARDMISSION": (self.hardmissions, 1), + }, is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Kill UNIQUESPECIAL using SPECIALWEAPON", - data={"UNIQUESPECIAL": (self.uniqueweapons(), 1), "SPECIALWEAPON": (self.specialweapons(), 1)}, + data={ + "UNIQUESPECIAL": (self.uniquespecials, 1), + "SPECIALWEAPON": (self.specialweapons, 1), + }, is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Kill COMMONSPECIAL using MAINWEAPON", - data={"COMMONSPECIAL": (self.commonSpecials(), 1), "MAINWEAPON": (self.mainweapons(), 1)}, + data={ + "COMMONSPECIAL": (self.commonspecials, 1), + "MAINWEAPON": (self.mainweapons, 1), + }, is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( label="Use exclusively WEAPONCATEGORIES weapons to complete a mission", - data ={"WEAPONCATEGORIES": (self.weaponcategories(), 1)}, + data={ + "WEAPONCATEGORIES": (self.weaponcategories, 1), + }, is_time_consuming=False, is_difficult=True, weight=3, ), GameObjectiveTemplate( label="Encounter an Immortal", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Loot at least 2 ARTIFACTS artifacts in a single mission", - data={"ARTIFACTS": (self.artifactlevels(), 1)}, + data={ + "ARTIFACTS": (self.artifactlevels, 1), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Equip an ARTIFACTLEVEL with any one of the following traits ARTIFACTTRAITS", - data={"ARTIFACTLEVEL": (self.artifactlevels(), 1), "ARTIFACTTRAITS": (self.artifacttraits(), 3)}, + data={ + "ARTIFACTLEVEL": (self.artifactlevels, 1), + "ARTIFACTTRAITS": (self.artifacttraits, 3), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Use CONSUMABLES on a scout and survive the horde", - data={"CONSUMABLES": (self.consumables(), 1)}, + data={ + "CONSUMABLES": (self.consumables, 1), + }, is_time_consuming=False, is_difficult=True, weight=3, ), GameObjectiveTemplate( label="Kill a Scout using MELEEWEAPON", - data={"MELEEWEAPON": (self.meleeweapons(), 1)}, + data={ + "MELEEWEAPON": (self.meleeweapons, 1), + }, is_time_consuming=False, is_difficult=True, weight=1, - # https://www.youtube.com/watch?v=gLcWf3GJP8k <- Good luck lol, just saying it's possible. ), GameObjectiveTemplate( label="Have TOOLS run completely out of charge then get it back up to 100% in a single mission", - data={"TOOLS": (self.tools(), 1)}, + data={ + "TOOLS": (self.tools, 1), + }, is_time_consuming=True, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Throw a rave to COMMONSPECIALS using the Long Range Flashlight", - data={"COMMONSPECIALS": (self.commonSpecials(), 1)}, + data={ + "COMMONSPECIALS": (self.commonspecials, 1), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Clear a bloody door horde using TOOLS", - data={"TOOLS": (self.tools(), 1)}, + data={ + "TOOLS": (self.tools, 1), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Complete AMISSION using the following loadout: MAINWEAPON | SPECIALWEAPON | TOOL | MELEEWEAPON", - data={"AMISSION": (self.a_missions(), 1), "MAINWEAPON": (self.mainweapons(), 1), "SPECIALWEAPON": (self.specialweapons(), 1), "TOOLS": (self.tools(), 1), "MELEEWEAPON": (self.meleeweapons(), 1)}, + data={ + "AMISSION": (self.a_missions, 1), + "MAINWEAPON": (self.mainweapons, 1), + "SPECIALWEAPON": (self.specialweapons, 1), + "TOOL": (self.tools, 1), + "MELEEWEAPON": (self.meleeweapons, 1), + }, is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Find and use up 2 of either CONSUMABLE inside CMISSION", - data={"CONSUMABLE": (self.consumables(), 2), "CMISSION": (self.c_missions(), 1)}, + data={ + "CONSUMABLE": (self.consumables, 2), + "CMISSION": (self.c_missions, 1), + }, is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Successfully clear EASYALARMCLASS with your flashlight off", - data={"EASYALARMCLASS": (self.easyalarmclasses(), 1)}, + data={ + "EASYALARMCLASS": (self.easyalarmclass, 1), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Successfully clear HARDALARMCLASS without closing any doors", - data={"HARDALARMCLASS": (self.hardalarmclass(), 1)}, + data={ + "HARDALARMCLASS": (self.hardalarmclass, 1), + }, is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Clear out a ALARMTYPES without anyone going down", - data={"ALARMTYPES": (self.alarmtypes(), 1)}, + data={ + "ALARMTYPES": (self.alarmtypes, 1), + }, is_time_consuming=False, is_difficult=True, weight=2, ), GameObjectiveTemplate( - label="For the duration of a EASYALARMCLASS , Communicate only through pings", - data={"EASYALARMCLASS": (self.easyalarmclass(), 1)}, + label="For the duration of a EASYALARMCLASS, Communicate only through pings", + data={ + "EASYALARMCLASS": (self.easyalarmclass, 1), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Land a 360 headshot on COMMONSPECIALS using a sniper", - data={"COMMONUNIQUE": (self.commonSpecials(), 1)}, + data={ + "COMMONSPECIALS": (self.commonspecials, 1), + }, is_time_consuming=False, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Complete SECONDARYOBJECTIVES", - data={"SECONDARYOBJECTIVES": (self.secondaryobjectives(), 1)}, + data={ + "SECONDARYOBJECTIVES": (self.secondaryobjectives, 1), + }, is_time_consuming=False, is_difficult=False, weight=3, ), GameObjectiveTemplate( label="Complete OVERLOADOBJECTIVES", - data={"OVERLOADOBJECTIVES": (self.overloadobjectives(), 1)}, + data={ + "OVERLOADOBJECTIVES": (self.overloadobjectives, 1), + }, is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Take damage from Falling", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Complete any Prisoner Efficiency Objective", - data={}, + data=dict(), is_time_consuming=True, is_difficult=True, weight=1, ), GameObjectiveTemplate( label="Reach Maximum Infection level", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( - label="With a RANDOMARTIFACT Equipped, complete any mission", - data={"RANDOMARTIFACT": (self.artifactlevels(), 1)}, + label="With a RANDOMARTIFACT Artifact equipped, complete any mission", + data={ + "RANDOMARTIFACT": (self.artifactlevels, 1), + }, is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( label="Enter the ??? Dimension", - data={}, + data=dict(), is_time_consuming=True, is_difficult=False, weight=1, ), GameObjectiveTemplate( label="Immobilize COMMONSPECIALS using C-Foam", - data={}, + data={ + "COMMONSPECIALS": (self.commonspecials, 1), + }, is_time_consuming=False, is_difficult=False, weight=2, ), GameObjectiveTemplate( label="Complete any level in under 30 minutes", - data={}, + data=dict(), is_time_consuming=False, is_difficult=False, weight=1, - ), + ), ] @staticmethod @@ -310,7 +368,7 @@ def c_missions() -> List[str]: "R7D1", "R7D2", "R2D1", - "R2D2", #kekw + "R2D2", "R3D1", ] @@ -368,7 +426,7 @@ def altrundown2() -> List[str]: "R2C1", "R2C2", "R2D1", - "R2D2", #kekw + "R2D2", "R2E1", ] @@ -642,7 +700,7 @@ def nonconsumabletools() -> List[str]: ] @staticmethod - def commonSpecials() -> List[str]: + def commonspecials() -> List[str]: return [ "Scout", "Giant", @@ -651,7 +709,7 @@ def commonSpecials() -> List[str]: ] @staticmethod - def uniqueSpecials() -> List[str]: + def uniquespecials() -> List[str]: return [ "Big Charger", "Charger Scout", @@ -673,7 +731,7 @@ def alarmtypes() -> List[str]: @staticmethod def easyalarmclass() -> List[str]: - return[ + return [ "Class II", "Class III", "Class IV", @@ -687,6 +745,7 @@ def hardalarmclass() -> List[str]: "Class VII", "Class VIII", ] + @staticmethod def artifacttraits() -> List[str]: return [ @@ -698,7 +757,7 @@ def artifacttraits() -> List[str]: "Supply Efficiency", "Infection Resist", "Main Ammo", - "Special Ammo" , + "Special Ammo", "Tool Ammo", "Regen Cap", "C-Foam Portion", @@ -749,11 +808,13 @@ def missionranks(self) -> List[str]: + self.rundown7() + self.rundown8() ) + def easymissions(self) -> List[str]: return sorted( self.a_missions() + self.b_missions() ) + def hardmissions(self) -> List[str]: return sorted( self.c_missions() @@ -761,24 +822,7 @@ def hardmissions(self) -> List[str]: + self.e_missions() ) -# Archipelago Options -#class GTFOBosses(Toggle): -# """ -# Indicates whether you want the Tank, Mother and Kraken bosses included in your objectives list. -# """ -# -# display_name = "GTFO Bosses as Challenges" -# default = False -# -#class ExtremelyPainful(Toggle): -# """ -# Indicates whether you wish to enable challenges that could be considered Extreme, even beyond a normal level of masochism. This include things such as completing Prisoner Efficiency objectives or Completing 'Hard' alarms with specific limitations. You have been warned if you enable these. -# """ -# -# display_name = "GTFO Extremely Painful Challenges" -# default = False -# -### I'm not actually sure how to make these options work? I want it to disable the challenges involving the lists "Bosses", "hardalarms", "SecondaryObjectives", and "OverloadObjectives" when disabled, but allow those challenges when enabled. These are beyond just your standard is_difficult or not, as they can be an unreasonable step higher. -### If you could help by fixing this up, feel free. I'd like to learn how I could do this. -Garbo -### Currently commenting out these lines as I believe they break in their current form. +# Archipelago Options +## Future: Include Bosses? +## Future: Include Painful?