##### 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
# 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
##### 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
# 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
##### Ancient versions ##############################################
# If you're used to the interface of ancient versions of Crawl, you may
# get back parts of it by uncommenting the following options:
# include = 034_command_keys.txt
# And to revert monster glyph and colouring changes:
# include = 034_monster_glyphs.txt
# include = 052_monster_glyphs.txt
# include = 060_monster_glyphs.txt
# include = 071_monster_glyphs.txt
# include = 080_monster_glyphs.txt
# include = 0.9_monster_glyphs.txt
# include = 0.12_monster_glyphs.txt
# include = 0.13_monster_glyphs.txt
# include = 0.14_monster_glyphs.txt
###### Damage calc ##############################################
#include += HDamage.rc
{
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("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("MASSIVE DAMAGE!!")
end
end
--On gaining more than 1 health
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("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
end
if (current_hp == max_hp) then
crawl.mpr("Health restored: " .. current_hp .. "")
end
end
--On gaining more than 1 magic
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("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
else
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
end
end
if (current_mp == max_mp) then
crawl.mpr("MP restored: " .. current_mp .. "")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
else
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
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
}
게임 시작부터 경험치 분배를 매뉴얼로 설정
#이 게임은 경험치 분배를 오토로 할 이유가 전혀 없음. 까먹고 오토로 올려서 망캐가 되지 않도록 해줌
default_manual_training = true
#게임 시작 시 자동으로 스킬창(m) 켜줌
#까먹고 기본 설정대로 올려서 망캐가 되지 않도록 해줌
{
local need_skills_opened = true
function ready()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
end
end
}
#유니크 몬스터가 출현했을 때 more를 강제로 띄워줌
#탭질 신나게하다가 유니크 몹이 등장했을 때 게임을 멈춰서 제대로 집중해서 전투할 수 있게 해줌
#패치로 유니크몹이 추가되면 맞춰서 수정해줘야함
force_more_message += .*(Agnes|Aizul|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|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|the Lernaean hydra|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|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|Xtahua).*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|zealout|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 += .*orbs? of fire.* comes? into view
force_more_message += .*pandemonium* comes? into view
#왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 more를 띄워주고 화면이 번쩍이는 효과를 줌
#왜곡무기는 피격 시 어비스로 추방될 수 있기 때문에 가장 주의해야되는 공격 중 하나임
#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
autoinscribe += potion.*berserk rage:!q
autoinscribe += potion.*might:!q
autoinscribe += potion.*curing:!q
autoinscribe += potion.*brilliance:!q
autoinscribe += potion.*ambrosia:!q
autoinscribe += potion.*cancellation:!q
autoinscribe += potion.*magic:!q
autoinscribe += potion.*invisibility:!q
autoinscribe += potion.*resistance:!q
autoinscribe += potion.*haste:!q
autoinscribe += potion.*flight:!q
autoinscribe += potion.*heal wounds:!q
autoinscribe += scroll.*mapping:!r
autoinscribe += scroll.*silence:!r
autoinscribe += scroll.*fog:!r
autoinscribe += scroll.*fear:!r
autoinscribe += scroll.*teleportation:!r
autoinscribe += scroll.*summoning:!r
autoinscribe += scroll.*holy word:!r
autoinscribe += throwing net:!f
autoinscribe += atropa:!f
autoinscribe += curare-:!f
autoinscribe += datura:!f
{
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("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("MASSIVE DAMAGE!!")
end
end
--On gaining more than 1 health
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("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
end
if (current_hp == max_hp) then
crawl.mpr("Health restored: " .. current_hp .. "")
end
end
--On gaining more than 1 magic
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("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
else
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
end
end
if (current_mp == max_mp) then
crawl.mpr("MP restored: " .. current_mp .. "")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
else
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
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
}
{
local need_skills_opened = true
function ready()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
end
end
}
#유니크 몬스터가 출현했을 때 more를 강제로 띄워줌
#탭질 신나게하다가 유니크 몹이 등장했을 때 게임을 멈춰서 제대로 집중해서 전투할 수 있게 해줌
#패치로 유니크몹이 추가되면 맞춰서 수정해줘야함
force_more_message += .*(Agnes|Aizul|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|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|the Lernaean hydra|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|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|Xtahua).*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|zealout|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 += .*orbs? of fire.* comes? into view
force_more_message += .*pandemonium* comes? into view
#왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 more를 띄워주고 화면이 번쩍이는 효과를 줌
#왜곡무기는 피격 시 어비스로 추방될 수 있기 때문에 가장 주의해야되는 공격 중 하나임
#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
default_manual_training = true
{
local need_skills_opened = true
function ready()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
end
end
}
force_more_message += .*(Agnes|Aizul|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|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|the Lernaean hydra|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|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|Xtahua).*comes? into view
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|zealout|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 += .*orbs? of fire.* comes? into view
force_more_message += .*pandemonium* comes? into view
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
{
function hp_percent()
a,b=you.hp() return 90*a/b
end
}
{
function mp_percent()
a,b=you.mp() return 90*a/b
end
}
{
local early = true
function hpWarning_Early()
if you.hp() < 21 and hp_percent() < 30 and you.xl() < 9 and early then
crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true)
crawl.mpr("확인")
early = false
end
if you.hp() > 20 and hp_percent() > 29 and you.xl() < 9 then
early = true
end
end
}
{
local mid = true
function hpWarning_Mid()
if you.hp() < 35 and you.xl() < 20 and you.xl() > 8 and mid then
crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true)
crawl.mpr("확인")
mid = false
end
if you.hp() > 34 and you.xl() < 20 and you.xl() > 8 then
mid = true
end
end
}
{
local late = true
function hpWarning_Late()
if you.hp() < 60 and you.xl() == 27 and not you.status("death's door") and not you.status("death's door (expiring)") and late then
crawl.yesno("Low HP Warning! (Y/N)", false, false, true, true)
crawl.mpr("확인")
late = false
end
if you.hp() > 59 and you.xl() == 27 then
late = true
end
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("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("@ " .. hp_difference .. " 의 대미지, 남은 HP = " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("@2 " .. hp_difference .. " 의 대미지, 남은 HP2 = " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("@3 " .. hp_difference .. " 의 대미지, 남은 HP3 = " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("@4 " .. hp_difference .. " 의 대미지, 남은 HP4 = " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("@5 " .. hp_difference .. " 의 대미지, 남은 HP5 = " .. current_hp .. "/" .. max_hp .. " hp.")
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
}
{
local mut = true
function mutate()
if mut then
if string.find(crawl.messages(5), "you.*uncertain") or string.find(crawl.messages(5), "pissed off") or string.find(crawl.messages(5), "vision blurs") then
mut = false
crawl.yesno("위험한 변이@@")
end
end
if not mut and not string.find(crawl.messages(8), "@@") then
mut = true
end
end
}
#특정 레벨일 때 more 기능 등이 작동하도록 만드는 rc
#아래는 8레벨 미만일 때 작동
#원래는 위의 force_more 에 적혀있었는데 대조하기 편하라고 여기 놓아뒀음
: if you.xl() < 8 then
more += (ogre|orc priest|orc warrior).*into view
more += (hornet|centaur|drake|cyclops).*into view
more += wield.*(venom|chaos|elec|drain)
flash += wield.*(venom|chaos|elec|drain)
more += you!
more += you with.*!
: end
#다만 위의 force_more과 flash는 게임이 켜졌을 때만 체크 된다
#말인 즉 게임 중 8렙이 되어도 게임을 껐다 키지 않으면 계속 more을 띄움
#그래서 아래 function 기능으로 게임 내내 체크를 하게 만들어야 함
#잘 보면 more +=가 more -=로 바뀌어있는데 more을 띄우지 않게 만듬
{
local early = true
function XLCheckOptions_Early()
if you.xl() >= 8 and early then
crawl.setopt("more -= (ogre|orc priest|orc warrior).*into view")
crawl.setopt("more -= (hornet|centaur|drake|cyclops).*into view")
crawl.setopt("more -= wield.*(venom|chaos|elec|drain)")
crawl.setopt("flash -= wield.*(venom|chaos|elec|drain)")
crawl.setopt("more -= you!")
crawl.setopt("more -= you with.*!")
crawl.setopt("more ^= you!!")
crawl.setopt("more ^= you with.*!!")
early = false
end
end
}
#아래는 15레벨 미만일 때
: if you.xl() < 15 then
more += (meliai|beetle|hydra|dragon).*into view
more += (ettin|stone|frost giant|fire giant).*into view
more += carrying a wand of (acid|dis|ice|para|slave|poly)
flash += carrying a wand of (acid|dis|ice|para|slave|poly)
more += zaps a wand
more += is.*quivering.*(curare|atropa|datura)
flash += is.*quivering.*(curare|atropa|datura)
: end
{
local mid = true
function XLCheckOptions_Mid()
if you.xl() >= 15 and mid then
crawl.setopt("more -= (meliai|beetle|hydra|dragon).*into view")
crawl.setopt("more -= (ettin|stone|frost giant|fire giant).*into view")
crawl.setopt("more -= carrying a wand of (acid|dis|ice|para|slave|poly)")
crawl.setopt("flash -= carrying a wand of (acid|dis|ice|para|slave|poly)")
crawl.setopt("more -= zaps a wand")
crawl.setopt("more -= is.*quivering.*(curare|atropa|datura)")
crawl.setopt("flash -= is.*quivering.*(curare|atropa|datura)")
mid = false
end
end
}
: if you.xl() < 27 then
more += (high priest|annihilator|sorcerer|scorcher).*into view
more += (titan|juggernaut|shrike|moth).*into view
more += (warden|acid blob|executioner).*into view
#아래는 슬라임 4~5단계가 될 때 나오는 메세지
more += form an (enormous|titanic)
#투명 몹 발견 시
more += Deactivating autopickup
#텔레포트 시
more += Your surroundings suddenly seem different
: end
{
local late = true
function XLCheckOptions_Late()
if you.xl() == 27 and late then
crawl.setopt("more -= (high priest|annihilator|sorcerer|scorcher).*into view")
crawl.setopt("more -= (titan|juggernaut|shrike|moth).*into view")
crawl.setopt("more -= (warden|acid blob|executioner).*into view")
crawl.setopt("more -= form an (enormous|titanic)")
crawl.setopt("more -= Deactivating autopickup")
crawl.setopt("more -= Your surroundings suddenly seem different")
late = false
end
end
}
#runrest_stop_message += 특정 메세지
#ㄴ자동 탐사나 휴식 중 특정 메세지가 뜨면 탐사나 휴식을 멈춤
#runrest_ignore_message += 특정 메세지
#ㄴ특정 메세지로 인해 탐사나 휴식이 멈추는 것을 막음
#runrest... 는 입력하기엔 너무 기니까 아래 기능으로 짧게 줄일 수 있음
stop := runrest_stop_message
ignore := runrest_ignore_message
#투명이 풀릴 시 멈춤
stop += You flicker back into view
#브레스 회복으로 인해 휴식, 탐험이 멈추는 것을 막음
ignore += your breath back
#중독 관련 멈추는 것을 막음
ignore += You feel.*sick
ignore += You are no longer corroded.
########################
##### Force_more #####
########################
#위험한 상황에 more을 띄우거나 화면을 반짝이는 기능
#메세지 창에 올라오는 메시지를 기반으로 more을 띄움
# .*은 중간 단어를 무시하는 기능
more := force_more_message
flash := flash_screen_message
#위험한 몬스터와 조우
##레벨 별로 위험한 몬스터를 띄우는 것은 아래 function 쪽에 있으니 거기서 조절
more += (hellion|hell sentinel|fiend|tzitzimitl).*into view
more += (lich|doom hound|floating eye).*into view
#토먼트
more += (tormentor|curse skull|curse Toe|mummy priest|greater mummy).*into view
#돌연변이
more += (neqoxec|cacodemon|shining eye).*into view
#네임드
more += (27-headed|gold.*simulacrum).*into view
more += (Agnes|Aizul|Antaeus|Arachne|Asmodeus|Asterion|Azrael|Bai suzhen|Blork|Boris|Crazy Yiuf|Dissolution|Dispater|Donald|Dowan|Duvessa|Edmund|Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Grinder|Grum|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|Lernaean|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Murray|Nergalle|Natasha|Nessos|Nikola|Pikel|Polyphemus|Ribbit|Psyche|Purgy|Robin|Roxanne|Royal jelly|Rupert|Roka|Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Xtahua|pandemonium).*into view
#위험한 몬스터로 변이
more += change.*(floating|shining|moth)
#데미지 18이상의 공격은 more을 띄움
more += you!!
more += you with.*!!
#신성무기 피격
more += you convulse!
#킬러클라운 파이
more += pie hits you
#토먼트 당함
more += Your body is wracked with pain
#오브 거미가 마법 시전
more += weaves a glowing
#수호자 뱀의 나가 던지기
#more += naga.*blink
#광폭화
more += goes berserk!
#슬로우
more += You feel.*slow down
#플로팅 아이가 쳐다 봄 (다음 턴에 높은 확률로 마비)
more += The floating eye.*(glare|focuse|fixate)
flash += The floating eye.*(glare|focuse|fixate)
#투명 상태의 유령 나방에게 마나 빨림
flash += watched by something
#변이 마법 만료 직전
more += Your transformation is almost over
#투명 풀림
more += You flicker back
#위험한 변이
more += You.*(uncertain|pissed off|vision blurs)
#위험한 브레스
#아포꽃게more += chaos 어쩌구
#가고일 제외 카토블레파스의 석화 브레스
:if you.race() ~= "Gargoyle" then
more += The catoblepas breathes
:end
#부패면역 제외 우샤브티의 부패 구름
:if not (you.race() == "Gargoyle" or you.race() == "Vine Stalker" or you.race() == "Ghoul" or you.race() == "Mummy") then
more += The vile air.*you
more += the foul vapour.*you
:end
#위험한 함정
more += A sentinel's mark forms upon you
more += You are suddenly yanked towards
more += You become entangled in the net
more += enter.*dispersal trap
more += hear a loud "Zot
flash += (blundered into a|invokes the power of) Zot
#왜곡 무기 경고
more += hits you.*distortion
more += Its appearance distorts for a moment
more += you fell strangely unstable
flash += wielding.*distortion
flash += distortion.*into view
more += wielding.*distortion
more += distortion.*into view
#신성 무기 경고
: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
#판데 고정 룬 구역 진입
more += The mighty Pandemonium lord.*resides here
#입구 찾음
more += Found.*(Temple|Pandemonium|Abyss|bazaar)
#include += HDamage.rc
{
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("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("MASSIVE DAMAGE!!")
end
end
--On gaining more than 1 health
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("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
end
if (current_hp == max_hp) then
crawl.mpr("Health restored: " .. current_hp .. "")
end
end
--On gaining more than 1 magic
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("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
else
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
end
end
if (current_mp == max_mp) then
crawl.mpr("MP restored: " .. current_mp .. "")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
else
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
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
}
include = no_vi_command_keys.txt
#변이
flash_screen_message += your transformation is almost over
force_more_message += your transformation is almost over
#골통
force_more_message += snapping sound
force_more_message += snapping soun
flash_screen_message += weakening
flash_screen_message += your transformation is almost over
force_more_message += your transformation is almost over
message_colour ^= lightgreen:.*(shouts|hear a shout|hisses angrily|hear an angry hiss|shouts in stereo|hear two shouts|barks|hear a bark|howls|hear a howl|roars deafeningly|hear a deafening roar|roars|hear a roar|growls angrily|hear an angry growl|deep croak|croaks|hear a croak|buzzes angrily|hear an angry buzzing noise|screeches|hear a screech|bellows|hear a bellow|gurgles horribly|hear a horrible gurgling sound|squeals angrily|hear an angry squeal|bleats|hear a bleat)
message_colour ^= lightgreen:it creaks loudly
force_more_message += training target
force_more_message += you feel like a meek peon again
show_more = false
#sound
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.2
## 아군 냉장고 무시
{
function c_answer_prompt(prompt)
if prompt:find("Really fire") and prompt:find("your spellforged") then
return true
elseif prompt:find("Really refrigerate") and prompt:find("your spellforged") then
return true
elseif prompt:find("Really") and prompt:find("fire vortices") then
return true
elseif prompt:find("Really hurl") and prompt:find("your spellforged") then
return true
elseif prompt:find("Really") and prompt:find("fire vortex") then
return true
elseif prompt:find("Really attack your") and prompt:find("rat") then
return true
elseif prompt:find("Plasma Beam") and prompt:find("your spellforged") then
return true
end
end
}
#colors
tile_upstairs_col = green
tile_branchstairs_col = red
tile_door_col = #c27149
tile_wall_col = #544747
tile_explore_horizon_col = #919191
tile_floor_col = #0f0d0d
tile_item_col = #25231f
tile_feature_col = #d4be21
tile_plant_col = #3e5a2f
tile_water_col = #0b5d79
tile_deep_water_col = #1212b3
tile_trap_col = #d40027
tile_transporter_col = #ff5656
tile_transporter_landing_col = #59ff89
tile_lava_col = #5f0a0000
## Player's status ##
more := force_more_message
more += Careful!
more += .*LOW HITPOINT WARNING
more += Ouch! That really hurt!
more += You stumble into a teleport trap!
## Holy weapon force more when undead or ds
: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
#-----------------------------------------------------------------------------------------------------------#
#----------------------------------------------- Force More ------------------------------------------------#
#-----------------------------------------------------------------------------------------------------------#
## Dangerous messages ##
flash_screen_message += You are slowing down
flash_screen_message += your limbs are stiffening
flash_screen_message += The floating eye seems to glare at you
flash_screen_message += The floating eye's stare focuses on you
flash_screen_message += The floating eye's view fixates on you
flash_screen_message += A sentinel's mark forms upon you
flash_screen_message += distant snort
flash_screen_message += unleashes a terrible howl
flash_screen_message += engulfs you in water
flash_screen_message += The ushabti shakes and rattles deafeningly!
flash_screen_message += You hear strange and distant voices.
flash_screen_message += finished your manual
flash_screen_message += The spriggan druid calls out to the beasts of the wild!
flash_screen_message += Found a gateway to a bazaar.
flash_screen_message += You are engulfed in seething chaos.
## Player's status ##
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
######## Miscellaneous ########################
#tile_player_tile = mons: dart slug
#you.transform() == "statue" then~
#you.mutation("slowness") then~
#you.hunger_name() == "starving" then~
##! means you did 7-17 damage. 2!!: 18-35. 3!!!: 36-71. 4!!!!: 72-143. 5!!!!!: 144-287. 6!!!!!!: 288+; and so on. Yikes!
##<6: 288-575, 7: 576-1151, 8: 1152-2303, 9: 2304-4607>
######## Function Section ########################
{
function ready()
Petrifying_Check()
OpenSkills()
hpWarning_Early()
hpWarning_Mid()
hpWarning_Late()
hp_percent()
mp_percent()
AnnounceDamage()
Vehumetoffer()
Ruoffer()
DDoorCounter()
end
}
{
function hp_percent()
a,b=you.hp() return 100*a/b
end
}
{
function mp_percent()
a,b=you.mp() return 100*a/b
end
}
{
function Petrifying_Check()
if you.petrifying() then
crawl.yesno("You are now petrifying so your action will be checked. (Y or N to confirm.)", false, false, true, true)
crawl.mpr("Consider to using tele/blink, Yara, cancellation or other emergency measures......", 5)
end
end
}
{
local need_skills_opened = true
function OpenSkills()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
crawl.mpr("Pride is your worst enemy! Be on prudent way!", 3)
end
end
}
{
local early = true
function hpWarning_Early()
if you.hp() < 21 and hp_percent() < 30 and you.xl() < 9 and early then
crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true)
crawl.mpr("The dice are ABSOLUTELY not on your side......", 5)
early = false
end
if you.hp() > 20 and hp_percent() > 29 and you.xl() < 9 then
early = true
end
end
}
{
local mid = true
function hpWarning_Mid()
if you.hp() < 35 and you.xl() < 20 and you.xl() > 8 and mid then
crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true)
crawl.mpr("Consider to using tele/blink, potion or other emergency measures......", 5)
mid = false
end
if you.hp() > 34 and you.xl() < 20 and you.xl() > 8 then
mid = true
end
end
}
{
local late = true
function hpWarning_Late()
if you.hp() < 60 and you.xl() == 27 and not you.status("death's door") and not you.status("death's door (expiring)") and late then
crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true)
crawl.mpr("Keep playing discreetly even on late-game......", 5)
late = false
end
if you.hp() > 59 and you.xl() == 27 then
late = true
end
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("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
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
}
{
local veh = true
function Vehumetoffer()
if string.find(crawl.messages(4), "Vehumet offers") and veh then
crawl.yesno("Vehumet offers a spell for you! (Y or N to confirm.)", false,
false, true, true)
veh = false
end
if string.find(crawl.messages(4), "Vehumet accepts") then
veh = true
end
end
}
{
local ru = true
function Ruoffer()
if string.find(crawl.messages(4), "Ru believes") and ru then
crawl.yesno("Ru offers sacrifice for you! (Y or N to confirm.)", false, false, true, true)
ru = false
end
if string.find(crawl.messages(6), "Ru asks you to") or
string.find(crawl.messages(6), "Ru will take longer") then
ru = true
end
end
}
######## Non-ready() Function Section ########################
{
function custom_rest()
if hp_percent() == 100 and mp_percent() == 100 then
if crawl.yesnoquit("Really wait turns while hp and mp are full?", true, 'n') == 1 then
crawl.process_keys("5")
end
else
crawl.process_keys("5")
end
end
}
{
function c_answer_prompt(prompt)
if prompt:find("vortices") or prompt:find("vortex") or prompt:find("friend") then
return true
end
if prompt:find("That beam") and you.res_fire() == 0 and not you.status("death's door") then
if crawl.yesno("REALLY cast on yourself without fire resistance?",false,'n') then
return
end
end
if prompt == "Really attack while wielding the +9 staff of Wucad Mu {channel, !a!d}?" then
return false
end
end
}
{
function c_answer_prompt(prompt)
if prompt:find("vortices") or prompt:find("vortex") or prompt:find("friend") then
return true
end
if prompt:find("That beam") and you.res_fire() == 0 and not you.status("death's oor") then
return false
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
}
#데미지 18이상의 공격은 more을 띄움
more :=force_more_message
#타일 모양, 몬스터 색깔
tile_show_threat_levels = nasty
#tile_player_tile = tile:MONS_GHOST
#귀요미
tile_player_tile = tile:mons_grunn
tile_show_player_species = true
tile_show_threat_levels = tough nasty
force_more_message += into view
force_more_message += is weakening
runrest_stop_message += is weakening
force_more_message += is your transformation is almost over
runrest_stop_message += your transformation is almost over
reduce_animations = false
#젬
more_gem_info = true
always_show_gems = true