Add assured pseudo-sword mode
This commit is contained in:
@@ -797,7 +797,7 @@ class CollectionState(object):
|
||||
return False
|
||||
|
||||
def has_real_sword(self, player, level=1):
|
||||
if self.world.swords[player] == 'pseudo':
|
||||
if self.world.swords[player] in ['pseudo', 'assured_pseudo']:
|
||||
return False;
|
||||
return self.has_sword(player, level)
|
||||
|
||||
@@ -2533,7 +2533,7 @@ er_mode = {"vanilla": 0, "simple": 1, "restricted": 2, "full": 3, "crossed": 4,
|
||||
# byte 1: LLLW WSSS (logic, mode, sword)
|
||||
logic_mode = {"noglitches": 0, "minorglitches": 1, "nologic": 2, "owglitches": 3, "majorglitches": 4}
|
||||
world_mode = {"open": 0, "standard": 1, "inverted": 2}
|
||||
sword_mode = {"random": 0, "assured": 1, "swordless": 2, "vanilla": 3, "bombs": 4, "pseudo": 5}
|
||||
sword_mode = {"random": 0, "assured": 1, "swordless": 2, "vanilla": 3, "bombs": 4, "pseudo": 5, "assured_pseudo": 6}
|
||||
|
||||
# byte 2: GGGD DFFH (goal, diff, item_func, hints)
|
||||
goal_mode = {"ganon": 0, "pedestal": 1, "dungeons": 2, "triforcehunt": 3, "crystals": 4}
|
||||
|
||||
@@ -831,7 +831,7 @@ def get_pool_core(progressive, owShuffle, owSwap, shuffle, difficulty, treasure_
|
||||
place_item('Master Sword Pedestal', 'Triforce')
|
||||
else:
|
||||
pool.extend(diff.progressivesword if want_progressives() else diff.basicsword)
|
||||
if swords == 'assured':
|
||||
if swords in ['assured', 'assured_pseudo']:
|
||||
if want_progressives():
|
||||
precollected_items.append('Progressive Sword')
|
||||
pool.remove('Progressive Sword')
|
||||
|
||||
@@ -193,6 +193,7 @@ def roll_settings(weights):
|
||||
'vanilla': 'vanilla',
|
||||
'swordless': 'swordless',
|
||||
'pseudo': 'pseudo',
|
||||
'assured_pseudo': 'assured_pseudo',
|
||||
'bombs': 'bombs'
|
||||
}[get_choice('weapons')]
|
||||
|
||||
|
||||
6
Rom.py
6
Rom.py
@@ -1060,7 +1060,7 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
||||
#Work around for json patch ordering issues - write bow limit separately so that it is replaced in the patch
|
||||
rom.write_bytes(0x180098, [difficulty.progressive_bow_limit, overflow_replacement])
|
||||
|
||||
if difficulty.progressive_bow_limit < 2 and world.swords[player] in ['swordless', 'pseudo']:
|
||||
if difficulty.progressive_bow_limit < 2 and world.swords[player] in ['swordless', 'pseudo', 'assured_pseudo']:
|
||||
rom.write_bytes(0x180098, [2, overflow_replacement])
|
||||
|
||||
# set up game internal RNG seed
|
||||
@@ -1193,7 +1193,7 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
||||
rom.write_byte(0x180041, 0x01) # swordless medallions (on pads)
|
||||
rom.write_byte(0x180043, 0xFF) # starting sword for link
|
||||
rom.write_byte(0x180044, 0x01) # hammer activates tablets
|
||||
elif world.swords[player] == 'pseudo':
|
||||
elif world.swords[player] in ['pseudo', 'assured_pseudo']:
|
||||
rom.write_byte(0x18002F, 0x02) # pseudo-swords
|
||||
rom.write_byte(0x18003F, 0x01) # hammer can harm ganon
|
||||
elif world.swords[player] == 'bombs':
|
||||
@@ -2377,7 +2377,7 @@ def write_strings(rom, world, player, team):
|
||||
|
||||
prog_bow_locs = world.find_items('Progressive Bow', player)
|
||||
distinguished_prog_bow_loc = next((location for location in prog_bow_locs if location.item.code == 0x65), None)
|
||||
progressive_silvers = world.difficulty_requirements[player].progressive_bow_limit >= 2 or world.swords[player] in ['swordless', 'pseudo']
|
||||
progressive_silvers = world.difficulty_requirements[player].progressive_bow_limit >= 2 or world.swords[player] in ['swordless', 'pseudo', 'assured_pseudo']
|
||||
if distinguished_prog_bow_loc:
|
||||
prog_bow_locs.remove(distinguished_prog_bow_loc)
|
||||
hint_phrase = hint_text(distinguished_prog_bow_loc).replace("Ganon's", "my")
|
||||
|
||||
2
Rules.py
2
Rules.py
@@ -848,7 +848,7 @@ def default_rules(world, player):
|
||||
swordless_rules(world, player)
|
||||
if world.swords[player] == 'bombs':
|
||||
bomb_mode_rules(world, player)
|
||||
if world.swords[player] == 'pseudo':
|
||||
if world.swords[player] in ['pseudo', 'assured_pseudo']:
|
||||
pseudo_sword_mode_rules(world, player)
|
||||
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"assured",
|
||||
"swordless",
|
||||
"pseudo",
|
||||
"assured_pseudo",
|
||||
"bombs",
|
||||
"vanilla"
|
||||
]
|
||||
|
||||
@@ -272,6 +272,7 @@
|
||||
"randomizer.item.weapons.assured": "Assured",
|
||||
"randomizer.item.weapons.swordless": "Swordless",
|
||||
"randomizer.item.weapons.pseudo": "Pseudo-Swords",
|
||||
"randomizer.item.weapons.assured_pseudo": "Assured Pseudo-Swords",
|
||||
"randomizer.item.weapons.bombs": "Bomb-Only",
|
||||
"randomizer.item.weapons.vanilla": "Vanilla",
|
||||
|
||||
|
||||
Reference in New Issue
Block a user