#ifndef __CONST_H__ #define __CONST_H__ #include "system/vga.h" #define TILE_SIZE (20) #define ARENA_WIDTH_TILES (10) #define ARENA_HEIGHT_TILES (10) #define COLLISION_GRID_SIZE (ARENA_WIDTH_TILES / 2 * TILE_SIZE) #define MOUSE_DISTANCE (32) #define RABBIT_MOTION_DRAG (2) #define RABBIT_MOTION_ACCELERATION (5) #define RABBIT_MOTION_MAX_SPEED (10) #define RABBIT_MOTION_VELOCITY_DECAY (5) #define RABBIT_BULLET_LIMIT (9) #define RABBIT_BULLET_VELOCITY ((RABBIT_MOTION_ACCELERATION / 2) + 1) #define RABBIT_BULLET_COOLDOWN (10) #define RABBIT_BULLET_HEIGHT_START (8) #define RABBIT_BULLET_SHOTGUN_SPREAD (15) #define RABBIT_HEALTH_MAX (100) #define MOUSE_LIMIT_TOP (TILE_SIZE) #define MOUSE_LIMIT_BOTTOM ((ARENA_HEIGHT_TILES - 1) * TILE_SIZE - 1) #define MOUSE_LIMIT_LEFT (TILE_SIZE) #define MOUSE_LIMIT_RIGHT ((ARENA_WIDTH_TILES - 1) * TILE_SIZE - 1) #define RAD2DEG (180/3.14159) #define DEG2RAD (3.14159/180) #define ENEMY_MAX_COUNT (50) #define ENEMY_BULLET_LIMIT (ENEMY_MAX_COUNT / 4) #define ENEMY_MOVE_SPEED (1) #define ENEMY_MOVE_DELAY (3) #define ENEMY_BULLET_VELOCITY (RABBIT_BULLET_VELOCITY - 2) #define ENEMY_FIRE_MIN_DELAY (45) #define ENEMY_FIRE_VARIABLE_DELAY (60) #define ENEMY_BULLET_DAMAGE (3) #define ENEMY_COLLISION_DAMAGE (6) #define ENEMY_KILL_HEALTH_GAIN (1) #define ENEMY_HIT_POINT_DIFFICULTY_INCREASE_EVERY (4) #define BASE_ENEMY_SPAWN_COOLDOWN (30) #define DIFFICULTY_SPAWN_COOLDOWN_REDUCTION (2) #define MINIMUM_ENEMY_SPAWN_COOLDOWN (3) #define VARIABLE_ENEMY_SPAWN_COOLDOWN (10) #define POWERUP_RESPAWN_COOLDOWN_PER_LEVEL (10) #define SHOTGUN_ROUNDS_PER_LEVEL (25) #define MAX_DIFFICULTY (40) #define BASE_KILLS (30) #define KILLS_NEEDED_FOR_NEXT_LEVEL_MULTIPLIER (1.25) #define HIT_POINT_DIFFICULTY_INCREASE_DELAY (4) #define WEAPON_TYPE_SINGLE_SHOT_GUN (0) #define WEAPON_TYPE_SPREAD_SHOT_GUN (1) #define WEAPON_TYPE_BEAM_SHOT_GUN (2) #define POWERUP_TYPE_SHOTGUN (1) #define POWERUP_TYPE_BEAM_WEAPON (2) #define KNOCKBACK_DISTANCE (3) extern int difficultyBands[]; extern int hitPointRanges[MAX_DIFFICULTY][4]; extern struct SpriteBounds bounds; extern struct CompiledSpriteRender rabbit, mouse, bullet, enemy, enemyBullet, shotgun, beam; void buildDifficultyBands(); void buildHitPointRages(); #endif