sound_on = true sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.3 sound_volume = 0.05 show_more = false default_manual_training = true tile_font_crt_family = Consolas tile_font_stat_family = Consolas tile_font_msg_family = Consolas tile_font_lbl_family = Consolas tile_layout_priority = gold_turn, inventory, minimap, monster +@ explore_delay = -50 travel_delay = -50 rest_delay = -1 view_delay = 100 ## display damage, healing, exhausted (sepcially serpent's lash) { ------- hp, mp, exhaust local last_hp = you.hp() local last_mp = you.mp() local last_turn = you.turns() function get_damage_color(damage, max_hp) local damage_percent = (damage / max_hp) * 100 if damage_percent >= 25 then -- 1/4 이상 데미지 return "lightmagenta" -- 매우 심각 elseif damage_percent >= 15 then -- 1/6.67 데미지 return "lightred" -- 매우 위험 elseif damage_percent >= 10 then -- 1/10 데미지 return "red" -- 위험 elseif damage_percent >= 5 then -- 1/20 데미지 return "yellow" -- 주의 elseif damage > 1 or damage_percent > 2 then -- 2% 초과 또는 2 이상의 모든 데미지 return "white" else return "lightgray" -- 1 데미지나 2% 이하만 회색으로 end end ------- ready function ready() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() -- 메시지 표시는 턴이 변경되었을 때만 if you.turns() ~= last_turn then -- HP 변화 체크 local hp_change = current_hp - last_hp if hp_change ~= 0 then local msg if hp_change < 0 then local damage = -hp_change local color = get_damage_color(damage, max_hp) msg = string.format("You took <%s>%d damage!", color, damage, color) else msg = string.format("You recovered %d HP!", hp_change) end crawl.formatted_mpr(msg) end -- MP 변화 체크 local mp_change = current_mp - last_mp if mp_change > 0 then local msg = string.format("You recovered %d MP!", mp_change) crawl.formatted_mpr(msg) end end -- 현재 상태 저장 last_hp = current_hp last_mp = current_mp last_turn = you.turns() end } always_show_zot = true tile_show_demon_tier = true tile_show_threat_levels = tough,nasty,unusual_highlight force_more_message += Deactivating autopickup force_more_message += watched by something 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 viewshow_more = false #$ lab_disable_chat_clear = true autopickup_exceptions += 100 then activation = 100 end return max_damage, activation end function staff_info_display() local evo = you.skill("Evocations") local output = "" -- Fire staff local fire = you.skill("Fire Magic") local fire_dmg, fire_chance = calc_staff_info(fire, evo) output = output .. string.format("[Fire] D: 0-%.1f, P: %.1f%% \n", fire_dmg, fire_chance) -- Cold staff local ice = you.skill("Ice Magic") local cold_dmg, cold_chance = calc_staff_info(ice, evo) output = output .. string.format("[Cold] D: 0-%.1f, P: %.1f%% \n", cold_dmg, cold_chance) -- Earth staff (1.5x 공식) local earth = you.skill("Earth Magic") local earth_dmg, earth_chance = calc_staff_info(earth, evo, 1.5) output = output .. string.format("[Earth] D: 0-%.1f, P: %.1f%% (33%% to flying)\n", earth_dmg, earth_chance) -- Air staff (1.25x 공식) local air = you.skill("Air Magic") local air_dmg, air_chance = calc_staff_info(air, evo, 1.25) output = output .. string.format("[Air] D: 0-%.1f, P: %.1f%% (Half AC)\n", air_dmg, air_chance) -- Alchemy staff local alchemy = you.skill("Alchemy") local poison_dmg, poison_chance = calc_staff_info(alchemy, evo) output = output .. string.format("[Alchemy] D: 0-%.1f, P: %.1f%% \n", poison_dmg, poison_chance) -- Death staff local necro = you.skill("Necromancy") local death_dmg, death_chance = calc_staff_info(necro, evo) output = output .. string.format("[Death] D: 0-%.1f, P: %.1f%% \n", death_dmg, death_chance) -- Conjuration staff (1.25x 공식) local conj = you.skill("Conjurations") local conj_dmg, conj_chance = calc_staff_info(conj, evo, 1.25) output = output .. string.format("[Conj] D: 0-%.1f, P: %.1f%% (Irresistible)", conj_dmg, conj_chance) crawl.formatted_mpr(output) end crawl.setopt("macros += M \\{F2} ===staff_info_display") { function with_gdr() local armour_class = you.ac() local gdr = math.floor(16 * math.sqrt(math.sqrt(math.max(0, armour_class)))) crawl.formatted_mpr(string.format("GDR: %d%%", gdr)) crawl.sendkeys('@') end crawl.setopt("macros += M \@ ===with_gdr") } translation_language = ko