# Crawl Init file # # On Unix systems (such as Mac OS X, Linux and the BSDs), you must copy # init.txt to ~/.crawlrc or ~/.crawl/init.txt as:lan # cp init.txt ~/.crawlrc # # Lines beginning with '#' are comments. The basic syntax is: # # field = value or field.subfield = value # # Only one specification is allowed per line. # # The terms are typically case-insensitive except in the fairly obvious # cases (the character's name and specifying files or directories when # on a system that has case-sensitive filenames). # # White space is stripped from the beginning and end of the line, as # well as immediately before and after the '='. If the option allows # multiple comma/semicolon-separated terms (such as # autopickup_exceptions), all whitespace around the separator is also # trimmed. All other whitespace is left intact. # # For descriptions concerning an option consult the file # options_guide.txt # in your /docs directory. Also note that the ordering of the options # is taken from that file; this is for presentational reasons only. # # Note that all boolean options (i.e. values of 'true' or 'false') have # their non-default value commented out. You can toggle these by just # uncommenting. # Options with several values, e.g. drop_mode = (multi | single), # usually have the first value as default. # # The options for monster glyphs and item colours don't matter for Tiles. # Similarily, tile options are ignored in console games. # ------------------------------------------------ # EVERY TURN FUNCTION # ------------------------------------------------ < function ready() AnnounceDamage() end > ability_menu = false autofight_fire_stop = true ##### Ancient versions ############################################## # If you're used to the interface of ancient versions of Crawl, you may # get back parts of it by uncommenting the following options: # include = 034_command_keys.txt # target_unshifted_dirs = true # clear_messages = true # # And to revert monster glyph and colouring changes: # include = 034_monster_glyphs.txt # include = 052_monster_glyphs.txt # include = 060_monster_glyphs.txt # include = 071_monster_glyphs.txt # include = 080_monster_glyphs.txt # include = 0.9_monster_glyphs.txt ##### 1- Starting Screen ############################################ # # name = Delilah # remember_name = false # weapon = (short sword | falchion | quarterstaff | hand axe | spear | mace # | trident | unarmed | random) # species = (Human |...| Vampire | random) # job = (Fighter |...| Wanderer | random) # random_pick = true # good_random = false # restart_after_game = true # default_manual_training = true ##### 2- File System ############################################### # # crawl_dir = # morgue_dir = morgue # save_dir = saves # macro_dir = settings/ # sound = : ##### 3- Lua Files ################################################# # ##### 4- Interface ################################################# # ##### 4-a Picking up and Dropping ############### # # Rods are \ here. # autopickup = $?!:"/% drop_filter += useless_item # default_autopickup = false # autopickup_no_burden = false # pickup_thrown = false # chunks_autopickup = false # assign_item_slot = (forward | backward) # # drop_mode = (multi | single) # pickup_mode = (single | multi | auto:5) # drop_filter += skeleton, corpse, useless_item # default_friendly_pickup = (none | friend | player | all) # ae := autopickup_exceptions # ae += amulet of (inaccuracy|the gourmand|controlled flight|warding|stasis) # ae += amulet of (resist .*|clarity|rage|conservation|guardian spirit|faith) # ae += ring of (see invisible|levitation|poison resistance|teleportation) # ae += ring of (invisibility|teleport control) # ae += ring of (sustain abilities|sustenance|wizardry|life protection) # ae += scroll of (unholy creation|vulnerability|holy word|torment) # ae += wand of random effects # ae += rod of striking # ae += staff of .* pickup_mode += multi drop_mode += multi # Armour/Weapon autopickup by rwbarton, enhanced by HDA { add_autopickup_func(function(it, name) if name:find("curare") then return true end if name:find("dispersal") and (name:find("dart") or name:find("tomahawk")) then return true end if name:find("throwing net") then return true end local class = it.class(true) local armour_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots", body="Armour", shield="Shield"} if (class == "armour") then sub_type = it.subtype() equipped_item = items.equipped_at(armour_slots[sub_type]) if (sub_type == "cloak") or (sub_type == "helmet") or (sub_type == "gloves") or (sub_type == "boots") then if not equipped_item then return true else return it.artefact or it.branded or it.ego end end if (sub_type == "body") then if equipped_item then local armourname = equipped_item.name() if equipped_item.artefact or equipped_item.branded or equipped_item.ego or (equipped_item.plus > 2) or armourname:find("dragon") or armourname:find("troll") then return it.artefact else return it.artefact or it.branded or it.ego end end return true end if (sub_type == "shield") then if equipped_item then if equipped_item.artefact or equipped_item.branded or equipped_item.ego or (equipped_item.plus > 2) then return it.artefact or it.branded or it.ego else return true end else return it.artefact or it.branded or it.ego end end end if (class == "weapon") then if (you.xl() < 12) or (you.god():find("Nemelex") or (you.god():find("Yred")) or (you.god():find("Beogh"))) then if it.branded and not (it.name() == "club") then return true end end local weapon = items.equipped_at("Weapon") if weapon then if (weapon.branded or weapon.artefact) then return false else local weapon_name = weapon.name() local sb = you.skill("Short Blades") local lb = you.skill("Long Blades") local axe = you.skill("Axes") local mf = you.skill("Maces & Flails") local pole = you.skill("Polearms") local staff = you.skill("Staves") if sb > 6 then if name:find("quick blade") then return true end end if lb > 8 then if name:find("demon blade") then return true end if name:find("bastard sword") then return true end end if lb > 14 then if name:find("claymore") then return true end end if axe > 8 then -- if name:find("battleaxe") then return true end -- if name:find("broad axe") then return true end -- if name:find("war axe") then return true end if name:find("executioner") then return true end end if axe > 18 then if name:find("executioner") then return true end end if mf > 8 then if name:find("eveningstar") then return true end if name:find("demon whip") then return true end if name:find("sacred scourge") then return true end if name:find("dire flail") then return true end end if mf > 14 then if name:find("great mace") then return true end end if pole > 8 then if name:find("trident") then return true end if name:find("demon trident") then return true end if name:find("trishula") then return true end end if pole > 14 then if name:find("glaive") then return true end if name:find("bardiche") then return true end end if staff > 8 then if name:find("lajatang") then return true end end end elseif (you.skill("Unarmed Combat") < 3) then return true end end end) } ##### 4-b Targetting ############################ # # default_target = false # target_unshifted_dirs = true # darken_beyond_range = false ##### 4-c Passive Sightings ##################### # # detected_monster_colour = lightred # detected_item_colour = green # remembered_monster_colour = darkgrey # clean_map = true ##### 4-d Branding ############################## # # friend_brand = hi:green # neutral_brand = hi:lightgrey # stab_brand = hi:blue # may_stab_brand = hi:yellow # heap_brand = reverse # feature_item_brand = reverse # trap_item_brand = reverse ##### 4-e Level Map Functions ################### # # level_map_cursor_step = 7 # level_map_title = false # show_waypoints = false ##### 4-f Viewport Options ################### # # view_max_width = 33 # view_max_height = 21 # view_lock_x = false # view_lock_y = false # view_lock = false # center_on_scroll = true # symmetric_scroll = false # scroll_margin_x = 2 # scroll_margin_y = 2 # scroll_margin = 2 ##### 4-g Travel and Exploration ################# # travel_delay = -1 explore_delay = 1 # travel_avoid_terrain = shallow water # # explore_greedy = false # explore_stop = items,stairs,shops,altars,portals,branches # explore_stop += greedy_pickup_smart,greedy_visited_item_stack # sacrifice_before_explore = true # explore_improved = true explore_wall_bias = 3 # travel_key_stop = false # auto_sacrifice = true # # explore_stop_pickup_ignore += curare auto_exclude += oklob,statue,curse skull,roxanne,hyperactive,lightning spire,mimic # tc_reachable = blue # tc_dangerous = cyan # tc_disconnected = darkgrey # tc_excluded = lightmagenta # tc_exclude_circle = red # Interrupting run and rest compound commands: runrest_ignore_poison = 2:30 runrest_ignore_monster += butterfly:1 # runrest_ignore_monster += swamp worm:3 # runrest_stop_message += You hear a.* slurping noise # runrest_ignore_message += Jiyva's power touches on your attributes runrest_stop_message += flesh start # A good number of runrest_messages is defined by default; you may want to # clear them or override some. trapwalk_safe_hp = dart:20,needle:15,arrow:35,bolt:45,spear:40,blade:95 #rest_wait_both = true ##### 4-h Stashes ############################### # # annotate_item_class = true # annotate_item_dropped = true ##### 4-i Command Enhancements ################## # # auto_list = false # auto_switch = true # easy_open = false # easy_unequip = false equip_unequip = true # easy_confirm = (none | safe | all) easy_confirm = all # allow_self_target = (yes | no | prompt) allow_self_target = no # confirm_butcher = (auto | always | never) confirm_butcher = never # prefer_safe_chunks = false easy_eat_chunks = true easy_eat_gourmand = true easy_eat_contaminated = true auto_eat_chunks = true # auto_drop_chunks = (never | rotten | yes) auto_drop_chunks = yes # prompt_for_swap = false # easy_quit_item_prompts = false # easy_exit_menu = true # sort_menus = pickup: true : art, ego, basename, qualname, curse, qty # sort_menus = inv: true : equipped, freshness, charged # autofight_stop = 30 ##### 4-j Messages and Display Enhancements ##### # # hp_warning = 30 # mp_warning = 0 # hp_colour = 50:yellow, 25:red # mp_colour = 50:yellow, 25:red # stat_colour = 1:lightred, 3:red # status_caption_colour = yellow # mlist_min_height = 4 # msg_min_height = 7 # msg_max_height = 10 mlist_allow_alternate_layout = true # messages_at_top = true # mlist_targetting = true show_gold_turns = false show_game_turns = true # show_newturn_mark = false # clear_messages = true small_more = true # show_more = false show_inventory_weights = true # item_stack_summary_minimum = 5 # list_rotten = false # auto_drop_chunks = (never | rotten | yes) auto_drop_chunks = rotten # msg_condense_repeats = false # msg_condense_short = false # show_no_ctele = false # skill_focus = false # show_travel_trail = true ##### Colours (messages and menus) ##### # # menu_colour_prefix_class = false # menu_colour_shops = false # Food is colour coded by default as follows: # # yellow = preferred food ($preferred) # darkgrey = cannot be eaten at all ($inedible) # lightred = causes rot ($rot-inducing) # magenta = dangerous to use, mutagenic ($dangerous, $mutagenic) # red = considered "evil" by your deity ($evil) # lightgreen = poisonous ($poisonous) # brown = contaminated, may cause nausea ($contaminated) # # You can change colours by using something like # $contaminated := magenta # You can redefine inventory items like this: # menu_colour += inventory:magenta:shillelagh # or ones in pick-up dialogs: # menu_colour += pickup:green:god gift # Colouring of messages # Messages are colour coded as follows: # # lightred = really important messages ($danger) # yellow = significant messages ($warning) # lightred = item damaged/destroyed ($item_dmg [same as $danger]) # darkgrey = boring, message clutter ($boring) # # Notes also use, quite misnamed, menu_colour: # menu_colour += notes:white:Reached XP level # These lines will suppress extra feedback messages from travel/shift-running. # # message_colour += mute:warning:comes into view # message_colour += mute:You start (searching|resting) # message_colour += mute:Done searching # message_colour += mute:(HP|Magic) restored # message_colour += mute:warning:Not with.*(in view|monsters around) ######################################### ##### ######################################### msc := message_colour msc = # Interface msc += mute:Cast which spell\? \( msc += mute:^Casting.* msc += mute:Confirm with \. or Enter, or press \? or \* to list all spells\. msc += mute:Press\: \? - help, Shift-Dir - straight line, f - you msc += mute:for a list of commands and other information msc += mute:melds.* msc += mute:Switching to.* msc += mute:Switching back.* ### --------------------------------- ### # You can also enforce a --more-- prompt for messages ## Avoid wasting turns with aborted actions: # force_more_message += There are no visible monsters within range # force_more_message += This wand has no charges force_more_message += You have reached level force_more_message += Your scales start force_more_message += You fall through a shaft ## Reduce chance of drowning because levitation or form runs out: force_more_message += Careful! # Announcements of timed portal vaults (bazaar, labyrinths): force_more_message += interdimensional caravan force_more_message += distant snort # Abyss exits and rune force_more_message += Found a gateway leading out of the Abyss force_more_message += Found .* abyssal rune of Zot ### ---------------------- ### more := force_more_message more = # Dangerous monsters more += giant eyeball.*comes? into view more += Hellion.*comes? into view more += Fiend.*comes? into view more += Hell Sentinel.*comes? into view more += pandemonium lord.*comes? into view more += acid.* comes? into view more += Balrug.*comes? into view more += reaper.*comes? into view more += hydra.*comes? into view more += catoblepas.*comes? into view ## Invisible # more += ^it hits you # more += ^it misses you # more += ^it closely misses you # more += ^it completely misses you # more += you block its attack # misc # more += Deactivating autopickup more += your flesh ### ---------------------- ### ##### 4-k Firing Commands ####################### # # fire_items_start = a # fire_order = launcher, return # fire_order += javelin / dart / stone / rock / spear / net / handaxe / dagger / club # fire_order += inscribed fire_order = launcher, return fire_order += rock, javelin, tomahawk, stone ##### 4-l Channels ############################## # # channel.multiturn = mute ##### 4-m Inscriptions ########################## # # autoinscribe += bad_item.*potion:!q # autoinscribe += potion.*mutation:!q # autoinscribe_cursed = false # autoinscribe += fruit:!e # show_god_gift = yes|unident|no autoinscribe += of faith:!P autoinscribe += rod of:!a autoinscribe += lightning rod:!a autoinscribe += manual of:!d autoinscribe += staff of (Wucad Mu|wizardry|power):!a autoinscribe += ambrosia:!e autoinscribe += chunks? of:@*1 : if you.god() == "Fedhas" then autoinscribe += fruit:!e : end ##### 4-n Macro related Options ################# # # flush.failure = false # flush.command = true # flush.message = true ##### 4-t Tile related Options ################## # # tile_show_items = !?/%=([)x}:|\ # tile_skip_title = true # tile_menu_icons = false ### The following lines define the colours of various objects within the ### tiles minimap. See options_guide.txt for more details. # tile_player_col = white # tile_monster_col = red # tile_neutral_col = red # tile_peaceful_col = lightred # tile_friendly_col = lightred # tile_plant_col = darkgreen # tile_item_col = green # tile_unseen_col = black # tile_floor_col = lightgrey # tile_wall_col = darkgrey # tile_mapped_wall_col = blue # tile_door_col = brown # tile_downstairs_col = magenta # tile_upstairs_col = blue # tile_feature_col = cyan # tile_trap_col = yellow # tile_water_col = grey # tile_lava_col = grey # tile_excluded_col = darkcyan # tile_excl_centre = darkblue # tile_window_col = yellow # If Crawl's response rate is too slow, try increasing the update rate. # tile_update_rate = 1000 # If Crawl is lagging when running or resting, try increasing this number. # tile_runrest_rate = 100 # tile_runrest_rate = 120 # tile_key_repeat_delay = 200 # tile_tooltip_ms = 500 # tile_tag_pref = enemy ### Note: setting window, map or font sizes to '0' implies auto-sizing. # tile_full_screen = true # tile_window_width = 1024 # tile_window_height = 768 # tile_map_pixels = 3 tile_map_pixels = 2 # tile_cell_pixels = 32 # tile_force_overlay = true # tile_layout_priority = minimap, inventory, gold_turn, command, spell # tile_layout_priority += ability, monster # tile_font_crt_file = VeraMono.ttf # tile_font_crt_size = 12 # tile_font_stat_file = VeraMono.ttf # tile_font_stat_size = 12 # tile_font_msg_file = VeraMono.ttf # tile_font_msg_size = 10 # tile_font_tip_file = VeraMono.ttf # tile_font_tip_size = 12 # tile_font_lbl_file = Vera.ttf # tile_font_lbl_size = 10 # tile_font_ft_light = false # tile_show_minihealthbar = false # tile_show_minimagicbar = false ##### 5- Dump File ################################################# # ##### 5-a Items and Kill List ################### # # kill_map = friend:you, other:you # dump_kill_places = (single | all | none) # dump_kill_breakdowns = true # dump_item_origins = all,artifacts,ego_arm,ego_weap,jewellery,runes # dump_item_origin_price = -1 # dump_message_count = 20 # dump_order = header, hiscore, stats, misc, notes, inventory, # dump_order += turns_by_place, skills, spells, overview, mutations, # dump_order += messages, screenshot, monlist, kills_by_place, kills # dump_order += action_counts # dump_book_spells = false ##### 5-b Notes ################################# # # user_note_prefix=@@@ # note_hp_percent = 5 # note_skill_levels = 1,5,10,15,27 # note_all_skill_levels = true # note_skill_max = false # note_xom_effects = false # note_chat_messages = false note_items += rod of, acquirement, preservation, running, of Zot note_messages += Your scales start note_messages += protects you from harm note_messages += You fall through a shaft note_monsters += orb of fire, ancient lich, Sigmund ##### 6- Miscellaneous ############################################# # ##### 6-a All OS ################################ # # mouse_input = true # wiz_mode = no # char_set = ascii # use_fake_player_cursor = false # # Translation to use (in 0.11, only badly incomplete descriptions; Polish # has god messages and a few misc, Greek has sheep). # language = pl|fr|zh|ko|fi|ru|el|da|li|pt|de|lv|cs|hu # # Joke translations (complete!). # language = dwarven|jagerkin|kraut|wide # # colour.lightgray = black # colour.lightcyan = cyan # colour.yellow = brown # # show_player_species = true language = en # See options_guide.txt for the options # cset, feature, mon_glyph ## Highlight the edge of unexplored terrain. # feature = explore horizon {',,green} ##### 6-b Windows console ####################### # # dos_use_background_intensity = true # background = black ##### 6-c Unix console ########################## # # use_fake_cursor = false ##### 6-d Alternative keybinding files ########## # # Alternative vi bindings for Dvorak users. # include = dvorak_command_keys.txt # # Override the vi movement keys with a non-command. # include = no_vi_command_keys.txt # Utility spells spell_slot += Dispel Undead:x spell_slot += Alistair's Intoxication:Q spell_slot += Abjuration:A spell_slot += Mass Abjuration:A spell_slot += Apportation:O # spell_slot += Recall:r # spell_slot += Summon Butterflies:R spell_slot += Control Teleport:T # spell_slot += Ozocubu's Armour:aA spell_slot += Stoneskin:d # spell_slot += Phase Shift:aA spell_slot += Shroud of Golubria:d spell_slot += Swiftness:s spell_slot += Repel Missiles:r spell_slot += Deflect Missiles:r # spell_slot += Darkness:D spell_slot += Flight:f # spell_slot += Ring of Flames:F spell_slot += Regeneration:e spell_slot += Silence:S spell_slot += Haste:h # spell_slot += Disjunction:H # spell_slot += Invisibility:j spell_slot += Death's Door:P spell_slot += Borgnjor's Revivification:L spell_slot += Blink:B spell_slot += Controlled Blink:B spell_slot += Sublimation of Blood:I spell_slot += Necromutation:q spell_slot += Fireball:wq spell_slot += Lee's Rapid Deconstruction:wq spell_slot += Blade Hands:qw spell_slot += Portal Projectile:I spell_slot += Enslavement:d spell_slot += Orb of Destruction:z # Spellcasting spam reduction by monqy ## { local function generic_cast_spell(cmd) crawl.mpr('Cast which spell?') crawl.flush_prev_message() crawl.process_keys(cmd) end function cast_spell() generic_cast_spell('z') end function force_cast_spell() generic_cast_spell('Z') end } # ------------------------------------------------ # UTILS # ------------------------------------------------ : function say(x) : crawl.mpr(x) : 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 >