;;; General ;;; { Metroid. Fly at Samus and attach to her, draining her health until they get bombed off. Vulnerable only when frozen or power bombed Enemy ID: $DD7F Bank: $A3 Enemy projectiles: None Parameter 0: Unused Parameter 1: Unused Parameter 2: Freeze health threshold. This much damage must be taken before freezing is allowed Properties must have process instructions bit set } ;;; Behaviour ;;; { } ;;; WRAM ;;; { $0FA8: X subvelocity $0FAA: X velocity $0FAC: Y subvelocity $0FAE: Y velocity $0FB0: Bombed off Samus cooldown timer $0FB2: Function index { 0: Chase Samus 1: Latch onto Samus 2: Latched onto Samus 3: Bombed off Samus } $0FB6: Freeze health threshold $7E:7800: Metroid electricity sprite object index $7E:7802: Metroid shell sprite object index $7E:7804: Samus subhealth } ;;; Enemy population ;;; { ________________________________________ Enemy ID | __________________________________ X position | | _____________________________ Y position | | | _______________________ Initialisation parameter | | | | _________________ Properties. 2000h = process instructions | | | | | ____________ Extra properties | | | | | | ______ Parameter 1 | | | | | | | _ Parameter 2 | | | | | | | | ; Debug DD7F, 0100,0100, 0000, 2000,0000, 0000,0005 ; Room $DAE1, state $DAF3. Metroid room 1 - default DD7F, 010C,006A, 0000, 2000,0000, 0000,0005 DD7F, 027D,0074, 0000, 2000,0000, 0000,0005 DD7F, 036D,0092, 0000, 2000,0000, 0000,0005 DD7F, 04AD,008C, 0000, 2000,0000, 0000,0005 ; Room $DB31, state $DB43. Metroid room 2 - default DD7F, 0098,0115, 0000, 2000,0000, 0000,0005 DD7F, 0056,018A, 0000, 2000,0000, 0000,0005 ; Room $DBCD, state $DBDF. Metroid room 4 - default DD7F, 00C4,0152, 0000, 2000,0000, 0000,0005 DD7F, 003E,00FB, 0000, 2000,0000, 0000,0005 DD7F, 0046,01BE, 0000, 2000,0000, 0000,0005 ; Room $DB7D, state $DB8F. Metroid room 3 - default DD7F, 018A,0081, 0000, 2000,0000, 0000,0005 DD7F, 0367,0077, 0000, 2000,0000, 0000,0005 DD7F, 046A,0073, 0000, 2000,0000, 0000,0005 } ;;; Enemy header ;;; { 1000 ; 0: Tile data size E9AF ; 2: Palette 01F4 ; 4: Health 0078 ; 6: Damage 000A ; 8: Width 000A ; Ah: Height A3 ; Ch: Bank 00 ; Dh: Hurt AI time 005A ; Eh: Cry 0000 ; 10h: Boss ID EA4F ; 12h: Initialisation AI 0001 ; 14h: Number of parts EB98 ; 18h: Main AI 800F ; 1Ah: Grapple AI EB33 ; 1Ch: Hurt AI EAE6 ; 1Eh: Frozen AI 0000 ; 20h: Time is frozen AI 0004 ; 22h: Death animation F042 ; 28h: Power bomb reaction 0000 ; 2Ah: Sidehopper variant index EDEB ; 30h: Enemy touch EF07 ; 32h: Enemy shot AE9000 ; 36h: Tile data 05 ; 39h: Layer F36E ; 3Ah: Drop chances ($B4) EF60 ; 3Ch: Vulnerabilities ($B4) DFAB ; 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 02 ; Missile 04 ; Super missile 00 ; Bomb 01 ; Power bomb 02 ; Speed booster 02 ; Shinespark 02 ; Screw attack 00 ; Charged beam 02 ; Pseudo screw attack 02 ; Unused } ;;; Enemy drop chances ;;; { 19 ; 9.8% Small health 32 ; 19.6% Big health 5A ; 35.3% Missiles 0A ; 3.9% Nothing 32 ; 19.6% Super missiles 1E ; 11.8% Power bombs }