Mimic work
This commit is contained in:
2
Rom.py
2
Rom.py
@@ -40,7 +40,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = 'e5f3f7dd5be54dce0f490529803dafc3'
|
RANDOMIZERBASEHASH = '465f19132309a103df2f2d802e863dd0'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
|
|||||||
Binary file not shown.
@@ -268,6 +268,8 @@ class EnemySprite(FastEnum):
|
|||||||
HeartPiece = 0xeb
|
HeartPiece = 0xeb
|
||||||
SomariaPlatform = 0xed
|
SomariaPlatform = 0xed
|
||||||
CastleMantle = 0xee
|
CastleMantle = 0xee
|
||||||
|
GreenMimic = 0xef
|
||||||
|
RedMimic = 0xf0
|
||||||
MedallionTablet = 0xf2
|
MedallionTablet = 0xf2
|
||||||
PositionTarget = 0xf3
|
PositionTarget = 0xf3
|
||||||
Boulders = 0xf4
|
Boulders = 0xf4
|
||||||
@@ -387,7 +389,7 @@ def init_enemy_stats():
|
|||||||
EnemySprite.CannonTrooper: EnemyStats(EnemySprite.CannonTrooper, False, True, 1, health=3, dmg=1),
|
EnemySprite.CannonTrooper: EnemyStats(EnemySprite.CannonTrooper, False, True, 1, health=3, dmg=1),
|
||||||
EnemySprite.CricketRat: EnemyStats(EnemySprite.CricketRat, False, True, 2, health=(2, 8), dmg=(0, 5)),
|
EnemySprite.CricketRat: EnemyStats(EnemySprite.CricketRat, False, True, 2, health=(2, 8), dmg=(0, 5)),
|
||||||
EnemySprite.Snake: EnemyStats(EnemySprite.Snake, False, True, (1, 7), health=(4, 8), dmg=(1, 5)),
|
EnemySprite.Snake: EnemyStats(EnemySprite.Snake, False, True, (1, 7), health=(4, 8), dmg=(1, 5)),
|
||||||
EnemySprite.Keese: EnemyStats(EnemySprite.Keese, False, True, (0, 7), health=(1, 4), ignore=True,
|
EnemySprite.Keese: EnemyStats(EnemySprite.Keese, False, False, (0, 7), health=(1, 4), ignore=True,
|
||||||
dmg=(0, 5), dmask=0x80),
|
dmg=(0, 5), dmask=0x80),
|
||||||
|
|
||||||
# skip helmafireball for damage
|
# skip helmafireball for damage
|
||||||
@@ -495,6 +497,8 @@ def init_enemy_stats():
|
|||||||
EnemySprite.MagicShopAssistant: EnemyStats(EnemySprite.MagicShopAssistant, True, ignore=True, dmg=0),
|
EnemySprite.MagicShopAssistant: EnemyStats(EnemySprite.MagicShopAssistant, True, ignore=True, dmg=0),
|
||||||
EnemySprite.HeartPiece: EnemyStats(EnemySprite.HeartPiece, True, ignore=True, dmg=0),
|
EnemySprite.HeartPiece: EnemyStats(EnemySprite.HeartPiece, True, ignore=True, dmg=0),
|
||||||
EnemySprite.CastleMantle: EnemyStats(EnemySprite.CastleMantle, True, dmg=0),
|
EnemySprite.CastleMantle: EnemyStats(EnemySprite.CastleMantle, True, dmg=0),
|
||||||
|
EnemySprite.GreenMimic: EnemyStats(EnemySprite.GreenMimic, False, True, 5, health=16, dmg=4),
|
||||||
|
EnemySprite.RedMimic: EnemyStats(EnemySprite.RedMimic, False, True, 5, health=8, dmg=4),
|
||||||
}
|
}
|
||||||
return stats
|
return stats
|
||||||
|
|
||||||
@@ -2346,8 +2350,8 @@ enemy_names = {
|
|||||||
0x80: 'Firesnake',
|
0x80: 'Firesnake',
|
||||||
0x81: 'Hover',
|
0x81: 'Hover',
|
||||||
0x82: 'AntiFairyCircle',
|
0x82: 'AntiFairyCircle',
|
||||||
0x83: 'GreenEyegoreMimic',
|
0x83: 'GreenEyegore',
|
||||||
0x84: 'RedEyegoreMimic',
|
0x84: 'RedEyegore',
|
||||||
0x85: 'YellowStalfos', # falling stalfos that shoots head
|
0x85: 'YellowStalfos', # falling stalfos that shoots head
|
||||||
0x86: 'Kodongo',
|
0x86: 'Kodongo',
|
||||||
0x88: 'Mothula',
|
0x88: 'Mothula',
|
||||||
@@ -2444,6 +2448,8 @@ enemy_names = {
|
|||||||
0xeb: 'HeartPiece',
|
0xeb: 'HeartPiece',
|
||||||
0xed: 'SomariaPlatform',
|
0xed: 'SomariaPlatform',
|
||||||
0xee: 'CastleMantle',
|
0xee: 'CastleMantle',
|
||||||
|
0xef: 'GreenMimic',
|
||||||
|
0xf0: 'RedMimic',
|
||||||
0xf2: 'MedallionTablet',
|
0xf2: 'MedallionTablet',
|
||||||
0xf3: 'PositionTarget',
|
0xf3: 'PositionTarget',
|
||||||
0xf4: 'Boulders'
|
0xf4: 'Boulders'
|
||||||
@@ -2513,6 +2519,7 @@ sprite_translation = {
|
|||||||
'GreenEyegoreMimic': EnemySprite.GreenEyegoreMimic,
|
'GreenEyegoreMimic': EnemySprite.GreenEyegoreMimic,
|
||||||
'GreenGuard': EnemySprite.GreenGuard,
|
'GreenGuard': EnemySprite.GreenGuard,
|
||||||
'GreenKnifeGuard': EnemySprite.GreenKnifeGuard,
|
'GreenKnifeGuard': EnemySprite.GreenKnifeGuard,
|
||||||
|
'GreenMimic': EnemySprite.GreenMimic,
|
||||||
'GreenZirro': EnemySprite.GreenZirro,
|
'GreenZirro': EnemySprite.GreenZirro,
|
||||||
'HardhatBeetle': EnemySprite.HardhatBeetle,
|
'HardhatBeetle': EnemySprite.HardhatBeetle,
|
||||||
'Hinox': EnemySprite.Hinox,
|
'Hinox': EnemySprite.Hinox,
|
||||||
@@ -2542,6 +2549,7 @@ sprite_translation = {
|
|||||||
'RedBushGuard': EnemySprite.RedBushGuard,
|
'RedBushGuard': EnemySprite.RedBushGuard,
|
||||||
'RedEyegoreMimic': EnemySprite.RedEyegoreMimic,
|
'RedEyegoreMimic': EnemySprite.RedEyegoreMimic,
|
||||||
'RedJavelinGuard': EnemySprite.RedJavelinGuard,
|
'RedJavelinGuard': EnemySprite.RedJavelinGuard,
|
||||||
|
'RedMimic': EnemySprite.RedMimic,
|
||||||
'RedSpearGuard': EnemySprite.RedSpearGuard,
|
'RedSpearGuard': EnemySprite.RedSpearGuard,
|
||||||
'RedZazak': EnemySprite.RedZazak,
|
'RedZazak': EnemySprite.RedZazak,
|
||||||
'Ropa': EnemySprite.Ropa,
|
'Ropa': EnemySprite.Ropa,
|
||||||
|
|||||||
@@ -463,6 +463,9 @@ def write_enemy_shuffle_settings(world, player, rom):
|
|||||||
if world.dropshuffle[player] in ['underworld']:
|
if world.dropshuffle[player] in ['underworld']:
|
||||||
rom.write_byte(snes_to_pc(0x368109), 0x01)
|
rom.write_byte(snes_to_pc(0x368109), 0x01)
|
||||||
if world.enemy_shuffle[player] != 'none':
|
if world.enemy_shuffle[player] != 'none':
|
||||||
|
# enable new mimics
|
||||||
|
rom.write_byte(snes_to_pc(0x368105), 0x01)
|
||||||
|
|
||||||
# killable thief
|
# killable thief
|
||||||
rom.write_byte(snes_to_pc(0x368108), 0xc4)
|
rom.write_byte(snes_to_pc(0x368108), 0xc4)
|
||||||
rom.write_byte(snes_to_pc(0x0DB237), 4) # health value: # todo: thief health value
|
rom.write_byte(snes_to_pc(0x0DB237), 4) # health value: # todo: thief health value
|
||||||
|
|||||||
@@ -360,6 +360,8 @@ def init_sprite_requirements():
|
|||||||
SpriteRequirement(EnemySprite.MagicShopAssistant).affix().sub_group(0, 0x4b).sub_group(3, 0x5a),
|
SpriteRequirement(EnemySprite.MagicShopAssistant).affix().sub_group(0, 0x4b).sub_group(3, 0x5a),
|
||||||
SpriteRequirement(EnemySprite.SomariaPlatform).affix().sub_group(2, 0x27),
|
SpriteRequirement(EnemySprite.SomariaPlatform).affix().sub_group(2, 0x27),
|
||||||
SpriteRequirement(EnemySprite.CastleMantle).affix().sub_group(0, 0x5d),
|
SpriteRequirement(EnemySprite.CastleMantle).affix().sub_group(0, 0x5d),
|
||||||
|
SpriteRequirement(EnemySprite.GreenMimic).sub_group(1, 0x2c),
|
||||||
|
SpriteRequirement(EnemySprite.RedMimic).sub_group(1, 0x2c),
|
||||||
SpriteRequirement(EnemySprite.MedallionTablet).affix().sub_group(2, 0x12),
|
SpriteRequirement(EnemySprite.MedallionTablet).affix().sub_group(2, 0x12),
|
||||||
|
|
||||||
# overlord requirements - encapsulated mostly in the required sheets
|
# overlord requirements - encapsulated mostly in the required sheets
|
||||||
|
|||||||
@@ -300,3 +300,5 @@ SubClassTable:
|
|||||||
0xD5: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
0xD5: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
0xD6: [0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
0xD6: [0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
0xD7: [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0]
|
0xD7: [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0]
|
||||||
|
0xEF: [0, 1, 1, 2, 2, 1, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0]
|
||||||
|
0xF0: [0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0]
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ UW: # Total 94431
|
|||||||
Gibo: 294 # 0.33993% raw:321 2.84071%
|
Gibo: 294 # 0.33993% raw:321 2.84071%
|
||||||
GreenBushGuard: 325 # 0.30816% raw:291 2.57522%
|
GreenBushGuard: 325 # 0.30816% raw:291 2.57522%
|
||||||
GreenEyegoreMimic: 175 # 0.57291% raw:541 4.78761%
|
GreenEyegoreMimic: 175 # 0.57291% raw:541 4.78761%
|
||||||
|
GreenMimic: 175 # 0.57291% raw:541 4.78761%
|
||||||
GreenGuard: 55 # 1.80237% raw:1702 15.06195%
|
GreenGuard: 55 # 1.80237% raw:1702 15.06195%
|
||||||
GreenKnifeGuard: 621 # 0.16096% raw:152 1.34513%
|
GreenKnifeGuard: 621 # 0.16096% raw:152 1.34513%
|
||||||
GreenZirro: 180 # 0.55702% raw:526 4.65487%
|
GreenZirro: 180 # 0.55702% raw:526 4.65487%
|
||||||
@@ -68,6 +69,7 @@ UW: # Total 94431
|
|||||||
RedBari: 49 # 2.02688% raw:1914 16.93805%
|
RedBari: 49 # 2.02688% raw:1914 16.93805%
|
||||||
RedBushGuard: 163 # 0.61526% raw:581 5.14159%
|
RedBushGuard: 163 # 0.61526% raw:581 5.14159%
|
||||||
RedEyegoreMimic: 175 # 0.57291% raw:541 4.78761%
|
RedEyegoreMimic: 175 # 0.57291% raw:541 4.78761%
|
||||||
|
RedMimic: 175 # 0.57291% raw:541 4.78761%
|
||||||
RedJavelinGuard: 163 # 0.61526% raw:581 5.14159%
|
RedJavelinGuard: 163 # 0.61526% raw:581 5.14159%
|
||||||
RedSpearGuard: 44 # 2.28527% raw:2158 19.09735%
|
RedSpearGuard: 44 # 2.28527% raw:2158 19.09735%
|
||||||
RedZazak: 294 # 0.33993% raw:321 2.84071%
|
RedZazak: 294 # 0.33993% raw:321 2.84071%
|
||||||
@@ -137,6 +139,7 @@ OW: # Total 117724
|
|||||||
Gibo: 247 # 0.40519% raw:477 4.22124%
|
Gibo: 247 # 0.40519% raw:477 4.22124%
|
||||||
GreenBushGuard: 291 # 0.34403% raw:405 3.58407%
|
GreenBushGuard: 291 # 0.34403% raw:405 3.58407%
|
||||||
GreenEyegoreMimic: 171 # 0.58527% raw:689 6.09735%
|
GreenEyegoreMimic: 171 # 0.58527% raw:689 6.09735%
|
||||||
|
GreenMimic: 171 # 0.58527% raw:689 6.09735%
|
||||||
GreenGuard: 48 # 2.06330% raw:2429 21.49558%
|
GreenGuard: 48 # 2.06330% raw:2429 21.49558%
|
||||||
GreenKnifeGuard: 589 # 0.16989% raw:200 1.76991%
|
GreenKnifeGuard: 589 # 0.16989% raw:200 1.76991%
|
||||||
GreenZirro: 158 # 0.63369% raw:746 6.60177%
|
GreenZirro: 158 # 0.63369% raw:746 6.60177%
|
||||||
@@ -167,6 +170,7 @@ OW: # Total 117724
|
|||||||
RedBari: 47 # 2.11767% raw:2493 22.06195%
|
RedBari: 47 # 2.11767% raw:2493 22.06195%
|
||||||
RedBushGuard: 121 # 0.82651% raw:973 8.61062%
|
RedBushGuard: 121 # 0.82651% raw:973 8.61062%
|
||||||
RedEyegoreMimic: 171 # 0.58527% raw:689 6.09735%
|
RedEyegoreMimic: 171 # 0.58527% raw:689 6.09735%
|
||||||
|
RedMimic: 171 # 0.58527% raw:689 6.09735%
|
||||||
RedJavelinGuard: 121 # 0.82651% raw:973 8.61062%
|
RedJavelinGuard: 121 # 0.82651% raw:973 8.61062%
|
||||||
RedSpearGuard: 39 # 2.56617% raw:3021 26.73451%
|
RedSpearGuard: 39 # 2.56617% raw:3021 26.73451%
|
||||||
RedZazak: 247 # 0.40519% raw:477 4.22124%
|
RedZazak: 247 # 0.40519% raw:477 4.22124%
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ SheetChoices:
|
|||||||
- slots: [1]
|
- slots: [1]
|
||||||
assignments:
|
assignments:
|
||||||
1: 0x2c
|
1: 0x2c
|
||||||
weight: 2 # Beamos, Popos
|
weight: 4 # Beamos, Popos, Mimics (2)
|
||||||
- slots: [1]
|
- slots: [1]
|
||||||
assignments:
|
assignments:
|
||||||
1: 0x49
|
1: 0x49
|
||||||
@@ -131,7 +131,7 @@ SheetChoices:
|
|||||||
- slots: [2]
|
- slots: [2]
|
||||||
assignments:
|
assignments:
|
||||||
2: 0x2e
|
2: 0x2e
|
||||||
weight: 4 # GreenEyeGoreMimic(x2!), RedEyeGoreMimic(x2!)
|
weight: 2 # GreenEyeGoreMimic, RedEyeGoreMimic (Eyegores only)
|
||||||
|
|
||||||
# Slot 3 (21 enemy types require slot 3)
|
# Slot 3 (21 enemy types require slot 3)
|
||||||
- slots: [3]
|
- slots: [3]
|
||||||
|
|||||||
Reference in New Issue
Block a user