Table of Contents

Maze Shadow Mob - Code References

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: MazeShadow.json

Key configuration properties:

Lua Script Implementation

Script file: 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:

Example English strings (from values/strings_all.xml):

<string name="Shadow_Name">Shadow</string>
<string name="Shadow_Name_Objective">Shadow</string>
<string name="Shadow_Desc">Shadows silently wander the ruins of the old prison. They only occasionally show themselves to adventurers, usually on their last adventure.</string>

Sprite Configuration

Sprite description: Shadow.json

Wiki image:

maze_shadow_mob.png