Skip to content

Commit

Permalink
restored support for spekkio lufia
Browse files Browse the repository at this point in the history
  • Loading branch information
Anonymous committed Apr 13, 2023
1 parent 53a250e commit cc72a3f
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 15 deletions.
38 changes: 29 additions & 9 deletions randomizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1101,7 +1101,12 @@ def intershuffle_valid(self):

@cached_property
def name(self):
name = self.name_text.decode('utf8').strip()
if b'\x00' in self.name_text:
null_index = self.name_text.index(b'\x00')
name_text = self.name_text[:null_index]
else:
name_text = self.name_text
name = name_text.decode('utf8').strip()
return ''.join([c for c in name if c in printable])

@property
Expand Down Expand Up @@ -1159,7 +1164,13 @@ def intershuffle(cls):
candidates=[m for m in MonsterObject.every if m.is_boss])

def guess_sprite(self):
return self.monster_overworld_sprites[self.index]
if self.index in self.monster_overworld_sprites:
return self.monster_overworld_sprites[self.index]
elif (get_global_label() == 'LUFIA2_SPEKKIO_V6'
and 'Lady Spider' in self.name):
return 0x89
else:
return 0x94

def set_drop(self, item):
if isinstance(item, ItemObject):
Expand Down Expand Up @@ -1372,7 +1383,10 @@ def rank(self):
0x1d2: 0,
}
artemis_mods = ['L2_FRUE', 'L2_SPEKKIO', 'L2_KUREJI', 'L2_KUREJI_NB',
'L2_KUREJI_HC', 'L2_KUREJI_HC_NB']
'L2_KUREJI_HC', 'L2_KUREJI_HC_NB',
'LUFIA2_FRUE_V6', 'LUFIA2_SPEKKIO_V6',
'LUFIA2_KUREJI_V6',
]
if get_global_label() in artemis_mods and self.index >= 0x1a7:
self._rank = -1
elif self.index in rankdict:
Expand Down Expand Up @@ -1853,12 +1867,18 @@ def __init__(self, data):
self.misc = data[7]
if {self.boundary_west, self.boundary_east,
self.boundary_north, self.boundary_south} != {0xff}:
assert self.boundary_west < self.boundary_east
assert self.boundary_north < self.boundary_south
if self.x != 0xff:
assert self.boundary_west <= self.x < self.boundary_east
if self.y != 0xff:
assert self.boundary_north <= self.y < self.boundary_south
try:
assert self.boundary_west < self.boundary_east
assert self.boundary_north < self.boundary_south
if self.x != 0xff:
assert (self.boundary_west <= self.x
< self.boundary_east)
if self.y != 0xff:
assert (self.boundary_north <= self.y
< self.boundary_south)
except:
print('WARNING: NPC {0} has boundary errors.'.format(
hexify(data)))

def __repr__(self):
if self.is_mobile:
Expand Down
4 changes: 2 additions & 2 deletions tables/master.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ LUFIA2_NA 6efc477d6203ed2b3b9133c1cd9e9c5d tables_list.txt
LUFIA2_JP 18567d21df6a95a7b52029d250bac721 tables_list_jp.txt
LUFIA2_FIX 026b649ed316448e038349e39a6fe579 tables_list.fixxxer.txt
LUFIA2_FRUE_V6 b58c76f2ac0b2aeb9b779e880d2bff18 tables_list.frue.txt
LUFIA2_SPEKKIO 5afddb3ba7788123c4cff6ee7fa83f3f tables_list.spekkio.txt
LUFIA2_KUREJI faba981aa1f3831d1b065ae071ea555b tables_list.kureji.txt
LUFIA2_SPEKKIO_V6 b4c4973a5f1cfd40bb1863dbad260de4 tables_list.spekkio.txt
LUFIA2_KUREJI_V6 5983201c45de814dc3672ab7d8279886 tables_list.kureji.txt
!LUFIA2_NA->LUFIA2_FIX lufia2_fixxxer_unheadered.ips
37 changes: 33 additions & 4 deletions tables/tables_list.spekkio.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,52 @@
# objname tablefile address count grouped
EventInstObject struct_2pointer.txt 4a14 205
IPAttackObject struct_ip_attack.txt pointers_ip_attack.txt
CharLevelObject struct_level.txt pointers_level.txt
CharExpObject struct_exp.txt pointers_xp.txt
InitialEquipObject struct_initial_equip.txt pointers_initial_equip.txt
OverPaletteObject struct_over_palette.txt 36ca6 3
OverSpriteObject struct_over_sprite.txt 37086 6
MapEventObject struct_map_event.txt 38010 242
RoamingNPCObject struct_roaming_npc.txt 3ae4e 34
ChestObject struct_chest.txt pointers_chest.txt
CapsuleLevelObject struct_capsule_level.txt 764c4 7
WordObject struct_word.txt 76a00 640
AncientChest2Object struct_ancient_chest.txt 8ffdc 9
BlueChestObject struct_blue_chest.txt 30d880 42
AncientChest1Object struct_ancient_chest.txt a713d 31
SpellObject struct_spell.txt pointers_spell.frue.txt
# 235 monsters, Spekkio is 235th
MonsterObject struct_monster.txt pointers_monster.frue.txt
MonsterObject struct_monster.txt 282000 240 point1 282000 2
ItemObject struct_item.txt b4f69 467 point1 b4f69 2
CharGrowthObject struct_char_growth.txt pointers_char_growth.txt
CharacterObject struct_character.txt bb93c 7
MapFormationsObject struct_2pointer.txt bb9ac 248
FormationObject struct_formation.txt bbe93 192
BossFormationObject struct_2pointer.txt bc53d 39
SpriteMetaObject struct_sprite_meta.txt bca64 134
CapPaletteObject struct_cap_palette.txt bd258 35
CapsuleObject struct_capsule.txt bdcb8 35 point1 bdcb8 2
ShopObject struct_shop.txt pointers_shop.txt
ShopObject struct_2pointer.txt bee9f 66
CapAttackObject struct_cap_attack.txt bf63b 84 point1 bf63b 2
ItemNameObject struct_item_name.txt f47e8 467
CapSpritePTRObject struct_cap_sprite_ptr.txt 1384bc 35
TownSpriteObject struct_town_sprite.txt pointers_town_sprite.txt
MonsterMoveObject struct_monster_move.txt 27f6b5 112
MapMetaObject struct_3pointer.txt 27fcbc 242
$capsule_end beead
$rng1 63
$rng2 2f4
.patch patch_spekkio.txt
$starting_tool 2b2ca
$credits 89aff
$credits_pointer1 73449
$credits_pointer2 73496
$credits_pointer3 7349d
$credits_pointer4 734b3
$credits_pointer5 73503
$credits_pointer6 73511
$sprites names_sprites.txt
.patch patch_clear_initial_spells.txt
.option patch_ac_music_hack.txt
.patch patch_zero_gold_command.txt
.patch patch_secondary_tool.txt
#.option patch_ac_music_hack.txt
.patch patch_spekkio.txt

0 comments on commit cc72a3f

Please sign in to comment.