# CRAWL.NEMELEX.CARDS # Last Updated at Aug 20, 2024 -- https://crawl.develz.org/wiki/doku.php?id=dcss:help:maps:lua:modules:crawl:input -- https://doc.dcss.io/index.html --------## Sound Pack ##-------- sound_on = true # CNC server's SoundPack sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 sound_volume = 0.3 --------## basic settings ##-------- #view_delay = 200 default_manual_training = true rest_wait_both = true rest_wait_percent = 80 explore_auto_rest=true show_more = false explore_stop -= greedy_visited_item_stack tile_show_threat_levels = tough nasty #font to Consolas tile_font_crt_family = Consolas tile_font_stat_family = Consolas tile_font_msg_family = Consolas tile_font_lbl_family = Consolas #font size tile_font_stat_size = 9 tile_font_msg_size = 15 #tile_font_tip_size = 10 #tile_font_lbl_size = 10 --------## alert messages ##-------- ### Snake Pit ### force_more_message += guardian serpent .*into view force_more_message += salamander tyrant .*into view ### Shoal ### force_more_message += merfolk aquamancer .*into view ### Vaults ### force_more_message += peacekeeper .*into view ### Zot Realm ### force_more_message += draconian scorcher .*into view force_more_message += draconian shifter .*into view force_more_message += moth of wrath .*into view #distortion alert force_more_message += is wielding.*distortion.* flash_screen_message += is wielding.*distortion.* #undead_holy alert : if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then unusual_monster_items += holy : end #vehumet alert flash_screen_message += Vehumet offers* #message color for noises 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|trumpets|hear a trumpeting|skitter|hear a skittering sound|skitter faintly|hear a faint skittering sound|chilling moan) message_colour ^= lightgreen:it creaks loudly #message color exceptions message_colour ^= white: no longer poisoned #message additions force_more_message += grants you force_more_message += pick up a manual force_more_message += You have finished your manual force_more_message += You feel a bit more experienced force_more_message += You feel your power leaking away force_more_message += found a staircase to the ecumenical temple force_more_message += blink again force_more_message += yourself slow down force_more_message += Training target .* for .* reached #message exceptions force_more_message -= You have reached level force_more_message -= You sense #runset ignore runset_ignore_message += your breath back runset_ignore_message += You feel.*sick runset_ignore_message += You are no longer corroded --------## item settings ##-------- -- autopickup autopickup_exceptions += 0 then local hp_difference = previous_hp - current_hp if hp_difference > max_hp * value and not was_berserk and not was_form then crawl.mpr("*** YOU TAKE " .. hp_difference .. " DAMAGE!! HP:[" .. current_hp .. "/" .. max_hp .. "] *** ") crawl.more() end end previous_hp = current_hp previous_form = current_form was_berserk_last_turn = you_are_berserk end } -- AnnounceMP() : alarm when you have low MP { local previous_mp = 0 local previous_max_mp = 0 function AnnounceMP() local current_mp, max_mp = you.mp() if previous_mp > 0 and previous_max_mp == max_mp then local mp_difference = previous_mp - current_mp if current_mp < (max_mp * 0.5) and mp_difference > 0 then crawl.mpr("*** LOW MP WARNING MP:[" .. current_mp .. "/" .. max_mp .. "] *** ") if current_mp < (max_mp * 0.1) then crawl.more() end end end previous_mp = current_mp previous_max_mp = max_mp end } -- EndFloorNotation() : show more after exploring a floor { function is_explored() if string.find(crawl.messages(1),"Done exploring") then return true elseif string.find(crawl.messages(1),"Partly explored,*") then return true elseif string.find(crawl.messages(1),"Could not explore") then return true end return false end function EndFloorNotation() if is_explored() then crawl.mpr("Check Inventory & Find Items... ") crawl.more() end end } -- force_threat_mores() : alerts for high hd monsters (red) coming into view #https://gist.github.com/Implojin/ec5c4e341d92e0ce34a87f5c060a19ea { local ATT_NEUTRAL = 1 local visible_mons_table = {} -- To reduce warning spam from bands we compare m:name(), -- so you'll only get a single warning per group of Death Yaks or whatever. function update_visible_mons_table(m) for _,visible_mons in ipairs(visible_mons_table) do if m:name() == visible_mons:name() then return false end end table.insert(visible_mons_table, m) if m:threat() >= 3 then crawl.formatted_mpr("Extremely Dangerous Monster: " .. m:name() .. "") crawl.more() end end -- To give our threat warnings some hysteresis, -- we warn once when adding a new mthrt:nasty to the table, -- and we wipe the threat table whenever LOS is empty. function force_threat_mores() local LOS = you.los() local m = nil local current_threat = 0 for i = -LOS,LOS do for j = -LOS,LOS do m = monster.get_monster_at(i,j) if m and you.see_cell_no_trans(i,j) and m:attitude() < ATT_NEUTRAL then current_threat = current_threat + m:threat() update_visible_mons_table(m) end end end if current_threat == 0 then visible_mons_table = {} end end } --------## functions that alerts only once ##-------- -- Vaults warning : Depth5 & rElec #https://tavern.dcss.io/t/whats-in-your-rc-file/160/15 { local annotated = false function ready() if string.find(crawl.messages(1),"This branch contains the silver rune of Zot") and not annotated_v5 then crawl.sendkeys("!v5" .. string.char(13) .. "!vaults warning" .. string.char(13)) if you.res_shock() < 1 then crawl.mpr("Warning : You don't have rElec!!") crawl.more() end annotated = true end end } -- sending 'm' when you start game { local need_skills_opened = true function ready() if you.turns() == 0 and need_skills_opened then crawl.sendkeys("m") need_skills_opened = false end end }