static
new
(
string
game_id
= ""
)
static
new
(
string
game_id
= ""
,
string
def_name
)
__gc
(
)
__eq
(
am.character
rhs
)
->
(
boolean
)
static
from_def
(
string
def_name
,
string
game_id
= ""
)
->
(
am.character
)
name
(
)
->
(
string
)
name
(
string
name
)
->
(
am.character
)
description
(
)
->
(
string
)
description
(
string
description
)
->
(
am.character
)
pickup_reach
(
)
->
(
number
)
pickup_reach
(
number
radius
)
->
(
am.character
)
stats
(
)
->
(
am.stats
)
add_body_part
(
am.body_part
part
)
->
(
boolean
)
add_body_part
(
string
part_name
,
string
part_type
= UNKNOWN_PART
)
->
(
boolean
)
remove_body_part
(
am.body_part
part
)
->
(
boolean
)
remove_body_part
(
string
part_name
)
->
(
boolean
)
has_body_part
(
am.body_part
part
)
->
(
boolean
)
has_body_part
(
string
part_name
)
->
(
boolean
)
body_parts
(
)
->
(
table
)
equip_item
(
am.item
item
,
am.body_part
part
)
->
(
boolean
)
equip_item
(
am.item
item
,
string
part_name
)
->
(
boolean
)
unequip_item
(
am.body_part
part
)
->
(
boolean
)
unequip_item
(
string
part_name
)
->
(
boolean
)
equipped
(
string
part_name
)
->
(
am.item
)
inventory
(
)
->
(
am.inventory
)
pickup_item
(
am.item
item
)
->
(
am.code
)
add_item
(
am.item
item
)
->
(
boolean
)
remove_item
(
am.item
item
)
->
(
boolean
)
has_item
(
am.item
item
)
->
(
boolean
)
drop_item
(
am.item
item
)
->
(
integer
)
drop_item
(
am.item
item
,
number
x
,
number
y
)
->
(
integer
)
age
(
)
->
(
number
)
age
(
number
age
)
->
(
am.character
)
race
(
)
->
(
Race
)
race
(
string
race_name
)
->
(
am.character
)
race
(
Race
race
)
->
(
am.character
)
gender
(
)
->
(
string
)
gender
(
string
gender
)
->
(
am.character
)
coin_purse
(
)
->
(
am.coin_purse
)
graphic
(
)
->
(
am.sprite
)
graphic
(
string
asset_name
)
->
(
am.character
)
graphic
(
am.sprite
sprite
)
->
(
am.character
)
destination
(
)
->
(
number
,
number
)
destination
(
number
x
,
number
y
)
->
(
am.character
)
grid_destination
(
)
->
(
integer
,
integer
)
grid_destination
(
integer
x
,
integer
y
)
->
(
am.character
)
destination_length
(
)
->
(
number
)
has_destination
(
)
->
(
boolean
)
location
(
)
->
(
number
,
number
)
location
(
number
x
,
number
y
)
->
(
am.character
)
grid_location
(
)
->
(
integer
,
integer
)
grid_location
(
integer
x
,
integer
y
)
->
(
am.character
)
move
(
number
x
,
number
y
)
->
(
am.character
)
move_grid
(
integer
x
,
integer
y
)
->
(
am.character
)
talk_to
(
string
id
)
->
(
boolean
)
talk_to
(
am.game_object
talkee
)
->
(
boolean
)
fixed_to_grid
(
)
->
(
boolean
)
fixed_to_grid
(
boolean
fixed
)
->
(
am.character
)
map
(
)
->
(
am.map
)
map
(
am.map
map
)
->
(
am.character
)
original_map
(
)
->
(
am.map
)
original_map
(
am.map
map
)
->
(
am.character
)
add_passible_type
(
am.tile_type
tile_type
)
->
(
am.character
)
add_passible_type
(
string
tile_type_name
)
->
(
am.character
)
remove_passible_type
(
am.tile_type
tile_type
)
->
(
am.character
)
remove_all_passible_types
(
)
->
(
am.character
)
has_passible_type
(
am.tile_type
tile_type
)
->
(
boolean
)
get_passible_types
(
)
->
(
table
)
game_id
(
)
->
(
string
)
game_id
(
string
game_id
)
->
(
boolean
)
static
find
(
string
game_id
)
->
(
am.character
)
dialogue_component
(
)
->
(
am.dialogue_component
)
dialogue_component
(
am.dialogue_component
comp
,
boolean
set_attached
= true
)
->
(
)
on
(
string
event_type
,
function
listener
,
table
content
= nil
)
->
(
boolean
)
off
(
string
event_type
,
function
listener
,
table
context
= nil
)
->
(
boolean
)
has_event_listener
(
string
event_type
)
->
(
boolean
)
experience
(
)
->
(
integer
)
experience
(
integer
experience
)
->
(
am.character
)
add_experience
(
integer
experience
)
->
(
am.character
)
level
(
)
->
(
integer
)
level
(
integer
level
)
->
(
am.character
)
add_level
(
integer
levels
)
->
(
am.character
)
max_level
(
)
->
(
integer
)
max_level
(
integer
max_level
)
->
(
am.character
)
ai_func
(
)
->
(
function
)
ai_func
(
function
func
)
->
(
am.character
)
interact_with
(
)
->
(
function
)
interact_with
(
function
func
)
->
(
am.character
)
interact_dialogue
(
am.game_object
interacter
,
bool
by_movement
)
->
(
am.code
)
attrs
(
boolean
create_table
= false
)
->
(
DataTable
)
attrs
(
am.data_table
attr_table
)
->
(
am.character
)
static
new
(
string
game_id
= ""
)
static
new
(
string
game_id
= ""
,
string
def_name
)
__gc
(
)
__eq
(
am.character
rhs
)
->
(
boolean
)
static
from_def
(
string
def_name
,
string
game_id
= ""
)
->
(
am.character
)
Example (a test map Lua file):
npc = am.character.from_def("npcs:male1") if (npc ~= nil) npc:name("Fred") end
In "data/defs/npcs.lua":
game = am.engine.game() npc = am.character.new() npc:age(21):gender("male"):graphic(am.sprite.new("characters/npc/front")) -- Here the npc is registered with the name "male1" and "npcs:" will -- automatically be prepended because of the filename. game:char_def("male1", npc)
name
(
)
->
(
string
)
name
(
string
name
)
->
(
am.character
)
description
(
)
->
(
string
)
description
(
string
description
)
->
(
am.character
)
pickup_reach
(
)
->
(
number
)
pickup_reach
(
number
radius
)
->
(
am.character
)
stats
(
)
->
(
am.stats
)
add_body_part
(
am.body_part
part
)
->
(
boolean
)
add_body_part
(
string
part_name
,
string
part_type
= UNKNOWN_PART
)
->
(
boolean
)
remove_body_part
(
am.body_part
part
)
->
(
boolean
)
remove_body_part
(
string
part_name
)
->
(
boolean
)
has_body_part
(
am.body_part
part
)
->
(
boolean
)
has_body_part
(
string
part_name
)
->
(
boolean
)
body_parts
(
)
->
(
table
)
equip_item
(
am.item
item
,
am.body_part
part
)
->
(
boolean
)
equip_item
(
am.item
item
,
string
part_name
)
->
(
boolean
)
unequip_item
(
am.body_part
part
)
->
(
boolean
)
unequip_item
(
string
part_name
)
->
(
boolean
)
equipped
(
string
part_name
)
->
(
am.item
)
inventory
(
)
->
(
am.inventory
)
pickup_item
(
am.item
item
)
->
(
am.code
)
success | The item was picked up. |
nil_parameter | The item was nil. |
out_of_range | The item was out of range of this characters pickup radius. |
not_enough_inventory_space | There's not enough space for the item to be picked up. |
add_item
(
am.item
item
)
->
(
boolean
)
remove_item
(
am.item
item
)
->
(
boolean
)
has_item
(
am.item
item
)
->
(
boolean
)
drop_item
(
am.item
item
)
->
(
integer
)
success | The item was dropped. |
nil_parameter | The item was nil. |
off_the_map | The drop location was off the map. |
out_of_range | The item was out of range of this characters pickup radius to drop (should not happen). |
invalid_location | The drop location was invalid for the item. |
drop_item
(
am.item
item
,
number
x
,
number
y
)
->
(
integer
)
age
(
)
->
(
number
)
age
(
number
age
)
->
(
am.character
)
race
(
)
->
(
Race
)
race
(
string
race_name
)
->
(
am.character
)
race
(
Race
race
)
->
(
am.character
)
gender
(
)
->
(
string
)
gender
(
string
gender
)
->
(
am.character
)
coin_purse
(
)
->
(
am.coin_purse
)
graphic
(
)
->
(
am.sprite
)
graphic
(
string
asset_name
)
->
(
am.character
)
graphic
(
am.sprite
sprite
)
->
(
am.character
)
destination
(
)
->
(
number
,
number
)
destination
(
number
x
,
number
y
)
->
(
am.character
)
grid_destination
(
)
->
(
integer
,
integer
)
grid_destination
(
integer
x
,
integer
y
)
->
(
am.character
)
destination_length
(
)
->
(
number
)
has_destination
(
)
->
(
boolean
)
location
(
)
->
(
number
,
number
)
location
(
number
x
,
number
y
)
->
(
am.character
)
grid_location
(
)
->
(
integer
,
integer
)
grid_location
(
integer
x
,
integer
y
)
->
(
am.character
)
move
(
number
x
,
number
y
)
->
(
am.character
)
move_grid
(
integer
x
,
integer
y
)
->
(
am.character
)
talk_to
(
string
id
)
->
(
boolean
)
talk_to
(
am.game_object
talkee
)
->
(
boolean
)
fixed_to_grid
(
)
->
(
boolean
)
fixed_to_grid
(
boolean
fixed
)
->
(
am.character
)
map
(
)
->
(
am.map
)
map
(
am.map
map
)
->
(
am.character
)
original_map
(
)
->
(
am.map
)
original_map
(
am.map
map
)
->
(
am.character
)
add_passible_type
(
am.tile_type
tile_type
)
->
(
am.character
)
add_passible_type
(
string
tile_type_name
)
->
(
am.character
)
remove_passible_type
(
am.tile_type
tile_type
)
->
(
am.character
)
remove_all_passible_types
(
)
->
(
am.character
)
has_passible_type
(
am.tile_type
tile_type
)
->
(
boolean
)
get_passible_types
(
)
->
(
table
)
game_id
(
)
->
(
string
)
game_id
(
string
game_id
)
->
(
boolean
)
static
find
(
string
game_id
)
->
(
am.character
)
dialogue_component
(
)
->
(
am.dialogue_component
)
dialogue_component
(
am.dialogue_component
comp
,
boolean
set_attached
= true
)
->
(
)
on
(
string
event_type
,
function
listener
,
table
content
= nil
)
->
(
boolean
)
character:on("talkTo", function(event) am_log("Character talked to") end)
off
(
string
event_type
,
function
listener
,
table
context
= nil
)
->
(
boolean
)
function talkToOnce(event) am_log("Character talked to once") character:off("talkTo", talkToOnce) end character:on("talkTo", talkToOnce)
has_event_listener
(
string
event_type
)
->
(
boolean
)
experience
(
)
->
(
integer
)
experience
(
integer
experience
)
->
(
am.character
)
add_experience
(
integer
experience
)
->
(
am.character
)
level
(
)
->
(
integer
)
level
(
integer
level
)
->
(
am.character
)
add_level
(
integer
levels
)
->
(
am.character
)
max_level
(
)
->
(
integer
)
max_level
(
integer
max_level
)
->
(
am.character
)
ai_func
(
)
->
(
function
)
ai_func
(
function
func
)
->
(
am.character
)
interact_with
(
)
->
(
function
)
interact_with
(
function
func
)
->
(
am.character
)
interact_dialogue
(
am.game_object
interacter
,
bool
by_movement
)
->
(
am.code
)
did_interact | Interaction occured, perform no further actions. |
did_not_interact | Interaction did not occur, can perform further actions. |
do_not_interact | Interaction did not occur, but do not perform any further actions. |
attrs
(
boolean
create_table
= false
)
->
(
DataTable
)
attrs
(
am.data_table
attr_table
)
->
(
am.character
)