diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-07-13 14:54:33 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-07-13 14:54:33 +0200 | 
| commit | 1799b91efa0e81c1f893d94851388820a458e113 (patch) | |
| tree | a8d8e7ad46748f2b32238197f8bc3b47ba140c26 /data | |
| parent | 14d731f06dd4e0aa5c6923c2c5ab096b3183a011 (diff) | |
| download | hurrycurry-1799b91efa0e81c1f893d94851388820a458e113.tar hurrycurry-1799b91efa0e81c1f893d94851388820a458e113.tar.bz2 hurrycurry-1799b91efa0e81c1f893d94851388820a458e113.tar.zst | |
add sushi bar and more recipes
Diffstat (limited to 'data')
| -rw-r--r-- | data/index.yaml | 1 | ||||
| -rw-r--r-- | data/maps/sushibar.yaml | 87 | ||||
| -rw-r--r-- | data/recipes/default.ts | 42 | 
3 files changed, 124 insertions, 6 deletions
| diff --git a/data/index.yaml b/data/index.yaml index 6cf8742a..407d9005 100644 --- a/data/index.yaml +++ b/data/index.yaml @@ -45,6 +45,7 @@ maps:      depot: { name: "Depot", players: 4, difficulty: 5 }      5star: { name: "5 Star", players: 10, difficulty: 5 }      auto_sushi: { name: "AutoSushi", players: 2, difficulty: 2 } +    sushibar: { name: "Sushi Bar", players: 2, difficulty: 2 }  recipes:      - none diff --git a/data/maps/sushibar.yaml b/data/maps/sushibar.yaml new file mode 100644 index 00000000..4023d873 --- /dev/null +++ b/data/maps/sushibar.yaml @@ -0,0 +1,87 @@ +# Hurry Curry! - a game about cooking +# Copyright 2024 metamuffin +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program.  If not, see <https://www.gnu.org/licenses/>. +# +map: +    - "*''''*''''*''''''''*''" +    - "'''*'''''''**''''''''*" +    - "''█████████████'X'''*'" +    - "''█RGHI..#c...█'''''**" +    - "''█T.....#c...d____'''" +    - "'*█F..S..#c...d____'*'" +    - "*'█L..S..#c...█''__'''" +    - "''█f..⌷..#c...█''__''*" +    - "*'█f..⌷..#c.~.█''__'*'" +    - "'*█o..C..#c...█''__''*" +    - "''█o..C..███d██''__'''" +    - "*'█s..........█''__'*'" +    - "'*█⌷ZZ⌷⌷⌷ggg⌷⌷█''__''*" +    - "*'█████████████''__'''" +    - "'''*'''''''''''''_!'''" +    - "'*''''''''''''''''''''" + +tiles: +    "⌷": counter +    "f": counter +    "#": counter +    "g": counter +    "t": table +    "w": counter-window +    "s": sink +    "o": oven +    "S": stove +    "b": book +    "C": cuttingboard +    "R": rice-crate +    "G": flour-crate +    "H": raw-steak-crate +    "I": tomato-crate +    "T": coconut-crate +    "F": fish-crate +    "L": strawberry-crate +    "X": trash +    "Z": freezer + +    "c": chair +    "~": floor +    ".": floor +    "'": grass +    "*": tree +    "!": path +    "_": path +    "d": door +    "▒": wall-window +    "█": wall + +items: +    "S": pot +    "#": plate +    "p": plate +    "g": glass +    "f": foodprocessor + +chef_spawn: "~" +customer_spawn: "!" + +walkable: +    - door +    - floor +    - chair +    - grass +    - path + +collider: +    - wall +    - wall-window +    - tree diff --git a/data/recipes/default.ts b/data/recipes/default.ts index a7ccfd1d..24122b5d 100644 --- a/data/recipes/default.ts +++ b/data/recipes/default.ts @@ -34,13 +34,15 @@ export function auto_trash() {      for (const ifull of all_items) {          let [i, ic] = get_container(ifull)          if (i == "plate") continue +        if (i == "glass") continue          if (i == "pot") continue          if (i == "foodprocessor") continue          if (i == "dirty") continue +        if (ic == "glass") ic = "glass"          if (ic == "plate") ic = "dirty-plate"          out({              action: "instant", -            tile: "trash", +            tile: ic == "glass" ? "sink" : "trash",              inputs: [ifull],              outputs: [ic]          }) @@ -66,13 +68,13 @@ export function cook(from: string, to?: string) {      out({ action: "passive", duration: 5, revert_duration: 10, tile: "stove", inputs: [o], outputs: ["burned-pot"], warn: true })  }  export function process(from: string, to?: string) { -    const i = from + "-foodprocessor" +    const i = from.endsWith("-foodprocessor") ? from : from + "-foodprocessor"      const o = (to ?? (from + "-juice")) + "-foodprocessor" -    out({ action: "instant", inputs: ["foodprocessor", from], outputs: [i] }) +    if (!from.endsWith("-foodprocessor")) out({ action: "instant", inputs: ["foodprocessor", from], outputs: [i] })      out({ action: "passive", duration: 5, inputs: [i], outputs: [o] })  }  export function bake(from: string, to?: string) { -    const o = (to ?? ("cooked-" + from)) +    const o = (to ?? ("baked-" + from))      out({ action: "passive", duration: 25, tile: "oven", inputs: [from], outputs: [o] })      out({ action: "passive", duration: 15, revert_duration: 20, tile: "oven", inputs: [o], outputs: ["burned"], warn: true })  } @@ -83,7 +85,7 @@ export function crate(item: string) {  export function get_container(ifull: string): [string, string | null] {      const iparts = ifull.split("-")      const ic = iparts.pop() -    if (ic && iparts.length && ["pot", "plate", "foodprocessor"].includes(ic)) return [iparts.join("-"), ic] +    if (ic && iparts.length && ["pot", "plate", "foodprocessor", "glass"].includes(ic)) return [iparts.join("-"), ic]      return [ifull, null]  } @@ -127,14 +129,15 @@ if (import.meta.main) {      crate("leek")      cut("tomato") -      cook("raw-steak", "steak") +    // bread      process("flour", "dough")      out({ action: "instant", inputs: ["dough-foodprocessor"], outputs: ["foodprocessor", "dough"] })      bake("dough", "bread")      cut("bread", "bread-slice", "bread-slice") +    // tomato soup      process("tomato")      combine("pot", "leek", "tomato-juice-foodprocessor")      cook("leek-tomato-juice-pot", "tomato-soup") @@ -142,5 +145,32 @@ if (import.meta.main) {      combine("plate", "steak-pot", "sliced-tomato", "bread-slice") +    crate("rice") +    crate("fish") +    crate("coconut") +    crate("strawberry") + +    // Rice and nigiri +    cut("fish") +    cook("rice") +    out({ action: "instant", inputs: ["sliced-fish", "cooked-rice-pot"], outputs: ["nigiri", "pot"] }) + +    // coconut milk and strawberry puree +    process("strawberry", "strawberry-puree") +    process("coconut", "milk") +    out({ action: "instant", inputs: ["milk-foodprocessor", "strawberry"], outputs: ["strawberry-milk-foodprocessor"] }) +    out({ action: "instant", inputs: ["strawberry-puree-foodprocessor", "coconut"], outputs: ["strawberry-milk-foodprocessor"] }) +    process("strawberry-milk-foodprocessor", "strawberrymilk") +    process("coconut-strawberry-puree-foodprocessor", "strawberrymilk") + +    // icecream +    out({ action: "passive", inputs: ["strawberrymilk-foodprocessor"], outputs: ["strawberry-icecream-foodprocessor"], tile: "freezer", duration: 20 }) +    out({ action: "instant", inputs: ["strawberry-icecream-foodprocessor", "plate"], outputs: ["foodprocessor", "strawberry-icecream-plate"] }) + +    // drinks +    out({ action: "instant", inputs: ["glass"], outputs: ["water-glass"], tile: "sink" }) +    out({ action: "instant", inputs: ["glass", "milk-foodprocessor"], outputs: ["milk-glass", "foodprocessor"] }) +    out({ action: "instant", inputs: ["glass", "strawberrymilk-foodprocessor"], outputs: ["strawberrymilk-glass", "foodprocessor"] }) +      auto_trash()  } | 
