git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9720 c06c8d41-db1a-0410-9941-cceddc491573
EGOIFEAXIWSCOQ5RHOXNA45JN6HNUI2KOPLGWGPJSXA7EXIAJ6QQC 7IERR3KESLBDHEMGSFRYGA66PZBPGKPUGMFDCSFR3WDX7RXD5OTAC LWYEKDQLOPEBT7MNRGKJHJDNWRPWOMYSEDSD7GSD3PPODU7DV5HQC X7MFMKQTNZ2IWBFVGS6WQV7NRNKJ3DWQAW2X7IQMFQQXW24AHPZQC 6IHRQWBU55WYBVB7K5HDJSBISE3J3VILUCMQ6WYOBUZ43DLOQ6VQC SM6YRPYZS6LMDQA6X3VAOK2PGMUFKPD7JMWJISOQSMX2CBR4ISPAC DUFJKFM5KBCM4272ZKLBPGKHLMDLK6RABUNTDEWRZULTKDTHHSBAC IHV7JHD4E67NEGLZEO3FPQGJPJF3IAV6QV5A63FPG4SU2VRFV47QC SCC6F4PQTDQXFHBIBC5AW5W4AP5VNARSPX6AWIUXGV76GBZDHA6QC NKONHW4JNY6HP2M63MNPM3H64ZWSUNUT5FX2STW4KTS4AMXJXXVQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC W52PCSHX72WAMWKG6L4BPUBVMO6E72KYYBNKAA7554KNOTY6V7WQC local d = 300 - 10 * zig().depthreturn "place:Elf:$ w:" .. d .. " / deep elf sorcerer / " .."deep elf blademaster / deep elf master archer / " .."deep elf annihilator / deep elf demonologist"end))
local d = 300 - 10 * zig().depthreturn "place:Elf:$ w:" .. d .. " / deep elf sorcerer / " .."deep elf blademaster / deep elf master archer / " .."deep elf annihilator / deep elf demonologist"end))
local d = 310 - 10 * zig().depthlocal e = math.max(0, zig().depth - 20)return "place:Orc:$ w:" .. d .. " / orc warlord / orc knight / " .."orc high priest w:5 / orc sorcerer w:5 / stone giant / " .."moth of wrath w:" .. eend))
local d = 310 - 10 * zig().depthlocal e = math.max(0, zig().depth - 20)return "place:Orc:$ w:" .. d .. " / orc warlord / orc knight / " .."orc high priest w:5 / orc sorcerer w:5 / stone giant / " .."moth of wrath w:" .. eend))
// We currently permit no set operations on monsters
static const char *_monster_behaviour_names[] = {"sleep","wander","seek","flee","cornered","panic","lurk"};static beh_type behaviour_by_name(const std::string &name) {ASSERT(ARRAYSZ(_monster_behaviour_names) == NUM_BEHAVIOURS);for (unsigned i = 0; i < ARRAYSZ(_monster_behaviour_names); ++i)if (name == _monster_behaviour_names[i])return static_cast<beh_type>(i);return NUM_BEHAVIOURS;}
// Changing monster behaviour is for the dungeon builder only,// never for user scripts.ASSERT_DLUA;MonsterWrap *mw = clua_get_userdata< MonsterWrap >(ls, MONS_METATABLE);if (!mw || !mw->mons)return (0);const char *attr = luaL_checkstring(ls, 2);if (!attr)return (0);if (!strcmp(attr, "beh")) {const beh_type beh =lua_isnumber(ls, 3) ?static_cast<beh_type>(lua_tonumber(ls, 3)) :lua_isstring(ls, 3) ? behaviour_by_name(lua_tostring(ls, 3)) :NUM_BEHAVIOURS;if (beh != NUM_BEHAVIOURS)mw->mons->behaviour = beh;}
static int mons_behaviour(lua_State *ls) {if (lua_gettop(ls) < 1)return (0);if (lua_isnumber(ls, 1)) {lua_pushvalue(ls, 1);return (1);}else if (lua_isstring(ls, 1)) {const beh_type beh = behaviour_by_name(lua_tostring(ls, 1));if (beh != NUM_BEHAVIOURS) {lua_pushnumber(ls, beh);return (1);}}return (0);}static const struct luaL_reg mons_lib[] ={{ "behaviour", mons_behaviour },{ NULL, NULL }};