Files
tower-defense-prototype/game/constants.odin
T

72 lines
1.7 KiB
Odin

package game
import rl "vendor:raylib"
MAP_W :: 30 // map width in tiles
MAP_H :: 20 // map height in tiles
TILE_SIZE :: 32 // size of tiles in pixels
SCREEN_W :: MAP_W * TILE_SIZE
SCREEN_H :: MAP_H * TILE_SIZE
DEFAULT_WINDOW_W :: 1280
DEFAULT_WINDOW_H :: 720
MAX_ENEMIES :: 64
MAX_WAVES :: 5
MAX_TOWERS :: 32
MAX_PROJECTILES :: 64
PROJECTILE_SPEED :: 280 // pixels per second
PROJECTILE_HIT_RADIUS :: 10
CANNON_PROJECTILES_SPEED :: 320.0
OVERLAY_BAR_H :: 28
OVERLAY_PADDING :: 6
OVERLAY_BAR_COLOR :: rl.Color{20, 24, 20, 200}
OVERLAY_GOLD_COLOR :: rl.Color{255, 215, 80, 255}
OVERLAY_TEXT_COLOR :: rl.Color{240, 240, 230, 255}
OVERLAY_FONT_SIZE :: 18
CONTROL_BAR_H :: 40
CONTROL_BAR_BG :: rl.Color{30, 55, 30, 220}
CONTROL_BUTTON_COLOR :: rl.Color{60, 120, 60, 255}
CONTROL_BUTTON_HOVER :: rl.Color{60, 150, 60, 255}
CONTROLS_SHOP_IDLE :: rl.Color{45, 75, 45, 255}
CONTROL_SHOP_SELECTED :: rl.Color{70, 110, 70, 255}
CONTROLS_SHOP_HOVER :: rl.Color{90, 130, 90, 255}
ICE_SLOW_DURATION :: 2.5
ICE_SLOW_FACTOR :: 0.5
ENEMY_LABEL_COLOR :: rl.Color{255, 200, 200, 255}
// starting values for the game
STARTING_BASE_HEALTH :: 20
STARTING_GOLD :: 100
//controls constants
BOTTOM_BAR_Y :: SCREEN_H - CONTROL_BAR_H
ARCHER_BUTTON_W :: 120
START_WAVE_BUTTON_W :: 110
CONTROLS_BUTTON_GAP :: 12
CONTROLS_BUTTON_H :: 24
CONTROLS_BUTTON_Y :: BOTTOM_BAR_Y + 8
CONTROLS_BUTTON_X :: (SCREEN_W - (ARCHER_BUTTON_W + CONTROLS_BUTTON_GAP + START_WAVE_BUTTON_W)) / 2
ARCHER_BUTTON_RECT :: rl.Rectangle {
f32(CONTROLS_BUTTON_X),
f32(CONTROLS_BUTTON_Y),
ARCHER_BUTTON_W,
CONTROLS_BUTTON_H,
}
START_WAVE_BUTTON_RECT :: rl.Rectangle {
f32(CONTROLS_BUTTON_X + ARCHER_BUTTON_W + CONTROLS_BUTTON_GAP),
f32(CONTROLS_BUTTON_Y),
START_WAVE_BUTTON_W,
CONTROLS_BUTTON_H,
}