1 #ifndef _UNDEADCORE_BOSS_H 2 #define _UNDEADCORE_BOSS_H 3 4 #include "../../object.h" 5 #include "../../stageboss.h" 6 7 #define NUM_ROTATORS 4 8 enum BBoxes 9 { 10 BB_UPPER, 11 BB_BACK, 12 BB_LOWER, 13 BB_TARGET, 14 NUM_BBOXES 15 }; 16 17 enum UD_Faces 18 { 19 FACE_SKULL, 20 FACE_TEETH, 21 FACE_MOUTH, 22 FACE_MOUTH_LIT, 23 FACE_NONE 24 }; 25 26 class UDCoreBoss : public StageBoss 27 { 28 public: 29 void OnMapEntry(); 30 void OnMapExit(); 31 void Run(); 32 void RunAftermove(); 33 34 private: 35 bool RunDefeated(); 36 void SpawnFaceSmoke(); 37 void SpawnPellet(int dir); 38 void RunHurtFlash(int timer); 39 40 void run_front(Object *o); 41 void run_face(Object *o); 42 void run_back(Object *o); 43 44 void move_bboxes(); 45 void set_bbox_shootable(bool enable); 46 47 Object *create_rotator(int angle, int front); 48 void run_rotator(Object *o); 49 void SetRotatorStates(int newstate); 50 51 Object *main; 52 Object *front, *back; 53 Object *face; 54 55 Object *rotator[NUM_ROTATORS]; 56 Object *bbox[NUM_BBOXES]; 57 }; 58 59 void onspawn_ud_minicore_idle(Object *o); 60 void ai_udmini_platform(Object *o); 61 void ai_ud_pellet(Object *o); 62 void ai_ud_smoke(Object *o); 63 void ai_ud_spinner(Object *o); 64 void ai_ud_spinner_trail(Object *o); 65 void ai_ud_blast(Object *o); 66 67 #endif 68