##### Crawl Init file ############################################### tile_web_mouse_control = false explore_stop += greedy_visited_item_stack autofight_stop = 60 wall_jump_move = false autopickup_search = true explore_auto_rest = true show_more = false bindkey = [s] CMD_SAFE_WAIT macros += M - / ############################### # toggle-able safe mode movement ### : function startsafemode() : safemodeon = true : crawl.mpr("Safe mode on.") bindkey = [b] CMD_SAFE_MOVE_DOWN_LEFT bindkey = [h] CMD_SAFE_MOVE_LEFT bindkey = [j] CMD_SAFE_MOVE_DOWN bindkey = [k] CMD_SAFE_MOVE_UP bindkey = [l] CMD_SAFE_MOVE_RIGHT bindkey = [n] CMD_SAFE_MOVE_DOWN_RIGHT bindkey = [u] CMD_SAFE_MOVE_UP_RIGHT bindkey = [y] CMD_SAFE_MOVE_UP_LEFT bindkey = [1] CMD_SAFE_MOVE_DOWN_LEFT bindkey = [4] CMD_SAFE_MOVE_LEFT bindkey = [2] CMD_SAFE_MOVE_DOWN bindkey = [8] CMD_SAFE_MOVE_UP bindkey = [6] CMD_SAFE_MOVE_RIGHT bindkey = [3] CMD_SAFE_MOVE_DOWN_RIGHT bindkey = [9] CMD_SAFE_MOVE_UP_RIGHT bindkey = [7] CMD_SAFE_MOVE_UP_LEFT : end : function stopsafemode() : safemodeon = false : crawl.mpr("Safe mode off.") bindkey = [b] CMD_MOVE_DOWN_LEFT bindkey = [h] CMD_MOVE_LEFT bindkey = [j] CMD_MOVE_DOWN bindkey = [k] CMD_MOVE_UP bindkey = [l] CMD_MOVE_RIGHT bindkey = [n] CMD_MOVE_DOWN_RIGHT bindkey = [u] CMD_MOVE_UP_RIGHT bindkey = [y] CMD_MOVE_UP_LEFT bindkey = [1] CMD_MOVE_DOWN_LEFT bindkey = [4] CMD_MOVE_LEFT bindkey = [2] CMD_MOVE_DOWN bindkey = [8] CMD_MOVE_UP bindkey = [6] CMD_MOVE_RIGHT bindkey = [3] CMD_MOVE_DOWN_RIGHT bindkey = [9] CMD_MOVE_UP_RIGHT bindkey = [7] CMD_MOVE_UP_LEFT : end # initialize off : stopsafemode() : function togglesafe() : if safemodeon then : stopsafemode() : else : startsafemode() : end : end macros += M ] ===togglesafe macros += M / ===togglesafe ########################## #### Safe Move End ##################### ##### SAFE SHOUT : function safeshout() : if you.feel_safe() then : crawl.sendkeys("tt") : else : crawl.mpr("A monster is nearby!") : end : end macros += M + ===safeshout ##################### ##### SAFE SHOUT END ################################ ####### FORCE MORES more := force_more_message # distortion more += Space warps horribly around you more += hits you.*distortion more += Space bends around you\. more += Your surroundings suddenly seem different. more += Its appearance distorts for a moment. # ghost moths/antimagic more += watched by something more += You feel your power leaking # torment/holy wrath more += You convulse # dispel breath more += dispelling energy hits you # early unseen horrors more += It hits you! more += Something hits you more += Something. *misses you. more += You have reached level more += You fall through a shaft # abyss convenience prompts more += Found an abyssal rune more += Found a gateway leading out of the Abyss # necromutation more += Your transformation is almost over. more += You feel yourself coming back to life # summon greater demon more += is no longer charmed # Announcements of timed portal vaults: more += interdimensional caravan more += distant snort more += roar of battle more += wave of frost more += hiss of flowing sand more += sound of rushing water more += oppressive heat about you more += crackle of arcane power more += Found a gateway leading out of the Abyss more += Found .* abyssal rune of Zot more += You feel a terrible weight on your shoulders more += .* resides here # Interrupts more += You don't.* that spell more += You miscast (Controlled Blink|Blink|Death's|Borg|Necromutation) more += You can't (read|drink|do) that more += That item cannot be evoked more += This wand has no charges more += You are held in a net more += You have disarmed more += You don't have any such object more += do not work when you're silenced more += You can't unwield more += enough magic points more += You feel your control is inadequate more += Something interferes with your magic more += You enter a teleport trap # Bad things more += Your surroundings flicker more += You cannot teleport right now more += The writing blurs in front of your eyes more += You fall through a shaft more += A huge blade swings out and slices into you! more += (blundered into a|invokes the power of) Zot more += Ouch! That really hurt! more += dispelling energy hits you more += You convulse more += You are (blasted|electrocuted) more += You are.*confused more += flesh start more += (starving) more += wrath finds you more += god:(sends|finds|silent|anger) more += You feel a surge of divine spite more += lose consciousness more += You are too injured to fight blindly more += calcifying dust hits more += Space warps horribly around you more += hits you.*distortion more += Space bends around you\. more += watched by something more += A sentinel's mark forms upon you more += Your limbs have turned to stone more += You are slowing down more += .*LOW HITPOINT WARNING.* more += warns you.*of distortion more += lethally poison more += space bends around your more += wielding.*of (distortion|chaos) # Hell effects # Re-enabled more += "You will not leave this place." more += "Die, mortal!" more += "We do not forgive those who trespass against us!" more += "Trespassers are not welcome here!" more += "You do not belong in this place!" more += "Leave now, before it is too late!" more += "We have you now!" more += You smell brimstone. more += Brimstone rains from above. more += You feel lost and a long, long way from home... more += You shiver with fear. more += You feel a terrible foreboding... more += Something frightening happens. more += You sense an ancient evil watching you... more += You suddenly feel all small and vulnerable. more += You sense a hostile presence. more += A gut-wrenching scream fills the air! more += You hear words spoken in a strange and terrible language... more += You hear diabolical laughter! # Expiring effects more += You feel yourself slow down more += less insulated more += You are starting to lose your buoyancy more += You lose control over your flight more += Your hearing returns more += Your transformation is almost over more += You have a feeling this form more += You feel yourself come back to life more += uncertain more += time is quickly running out more += life is in your own hands more += is no longer charmed more += shroud falls apart more += You start to feel a little slower more += You flicker more += You feel less protected from missiles # Others more += You have finished your manual of more += Your scales start more += You feel monstrous more += zaps a wand more += is unaffected more += Jiyva alters your body # Uniques and baddies # Any uniques and any pan lords more += (?-i:[A-Z]).* comes? into view more += .*player ghost.* comes? into view more += .*Ancient Lich.*comes? into view. more += .*Orbs? of Fire.*comes? into view. more += .*Fiend.*comes? into view. more += .*Hellion.*comes? into view. more += .*Tormentor.*comes? into view. more += .*Hell Sentinel.*comes? into view. more += .*Executioner.*comes? into view. more += .*Neqoxec.*comes? into view. more += .*Cacodemon.*comes? into view. more += .*Shining Eye.*comes? into view. more += .*Greater Mummy.*comes? into view. more += .*Mummy Priest.*comes? into view. more += .*Curse Toe.*comes? into view. more += .*Curse Skull.*comes? into view. more += .*('s|s') ghost.*comes? into view. more += .*shrike.*comes? into view. more += .*wretched star.*comes? into view more += .*lurking horror.*comes? into view more += .*Hell Juggernaut.*comes? into view. #Paralysis enemies more += .*Giant Eyeball.*comes? into view. more += .*Lich.*comes? into view. more += .*Ogre Mage.*comes? into view. more += .*a Wizard.*comes? into view. more += .*orc sorcerer.*comes? into view. more += .*sphinx.*comes? into view. more += .*Vampire knight.*comes? into view. more += .*Great orb of eyes.*comes? into view. # Dancing weapon more += Your.*falls from the air. # Xom is scary : if you.god() == "Xom" then more += god: : end ############################### ############ FORCE MORE END ################################## ####### DAMAGE ANNOUNCE # Ask HilariousDeathArtist to fix things # To use this you must add have a call to AnnounceDamage() in the ready() function like below: # This is important if you override this ready() function { function ready() AnnounceDamage() end } ############### # Damage Calc # ############### { 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 } ####################### ##### END DAMAGE ANNOUNCE CODE #######################