'Shoot' for Adventurers

All new ideas for the upcoming releases of ToME 4.x.x should be discussed here

Moderator: Moderator

Post Reply
Message
Author
nsrr
Sher'Tul
Posts: 1126
Joined: Mon Sep 21, 2015 8:45 pm
Location: Middle of Nowhere

'Shoot' for Adventurers

#1 Post by nsrr »

I have seen this come up a couple of times now. Due to the way that auto-learning 'Shoot' is implemented, Adventurers will only get the talent if they learn a talent from an Archery category (i.e. any category that begins "technique/archery...").

This means that many potential ranged builds (via Strength of Purpose, Gunner Training or Psytech Gunnery (or Skirmisher Slings, if that is ever opened up to Adventurers)) do not have access to the talent. It can be learned in Last Hope or Kruk Pride for a low price, but that doesn't help if you are playing ID. It also makes it a little counter-intuitive. If learning some ranged talents teach you Shoot, then learning any ranged talent should teach you Shoot.

The simplest solution would probably be to just give Adventurers 'Shoot' at birth. If there's a reason that gaining it from learning a talent is better, then updating the function that does the check would be another easy fix.

To be proactive, I believe changing part of the function 'learnPool' in Actor.lua, around line 4280, from

Code: Select all

	-- If we learn an archery talent, also learn to shoot
	if t.type[1]:find("^technique/archery") then
		self:checkPool(t.id, self.T_SHOOT)
	end
to

Code: Select all

-- If we learn any shooting-related talent, also learn to shoot
	if t.type[1]:find("^technique/archery") 
	or t.type[1]:find("^technique/skirmisher-slings") 
	or t.type[1]:find("^chronomancy/guardian")
	or t.type[1]:find("^chronomancy/temporal-archery")
	or t.type[1]:find("^chronomancy/temporal-combat")
	or t.type[1]:find("^chronomancy/threaded-combat")
	or t.type[1]:find("^steamtech/gunner-training")
	or t.type[1]:find("^steamtech/gunslinging")
	or t.type[1]:find("^steamtech/bullets-mastery")
	or t.type[1]:find("^steamtech/elusiveness")
	or t.type[1]:find("^steamtech/mechstar")	
	or t.type[1]:find("^steamtech/psytech-gunnery")
	then
		self:checkPool(t.id, self.T_SHOOT)
	end
would do the trick.

I believe this covers all shooting-related talents. Mechstar and Elusiveness are iffy, since they each only have a single talent that is related to shooting, but I included them for consistency.

HousePet
Perspiring Physicist
Posts: 6215
Joined: Sun Sep 09, 2012 7:43 am

Re: 'Shoot' for Adventurers

#2 Post by HousePet »

Or have Shoot granted by the missile weapon, rather than required by it.
My feedback meter decays into coding. Give me feedback and I make mods.

Post Reply