Please implement smart skill training


If it doesn't fit anywhere else, it belongs here. Also, come here if you just need to get hammered.

Slime Squisher

Posts: 395

Joined: Wednesday, 6th July 2016, 02:40

Post Thursday, 24th November 2016, 10:44

Please implement smart skill training

Please introduce some function that allows players to automatically stop training skill when it reaches to the certain limit that has been previously set.

I want to stop training shields more comfortably when it reaches 7.2 while playing spriggans.
http://crawl.akrasiac.org/scoring/players/papilio.html

Done 15-rune wins with all playable species, backgrounds, gods!

For this message the author papilio has received thanks: 2
Cimanyd, duvessa
User avatar

Zot Zealot

Posts: 991

Joined: Monday, 15th April 2013, 15:10

Location: Augsburg, Germany

Post Thursday, 24th November 2016, 11:23

Are you familiar with force_more in your rc-file? Editing your rc-file is generally considered to be useful, e.g. for getting a warning message when you are low on HP.

For example, in my rc-file I put

  Code:
force_more_message += increases to

and every time any skill level increases the game asks me to press a button (like space bar). This always reminds me which skills I'm training.

You can adjust this ofc to any skill and your desired skill level.

For this message the author Turukano has received thanks:
papilio

Slime Squisher

Posts: 395

Joined: Wednesday, 6th July 2016, 02:40

Post Thursday, 24th November 2016, 11:28

Re:

Turukano wrote:Are you familiar with force_more in your rc-file? Editing your rc-file is generally considered to be useful, e.g. for getting a warning message when you are low on HP.

For example, in my rc-file I put

  Code:
force_more_message += increases to

and every time any skill level increases the game asks me to press a button (like space bar). This always reminds me which skills I'm training.

You can adjust this ofc to any skill and your desired skill level.


Thank you for giving knowledges. But making game to pause every time for every single skill levelups would be inconvenient, too. And it could not deal with the first decimals.
http://crawl.akrasiac.org/scoring/players/papilio.html

Done 15-rune wins with all playable species, backgrounds, gods!
User avatar

Shoals Surfer

Posts: 301

Joined: Friday, 8th November 2013, 16:19

Location: Tel'aran'rhiod

Post Thursday, 24th November 2016, 16:38

Re: Please implement smart skill training

This does exactly mostly what you want:

  Code:
{
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)
  if save_default_target_skill and you.turns() == 0 then
      save_default_target_skill()
  end
end

function ready()
  prev_need_target = need_target_skill
  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
}


Disclaimer: I just copied it some time ago into my RC and I do not remember where I originally found it.
Last edited by Tedronai on Friday, 25th November 2016, 21:55, edited 1 time in total.

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Thursday, 24th November 2016, 20:32

Re: Please implement smart skill training

User avatar

Tartarus Sorceror

Posts: 1891

Joined: Monday, 1st April 2013, 04:41

Location: Toronto, Canada

Post Friday, 25th November 2016, 09:06

Re: Please implement smart skill training



i think the cost of overspending by a fraction of a single kill* is so ridiculously small that yes, this does do exactly what he wants.


*with the admitted exceptions of like, several early-game uniques
take it easy

Crypt Cleanser

Posts: 720

Joined: Friday, 6th September 2013, 09:17

Post Friday, 25th November 2016, 09:47

Re: Please implement smart skill training

I killed Pikel and my buckler skill is now 9, my game is ruined.

For this message the author stickyfingers has received thanks: 4
Arrhythmia, Sar, VeryAngryFelid, WalkerBoh
User avatar

Ziggurat Zagger

Posts: 4478

Joined: Wednesday, 23rd October 2013, 07:56

Post Friday, 25th November 2016, 12:36

Re: Please implement smart skill training

stickyfingers wrote:I killed Pikel and my buckler skill is now 9, my game is ruined.

It's best to switch to Ash now.
DCSS: 97:...MfCj}SpNeBaEEGrFE{HaAKTrCK}DsFESpHu{FoArNaBe}
FeEE{HOIEMiAE}GrGlHuWrGnWrNaAKBaFi{MiDeMfDe}{DrAKTrAMGhEnGnWz}
{PaBeDjFi}OgAKPaCAGnCjOgCKMfAEAtCKSpCjDEEE{HOSu
Bloat: 17: RaRoPrPh{GuStGnCa}{ArEtZoNb}KiPaAnDrBXDBQOApDaMeAGBiOCNKAsFnFlUs{RoBoNeWi

For this message the author Sprucery has received thanks: 2
Cimanyd, Sar

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Friday, 25th November 2016, 19:21

Re: Please implement smart skill training

Arrhythmia wrote:I think the cost of overspending by a fraction of a single kill* is so ridiculously small
Then don't say "exactly".
User avatar

Shoals Surfer

Posts: 301

Joined: Friday, 8th November 2013, 16:19

Location: Tel'aran'rhiod

Post Friday, 25th November 2016, 21:57

Re: Please implement smart skill training

Ok.
User avatar

Mines Malingerer

Posts: 40

Joined: Friday, 11th November 2016, 02:35

Post Saturday, 26th November 2016, 00:32

Re: Please implement smart skill training

A message for weapon skill reaching the minimun delay or a known spell reaching maximun power would be helpful.

For this message the author Deso has received thanks:
IronCretin

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Saturday, 26th November 2016, 02:15

Re: Please implement smart skill training

These situations are really just special cases of a broader problem with Crawl's skill training.

What Crawl has is essentially a "point buy" system. You get a certain number of points and you spend them between skills. Most games with point buy systems give you the points and then you can spend them however you want.
In Crawl, the points are spent as soon as they are earned, and player is required to decide where to spend the points before actually gaining the points. Furthermore, the interface for doing so is so abstracted that players aren't allowed to specify how many points to spend and in what order, which is what papilio is complaining about - if you want to limit the level of a skill (which a very reasonable thing to want to do, since ALL integer skill levels are breakpoints and many skills have even more breakpoints), you have to go back to the skill screen before any kill that might result in overtraining.

The typical defenses of Crawl's system are that:
- it allows automatic skill training (which is bullshit, because traditional point buy systems allow that just as well)
- that it reduces micromanagement (which might sound reasonable at first but is, in reality, bullshit; you just need to go back to integer skill levels and a point buy system has less micromanagement than the current system ever had, and especially less micromanagement than the current system with fractional skill levels)
- and that it's already implemented and not quite unplayably broken and would be too much work to change (which is reasonable).

For this message the author duvessa has received thanks: 3
Cimanyd, dracos369, VeryAngryFelid

Return to Crazy Yiuf's Corner

Who is online

Users browsing this forum: No registered users and 86 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.