{ local need_skills_opened = true function ready() FormChange() OpenSkills() AnnounceDamage() Slowed_Check() DDoorWarning() DDoorCounter() NoticeGa() NoticeBa() NoticeIc() XL_DEWz() spell_init() Petrifying_Check() end } #tile_font_crt_family = Consolas #tile_font_stat_family = Consolas #tile_font_msg_family = Consolas #tile_font_lbl_family = Consolas tile_font_crt_family = D2Coding tile_font_stat_family = D2Coding tile_font_msg_family = D2Coding tile_font_lbl_family = D2Coding msg_min_height = 7 msg_max_height = 10 msg_webtiles_height = 10 tile_web_mouse_control = false ## 종족 타일 ## #tile_show_player_species = true ## zot timer ## always_show_zot = true ## 상태창에 골드 현황 표시 ## #$ lab_gold_status = true ## 마우스 이동 방지 ## #$ lab_disable_mouse_move = true ## 게임 시작시 음악 자동 활성화 ## #$ lab_sound_on = true ## 세션유지 ## #$ lab_maintain_session = true ## 악마 등급 표시 ## tile_show_demon_tier = True ## 자동 매뉴얼 스킬 분배 ## default_manual_training = true tile_show_threat_levels = easy tough nasty show_more = false ## 방을 이동해도 채팅을 지우지 않음 ## #$ lab_disable_chat_clear = true ##################################### # enum values :/ : ATT_FRIENDLY = 4 : ATT_NEUTRAL = 1 : ATT_HOSTILE = 0 : LOS = 7 : if you.race() == "Barachi" then : LOS = 8 : end ##################################### { -- just a few outs for nondamaging things -- proper threat assessment is a topic for a whole bot function is_threatening(m) if m then if m:attitude() > ATT_NEUTRAL then return false end if m:is_firewood() then if not string.find(m:name(), "ballistomycete") then return false end end if m:name() == "butterfly" then return false end return true end end function check_los() local safe_los = true for i = -LOS,LOS do for j = -LOS,LOS do m = monster.get_monster_at(i,j) -- if m then if m and is_threatening(m) then -- comment this out and uncomment above if you want to fire on every monster to come into view; this will include things like plants safe_los = false end end end return safe_los end function launch_auto_channel() auto_channel = true end } ## 메뉴얼 효과 종료시 알림 ## force_more_message += You have finished your manual #force_more_message += Your transformation is almost over. #tile_font_crt_family = Consolas #tile_font_stat_family = Consolas #tile_font_msg_family = Consolas #tile_font_lbl_family = Consolas tile_font_crt_family = D2Coding tile_font_stat_family = D2Coding tile_font_msg_family = D2Coding tile_font_lbl_family = D2Coding ## zot timer ## always_show_zot = true ## 상태창에 골드 현황 표시 ## #$ lab_gold_status = true ## 마우스 이동 방지 ## #$ lab_disable_mouse_move = true ## 게임 시작시 음악 자동 활성화 ## #$ lab_sound_on = true ## 세션유지 ## #$ lab_maintain_session = true ## 종족 표시 ## #tile_show_player_species = true ## 악마 등급 표시 ## tile_show_demon_tier = True ## 자동 매뉴얼 스킬 분배 ## default_manual_training = true tile_show_threat_levels = easy tough nasty show_more = false #$ lab_disable_chat_clear = true ##################################### # enum values :/ : ATT_FRIENDLY = 4 : ATT_NEUTRAL = 1 : ATT_HOSTILE = 0 : LOS = 7 : if you.race() == "Barachi" then : LOS = 8 : end ##################################### { -- just a few outs for nondamaging things -- proper threat assessment is a topic for a whole bot function is_threatening(m) if m then if m:attitude() > ATT_NEUTRAL then return false end if m:is_firewood() then if not string.find(m:name(), "ballistomycete") then return false end end if m:name() == "butterfly" then return false end return true end end function check_los() local safe_los = true for i = -LOS,LOS do for j = -LOS,LOS do m = monster.get_monster_at(i,j) -- if m then if m and is_threatening(m) then -- comment this out and uncomment above if you want to fire on every monster to come into view; this will include things like plants safe_los = false end end end return safe_los end function launch_auto_channel() auto_channel = true end } ## 메뉴얼 효과 종료시 알림 ## force_more_message += You have finished your manual fail_severity_to_confirm = 0 ## 메시지 색상 변경 ## message_colour ^= lightgreen:.*(you hit|as you read|it was|You throw|You impale|You perforate|fails to defend itself|You spit|You stick|You start|You catch|You open|You close|You slash|You enter|Moving in|You skewer|You fail|You miscast) message_colour ^= cyan:.*(You add) message_colour ^= magenta:.*(miss) message_colour ^= yellow:.*(Training target|You now have) message_colour ^= brown:.*(hits you|sting you) message_colour ^= lightblue:.*(hp|done|You need to enable|You see|Things that are here) message_colour ^= lightred:.*(You are too injured) message_colour ^= cyan:.*(wielding) ## 체력 75% 시, 자동 전투 중지 ## autofight_stop = 75 ###### Damage calc ############################################## #include += HDamage.rc { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 0 then local hp_difference = previous_hp - current_hp local mp_difference = previous_mp - current_mp if max_hp_increased or max_hp_decreased then if max_hp_increased then crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") end if hp_difference > (max_hp * 0.20) then crawl.mpr("MASSIVE DAMAGE!!") end end --On gaining more than 1 health if (current_hp > previous_hp) then --Removes the negative sign local health_inturn = (0 - hp_difference) if (health_inturn > 1) and not (current_hp == max_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") end end if (current_hp == max_hp) then crawl.mpr("Health restored: " .. current_hp .. "") end end --On gaining more than 1 magic if (current_mp > previous_mp) then --Removes the negative sign local mp_inturn = (0 - mp_difference) if (mp_inturn > 1) and not (current_mp == max_mp) then if current_mp < (max_mp * 0.25) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") elseif current_mp < (max_mp * 0.50) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") else crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") end end if (current_mp == max_mp) then crawl.mpr("MP restored: " .. current_mp .. "") end end --On losing magic if current_mp < previous_mp then if current_mp <= (max_mp / 5) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") elseif current_mp <= (max_mp / 2) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") else crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") end end end end --Set previous hp/mp and form at end of turn previous_hp = current_hp previous_mp = current_mp previous_form = current_form was_berserk_last_turn = you_are_berserk end } ## hp, mp, stat 색상 변경 ## hp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red mp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red stat_colour = 3:red, 7:lightred ## Functions ## { local need_skills_opened = true function OpenSkills() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } { function Petrifying_Check() if you.petrifying() then crawl.yesno("You are now petrifying so your action will be checked. (Y or N to confirm.)", false, false, true, true) crawl.mpr("Consider to using tele/blink, Yara, cancellation or other emergency measures......", 5) end end } { function spell_init() local spell_list = {} for _, spell_name in ipairs(you.spells()) do spell_list[spell_name] = true end return spell_list end spells_known = spell_init() } { function control(c) return string.char(string.byte(c) - string.byte('a') + 1) end function magic(command) crawl.process_keys(command) end } --this function is module, so don't change its name #{ #function choose_stat_gain() # if DECj then # return "i" # else # return # end #end #} { local speed = true function Slowed_Check() if speed and string.find(crawl.messages(8), "yourself slow down") and you.status("in death's door (expiring)") then crawl.yesno("Warning: You are slowed while DDoor running out! (Y or N to confirm.)", false, false, true, true) speed = false end if not speed and not you.status("in death's door (expiring)") then speed = true end end } { local door = true function DDoorWarning() if you.status("in death's door (expiring)") and door then crawl.yesno("DDoor is almost expired! (Y or N to confirm.)", false, false, true, false) crawl.mpr("It will be ended in 5-10 turns...... ") door = false end if not you.status("in death's door (expiring)") then door = true end end } { local counter = you.turns() function DDoorCounter() if you.status("in death's door (expiring)") then crawl.mpr("Count "..you.turns() - counter.."......") end if not you.status("in death's door (expiring)") then counter = you.turns()+1 end end } { local gaunt = true function NoticeGa() if string.find(crawl.messages(4), "gauntlet on this level") and gaunt then gaunt = false crawl.yesno("Hurry, A gateway to the gauntlet has been detected! (Y or N to confirm.)", false, false, true, true) end end } { local bail = true function NoticeBa() if string.find(crawl.messages(4), "bailey on this level") and bail then bail = false crawl.yesno("Hurry, A gateway to a bailey has been detected! (Y or N to confirm.)", false, false, true, true) end end } { local cave = true function NoticeIc() if string.find(crawl.messages(4), "cave on this level") and cave then cave = false crawl.yesno("Hurry, A gateway to an ice cave has been detected! (Y or N to confirm.)", false, false, true, true) end end } { --Never use autopickup_exceptions without ^ or +. otherwise, rest of autopickup settings will be nullified. local PhaseA = true local PhaseB = true local PhaseC = true local PhaseD = true local PhaseE = true function XL_DEWz() if you.xl() >= 9 and PhaseA then crawl.setopt("rest_wait_percent = 80") crawl.setopt("autopickup_exceptions ^= >poisoned") crawl.setopt("autopickup_exceptions ^= = 14 and PhaseB then crawl.setopt("autopickup_exceptions ^= >potion.*might") crawl.setopt("autopickup_exceptions ^= >potion.*berserk rage") crawl.setopt("autopickup_exceptions ^= >wand.*random effects") crawl.setopt("autopickup_exceptions ^= >wand.*polymorph") crawl.setopt("autopickup_exceptions ^= >curare") crawl.setopt("autopickup_exceptions ^= >throwing net") PhaseB = false end if you.num_runes() >= 2 and PhaseC then crawl.setopt("autopickup_exceptions ^= >wand.*flame") crawl.setopt("autopickup_exceptions ^= >wand.*charming") crawl.setopt("autopickup_exceptions ^= >phantom mirror") crawl.setopt("autopickup_exceptions ^= >box of beasts") PhaseC = false end if ((spells.memorised("Death's Door") and spells.fail("Death's Door") <= 15) or you.skill("fighting") >= 18) and PhaseD then crawl.setopt("rest_wait_percent = 50") crawl.setopt("autopickup_exceptions ^= >wand.*mindburst") crawl.setopt("autopickup_exceptions ^= >scroll.*fear") crawl.setopt("autopickup_exceptions ^= >scroll.*summoning") crawl.setopt("autopickup_exceptions ^= scroll.*(torment|vulnerability) ae += <(Roxanne|horn of Geryon|.*Wucad Mu) ae ^= <(immolation|lignification|mutation|atrraction) ae ^= staff of (fire|cold|air|earth|conj|pois|death) ae += >amulet of (faith|regen|reflect|the acrobat|guardian|magic) ae += >chessboard ae += <(boomerang|javelin|throwing net|dart) ae += ring of protection from (magic|fire|cold) ae += >ring of (fire|ice|pois|positive|resist corr|see|will) ae += >ring of (mag|flight|steal|wiz|int|str|dex|slay|prot|eva) : end : if you.race() == "Ogre" or you.race() == "Troll" then ae += 18 and check1 then crawl.setopt("autopickup_exceptions += >staff of (fire|cold|air|earth|conj|pois|death)") check1 = false end if you.xl() > 18 and check2 then crawl.setopt("autopickup_exceptions += >amulet of (faith|regen|reflect|the acrobat|guardian|magic)") check2 = false end if you.xl() > 18 and you.race() ~= "Octopode" and check3 then crawl.setopt("autopickup_exceptions += >ring of (slaying|protect)") crawl.setopt("autopickup_exceptions += >ring of (will)") crawl.setopt("autopickup_exceptions += >ring of (evasion|int|str|dex)") crawl.setopt("autopickup_exceptions += >ring of (magical)") crawl.setopt("autopickup_exceptions += >ring of (protection from fire|protection from cold)") crawl.setopt("autopickup_exceptions += >ring of (fire|ice)") crawl.setopt("autopickup_exceptions += >ring of (positive)") crawl.setopt("autopickup_exceptions += >ring of (stealth|wiz)") crawl.setopt("autopickup_exceptions += >ring of (flight|poison|resist corr|see)") check3 = false end end } { function c_answer_prompt(prompt) if prompt:find("Really.*into that cloud of flame?") and you.res_fire() == 3 then return true end if prompt:find("Really.*into that cloud of freezing vapour?") and you.res_cold() == 3 then return true end if prompt:find("vortices") or prompt:find("vortex") or prompt:find("friend") then return true end if prompt:find("That beam") and you.res_fire() == 0 and not you.status("death's door") then if crawl.yesno("REALLY cast on yourself without fire resistance?",false,'n') then return end end if prompt:find("Really attack while wielding") then return true end if prompt == "Really attack near your battlesphere?" then return true end end } { add_autopickup_func(function(it, name) local class = it.class(true) local armour_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots", body="Armour", shield="Shield"} if (class == "armour") then if it.is_useless then return false end sub_type = it.subtype() equipped_item = items.equipped_at(armour_slots[sub_type]) if (sub_type == "cloak") or (sub_type == "helmet") or (sub_type == "gloves") or (sub_type == "boots") then if not equipped_item then return true else return it.artefact or it.branded or it.ego end end if (sub_type == "body") then return false end if (sub_type == "shield") then if equipped_item then return it.artefact or it.branded or it.ego end end end end) } { local oldXL = 0 function FormChange() if you.xl() ~= oldXL then oldXL = you.xl() else return end if you.race() == "Draconian" then crawl.setopt("tile_player_tile = playermons") end if you.race() == "Minotaur" then if you.xl() < 12 then crawl.setopt("tile_player_tile = tile:mons_minotaur") else crawl.setopt("tile_player_tile = tile:mons_asterion") end end if you.race() == "Demigod" then if you.xl() < 12 then crawl.setopt("tile_player_tile = tile:mons_demigod") else crawl.setopt("tile_player_tile = tile:mons_frederick") end end if you.race() == "Formicid" then if you.xl() < 12 then crawl.setopt("tile_player_tile = tile:mons_formicid") else crawl.setopt("tile_player_tile = tile:mons_entropy_weaver") end end if you.race() == "Deep Dwarf" then if you.xl() < 12 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_dwarf") else crawl.setopt("tile_player_tile = tile:mons_deep_dwarf") end else if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_wiglaf") else crawl.setopt("tile_player_tile = tile:mons_jorgrun") end end end if you.race() == "Human" or you.race() == "halfling" then if you.god() == "Lugonu" then crawl.setopt("tile_player_tile = tile:mons_louise") elseif you.god() == "Xom" or you.god() == "Nemelex Xobeh" then crawl.setopt("tile_player_tile = tile:mons_killer_klown") elseif you.god() == "Okawaru" then crawl.setopt("tile_player_tile = tile:mons_donald") elseif you.god() == "Trog" then crawl.setopt("tile_player_tile = tile:mons_rupert") elseif you.god() == "Yredelemnul" then crawl.setopt("tile_player_tile = tile:mons_death_knight") elseif you.god() == "Makhleb" then crawl.setopt("tile_player_tile = tile:mons_hell_knight") elseif you.god() == "Zin" then crawl.setopt("tile_player_tile = tile:mons_mennas") elseif you.best_skill() == "Necromancy" then crawl.setopt("tile_player_tile = tile:mons_josephine") elseif you.best_skill() == "Summonings" then crawl.setopt("tile_player_tile = tile:mons_kirke") elseif you.best_skill() == "Fire magic" then crawl.setopt("tile_player_tile = tile:mons_margery") elseif you.best_skill() == "Air magic" then crawl.setopt("tile_player_tile = tile:mons_nikola") elseif you.best_skill() == "Polearms" then crawl.setopt("tile_player_tile = tile:mons_edmund") elseif you.best_skill() == "Maces & Flails" then crawl.setopt("tile_player_tile = tile:mons_edmund") elseif you.best_skill() == "Long blades" then crawl.setopt("tile_player_tile = tile:mons_erica") elseif you.best_skill() == "Slings" then crawl.setopt("tile_player_tile = tile:mons_joseph") elseif you.best_skill() == "Hexes" then crawl.setopt("tile_player_tile = tile:mons_psyche") elseif you.best_skill() == "Fighting" then crawl.setopt("tile_player_tile = tile:mons_terence") elseif you.best_skill() == "Spellcasting" then crawl.setopt("tile_player_tile = tile:mons_wizard") elseif you.best_skill() == "Stealth" then crawl.setopt("tile_player_tile = tile:mons_maurice") else crawl.setopt("tile_player_tile = tile:mons_human") end end if you.race() == "Felid" then if you.xl() < 3 then crawl.setopt("tile_player_tile = tile:felid_2") elseif you.xl() < 6 then crawl.setopt("tile_player_tile = tile:felid_1") elseif you.xl() < 9 then crawl.setopt("tile_player_tile = tile:felid_3") elseif you.xl() < 12 then crawl.setopt("tile_player_tile = tile:felid_6") elseif you.xl() < 15 then crawl.setopt("tile_player_tile = tile:felid_5") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:felid_8") elseif you.xl() < 21 then crawl.setopt("tile_player_tile = tile:felid_7") elseif you.xl() < 24 then crawl.setopt("tile_player_tile = tile:felid_4") else crawl.setopt("tile_player_tile = tile:mons_natasha") end end if you.race() == "Demonspawn" then if you.xl() == 2 and you.get_base_mutation_level("antennae", true, false, false) >= 1 then else if you.get_base_mutation_level("magic link", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_blood_saint") elseif you.get_base_mutation_level("black mark", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_black_sun") elseif you.get_base_mutation_level("powered by death", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_warmonger") elseif you.get_base_mutation_level("demonic guardian", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_corrupter") elseif you.get_base_mutation_level("ignite blood", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_infernal_demonspawn") elseif you.get_base_mutation_level("passive freeze", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_gelid_demonspawn") elseif you.get_base_mutation_level("spiny", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_torturous_demonspawn") elseif you.get_base_mutation_level("nightstalker", true, false, false) >= 1 then crawl.setopt("tile_player_tile = tile:mons_monstrous_demonspawn") else crawl.setopt("tile_player_tile = tile:mons_demonspawn") end end end if you.race() == "Deep Elf" then if you.xl() < 12 then if you.base_skill("Bows") >= 14 then crawl.setopt("tile_player_tile = tile:mons_deep_elf_archer") elseif you.base_skill("Short Blades") >= 10 then crawl.setopt("tile_player_tile = tile:mons_deep_elf_knight") elseif you.base_skill("Long Blades") >= 10 then crawl.setopt("tile_player_tile = tile:mons_deep_elf_knight") else crawl.setopt("tile_player_tile = tile:MONS_ELF") end else if you.base_skill("Bows") >= 18 then crawl.setopt("tile_player_tile = tile:mons_deep_elf_master_archer") elseif you.base_skill("Short Blades") >= 14 then crawl.setopt("tile_player_tile = tile:mons_deep_elf_blademaster") elseif you.base_skill("Long Blades") >= 14 then crawl.setopt("tile_player_tile = tile:mons_deep_elf_blademaster") elseif you.base_skill("Summonings") > you.base_skill("Fire Magic") then crawl.setopt("tile_player_tile = tile:mons_deep_elf_demonologist") elseif you.base_skill("Necromancy") > you.base_skill("Fire Magic") then crawl.setopt("tile_player_tile = tile:mons_deep_elf_death_mage") elseif you.base_skill("Air Magic") > you.base_skill("Fire Magic") then crawl.setopt("tile_player_tile = tile:mons_deep_elf_elementalist") elseif you.base_skill("Earth Magic") > you.base_skill("Fire Magic") then crawl.setopt("tile_player_tile = tile:mons_deep_elf_annihilator") elseif you.base_skill("Ice Magic") > you.base_skill("Fire Magic") then crawl.setopt("tile_player_tile = tile:mons_deep_elf_high_priest") else crawl.setopt("tile_player_tile = tile:mons_deep_elf_sorcerer") end end end if you.race() == "Gargoyle" then if you.xl() < 9 then crawl.setopt("tile_player_tile = tile:mons_gargoyle") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_molten_gargoyle") else crawl.setopt("tile_player_tile = tile:mons_war_gargoyle") end end if you.race() == "Centaur" then if you.xl() < 9 then crawl.setopt("tile_player_tile = tile:mons_centaur") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_centaur_warrior") else crawl.setopt("tile_player_tile = tile:mons_nessos") end end if you.race() == "Octopode" then if you.xl() < 9 then crawl.setopt("tile_player_tile = tile:mons_octopode") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_tentacled_monstrosity") else crawl.setopt("tile_player_tile = tile:mons_cigotuvis_monster") end end if you.race() == "Kobold" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_kobold") elseif you.xl() < 12 then crawl.setopt("tile_player_tile = tile:MONS_KOBOLD_BRIGAND") elseif you.xl() < 18 then if you.base_skill("Summonings") >= 10 then crawl.setopt("tile_player_tile = tile:mons_kobold_demonologist") else crawl.setopt("tile_player_tile = tile:mons_pikel") end else crawl.setopt("tile_player_tile = tile:mons_sonja") end end if you.race() == "Ghoul" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_necrophage") elseif you.xl() < 12 then crawl.setopt("tile_player_tile = tile:mons_bog_body") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_ghoul") else crawl.setopt("tile_player_tile = tile:mons_jiangshi") end end if you.race() == "Barachi" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_bullfrog") elseif you.xl() < 12 then crawl.setopt("tile_player_tile = tile:mons_blink_frog") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_prince_ribbit") elseif you.xl() < 21 then crawl.setopt("tile_player_tile = tile:mons_cane_toad") else crawl.setopt("tile_player_tile = tile:mons_goliath_frog") end end if you.race() == "Tengu" then if you.xl() < 5 then crawl.setopt("tile_player_tile = tile:mons_tengu") elseif you.xl() < 12 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_tengu_warrior") else crawl.setopt("tile_player_tile = tile:mons_tengu_conjurer") end elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_tengu_reaver") else crawl.setopt("tile_player_tile = tile:mons_sojobo") end end if you.race() == "Gnoll" then if you.god() == "Xom" then crawl.setopt("tile_player_tile = tile:mons_crazy_yiuf") elseif you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_gnoll") elseif you.xl() < 12 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_gnoll_sergeant") else crawl.setopt("tile_player_tile = tile:mons_gnoll_shaman") end elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_grum") else crawl.setopt("tile_player_tile = tile:mons_crazy_yiuf") end end if you.race() == "Vampire" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_vampire") elseif you.xl() < 18 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_vampire_knight") else crawl.setopt("tile_player_tile = tile:mons_vampire_mage") end else crawl.setopt("tile_player_tile = tile:mons_jory") end end if you.race() == "Merfolk" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_merfolk") elseif you.xl() < 12 then crawl.setopt("tile_player_tile = tile:mons_merfolk_impaler") elseif you.xl() < 18 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_merfolk_javelineer") else crawl.setopt("tile_player_tile = tile:mons_merfolk_aquamancer") end else crawl.setopt("tile_player_tile = tile:mons_ilsuiw") end end if you.race() == "Spriggan" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_spriggan") elseif you.xl() < 12 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_spriggan_defender") else crawl.setopt("tile_player_tile = tile:mons_spriggan_druid") end elseif you.xl() < 18 then if you.flying() == true then crawl.setopt("tile_player_tile = tile:mons_spriggan_rider") elseif you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_spriggan_berserker") else crawl.setopt("tile_player_tile = tile:mons_spriggan_air_mage") end else if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_agnes") else crawl.setopt("tile_player_tile = tile:mons_the_enchantress") end end end if you.race() == "Hill Orc" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_orc") elseif you.xl() < 12 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_orc_warrior") else crawl.setopt("tile_player_tile = tile:mons_orc_wizard") end elseif you.xl() < 18 then if you.god() == "Beogh" then crawl.setopt("tile_player_tile = tile:mons_orc_priest") elseif you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_urug") else crawl.setopt("tile_player_tile = tile:mons_blork_the_orc") end elseif you.xl() < 21 then if you.god() == "Beogh" then crawl.setopt("tile_player_tile = tile:mons_orc_high_priest") elseif you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_orc_knight") else crawl.setopt("tile_player_tile = tile:mons_orc_sorcerer") end else if you.god() == "Beogh" then crawl.setopt("tile_player_tile = tile:mons_saint_roka") elseif you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_orc_warlord") else crawl.setopt("tile_player_tile = tile:mons_nergalle") end end end if you.race() == "Troll" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_purgy") elseif you.xl() < 10 then crawl.setopt("tile_player_tile = tile:mons_troll") elseif you.xl() < 14 then crawl.setopt("tile_player_tile = tile:mons_snorg") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_deep_troll") elseif you.xl() < 21 then if you.base_skill("Earth Magic") >= 9 then crawl.setopt("tile_player_tile = tile:mons_deep_troll_earth_mage") else crawl.setopt("tile_player_tile = tile:mons_deep_troll_shaman") end else crawl.setopt("tile_player_tile = tile:mons_iron_troll") end end if you.race() == "Ogre" then if you.xl() < 9 then crawl.setopt("tile_player_tile = tile:mons_ogre") elseif you.xl() < 18 then if you.base_skill("SpellCasting") >= 10 then crawl.setopt("tile_player_tile = tile:mons_ogre_mage") else crawl.setopt("tile_player_tile = tile:mons_two_headed_ogre") end else if you.base_skill("SpellCasting") >= 10 then crawl.setopt("tile_player_tile = tile:mons_erolcha") else crawl.setopt("tile_player_tile = tile:MONS_IRONBOUND_THUNDERHULK") end end end if you.race() == "Naga" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_naga") elseif you.xl() < 10 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_naga_warrior") else crawl.setopt("tile_player_tile = tile:mons_naga_ritualist") end elseif you.xl() < 14 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_naga_sharpshooter") else crawl.setopt("tile_player_tile = tile:mons_naga_mage") end elseif you.xl() < 18 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_vashnia") else crawl.setopt("tile_player_tile = tile:mons_nagaraja") end else crawl.setopt("tile_player_tile = tile:mons_lamia") end end if you.race() == "Mummy" then if you.xl() < 6 then crawl.setopt("tile_player_tile = tile:mons_mummy") elseif you.xl() < 13 then crawl.setopt("tile_player_tile = tile:mons_guardian_mummy") elseif you.xl() < 18 then crawl.setopt("tile_player_tile = tile:mons_mummy_priest") elseif you.xl() < 21 then crawl.setopt("tile_player_tile = tile:mons_royal_mummy") else crawl.setopt("tile_player_tile = tile:mons_menkaure") end end if you.race() == "Vine Stalker" then if you.xl() < 3 then crawl.setopt("tile_player_tile = tile:MONS_BUSH") elseif you.xl() < 6 then crawl.setopt("tile_player_tile = tile:MONS_BUSH_BURNING") elseif you.xl() < 12 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_dryad") else crawl.setopt("tile_player_tile = tile:mons_oklob_sapling") end elseif you.xl() < 18 then if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:MONS_VINE_STALKER") else crawl.setopt("tile_player_tile = tile:mons_oklob_plant") end else if you.base_skill("Fighting") > you.base_skill("SpellCasting") then crawl.setopt("tile_player_tile = tile:mons_treant") else crawl.setopt("tile_player_tile = tile:mons_thorn_hunter") end end end end }