Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

Entity/Bosses/Skull/Skull.h

Committer:
el17sm
Date:
2019-05-07
Revision:
36:92d131695e7c
Parent:
34:1d5b4da3935e
Child:
38:09832e662803
Child:
56:ef9521b7ed78

File content as of revision 36:92d131695e7c:

#ifndef SKULL_H
#define SKULL_H
#include "Entity.h"
#define DASH_DELAY 120

class Skull : public Entity {
private:
    // Member Variables
    SpriteSize _shadow;
    bool _dash;
    int _dash_counter;
    int _velocity_index;
    
    // Member Functions
    void increment_frames();
    void update_offsets();
    
public:
    // Constructor
    Skull(float pos_x, float pos_y);

    // Functions
    virtual void move(float, float, char * map, bool * doorways); // movement control and miscellaneous updates
    virtual void take_damage(int);
    virtual void draw(N5110 &lcd);
};

const float skull_velocity_pattern[7] = {0, 0, 0, 0.8, 1.6, 2};

const char skull_sprite[4][2][23][21] = //skull_sprite[Face][mouthclose/mouthopen][Size_Y][Size_X]
{
    {   // Up
        {
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0},
            {0,0,0,1,1,2,1,2,2,2,2,2,2,2,2,2,1,1,0,0,0},
            {0,0,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,1,0},
            {1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1},
            {0,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,0},
            {0,1,2,2,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1,0},
            {0,0,1,2,1,1,1,1,1,2,2,2,1,1,1,1,1,2,1,0,0},
            {0,0,1,2,2,1,1,1,2,2,2,2,2,1,1,1,2,2,1,0,0},
            {0,0,0,1,2,2,1,1,1,2,2,2,1,1,1,2,2,1,0,0,0},
            {0,0,0,0,1,2,2,1,1,1,1,1,1,1,2,2,1,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0},
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
        },
        {
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0},
            {0,0,0,1,1,2,1,2,2,2,2,2,2,2,2,2,1,1,0,0,0},
            {0,0,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,1,0},
            {1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1},
            {1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1},
            {0,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,0},
            {0,1,2,2,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1,0},
            {0,0,1,2,1,1,1,1,1,2,2,2,1,1,1,1,1,2,1,0,0},
            {0,0,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,2,1,0,0},
            {0,0,1,2,2,1,1,1,1,2,2,2,1,1,1,1,2,2,1,0,0},
            {0,0,0,1,2,2,1,1,1,1,1,1,1,1,1,2,2,1,0,0,0},
            {0,0,0,0,1,2,1,1,1,1,1,1,1,1,1,2,1,0,0,0,0},
            {0,0,0,0,0,1,2,2,1,1,1,1,1,2,2,1,0,0,0,0,0},
            {0,0,0,0,0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0},
        }
    },
    {   // Right
        {
            {0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0},
            {0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0},
            {0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {1,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,1,2,2,1,0},
            {1,2,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,2,2,1,0},
            {1,2,2,2,2,1,1,1,2,2,2,1,1,1,2,2,1,1,2,1,0},
            {1,2,2,2,1,1,1,1,2,2,2,2,1,1,2,2,1,1,2,1,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,1,0},
            {0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,0,0,0,0,1,2,2,2,2,1,2,2,2,2,2,2,1,1,0,0},
            {0,0,0,0,0,0,1,2,2,2,1,1,2,1,2,2,2,1,1,0,0},
            {0,0,0,0,0,0,1,2,2,2,2,1,1,1,1,1,2,2,1,0,0},
            {0,0,0,0,0,0,1,1,2,2,2,2,2,1,2,1,1,1,1,0,0},
            {0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,1,2,1,0,0,0},
            {0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,1,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,1,1,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
        },
        {
            {0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0},
            {0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0},
            {0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {1,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,1,2,2,1,0},
            {1,2,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,2,2,1,0},
            {1,2,2,2,2,1,1,1,2,2,2,1,1,1,1,2,1,1,2,1,0},
            {1,2,2,2,1,1,1,1,2,2,2,2,1,1,1,1,1,1,2,1,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,1,0},
            {0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,0},
            {0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0},
            {0,0,0,0,0,0,1,2,2,1,1,1,2,2,2,2,2,1,1,0,0},
            {0,0,0,0,0,0,1,2,2,2,1,1,1,2,1,2,2,2,1,0,0},
            {0,0,0,0,0,0,1,2,2,2,2,1,0,1,2,1,1,2,1,0,0},
            {0,0,0,0,0,0,1,2,2,2,2,1,0,1,0,0,0,1,0,0,0},
            {0,0,0,0,0,0,0,1,2,2,2,2,1,2,1,1,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,1,1,2,2,2,2,1,2,1,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,1,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,1,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0},
        }
    },
    {   // Down
        {
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,1,1,2,1,1,0,0,0,0,0},
            {0,0,0,1,1,2,2,2,2,2,2,2,1,1,2,2,1,1,0,0,0},
            {0,0,1,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,1,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,0},
            {0,1,2,2,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1,0},
            {1,2,2,1,1,1,2,1,2,2,2,2,2,1,2,1,1,1,2,2,1},
            {1,2,2,1,1,2,2,2,1,2,2,2,1,2,2,2,1,1,2,2,1},
            {1,2,2,1,1,2,2,1,2,2,2,2,2,1,2,2,1,1,2,2,1},
            {1,2,2,2,1,1,1,2,2,2,1,2,2,2,1,1,1,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,1},
            {1,2,1,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,1,2,1},
            {0,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,0},
            {0,1,2,2,1,1,1,2,1,2,1,2,1,2,1,1,1,2,2,1,0},
            {0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,0,0},
            {0,0,1,2,2,1,1,2,1,2,1,2,1,2,1,1,2,2,1,0,0},
            {0,0,0,1,2,2,1,2,2,2,2,2,2,2,1,2,2,1,0,0,0},
            {0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0},
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
        },
        {
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,1,1,2,1,1,0,0,0,0,0},
            {0,0,0,1,1,2,2,2,2,2,2,2,1,1,2,2,1,1,0,0,0},
            {0,0,1,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,1,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,0},
            {0,1,2,2,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1,0},
            {1,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,1},
            {1,2,2,1,1,1,2,1,1,2,2,2,1,1,2,1,1,1,2,2,1},
            {1,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,1},
            {1,2,2,2,1,1,1,2,2,2,1,2,2,2,1,1,1,2,2,2,1},
            {1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,1},
            {1,2,1,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,1,2,1},
            {0,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,0},
            {0,1,2,2,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,1,0},
            {0,0,1,2,1,1,1,2,1,2,1,2,1,2,1,1,1,2,1,0,0},
            {0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,0,0},
            {0,0,1,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,0,0},
            {0,0,0,1,2,2,1,1,1,1,1,1,1,1,1,2,2,1,0,0,0},
            {0,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,0,0,0,0},
            {0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0},
            {0,0,0,0,0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0},
        }
    },
    {   // Left
        {
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0},
            {0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0},
            {0,0,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0},
            {1,2,2,1,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,1,0},
            {1,2,2,1,1,1,1,1,1,2,2,2,2,1,2,2,2,2,2,1,0},
            {1,2,1,1,2,2,1,1,1,2,2,2,1,1,1,2,2,2,2,1,0},
            {1,2,1,1,2,2,1,1,2,2,2,2,1,1,1,1,2,2,2,1,0},
            {1,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,0,0,0},
            {0,1,1,2,2,2,2,2,2,1,2,2,2,2,1,0,0,0,0,0,0},
            {0,1,1,2,2,2,1,2,1,1,2,2,2,1,0,0,0,0,0,0,0},
            {0,1,2,2,1,1,1,1,1,2,2,2,2,1,0,0,0,0,0,0,0},
            {0,1,1,1,1,2,1,2,2,2,2,2,1,1,0,0,0,0,0,0,0},
            {0,0,1,2,1,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0},
            {0,0,1,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0},
            {0,0,1,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
        },
        {
            {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
            {0,0,0,0,0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0},
            {0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0},
            {0,0,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0},
            {1,2,2,1,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,1,0},
            {1,2,2,1,1,1,1,1,1,2,2,2,2,1,2,2,2,2,2,1,0},
            {1,2,1,1,2,1,1,1,1,2,2,2,1,1,1,2,2,2,2,1,0},
            {1,2,1,1,1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,1,0},
            {1,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0},
            {0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,0,0,0},
            {0,1,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0},
            {0,1,1,2,2,2,2,2,1,1,1,2,2,1,0,0,0,0,0,0,0},
            {0,1,2,2,2,1,2,1,1,1,2,2,2,1,0,0,0,0,0,0,0},
            {0,1,2,1,1,0,1,0,1,2,2,2,2,1,0,0,0,0,0,0,0},
            {0,0,1,0,0,0,1,0,1,2,2,2,2,1,0,0,0,0,0,0,0},
            {0,0,0,0,1,1,2,1,2,2,2,2,1,0,0,0,0,0,0,0,0},
            {0,0,0,1,2,1,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0},
            {0,0,1,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,1,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0},
            {0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
        }
    },
    
};

const char skull_shadow_sprite[2][5][19] = 
{
    {
        {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
        {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
        {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
        {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0}
    },
    {
        {0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
        {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
        {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
        {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
        {0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0}
    }
};

#endif