Module: Lich::Gemstone::Creature

Defined in:
documented/gemstone/creature.rb

Overview

Main Creature module - provides the public API

This module serves as the primary interface for creature tracking. It delegates to CreatureInstance for runtime tracking and CreatureTemplate for static creature data.

Examples:

Basic usage

# Register a creature encountered in combat
creature = Creature.register("troll", 1234, "troll")

# Track damage and status
creature.add_damage(50)
creature.add_status(:stunned)

# Check creature state
puts creature.hp_percent      # => 75.0
puts creature.has_status?(:stunned)  # => true

# Get statistics
puts Creature.stats

Class Method Summary collapse

Class Method Details

.[](id) ⇒ Object

Lookup creature instance by ID



661
662
663
# File 'documented/gemstone/creature.rb', line 661

def self.[](id)
  CreatureInstance[id]
end

.allObject

Get all creature instances



696
697
698
# File 'documented/gemstone/creature.rb', line 696

def self.all
  CreatureInstance.all
end

.cleanup_old(**options) ⇒ Object

Cleanup old instances



691
692
693
# File 'documented/gemstone/creature.rb', line 691

def self.cleanup_old(**options)
  CreatureInstance.cleanup_old(**options)
end

.clearObject

Clear all instances



686
687
688
# File 'documented/gemstone/creature.rb', line 686

def self.clear
  CreatureInstance.clear
end

.configure(**options) ⇒ Object

Configure the system



671
672
673
# File 'documented/gemstone/creature.rb', line 671

def self.configure(**options)
  CreatureInstance.configure(**options)
end

.register(name, id, noun = nil) ⇒ Object

Register a new creature



666
667
668
# File 'documented/gemstone/creature.rb', line 666

def self.register(name, id, noun = nil)
  CreatureInstance.register(name, id, noun)
end

.statsObject

Get registry stats



676
677
678
679
680
681
682
683
# File 'documented/gemstone/creature.rb', line 676

def self.stats
  {
    instances: CreatureInstance.size,
    templates: CreatureTemplate.all.size,
    max_size: CreatureInstance.class_variable_get(:@@max_size),
    auto_register: CreatureInstance.auto_register?
  }
end