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%s> 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