====== Scroll Of Mirror Image Item - Code References ======
{{ rpd:images:scroll_of_mirror_image_item.png|Scroll of Mirror Image }}
**Entity Kind**: ScrollOfMirrorImage
===== Java Classes =====
* **Main Class**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/scrolls/ScrollOfMirrorImage.java|ScrollOfMirrorImage.java]]
* **Package**: com.watabou.pixeldungeon.items.scrolls
* **Parent Class**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/scrolls/Scroll.java|Scroll]]
* **Related Class**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/npcs/MirrorImage.java|MirrorImage.java]] (NPC clone created by scroll)
* **Registration**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/items/common/ItemFactory.java|ItemFactory.java]] (line 274)
* **Scroll Array**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/scrolls/Scroll.java|Scroll.java]] (lines 43, 60)
===== MirrorImage NPC Class Details =====
* **Class**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/npcs/MirrorImage.java|MirrorImage.java]]
* **Package**: com.watabou.pixeldungeon.actors.mobs.npcs
* **Parent Class**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Mob.java|Mob]]
* **AI State**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/ai/Hunting.java|Hunting]]
* **HP**: 1 (fixed)
* **Carcass Chance**: 0 (no corpse dropped)
* **Immunities**: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/blobs/ToxicGas.java|ToxicGas]], [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/buffs/Paralysis.java|Paralysis]], [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/buffs/Burning.java|Burning]]
* **Attack Behavior**: Destroy itself after one attack (attackProc method)
* **Sprite**: Uses [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/HeroSpriteDef.java|HeroSpriteDef]] to copy hero appearance
===== JSON Configuration =====
* No specific JSON configuration file for this item
* Item registration in [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/hero/initHeroes.json|initHeroes.json]] (general items configuration)
===== String Resources =====
**English (values/strings_all.xml)**:
Scroll of Mirror Image
The incantation on this scroll will create illusionary twins of the reader, which will chase his enemies.
Lines: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values/strings_all.xml#L1762-L1763|1762-1763]]
**Russian (values-ru/strings_all.xml)**:
свиток зеркального образа
Прочтение свитка создаст твоего иллюзорного близнеца, который устремится в погоню за врагами.
Lines: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ru/strings_all.xml#L1878-L1879|1878-1879]]
**Other Languages**:
* **German** (values-de/strings_all.xml): Schriftrolle des Spiegelbildes
* **Spanish** (values-es/strings_all.xml): Pergamino de Imagen Espejo
* **French** (values-fr/strings_all.xml): Parchemin d'Image Miroir
* **Greek** (values-el/strings_all.xml): πάπυρος κατοπτρικής εικόνας
* **Japanese** (values-ja/strings_all.xml): 鏡像のスクロール
* **Chinese Simplified** (values-zh-rCN/strings_all.xml): 镜像卷轴
* **Chinese Traditional** (values-zh-rTW/strings_all.xml): 鏡像的捲軸
* **Indonesian** (values-in/strings_all.xml): Gulungan Bayangan cermin
* **Malay** (values-ms/strings_all.xml): Skrol Imej Cermin
* **Turkish** (values-tr/strings_all.xml): Ayna Görüntüsü Parşömeni
===== Lua Scripts =====
This entity is implemented in Java, no Lua script exists
===== Game Mechanics =====
* **Effect**: Creates 3 illusory clones (NIMAGES = 3) of the reader that hunt enemies
* **Implementation**: Uses [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/wands/WandOfBlink.java|WandOfBlink.appear()]] for clone appearance
* **Clone Behavior**: Clones are created in adjacent empty cells using Level.getEmptyCellNextTo()
* **Invisibility**: Dispels invisibility on use via Invisibility.dispel(reader)
* **Sound**: Plays Assets.SND_READ sound effect
* **Read Time**: Uses TIME_TO_READ constant from Scroll base class
* **Known Status**: Sets scroll as known if at least one image was created
===== Code Flow =====
1. ScrollOfMirrorImage.doRead(Char reader) is called
2. Gets current dungeon level
3. Loops NIMAGES (3) times:
- Gets empty cell next to reader
- Creates clone using reader.makeClone()
- Teleports clone to cell using WandOfBlink.appear()
4. If images were created, sets scroll as known
5. Plays read sound effect
6. Dispels invisibility from reader
7. Spends TIME_TO_READ turns
{{tag> mr items scrolls code_reference}}