Repository: Goob-Station/Goob-Station
Pull request #2757: Add a Craftable Boomerang
Author: login: Arraydeess14
Labels: name: Changes: Sprites
name: size/M
description: Denotes a PR that changes 100-999 lines.
name: Changes: No C#
name: S: Untriaged
description: A professional will be with you shortly.
name: S: Needs Review
Created: 2025-05-13T04:41:23Z | Merged: 2025-05-24T22:12:38Z

<!--
SPDX-FileCopyrightText: 2021 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
SPDX-FileCopyrightText: 2021 mirrorcult <lunarautomaton6@gmail.com>
SPDX-FileCopyrightText: 2022 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
SPDX-FileCopyrightText: 2022 Kara <lunarautomaton6@gmail.com>
SPDX-FileCopyrightText: 2023 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
SPDX-FileCopyrightText: 2023 Kevin Zheng <kevinz5000@gmail.com>
SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>

SPDX-License-Identifier: AGPL-3.0-or-later
-->

<!-- Guidelines: https://docs.spacestation14.io/en/getting-started/pr-guideline -->
<!-- NOTE: All code submitted to this repository is ALWAYS licensed under the AGPL-3.0-or-later license. 
The REUSE Specification headers or separate .license files indicate a secondary license (e.g., MPL or MIT) solely to facilitate 
integration for projects that do not use the AGPL license. This secondary license does not replace the fact that AGPL-3.0-or-later remains the primary and binding license. 
Uncomment and modify the following line if you wish to change the license from the default of AGPL.-->
<!--- LICENSE: AGPL -->
## About the PR
<!-- What did you change? -->
Added Craftable a Boomerang
## Why / Balance
<!-- Discuss how this would affect game balance or explain why it was changed. Link any relevant discussions or issues. -->
A cool new thing to craft. Probably won't change combat a whole lot
## Technical details
<!-- Summary of code changes for easier review. -->
Added Boomerangs. Craftable with 5 wood. they do 4 blunt damage and 10 stamina damage.
## Media
<!-- Attach media if the PR makes ingame changes (clothing, items, features, etc).
Small fixes/refactors are exempt. Media may be used in SS14 progress reports with credit. -->
link to a video showcasing the boomerang in action (since vid is over 10 Mb)
https://discord.com/channels/1202734573247795300/1202820834104844378/1371705918504566824
(Video Slightly out of date)

## Requirements
<!-- Confirm the following by placing an X in the brackets [X]: -->
- [X] I have read and am following the [Pull Request and Changelog Guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
- [X] I have added media to this PR or it does not require an ingame showcase.
<!-- You should understand that not following the above may get your PR closed at maintainer’s discretion -->

## Breaking changes
<!-- List any breaking changes, including namespaces, public class/method/field changes, prototype renames; and provide instructions for fixing them.
This will be posted in #codebase-changes. -->

**Changelog**
<!-- Add a Changelog entry to make players aware of new features or changes that could affect gameplay.
Make sure to read the guidelines and take this Changelog template out of the comment block in order for it to show up.
Changelog must have a :cl: symbol, so the bot recognizes the changes and adds them to the game's changelog. -->
<!--
:cl:
- add: Added fun!
- remove: Removed fun!
- tweak: Changed fun!
- fix: Fixed fun!
-->
:cl: Arraydeess
- add: Added a Craftable Boomerang!


Diff:
diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
new file mode 100644
index 000000000000..289563d6cc0b
--- /dev/null
+++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
@@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: boomerang
+  parent: BaseItem
+  name: boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 4
+  - type: StaminaDamageOnCollide
+    damage: 10 
+  - type: Item
+    size: Small
+  - type: Boomerang # Goobstation
+  - type: Construction
+    graph: boomerangGraph
+    node: boomerangFinish
+
+- type: entity
+  id: boomerangIncomplete
+  parent: BaseItem
+  name: incomplete boomerang
+  description: Apply knife to get a fresh boomerang.
+  components:
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi
+    layers:
+    - state: icon
+  - type: Item
+    size: Small
+  - type: Construction
+    graph: boomerangGraph
+    node: boomerangIncomplete
\ No newline at end of file
diff --git a/Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml b/Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
new file mode 100644
index 000000000000..161e3d41db38
--- /dev/null
+++ b/Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
@@ -0,0 +1,25 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: constructionGraph
+  id: boomerangGraph
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: boomerangIncomplete
+          steps:
+            - material: WoodPlank
+              amount: 5
+              doAfter: 2
+    - node: boomerangIncomplete 
+      entity: boomerangIncomplete # Create a piece of wood to work with
+      edges: 
+        - to: boomerangFinish
+          steps:
+            - tool: Slicing     # Carve the boomerang out of the wood
+              doAfter: 4
+    - node: boomerangFinish
+      entity: boomerang
\ No newline at end of file
diff --git a/Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml b/Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
index bcc212c183af..23b7c465d6bc 100644
--- a/Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
+++ b/Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
@@ -1,5 +1,7 @@
 # SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
 # SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 Arraydeess14 <87253287+Arraydeess14@users.noreply.github.com>
 # SPDX-FileCopyrightText: 2025 BeBright <98597725+be1bright@users.noreply.github.com>
 # SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
 # SPDX-FileCopyrightText: 2025 GreenArg7 <GreenArc12@outlook.com>
@@ -17,4 +19,15 @@
   category: construction-category-weapons
   description: An extremely slippery toy sword made from bananium.
   icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_bananium.rsi, state: icon }
+  objectType: Item
+  
+- type: construction
+  name: boomerang
+  id: boomerang
+  graph: boomerangGraph
+  startNode: start
+  targetNode: boomerangFinish
+  category: construction-category-weapons
+  description: A makeshift boomerang! Now if you only had some balloons to throw it at. # BTD6 reference
+  icon: { sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi, state: icon }
   objectType: Item
\ No newline at end of file
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/icon.png b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/icon.png
new file mode 100644
index 000000000000..b76c5a397ee7
Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/icon.png differ
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/meta.json b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/meta.json
new file mode 100644
index 000000000000..5f34f2c28f04
--- /dev/null
+++ b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+    "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Created by Arraydeess14",
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "states": [
+        {
+            "name": "icon"
+        }
+    ]
+}
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/icon.png b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/icon.png
new file mode 100644
index 000000000000..70252c0e0630
Binary files /dev/null and b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/icon.png differ
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/meta.json b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/meta.json
new file mode 100644
index 000000000000..d6c33a203150
--- /dev/null
+++ b/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Created by Arraydeess14",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "icon"
+    }
+  ]
+}
\ No newline at end of file


Reviews:
user: login: coderabbitai[bot]
body: **Actionable comments posted: 2**

<details>
<summary>🧹 Nitpick comments (4)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary><blockquote>

`18-18`: **ADD A TRAILING NEWLINE, FORSAFE.** Many YAML parsers and linters expect a final newline—append one to silence warnings.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 18-18: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (1)</summary><blockquote>

`28-28`: **ADD A TRAILING NEWLINE, M’LORD.** A final newline prevents YAMLlint errors and keeps consistency.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 28-28: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (2)</summary><blockquote>

`56-56`: **UNIFY THE NAME STYLE WITH THINE OTHER RECIPES.** Other recipes use lowercase display names (e.g., `bananium sword`); consider changing `name: Boomerang` to `name: boomerang` for consistency.

---

`64-64`: **ADD A TRAILING NEWLINE, GOOD SIR.** Appending one will stave off YAML parsing warnings and align with project conventions.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 64-64: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between afbc63faa84aae4a624d7604d4fb4114b265b8f6 and a85db841fcf4d8f00153c058b67648891ae61c3c.

</details>

<details>
<summary>⛔ Files ignored due to path filters (1)</summary>

* `Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/icon.png` is excluded by `!**/*.png`

</details>

<details>
<summary>📒 Files selected for processing (4)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml` (1 hunks)
* `Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml` (1 hunks)
* `Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml` (2 hunks)
* `Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/meta.json` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml</summary>

[error] 18-18: no new line character at the end of file

(new-line-at-end-of-file)

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml</summary>

[error] 64-64: no new line character at the end of file

(new-line-at-end-of-file)

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml</summary>

[error] 28-28: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (2)</summary>

* GitHub Check: Test Packaging
* GitHub Check: build (ubuntu-latest)

</details>

<details>
<summary>🔇 Additional comments (4)</summary><blockquote>

<details>
<summary>Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/meta.json (1)</summary>

`1-14`: **VERILY, THE JSON METADATA STANDS TRUE.** The file correctly defines version, license, creator credits, sprite dimensions, and the solitary “icon” state required for thine boomerang’s visage.

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary>

`8-17`: **BOOMERANG GRAPH IS MOLDED PROPERLY.** The `id`, `start`, and `graph` nodes rightly consume 5 WoodPlank over 2 time units and yield the `Boomerang`. All steps align with project conventions.

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (1)</summary>

`8-28`: **THE BOOMERANG ENTITY IS WELL-FORGED.** Inheritance from `BaseItem`, sprite, damage components, size, custom `Boomerang`, and construction linkage to `boomerangGraph` are all soundly specified.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 28-28: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary>

`55-64`: **BOOMERANG RECIPE INJECTED CORRECTLY.** The new construction entry references `boomerangGraph`, uses the proper sprite icon, categorizes under weapons, and matches the crafting flow.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 64-64: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:02:24Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:07:26Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:07:38Z
user: login: coderabbitai[bot]
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:09:51Z
user: login: coderabbitai[bot]
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:09:58Z
user: login: pheenty
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:24:11Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:25:58Z
user: login: pheenty
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:30:29Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:31:05Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (3)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary><blockquote>

`18-18`: **Add a missing newline at end of file**  
A trailing newline is absent, causing a YAMLlint warning.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 18-18: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (1)</summary><blockquote>

`28-28`: **Add a missing newline at end of file**  
A trailing newline is absent, triggering a YAMLlint warning.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 28-28: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary><blockquote>

`64-64`: **Add a missing newline at end of file**  
A trailing newline is missing, causing a YAMLlint error.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 64-64: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between a85db841fcf4d8f00153c058b67648891ae61c3c and c2e54ba9461da336bccae0040a3c82a498605bcd.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml` (1 hunks)
* `Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml` (1 hunks)
* `Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧠 Learnings (1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary>

```
Learnt from: Arraydeess14
PR: Goob-Station/Goob-Station#2757
File: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml:6-7
Timestamp: 2025-05-13T05:09:50.026Z
Learning: In the Space Station 14 codebase, construction graph definitions in YAML files should be formatted as list items at the root level of the document, with a leading hyphen before "type: constructionGraph".
```

</details>

</details><details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml</summary>

[error] 28-28: no new line character at the end of file

(new-line-at-end-of-file)

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml</summary>

[error] 18-18: no new line character at the end of file

(new-line-at-end-of-file)

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml</summary>

[error] 64-64: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (2)</summary>

* GitHub Check: build (ubuntu-latest)
* GitHub Check: Test Packaging

</details>

<details>
<summary>🔇 Additional comments (8)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary>

`6-18`: **Marvelous Construction Graph Format**  
The leading hyphen correctly declares the graph as a list item at the document root, in accordance with our arcane YAML traditions.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 18-18: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (5)</summary>

`6-10`: **Entity Header Looks Sound**  
The `id`, `parent`, `name`, and `description` fields follow established naming conventions and lore.

---

`11-16`: **Flight and Visual Components Approved**  
The `LandAtCursor` and `Sprite` components are properly declared with correct sprite path and icon state.

---

`17-22`: **Spell Design Query: Dual Damage**  
Thy boomerang deals both blunt and stamina damage; confirm this dual effect is intended, lest targets be felled too swiftly or bled of stamina unjustly.

---

`23-25`: **Item & Boomerang Runes Valid**  
The `Item` size and custom `Boomerang` component are declared correctly, ensuring proper inventory and behavior.

---

`26-28`: **Construction Component Linked True**  
The `Construction` component references `boomerangGraph` and `boomerangFinish` properly; the crafting rite is well-bound.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 28-28: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (2)</summary>

`55-61`: **Recipe Entry Welcomes Boomerang**  
The `type: construction`, `id`, `graph`, and node references align correctly with the new boomerangGraph.

---

`62-64`: **A BTD6 Ode Gloriously Included**  
Description, icon state, and `objectType` fields are properly specified for the boomerang recipe.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 64-64: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T05:37:57Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:13:48Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 1**

<details>
<summary>♻️ Duplicate comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary><blockquote>

`22-22`: **KNIFE OVER SLICING!** As foretold by past counsel, the ritual demands a `Knife` tool rather than `Slicing`. Align the incantation:
```diff
-            - tool: Slicing     # Carve the boomerang out of the wood
+            - tool: Knife       # Carve the boomerang out of the wood
```

</blockquote></details>

</blockquote></details>

<details>
<summary>🧹 Nitpick comments (4)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (2)</summary><blockquote>

`22-22`: **BANISH THE TRAILING SPACE.** A stray space follows the value `10`; purge it to appease the linting spirits:
```diff
-    damage: 10 
+    damage: 10
```

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

</details>

</details>

---

`44-44`: **ENSURE THE FINAL NEWLINE.** Bestow a newline at the scroll’s end to satisfy POSIX and YAML’s ancient laws.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (2)</summary><blockquote>

`17-19`: **TRIM WAYWARD WHITESPACE.** Lines 17 and 19 are haunted by trailing spaces; excise them to calm the YAML linting golems:
```diff
-    - node: boomerangIncomplete 
+    - node: boomerangIncomplete
-      edges: 
+      edges:
```

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 17-17: trailing spaces

(trailing-spaces)

---

[error] 19-19: trailing spaces

(trailing-spaces)

</details>

</details>

---

`25-25`: **FINAL NEWLINE REQUIRED.** End the scroll with a newline character to honor YAML’s final decree.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 25-25: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between c2e54ba9461da336bccae0040a3c82a498605bcd and c9509ec0925a791830425fab791b938c83f80347.

</details>

<details>
<summary>⛔ Files ignored due to path filters (1)</summary>

* `Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/icon.png` is excluded by `!**/*.png`

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml` (1 hunks)
* `Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml` (1 hunks)
* `Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/meta.json` (1 hunks)

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (1)</summary>

* Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/meta.json

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧠 Learnings (1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary>

```
Learnt from: Arraydeess14
PR: Goob-Station/Goob-Station#2757
File: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml:6-7
Timestamp: 2025-05-13T05:09:50.026Z
Learning: In the Space Station 14 codebase, construction graph definitions in YAML files should be formatted as list items at the root level of the document, with a leading hyphen before "type: constructionGraph".
```

</details>

</details><details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

---

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml</summary>

[error] 17-17: trailing spaces

(trailing-spaces)

---

[error] 19-19: trailing spaces

(trailing-spaces)

---

[error] 25-25: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (2)</summary>

* GitHub Check: build (ubuntu-latest)
* GitHub Check: Test Packaging

</details>

<details>
<summary>🔇 Additional comments (2)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (1)</summary>

`6-6`: **BY THE SACRED RUNES!** The leading hyphen before `type: entity` correctly declares each boomerang as an item in the root list—no change needed here, wizardry aligns with tradition.

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml (1)</summary>

`6-7`: **ARCANE GRAPH SUMMONING VERIFIED.** The hyphen before `type: constructionGraph` rightly invokes the graph as a root list item, in accord with GoobStation lore.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:26:03Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:27:59Z
user: login: coderabbitai[bot]
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:28:22Z
user: login: pheenty
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:46:12Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:46:32Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (2)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (2)</summary><blockquote>

`22-22`: **O CURSE! A stray space lingers at line 22.**
Remove the trailing whitespace to soothe the linter’s ire:
```diff
-    damage: 10 
+    damage: 10
```

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

</details>

</details>

---

`44-44`: **LOOMING! The final line doth lack a trailing newline.**
YAML scrolls must end with a newline; append one to avert parsing omens.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between c9509ec0925a791830425fab791b938c83f80347 and a5ae15e5e33d128964708e31edb77bf73078b651.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

---

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (4)</summary>

* GitHub Check: build (ubuntu-latest)
* GitHub Check: Test Packaging
* GitHub Check: build (ubuntu-latest)
* GitHub Check: YAML Linter

</details>

<details>
<summary>🔇 Additional comments (6)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (6)</summary>

`1-5`: **HARK! The license incantations are properly inscribed.**
All requisite SPDX tags are present and correctly formatted.

---

`6-14`: **VERILY! The boomerang entity is forged correctly.**
The entity declaration, inheritance, and sprite layering adhere to the established schema for throwable weapons.

---

`17-22`: **BEHOLD! Damage runes match the PR covenant.**
The blunt (4) and stamina (10) damage values align with the PR summary’s enchantments.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

</details>

</details>

---

`23-28`: **PRAISE! The construction sigil is bound to the boomerangGraph.**
The `Construction` component references the correct graph and node for forging the final boomerang.

---

`30-38`: **LO! The incomplete boomerang is scribed rightly for the first crafting rite.**
Its sprite, description, and node mapping prepare it for the knife ritual.

---

`40-44`: **MARVELOUS! The nascent boomerang’s components are complete.**
The `Sprite`, `Item`, and `Construction` runes stand ready for the finishing craft.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T06:54:38Z
user: login: pheenty
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T07:08:22Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T07:10:18Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>🧹 Nitpick comments (2)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (2)</summary><blockquote>

`21-22`: **Purge the trailing spectre of whitespace.**  
YAMLlint flags a trailing space after `10` on line 22. Remove it to banish the lint error.  

```diff
-    damage: 10 
+    damage: 10
```

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

</details>

</details>

---

`44-44`: **By Odin’s beard, add the sacrificial newline!**  
YAMLlint warns of a missing end-of-file newline. Please append a blank line at EOF.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between a5ae15e5e33d128964708e31edb77bf73078b651 and b5f5e595e4be4595d81235152e749beb95ae43a7.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

---

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (3)</summary>

* GitHub Check: build (ubuntu-latest)
* GitHub Check: Test Packaging
* GitHub Check: build (ubuntu-latest)

</details>

<details>
<summary>🔇 Additional comments (3)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml (3)</summary>

`1-4`: **Behold, the license incantations are correctly inscribed!**  
The SPDX metadata and author attributions are present and conform to AGPL-3.0-or-later requirements.

---

`6-29`: **The `boomerang` entity emerges true from the forgemaster's flames!**  
Its ID, components (landing, sprite, damage, size, custom Boomerang behavior), and construction graph all align perfectly with the PR’s objectives.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

</details>

</details>

---

`30-44`: **The `boomerangIncomplete` entity lies in wait for the finishing blow.**  
The incomplete state, its sprite, size, and construction node are defined as intended for the two-step crafting workflow.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 44-44: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T07:15:45Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 3**

<details>
<summary>🔭 Outside diff range comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary><blockquote>

`11-11`: _💡 Verification agent_

<details>
<summary>🧩 Analysis chain</summary>

**Alas! Banishing the BananiumSword Recipe**  
The `BananiumSword` recipe was removed. Pray ensure no hidden references remain that could invoke this lost ritual.

---

🏁 Script executed:

```shell
#!/bin/bash
# Verify that no remnants of BananiumSword persist in the repository
rg -R "BananiumSword"
```

Length of output: 426

---

HOIST THE RUNIC SIGIL AGAIN! The prior invocation stumbled on a wayward flag. Let us recast the spell with the true pattern:

---

🏁 Script executed:

```shell
#!/bin/bash
# Verify that no remnants of BananiumSword persist in the repository
# ripgrep is recursive by default, so no -R flag is needed
rg "BananiumSword" .
```

Length of output: 634

---



</details>

**Remnants of BananiumSword detected – excise or update all references**

The arcane scourge of **BananiumSword** still lingers in the repository. Please purge or redirect these before merging:

- Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Melee/e_sword_banana.yml  
  • `id: BananiumSword`  
  • `graph: BananiumSword`

- Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml  
  • `id: BananiumSword`  
  • `graph: BananiumSword`

- Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/bananium_sword.yml  
  • `id: BananiumSword`  
  • `entity: BananiumSword`

Purge these hidden references or repoint them to the correct ritual before declaring victory!

</blockquote></details>

</blockquote></details>

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary><blockquote>

`31-31`: **Soft! Missing Newline at EOF**  
YAMLlint demands a trailing newline. Add one after this line to appease the linter.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 31-31: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between b5f5e595e4be4595d81235152e749beb95ae43a7 and 1abf6fa98723e8332d39d15bc15921fe4e2bebc3.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml</summary>

[error] 31-31: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (2)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (2)</summary>

`2-2`: **Lo! Correct SPDX Copyright Addition**  
The new copyright line for Arraydeess is well-formed and aligns with the AGPL-3.0-or-later header.

---

`25-25`: <details>
<summary>✅ Verification successful</summary>

**Hark! Verify the Graph Reference**  
The recipe invokes `boomerangGraph`. Ensure the corresponding graph file truly exists, lest the construction rite break.

---

🏁 Script executed:

```shell
#!/bin/bash
# Confirm presence of boomerangGraph.yml in construction graphs
fd boomerangGraph.yml
```

Length of output: 108

---



</details>

**📜 Graph Reference Verified**  
I’ve summoned the arcane `fd` incantation and confirmed that `Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml` does indeed exist. No further rites are needed—this recipe’s boomerangGraph is sound.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T22:01:43Z
user: login: Arraydeess14
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T22:15:38Z
user: login: coderabbitai[bot]
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T22:17:42Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 0**

<details>
<summary>♻️ Duplicate comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary><blockquote>

`24-32`: _🛠️ Refactor suggestion_

**Encase Thy Incantation in Quotes, Lest the Lore Be Lost**  
The description at line 31 bears a `# BTD6 reference`—YAML will deem what follows as mere commentary and swallow thy precious text. Enclose the entire description in quotes to preserve this arcane reference intact.

</blockquote></details>

</blockquote></details>

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary><blockquote>

`22-23`: **Object Type is Summoned, but Cleanse Trailing Spaces**  
Thy addition of `objectType: Item` is just and true; yet a blank line prowls with trailing spectres. Expunge these spaces to appease the YAML linter’s edict.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 23-23: trailing spaces

(trailing-spaces)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between d516f80447c20274d051998e31c7bc6a6074f43e and 3cc79dea583015a2890f9c2065d95ecff2799cc8.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml</summary>

[error] 23-23: trailing spaces

(trailing-spaces)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (2)</summary>

* GitHub Check: build (ubuntu-latest)
* GitHub Check: Test Packaging

</details>

<details>
<summary>🔇 Additional comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml (1)</summary>

`3-4`: **Hail the Scribe! SPDX Lines Brace The Scroll**  
Thou hast summoned the scribal marks for Arraydeess and Arraydeess14—this doth fulfill our lorekeeping.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T23:54:26Z
user: login: SX-7
body: checked the comments from pheenty and they adressed any of my would-be concerns
was expecting it to be way worse but it's strangely ok
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-23T21:12:31Z
user: login: gusxyz
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-24T22:12:37Z

Review comments:
diff_hunk: @@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: constructionGraph
+  id: boomerangGraph
path: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**BANISH THE ERRANT LIST MARKER.** The leading hyphen before `type: constructionGraph` mistakenly turns the root mapping into a list item. Remove this dash so the graph is defined at the document root.

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In
Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
at lines 6 to 7, remove the leading hyphen before "type: constructionGraph" to
prevent the root mapping from being interpreted as a list item. This will
correctly define the graph at the document root level.
```

</details>

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T05:02:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**BANISH THE DASH FROM ENTITY DEFINITION.** The root entry should be a mapping, not a list. Remove the leading hyphen before `type: entity` to ensure correct YAML parsing.

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In
Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
at lines 6 to 7, remove the leading hyphen before "type: entity" so that the
root entry is a mapping instead of a list. This will fix the YAML parsing issue
by making the root a proper key-value mapping.
```

</details>

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T05:02:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: Arraydeess14
body: not real
created_at: 2025-05-13T05:07:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: constructionGraph
+  id: boomerangGraph
path: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
user: login: Arraydeess14
body: not an issue
created_at: 2025-05-13T05:07:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: constructionGraph
+  id: boomerangGraph
path: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
user: login: coderabbitai[bot]
body: <details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Let's check a few other construction graph files to see if they also use leading hyphens
echo "Checking other construction graph files for format comparison:"
find Resources/Prototypes -name "*.yml" -type f -not -path "*/_Goobstation/*" | xargs grep -l "type: constructionGraph" | head -n 5 | xargs cat | grep -A 1 "type: constructionGraph" --color=always
```

Length of output: 1008

---



</details>

@Arraydeess14 BY THE ANCIENT SCROLLS OF YAML, THOU ART CORRECT! I HAVE CONSULTED THE SACRED CONSTRUCTION GRAPHS OF THY CODEBASE AND VERILY THE HYPHEN IS THE TRUE WAY! 

FORGIVE MY MORTAL ERROR, FOR I SEE NOW THAT ALL THY CONSTRUCTION GRAPHS BE DEFINED AS LIST ITEMS WITH THE MIGHTY HYPHEN:
```
- type: constructionGraph
  id: SomeGraph
```

THY BOOMERANG CONSTRUCTION IS PROPERLY FORMATTED ACCORDING TO THY CODEBASE TRADITIONS! MAY THY BOOMERANG ALWAYS RETURN TO THEE!



     /)/)
    ( . .)
    (  >🧠  *thinking wizard rabbit noises*

---

<details>
<summary>✏️ Learnings added</summary>

```
Learnt from: Arraydeess14
PR: Goob-Station/Goob-Station#2757
File: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml:6-7
Timestamp: 2025-05-13T05:09:50.026Z
Learning: In the Space Station 14 codebase, construction graph definitions in YAML files should be formatted as list items at the root level of the document, with a leading hyphen before "type: constructionGraph".
```

> Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure [review instructions](https://docs.coderabbit.ai/guides/review-instructions). You can manage existing learnings in the [app](https://app.coderabbit.ai/learnings).

</details>




<!-- <agentComponentType>chat-answer</agentComponentType> -->

<!-- <rawResChunk><answer><details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Let's check a few other construction graph files to see if they also use leading hyphens
echo "Checking other construction graph files for format comparison:"
find Resources/Prototypes -name "*.yml" -type f -not -path "*/_Goobstation/*" | xargs grep -l "type: constructionGraph" | head -n 5 | xargs cat | grep -A 1 "type: constructionGraph" --color=always
```

Length of output: 1008

---



</details>

@Arraydeess14 BY THE ANCIENT SCROLLS OF YAML, THOU ART CORRECT! I HAVE CONSULTED THE SACRED CONSTRUCTION GRAPHS OF THY CODEBASE AND VERILY THE HYPHEN IS THE TRUE WAY! 

FORGIVE MY MORTAL ERROR, FOR I SEE NOW THAT ALL THY CONSTRUCTION GRAPHS BE DEFINED AS LIST ITEMS WITH THE MIGHTY HYPHEN:
```
- type: constructionGraph
  id: SomeGraph
```

THY BOOMERANG CONSTRUCTION IS PROPERLY FORMATTED ACCORDING TO THY CODEBASE TRADITIONS! MAY THY BOOMERANG ALWAYS RETURN TO THEE!



     /)/)
    ( . .)
    (  >🧠  *thinking wizard rabbit noises*

---

<details>
<summary>✏️ Learnings added</summary>

```
Learnt from: Arraydeess14
PR: Goob-Station/Goob-Station#2757
File: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml:6-7
Timestamp: 2025-05-13T05:09:50.026Z
Learning: In the Space Station 14 codebase, construction graph definitions in YAML files should be formatted as list items at the root level of the document, with a leading hyphen before "type: constructionGraph".
```

> Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure [review instructions](https://docs.coderabbit.ai/guides/review-instructions). You can manage existing learnings in the [app](https://app.coderabbit.ai/learnings).

</details>

</answer></rawResChunk> -->

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T05:09:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: coderabbitai[bot]
body: <details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Check a few random entity definition files to see if they also use a leading hyphen
echo "Checking some random entity files for pattern:"
find Resources/Prototypes -name "*.yml" -type f | sort | head -n 3 | xargs cat | grep -A 1 "type: entity"
```

Length of output: 210

---

🏁 Script executed:
```
#!/bin/bash
# First, check directory structure
echo "Directory structure:"
find Resources -type d | grep -i prototypes | head -n 10

# Now let's find a few yaml files and check their content
echo -e "\nExamining a few YAML files:"
find Resources -name "*.yml" | head -n 5

# Let's specifically search for entity definitions with a leading hyphen
echo -e "\nChecking for entity definitions with leading hyphen:"
find Resources -name "*.yml" -type f -exec grep -l "- type: entity" {} \; | head -n 5

# And check a few of these files to see the pattern
echo -e "\nSample content from entity files:"
find Resources -name "*.yml" -type f -exec grep -l "- type: entity" {} \; | head -n 3 | xargs head -n 20
```

Length of output: 66496

---

🏁 Script executed:
```
#!/bin/bash
# Let's try a direct approach by checking a few random YAML files in the resources directory
echo "Checking a few random YAML files in the Resources directory:"
find Resources -name "*.yml" | grep -i entity | sort | head -n 5 | xargs cat | head -n 50
```

Length of output: 2266

---



</details>

@Arraydeess14 AH, FORGIVE ME, MORTAL CODER! YOUR WISDOM IS INDEED VAST AND TRUE. THE HYPHEN IS NO ERROR, BUT THE CORRECT INCANTATION FOR YOUR ENTITY DEFINITIONS! MY MAGICAL DETECTION SPELL WAS CONFUSED BY THE ANCIENT YAML RUNES. YOUR BOOMERANG CODE IS CRAFTED PROPERLY ACCORDING TO THE ARCANE STANDARDS OF YOUR CODEBASE.


<!-- <agentComponentType>chat-answer</agentComponentType> -->

<!-- <rawResChunk><answer><details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Check a few random entity definition files to see if they also use a leading hyphen
echo "Checking some random entity files for pattern:"
find Resources/Prototypes -name "*.yml" -type f | sort | head -n 3 | xargs cat | grep -A 1 "type: entity"
```

Length of output: 210

---

🏁 Script executed:
```
#!/bin/bash
# First, check directory structure
echo "Directory structure:"
find Resources -type d | grep -i prototypes | head -n 10

# Now let's find a few yaml files and check their content
echo -e "\nExamining a few YAML files:"
find Resources -name "*.yml" | head -n 5

# Let's specifically search for entity definitions with a leading hyphen
echo -e "\nChecking for entity definitions with leading hyphen:"
find Resources -name "*.yml" -type f -exec grep -l "- type: entity" {} \; | head -n 5

# And check a few of these files to see the pattern
echo -e "\nSample content from entity files:"
find Resources -name "*.yml" -type f -exec grep -l "- type: entity" {} \; | head -n 3 | xargs head -n 20
```

Length of output: 66496

---

🏁 Script executed:
```
#!/bin/bash
# Let's try a direct approach by checking a few random YAML files in the resources directory
echo "Checking a few random YAML files in the Resources directory:"
find Resources -name "*.yml" | grep -i entity | sort | head -n 5 | xargs cat | head -n 50
```

Length of output: 2266

---



</details>

@Arraydeess14 AH, FORGIVE ME, MORTAL CODER! YOUR WISDOM IS INDEED VAST AND TRUE. THE HYPHEN IS NO ERROR, BUT THE CORRECT INCANTATION FOR YOUR ENTITY DEFINITIONS! MY MAGICAL DETECTION SPELL WAS CONFUSED BY THE ANCIENT YAML RUNES. YOUR BOOMERANG CODE IS CRAFTED PROPERLY ACCORDING TO THE ARCANE STANDARDS OF YOUR CODEBASE.</answer></rawResChunk> -->

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T05:09:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
+  parent: BaseItem
+  name: Boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: pheenty
body: Name should be lowercase
created_at: 2025-05-13T05:20:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: constructionGraph
+  id: boomerangGraph
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: boomerangFinish
+          steps:
+            - material: WoodPlank
+              amount: 5
+              doAfter: 2
+    - node: boomerangFinish
path: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
user: login: pheenty
body: I think it should require a knife to finish, like with the bat
created_at: 2025-05-13T05:21:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -51,3 +52,13 @@
   icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
   objectType: Item
 
+- type: construction
+  name: Boomerang
path: Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
user: login: pheenty
body: Name should he lowercase 
created_at: 2025-05-13T05:22:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
+  parent: BaseItem
+  name: Boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 6
+  - type: StaminaDamageOnCollide
+    damage: 7
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: pheenty
body: What is the point of having stamina damage if it also has some actual damage too? It would kill as fast as it would staminacrit, so no point in this
created_at: 2025-05-13T05:24:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
+  parent: BaseItem
+  name: Boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 6
+  - type: StaminaDamageOnCollide
+    damage: 7
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: Arraydeess14
body: should the stam damage be increased or removed?
created_at: 2025-05-13T05:25:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
+  parent: BaseItem
+  name: Boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 6
+  - type: StaminaDamageOnCollide
+    damage: 7
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: pheenty
body: Considering that even security has stamina resistance, I think it's fine to make it like 4 blunt + 10 stamina, we already have enough makeshift lethal weapons
created_at: 2025-05-13T05:30:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: constructionGraph
+  id: boomerangGraph
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: boomerangFinish
+          steps:
+            - material: WoodPlank
+              amount: 5
+              doAfter: 2
+    - node: boomerangFinish
path: Resources/Prototypes/_Goobstation/Recipes/Construction/Graphs/fun/boomerangGraph.yml
user: login: Arraydeess14
body: On it
created_at: 2025-05-13T05:31:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: Boomerang
+  parent: BaseItem
+  name: Boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 6
+  - type: StaminaDamageOnCollide
+    damage: 7
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: Arraydeess14
body: bet
created_at: 2025-05-13T06:13:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: boomerang
+  parent: BaseItem
+  name: boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 4
+  - type: StaminaDamageOnCollide
+    damage: 10 
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**ATTENTION, YE DICE OF FATE!** The current damage values (Blunt: 4, Stamina: 10) clash with the PR’s proclamation of 6 blunt and 7 stamina damage. Adjust to restore cosmic equilibrium:
```diff
@@ -19,2 +19,2
-        Blunt: 4
+        Blunt: 6
@@ -22,2 +22,2
-    damage: 10 
+    damage: 7
``` 



<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

`````suggestion
  - type: DamageOtherOnHit
    damage:
      types:
-        Blunt: 4
+        Blunt: 6
  - type: StaminaDamageOnCollide
-    damage: 10 
+    damage: 7
`````

</details>

<!-- suggestion_end -->

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[error] 22-22: trailing spaces

(trailing-spaces)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In
Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
between lines 17 and 22, the damage values are incorrect. Update the Blunt
damage from 4 to 6 and the Stamina damage from 10 to 7 to match the PR's
specified values.
```

</details>

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T06:26:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: boomerang
+  parent: BaseItem
+  name: boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 4
+  - type: StaminaDamageOnCollide
+    damage: 10 
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: Arraydeess14
body: yes coderabbit
created_at: 2025-05-13T06:27:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: boomerang
+  parent: BaseItem
+  name: boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 4
+  - type: StaminaDamageOnCollide
+    damage: 10 
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: coderabbitai[bot]
body: @Arraydeess14 EXCELLENT! THOU HAST CHOSEN WISELY TO ALIGN THE BOOMERANG'S MYSTICAL PROPERTIES WITH THY ORIGINAL PROCLAMATION! 

THY WEAPON SHALL NOW DEAL 6 BLUNT DAMAGE AND 7 STAMINA DAMAGE AS FORETOLD IN THE ANCIENT SCROLLS OF THY PULL REQUEST!

THE COSMIC EQUILIBRIUM SHALL BE RESTORED WHEN THESE CHANGES ARE IMPLEMENTED!

---

<!-- This is an auto-generated comment: tweet message by coderabbit.ai -->

If you found this review helpful, would you consider giving us a shout-out on [X](https://twitter.com/intent/tweet?related=CodeRabbitAI&text=Catch%20those%20damage%20mismatches%20early!%20%40coderabbitai%20spots%20and%20fixes%20conflicting%20values%20to%20keep%20your%20game%20balanced%20and%20bug-free.%20Try%20it%20for%20flawless%20code%20reviews!%20%F0%9F%8E%AF%F0%9F%90%87&url=https%3A%2F%2Fgithub.com%2FGoob-Station%2FGoob-Station%2Fpull%2F2757%23discussion_r2086012176)?

Thank you for using CodeRabbit!

<!-- end of auto-generated comment: tweet message by coderabbit.ai -->




<!-- <agentComponentType>chat-answer</agentComponentType> -->

<!-- <rawResChunk><answer>@Arraydeess14 EXCELLENT! THOU HAST CHOSEN WISELY TO ALIGN THE BOOMERANG'S MYSTICAL PROPERTIES WITH THY ORIGINAL PROCLAMATION! 

THY WEAPON SHALL NOW DEAL 6 BLUNT DAMAGE AND 7 STAMINA DAMAGE AS FORETOLD IN THE ANCIENT SCROLLS OF THY PULL REQUEST!

THE COSMIC EQUILIBRIUM SHALL BE RESTORED WHEN THESE CHANGES ARE IMPLEMENTED!

---

&lt;!-- This is an auto-generated comment: tweet message by coderabbit.ai --&gt;

If you found this review helpful, would you consider giving us a shout-out on [X](https://twitter.com/intent/tweet?related=CodeRabbitAI&text=Catch%20those%20damage%20mismatches%20early!%20%40coderabbitai%20spots%20and%20fixes%20conflicting%20values%20to%20keep%20your%20game%20balanced%20and%20bug-free.%20Try%20it%20for%20flawless%20code%20reviews!%20%F0%9F%8E%AF%F0%9F%90%87&url=https%3A%2F%2Fgithub.com%2FGoob-Station%2FGoob-Station%2Fpull%2F2757%23discussion_r2086012176)?

Thank you for using CodeRabbit!

&lt;!-- end of auto-generated comment: tweet message by coderabbit.ai --&gt;

</answer></rawResChunk> -->

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T06:28:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -25,4 +25,20 @@
   - type: Boomerang # Goobstation
   - type: Construction
     graph: boomerangGraph
-    node: boomerangFinish
\ No newline at end of file
+    node: boomerangFinish
+
+- type: entity
+  id: boomerangIncomplete
+  parent: BaseItem
+  name: Incomplete Boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: pheenty
body: Lowercase name 😭 
created_at: 2025-05-13T06:46:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -25,4 +25,20 @@
   - type: Boomerang # Goobstation
   - type: Construction
     graph: boomerangGraph
-    node: boomerangFinish
\ No newline at end of file
+    node: boomerangFinish
+
+- type: entity
+  id: boomerangIncomplete
+  parent: BaseItem
+  name: Incomplete Boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: Arraydeess14
body: so close

created_at: 2025-05-13T06:46:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: boomerang
+  parent: BaseItem
+  name: boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 4
+  - type: StaminaDamageOnCollide
+    damage: 10 
+  - type: Item
+    size: Small
+  - type: Boomerang # Goobstation
+  - type: Construction
+    graph: boomerangGraph
+    node: boomerangFinish
+
+- type: entity
+  id: boomerangIncomplete
+  parent: BaseItem
+  name: incomplete boomerang
+  description: Apply knife to get a fresh boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: pheenty
body: Dot at the end, other than that looks good
created_at: 2025-05-13T07:08:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2025 Arraydeess <arraygitbash@gmail.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+#
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+- type: entity
+  id: boomerang
+  parent: BaseItem
+  name: boomerang
+  description: Made from wood. You should give this to a monkey.
+  components:
+  - type: LandAtCursor
+  - type: Sprite
+    sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi # GoobStation Edit
+    layers:
+    - state: icon
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 4
+  - type: StaminaDamageOnCollide
+    damage: 10 
+  - type: Item
+    size: Small
+  - type: Boomerang # Goobstation
+  - type: Construction
+    graph: boomerangGraph
+    node: boomerangFinish
+
+- type: entity
+  id: boomerangIncomplete
+  parent: BaseItem
+  name: incomplete boomerang
+  description: Apply knife to get a fresh boomerang
path: Resources/Prototypes/_Goobstation/Entities/Objects/Weapons/Throwables/boomerang.yml
user: login: Arraydeess14
body: dot placed at the end of boomerang
created_at: 2025-05-13T07:10:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,35 +20,12 @@
   objectType: Item
 
 - type: construction
-  name: welder energy sword
-  id: WelderSword
-  graph: WelderSword
+  name: boomerang
+  id: boomerang
+  graph: boomerangGraph
   startNode: start
-  targetNode: welderSword
+  targetNode: boomerangFinish
   category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: industrial welder energy sword
-  id: WelderSwordIndustrial
-  graph: WelderSwordIndustrial
-  startNode: start
-  targetNode: welderSwordIndustrial
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: experimental welder energy sword
-  id: WelderSwordExperimental
-  graph: WelderSwordExperimental
-  startNode: start
-  targetNode: welderSwordExperimental
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
+  description: A makeshift boomerang! Now if you only had some balloons to throw it at. # BTD6 reference
path: Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**Verily, Quote Thy Description String**  
The description contains a `# BTD6 reference` which YAML will treat as a comment, truncating the lore. Encase the entire description in quotes to preserve the full text.

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml at line 29,
the description string contains a '#' character which YAML interprets as the
start of a comment, causing the text after it to be truncated. To fix this,
enclose the entire description string in quotes so that the full text, including
the '# BTD6 reference' part, is preserved as part of the description.
```

</details>

<!-- This is an auto-generated comment by CodeRabbit -->
created_at: 2025-05-13T22:01:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,35 +20,12 @@
   objectType: Item
 
 - type: construction
-  name: welder energy sword
-  id: WelderSword
-  graph: WelderSword
+  name: boomerang
+  id: boomerang
+  graph: boomerangGraph
   startNode: start
-  targetNode: welderSword
+  targetNode: boomerangFinish
path: Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**By the runes! Inconsistent Naming Conventions**  
The fields for the new boomerang recipe clash with established conventions:  
- `id: boomerang` should mirror PascalCase like `BananiumSword` (e.g., `Boomerang`).  
- `name: boomerang` ought to be Title Case (e.g., `Boomerang`) for display.  
This inconsistency may conjure confusion in downstream systems.

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml around lines
23 to 27, the id and name fields use lowercase 'boomerang' which conflicts with
the project's naming conventions. Change the id field to PascalCase 'Boomerang'
and update the name field to Title Case 'Boomerang' to maintain consistency and
avoid issues in downstream systems.
```

</details>

<!-- This is an auto-generated comment by CodeRabbit -->
created_at: 2025-05-13T22:01:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,35 +20,12 @@
   objectType: Item
 
 - type: construction
-  name: welder energy sword
-  id: WelderSword
-  graph: WelderSword
+  name: boomerang
+  id: boomerang
+  graph: boomerangGraph
   startNode: start
-  targetNode: welderSword
+  targetNode: boomerangFinish
   category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: industrial welder energy sword
-  id: WelderSwordIndustrial
-  graph: WelderSwordIndustrial
-  startNode: start
-  targetNode: welderSwordIndustrial
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: experimental welder energy sword
-  id: WelderSwordExperimental
-  graph: WelderSwordExperimental
-  startNode: start
-  targetNode: welderSwordExperimental
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
+  description: A makeshift boomerang! Now if you only had some balloons to throw it at. # BTD6 reference
+  icon: { sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi, state: icon }
path: Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**By Merlin’s Beard! Sprite Path Mismatch**  
The `icon` path uses `Throwable` but the entity sprite resides under `Throwables`. Align the directory name to avoid a missing icon at runtime.

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml at line 30,
the icon sprite path uses the directory name "Throwable" which does not match
the actual directory "Throwables" where the sprite resides. Update the path in
the icon field to use "Throwables" instead of "Throwable" to ensure the icon
loads correctly at runtime.
```

</details>

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T22:01:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,35 +20,12 @@
   objectType: Item
 
 - type: construction
-  name: welder energy sword
-  id: WelderSword
-  graph: WelderSword
+  name: boomerang
+  id: boomerang
+  graph: boomerangGraph
   startNode: start
-  targetNode: welderSword
+  targetNode: boomerangFinish
   category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: industrial welder energy sword
-  id: WelderSwordIndustrial
-  graph: WelderSwordIndustrial
-  startNode: start
-  targetNode: welderSwordIndustrial
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: experimental welder energy sword
-  id: WelderSwordExperimental
-  graph: WelderSwordExperimental
-  startNode: start
-  targetNode: welderSwordExperimental
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
+  description: A makeshift boomerang! Now if you only had some balloons to throw it at. # BTD6 reference
+  icon: { sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi, state: icon }
path: Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
user: login: Arraydeess14
body: incorrect
created_at: 2025-05-13T22:15:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,35 +20,12 @@
   objectType: Item
 
 - type: construction
-  name: welder energy sword
-  id: WelderSword
-  graph: WelderSword
+  name: boomerang
+  id: boomerang
+  graph: boomerangGraph
   startNode: start
-  targetNode: welderSword
+  targetNode: boomerangFinish
   category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: industrial welder energy sword
-  id: WelderSwordIndustrial
-  graph: WelderSwordIndustrial
-  startNode: start
-  targetNode: welderSwordIndustrial
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
-- type: construction
-  name: experimental welder energy sword
-  id: WelderSwordExperimental
-  graph: WelderSwordExperimental
-  startNode: start
-  targetNode: welderSwordExperimental
-  category: construction-category-weapons
-  description: Roughly converted from a welding tool, this energy sword hums an unstable flame. It looks like it's about to fall apart.
-  icon: { sprite: _Goobstation/Objects/Weapons/Melee/e_sword_welder.rsi, state: icon }
-  objectType: Item
-
+  description: A makeshift boomerang! Now if you only had some balloons to throw it at. # BTD6 reference
+  icon: { sprite: _Goobstation/Objects/Weapons/Throwable/boomerang.rsi, state: icon }
path: Resources/Prototypes/_Goobstation/Recipes/Construction/fun.yml
user: login: coderabbitai[bot]
body: <details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Check if the Throwable directory exists
echo "Checking for Throwable directory:"
find Resources/Textures -type d -name "Throwable" | grep -i Throwable

# Check if the Throwables directory exists
echo "Checking for Throwables directory:"
find Resources/Textures -type d -name "Throwables" | grep -i Throwables

# Check for the boomerang rsi file regardless of parent directory name
echo "Looking for boomerang.rsi anywhere:"
find Resources/Textures -type d -name "boomerang.rsi"
```

Length of output: 607

---



</details>

@Arraydeess14 BY THE ARCANE FORCES OF CODING, I STAND CORRECTED! MY PREVIOUS REVIEW WAS FLAWED, MORTAL ONE! 

Indeed, the directory is correctly named "Throwable" (without an 's'), and your sprite path `_Goobstation/Objects/Weapons/Throwable/boomerang.rsi` is absolutely correct. The verification spell I cast confirms the boomerang.rsi file resides precisely where your code states.

MY APOLOGIES FOR THIS ERROR IN MY DIVINATIONS! YOUR MYSTICAL BOOMERANG PATH IS PROPERLY ALIGNED WITH THE COSMIC FORCES OF YOUR CODEBASE! CARRY ON WITH YOUR MAGICAL CRAFTING!


<!-- <agentComponentType>chat-answer</agentComponentType> -->

<!-- <rawResChunk><answer><details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Check if the Throwable directory exists
echo "Checking for Throwable directory:"
find Resources/Textures -type d -name "Throwable" | grep -i Throwable

# Check if the Throwables directory exists
echo "Checking for Throwables directory:"
find Resources/Textures -type d -name "Throwables" | grep -i Throwables

# Check for the boomerang rsi file regardless of parent directory name
echo "Looking for boomerang.rsi anywhere:"
find Resources/Textures -type d -name "boomerang.rsi"
```

Length of output: 607

---



</details>

@Arraydeess14 BY THE ARCANE FORCES OF CODING, I STAND CORRECTED! MY PREVIOUS REVIEW WAS FLAWED, MORTAL ONE! 

Indeed, the directory is correctly named "Throwable" (without an 's'), and your sprite path `_Goobstation/Objects/Weapons/Throwable/boomerang.rsi` is absolutely correct. The verification spell I cast confirms the boomerang.rsi file resides precisely where your code states.

MY APOLOGIES FOR THIS ERROR IN MY DIVINATIONS! YOUR MYSTICAL BOOMERANG PATH IS PROPERLY ALIGNED WITH THE COSMIC FORCES OF YOUR CODEBASE! CARRY ON WITH YOUR MAGICAL CRAFTING!</answer></rawResChunk> -->

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-13T22:17:42Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-05-13T04:42:08Z
body: RSI Diff Bot; head commit da6e2e044a7fb553a37609aa6e7a2f239f2169a7 merging into ddedb6a1d2fa13298569c54b9729bb438cd2c0df
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

<details><summary>Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi</summary>
<p>

| State | Old | New | Status
| --- | --- | --- | --- |
| icon | ![]() | ![](https://raw.githubusercontent.com/Arraydeess14/Goob-Station/da6e2e044a7fb553a37609aa6e7a2f239f2169a7/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerang.rsi/icon.png) | Added


</p>
</details><details><summary>Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi</summary>
<p>

| State | Old | New | Status
| --- | --- | --- | --- |
| icon | ![]() | ![](https://raw.githubusercontent.com/Arraydeess14/Goob-Station/da6e2e044a7fb553a37609aa6e7a2f239f2169a7/Resources/Textures/_Goobstation/Objects/Weapons/Throwable/boomerangIncomplete.rsi/icon.png) | Added


</p>
</details>
Edit: diff updated after da6e2e044a7fb553a37609aa6e7a2f239f2169a7
author_association: CONTRIBUTOR
user: login: coderabbitai[bot]
created_at: 2025-05-13T05:02:21Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- walkthrough_start -->

## Walkthrough

By the sacred incantations of code, a new throwable weapon named the Boomerang hath been summoned into the realm! This entity bears a sprite, deals blunt and stamina damage, and is woven with a custom component for its unique flight. A construction graph, known as "boomerangGraph," hath been inscribed, demanding five WoodPlanks and a brief ritual delay to forge this weapon. The recipe scroll in fun.yml now includes this crafting rite, linking the graph and nodes to the Boomerang. Lastly, mystical metadata tomes for both the completed and incomplete boomerang sprites, bearing the sigil of their creator, hath been added to the archives.

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant Player
    participant ConstructionSystem
    participant Inventory
    participant BoomerangEntity

    Player->>ConstructionSystem: Initiate Boomerang Construction
    ConstructionSystem->>Inventory: Check for 5 WoodPlanks
    Inventory-->>ConstructionSystem: Confirm materials present
    ConstructionSystem->>ConstructionSystem: Wait doAfter (2 units)
    ConstructionSystem->>Inventory: Consume 5 WoodPlanks
    ConstructionSystem->>Player: Provide boomerangIncomplete
    Player->>ConstructionSystem: Use Slicing tool on boomerangIncomplete
    ConstructionSystem->>ConstructionSystem: Wait doAfter (4 units)
    ConstructionSystem->>Player: Provide completed Boomerang
```

```mermaid
sequenceDiagram
    participant Player
    participant BoomerangEntity
    participant Target

    Player->>BoomerangEntity: Throw Boomerang
    BoomerangEntity->>Target: Collide and deal 4 blunt damage, 10 stamina damage
    BoomerangEntity-->>Player: (Presumed) Return to Player or fall to ground
```

<!-- walkthrough_end -->

<!-- announcements_start -->

> [!TIP]
> <details>
> <summary>⚡️ Faster reviews with caching</summary>
> 
> - CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure `Review - Disable Cache` at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the `Data Retention` setting under your Organization Settings.
> 
> Enjoy the performance boost—your workflow just got faster.
> 
> </details>

<!-- announcements_end -->
<!-- internal state start -->


<!-- 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= -->

<!-- internal state end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=Goob-Station/Goob-Station&utm_content=2757):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T06:20:06Z
body: Changed damage values
Added extra crafting step and Incomplete boomerang
author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T07:04:28Z
body: Very close

author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T07:12:00Z
body: Extremely
author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T07:58:03Z
body: So apparently you can fire Boomerangs out of a pneumatic cannon and they will return.

author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T08:05:10Z
body: If there's no free hand it will bounce around, damaging people nearby. Has something to do with the Boomerang component which I have no clue how to fix. 
Same thing happens with Mjolnir so I assume it's fine.
author_association: CONTRIBUTOR
user: login: GoobBot
created_at: 2025-05-13T21:02:29Z
body: This pull request has conflicts, please resolve those before we can evaluate the pull request.
author_association: MEMBER
user: login: Arraydeess14
created_at: 2025-05-13T21:21:15Z
body: dang merge conflicts

author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T22:07:03Z
body: CONFLICTS FIXED
author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-13T22:40:36Z
body: No clue why those checks are failing since the only conflict was with a yml file. It seemed to work in game idk
author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-14T05:05:44Z
body: All checks successful

author_association: CONTRIBUTOR
user: login: afuckingidiot
created_at: 2025-05-17T02:22:46Z
body: 4 damage for double the price of a bat is pretty bad isnt it?

author_association: NONE
user: login: pheenty
created_at: 2025-05-17T02:47:20Z
body: > 4 damage for double the price of a bat is pretty bad isnt it?

it's effectively 8 as it will hit two times, it's ranged and it deals medium stamina damage (effectively 20), it's good
author_association: CONTRIBUTOR
user: login: Arraydeess14
created_at: 2025-05-17T04:21:07Z
body: > Contributor

not to mention it can also hit multiple people : )
author_association: CONTRIBUTOR