# Crawl Init file #################################################### kaj2023 # # wiz_mode = never [&] CMD_NO_CMD_DEFAULT explore_mode = never tile_grinch = true ################################################################################ include = no_vi_command_keys.txt ################################################################################ # tiles | glyphs | hybrid ###################################################### tile_display_mode = tiles show_travel_trail = true ## (normal | playermons | mons: | tile:) # tiles tile_player_tile = normal # asci show_player_species = false use_fake_player_cursor = false # screen glyph_mode_font_size = 32 tile_cell_pixels = 32 tile_sidebar_pixels = 32 tile_viewport_scale = 1.2 tile_map_pixels = 4 tile_font_crt_size = 16 tile_font_stat_size = 16 tile_font_msg_size = 16 tile_font_tip_size = 16 tile_font_lbl_size = 16 # default w(33~81) h(21~71) # view_max_width = 41 view_max_height = 41 centre_on_scroll = true char_set = default ################################################################################ # web only ##################################################################### ################################################################################ action_panel_glyphs = false action_panel_show = true action_panel = !?/} action_panel_font_size = 12 action_panel_scale = 100 action_panel_orientation = horizontal action_panel_show_unidentified = true action_panel_filter -= identify ################################################################################ # exe only ##################################################################### ################################################################################ # inventory, abilities, commands, inventory, memorisation, minimap # monsters, navigation, skills, spells, system commands tile_use_small_layout = auto tile_layout_priority = monsters, inventory, minimap, spells, abilities, tile_full_screen = false tile_force_overlay = false tile_overlay_col = #000000 tile_overlay_alpha_percent = 40 tile_show_threat_levels = nasty, unusual tile_show_demon_tier = true tile_tag_pref = named tile_show_minimagicbar = false ################################################################################ ## map colors ################################################################## ################################################################################ #eNonsense tile_upstairs_col = #99ff33 tile_downstairs_col = #ff1a1a tile_branchstairs_col = #ff1a1a tile_portal_col = #ff1a1a tile_door_col = #cb6d4d tile_wall_col = #595959 tile_explore_horizon_col = #8b008b tile_floor_col = #262626 tile_item_col = #262626 tile_feature_col = #d4be21 tile_plant_col = #5c8745 tile_water_col = #0086b3 tile_deep_water_col = #1f1fed tile_trap_col = #d24dff tile_transporter_col = #ff80bf tile_transporter_landing_col = #59ff89 tile_lava_col = #6f0b00 ################################################################################ # mob hilight (ascii) ########################################################## ################################################################################ # map friend_highlight = hi:green neutral_highlight = hi:darkgrey stab_highlight = hi:red may_stab_highlight = hi:magenta heap_highlight = reverse feature_item_highlight = reverse trap_item_highlight = reverse # mlist mlist_allow_alternative_layout = false mlist_min_height = 4 monster_list_colour = friendly:green, neutral:brown, good_neutral:brown monster_list_colour += trivial:darkgrey, easy:lightgrey, tough:red, nasty:lightred status_caption_colour = darkgrey #hp_colour = 75:yellow, 50:red #mp_colour = 50:yellow, 25:red #enemy_hp_colour = green green brown brown magenta red #full health, lightly wounded, moderately wounded, heavily wounded, severely wounded, and almost dead #enemy_hp_colour = default green yellow red lightred darkgrey ################################################################################ ## util / gameplay ############################################################# ################################################################################ drop_mode += multi pickup_mode += multi tile_skip_title = true default_show_all_skills = true default_manual_training = true darken_beyond_range = true animate_equip_bar = true reduce_animations = false tile_realtime_anim = true tile_misc_anim = true tile_water_anim = true tile_level_map_hide_messages = false tile_level_map_hide_sidebar = true rest_wait_both = true rest_wait_ancestor = false rest_wait_percent = 100 explore_auto_rest = false #travel_open_doors = (avoid | approach | open) # cmd enh auto_switch = false easy_unequip = true jewellery_prompt = false easy_confirm = all #easy_floor_use = true #simple_targeting = false #force_spell_targeter = #allow_self_target = prompt #ability_menu = true spell_menu = false enable_recast_spell = false #spell_slot ^= : spell_slot ^= blink:b #item_slot ^= : item_slot ^= identify:k item_slot ^= heal:j #ability_slot ^= : ability_slot ^= berserk:b ability_slot ^= wall jump:n autofight_stop = 0 #autofight_warning = 0 autofight_fires = true autofight_nomove_fires = true # caster #automagic_enable = false #automagic_slot = a #automagic_fight = false #automagic_stop = 0 # time travel explore_delay = 5 travel_delay = 5 rest_delay = 5 tile_key_repeat_delay = 20 #tile_tooltip_ms = 30 #explore_stop = items,stairs,shops,altars,portals,branches,runed_doors #explore_stop += greedy_pickup_smart,greedy_visited_item_stack explore_stop = stairs,shops,altars,portals,branches,runed_doors explore_stop += glowing_items autopickup_exceptions += amnesia, >torment, >degeneration, ################################################################################ # runrest ###################################################################### ################################################################################ ignore := runrest_ignore_message ignore ^= You ignore ^= Found a #ignore += You regained.*mp # Annoyances -- Don't stop autotravel for these events ignore += A.*toadstool withers and dies ignore += disappears in a puff of smoke ignore += engulfed in a cloud of smoke ignore += engulfed in white fluffiness ignore += grinding sound ignore += in your inventory.*rotted away ignore += safely over a trap ignore += standing in the rain ignore += toadstools? grow ignore += You feel.*sick ignore += You walk carefully through the # Jiyva Messages ignore += Jiyva appreciates your sacrifice ignore += Jiyva gurgles merrily # ignore += Jiyva says: Divide and consume ignore += You hear.*splatter # Qazlal ignore += The plant is engulfed ignore += You destroy the (bush|fungus|plant) ignore += You displace your #Ally actions? ignore += pray ignore += friend_spell ignore += friend_enchant ignore += friend_action ################################################################################ # keys WSAD #################################################################### ################################################################################ bindkey = [p] CMD_NO_CMD_DEFAULT bindkey = [P] CMD_NO_CMD_DEFAULT bindkey = [f1] CMD_NO_CMD_DEFAULT bindkey = [f2] CMD_NO_CMD_DEFAULT bindkey = [-] CMD_NO_CMD_DEFAULT bindkey = [=] CMD_NO_CMD_DEFAULT bindkey = [_] CMD_NO_CMD_DEFAULT bindkey = [+] CMD_NO_CMD_DEFAULT bindkey = [^-] CMD_NO_CMD_DEFAULT bindkey = [^=] CMD_NO_CMD_DEFAULT bindkey = [w] CMD_MOVE_UP bindkey = [e] CMD_MOVE_UP_RIGHT bindkey = [d] CMD_MOVE_RIGHT bindkey = [c] CMD_MOVE_DOWN_RIGHT bindkey = [s] CMD_MOVE_DOWN bindkey = [x] CMD_MOVE_DOWN bindkey = [z] CMD_MOVE_DOWN_LEFT bindkey = [a] CMD_MOVE_LEFT bindkey = [q] CMD_MOVE_UP_LEFT bindkey = [r] CMD_WAIT bindkey = [^q] CMD_QUIVER_ITEM bindkey = []] CMD_CYCLE_QUIVER_FORWARD bindkey = [R] CMD_REST bindkey = [l] CMD_REPLAY_MESSAGES bindkey = [^l] CMD_LOOK_AROUND bindkey = [=] CMD_GO_UPSTAIRS bindkey = [-] CMD_GO_DOWNSTAIRS bindkey = [m] CMD_DISPLAY_MAP bindkey = [`] CMD_EXPLORE bindkey = [Tab] CMD_AUTOFIGHT bindkey = [Shift+Tab] CMD_AUTOFIGHT_NOMOVE #bindkey = [p] CMD_AUTOFIRE # force atk # bindkey = [W] CMD_ATTACK_UP bindkey = [E] CMD_ATTACK_UP_RIGHT bindkey = [D] CMD_ATTACK_RIGHT bindkey = [C] CMD_ATTACK_DOWN_RIGHT bindkey = [S] CMD_ATTACK_DOWN bindkey = [X] CMD_ATTACK_DOWN bindkey = [Z] CMD_ATTACK_DOWN_LEFT bindkey = [A] CMD_ATTACK_LEFT bindkey = [Q] CMD_ATTACK_UP_LEFT # look # bindkey = [v] CMD_TARGET_SELECT bindkey = [Space] CMD_TARGET_SELECT bindkey = [w] CMD_TARGET_UP bindkey = [e] CMD_TARGET_UP_RIGHT bindkey = [d] CMD_TARGET_RIGHT bindkey = [c] CMD_TARGET_DOWN_RIGHT bindkey = [s] CMD_TARGET_DOWN bindkey = [x] CMD_TARGET_DOWN bindkey = [z] CMD_TARGET_DOWN_LEFT bindkey = [a] CMD_TARGET_LEFT bindkey = [q] CMD_TARGET_UP_LEFT bindkey = [g] CMD_TARGET_SELECT_ENDPOINT # map view level_map_cursor_step = 8 bindkey = [g] CMD_MAP_GOTO_TARGET bindkey = [p] CMD_MAP_ADD_WAYPOINT bindkey = [P] CMD_MAP_FIND_WAYPOINT bindkey = [v] CMD_MAP_ADD_WAYPOINT bindkey = [V] CMD_MAP_FIND_WAYPOINT bindkey = [r] CMD_MAP_FIND_WAYPOINT bindkey = [f] CMD_MAP_EXCLUDE_AREA bindkey = [F] CMD_MAP_FIND_WAYPOINT bindkey = [w] CMD_MAP_MOVE_UP bindkey = [e] CMD_MAP_MOVE_UP_RIGHT bindkey = [d] CMD_MAP_MOVE_RIGHT bindkey = [c] CMD_MAP_MOVE_DOWN_RIGHT bindkey = [s] CMD_MAP_MOVE_DOWN bindkey = [x] CMD_MAP_MOVE_DOWN bindkey = [z] CMD_MAP_MOVE_DOWN_LEFT bindkey = [a] CMD_MAP_MOVE_LEFT bindkey = [q] CMD_MAP_MOVE_UP_LEFT bindkey = [W] CMD_MAP_JUMP_UP bindkey = [E] CMD_MAP_JUMP_UP_RIGHT bindkey = [D] CMD_MAP_JUMP_RIGHT bindkey = [C] CMD_MAP_JUMP_DOWN_RIGHT bindkey = [S] CMD_MAP_JUMP_DOWN bindkey = [X] CMD_MAP_JUMP_DOWN bindkey = [Z] CMD_MAP_JUMP_DOWN_LEFT bindkey = [A] CMD_MAP_JUMP_LEFT bindkey = [Q] CMD_MAP_JUMP_UP_LEFT # menus bindkey = [Esc] CMD_GAME_MENU bindkey = [u] CMD_DISPLAY_SKILLS bindkey = [U] CMD_DISPLAY_MUTATIONS bindkey = [B] CMD_DISPLAY_SPELLS bindkey = [n] CMD_USE_ABILITY bindkey = [b] CMD_CAST_SPELL bindkey = [M] CMD_MEMORISE_SPELL bindkey = [o] CMD_DISPLAY_OVERMAP bindkey = [Y] CMD_DISPLAY_CHARACTER_STATUS bindkey = [y] CMD_RESISTS_SCREEN bindkey = [I] CMD_ADJUST_INVENTORY bindkey = [^e] CMD_EXPERIENCE_CHECK bindkey = [h] CMD_EVOKE bindkey = [j] CMD_QUAFF bindkey = [k] CMD_READ bindkey = [O] CMD_OPEN_DOOR bindkey = [L] CMD_CLOSE_DOOR ################################################################################ # msg + disp ################################################################### ################################################################################ show_more = false hp_warning = 50 mp_warning = 0 #7-9-9 msg_min_height = 7 msg_max_height = 9 msg_webtiles_height = 11 messages_at_top = false #msg_condense_repeats = true #msg_condense_short = true #clear_messages = true # valid colors = # black, blue, brown, cyan, darkgrey, green, lightblue, lightcyan, lightgreen, # lightgrey, lightmagenta, lightred, magenta, red, yellow, white $pc := green $gain := yellow $item := lightblue $mob := red $bad := lightred $good := lightgreen $nothing := darkgrey $special := lightmagenta $background := magenta # channel.CHANNEL_NAME = (COLOUR | mute | default | on | off | plain) channel.plain = $nothing channel.prompt = $bad channel.god = $background channel.duration = cyan channel.danger = $mob channel.warning = $mob channel.recovery = $good channel.talk = $special channel.talk_visual = $special channel.timed_portal = $bad channel.sound = $special channel.intrinsic_gain = $gain #channel.mutation = $special channel.monster_spell = $special channel.monster_enchant = $special channel.monster_warning = $mob channel.friend_spell = $special channel.friend_enchant = $special channel.friend_action = $special channel.monster_damage ^= $special channel.banishment = $bad channel.equipment = $item channel.floor = $item channel.multiturn = $nothing channel.examine = $nothing channel.examine_filter = $nothing msg := message_colour msg = msg ^= $nothing:you see msg ^= $nothing:things that are here # gains + kills msg += $gain:reached msg += $gain:increases msg += $gain:you now have msg += $gain:your exp msg ^= lightgreen:you (kill|destroy) msg ^= lightgreen:the.*explodes # bad msg += $bad:wielding.*of (distortion|chaos) msg += $bad:s you msg ^= $bad:you (fall|die) msg ^= $bad:a malevolent msg ^= $bad:you are.* (poisoned|confused|frozen|asleep|yanked|sucked) msg ^= $bad:you feel sick # tp msg += $special:the .* blinks msg += $special:you blink msg += $special:teleported # player hits msg += $pc:you (a|b|c|d|e|f|g|h|i|j|k|l|m) msg += $pc:you (n|o|p|q|r|s|t|u|v|w|x|y|z) msg += $pc:s the msg += $pc:the .* is struck by your msg += $pc:the .* is (engulfed) msg += $pc:the .*s mind is blasted msg += $pc:courses through the # player status msg ^= $good:restored msg ^= $good:cured msg ^= $good:you wake up msg ^= $good:you are no longer msg ^= $good:you feel less msg ^= $good:you feel a bit more experienced # mob misses msg ^= $nothing:(barely|closely|miss|misses) msg ^= $nothing:no damage msg ^= $special:resist msg ^= $nothing:block # player misses #needs after ^ cos override msg ^= blue:(you|your).*(barely|closely|completely|miss|misses) msg ^= blue:(you|your).*unstable footing #msg ^= blue:(you|your).*no damage # mob damage msg ^= magenta:(lightly|heavily|moderately|severely|almost) msg ^= magenta:(wounded|injured|hurt|dead|destroyed) # potion / scroll use msg += brown:it (is|was) a potion of msg += brown:it (is|was) a scroll of msg ^= brown:as you read msg ^= brown:and begin reading msg ^= brown:you add the spells msg ^= brown:manual # branches msg ^= brown:altar msg ^= brown:entrance msg ^= brown:teleporter # audio msg ^= $special:you hear msg ^= $special:(mutter|mumble|chant) msg ^= $special:the .* (flickers|invokes) # order msg ^= $special:you (shout) msg ^= $special:Gang up msg ^= $special:Attack! msg ^= $special:Stop fighting! msg ^= $special:Fall back! msg ^= $special:Guard this area! msg ^= $special:Follow me! msg ^= brown:accepts your kill msg ^= brown:welcomes you msg ^= lightgrey:you climb channel.mutation ^= $special ################################################################################ # asci reskin ################################################################## ###################################################################### kaj2023 # # dont import other # »ΐΣҨ # dosent work on exe # projectile wΣapons # # hack item overrides needed to go first # bc they were overriding rings and amulets and shit # this way the glyph defs are after/go over non missiles display_char = item_missile:- item_glyph += bow:{ item_glyph += sling:ҩ item_glyph += javelin:| item_glyph += boomerang:« item_glyph += a dart:- item_glyph += darts:- item_glyph += stone:• item_glyph += stones:• item_glyph += rock:• item_glyph += rocks:• display_char = wall:▒ display_char = permawall:█ display_char = wall_magic:♦ display_char = floor:. display_char = floor_magic:: display_char = door_open:' display_char = door_closed:┼ display_char = trap:^ display_char = stairs_down:▼ display_char = stairs_up:▲ display_char = grate:# display_char = altar:É display_char = arch:∩ display_char = fountain:∆ display_char = wavy:≋ display_char = statue:Ω display_char = invis_exposed:␦ display_char = item_detected:! display_char = item_orb:Φ display_char = item_rune:§ display_char = item_weapon:↑ display_char = item_armour:] display_char = item_wand:Ť display_char = item_scroll:♫ display_char = item_ring:ό display_char = item_potion:¿ ###############display_char = item_missile:- display_char = item_book:Ξ display_char = item_staff:\ display_char = item_rod:Ŧ display_char = item_miscellany:} display_char = item_corpse:% display_char = item_skeleton:⅓ display_char = item_gold:© display_char = item_amulet:Ϙ display_char = cloud:▓ display_char = tree:Ψ display_char = transporter:∏ display_char = transporter_landing:∏ display_char = fired_bolt:# display_char = fired_zap:* display_char = fired_burst:+ display_char = fired_debug:X display_char = fired_missile:- display_char = explosion:# display_char = frame_horiz:─ display_char = frame_vert:│ display_char = frame_top_left:┌ display_char = frame_top_right:┐ display_char = frame_bottom_left:└ display_char = frame_bottom_right:┘ display_char = cloud_weak:▒ display_char = cloud_fading:░ display_char = cloud_terminal:~ mon_glyph += player:lightblue mon_glyph += plant:τ mon_glyph += withered plant:τ mon_glyph += demonic plant:τ mon_glyph += bush:♣ mon_glyph += fungus:♠ mon_glyph += toadstool:♠ # fov $magview := blue $out_of_fov := magenta $stairs_unknown := magenta $stairs_out_of_fov := lightmagenta # out of fov overrides # feature += the floor {·,·,darkgrey,$magview,$out_of_fov} feature += wall {,,,$magview,$out_of_fov} feature += door {,,,$magview,$out_of_fov} feature += water {,,,$magview,$out_of_fov} feature += lava {,,,$magview,$out_of_fov} feature += cloud {,,,$magview,$out_of_fov} feature += statue {,,,$magview,$out_of_fov} feature += arch {,,,$magview,$out_of_fov} feature += altar {,,,$magview,$out_of_fov} # stairs etc # nchar,mchar,known+seen,mag,known+unseen,unknown,unknown+unseen # feature += stone staircase leading up {▲, ▲, green, $magview, lightgreen, $stairs_unknown, $stairs_out_of_fov} feature += stone staircase leading down {▼, ▼, red, $magview, lightred, $stairs_unknown, $stairs_out_of_fov} feature += staircase back to the {,,lightblue, lightblue, lightblue, lightblue, lightblue} feature += staircase to the {,,yellow, yellow, yellow, yellow, yellow} feature += a transporter {∏,∏,red, $magview, lightred, $stairs_unknown, $stairs_out_of_fov} feature += a transporter landing {∏,∏,darkgrey,$magview, darkgrey, darkgrey, darkgrey} feature += shaft {‗,‗,red, $magview, lightred, $stairs_unknown, $stairs_out_of_fov} ##║for non stair tiles: name{nchar,mchar, normcol, magcol, out of fov col}⌅⌆⌤⌥␣ #feature += a rock wall {▒,#,lightgrey,$magview} #feature += a stone wall {░,#,lightgrey,$magview} #feature += a metal wall {▓,,,$magview} feature += a stone wall {░} feature += a metal wall {▓} feature += escape hatch in the floor {⇩} feature += escape hatch in the ceiling {⇧} feature += closed door {,,brown} feature += open door {,,brown} feature += runed translucent door {╬,,lightcyan} feature += closed translucent door {╬,,cyan} feature += open translucent door {',,cyan} item_glyph += corpse:red item_glyph += skeleton:white item_glyph += inedible.* corpse:magenta #item_glyph += axe:Ͳ item_glyph += talisman:ŧ #item_glyph += mace|flail|morningstar|eveningstar|whip:╿ #item_glyph += sword:╀ #item_glyph += spear|scythe|halbert|trident|glaive:£ #item_glyph += dagger:£ #· feature += travel trail {·,·,lightblue,lightblue,lightblue,lightblue,lightblue} feature += explore horizon {*,*,lightblue,lightblue,lightblue,lightblue,lightblue} ###################################################### # quickstart + lua ################################### { add_autopickup_func(function(it, name) if it.is_useless then return end if it.class(true) == "armour" then local good_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots"} st, _ = it.subtype() if good_slots[st] ~= nil and items.equipped_at(good_slots[st]) == nil then return true end end end) } #species += Minotaur #background += Fighter #weapon += war axe ################################################################################ # autoskill #################################################################### ###################################################################### kaj2023 # { ---------------------------------------------------------------------------- if you.turns() ~= 0 then return end ---------------------------------------------------------------------------- local library = {} library["Hill Orc"] = {} library["Hill Orc"]["Fighter"] = { fighting=10, throwing=5, armour=5, dodging=5, shields=5, invocations=5} library["Minotaur"] = {} library["Minotaur"]["Fighter"] = { fighting=10, throwing=5, armour=5, dodging=5, shields=5, evocations=5} library["Gargoyle"] = {} library["Gargoyle"]["Fighter"] = { fighting=10, throwing=5, armour=5, dodging=5, shields=5} --note ["Maces & Flails"] -- ---------------------------------------------------------------------------- local race,job,wep = you.race(),you.class(),items.equipped_at("Weapon").weap_skill local is_melee = false local melee_classes = {"Fighter","Gladiator","Monk","Hunter","Brigand","Berserker","Chaos Knight"} local melee_target = 18 ---------------------------------------------------------------------------- -- needs to be a better way of doing this for i, class in ipairs(melee_classes) do if job == class then is_melee = true end end ---------------------------------------------------------------------------- if library[race] ~= nil and library[race][job] ~= nil then crawl.mpr("found library entry for " ..race.. ":" ..job.. "") for skill,val in pairs(library[race][job]) do you.set_training_target(skill, val) you.train_skill(skill, 1) end if is_melee then -- set melee weapon crawl.mpr("Melee Class:" .. job) crawl.mpr("weapon:" ..wep.. "") you.set_training_target(wep, melee_target) you.train_skill(wep, 1) crawl.mpr("--> autoskilled for " ..race.. ":" ..job.. "") return end else return end ---------------------------------------------------------------------------- } ################################################################################ # stripped down HilariousDeathArtist dmg report ################################ ################################################################################ # modified to only report player hp dmg / max_hp change very tersely ########### ################################################################################ < function ready() AnnounceDamage() end > ############### # Damage Calc # ############### < local previous_hp = 0 local prev_max_hp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() --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 --Skips message on initializing game if previous_hp > 0 then local hp_difference = previous_hp - current_hp -- on hp changed if max_hp_increased or max_hp_decreased then if max_hp_increased then crawl.mpr("_You now have " .. max_hp .. " max_hp." .. " (up from " .. prev_max_hp .. " ish)") else crawl.mpr("_You now have " .. max_hp .. " max_hp." .. " (down from " .. prev_max_hp .. " ish)") end else -- On losing health if (current_hp < previous_hp) then crawl.mpr("_You take " .. hp_difference .. " damage.") if hp_difference > (max_hp * 0.50) then crawl.mpr("!!!!! lost over 50% hp") elseif hp_difference > (max_hp * 0.40) then crawl.mpr("!!!! lost over 40% hp") elseif hp_difference > (max_hp * 0.30) then crawl.mpr("!!! lost over 30% hp") elseif hp_difference > (max_hp * 0.20) then crawl.mpr("!! lost over 20% hp") end end end end --Set previous hp/mp and form at end of turn previous_hp = current_hp prev_max_hp = max_hp previous_form = current_form was_berserk_last_turn = you_are_berserk end >