# CRAWL.NEMELEX.CARDS
##### Crawl Init file ###############################################
# For descriptions of all options, as well as some more in-depth information
# on setting them, consult the file
# options_guide.txt
# in your /docs directory. If you can't find it, the file is also available
# online at:
# https://github.com/crawl/crawl/blob/master/crawl-ref/docs/options_guide.txt
#
# Crawl uses the first file of the following list as its option file:
# * init.txt in the -rcdir directory (if specified)
# * .crawlrc in the -rcdir directory (if specified)
# * init.txt (in the Crawl directory)
# * ~/.crawl/init.txt (Unix only)
# * ~/.crawlrc (Unix only)
# * ~/init.txt (Unix only)
# * settings/init.txt (in the Crawl directory)
##### Some basic explanation of option syntax #######################
# Lines beginning with '#' are comments. The basic syntax is:
#
# field = value or field.subfield = value
#
# Only one specification is allowed per line.
#
# The terms are typically case-insensitive except in the fairly obvious
# cases (the character's name and specifying files or directories when
# on a system that has case-sensitive filenames).
#
# White space is stripped from the beginning and end of the line, as
# well as immediately before and after the '='. If the option allows
# multiple comma/semicolon-separated terms (such as
# autopickup_exceptions), all whitespace around the separator is also
# trimmed. All other whitespace is left intact.
#
# There are three broad types of Crawl options: true/false values (booleans),
# arbitrary values, and lists of values. The first two types use only the
# simple =, with later options - which includes your options that are different
# from the defaults - overriding earlier ones. List options allow using +=, ^=,
# -=, and = to append, prepend, remove, and reset, respectively. Usually you will
# want to use += to add to a list option. Lastly, there is := which you can use
# to create an alias, like so:
# ae := autopickup_exceptions
# From there on, 'ae' will be treated as if it you typed autopickup_exceptions,
# so you can save time typing it.
#
##### Other files ###################################################
# You can include other files from your options file using the 'include'
# option. Crawl will treat it as if you copied the whole text of that file
# into your options file in that spot. You can uncomment some of the following
# lines by removing the beginning '#' to include some of the other files in
# this folder.
# Some useful, more advanced options, implemented in LUA.
# include = advanced_optioneering.txt
# Alternative vi bindings for Dvorak users.
# include = dvorak_command_keys.txt
# Alternative vi bindings for Colemak users.
# include = colemak_command_keys.txt
# Alternative vi bindings for Neo users.
# include = neo_command_keys.txt
# Override the vi movement keys with a non-command.
# include = no_vi_command_keys.txt
# Turn the shift-vi keys into safe move, instead of run.
# include = safe_move_shift.txt
sound_on = true
sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"]
one_SDL_sound_channel = true
sound_fade_time = 0.5
travel_delay = 0
sound_volume = 0.07
more_gem_info = true
always_show_zot = true
lab_use_click_to_send_chat = true
## 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
}
tile_web_mouse_control = false
rest_wait_percent = 70
explore_auto_rest = false
##상태창에 보유한 골드 띄움
show_gold_status = true
## DDoor
{
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
}
# f2를 누르면 속성 스태프의 대미지 정보를 표시 Magical Staff Percentage
{
function calc_staff_info(school_level, evo_level, multiplier)
-- multiplier 파라미터 추가, 기본값은 1.575
multiplier = multiplier or 1.575
local max_damage = multiplier * (school_level + evo_level/2)
local activation = (evo_level + school_level/2) * 6.66
if activation > 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")
}
## 화폭 볼텍스가 탐색이나 휴식 시 멈추는거 방지 ##
runrest_ignore_message += Your fire (vortexlvortices).*something
runrest_ignore_message += something .* fire (vortexlvortices)
#플레이어 타일에 상태이상 slow, fragile, petr, mark, will/2, haste, weak, corr, might, brill, -move 아이콘을 표시
tile_player_status_icons = slow, constr
autopickup_exceptions +=