added cocktails and wine
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 9 Mar 2022 20:02:31 +0000 (14:02 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 9 Mar 2022 20:02:31 +0000 (14:02 -0600)
docs/todo.txt
run_tree/assets/images/spritesheet.png
run_tree/scenes/default.items
run_tree/scenes/level1.scene
run_tree/scenes/quick_save_new.scene
src/entity/components/dispenser.onyx

index cb9e6d92d79589659f7443e5bda90e2efaa3f9a9..02a65ad7ab771f69e239505672acabf20ce0ba3b 100644 (file)
@@ -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
+
index af1d3e9878bb74c59ff6ff321c4b42e46934283a..8fa6a6c169d34024d4e6aafd7b66e4c37add492a 100644 (file)
Binary files a/run_tree/assets/images/spritesheet.png and b/run_tree/assets/images/spritesheet.png differ
index 21ab5ad182a1d52161769cdce000028eee6e56ee..eb833bd283d4eca0badb37fca0825c7c94e61018 100644 (file)
@@ -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
index 890018614f38093ad3fe648118c32a3ea58de921..85e726d4828624f208222880f798ff29a4c32f36 100644 (file)
@@ -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
index 51e4d35dc42415df46addb57d1529d1394d9b8f3..eb5fa72272eca8ccb5c380661cadd25bba23bce4 100644 (file)
@@ -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
index add16f5b81bdfefa9e0bb935a5ffe3fea2553b55..27e11694796ff936c93b7d525290e23522dfa55b 100644 (file)
@@ -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;