User Tools

Site Tools


mr:maze_shadow_mob

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:

  • 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: 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):

<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

mr/maze_shadow_mob.txt · Last modified: by 127.0.0.1