# 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






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

#이렇게 설정하고 지나간 메세지를 보고싶다면 컨트롤 p로 확인하는게 무조건 훨씬 더 좋고 편함

#다른 rc는 다 안쓰더라도 이것만은 진짜 무조건 쓰는게 좋음 무조건임

show_more = false





#게임 시작부터 스킬 경험치 투자를 메뉴얼로 설정

#이 게임은 스킬 경험치 투자를 오토로 할 이유가 전혀 없음. 까먹고 오토로 올려서 망캐가 되지 않도록 해줌

default_manual_training = true





#유니크 몬스터가 출현했을 때 more를 강제로 띄워줌

#탭질 신나게하다가 유니크 몹이 등장했을 때 게임을 멈춰서 제대로 집중해서 전투할 수 있게 해줌

#패치로 유니크몹이 추가되면 맞춰서 수정해줘야함

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





#위험한 몬스터 출현 시 more를 강제로 띄워줌

#패치로 위험한 몬스터가 추가되면 맞춰서 수정해줘야함

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





#몬스터가 위험한 몬스터로 변신 시 more를 강제로 띄워줌

#패치로 위험한 몬스터가 추가되면 맞춰서 수정해줘야함

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)





#왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 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


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

#기본 설정은 아마 빨간색만 표시되는 걸로 아는데 노란색까지 표시해주는게 오카와루 듀얼 권능 쓸 때도 좋고 훨씬 낫다고 봄

tile_show_threat_levels = tough nasty





#애니메이션 속도 빠르게(기본값=600)

#플레이어나 몬스터가 행동할 때 애니메이션의 속도를 조절하는 건데 기본값 600은 너무 느려서 답답한 경우가 종종 있음

view_delay = 10

#골드, 스크롤, 포션, 책, 장신구, 완드, 스태프, 잡동사니를 자동으로 주움

autopickup = $?!:"/|}



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

autopickup_exceptions += <throwing net

autopickup_exceptions += <curare

#아트로파 다트, 디스퍼설 부레랑 자동줍기 해제

autopickup_exceptions ^= >(atropa|dispersal)



#전혀 쓸모 없는 아이템은 줍지 않도록 함

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)

}















#탐색이나 휴식 시 멈추는거 방지하는 설정들

#탐색이나 휴식 도중에 전혀 중요하지 않은 메세지 때문에 자꾸 멈추지 않도록 해줌



#지이바 관련(이거는 작동 안하는 것 같기도 함)

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







{

function ready()

   AnnounceDamage()

end

}



{

local previous_hp = 0

local previous_mp = 0

local previous_form = ""

local was_berserk_last_turn = false



function AnnounceDamage()

  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("<green>You now have " .. current_hp .. "/" .. max_hp .. " hp.</green>")

      else

        crawl.mpr("<yellow>You now have " .. current_hp .. "/" .. max_hp .. " hp.</yellow>")

      end

    else

      --On losing health

      if (current_hp < previous_hp) then

        if current_hp <= (max_hp * 0.30) then

          crawl.mpr("<red>You take " .. hp_difference .. " damage,</red><lightred> and have " .. current_hp .. "/" .. max_hp .. " hp.</lightred>")

        elseif current_hp <= (max_hp * 0.50) then

          crawl.mpr("<red>You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.</red>")

        elseif current_hp <= (max_hp *  0.70) then

          crawl.mpr("<red>You take " .. hp_difference .. " damage,</red><yellow> and have " .. current_hp .. "/" .. max_hp .. " hp.</yellow>")

        elseif current_hp <= (max_hp * 0.90) then

          crawl.mpr("<red>You take " .. hp_difference .. " damage,</red><lightgrey> and have " .. current_hp .. "/" .. max_hp .. " hp.</lightgrey>")

        else

          crawl.mpr("<red>You take " .. hp_difference .. " damage,</red><green> and have " .. current_hp .. "/" .. max_hp .. " hp.</green>")

        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

}



prompt_menu = false



# 언데드류 홀리웨펀 경고 

:if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then
more += (revenant|black sun).*into view
more += wielding.*holy wrath
more += holy wrath.*into view
flash += wielding.*holy wrath
flash += holy wrath.*into view
:end

# 센데미지(+18) 에 more 

force_more_message += you!!.*

force_more_message += you with.*!!

# 석화구름 방지
force_more_message += The blast of calcifying dust hits you


# 오탭 방지

utofight_stop = 80


# 매뉴얼 수련
force_more_message += pick up a manual
force_more_message = finished your manual