#9th Version of rc setting file (190622) #some functions was originated by HDA, Yermak, gammafunk and various ######## 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 ######################## travel_delay = -1 travel_key_stop = true explore_delay = -1 explore_wall_bias = 0 explore_key_stop = true rest_wait_percent = 80 default_manual_training = true cloud_status = true auto_butcher = hungry ######## Force More ######################## more := force_more_message more += (?-i:[A-Z]).* comes? into view more += (?-i:[A-Z]).* opens? the more += You feel yourself slow down more += dispelling energy hits you more += You convulse #more += increases to level #more += You have reached level more += Space .* around you more += .*orbs? of fire.* comes? into view more += ((floating|shining) eye|dream sheep|doom hound).*into view more += .*(s|player) ghost.* comes? into view more += It is wielding.*of distortion more += She is wielding.*of distortion more += He is wielding.*of distortion more += Found .* abyssal rune of Zot more += (blundered into a|invokes the power of) Zot more += Deactivating autopickup #more += The mighty Pandemonium lord .* resides here more += Ouch! That really hurt! more += A sentinel's mark forms upon you more += calcifying dust hits more += watched by something more += You feel less protected from missiles #more += time is quickly running out more += .*LOW HITPOINT WARNING more += You hear a zap more += Found a staircase to the Ecumenical Temple more += You fail to use your ability more += You miscast.*(Blink|Borgnjor|Door|Haste|Invisibility) #more += Your transformation is almost over more += Your thoughts seem clearer more += You become entangled #flash_screen_message += Your time is quickly running out ######## 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 ######## Autoinscriptions ######################## ai := autoinscribe ai += staff of (energy|channeling|wizardry|power|conjuration|summoning):!a ai += .*Wucad Mu:!a!d autoinscribe += .*faith:!P autoinscribe += ration:!d autoinscribe += figurine:=g autoinscribe += .*Vines:=g autoinscribe += potion.*invisibility:!q!d autoinscribe += potion.*magic:!q!d autoinscribe += potion.*lignification:!d autoinscribe += potion.*ambrosia:!q!d autoinscribe += potion.*resistance:!q!d autoinscribe += potion.*heal wounds:!q!d autoinscribe += potion.*haste:!q!d autoinscribe += potion.*curing:!q!d autoinscribe += potion.*agility:!q autoinscribe += potion.*brilliance:!q!d autoinscribe += potion.*berserk rage:!q autoinscribe += potion.*cancellation:!q!d #autoinscribe += (bad|dangerous)_item.*scroll:!r #autoinscribe += (bad|dangerous)_item.*potion:!q autoinscribe += potion.*mutation:!d #autoinscribe += scroll.*torment:!r autoinscribe += scroll.*silence:!r autoinscribe += scroll.*fear:!r autoinscribe += scroll.*holy word:!r!d autoinscribe += scroll.*immolation:!d autoinscribe += scroll.*blinking:!d autoinscribe += scroll.*identify:!d autoinscribe += scroll.*teleportation:!d autoinscribe += scroll.*magic mapping:!r!d autoinscribe += shield.*resistance:!d ######## Autopickup ######################## autopickup = $?!:/%|\ ae := autopickup_exceptions ae += scrolls? of silence ae += >scrolls? of brand weapon ae += >scrolls? of enchant weapon ae += >.*Wucad Mu ae += staff of .* ######## Notes(unused) ######################## ;note_items += experience,of resistance, Archmagi ######## Hotkey Assignment ######################## ability_slot += Evoke Flight:+g ability_slot += Evoke Invisibility:+h ability_slot += Evoke Blink:+a ability_slot += End Transformation:+f ability_slot += Channel Magic:p ability_slot += Divine Energy:d spell_slot += Swiftness:p spell_slot += Regeneration:l spell_slot += Aura Of Abjuration:o spell_slot += Deflect Missiles:n spell_slot += Invisibility:+h spell_slot += Darkness:+d spell_slot += Necromutation:+a spell_slot += Death's Door:+m spell_slot += Apportation:z spell_slot += Blink:+b spell_slot += Passage of Golubria:+a spell_slot += Controlled Blink:+c spell_slot += Disjunction:c spell_slot += Summon Butterflies:m spell_slot += Sublimation Of Blood:j spell_slot += Conjure Flame:e spell_slot += Lee's Rapid Deconstruction:t spell_slot += Yara's Violent Unravelling:y spell_slot += Sticky Flame:+c spell_slot += Iskenderun's Battlesphere:t spell_slot += Dispel Undead:k spell_slot += Iron Shot:q spell_slot += Bolt Of Draining:q spell_slot += Bolt Of Fire:q spell_slot += Throw Icicle:q spell_slot += Fireball:+q spell_slot += Orb Of Destruction:+r spell_slot += Fulminant Prism:+w spell_slot += Ignition:i spell_slot += Fire Storm:+f spell_slot += Glaciate:+g spell_slot += Shatter:+e spell_slot += Tornado:+d item_slot += wand.*digging:+v item_slot += wand.*clouds:+A item_slot += wand.*scattershot:+S item_slot += wand.*acid:+D item_slot += wand.*iceblast:+F item_slot += wand.*paralysis:+G item_slot += wand.*flame:+f Item_slot += staff.*wizardry:s Item_slot += staff.*Wucad Mu:+s Item_slot += staff.*energy:+w Item_slot += staff.*fire:+q Item_slot += staff.*conjuration:+q Item_slot += staff.*death:+e Item_slot += .*of distortion:+i Item_slot += .*distort:+i ;Item_slot += .*of penetration:+E Item_slot += steel.*:+E Item_slot += .*of spiders:+R Item_slot += scroll.*remove curse:+r Item_slot += scroll.*teleportation:+t Item_slot += scroll.*identify:+g Item_slot += scroll.*blinking:+c Item_slot += scroll.*enchant armour:+Z Item_slot += scroll.*amnesia:+X Item_slot += scroll.*acquirement:+C Item_slot += scroll.*fog:+Q Item_slot += scroll.*enchant weapon:+W Item_slot += scroll.*immolation:+T Item_slot += scroll.*holy word:+Y Item_slot += scroll.*magic mapping:+P Item_slot += potion.*might:+f Item_slot += potion.*berserk rage:+h Item_slot += potion.*agility:+j Item_slot += potion.*flight:+k Item_slot += potion.*lignification:+l Item_slot += potion.*haste:+O Item_slot += potion.*mutation:+U Item_slot += potion.*Invisibility:+H Item_slot += potion.*magic:+J Item_slot += potion.*cancellation:+K Item_slot += potion.*resistance:+L Item_slot += potion.*brilliance:+V Item_slot += potion.*ambrosia:+B Item_slot += potion.*curing:+N Item_slot += potion.*heal wounds:+M Item_slot += potion.*experience:+I ;Item_slot += rations:+e ######## Function Section ######################## { function ready() Petrifying_Check() OpenSkills() hpWarning_Early() hpWarning_Mid() hpWarning_Late() hp_percent() mp_percent() AnnounceDamage() Vehumetoffer() Ruoffer() DDoorWarning() 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......") 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("There's no tedium; impatience and laziness do.") 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......") 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......") 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 prudently even on late-game......") 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 veh = false crawl.yesno("Vehumet offers a spell for you! (Y or N to confirm.)", false, false, true, true) 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 ru = false crawl.yesno("Ru offers sacrifice for you! (Y or N to confirm.)", false, false, true, true) 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 } { 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 } ######## 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 } macros += M 5 ===custom_rest { 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 } ######## 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>