Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion constants/objectives/results.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"Kefka's Tower" : [
ResultType(1, "Kefka's Tower", "Random", None),
ResultType(2, "Unlock Final Kefka", "Unlock Final Kefka", None),
ResultType(3, "Unlock KT Skip", "Unlock KT Skip", None),
ResultType(3, "Unlock One KT Skip", "Unlock One KT Skip", None),
],
"Auto" : [
ResultType(4, "Auto", "Random", None),
Expand Down Expand Up @@ -85,6 +85,8 @@
],
}

category_types["Kefka's Tower"] += [ResultType(61, "Unlock Perma KT Skip", "Unlock Perma KT Skip", None)]

categories = list(category_types.keys())

id_type = {}
Expand Down
10 changes: 9 additions & 1 deletion data/event_bit.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# NOTE: (address - 1e80) * 0x8 + bit
# e.g. (1eb7 - 1e80) * 0x8 + 0x1 = 1b9 (airship visible)
# e.g. (1eb7 - 1e80) * 0x8 + 0x1 = 1b9 (airship visible)
# (1f43 - 1e80) * 0x8 + 0x3 = 61b (characters on narshe battlefield)

DISABLE_SAVE_POINT_TUTORIAL = 0x133
Expand Down Expand Up @@ -202,6 +202,14 @@
ENABLE_Y_PARTY_SWITCHING = 0x1ce
ALWAYS_CLEAR = 0x176 # this event_bit is always clear, used for branching

# Unused Bits
# bits 0x200-0x22e Used for banquet soldiers
# 2 bits 0x1bc-0x1bd Unused
# 3 bits 0x1c7-0x1c9 Unused
# 3 bits 0x2c1-0x2c3 Unused
UNLOCKED_PERMA_KT_SKIP = 0x2c1
# 8 bits 0x1e6-0x1ed Unused, as the SNES versions feature 20 rare item slots rather than 30

from constants.objectives import MAX_OBJECTIVES
for index in range(MAX_OBJECTIVES):
globals()["OBJECTIVE" + str(index)] = 0xe0 + index
Expand Down
1 change: 1 addition & 0 deletions event/kefka_tower.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ def entrance_landing_mod(self):
space.add_label("ENTRANCE_LANDING", space.end_address + 1)
space.write(
field.BranchIfEventWordLess(event_word.CHARACTERS_AVAILABLE, 3, "NEED_MORE_ALLIES"),
field.BranchIfEventBitSet(event_bit.UNLOCKED_PERMA_KT_SKIP, "LANDING_MENU"),
field.BranchIfEventBitSet(event_bit.UNLOCKED_KT_SKIP, "LANDING_MENU"),

field.Pause(2), # NOTE: load-bearing pause, without a pause or dialog before party select the game
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ def src(self):
]

class Result(ObjectiveResult):
NAME = "Unlock KT Skip"
NAME = "Unlock One KT Skip"
def __init__(self):
super().__init__(Field, Battle)
19 changes: 19 additions & 0 deletions objectives/results/unlock_perma_kt_skip.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from objectives.results._objective_result import *
import data.event_bit as event_bit

class Field(field_result.Result):
def src(self):
return [
field.SetEventBit(event_bit.UNLOCKED_PERMA_KT_SKIP),
]

class Battle(battle_result.Result):
def src(self):
return [
battle_result.SetBit(event_bit.address(event_bit.UNLOCKED_PERMA_KT_SKIP), event_bit.UNLOCKED_PERMA_KT_SKIP),
]

class Result(ObjectiveResult):
NAME = "Unlock Perma KT Skip"
def __init__(self):
super().__init__(Field, Battle)