;;; General ;;; { Elevator. Basic description Enemy ID: $D73F Bank: $A3 Enemy projectiles: None Parameter 0: Unused Parameter 1: Direction 0: Down 1: Up Parameter 2: Y position if entered room by elevator. Normal Y position is used as target Y position in this case Properties must have process instructions bit set Downward elevators must have process whilst off-screen bit set } ;;; Behaviour ;;; { In block collision: if collided with block whose door header pointer is 0..7FFFh, then elevator properties = standing on elevator. In enemy AI: if standing on elevator and pressing up/down, then lock Samus (7) and move up/down with her indefinitely. Eventually Samus will collide with an actual door. In the hit a door block state: door is an elevator, so lock Samus (0) and wait 48 frames if downwards elevator. In door transition state: if upwards elevator then lock Samus (0), else lock Samus (7). The door is an elevator flag is set (by the door header) and Samus is locked. The elevator status is set to door transition. In enemy init AI: elevator status == door transition, so enemy Y position = [enemy parameter 2]. In enemy AI: keep moving until reached original enemy Y position, then unlock Samus (Bh). } ;;; WRAM ;;; { $0FA8: Target 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 | | | | | | | | ; Room $9938. Crateria -> Green Brinstar elevator D73F, 0080,00A2, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $962A. Crateria -> Red Brinstar elevator D73F, 0080,00C2, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $97B5. Crateria -> Blue Brinstar elevator D73F, 0080,00A2, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $94CC. Crateria -> Maridia elevator D73F, 0080,00C0, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $A66A. Tourian entrance D73F, 0080,01B0, 0000, 2C00,0000, 0000,0240 ; Elevator ; Room $9E9F, state $9ECB. Morph ball room - event "Zebes is awake" is set D73F, 0580,02C2, 0000, 2C00,0000, 0001,0018 ; Elevator ; Room $9E9F, state $9EB1. Morph ball room - default D73F, 0580,02C2, 0000, 2C00,0000, 0001,0018 ; Elevator ; Unused. $A1:98D1 D73F, 0080,00A0, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $A6A1. Kraid's lair entrance D73F, 0080,00A0, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $9AD9. Green Brinstar mainstreet D73F, 0080,02C2, 0000, 2C00,0000, 0001,0018 ; Elevator ; Room $A322. Red Brinstar -> Crateria elevator D73F, 0080,02C2, 0000, 2C00,0000, 0001,0018 ; Elevator ; Room $AF3F. Norfair -> Lower Norfair elevator D73F, 0080,00A0, 0000, 2C00,0000, 0000,0140 ; Elevator ; Room $B236. Lower Norfair mainstreet D73F, 0480,02A2, 0000, 2C00,0000, 0001,0018 ; Elevator ; Room $A7DE. Norfair mainstreet D73F, 0080,02C2, 0000, 2C00,0000, 0001,0018 ; Elevator ; Room $D30B. Maridia -> Crateria elevator D73F, 0080,02C0, 0000, 2C00,0000, 0001,0018 ; Elevator ; Room $DAAE. Tourian -> Crateria elevator D73F, 0080,02C2, 0000, 2C00,0000, 0001,0018 ; Elevator } ;;; Enemy header ;;; { 0000 ; 0: Tile data size 0000 ; 2: Palette 0028 ; 4: Health 000F ; 6: Damage 0010 ; 8: Width 0008 ; Ah: Height A3 ; Ch: Bank 00 ; Dh: Hurt AI time 0059 ; Eh: Cry 0000 ; 10h: Boss ID 94E6 ; 12h: Initialisation AI 0001 ; 14h: Number of parts 952A ; 18h: Main AI 952A ; 1Ah: Grapple AI 804C ; 1Ch: Hurt AI 952A ; 1Eh: Frozen AI 0000 ; 20h: Time is frozen AI 0000 ; 22h: Death animation 804C ; 28h: Power bomb reaction 0000 ; 2Ah: Sidehopper variant index 804C ; 30h: Enemy touch 804C ; 32h: Enemy shot 000000 ; 36h: Tile data 05 ; 39h: Layer 0000 ; 3Ah: Drop chances ($B4) 0000 ; 3Ch: Vulnerabilities ($B4) 0000 ; 3Eh: Enemy name ($B4) } ;;; Enemy vulnerabilities ;;; { ; Default } ;;; Enemy drop chances ;;; { ; Nothing }