User Tools

Site Tools


mr:shaman_armor_item

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mr:shaman_armor_item [2025/12/25 18:23] – auto lint fix Mikhaelmr:shaman_armor_item [2026/03/13 10:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Shaman Armor Item - Code References ======
 +
 +===== Java Classes =====
 +  * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/armor/ShamanArmor.java|ShamanArmor.java]] - Main implementation class
 +  * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/armor/ElfArmor.java|ElfArmor.java]] - Parent class (ShamanArmor extends ElfArmor)
 +  * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/items/common/ItemFactory.java|ItemFactory.java]] - Item registration (line 295)
 +
 +===== Class Implementation Details =====
 +<code java>
 +package com.watabou.pixeldungeon.items.armor;
 +
 +public class ShamanArmor extends ElfArmor {
 +
 + public ShamanArmor()
 + {
 +        name = StringsManager.getVar(R.string.ElfArmor_Name);
 + image = 19;
 + hasHelmet = true;
 + coverHair = true;
 + }
 +
 + @Override
 + public boolean doEquip(@NotNull Char hero ) {
 + if (hero.getSubClass() == HeroSubClass.SHAMAN) {
 + return super.doEquip( hero );
 + } else {
 +            GLog.w(StringsManager.getVar(R.string.ElfArmor_NotElf));
 + return false;
 + }
 + }
 +}
 +</code>
 +
 +===== Key Properties =====
 +  * **Image ID**: 19 (sprite index in armor atlas)
 +  * **Has Helmet**: true (armor includes a hood/helmet)
 +  * **Cover Hair**: true (helmet covers hero's hair)
 +  * **Restriction**: Can only be equipped by heroes with SHAMAN subclass
 +  * **Name Source**: R.string.ElfArmor_Name (shared with ElfArmor)
 +  * **Warning Message**: R.string.ElfArmor_NotElf (shown when non-Shaman tries to equip)
 +  * **Equipment Check**: doEquip() method validates HeroSubClass.SHAMAN before equipping
 +
 +===== JSON Configuration =====
 +This entity is implemented in Java, no JSON configuration exists.
 +
 +===== String Resources =====
 +<code xml>
 +<!-- From values/strings_all.xml or values-ru/strings_all.xml -->
 +<string name="ElfArmor_Name">[Armor name - shared with ElfArmor]</string>
 +<string name="ElfArmor_NotElf">[Warning message when non-Shaman tries to equip]</string>
 +</code>
 +
 +===== Lua Scripts =====
 +This entity is implemented in Java, no Lua script exists.
 +
 +===== Related Entities =====
 +  * [[mr:elf_class|Elf Class]] - Base class for Shaman subclass
 +  * [[mr:armor_kit_item|Armor Kit Item]] - Used to create Shaman Armor from regular armor
 +  * [[mr:elf_armor_item|Elf Armor]] - Parent class implementation
 +
 +===== Usage in Code =====
 +  * Created via Armor Kit transformation on any armor piece
 +  * Equipment restriction enforced in doEquip() method
 +  * Inherits all properties from base armor (level, upgrades, enchantments)
 +  * Part of the Elf class mastery system
 +  * Only equippable by heroes with HeroSubClass.SHAMAN