====== Boomerang Item ====== {{ rpd:images:boomerang_item.png|Boomerang }} ===== Java Classes ===== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/weapon/missiles/Boomerang.java|Boomerang.java]] - Main Boomerang class implementation * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/weapon/missiles/MissileWeapon.java|MissileWeapon.java]] - Base class for Boomerang * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/weapon/Weapon.java|Weapon.java]] - Weapon base class * Item factory: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/items/common/ItemFactory.java#L345|ItemFactory.java#L345]] (`registerItemClass(Boomerang.class)`) * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/ItemSpriteSheet.java#L31|ItemSpriteSheet.java#L31]] - Sprite constant `BOOMERANG = 106` ===== JSON Configuration ===== * Starting items: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/hero/initHeroes.json#L87-L96|initHeroes.json#L87-L96]] (Huntress starts with Boomerang) * Starting items (debug): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/hero/initHeroesDebug.json#L87-L96|initHeroesDebug.json#L87-L96]] (Huntress starts with Boomerang) * Treasury: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/levelsDesc/Treasury.json#L152|Treasury.json#L152]] (Boomerang drop chance) * Spiders Treasury: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/levelsDesc/SpidersTreasury.json#L149|SpidersTreasury.json#L149]] (Boomerang drop chance) * Note: No dedicated `MissileWeapons.json` exists; Boomerang damage is defined in the Java class (MIN=1, MAX=4 at base, +1/+2 per upgrade) ===== String Resources (All Languages) ===== * English: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values/strings_all.xml#L315-L317|strings_all.xml#L315-L317]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Spanish: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-es/strings_all.xml#L317-L319|strings_all.xml#L317-L319]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Portuguese (Brazilian): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-pt-rBR/strings_all.xml#L312-L314|strings_all.xml#L312-L314]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Russian: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ru/strings_all.xml#L314-L316|strings_all.xml#L314-L316]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Chinese (Simplified): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-zh-rCN/strings_all.xml#L311-L313|strings_all.xml#L311-L313]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Chinese (Traditional): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-zh-rTW/strings_all.xml#L314-L316|strings_all.xml#L314-L316]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * French: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-fr/strings_all.xml#L313-L315|strings_all.xml#L313-L315]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * German: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-de/strings_all.xml#L317-L319|strings_all.xml#L317-L319]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Italian: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-it/strings_all.xml#L317-L319|strings_all.xml#L317-L319]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Japanese: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ja/strings_all.xml#L311-L313|strings_all.xml#L311-L313]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Korean: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ko/strings_all.xml#L306-L308|strings_all.xml#L306-L308]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Polish: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-pl/strings_all.xml#L318-L320|strings_all.xml#L318-L320]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Ukrainian: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-uk/strings_all.xml#L326-L328|strings_all.xml#L326-L328]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Hungarian: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-hu/strings_all.xml#L311-L313|strings_all.xml#L311-L313]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Turkish: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-tr/strings_all.xml#L316-L318|strings_all.xml#L316-L318]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Greek: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-el/strings_all.xml#L311-L313|strings_all.xml#L311-L313]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Indonesian: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-in/strings_all.xml#L316-L318|strings_all.xml#L316-L318]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Malay: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ms/strings_all.xml#L312-L314|strings_all.xml#L312-L314]] - Boomerang_Gender, Boomerang_Info, Boomerang_Name * Dutch (partial): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-nl/strings_all.xml#L121|strings_all.xml#L121]] - Boomerang_Info only (Name and Gender missing) * Vietnamese (partial): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-vi/strings_all.xml#L109|strings_all.xml#L109]] - Boomerang_Gender only (Name and Info missing) * Arabic (partial): [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ar/strings_all.xml#L124|strings_all.xml#L124]] - Boomerang_Info only (Name and Gender missing) * Hebrew: not present in `values-he/strings_all.xml` ===== Lua Scripts ===== This entity is implemented in Java, no Lua script exists ===== Key Methods ===== * `attackProc(Char attacker, Char defender, int damage)` - On hit, calls `circleBack()` if the boomerang is the hero's ranged weapon * `miss(int cell, Char thrower, Char enemy)` - On miss, also calls `circleBack()` * `circleBack(int from, Char owner)` - Animates the boomerang back to the owner via `MissileSprite`, restores it to the originating inventory slot and quickslot * `cast(Char user, int dst)` - Records `throwSlot` so `circleBack` can restore the original slot * `upgrade()` / `upgrade(boolean enchant)` / `degrade()` - Each upgrade adds +1 MIN, +2 MAX; `degrade()` subtracts 1 MIN and 2 MAX * `isFliesStraight()` - Returns false (boomerang returns in an arc) * `isFliesFastRotating()` - Returns true * `isUpgradable()` - Returns true * `enchant(Enchantment ench)` - Re-rolls if the chosen enchant is `Piercing` or `Swing` (to prevent infinite loops) * `time2equipBase()` - Returns 0 * `price()` - Returns 100 ===== Related Entities ===== * [[en:rpd:huntress_class|Huntress]] - The class that starts with a Boomerang * [[en:rpd:boomerang_item|Boomerang Item]] - Human-readable page {{tag> mr items reference}}