From 1b6ecc22e77b7aa1fee16420b041c1dea1925052 Mon Sep 17 00:00:00 2001 From: riton Date: Sat, 29 Mar 2025 21:37:46 +0300 Subject: init repo --- tower.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tower.c (limited to 'tower.c') diff --git a/tower.c b/tower.c new file mode 100644 index 0000000..882fc60 --- /dev/null +++ b/tower.c @@ -0,0 +1,39 @@ +#include "tower.h" + +Sound BEAM_SOUND; + +tower_t make_tower(int damage, int range, int x, int y, int width, int height, Texture2D *texture){ + return (tower_t) { + .texture = texture, + .damage = damage, + .range = range, + .position = (Vector2){ x, y }, + .size = (Vector2){ width, height }, + .center = (Vector2){ x + width / 2, y + height / 2}, + .cooldown = 0.0, + .cooldown_max = 1.0 + }; +} + +tower_beam_t make_beam(Vector2 src, Vector2 dest, float live_time){ + return (tower_beam_t){ .src = src, .dest = dest, .live_time = live_time }; +} + +char _tower_cooldown_text[16]; +void draw_tower(tower_t *tower){ + DrawTexture(*tower->texture, tower->position.x, tower->position.y, WHITE); + /* DrawRectangleV(tower->position, tower->size, BLUE); */ + DrawCircleLinesV(tower->center, tower->range, LIGHTGRAY); + const Vector2 p = tower->position; + const Vector2 s = tower->size; + DrawRectangle(p.x, p.y - 15, s.x * ((tower->cooldown_max - tower->cooldown) / tower->cooldown_max), 5, BLUE); + DrawRectangleLines(p.x, p.y - 15, s.x, 5, BLACK); + /* snprintf(_tower_cooldown_text, 16, "%.2f", tower->cooldown); + DrawText(_tower_cooldown_text, tower->position.x + (tower->size.x / 2), tower->position.y - 25, 10, LIGHTGRAY); */ +} + +void update_tower(tower_t *t, float dt){ + if (t->cooldown > 0){ + t->cooldown -= dt; + } +} -- cgit v1.2.3