====== Maze Shadow Mob - Code References ====== {{ rpd:images:maze_shadow_mob.png|Maze Shadow }} **Maze Shadow** is a mob entity implemented primarily through Lua scripting with JSON configuration. ===== Entity Kind ===== The entity kind for this mob is: maze_shadow ===== JSON Configuration ===== Configuration file: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/mobsDesc/MazeShadow.json|MazeShadow.json]] Key configuration properties: * **defenseSkill**: 15 * **attackSkill**: 10 * **experience**: 5 * **maxLevel**: 10 * **damageMin**: 5 * **damageMax**: 10 * **baseSpeed**: 2 * **attackDelay**: 0.5 * **hitPoints**: 20 * **name**: Shadow_Name (string resource key) * **description**: Shadow_Desc (string resource key) * **spriteDesc**: spritesDesc/Shadow.json * **canBePet**: true * **walkingType**: WALL * **scriptFile**: scripts/mobs/MazeShadow * **aiState**: Wandering ===== Lua Script Implementation ===== Script file: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/scripts/mobs/MazeShadow.lua|MazeShadow.lua]] The mob uses a custom interact function that swaps positions with the player: local RPD = require "scripts/lib/commonClasses" local mob = require"scripts/lib/mob" return mob.init({ interact = function(self, chr) local ownPos = self:getPos() local newPos = chr:getPos() self:move(newPos) self:getSprite():move(ownPos, newPos) chr:move(ownPos) chr:getSprite():move(newPos, ownPos) end }) ===== String Resources ===== String resource keys used: * Shadow_Name - Mob name * Shadow_Name_Objective - Objective form of name * Shadow_Desc - Mob description * Shadow_Gender - Gender reference Example English strings (from values/strings_all.xml): Shadow Shadow Shadows silently wander the ruins of the old prison. They only occasionally show themselves to adventurers, usually on their last adventure. ===== Sprite Configuration ===== Sprite description: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/spritesDesc/Shadow.json|Shadow.json]] Wiki image: maze_shadow_mob.png ===== Related Entities ===== * Similar mob: [[mr:shadow_mob|Shadow]] - Regular shadow mob * Similar mob: [[mr:shadow_lord_mob|Shadow Lord]] - Boss variant {{tag> mr mob lua_script json_config}}