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, }