# TEAMCAPTAIN MorganLeah # currently, most recent version should be at CKR or CBRO # 2019 Feb 09 # TODO: change player colour in ready() based on HP. include += arcee.rc # Crawl Init file ##### 1- Starting Screen ############################################ # restart_after_game = true default_manual_training = true ##### 2- File System ############################################### # ##### 3- Interface ################################################# # ##### 3-a Picking up and Dropping ############### # autopickup = $?!:"%\/ ae := autopickup_exceptions ae += armour_plus(cur) then return true end else if armour_plus(cur) < 0 then return true end end elseif st == "body" then local cur = items.equipped_at("armour") if cur == nil then return false end if cur.name("qual") ~= it.name("qual") then return false end if it.branded then return true end if cur.branded or cur.artefact then return false end if armour_plus(it) ~= nil then if armour_plus(it) > armour_plus(cur) then return true end else if armour_plus(cur) < 0 then return true end end end end return end add_autopickup_func(autopickup) } # Skill menu at game start by rwbarton # needs to preserve ready for hugedmg (rchandra) # now includes autodump from qw { local dump_count = you.turns() local need_skills_opened = true -- local oldready = ready function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end if you.turns() >= dump_count then dump_count = dump_count + 500 crawl.dump_char() end AnnounceDamage() -- target_skill() --oldready() end } #I bind the following functions to shift-tab and tab, respectively. #assisted by |amethyst { function autofight_throw() AUTOFIGHT_THROW = true hit_closest_nomove() end function autofight_nothrow() AUTOFIGHT_THROW = false hit_closest_nomove() end } { ----------------------------- ---- Begin target_skill ---- ----------------------------- -- elliptic, through gammafunk -- See README.md for documentation. skill_list = {"Fighting","Short Blades","Long Blades","Axes","Maces & Flails", "Polearms","Staves","Unarmed Combat","Bows","Crossbows", "Throwing","Slings","Armour","Dodging","Shields","Spellcasting", "Conjurations","Hexes","Charms","Summonings","Necromancy", "Translocations","Transmutations","Fire Magic","Ice Magic", "Air Magic","Earth Magic","Poison Magic","Invocations", "Evocations","Stealth"} need_target_skill = nil function record_current_skills(maxlev) c_persist.current_skills = { } for _,sk in ipairs(skill_list) do if you.train_skill(sk) > 0 and you.base_skill(sk) < (maxlev or 27) then table.insert(c_persist.current_skills, sk) end end end function check_skills() if not c_persist.current_skills or not c_persist.target_skill then return end for _,sk in ipairs(c_persist.current_skills) do if you.base_skill(sk) >= c_persist.target_skill then crawl.formatted_mpr(sk .. " reached " .. c_persist.target_skill .. ".", "prompt") crawl.more() set_new_skill_training() break end end end function init_target_skill() c_persist.target_skill = nil c_persist.current_skills = { } need_target_skill = true end function set_new_skill_training() init_target_skill() c_persist.target_skill = 0 crawl.sendkeys("m") end function set_target_skill() record_current_skills() local str = "Currently training: " local first_skill = true for _,sk in ipairs(c_persist.current_skills) do val = you.base_skill(sk) if first_skill then str = str .. sk .. "(" .. val .. ")" else str = str .. ", " .. sk .. "(" .. val .. ")" end first_skill = false end str = str .. "." crawl.formatted_mpr(str, "prompt") crawl.formatted_mpr("Choose a target skill level: ", "prompt") c_persist.target_skill = tonumber(crawl.c_input_line()) record_current_skills(c_persist.target_skill) -- Update the target skill for char_defaults if necessary. if save_default_target_skill and you.turns() == 0 then save_default_target_skill() end end function control(c) return string.char(string.byte(c) - string.byte('a') + 1) end -- Moved this to its own function to clean up ready() -gammafunk function target_skill() prev_need_target = need_target_skill -- Need to look at skills and then set a target skill if our -- need_target_skill variable is uninitialized and we're either at turn 0 or -- c_persist.target_skill also uninitialized. if prev_need_target == nil and (you.turns() == 0 or c_persist.target_skill == nil) then set_new_skill_training() end if prev_need_target then set_target_skill() need_target_skill = false elseif not need_target_skill then check_skills() end end -------------------------- ---- End target_skill ---- -------------------------- }