mr:boomerang_item
Table of Contents
Boomerang Item
Java Classes
- Boomerang.java - Main Boomerang class implementation
- MissileWeapon.java - Base class for Boomerang
- Weapon.java - Weapon base class
- Item factory: ItemFactory.java#L345 (`registerItemClass(Boomerang.class)`)
- ItemSpriteSheet.java#L31 - Sprite constant `BOOMERANG = 106`
JSON Configuration
- Starting items: initHeroes.json#L87-L96 (Huntress starts with Boomerang)
- Starting items (debug): initHeroesDebug.json#L87-L96 (Huntress starts with Boomerang)
- Treasury: Treasury.json#L152 (Boomerang drop chance)
- Spiders Treasury: 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: strings_all.xml#L315-L317 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Spanish: strings_all.xml#L317-L319 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Portuguese (Brazilian): strings_all.xml#L312-L314 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Russian: strings_all.xml#L314-L316 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Chinese (Simplified): strings_all.xml#L311-L313 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Chinese (Traditional): strings_all.xml#L314-L316 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- French: strings_all.xml#L313-L315 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- German: strings_all.xml#L317-L319 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Italian: strings_all.xml#L317-L319 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Japanese: strings_all.xml#L311-L313 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Korean: strings_all.xml#L306-L308 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Polish: strings_all.xml#L318-L320 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Ukrainian: strings_all.xml#L326-L328 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Hungarian: strings_all.xml#L311-L313 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Turkish: strings_all.xml#L316-L318 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Greek: strings_all.xml#L311-L313 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Indonesian: strings_all.xml#L316-L318 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Malay: strings_all.xml#L312-L314 - Boomerang_Gender, Boomerang_Info, Boomerang_Name
- Dutch (partial): strings_all.xml#L121 - Boomerang_Info only (Name and Gender missing)
- Vietnamese (partial): strings_all.xml#L109 - Boomerang_Gender only (Name and Info missing)
- Arabic (partial): 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
- Huntress - The class that starts with a Boomerang
- Boomerang Item - Human-readable page
mr/boomerang_item.txt · Last modified: by 127.0.0.1

