##### 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
always_show_zot = true
########################
##### Force_more #####
########################
#위험한 상황에 more을 띄우거나 화면을 반짝이는 기능
#메세지 창에 올라오는 메시지를 기반으로 more을 띄움
more := force_more_message
flash := flash_screen_message
#신 관련
more += Vehumet offers
more += Ru believe
more += god:(sends|finds|silent|anger)
: if you.god() == "Ashenzari" then
more += You have a vision of.*gate
: end
#신성 무기 경고
: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)
#??
more += greedy_visited_item_stack,stairs,shops
#왜곡 무기 경고
more += hits you.*distortion
more += Its appearance distorts for a moment
more += you fell strangely unstable
flash += wielding.*distortion
#위험한 함정
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
#부패면역 제외 우샤브티의 부패 구름
: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
#위험한 몬스터와 조우
##레벨 별로 위험한 몬스터를 띄우는 것은 아래 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 어쩌구
:end
flash += distortion.*into view
more += wielding.*distortion
more += distortion.*into view
#텔포, 광폭화, 블러리 비전 변이 시 확인 창을 띄우는 기능
{
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
}
#페다스, 루고누를 믿을 때 건틀렛 입장 시 확인 창을 띄우는 기능
#두 신 다 권능으로 건틀렛의 벽을 파괴할 수 있다
{
local guant = true
function gauntletwall()
if gaunt and string.find(crawl.messages(4), "enter.*gauntlet") and ( you.god() == "Lugonu" or you.god() == "Fedhas") then
crawl.yesno("권능으로 벽 파괴", false, false, true, true)
gaunt = false
end
end
}
#아래는 입은 데미지 계산과 저체력 경고 rc (아마)
{
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 door = true
function DDoorWarning()
if you.status("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 within 5-10 turns......")
door = false
end
if not you.status("death's door (expiring)") then
door = true
end
end
}
{
local counter = you.turns()
function DDoorCounter()
if you.status("death's door (expiring)") then
crawl.mpr("Count "..you.turns() - counter.."......")
end
if not you.status("death's door (expiring)") then
counter = you.turns()+1
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
}