# 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



## 조트클락 표시 ##

always_show_zot = true


## 마우스 클릭을 통한 이동 사용 안함 ##

#$ lab_disable_mouse_move = true


## 악마 티어 타일로 표시 ##

tile_show_demon_tier = true


## 위험도를 노란색, 빨간색만 표시 ##

tile_show_threat_levels = tough nasty


## 자동줍기 해제 시 다음 장 (투명몹 대비) ##

force_more_message += Deactivating autopickup


## 안 보이는 무언가에게 마나가 빨리면 다음 장 ##

force_more_message += watched by something


## 자동공격이 멈추는 체력 비율 ##

autofight_stop = 70


## 왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 more, 화면이 번쩍 효과 ##

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


## 메세지가 너무 많이 떴을 때 강제로 more 띄우지 않게 함 ##

show_more = false


## 이펙트 딜레이 ##

view_delay = 200


## 플레이어 타일을 해당 종족으로 변경 ##

tile_show_player_species = false


## 폰트 변경 ##

tile_font_crt_family = Consolas

tile_font_stat_family = Consolas

tile_font_msg_family = Consolas

tile_font_lbl_family = Consolas



## 방을 이동해도 채팅을 지우지 않음 ##

#$ lab_disable_chat_clear = true


## vi방식 이동키 비활성화 ##

include = no_vi_command_keys.txt


## 사운드 자동 켜기 ##

#$ lab_sound_on = true


## 스킬 경험치 메뉴얼 설정 ##

default_manual_training = true


## 자동탐사 딜레이 ##

travel_delay = 0


## 탐험 딜레이 ##

explore_delay = 0


## 휴식 딜레이 ##

rest_delay = 0


## 그물, 쿠라레 자동으로 주움 ##

autopickup_exceptions += <throwing net

autopickup_exceptions += <curare


## 화폭 볼텍스가 탐색이나 휴식 시 멈추는거 방지 ##

runrest_ignore_message += Your fire (vortexlvortices).*something

runrest_ignore_message += something .* fire (vortexlvortices)


## HP/MP 알림 ##

{
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


--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('Now you have [' .. current_hp .. '/' .. max_hp .. '] HP')
else
crawl.mpr('Now you have [' .. current_hp .. '/' .. max_hp .. '] HP')
end
else



--체력 잃을때
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr('<lightred>You take ' .. hp_difference .. ' HP,</lightred> <red>and have [' .. current_hp .. '/' .. max_hp .. '] HP</red>')
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr('<yellow>You take ' .. hp_difference .. ' HP,</yellow> <lightred>and have [' .. current_hp .. '/' .. max_hp .. '] HP</lightred>')
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr('<brown>You take ' .. hp_difference .. ' HP,</brown> <green>and have [' .. current_hp .. '/' .. max_hp .. '] HP</green>')
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr('<darkgrey>You take ' .. hp_difference .. ' HP,</darkgrey> <green>and have [' .. current_hp .. '/' .. max_hp .. '] HP</green>')
else
crawl.mpr('<darkgrey>You take ' .. hp_difference .. ' HP,</darkgrey> <lightgreen>and have [' .. current_hp .. '/' .. max_hp .. '] HP</lightgreen>')
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr('<lightred>!!!!! HP Warning !!!!!</lightred>')
end
end



--체력 얻을때
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('<darkgrey>You gain ' .. health_inturn .. ' hp,</darkgrey> <red>and have [' .. current_hp .. '/' .. max_hp .. '] hp.</red>')
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr('<yellow>You gain ' .. health_inturn .. ' HP,</yellow> <lightred>and have [' .. current_hp .. '/' .. max_hp .. '] hp.</lightred>')
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr('<lightgreen>You gain ' .. health_inturn .. ' HP,</lightgreen> <green>and have [' .. current_hp .. '/' .. max_hp .. '] HP</green>')
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr('<white>You gain ' .. health_inturn .. ' HP</white>, <lightgreen>and have [' .. current_hp .. '/' .. max_hp ..'] HP</lightgreen>')
else
crawl.mpr('<lightgreen>You gain ' .. health_inturn .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP</lightgreen>')
end
end
if (current_hp == max_hp) then
crawl.mpr('<lightmagenta> HP Full. (' .. current_hp .. ')</lightmagenta>')
end
end



--마력 얻을때
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('<darkgrey>You gain ' .. mp_inturn .. ' MP,</darkgrey> <brown>and have [' .. current_mp .. '/' .. max_mp .. '] MP</brown>')
elseif current_mp < (max_mp * 0.50) then
crawl.mpr('<lightblue>You gain ' .. mp_inturn .. ' MP,</lightblue> <blue>and have [' .. current_mp .. '/' .. max_mp .. '] MP</blue>')
else
crawl.mpr('<lightblue>You gain ' .. mp_inturn .. ' MP,</lightblue> <lightcyan>and have [' .. current_mp .. '/' .. max_mp .. '] MP</lightcyan>')
end
end
if (current_mp == max_mp) then
crawl.mpr('<lightcyan>MP Full (' .. current_mp .. ')</lightcyan>')
end
end

--마력 잃을때
if current_mp < previous_mp then
if current_mp <= (max_mp * 0.25) then
crawl.mpr('<darkgrey>You lose ' .. mp_difference .. 'MP,</darkgrey> <white>and have [' .. current_mp .. '/' ..max_mp ..'] MP</white>')
elseif current_mp <= (max_mp * 0.50) then
crawl.mpr('<blue>You lose ' .. mp_difference .. 'MP,</blue> <lightblue>and have [' .. current_mp .. '/' ..max_mp ..'] MP</lightblue>')
else
crawl.mpr('<darkgrey>You lose ' .. mp_difference .. 'MP,</darkgrey> <lightcyan>and have [' .. current_mp .. '/' ..max_mp ..'] MP</lightcyan>')
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
}

autopickup = $?!:"/|}

autopickup_exceptions += <throwing net

autopickup_exceptions += <curare

autopickup_exceptions ^= <(immolation|lignification|mutation|attraction|vulnerability|torment|scroll of poison|scrolls of poison)

autopickup_exceptions ^= <tin of tremorstones

autopickup_exceptions ^= >useless_item

{

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)

}

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.1