;;; General ;;; { Shaktool. Cartwheels excruciatingly slowly Enemy ID: $F07F Bank: $AA Enemy projectiles: ; Unused $BE25: Shaktool's attack - front circle $BE33: Shaktool's attack - middle circle $BE41: Shaktool's attack - back circle Parameter 0: Unused Parameter 1: Initial movement options 2000h: Uncurling 4000h: Maximally curled 8000h: Moving anti-clockwise Parameter 2: Piece index (multiple of 2). Range 0..Ch. identifies pieces starting from the initial rightmost piece and increasing to the initial leftmost piece 0: Initially right saw hand (primary piece) 2: Initially rightmost arm piece 4: Initially centre right arm piece 6: Head 8: Initially centre left arm piece Ah: Initially leftmost arm piece Ch: Initially left saw hand (final piece) Primary piece must be first enemy placed in room due to bug in $AA:DF34 The 7 pieces must be placed together in increasing piece index order } ;;; Behaviour ;;; { } ;;; WRAM ;;; { $0FA8: Facing angle $0FAA: Neighbour angle $0FAC: Neighbour angle delta $0FAE: Head direction / final piece angle curled $0FAF: Flip flag $0FB0: Primary piece enemy index $0FB2: Function { $DCAA: RTS $DCAB: RTS. Primary piece $DCAC: Arm piece $DCD7: Head $DD25: Final piece } $0FB4: Movement options { 2000h: Uncurling 4000h: Maximally curled 8000h: Moving anti-clockwise } } ;;; Enemy population ;;; { ________________________________________ Enemy ID | __________________________________ X position | | _____________________________ Y position | | | _______________________ Initialisation parameter | | | | _________________ Properties. 2000h = process instructions | | | | | ____________ Extra properties | | | | | | ______ Parameter 1 | | | | | | | _ Parameter 2 | | | | | | | | ; Debug F07F, 0110,035C, 0000, 2000,0000, 8000,0000 F07F, 0110,035C, 0000, 2000,0000, 8000,0002 F07F, 0110,035C, 0000, 2000,0000, 8000,0004 F07F, 0110,035C, 0000, 2000,0000, 8000,0006 F07F, 0110,035C, 0000, 2000,0000, 8000,0008 F07F, 0110,035C, 0000, 2000,0000, 8000,000A F07F, 0110,035C, 0000, 2000,0000, 8000,000C ; Room $D8C5. Shaktool F07F, 00A8,00B8, 0000, 2000,0000, 0000,0000 F07F, 00A8,00B8, 0000, 2000,0000, 0000,0002 F07F, 00A8,00B8, 0000, 2000,0000, 0000,0004 F07F, 00A8,00B8, 0000, 2000,0000, 0000,0006 F07F, 00A8,00B8, 0000, 2000,0000, 0000,0008 F07F, 00A8,00B8, 0000, 2000,0000, 0000,000A F07F, 00A8,00B8, 0000, 2000,0000, 0000,000C } ;;; Enemy header ;;; { 0400 ; 0: Tile data size D911 ; 2: Palette 012C ; 4: Health 0078 ; 6: Damage 0006 ; 8: Width 0006 ; Ah: Height AA ; Ch: Bank 08 ; Dh: Hurt AI time 0069 ; Eh: Cry 0000 ; 10h: Boss ID DE43 ; 12h: Initialisation AI 0007 ; 14h: Number of parts DCA3 ; 18h: Main AI 800F ; 1Ah: Grapple AI DCA3 ; 1Ch: Hurt AI 8041 ; 1Eh: Frozen AI 0000 ; 20h: Time is frozen AI 0004 ; 22h: Death animation 0000 ; 28h: Power bomb reaction 0000 ; 2Ah: Sidehopper variant index DF2F ; 30h: Enemy touch DF34 ; 32h: Enemy shot B19000 ; 36h: Tile data 05 ; 39h: Layer F3C8 ; 3Ah: Drop chances ($B4) EF1E ; 3Ch: Vulnerabilities ($B4) DE07 ; 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 82 ; Power 82 ; Wave 82 ; Ice 82 ; Ice + wave 82 ; Spazer 82 ; Spazer + wave 82 ; Spazer + ice 82 ; Spazer + ice + wave 82 ; Plasma 82 ; Plasma + wave 82 ; Plasma + ice 82 ; Plasma + ice + wave 82 ; Missile 82 ; Super missile 82 ; Bomb 00 ; Power bomb 00 ; Speed booster 00 ; Shinespark 00 ; Screw attack 00 ; Charged beam 00 ; Pseudo screw attack 00 ; 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 }