#$ lab_interface_translate = true #$ lab_apply_font = true #$ lab_skill_window_translate = true default_manual_training = true #$ lab_ability_window_translate = true #$ lab_magic_window_translate = true #$ lab_gold_status = true explore_wall_bias = 100 hp_warning = 80 mp_warning = 10 autofight_stop = 50 force_more_message += A sentinel's mark forms upon you force_more_message += You feel yourself slow down force_more_message += Found .* abyssal rune of Zot force_more_message += god:(sends|finds|silent|anger) force_more_message += .*(Agnes|Aizul|Amaemon|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Grunn|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephina|Josephine|Khufu|Kirke|the Lernaean hydra|Lodul|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mlioglotl|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Parghit|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Vv|Xtahua|Zenata).*comes? into view force_more_message += ((giant|floating|shining) eye|eye of draining).*into view force_more_message += (moth of wrath|ghost moth|torpor snail).*into view force_more_message += (guardian serpent|draconian shifter|convoker).*into view force_more_message += (flayed ghost|royal mummy|mummy priest|fiend|tzitzimitl).*into view force_more_message += (tormentor|curse toe|curse skull).*into view force_more_message += (hellion|hell sentinel|deep elf sorcerer).*into view force_more_message += (deep elf high priest|scorcher).*into view force_more_message += (ancient lich|orb of fire|executioner|juggernaut|shrike).*into view force_more_message += (wretched star|lurking horror).*into view force_more_message += (neqoxec|cacodemon|doom hound).*into view force_more_message += 27-headed.* comes? into view force_more_message += (radroach|entropy weaver|meliai).*into view force_more_message += (salamander tyrant|ironbound frostheart).*into view force_more_message += (walking crystal tome|walking divine tome|walking earthen tome|walking frostbound tome).*into view force_more_message += changes into.*((giant|floating|shining) eye|eye of draining) force_more_message += changes into.*(moth of wrath|ghost moth|torpor snail) force_more_message += changes into.*(guardian serpent|draconian shifter|convoker) force_more_message += changes into.*(flayed ghost|royal mummy|mummy priest|fiend|tzitzimitl) force_more_message += changes into.*(tormentor|curse toe|curse skull) force_more_message += changes into.*(hellion|hell sentinel|deep elf sorcerer) force_more_message += changes into.*(deep elf high priest|scorcher) force_more_message += changes into.*(ancient lich|orb of fire|executioner|juggernaut|shrike) force_more_message += changes into.*(wretched star|lurking horror) force_more_message += changes into.*(neqoxec|cacodemon|doom hound) force_more_message += changes into.*(radroach|entropy weaver|meliai) force_more_message += changes into.*(salamander tyrant|ironbound frostheart) force_more_message += changes into.*(walking crystal tome|walking divine tome|walking earthen tome|walking frostbound tome) force_more_message += It is wielding.*of distortion force_more_message += She is wielding.*of distortion force_more_message += He is wielding.*of distortion force_more_message += wielding.* distortion.* comes? into view flash_screen_message += It is wielding.*of distortion flash_screen_message += She is wielding.*of distortion flash_screen_message += He is wielding.*of distortion flash_screen_message += wielding.* distortion.* comes? into view flash_screen_message += distortion.* comes? into view tile_font_crt_family = Consolas tile_font_stat_family = Consolas tile_font_msg_family = Consolas tile_font_lbl_family = Consolas autopickup = $?!:"/|} autopickup_exceptions += useless_item runrest_ignore_message += Jiyva appreciates your sacrifice runrest_ignore_message += Jiyva gurgles merrily runrest_ignore_message += Jiyva says: Divide and consume runrest_ignore_message += You hear.*splatter runrest_ignore_message += You feel better runrest_ignore_message += You feel your power returning runrest_ignore_message += Your protection from.*is fading runrest_ignore_message += You feel less protected from runrest_ignore_message += the wereblood boils in your veins runrest_ignore_message += A nearby plant withers and dies runrest_ignore_message += Your fire (vortexlvortices).*something runrest_ignore_message += something .* fire (vortexlvortices) runrest_ignore_message += Your primal bloodlust is almost over runrest_ignore_message += Your unholy channel expires explore_stop -= greedy_visited_item_stack sound_on = true sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 sound_volume = 0.3 translation_language = ko { 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 need_skills_opened = true local previous_hp = 0 local previous_mp = 0 local previous_form = '' local was_berserk_last_turn = false function announce_damage_ko() 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('이제 [' .. current_hp .. '/' .. max_hp .. '] 의 체력을 가지게 되었습니다.') else crawl.mpr('이제 [' .. current_hp .. '/' .. max_hp .. '] 의 체력을 가지게 되었습니다.') end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr('' .. hp_difference .. '의 피해를 받았습니다. 현재 남은 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') elseif current_hp <= (max_hp * 0.50) then crawl.mpr('' .. hp_difference .. '의 피해를 받았습니다. 현재 남은 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') elseif current_hp <= (max_hp * 0.70) then crawl.mpr('' .. hp_difference .. '의 피해를 받았습니다. 현재 남은 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') elseif current_hp <= (max_hp * 0.90) then crawl.mpr('' .. hp_difference .. '의 피해를 받았습니다. 현재 남은 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') else crawl.mpr('' .. hp_difference .. '의 피해를 받았습니다. 현재 남은 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') end if hp_difference > (max_hp * 0.20) then crawl.mpr('위험!') 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('' .. health_inturn .. '의 체력을 얻었습니다. 현재 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') elseif current_hp <= (max_hp * 0.50) then crawl.mpr('' .. health_inturn .. '의 체력을 얻었습니다. 현재 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') elseif current_hp <= (max_hp * 0.70) then crawl.mpr('' .. health_inturn .. '의 체력을 얻었습니다. 현재 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') elseif current_hp <= (max_hp * 0.90) then crawl.mpr('' .. health_inturn .. '의 체력을 얻었습니다. 현재 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') else crawl.mpr('' .. health_inturn .. '의 체력을 얻었습니다. 현재 체력은 [' .. current_hp .. '/' .. max_hp .. '] 입니다.') end end if (current_hp == max_hp) then crawl.mpr('체력이 전부 회복되었습니다. (' .. 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('' .. mp_inturn .. '의 MP를 얻었습니다. 현재 MP는 [' .. current_mp .. '/' .. max_mp .. '] 입니다.') elseif current_mp < (max_mp * 0.50) then crawl.mpr('' .. mp_inturn .. '의 MP을 얻었습니다. 현재 MP은 [' .. current_mp .. '/' .. max_mp .. '] 입니다.') else crawl.mpr('' .. mp_inturn .. '의 MP을 얻었습니다. 현재 MP은 [' .. current_mp .. '/' .. max_mp .. '] 입니다.') end end if (current_mp == max_mp) then crawl.mpr('MP이 전부 회복되었습니다. (' .. current_mp .. ')') end end --On losing magic if current_mp < previous_mp then if current_mp <= (max_mp / 5) then crawl.mpr('현재 남은 MP는 [' .. current_mp .. '/' ..max_mp ..'] 입니다.') elseif current_mp <= (max_mp / 2) then crawl.mpr('현재 남은 MP는[' .. current_mp .. '/' ..max_mp ..'] 입니다.') else crawl.mpr('현재 남은 MP는 [' .. current_mp .. '/' ..max_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 function ready() -- Enable AnnounceDamage. announce_damage_ko() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end }