# VAMPIRE species = Vampire tile_player_tile = playermons default_manual_training = true # things I haven't won yet #background += AE, AK, AM, Be, Br, CK, Cj, De, EE, En, FE, Fi, Hu, HW, IE, Mo, Sk, Su, Tm, VM, Wr, Wz -- nevermind let's just play De and try to beat 92628 turns to win -- ok next is HW where the high score is just win, but lets go for 15 rune -- won and accidentally started a new one. next is vm and the time to beat is 79,534 turns -- ok here is the next one, vpfe at 87k turns. time to try ignition zigging i guess -- screw vpfe the start is too frustrating let's try vpsu at 80k turns -- ok su is good but same thing over and over is boring so be it is, to beat 72k turns background += Be show_game_time = false rest_wait_percent = 80 # Spell and item slots spell_slot ^= Ozocubu's Armour:oO spell_slot ^= Dazzling:fF spell_slot ^= Cause Fear:U spell_slot ^= Ramparts:rR spell_slot ^= Swiftness:sS spell_slot ^= Shatter:sS spell_slot ^= Excruciating:eE spell_slot ^= Spellforged servitor:eE spell_slot ^= Ensorcelled Hibernation:zZ spell_slot ^= Enfeeble:xX spell_slot ^= Blink:bB spell_slot ^= Confusing Touch:cC spell_slot ^= Dispel Undead:dD spell_slot ^= Lee's Rapid:lL spell_slot ^= Lehudib's crystal spear:dD spell_slot ^= Iron:iI spell_slot ^= Vampiric:vV spell_slot ^= Passwall:P spell_slot ^= Petrify:pP spell_slot ^= Poisonous:pP spell_slot ^= Refrigeration:rR spell_slot ^= Yara's:yY spell_slot ^= Discord:kK spell_slot ^= Tukima's:tT spell_slot ^= Irradiate:wW spell_slot ^= Clutch:gG spell_slot ^= Mephitic:mM spell_slot ^= Call imp:cC spell_slot ^= Ignite poison:iI spell_slot ^= Freezing cloud:fF spell_slot ^= Polar vortex:vV spell_slot ^= Passage of Golubria:hH spell_slot ^= Apportation:aA spell_slot ^= Stone Arrow:fF spell_slot ^= Bolt of Magma:mM fire_items_start = c item_slot ^= javelin:cd item_slot ^= boomerang:ef item_slot ^= needle:ghi item_slot ^= throwing net:j item_slot ^= dagger:s # Inscriptions autoinscribe += throwing net:!f autoinscribe += dispersal:!f autoinscribe += atropa:!f autoinscribe += datura:!f show_god_gift = yes # UI tile_cell_pixels = 35 stab_highlight = hi:blue may_stab_highlight = hi:brown assign_item_slot = backward auto_switch = true pickup_thrown = true autopickup_exceptions += = AUTOIDENT_SCROLL_MIN then crawl.mpr("I am now auto-reading an unidentified scroll.") crawl.sendkeys("r" .. letter) elseif it.class() == "Potions" and it.quantity >= AUTOIDENT_POTION_MIN then crawl.mpr("I am now auto-quaffing an unidentified potion.") crawl.sendkeys("q" .. letter) end end end end local function ihaveunidentified() local inv = items.inventory() for _, it in ipairs(inv) do if not it.fully_identified then return true end end return false end local function ihaveidentify() local inv = items.inventory() for _, it in ipairs(inv) do if string.find(it.name(), "dentify") then return true end end return false end local function ihaveidentify_at() local inv = items.inventory() for _, it in ipairs(inv) do if string.find(it.name(), "dentify") then local letter = items.index_to_letter(it.slot) return letter end end end local mainweaponslot = "a" local stabweaponslot = "s" local function findmainweapon() local inv = items.inventory() for _, it in ipairs(inv) do if string.find(it.name(), "%+main") then local letter = items.index_to_letter(it.slot) return letter end end return "error" end local function findstabweapon() local inv = items.inventory() for _, it in ipairs(inv) do if string.find(it.name(), "%+stab") then local letter = items.index_to_letter(it.slot) return letter end end return "error" end -- stab with dagger please, then switch back to slot a function is_stabbable_in_1tile() local x,y for x = -1,1 do for y = -1,1 do m = monster.get_monster_at(x,y) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end end end if not not_rampaging() then m = monster.get_monster_at(2,2) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(2,0) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(2,-2) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(0,2) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(0,-2) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(-2,2) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(-2,0) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end m = monster.get_monster_at(-2,2) if m and m:attitude() < 1 and m:stabbability() == 1 and not string.find(m:name(), "plant") and not string.find(m:name(), "bush") then return true end end return false end function is_nonstabbable_monster_in_1tile() local x,y for x = -1,1 do for y = -1,1 do m = monster.get_monster_at(x,y) if m and m:attitude() < 1 and m:stabbability() == 0 then return true end end end return false end function auto_dagger_at_s() if is_stabbable_in_1tile() then crawl.sendkeys('w' .. 's') end end function stealthbonusfrom(gearname) if (string.find(gearname, "Stlth%+%+%+%+%+")) then return 250 end if (string.find(gearname, "Stlth%+%+%+%+")) then return 200 end if (string.find(gearname, "Stlth%+%+%+")) then return 150 end if (string.find(gearname, "Stlth%+%+")) then return 100 end if (string.find(gearname, "Stlth%+")) then return 50 end if (string.find(gearname, "of stealth")) then return 50 end if (string.find(gearname, "Stlth%-%-%-%-%-")) then return -250 end if (string.find(gearname, "Stlth%-%-%-%-")) then return -200 end if (string.find(gearname, "Stlth%-%-%-")) then return -150 end if (string.find(gearname, "Stlth%-%-")) then return 100 end if (string.find(gearname, "Stlth%-")) then return 50 end return 0 end function calculatestealth() if you.berserk() then return 0 end if (you.get_base_mutation_level("no stealth")) > 0 then return 0; end local stealth = you.dexterity() * 3 stealth = stealth + you.skill("Stealth") * 15 if (you.confused()) then stealth = stealth / 3 end local armour = items.equipped_at("body armour") local evp = 0 if armour ~= nil then if (string.find(armour.name(), "robe")) then evp = 0 end if (string.find(armour.name(), "skin")) then evp = 0 end if (string.find(armour.name(), "leather armour")) then evp = 4 end if (string.find(armour.name(), "ring mail")) then evp = 7 end if (string.find(armour.name(), "scale mail")) then evp = 10 end if (string.find(armour.name(), "chain mail")) then evp = 15 end if (string.find(armour.name(), "plate armour")) then evp = 18 end if (string.find(armour.name(), "crystal plate armour")) then evp = 23 end if (string.find(armour.name(), "troll leather armour")) then evp = 4 end if (string.find(armour.name(), "steam dragon")) then evp = 0 end if (string.find(armour.name(), "acid dragon")) then evp = 5 end if (string.find(armour.name(), "swamp dragon")) then evp = 7 end if (string.find(armour.name(), "quicksilver dragon")) then evp = 7 end if (string.find(armour.name(), "fire dragon")) then evp = 11 end if (string.find(armour.name(), "ice dragon")) then evp = 11 end if (string.find(armour.name(), "pearl dragon")) then evp = 11 end if (string.find(armour.name(), "shadow dragon")) then evp = 15 end if (string.find(armour.name(), "storm dragon")) then evp = 15 end if (string.find(armour.name(), "gold dragon")) then evp = 23 end end local penalty = 0 penalty = evp * evp * 2 / 3 stealth = stealth - penalty local armourbonus = 0 local weapon = items.equipped_at("weapon") local helmet = items.equipped_at("helmet") local gloves = items.equipped_at("gloves") local boots = items.equipped_at("boots") local armour = items.equipped_at("body armour") local cloak = items.equipped_at("cloak") local rring = items.equipped_at("right ring") local lring = items.equipped_at("left ring") local amulet = items.equipped_at("amulet") if weapon ~= nil then armourbonus = armourbonus + stealthbonusfrom(weapon.name()) end if helmet ~= nil then armourbonus = armourbonus + stealthbonusfrom(helmet.name()) end if gloves ~= nil then armourbonus = armourbonus + stealthbonusfrom(gloves.name()) end if boots ~= nil then armourbonus = armourbonus + stealthbonusfrom(boots.name()) end if armour ~= nil then armourbonus = armourbonus + stealthbonusfrom(armour.name()) end if cloak ~= nil then armourbonus = armourbonus + stealthbonusfrom(cloak.name()) end if rring ~= nil then armourbonus = armourbonus + stealthbonusfrom(rring.name()) end if lring ~= nil then armourbonus = armourbonus + stealthbonusfrom(lring.name()) end if amulet ~= nil then armourbonus = armourbonus + stealthbonusfrom(amulet.name()) end stealth = stealth + armourbonus -- if you.get_base_mutation_level("MUT_NIGHTSTALKER") then -- stealth = stealth + (50 * you.get_base_mutation_level("MUT_NIGHTSTALKER") / 3) -- end -- if you.get_base_mutation_level("MUT_THIN_SKELETAL_STRUCTURE") then -- stealth = stealth + (50 * you.get_base_mutation_level("MUT_THIN_SKELETAL_STRUCTURE")) -- end -- if you.get_base_mutation_level("MUT_CAMOUFLAGE") then -- stealth = stealth + (50 * you.get_base_mutation_level("MUT_CAMOUFLAGE")) -- end -- if you.get_base_mutation_level("MUT_TRANSLUCENT_SKIN") then -- stealth = stealth + (50 * you.get_base_mutation_level("MUT_TRANSLUCENT_SKIN")) -- end if you.silenced() then stealth = stealth - 50 end if (string.find(you.status(), "bloodless")) then stealth = stealth + 100 end if(string.find(view.feature_at(0,0), "water")) and not (string.find(you.status(), "fly")) then stealth = stealth / 2 end if (string.find(you.status(), "corona")) then stealth = stealth * 2 / 5 end if (string.find(you.status(), "halo")) then stealth = stealth * 2 / 5 end local umbra_mul = 1 local umbra_div = 1 if rring ~= nil then if string.find(rring.name(), "shadows") then umbra_mul = 3 umbra_div = 2 end end if lring ~= nil then if string.find(lring.name(), "shadows") then umbra_mul = 3 umbra_div = 2 end end if you.god() == "Dithmenos" then umbra_div = 200 if you.piety_rank() == 0 then umbra_mul = 229 end if you.piety_rank() == 1 then umbra_mul = 249 end if you.piety_rank() == 2 then umbra_mul = 274 end if you.piety_rank() == 3 then umbra_mul = 299 end if you.piety_rank() == 4 then umbra_mul = 319 end if you.piety_rank() == 5 then umbra_mul = 360 end if you.piety_rank() == 6 then umbra_mul = 400 end end stealth = stealth * umbra_mul / umbra_div if you.god == "Qazlal" then return 0 end if you.have_orb() then stealth = stealth / 3 end return math.floor(stealth + 0.5) end function monsterpercbasecalculation(hd, intbonus) -- int mons_perc = 10 + (mons_intel(*mons) * 4) + mons->get_hit_dice(); return 10 + intbonus*4 + hd end function monsterpercbase(name) -- monsters from https://github.com/crawl/crawl/blob/34511f41fdeb0b328368182abb8608d8fa48e566/crawl-ref/source/mon-data.h -- intelligence info from https://github.com/crawl/crawl/blob/20e0cd1ebb091eeb805d217dc459c19ed7c5572c/crawl-ref/source/mon-enum.h local I_BRAINLESS = 0 local I_ANIMAL = 1 local I_HUMAN = 2 --zombies etc. have the same hd as the original monster, but are brainless if string.find(name, " zombie") or string.find(name, " simulacrum") or string.find(name, " skeleton") or string.find(name, "spectral ") then name=string.gsub(name, " zombie", "") name=string.gsub(name, " skeleton", "") name=string.gsub(name, " simulacrum", "") name=string.gsub(name, "spectral ", "") I_ANIMAL = 0 I_HUMAN = 0 end -- monsterpercbasecalculation(hd, intbonus) -- .*Word1(.*?)Word2.* -- (?s)(?<=plot>)(.+?)(?=) -- (?s) … Identifies any DOT character as also containing the line feed characters (\r and \n) -- (?<=plot>) … This positions the cursor so the preceding characters are plot> -- (.+?) … This means grab characters lazily until … (The DOT character means any character) -- (?=) … we see immediately ahead of us the sequence. if name == "imperial myrmidon" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "servant of whispers" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "ragged hierophant" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "bat" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "butterfly" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "vampire bat" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "fire bat" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "bennu" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "caustic shrike" then return monsterpercbasecalculation(18, I_ANIMAL) end if name == "shard shrike" then return monsterpercbasecalculation(21, I_ANIMAL) end if name == "centaur" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "centaur warrior" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "yaktaur" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "yaktaur captain" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "faun" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "satyr" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "draconian" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "yellow draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "pale draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "green draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "purple draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "red draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "white draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "grey draconian" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "draconian stormcaller" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "draconian monk" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "draconian shifter" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "draconian annihilator" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "draconian knight" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "draconian scorcher" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "elf" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "deep elf knight" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "deep elf archer" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "deep elf blademaster" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "deep elf master archer" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "deep elf zephyrmancer" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "deep elf pyromancer" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "deep elf high priest" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "deep elf demonologist" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "deep elf annihilator" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "deep elf sorcerer" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "deep elf death mage" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "deep elf elementalist" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "wandering mushroom" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "deathcap" then return monsterpercbasecalculation(13, I_BRAINLESS) end if name == "thorn hunter" then return monsterpercbasecalculation(15, I_ANIMAL) end if name == "shambling mangrove" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "vine stalker" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "goblin" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "hobgoblin" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "gnoll" then return monsterpercbasecalculation(2, I_HUMAN) end if name == "gnoll bouda" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "gnoll shaman" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "gnoll sergeant" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "boggart" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "dwarf" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "deep dwarf" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "jackal" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "hound" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "howler monkey" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "warg" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "wolf" then return monsterpercbasecalculation(4, I_ANIMAL) end if name == "hog" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "hell hound" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "doom hound" then return monsterpercbasecalculation(20, I_ANIMAL) end if name == "raiju" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "hell hog" then return monsterpercbasecalculation(11, I_ANIMAL) end if name == "holy swine" then return monsterpercbasecalculation(11, I_ANIMAL) end if name == "felid" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "polar bear" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "black bear" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "spriggan" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "spriggan rider" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "spriggan druid" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "spriggan berserker" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "spriggan air mage" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "spriggan defender" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "swamp drake" then return monsterpercbasecalculation(4, I_ANIMAL) end if name == "rime drake" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "wind drake" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "lindwurm" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "death drake" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "frilled lizard" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "iguana" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "basilisk" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "wyvern" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "komodo dragon" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "merfolk" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "merfolk impaler" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "merfolk javelineer" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "merfolk aquamancer" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "merfolk siren" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "merfolk avatar" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "water nymph" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "bog body" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "necrophage" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "bloated husk" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "ghoul" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "searing wretch" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "orc" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "orc wizard" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "orc priest" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "orc warrior" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "orc knight" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "orc warlord" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "orc sorcerer" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "orc high priest" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "human" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "hell knight" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "death knight" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "necromancer" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "wizard" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "vault guard" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "vault sentinel" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "vault warden" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "ironbound convoker" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "ironbound frostheart" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "ironbound preserver" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "shapeshifter" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "glowing shapeshifter" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "Killer Klown" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "demigod" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "halfling" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "meteoran" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "spectator" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "rat" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "quokka" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "river rat" then return monsterpercbasecalculation(2, I_ANIMAL) end if name == "hell rat" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "crystal echidna" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "scorpion" then return monsterpercbasecalculation(4, I_ANIMAL) end if name == "emperor scorpion" then return monsterpercbasecalculation(14, I_ANIMAL) end if name == "tarantella" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "jumping spider" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "wolf spider" then return monsterpercbasecalculation(11, I_ANIMAL) end if name == "redback" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "demonic crawler" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "orb spider" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "broodmother" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "culicivora" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "alligator" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "snapping turtle" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "alligator snapping turtle" then return monsterpercbasecalculation(16, I_ANIMAL) end if name == "fire crab" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "ghost crab" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "apocalypse crab" then return monsterpercbasecalculation(8, I_ANIMAL) end if (string.find(name, "ugly thing")) then return monsterpercbasecalculation(12, I_ANIMAL) end if (string.find(name,"very ugly thing")) then return monsterpercbasecalculation(18, I_ANIMAL) end if name == "fire vortex" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "spatial vortex" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "spatial maelstrom" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "will-o-the-wisp" then return monsterpercbasecalculation(11, I_BRAINLESS) end if name == "twister" then return monsterpercbasecalculation(12, I_BRAINLESS) end if name == "worm" then return monsterpercbasecalculation(4, I_ANIMAL) end if name == "swamp worm" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "tyrant leech" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "dart slug" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "torpor snail" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "steelbarb worm" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "elephant slug" then return monsterpercbasecalculation(20, I_ANIMAL) end if name == "unseen horror" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "small abomination" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "ancient zyme" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "worldbinder" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "bunyip" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "killer bee" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "queen bee" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "vampire mosquito" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "hornet" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "meliai" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "spark wasp" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "ghost moth" then return monsterpercbasecalculation(13, I_ANIMAL) end if name == "moth of wrath" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "sun moth" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "wight" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "skeletal warrior" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "ancient champion" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "flying skull" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "curse skull" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "curse toe" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "revenant" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "angel" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "cherub" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "seraph" then return monsterpercbasecalculation(25, I_HUMAN) end if name == "daeva" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "profane servitor" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "giant cockroach" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "radroach" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "formicid" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "entropy weaver" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "boulder beetle" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "pharaoh ant" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "death scarab" then return monsterpercbasecalculation(8, I_ANIMAL) end if name == "cyclops" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "ettin" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "fire giant" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "frost giant" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "stone giant" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "titan" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "juggernaut" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "iron giant" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "cactus giant" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "tainted leviathan" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "fire dragon" then return monsterpercbasecalculation(12, I_ANIMAL) end if (string.find(name, "hydra")) then return monsterpercbasecalculation(13, I_ANIMAL) end if name == "ice dragon" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "steam dragon" then return monsterpercbasecalculation(4, I_ANIMAL) end if name == "swamp dragon" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "acid dragon" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "quicksilver dragon" then return monsterpercbasecalculation(16, I_ANIMAL) end if name == "iron dragon" then return monsterpercbasecalculation(18, I_ANIMAL) end if name == "storm dragon" then return monsterpercbasecalculation(14, I_ANIMAL) end if name == "golden dragon" then return monsterpercbasecalculation(18, I_ANIMAL) end if name == "shadow dragon" then return monsterpercbasecalculation(17, I_ANIMAL) end if name == "bone dragon" then return monsterpercbasecalculation(20, I_ANIMAL) end if name == "pearl dragon" then return monsterpercbasecalculation(18, I_ANIMAL) end if name == "earth elemental" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "quicksilver elemental" then return monsterpercbasecalculation(16, I_BRAINLESS) end if name == "fire elemental" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "water elemental" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "air elemental" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "iron elemental" then return monsterpercbasecalculation(12, I_BRAINLESS) end if name == "elemental wellspring" then return monsterpercbasecalculation(18, I_BRAINLESS) end if name == "bullfrog" then return monsterpercbasecalculation(4, I_ANIMAL) end if name == "cane toad" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "blink frog" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "goliath frog" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "barachi" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "floating eye" then return monsterpercbasecalculation(9, I_BRAINLESS) end if name == "glowing orange brain" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "great orb of eyes" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "shining eye" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "eye of devastation" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "golden eye" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "ophan" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "manticore" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "minotaur" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "fenstrider witch" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "sphinx" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "harpy" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "jorogumo" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "palentonga" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "mutant beast" then return monsterpercbasecalculation(15, I_ANIMAL) end if name == "ancestor" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "knight" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "battlemage" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "hexer" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "endoplasm" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "jelly" then return monsterpercbasecalculation(3, I_BRAINLESS) end if name == "slime creature" then return monsterpercbasecalculation(11, I_BRAINLESS) end if name == "rockslime" then return monsterpercbasecalculation(20, I_BRAINLESS) end if name == "quicksilver ooze" then return monsterpercbasecalculation(13, I_BRAINLESS) end if name == "azure jelly" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "acid blob" then return monsterpercbasecalculation(18, I_BRAINLESS) end if name == "kobold" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "kobold brigand" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "kobold demonologist" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "lich" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "ancient lich" then return monsterpercbasecalculation(27, I_HUMAN) end if name == "dread lich" then return monsterpercbasecalculation(27, I_HUMAN) end if name == "halazid warlock" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "stoker" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "mummy" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "guardian mummy" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "royal mummy" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "mummy priest" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "naga" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "naga mage" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "naga sharpshooter" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "naga ritualist" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "naga warrior" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "nagaraja" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "ogre" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "two-headed ogre" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "ogre mage" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "ironbound thunderhulk" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "plant" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "demonic plant" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "withered plant" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "oklob sapling" then return monsterpercbasecalculation(4, I_BRAINLESS) end if name == "oklob plant" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "starflower" then return monsterpercbasecalculation(16, I_BRAINLESS) end if name == "bush" then return monsterpercbasecalculation(20, I_BRAINLESS) end if name == "burning bush" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "toadstool" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "fungus" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "ballistomycete" then return monsterpercbasecalculation(4, I_BRAINLESS) end if name == "briar patch" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "tengu" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "tengu conjurer" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "tengu warrior" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "tengu reaver" then return monsterpercbasecalculation(17, I_HUMAN) end if name == "djinni" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "efreet" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "rakshasa" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "wendigo" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "dryad" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "eleionoma" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "snaplasher vine" then return monsterpercbasecalculation(12, I_BRAINLESS) end if name == "snaplasher vine segment" then return monsterpercbasecalculation(12, I_BRAINLESS) end if name == "ball python" then return monsterpercbasecalculation(1, I_ANIMAL) end if name == "adder" then return monsterpercbasecalculation(2, I_ANIMAL) end if name == "water moccasin" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "black mamba" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "sea snake" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "anaconda" then return monsterpercbasecalculation(11, I_ANIMAL) end if name == "guardian serpent" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "shock serpent" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "mana viper" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "troll" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "iron troll" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "deep troll" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "deep troll earth mage" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "deep troll shaman" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "vampire" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "vampire knight" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "vampire mage" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "jiangshi" then return monsterpercbasecalculation(10, I_ANIMAL) end if name == "ghost" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "phantom" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "flayed ghost" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "player ghost" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "shadow" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "silent spectre" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "drowned soul" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "wraith" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "shadow wraith" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "putrid mouth" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "freezing wraith" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "eidolon" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "phantasmal warrior" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "large abomination" then return monsterpercbasecalculation(11, I_BRAINLESS) end if name == "thrashing horror" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "tentacled monstrosity" then return monsterpercbasecalculation(23, I_HUMAN) end if name == "Orb Guardian" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "tentacled starspawn" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "starspawn tentacle" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "starspawn tentacle segment" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "starcursed mass" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "nameless horror" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "dream sheep" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "yak" then return monsterpercbasecalculation(7, I_ANIMAL) end if name == "death yak" then return monsterpercbasecalculation(14, I_ANIMAL) end if name == "catoblepas" then return monsterpercbasecalculation(14, I_ANIMAL) end if name == "elephant" then return monsterpercbasecalculation(9, I_ANIMAL) end if name == "dire elephant" then return monsterpercbasecalculation(15, I_ANIMAL) end if name == "hellephant" then return monsterpercbasecalculation(20, I_ANIMAL) end if name == "apis" then return monsterpercbasecalculation(16, I_ANIMAL) end if name == "ice beast" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "sky beast" then return monsterpercbasecalculation(5, I_ANIMAL) end if name == "zombie" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "skeleton" then return monsterpercbasecalculation(0, I_BRAINLESS) end if name == "simulacrum" then return monsterpercbasecalculation(2, I_BRAINLESS) end if name == "small zombie" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "small skeleton" then return monsterpercbasecalculation(0, I_BRAINLESS) end if name == "small simulacrum" then return monsterpercbasecalculation(2, I_BRAINLESS) end if name == "large zombie" then return monsterpercbasecalculation(6, I_BRAINLESS) end if name == "large skeleton" then return monsterpercbasecalculation(0, I_BRAINLESS) end if name == "large simulacrum" then return monsterpercbasecalculation(5, I_BRAINLESS) end if name == "spectral thing" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "bound soul" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "electric eel" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "kraken" then return monsterpercbasecalculation(16, I_ANIMAL) end if name == "tentacle" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "tentacle segment" then return monsterpercbasecalculation(12, I_ANIMAL) end if name == "octopode" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "lava snake" then return monsterpercbasecalculation(3, I_ANIMAL) end if name == "salamander" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "salamander mystic" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "salamander tyrant" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "Hellbinder" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Cloud Mage" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Head Instructor" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "player illusion" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "shadow" then return monsterpercbasecalculation(1, I_HUMAN) end -- if name == "dancing weapon" then return monsterpercbasecalculation(15, I_BRAINLESS) end if string.find(name, "+") then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "spectral weapon" then return monsterpercbasecalculation(5, I_BRAINLESS) end if name == "animated armour" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "living spell" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "walking earthen tome" then return monsterpercbasecalculation(27, I_BRAINLESS) end if name == "walking crystal tome" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "walking divine tome" then return monsterpercbasecalculation(20, I_BRAINLESS) end if name == "walking frostbound tome" then return monsterpercbasecalculation(20, I_BRAINLESS) end if name == "eldritch tentacle" then return monsterpercbasecalculation(16, I_ANIMAL) end if name == "eldritch tentacle segment" then return monsterpercbasecalculation(16, I_ANIMAL) end if name == "demonspawn" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "demonspawn blood saint" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "demonspawn warmonger" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "demonspawn corrupter" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "demonspawn black sun" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "crimson imp" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "quasit" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "white imp" then return monsterpercbasecalculation(2, I_HUMAN) end if name == "ufetubus" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "iron imp" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "shadow imp" then return monsterpercbasecalculation(2, I_HUMAN) end if name == "lemure" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "rust devil" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "orange demon" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "red devil" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "hellwing" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "ice devil" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "chaos spawn" then return monsterpercbasecalculation(6, I_ANIMAL) end if name == "sun demon" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "soul eater" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "smoke demon" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "neqoxec" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "ynoxinul" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "sixfirhy" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "shadow demon" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "green death" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "blizzard demon" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "balrug" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "cacodemon" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "hell beast" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "hellion" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "reaper" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "lorocyproca" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "tormentor" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "Brimstone Fiend" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Ice Fiend" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Tzitzimitl" then return monsterpercbasecalculation(22, I_HUMAN) end if name == "Hell Sentinel" then return monsterpercbasecalculation(19, I_HUMAN) end if name == "Executioner" then return monsterpercbasecalculation(12, I_HUMAN) end if name == "saltling" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "peacekeeper" then return monsterpercbasecalculation(12, I_BRAINLESS) end if name == "iron golem" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "crystal guardian" then return monsterpercbasecalculation(16, I_BRAINLESS) end if name == "toenail golem" then return monsterpercbasecalculation(9, I_BRAINLESS) end if name == "electric golem" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "ushabti" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "guardian golem" then return monsterpercbasecalculation(5, I_BRAINLESS) end if name == "spellforged servitor" then return monsterpercbasecalculation(8, I_BRAINLESS) end if name == "ice statue" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "obsidian statue" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "orange crystal statue" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "statue" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "training dummy" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "pillar of salt" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "block of ice" then return monsterpercbasecalculation(3, I_BRAINLESS) end if name == "diamond obelisk" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "lightning spire" then return monsterpercbasecalculation(3, I_BRAINLESS) end if name == "strange machine" then return monsterpercbasecalculation(21, I_BRAINLESS) end if name == "gargoyle" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "war gargoyle" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "molten gargoyle" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "nargun" then return monsterpercbasecalculation(22, I_HUMAN) end if name == "pandemonium lord" then return monsterpercbasecalculation(19, I_HUMAN) end if name == "ball lightning" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "ballistomycete spore" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "lost soul" then return monsterpercbasecalculation(10, I_BRAINLESS) end if name == "lurking horror" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "orb of fire" then return monsterpercbasecalculation(30, I_HUMAN) end if name == "creeping inferno" then return monsterpercbasecalculation(15, I_BRAINLESS) end if name == "orb of destruction" then return monsterpercbasecalculation(5, I_BRAINLESS) end if name == "foxfire" then return monsterpercbasecalculation(1, I_BRAINLESS) end if name == "fulminant prism" then return monsterpercbasecalculation(5, I_BRAINLESS) end if name == "wretched star" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "battlesphere" then return monsterpercbasecalculation(5, I_BRAINLESS) end if name == "death cob" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "Mennas" then return monsterpercbasecalculation(19, I_HUMAN) end if name == "Zenata" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "Nessos" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "Chuck" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Polyphemus" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Antaeus" then return monsterpercbasecalculation(22, I_HUMAN) end if name == "Tiamat" then return monsterpercbasecalculation(22, I_HUMAN) end if name == "Bai Suzhen" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Xtahua" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "the Lernaean hydra" then return monsterpercbasecalculation(30, I_ANIMAL) end if name == "the Serpent of Hell" then return monsterpercbasecalculation(17, I_HUMAN) end if name == "Bai Suzhen" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Duvessa" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "Dowan" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Fannar" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "Prince Ribbit" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Ijyb" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Robin" then return monsterpercbasecalculation(2, I_HUMAN) end if name == "Grum" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "Crazy Yiuf" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Jorgrun" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "Grunn" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Natasha" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Arachne" then return monsterpercbasecalculation(17, I_HUMAN) end if name == "Asterion" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "Agnes" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "the Enchantress" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "the Royal Jelly" then return monsterpercbasecalculation(21, I_BRAINLESS) end if name == "Dissolution" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Sonja" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Pikel" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Boris" then return monsterpercbasecalculation(22, I_HUMAN) end if name == "Josephina" then return monsterpercbasecalculation(21, I_HUMAN) end if name == "Menkaure" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Khufu" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Ilsuiw" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Vashnia" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Erolcha" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Lodul" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Blork the orc" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Urug" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "Nergalle" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "Saint Roka" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Sojobo" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Azrael" then return monsterpercbasecalculation(11, I_HUMAN) end if name == "Mara" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Aizul" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "Snorg" then return monsterpercbasecalculation(8, I_HUMAN) end if name == "Pargi" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "Parghit" then return monsterpercbasecalculation(27, I_HUMAN) end if name == "moon troll" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Jory" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Gastronok" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Mlioglotl" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "Nellie" then return monsterpercbasecalculation(20, I_HUMAN) end if name == "Murray" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "Ignacio" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Grinder" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Amaemon" then return monsterpercbasecalculation(7, I_HUMAN) end if name == "Roxanne" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "Vv" then return monsterpercbasecalculation(23, I_HUMAN) end if name == "Terence" then return monsterpercbasecalculation(2, I_HUMAN) end if name == "Jessica" then return monsterpercbasecalculation(1, I_HUMAN) end if name == "Sigmund" then return monsterpercbasecalculation(3, I_HUMAN) end if name == "Edmund" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "Psyche" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "Donald" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "Joseph" then return monsterpercbasecalculation(6, I_HUMAN) end if name == "Erica" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "Josephine" then return monsterpercbasecalculation(10, I_HUMAN) end if name == "Harold" then return monsterpercbasecalculation(9, I_HUMAN) end if name == "Louise" then return monsterpercbasecalculation(13, I_HUMAN) end if name == "Frances" then return monsterpercbasecalculation(14, I_HUMAN) end if name == "Rupert" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Kirke" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Frederick" then return monsterpercbasecalculation(21, I_HUMAN) end if name == "Maggie" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "Margery" then return monsterpercbasecalculation(22, I_HUMAN) end if name == "Eustachio" then return monsterpercbasecalculation(4, I_HUMAN) end if name == "Maurice" then return monsterpercbasecalculation(5, I_HUMAN) end if name == "Nikola" then return monsterpercbasecalculation(18, I_HUMAN) end if name == "Mnoleg" then return monsterpercbasecalculation(17, I_HUMAN) end if name == "Lom Lobon" then return monsterpercbasecalculation(19, I_HUMAN) end if name == "Cerebov" then return monsterpercbasecalculation(21, I_HUMAN) end if name == "Gloorx Vloq" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Geryon" then return monsterpercbasecalculation(15, I_HUMAN) end if name == "Dispater" then return monsterpercbasecalculation(16, I_HUMAN) end if name == "Asmodeus" then return monsterpercbasecalculation(17, I_HUMAN) end if name == "Ereshkigal" then return monsterpercbasecalculation(18, I_HUMAN) end crawl.mpr("I have no data on " .. name .. ". Please add it.") return 4 end function monsterperc(base, canseeyou, unnaturalholiness, hibernating) return math.max(4, base + (canseeyou * -75) + (unnaturalholiness * 10) + (hibernating * -10)) end function not_rampaging() local god = you.god() local weapon = items.equipped_at("weapon") local helmet = items.equipped_at("helmet") local gloves = items.equipped_at("gloves") local boots = items.equipped_at("boots") local armour = items.equipped_at("body armour") local cloak = items.equipped_at("cloak") if god ~= nil then if (string.find(god, "Wu Jian")) then return false end end if boots ~= nil then if (string.find(boots.name(), "Rampag")) then return false end end if helmet ~= nil then if (string.find(helmet.name(), "Rampag")) then return false end end if armour ~= nil then if (string.find(armour.name(), "Rampag")) then return false end end if cloak ~= nil then if (string.find(cloak.name(), "Rampag")) then return false end end if gloves ~= nil then if (string.find(gloves.name(), "Rampag")) then return false end end if weapon ~= nil then if (string.find(weapon.name(), "Rampag")) then return false end end return true end function div_rand_round_avg(numerator, denominator) local result = 0 for i=1,1000,1 do result = result + crawl.div_rand_round(numerator,denominator) end result = result / 100 + 0.5 result = math.floor(result) / 10 return result end function stepdown_double(value, step) -- log2(a)=ln(a)/ln(2) return step * math.log(1+value/step)/math.log(2) end function stepdown_int_rounddown(value, step, max) local ret = stepdown_double(value, step) if max > 0 and ret > max then return max end return math.floor(ret) end function stepdown_value(base_value, stepping, first_step, last_step, ceiling_value) if (ceiling_value < 0) then ceiling_value = 0 end if ceiling_value and (ceiling_value < first_step) then return math.min(ceiling_value, base_value) end if base_value < first_step then return base_value end local diff = first_step - stepping if ceiling_value > 0 then return diff+stepdown_int_rounddown(base_value - diff, stepping, ceiling_value-diff) end return 0 end function calculatestabdamage(slot) local damage = 0 local position = items.letter_to_index(slot) local weapon = items.inslot(position) assassin = 0 damage = weapon.damage if items.equipped_at("helmet") ~= nil then helmet = items.equipped_at("helmet") if string.find(helmet.name(), "Assassin") then assassin = 1 end end local weaponskill = weapon.weap_skill local currentskill = you.skill(weaponskill) local stealthskill = you.skill("Stealth") local stabskill = stealthskill * 50 + currentskill * 50 if weaponskill == "Short Blades" or assassin == 1 then local extragoodbonus = 1000 if string.find(weapon.name(), "dagger") then extragoodbonus = 500 end local bonus = you.dexterity() * (stabskill + 100) / extragoodbonus bonus = stepdown_value(bonus, 10, 10, 30, 30) damage = damage + bonus damage = damage * ( 10 + stabskill / 100 ) damage = damage / 10 end -- The flat component is loosely based on the old stab_bypass bonus. -- Essentially, it's an extra quarter-point of damage for every -- point of weapon + stealth skill, divided by stab_bonus - that is, -- quartered again if the target isn't sleeping, paralysed, or petrified. --https://github.com/crawl/crawl/blob/34511f41fdeb0b328368182abb8608d8fa48e566/crawl-ref/source/attack.cc damage = damage* (12+stabskill/100) damage = damage / 12 damage = damage + (stabskill/200+1)/2 --rounding damage = math.floor(damage+0.5) return damage end local messageperturn = 0 local oldstealth = 0 local oldstabmain = 0 local oldstabstab = 0 local maxturns = 5000 local turncounter = 0 local confidencecounter = 10 local function incrementconfidencecounter() if you.feel_safe() then confidencecounter = confidencecounter + 1 else confidencecounter = 0 end end local function motivationalmessage() messagenumber = crawl.roll_dice(1,7) if messagenumber == 1 then crawl.mpr("Take a moment to consider your state of mind. You must be aware, interested and calm. Frustration will lead to more frustration as your character dies. If you are tilting, stop playing.") end if messagenumber == 2 then crawl.mpr("No extra turns allowed. Explore deliberately and use the least resource intensive method to deal with what you face.") end if messagenumber == 3 then crawl.mpr("No extra turns allowed. Explore deliberately and use the least resource intensive method to deal with what you face.") end if messagenumber == 4 then crawl.mpr("Turncount goals: Temple 1000 turns. Orc 5000 turns. Lair & branches 10000 turns. Elf:3 11000 turns. Vaults 13000 turns. Enter Ziggurat 15000 turns. Tomb 17000 turns. Win game 20000 turns.") end if messagenumber == 5 then crawl.mpr("It is fine to die as long as you are learning things.") end if messagenumber == 6 then crawl.mpr("Biggest killers: frustration, overconfidence and playing fast.") end if messagenumber == 7 then crawl.mpr("Life goals: have fun and be a somewhat decent person.") end end local golubria = "Passage of Golubria" local function golubrialetter() return spells.letter(golubria) end local function autogolubria() local distance = spells.max_range(golubria) crawl.mpr("Auto-Golubria is online. Please select direction.") local direction = "" local directionraw = crawl.getch() if directionraw == -252 then direction = "h" end if directionraw == -251 then direction = "l" end if directionraw == -254 then direction = "k" end if directionraw == -253 then direction = "j" end if directionraw == 121 then direction = "y" end if directionraw == 110 then direction = "n" end if directionraw == 98 then direction = "b" end if directionraw == 117 then direction = "u" end crawl.mpr(direction) if distance == 1 then crawl.sendkeys("Z" .. golubrialetter() .. direction) end if distance == 2 then crawl.sendkeys("Z" .. golubrialetter() .. direction .. direction) end if distance == 3 then crawl.sendkeys("Z" .. golubrialetter() .. direction .. direction .. direction) end if distance == 4 then crawl.sendkeys("Z" .. golubrialetter() .. direction.. direction.. direction.. direction) end if distance == 5 then crawl.sendkeys("Z" .. golubrialetter() .. direction.. direction.. direction.. direction ..direction) end if distance == 6 then crawl.sendkeys("Z" .. golubrialetter() .. direction.. direction.. direction.. direction ..direction..direction) end if distance == 7 then crawl.sendkeys("Z" .. golubrialetter() .. direction.. direction.. direction.. direction ..direction..direction..direction) end end function ready() local currmp, maxmp = you.mp() incrementconfidencecounter() if confidencecounter > 11 and currmp == maxmp and golubrialetter() then autogolubria() end -- class-specific strats if you.class() == "Fire Elementalist" and you.turns() == 0 and setskillsonce == 0 then crawl.sendkeys("m" .. "d" .. "d" .. "e" .. "e" .. "f" .. "f" .. "g" .. "g" .. "*") setskillsonce = 1 end if you.class() == "Summoner" and you.turns() == 0 and setskillsonce == 0 then crawl.sendkeys("m" .. "d" .. "d" .. "e" .. "e" .. "=" .. "f" .. "5") setskillsonce = 1 end -- some behavior is different if we are in a dangerous place local dangerousplace = 0 if string.find(you.branch(), "Zig") then dangerousplace = 1 end if string.find(you.branch(), "Coc") then dangerousplace = 1 end if string.find(you.branch(), "Tar") then dangerousplace = 1 end if string.find(you.branch(), "Geh") then dangerousplace = 1 end if string.find(you.branch(), "Dis") then dangerousplace = 1 end if string.find(you.branch(), "Tomb") then dangerousplace = 1 end if string.find(you.branch(), "Slime") then dangerousplace = 1 end if (crawl.one_chance_in(500)) then motivationalmessage() end -- determine main weapons mainweaponslot = findmainweapon() stabweaponslot = findstabweapon() local weapon = items.equipped_at("weapon") currentweaponslot = items.index_to_letter(weapon.slot) -- calculate stab damage if you.feel_safe() then if not string.find(you.status(), "nable to read") and not string.find(you.status(), "serk") then auto_identify() if ihaveunidentified() then if ihaveidentify() then crawl.mpr("I have a scroll of identify and an unidentified item. I am now reading the scroll.") crawl.sendkeys("r" .. ihaveidentify_at()) end end end end local weapon = items.equipped_at("weapon") local ihaveadagger = 0 local wieldingdagger = 0 turncounter = turncounter + 1 if turncounter % 100 == 0 then crawl.mpr("You have played " .. turncounter .. " turns out of " .. maxturns .. " per session.") end if turncounter == maxturns then crawl.sendkeys ('esc') end -- disable stealth score alerts and weapon swapping for zig -- stealth score alert if messageperturn % 100 == 0 then crawl.mpr("Your current stealth is " .. calculatestealth() .. ", or " .. you.stealth_pips() .. " (" .. ((calculatestealth() + 50 - 1)/50) .. ") pips. Your average stab damage with your main weapon is " .. calculatestabdamage(mainweaponslot) .. ", and with your stab weapon it is " .. calculatestabdamage(stabweaponslot) .. ".") oldstealth = calculatestealth() oldstabmain = calculatestabdamage(mainweaponslot) oldstabstab = calculatestabdamage(stabweaponslot) end if calculatestealth() ~= oldstealth then crawl.mpr("Your stealth score has changed. Your current stealth is " .. calculatestealth() .. ", or " .. you.stealth_pips() .. " pips.") oldstealth = calculatestealth() end if oldstabmain ~= calculatestabdamage(mainweaponslot) or oldstabstab ~= calculatestabdamage(stabweaponslot) then crawl.mpr("Your stab damage has changed. Your current average stab damage with your main weapon is " .. calculatestabdamage(mainweaponslot) .. ", and with your stab weapon it is " .. calculatestabdamage(stabweaponslot) .. ".") oldstabmain = calculatestabdamage(mainweaponslot) oldstabstab = calculatestabdamage(stabweaponslot) end messageperturn = messageperturn + 1 -- alert on stabbable monsters for x = -7,7 do for y = -7,7 do local distance = math.max(math.abs(x),math.abs(y)) - 1 m = monster.get_monster_at(x,y) if m and m:stabbability() == 1 then local seeinvis = 0 local seeinvisverbal = "no" if m:is(7) then seeinvis = 1 seeinvisverbal "yes" end local mcantseeyou = 0 local mperc = 4 if string.find(you.status(), "invis") then if seeinvis == 0 then mcantseeyou = 1 end end local misunnatural = 1 if string.find(m:holiness(""), "natural") then misunnatural = 0 end local mishibernating = 0 if misunnatural == 0 then if string.find(m:status(), "hiber") then mishibernating = 1 end end mperc = monsterperc(monsterpercbase(m:name()), mcantseeyou, misunnatural, mishibernating) local chancetowake = (mperc + 1)/calculatestealth() if (string.find(weapon.name(), "dagger")) then wieldingdagger = 1 end stabchance = (1-chancetowake)^(distance+1-wieldingdagger) if m:threat() > 0 then crawl.mpr("" .. string.gsub(m:name(), "vampire", "kindred") .. " at " .. x .. ", " .. y .. ". It is " .. m:status() .. ". Holiness: " .. m:holiness("") .. ". Perception: " .. mperc .. ".") if string.find(m:status(), "asleep") or string.find(m:status(), "dormant") then if stabchance < 1 then crawl.mpr("Chance to wake: " .. math.floor((mperc + 1)/calculatestealth()*1000 + 0.5) / 10 .. "%. To stab: " .. math.floor( (1-chancetowake)^(distance+1-wieldingdagger)*1000 + 0.5) / 10 .. "%.") end if stabchance == 1 then crawl.mpr("Chance to wake: " .. math.floor((mperc + 1)/calculatestealth()*1000 + 0.5) / 10 .. "%.") end end if m:threat() == 0 then crawl.mpr("" .. string.gsub(m:name(), "vampire", "kindred") .. " (" .. x .. ", " .. y .. ") ") if string.find(m:status(), "asleep") or string.find(m:status(), "dormant") then if stabchance < 1 then crawl.mpr("" .. math.floor((mperc + 1)/calculatestealth()*1000 + 0.5) / 10 .. "% " .. math.floor( (1-chancetowake)^(distance+1-wieldingdagger)*1000 + 0.5) / 10 .. "%.") end if stabchance == 1 then crawl.mpr("" .. math.floor((mperc + 1)/calculatestealth()*1000 + 0.5) / 10 .. "%.") end end end end end end end local wieldingdistortion = 0 if is_stabbable_in_1tile() then if weapon ~= nil then if (currentweaponslot == stabweaponslot) then wieldingdagger = 1 end end if weapon ~= nil then if (string.find(weapon.name(), "distortion")) or (string.find(weapon.name(), "Harm")) then wieldingdistortion = 1 end end if (wieldingdagger == 0) then for it in iter.invent_iterator:new(items.inventory()) do if it and (string.find(it.name(), "%+stab")) then ihaveadagger = 1 break end end if (ihaveadagger == 1) and (wieldingdistortion == 0) and wieldingdagger == 0 then if dangerousplace == 0 then crawl.sendkeys("w" .. stabweaponslot) else crawl.mpr("You are in a dangerous place and may die here. Auto-switching weapons is disabled. I suggest you switch to your stabbing weapon.") end for x = -1,1 do for y = -1,1 do m = monster.get_monster_at(x,y) if m and m:stabbability() >= 1 then --and m:attitude() < 1 crawl.mpr("Die, " .. string.gsub(m:name(), "vampire", "kindred") .. ".") end end end end end end -- swap back if not is_stabbable_in_1tile() then if weapon ~= nil then if (currentweaponslot ~= mainweaponslot) and not string.find(weapon.name(), "%+cast") then if not is_nonstabbable_monster_in_1tile() then if dangerousplace == 0 then crawl.sendkeys("w" .. mainweaponslot) else crawl.mpr("You are in a dangerous place and may die here. Auto-switching weapons is disabled. I suggest you switch to your main weapon.") end crawl.mpr ('Onward.') else crawl.mpr ('Press the attack. Slaughter the cattle.') end end end end end }