Skip to content

Commit

Permalink
Keymasters Keep, update to Creeper World 3 Arc Eternal (#22)
Browse files Browse the repository at this point in the history
- Add 2 extra objectives for variety
- Change DMD mission challenges to now only mention enemy types and count giving room for players to adjust some of the other settings to ensure playability
- Change Data points for Enemies as Digitalis and Runners require Emitters to be present to function properly
- Add challenge for DMD specifically to use the Next Crazy option which rolls completely random settings for almost all DMD options.

Co-authored-by: Dragion147 <[email protected]>
  • Loading branch information
Dragion147 and Dragion147 authored Jan 5, 2025
1 parent cf231c7 commit b57f15a
Showing 1 changed file with 77 additions and 30 deletions.
107 changes: 77 additions & 30 deletions worlds/keymasters_keep/games/creeper_world_3_arc_eternal_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,52 +39,90 @@ def optional_game_constraint_templates(self) -> List[GameObjectiveTemplate]:
"WEAPON": (self.player_weapons, 1),
},
),
GameObjectiveTemplate(
label="Do not use any power cirlces (the cirlces left by enemies)",
data=dict(),
),
GameObjectiveTemplate(
label="Play on maps no bigger than size: SIZE (if possible)",
data={
"SIZE": (self.map_sizes, 1),
},
),
]

def game_objective_templates(self) -> List[GameObjectiveTemplate]:
return [
GameObjectiveTemplate(
label="Complete a DMD mission with emitters. Map Size: SIZE Enemy Type: ENEMY Enemy Count: COUNT",
label="Complete a DMD mission. Enemies: ENEMY Count: COUNT",
data={
"SIZE": (self.map_sizes_compact, 1),
"ENEMY": (self.enemies, 1),
"COUNT": (self.enemy_counts_compact, 1),
"ENEMY": (self.creep_enemies, 1),
"COUNT": (self.enemy_counts_low, 1),
},
is_time_consuming=False,
is_difficult=True,
weight=3,
is_difficult=False,
weight=2,
),
GameObjectiveTemplate(
label="Complete a DMD mission with emitters. Map Size: SIZE Enemy Type: ENEMY Enemy Count: COUNT",
label="Complete a DMD mission. Enemies: ENEMY Count: COUNT",
data={
"SIZE": (self.map_sizes_spacious, 1),
"ENEMY": (self.enemies, 1),
"COUNT": (self.enemy_counts_spacious, 1),
"ENEMY": (self.creep_enemies, 1),
"COUNT": (self.enemy_counts_mid, 1),
},
is_time_consuming=True,
is_difficult=False,
weight=4,
weight=1,
),
GameObjectiveTemplate(
label="Complete a DMD mission. Enemies: ENEMY Count: COUNT",
data={
"ENEMY": (self.creep_enemies, 1),
"COUNT": (self.enemy_counts_high, 1),
},
is_time_consuming=True,
is_difficult=False,
weight=1,
),
GameObjectiveTemplate(
label="Complete a DMD mission. Enemies: ENEMY, SPECIALS Count: COUNT",
data={
"ENEMY": (self.creep_enemies, 1),
"SPECIALS": (self.special_enemies, 2),
"COUNT": (self.enemy_counts_low, 1),
},
is_time_consuming=False,
is_difficult=False,
weight=3,
),
GameObjectiveTemplate(
label="Complete a DMD mission. Map Size: SIZE Enemy Types: All Enemy Count: COUNT",
label="Complete a DMD mission. Enemies: ENEMY, SPECIALS Count: COUNT",
data={
"SIZE": (self.map_sizes_compact, 1),
"COUNT": (self.enemy_counts_compact, 1),
"ENEMY": (self.creep_enemies, 1),
"SPECIALS": (self.special_enemies, 2),
"COUNT": (self.enemy_counts_mid, 1),
},
is_time_consuming=False,
is_difficult=True,
weight=2,
),
GameObjectiveTemplate(
label="Complete a DMD mission. Map Size: SIZE Enemy Types: All Enemy Count: COUNT",
label="Complete a DMD mission. Enemies: ENEMY, SPECIALS Count: COUNT",
data={
"SIZE": (self.map_sizes_compact, 1),
"COUNT": (self.enemy_counts_compact, 1),
"ENEMY": (self.creep_enemies, 1),
"SPECIALS": (self.special_enemies, 2),
"COUNT": (self.enemy_counts_high, 1),
},
is_time_consuming=True,
is_difficult=False,
weight=3,
is_time_consuming=False,
is_difficult=True,
weight=1,
),
GameObjectiveTemplate(
label="Complete a Next Crazy DMD mission. Alter terrain or reroll if impossible configuration is rolled",
data=dict(),
is_time_consuming=False,
is_difficult=True,
weight=2,
),
GameObjectiveTemplate(
label="Complete the following Arc Eternal mission: MISSION",
data={
Expand Down Expand Up @@ -138,46 +176,55 @@ def player_titans() -> List[str]:
]

@staticmethod
def map_sizes_compact() -> List[str]:
def map_sizes() -> List[str]:
return [
"Tiny",
"Small",
"Medium",
"Large",
"Huge",
"Max",
]

@staticmethod
def map_sizes_spacious() -> List[str]:
def creep_enemies() -> List[str]:
return [
"Large",
"Huge",
"Max",
"Emtters",
"Emitters with Digitalis",
"Emitters with Digitalis and Runner Nests",
]

@staticmethod
def enemies() -> List[str]:
def special_enemies() -> List[str]:
return [
"Digitalis",
"Runner Nests",
"Spore Towers",
"Air Exclusion Towers",
"Inhibitor",
]

@staticmethod
def enemy_counts_compact() -> List[str]:
def enemy_counts_low() -> List[str]:
return [
"2-4",
"4-7",
"7-10",
]

@staticmethod
def enemy_counts_spacious() -> List[str]:
def enemy_counts_mid() -> List[str]:
return [
"10-13",
"13-16",
"16-20",
]

@staticmethod
def enemy_counts_high() -> List[str]:
return [
"14-17",
"17-21",
"21-25",
]

@staticmethod
def missions() -> List[str]:
Expand Down

0 comments on commit b57f15a

Please sign in to comment.