From: Brendan Hansen Date: Wed, 9 Mar 2022 20:02:31 +0000 (-0600) Subject: added cocktails and wine X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=25a99be6ff69822176fe8845f34918131130b9e8;p=bar-game.git added cocktails and wine --- diff --git a/docs/todo.txt b/docs/todo.txt index cb9e6d9..02a65ad 100644 --- a/docs/todo.txt +++ b/docs/todo.txt @@ -7,3 +7,7 @@ implemented. * Patrons should have a customizable state machine that allows for customizable behavior, without having to change the code. +* Time of day - "Level" is one in-game day + +* More items to order + diff --git a/run_tree/assets/images/spritesheet.png b/run_tree/assets/images/spritesheet.png index af1d3e9..8fa6a6c 100644 Binary files a/run_tree/assets/images/spritesheet.png and b/run_tree/assets/images/spritesheet.png differ diff --git a/run_tree/scenes/default.items b/run_tree/scenes/default.items index 21ab5ad..eb833bd 100644 --- a/run_tree/scenes/default.items +++ b/run_tree/scenes/default.items @@ -22,3 +22,26 @@ sprite.color.g = 1 sprite.color.b = 1 sprite.color.a = 1 +:cocktail +name="Cocktail" +production_cost=7 +sell_value=12 +sprite.sheet="./assets/images/spritesheet.png" +sprite.pos = 32 0 +sprite.size = 16 16 +sprite.color.r = 1 +sprite.color.g = 1 +sprite.color.b = 1 +sprite.color.a = 1 + +:wine +name="Wine" +production_cost=5 +sell_value=9 +sprite.sheet="./assets/images/spritesheet.png" +sprite.pos = 48 0 +sprite.size = 16 16 +sprite.color.r = 1 +sprite.color.g = 1 +sprite.color.b = 1 +sprite.color.a = 1 diff --git a/run_tree/scenes/level1.scene b/run_tree/scenes/level1.scene index 8900186..85e726d 100644 --- a/run_tree/scenes/level1.scene +++ b/run_tree/scenes/level1.scene @@ -369,7 +369,7 @@ color.a = 1.0000 [Background] id = 196 flags = 0 -pos.x = 233.0000 +pos.x = 232.0000 pos.y = 48.0000 size.x = 432.0000 size.y = 128.0000 @@ -1420,7 +1420,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = false +taken = true :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -1599,6 +1599,63 @@ color.a = 1.0000 :DispenserComponent item = "beer" max_timeout = 2.0000 +draw_item = true + +[Custom] +id = 334 +flags = 1 +pos.x = 176.0000 +pos.y = 32.0000 +size.x = 32.0000 +size.y = 32.0000 +:SpriteRenderComponent +sprite.sheet = "./assets/images/spritesheet.png" +sprite.pos.x = 0.0000 +sprite.pos.y = 32.0000 +sprite.size.x = 32.0000 +sprite.size.y = 32.0000 +sprite.color.r = 1.0000 +sprite.color.g = 1.0000 +sprite.color.b = 1.0000 +sprite.color.a = 1.0000 +:RenderComponent +layer = 10 +color.r = 1.0000 +color.g = 1.0000 +color.b = 1.0000 +color.a = 1.0000 +:DispenserComponent +item = "wine" +max_timeout = 2.0000 +draw_item = true + +[Custom] +id = 325 +flags = 3 +pos.x = 208.0000 +pos.y = 32.0000 +size.x = 32.0000 +size.y = 32.0000 +:SpriteRenderComponent +sprite.sheet = "./assets/images/spritesheet.png" +sprite.pos.x = 0.0000 +sprite.pos.y = 32.0000 +sprite.size.x = 32.0000 +sprite.size.y = 32.0000 +sprite.color.r = 1.0000 +sprite.color.g = 1.0000 +sprite.color.b = 1.0000 +sprite.color.a = 1.0000 +:RenderComponent +layer = 10 +color.r = 1.0000 +color.g = 1.0000 +color.b = 1.0000 +color.a = 1.0000 +:DispenserComponent +item = "cocktail" +max_timeout = 2.0000 +draw_item = true [Door] id = 13 @@ -1644,6 +1701,7 @@ color.a = 1.0000 :DispenserComponent item = "burger" max_timeout = 4.0000 +draw_item = true [Player] id = 152 @@ -1675,8 +1733,8 @@ color.a = 1.0000 [Player] id = 12 flags = 2 -pos.x = 344.0000 -pos.y = 232.0000 +pos.x = 343.9996 +pos.y = 231.9998 size.x = 16.0000 size.y = 32.0000 :MovementComponent @@ -1687,8 +1745,8 @@ controls.right = 68 controls.interact = 70 controls.pick_up = 71 facing = 3 -velocity.x = -0.0015 -velocity.y = -0.0007 +velocity.x = 0.0000 +velocity.y = 0.0000 speed = 800.0000 :PlayerComponent holding = 0 @@ -1729,7 +1787,7 @@ spawned_size.y = 32.0000 enabled = true spawn_timeout_min = 5.0000 spawn_timeout_max = 10.0000 -spawn_timeout = 1.0598 +spawn_timeout = 2.5283 [Custom] id = 163 diff --git a/run_tree/scenes/quick_save_new.scene b/run_tree/scenes/quick_save_new.scene index 51e4d35..eb5fa72 100644 --- a/run_tree/scenes/quick_save_new.scene +++ b/run_tree/scenes/quick_save_new.scene @@ -37,7 +37,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 32.0000 @@ -64,7 +64,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -118,7 +118,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 32.0000 @@ -145,7 +145,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -475,7 +475,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -502,7 +502,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -529,7 +529,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -556,7 +556,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -583,7 +583,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -772,7 +772,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 32.0000 @@ -799,7 +799,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 32.0000 @@ -1042,7 +1042,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 32.0000 @@ -1339,7 +1339,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -1420,7 +1420,7 @@ size.x = 16.0000 size.y = 32.0000 :FurnitureComponent furniture_type = 0 -taken = false +taken = true :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 48.0000 @@ -1474,7 +1474,7 @@ size.x = 24.0000 size.y = 24.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 112.0000 @@ -1501,7 +1501,7 @@ size.x = 24.0000 size.y = 24.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 112.0000 @@ -1555,7 +1555,7 @@ size.x = 24.0000 size.y = 24.0000 :FurnitureComponent furniture_type = 0 -taken = true +taken = false :SpriteRenderComponent sprite.sheet = "./assets/images/spritesheet.png" sprite.pos.x = 112.0000 @@ -1601,10 +1601,10 @@ item = "beer" max_timeout = 2.0000 [Patron] -id = 330 +id = 326 flags = 3 -pos.x = 696.0000 -pos.y = 176.0000 +pos.x = 383.1329 +pos.y = 578.2564 size.x = 16.0000 size.y = 32.0000 :RenderComponent @@ -1614,343 +1614,41 @@ color.g = 0.0000 color.b = 0.0000 color.a = 1.0000 :PatronComponent -state = 1 -target = 278 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 341 -flags = 3 -pos.x = 696.0000 -pos.y = 96.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 277 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 344 -flags = 3 -pos.x = 696.0000 -pos.y = 416.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 281 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 346 -flags = 3 -pos.x = 696.0000 -pos.y = 336.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 280 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 347 -flags = 3 -pos.x = 284.0000 -pos.y = 124.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 185 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 350 -flags = 3 -pos.x = 184.0000 -pos.y = 336.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 31 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 351 -flags = 3 -pos.x = 236.0000 -pos.y = 124.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 186 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 352 -flags = 3 -pos.x = 248.0000 -pos.y = 416.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 230 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 354 -flags = 3 -pos.x = 648.0000 -pos.y = 256.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 269 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 356 -flags = 3 -pos.x = 648.0000 -pos.y = 176.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 268 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 358 -flags = 3 -pos.x = 136.0000 -pos.y = 256.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 40 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 360 -flags = 3 -pos.x = 140.0000 -pos.y = 124.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 188 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 362 -flags = 3 -pos.x = 184.0000 -pos.y = 256.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 41 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 363 -flags = 3 -pos.x = 136.0000 -pos.y = 336.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 30 -order_item = "burger" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 - -[Patron] -id = 364 -flags = 3 -pos.x = 584.0000 -pos.y = 416.0000 -size.x = 16.0000 -size.y = 32.0000 -:RenderComponent -layer = 5 -color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 -color.a = 1.0000 -:PatronComponent -state = 1 -target = 173 -order_item = "burger" +state = 0 +target = 176 +order_item = "cocktail" order_show_animation = 0.0000 holding = 0 consume_timeout = 0.0000 annoy_timeout = 0.0000 +walk_speed = 100.0000 -[Patron] -id = 365 +[Custom] +id = 325 flags = 3 -pos.x = 496.9649 -pos.y = 481.9315 -size.x = 16.0000 +pos.x = 208.0000 +pos.y = 32.0000 +size.x = 32.0000 size.y = 32.0000 +:SpriteRenderComponent +sprite.sheet = "./assets/images/spritesheet.png" +sprite.pos.x = 32.0000 +sprite.pos.y = 0.0000 +sprite.size.x = 16.0000 +sprite.size.y = 16.0000 +sprite.color.r = 1.0000 +sprite.color.g = 1.0000 +sprite.color.b = 1.0000 +sprite.color.a = 1.0000 :RenderComponent -layer = 5 +layer = 10 color.r = 1.0000 -color.g = 0.0000 -color.b = 0.0000 +color.g = 1.0000 +color.b = 1.0000 color.a = 1.0000 -:PatronComponent -state = 0 -target = 279 -order_item = "beer" -order_show_animation = 0.0000 -holding = 0 -consume_timeout = 0.0000 -annoy_timeout = 0.0000 +:DispenserComponent +item = "cocktail" +max_timeout = 2.0000 [Door] id = 13 @@ -2000,8 +1698,8 @@ max_timeout = 4.0000 [Player] id = 152 flags = 2 -pos.x = 398.4127 -pos.y = 262.9740 +pos.x = 392.0000 +pos.y = 232.0000 size.x = 16.0000 size.y = 32.0000 :MovementComponent @@ -2011,8 +1709,8 @@ controls.left = 263 controls.right = 262 controls.interact = 44 controls.pick_up = 46 -facing = 2 -velocity.x = -0.0000 +facing = 1 +velocity.x = 0.0000 velocity.y = 0.0000 speed = 800.0000 :PlayerComponent @@ -2027,8 +1725,8 @@ color.a = 1.0000 [Player] id = 12 flags = 2 -pos.x = 309.5813 -pos.y = 370.5432 +pos.x = 343.9997 +pos.y = 231.9998 size.x = 16.0000 size.y = 32.0000 :MovementComponent @@ -2038,9 +1736,9 @@ controls.left = 65 controls.right = 68 controls.interact = 70 controls.pick_up = 71 -facing = 1 -velocity.x = -0.6185 -velocity.y = -0.6127 +facing = 3 +velocity.x = 0.0000 +velocity.y = 0.0000 speed = 800.0000 :PlayerComponent holding = 0 @@ -2081,7 +1779,7 @@ spawned_size.y = 32.0000 enabled = true spawn_timeout_min = 5.0000 spawn_timeout_max = 10.0000 -spawn_timeout = 3.6412 +spawn_timeout = 6.4949 [Custom] id = 163 @@ -2091,7 +1789,7 @@ pos.y = 0.0000 size.x = 16.0000 size.y = 16.0000 :MoneyComponent -money = 152 +money = 100 money_sprite.sheet = "./assets/images/spritesheet.png" money_sprite.pos.x = 0.0000 money_sprite.pos.y = 240.0000 diff --git a/src/entity/components/dispenser.onyx b/src/entity/components/dispenser.onyx index add16f5..27e1169 100644 --- a/src/entity/components/dispenser.onyx +++ b/src/entity/components/dispenser.onyx @@ -12,6 +12,7 @@ DispenserComponent :: struct { #tag Editor_Custom_Field.{render_item_picker} item: str; max_timeout := 2.0f; + draw_item := true; #tag Entity_Store.Skip timeout := 0.0f; @@ -65,9 +66,19 @@ DispenserComponent :: struct { } post_render :: (use this: ^DispenserComponent, entity: ^Entity) { - if timeout != 0 { - rect := entity->get_rect(); + rect := entity->get_rect(); + + if draw_item { + item_info := item_store->get_item(item); + r := rect; + r.w = 16; + r.h = 16; + r.x += (rect.w - r.w) / 2; + r.y += (rect.h - r.h) / 2; + item_info.sprite->render(r); + } + if timeout != 0 { percent := (max_timeout - timeout) / max_timeout; rect.y += (1 - percent) * rect.h; rect.h *= percent;