#TEAMCAPTAIN EnegeticOcto
# CRAWL.NEMELEX.CARDS
#9th Version of rc setting file (190622)
#some functions was originated by HDA, Yermak, gammafunk and various
sound_on = true
sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"]
##sound_pack += https://sound-packs.nemelex.cards/crawler/2018-03-27/DCSS.22.zip:["사운드 적용하는법.txt"]
one_SDL_sound_channel = true
sound_fade_time = 0.5
sound_volume = 0.1
redirect_chat = true
disable_clear_chat = true
######## Accounts ########################
#1 = Kirara (for 1st DEWz)
#2 = megumin (for DEFE^sif)
#3 = Fortis931 (for DEFE^veh)
#4 = Yoshino (for DEIE)
#5 = AsparasYuuki (for 2nd DEWz)
#6 = TheSpecies (for .22 tournament)
#7 = omgwtf (for speedrun/for test)
#8 = AdeptusOne (reserved;for test)
#9 = YunYun (for 3rd DEWz)
######## Generic ########################
tile_font_crt_family = Consolas
tile_font_stat_family = Consolas
tile_font_msg_family = Consolas
tile_font_lbl_family = Consolas
show_more = false
travel_delay = -1
travel_key_stop = true
explore_delay = -1
explore_wall_bias = 0
explore_key_stop = true
rest_wait_percent = 100
default_manual_training = true
num_rest_turns = 25
cloud_status = true
autofight_stop = 50
easy_confirm = all
explore_stop -= greedy_item_stack
rest_delay = -1
msg_webtiles_height = 8
auto_butcher = true
easy_eat_chunks = true
######### Experimental ###########################
###include += SpeedrunRest1.rc
macros += M p za\{13}
macros += M - \{9}
macros += K \{-1005} \{32}
macros += M c \{13857}
######## Autoexplore Interruption Messages ########################
stop := runrest_stop_message
stop += Your transformation is almost over
######## Annoyances ########################
;ignore += grinding sound
;ignore += contamination has completely
;ignore += your breath back
#-----------------------------------------------------------------------------------------------------------#
#----------------------------------------------- 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
}
## 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
######## Local Webtile(CWZ) Settings ########################
## 사운드 자동 켜기 (관전자 X) ##
#$ lab_sound_on = true
## 웹죽 세션 강제 유지 및 잠수 알림 (5분 이상 입력이 없어도 종료되지 않음) ##
#$ lab_maintain_session = false
##tile_realtime_anim = true
##tile_water_anim = true
explore_auto_rest = false
always_show_zot = true
##tile_player_tile = mons:twister
force_spell_targeter =
force_ability_targeter =
## hjklyubn 이동 방지
include = no_vi_command_keys.txt
## 아군 냉장고 무시
{
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
}
## 싱잉소드, OTR, 냉장고 등의 플래쉬 무시
##
use_animations -= player
## 공 방패 무시
msc := message_colour
msc += mute:Fedhas appreciates your contribution to the ecosystem.
msc += mute:You radiate an aura of cold.
msc += mute:PANG!
msc += mute:GONNNNG!
msc += mute:SHROANNG!
msc += mute:BOUMMMMG!
msc += mute:BONNNG!
msc += mute:PTOANNNG!
msg += mute:PANG!
msg += mute:You howl as the wereblood boils in your veins!
#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
## 위험도 타일 색깔 표시
tile_show_threat_levels = trivial, easy, tough, nasty, unusual
## 탐험 시 아이템 더미 위에 이동 안함
explore_stop -= greedy_visited_item_stack
Item_slot += curare-tipped dart:+e
Item_slot += throwing net:+d
launcher_autoquiver = true
fire_order = launcher, throwing
tile_web_mouse_control = false
runrest_ignore_message += the wereblood boils in your veins
runrest_ignore_message += A nearby plant withers and dies
runrest_ignore_message += Your fire (vortex|vortices).*something
runrest_ignore_message += something .* fire (vortex|vortices)
runrest_ignore_message += Your primal bloodlust is almost over
tile_font_crt_size = 14
tile_font_stat_size = 15
tile_font_msg_size = 14
tile_font_tip_size = 15
tile_font_lbl_size = 14
reduce_animations = false
autopickup_exceptions ^= <(immolation|lignification|mutation|attraction|vulnerability|torment|scroll of poison|scrolls of poison)
autopickup_exceptions ^=