|
|
@@ -60,36 +60,34 @@ class MetroidState: |
|
|
|
4: False, |
|
|
|
5: False |
|
|
|
} |
|
|
|
self.brinstarDoors { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False, |
|
|
|
4: False, |
|
|
|
5: False |
|
|
|
} |
|
|
|
self.norfairDoors { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False, |
|
|
|
4: False |
|
|
|
} |
|
|
|
self.kraidDoors { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False, |
|
|
|
4: False, |
|
|
|
5: False |
|
|
|
} |
|
|
|
self.ridleyDoors { |
|
|
|
1: False, |
|
|
|
2: False |
|
|
|
self.doors { |
|
|
|
"Brinstar": { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False, |
|
|
|
4: False, |
|
|
|
5: False |
|
|
|
}, "Norfair": { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False, |
|
|
|
4: False |
|
|
|
}, "Kraid": { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False, |
|
|
|
4: False, |
|
|
|
5: False |
|
|
|
}, "Ridley": { |
|
|
|
1: False, |
|
|
|
2: False |
|
|
|
}, "Tourian" { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False |
|
|
|
} |
|
|
|
} |
|
|
|
self.tourianDoors { |
|
|
|
1: False, |
|
|
|
2: False, |
|
|
|
3: False |
|
|
|
} |
|
|
|
self.kraidKilles = False |
|
|
|
self.kraidKilled = False |
|
|
|
self.ridleyKilled = False |
|
|
|
self.motherBrainKilled = False |
|
|
|
self.kraidStatue = False |
|
|
@@ -97,7 +95,96 @@ class MetroidState: |
|
|
|
self.swimsuit = False |
|
|
|
self.missileCount = 0 |
|
|
|
self.gameAge = 0 |
|
|
|
self.startLocation = ["Brinstar", "Norfair", "Kraid's Lair", "Ridley's Lair", "Tourian"] |
|
|
|
self.locations = ["Brinstar", "Norfair", "Kraid's Lair", "Ridley's Lair", "Tourian"] |
|
|
|
self.startLocation = 0 |
|
|
|
|
|
|
|
def toggleItem(itm): |
|
|
|
if itm in self.itemsCollected.keys(): |
|
|
|
self.itemsCollected[itm] = not self.itemsCollected[itm] |
|
|
|
self.samusHas[itm] = not self.samusHas[itm] |
|
|
|
else: |
|
|
|
print("Couldn't find item: {}".format(str(itm))) |
|
|
|
|
|
|
|
def toggleMissileTank(num): |
|
|
|
try: |
|
|
|
num = int(num) |
|
|
|
except: |
|
|
|
print("{} is not a number".format(num)) |
|
|
|
return |
|
|
|
if num in self.missileTanks.keys(): |
|
|
|
self.missileTanks[num] = not self.missileTanks[num] |
|
|
|
else: |
|
|
|
print("Couldn't find missile tank: {}".format(num)) |
|
|
|
|
|
|
|
def toggleEnergyTank(num): |
|
|
|
try: |
|
|
|
num = int(num) |
|
|
|
except: |
|
|
|
print("{} is not a number".format(num)) |
|
|
|
return |
|
|
|
if num in self.energyTanks.keys(): |
|
|
|
self.energyTanks[num] = not self.energyTanks[num] |
|
|
|
else: |
|
|
|
print("Couldn't find energy tank: {}".format(num)) |
|
|
|
|
|
|
|
def toggleZebetite(num): |
|
|
|
try: |
|
|
|
num = int(num) |
|
|
|
except: |
|
|
|
print("{} is not a number".format(num)) |
|
|
|
return |
|
|
|
if num in self.zebetitesDestroyed.keys(): |
|
|
|
self.zebetitesDestroyed[num] = not self.zebetitesDestroyed[num] |
|
|
|
else: |
|
|
|
print("Couldn't find Zebetite: {}".format(num)) |
|
|
|
|
|
|
|
def toggleKraid(): |
|
|
|
self.kraidKilled = not self.kraidKilled |
|
|
|
self.kraidStatue = self.kraidKilled |
|
|
|
|
|
|
|
def toggleKraidStatue(): |
|
|
|
self.kraidStatue = not self.kraidStatue |
|
|
|
if self.kraidKilled and not self.kraidStatue: |
|
|
|
print("WARNING: Kraid has been killed but his statue has not been raised.") |
|
|
|
|
|
|
|
def toggleRidley(): |
|
|
|
self.ridleyKilled = not self.ridleyKilled |
|
|
|
self.ridleyStatue = self.ridleyKilled |
|
|
|
|
|
|
|
def toggleRidleyStatue(): |
|
|
|
self.ridleyStatue = not self.ridleyStatue |
|
|
|
if self.ridleyKilled and not self.ridleyStatue: |
|
|
|
print("WARNING: Ridley has been killed but his statue has not been raised.") |
|
|
|
|
|
|
|
def toggleMotherBrain(): |
|
|
|
self.motherBrainKilled = not self.motherBrainKilled |
|
|
|
|
|
|
|
def toggleDoor(area, door) { |
|
|
|
try: |
|
|
|
area = str(area) |
|
|
|
door = int(door) |
|
|
|
except: |
|
|
|
print("Area must be string, door must be a positive integer") |
|
|
|
return |
|
|
|
if area in self.doors.keys() and int(door) in self.doors[area].keys(): |
|
|
|
self.doors[area][door] = not self.doors[area][door] |
|
|
|
else: |
|
|
|
print("Couldn't find door {} in area {}".format(door, area)) |
|
|
|
} |
|
|
|
|
|
|
|
def toggleSwimsuit(): |
|
|
|
self.swimsuit = not self.swimsuit |
|
|
|
|
|
|
|
def newLocation(loc): |
|
|
|
try: |
|
|
|
loc = str(loc) |
|
|
|
except: |
|
|
|
print("Location must be a string") |
|
|
|
return |
|
|
|
if loc in self.locations: |
|
|
|
self.startLocation = self.locations.index(loc) |
|
|
|
else: |
|
|
|
print("Couldn't find location: {}".format(loc)) |
|
|
|
|
|
|
|
def main(): |
|
|
|
pass |