forked from ArchipelagoMW/Archipelago
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add rock of ages 2 bigger and boulder
- Loading branch information
Showing
1 changed file
with
242 additions
and
0 deletions.
There are no files selected for viewing
242 changes: 242 additions & 0 deletions
242
worlds/keymasters_keep/games/rock_of_ages_2_bigger_and_boulder_game.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,242 @@ | ||
from __future__ import annotations | ||
|
||
from typing import List | ||
|
||
from dataclasses import dataclass | ||
|
||
from ..game import Game | ||
from ..game_objective_template import GameObjectiveTemplate | ||
|
||
from ..enums import KeymastersKeepGamePlatforms | ||
|
||
|
||
@dataclass | ||
class RockOfAges2BiggerAndBoulderArchipelagoOptions: | ||
pass | ||
|
||
|
||
class RockOfAges2BiggerAndBoulderGame(Game): | ||
name = "Rock of Ages 2: Bigger & Boulder" | ||
platform = KeymastersKeepGamePlatforms.PC | ||
|
||
platforms_other = [ | ||
KeymastersKeepGamePlatforms.PS4, | ||
KeymastersKeepGamePlatforms.SW, | ||
KeymastersKeepGamePlatforms.XONE, | ||
] | ||
|
||
is_adult_only_or_unrated = False | ||
|
||
options_cls = RockOfAges2BiggerAndBoulderArchipelagoOptions | ||
|
||
def optional_game_constraint_templates(self) -> List[GameObjectiveTemplate]: | ||
return list() | ||
|
||
def game_objective_templates(self) -> List[GameObjectiveTemplate]: | ||
return [ | ||
GameObjectiveTemplate( | ||
label="Win a match of War in PLACE", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=8, | ||
), | ||
GameObjectiveTemplate( | ||
label="Win a match of War in PLACE, bringing the following Boulder: BOULDER", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
"BOULDER": (self.boulders, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=4, | ||
), | ||
GameObjectiveTemplate( | ||
label="Win a match of War in PLACE, bringing the following Buildings: BUILDINGS", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
"BUILDINGS": (self.buildings, 2), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=4, | ||
), | ||
GameObjectiveTemplate( | ||
label="Win a match of War in PLACE, bringing the following Boulder and Buildings: BOULDER, BUILDINGS", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
"BOULDER": (self.boulders, 1), | ||
"BUILDINGS": (self.buildings, 2), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=2, | ||
), | ||
GameObjectiveTemplate( | ||
label="Win a match of Obstacle Course in PLACE", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=4, | ||
), | ||
GameObjectiveTemplate( | ||
label="Win a match of Obstacle Course in PLACE, using the following Boulder: BOULDER", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
"BOULDER": (self.boulders_no_block, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=2, | ||
), | ||
GameObjectiveTemplate( | ||
label="Score at least 600 points in Skee-Boulder Training in PLACE", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=3, | ||
), | ||
GameObjectiveTemplate( | ||
label="Score at least 600 points in Skee-Boulder Training in PLACE, using the following Boulder: BOULDER", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
"BOULDER": (self.boulders_no_block, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=1, | ||
), | ||
GameObjectiveTemplate( | ||
label="Earn a Bronze Medal or better in Time Trial in PLACE", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=2, | ||
), | ||
GameObjectiveTemplate( | ||
label="Earn a Silver Medal or better in Time Trial in PLACE", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=2, | ||
), | ||
GameObjectiveTemplate( | ||
label="Earn a Gold Medal in Time Trial in PLACE", | ||
data={ | ||
"PLACE": (self.places, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=True, | ||
weight=1, | ||
), | ||
GameObjectiveTemplate( | ||
label="Defeat the CHARACTER", | ||
data={ | ||
"CHARACTER": (self.characters, 1), | ||
}, | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=3, | ||
), | ||
GameObjectiveTemplate( | ||
label="Defeat God in a match of Foosball", | ||
data=dict(), | ||
is_time_consuming=False, | ||
is_difficult=False, | ||
weight=1, | ||
), | ||
] | ||
|
||
@staticmethod | ||
def boulders() -> List[str]: | ||
return [ | ||
"Rock of Ages", | ||
"Lion Boulder", | ||
"Medusa's Boulder", | ||
"Block of Ages", | ||
"Armored Boulder", | ||
"Globus Cruciger", | ||
"Gunpowder Boulder", | ||
"Fire Boulder", | ||
"Angel Boulder", | ||
"Globe", | ||
"Sand Boulder", | ||
"Prehistoric Wheel", | ||
"Tar Boulder", | ||
"Paint Boulder", | ||
"Balloon Boulder", | ||
"Cow", | ||
] | ||
|
||
def boulders_no_block(self) -> List[str]: | ||
boulders = self.boulders()[:] | ||
|
||
if "Block of Ages" in boulders: | ||
boulders.remove("Block of Ages") | ||
|
||
return boulders | ||
|
||
@staticmethod | ||
def buildings() -> List[str]: | ||
return [ | ||
"Bank", | ||
"Tower", | ||
"War Elephant", | ||
"Sticky Cows", | ||
"Anvil Bull", | ||
"Bull of Heaven", | ||
"Da Vinci Tank", | ||
"Catapult", | ||
"Ballista", | ||
"Cannon", | ||
"Trebuchet", | ||
"Explosives", | ||
"Fireworks Cannon", | ||
"Windmill Fan", | ||
"Whale", | ||
"Springboard Trap", | ||
"Phoenix Tree", | ||
"Balloon", | ||
"Battleship", | ||
] | ||
|
||
@staticmethod | ||
def places() -> List[str]: | ||
return [ | ||
"Oxfordshire", | ||
"Rennes", | ||
"Scotland", | ||
"Egypt", | ||
"Cadaques", | ||
"La Mancha", | ||
"Holland", | ||
"Lviv", | ||
"Oslo", | ||
"Delphi", | ||
"Sarpedon", | ||
"Pompeii", | ||
"Bologna", | ||
"Dover", | ||
"Garden of Eden", | ||
] | ||
|
||
@staticmethod | ||
def characters() -> List[str]: | ||
return [ | ||
"Thinker", | ||
"Dragon", | ||
"Sphinx", | ||
] | ||
|
||
# Archipelago Options | ||
# ... |