;;; General ;;; { Magdollite, Norfair lava creature. Submerges into lava, grows a lava arm up to Samus' Y position, throws lava, shrinks the arm, emerges from the lava Enemy ID: $E83F Bank: $A8 Enemy projectiles: $E0E0: Magdollite lava Parameter 0: Unused Parameter 1: Part 0: Head 1: Arm 2: Hand Parameter 2 low: X proximity. Head only Parameter 2 high: Y speed table index. Head only. Range 0..40h. Speed = v * 0.1000h px/frame Properties must have process instructions bit set Head, arm and hand enemies must be placed together in that order } ;;; Behaviour ;;; { } ;;; WRAM ;;; { $0FAA: Arm growth table index / hand direction { 0: Left 1: Right } $0FAC: Instruction list { $AC9C: Head - facing left - idle $ACB0: Hand - facing left - throwing lava $ACDE: Head - facing left - submerge into lava $AD0C: Head - facing left - emerge from lava $AD3C: Head - facing right - idle $AD50: Hand - facing right - throwing lava $AD7E: Head - facing right - submerge into lava $ADAC: Head - facing right - emerge from lava $ADDC: Arm - growth level 0 $ADE2: Arm - growth level 1 $ADE8: Arm - growth level 2 $ADEE: Arm - growth level 3 $ADF4: Arm - growth level 4 $ADFA: Arm - growth level 5 $AE00: Arm - growth level 6 $AE06: Arm - growth level 7 $AE0C: Hand - stub } $0FAE: New instruction list $0FB0: Arm height (negative) $0FB2: Function { $B11A: Head - idle $B175: Head - wait until submerged $B193: Head - emerge when ready $B1B8: Head - wait until emerged $B1DD: Arm - wait until head submerged $B204: Arm - growing arm $B291: RTS $B295: Arm - shrinking arm $B30D: Hand - idle $B31F: Hand - wait until finished throwing lava and shrink arm $B356: Hand - wait until finished growing and throw lava $B3A7: Hand - move with shrinking arm } $7E:7800: Head direction { 0: Left 1: Right } $7E:7802: Animation active flag $7E:7804: Emerge not ready flag $7E:7806: Y spawn position $7E:7808: Cooldown timer $7E:780E: Down subvelocity $7E:7810: Down velocity $7E:7812: Up subvelocity $7E:7814: Up velocity $7E:7818: Finished growing flag $7E:781A: Not submerged flag $7E:7824: Throw X position $7E:7826: Throw Y position } ;;; Enemy population ;;; { ________________________________________ Enemy ID | __________________________________ X position | | _____________________________ Y position | | | _______________________ Initialisation parameter | | | | _________________ Properties. 2000h = process instructions, 800h = process whilst off-screen, 400h = intangible | | | | | ____________ Extra properties | | | | | | ______ Parameter 1 | | | | | | | _ Parameter 2 | | | | | | | | ; Debug E83F, 0248,00B0, 0000, 2800,0000, 0000,3A60 E83F, 0248,00B0, 0000, 2C00,0000, 0001,0000 E83F, 0248,00B0, 0000, 2C00,0000, 0002,0000 ; Room $B1E5. Lower Norfair chozo room E83F, 01D8,02D8, 0000, 2800,0000, 0000,20F0 E83F, 01D8,02D8, 0000, 2C00,0000, 0001,0000 E83F, 01D8,02D8, 0000, 2C00,0000, 0002,0000 ; Room $AEB4. Magdollite multiviola hall E83F, 00F8,00B8, 0000, 2800,0000, 0000,3A60 E83F, 00F8,00B8, 0000, 2C00,0000, 0001,0000 E83F, 00F8,00B8, 0000, 2C00,0000, 0002,0000 E83F, 01E8,00B8, 0000, 2800,0000, 0000,3A60 E83F, 01E8,00B8, 0000, 2C00,0000, 0001,0000 E83F, 01E8,00B8, 0000, 2C00,0000, 0002,0000 E83F, 0248,00B8, 0000, 2800,0000, 0000,3A60 E83F, 0248,00B8, 0000, 2C00,0000, 0001,0000 E83F, 0248,00B8, 0000, 2C00,0000, 0002,0000 } ;;; Enemy header ;;; { 0600 ; 0: Tile data size AC1C ; 2: Palette 0014 ; 4: Health 0028 ; 6: Damage 0008 ; 8: Width 0008 ; Ah: Height A8 ; Ch: Bank 00 ; Dh: Hurt AI time 0000 ; Eh: Cry 0000 ; 10h: Boss ID AF8B ; 12h: Initialisation AI 0003 ; 14h: Number of parts B10A ; 18h: Main AI 800F ; 1Ah: Grapple AI 804C ; 1Ch: Hurt AI 8041 ; 1Eh: Frozen AI 0000 ; 20h: Time is frozen AI 0004 ; 22h: Death animation B400 ; 28h: Power bomb reaction 0000 ; 2Ah: Sidehopper variant index B406 ; 30h: Enemy touch B40C ; 32h: Enemy shot B1BC00 ; 36h: Tile data 05 ; 39h: Layer F3E6 ; 3Ah: Drop chances ($B4) EEB0 ; 3Ch: Vulnerabilities ($B4) DF57 ; 3Eh: Enemy name ($B4) } ;;; Enemy vulnerabilities ;;; { ; Vulnerability format: ; v = fddddddd ; If v = FFh: ; Freeze, no damage ; Else: ; d: Damage multiplier * 2 ; f: Does not freeze 00 ; Power 00 ; Wave FF ; Ice FF ; Ice + wave 00 ; Spazer 00 ; Spazer + wave FF ; Spazer + ice FF ; Spazer + ice + wave 00 ; Plasma 00 ; Plasma + wave FF ; Plasma + ice FF ; Plasma + ice + wave 00 ; Missile 02 ; Super missile 00 ; Bomb 02 ; Power bomb 02 ; Speed booster 02 ; Shinespark 00 ; Screw attack 00 ; Charged beam 00 ; Pseudo screw attack 02 ; Unused } ;;; Enemy drop chances ;;; { 50 ; 31.4% Small health 50 ; 31.4% Big health 50 ; 31.4% Missiles 05 ; 2.0% Nothing 05 ; 2.0% Super missiles 05 ; 2.0% Power bombs }