after closely examining the game's code with little to no knowledge of LUA, which took 10-15 minutes to do, I've determined that the problem here is that the game will often attempt to make thought-forged bowman wear metal gloves and boots, and because these bowman don't have heavy armor training at even level 1, they simply won't have gloves or boots equipped if they turn out to be metal
first, I looked through thought-forms.lua and found this, which appears to not be the problem:
BOWMAN:
Code: Select all
resolvers.equip{
{type="weapon", subtype="longbow", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="ammo", subtype="arrow", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="light", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="hands", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="feet", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
},
WARRIOR:
Code: Select all
resolvers.equip{
{type="weapon", subtype="battleaxe", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="heavy", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="hands", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="feet", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
},
DEFENDER:
Code: Select all
resolvers.equip{
{type="weapon", subtype="longsword", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="shield", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="massive", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="hands", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
{type="armor", subtype="feet", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
},
but then, I booted up my level 7 solipsist offline to activate and de-activate my thought-forms repeatedly, including multiple of each thought-form, and I found this in the log file when a thought-forged bowman spawned with metal gloves and boots and tried to equip them:
Code: Select all
[resolveObject] CREATE FOR 16411 thought-forged bowman do_wear/tries: true 5 filter:
{forbid_power_source=table: 0x1147de38, not_properties=table: 0x1147de60, type="weapon", autoreq=true, subtype="longbow"}
[TOME ENTITY FILTER] selected basic 87.214748690653 103.5
[resolveObject] CREATED OBJECT: 16413 elm longbow tries left: 4
[resolveObject] 16413 elm longbow added to inventory MAINHAND
[resolveObject] CREATE FOR 16411 thought-forged bowman do_wear/tries: true 5 filter:
{forbid_power_source=table: 0x11223fb8, not_properties=table: 0x11224050, type="ammo", autoreq=true, subtype="arrow"}
[TOME ENTITY FILTER] selected Ego 46.791116350864 65.5
[resolveObject] CREATED OBJECT: 16414 quiver of elm arrows of accuracy tries left: 4
fight: quiver of elm arrows of accuracy elm longbow :: OFFHAND QUIVER
[resolveObject] 16414 quiver of elm arrows of accuracy added to inventory QUIVER
[resolveObject] CREATE FOR 16411 thought-forged bowman do_wear/tries: true 5 filter:
{forbid_power_source=table: 0x14df02b0, not_properties=table: 0x14df0310, type="armor", autoreq=true, subtype="light"}
[TOME ENTITY FILTER] selected basic 82.91801622543 103.5
[resolveObject] CREATED OBJECT: 16418 cured leather armour tries left: 4
fight: cured leather armour elm longbow :: OFFHAND BODY
fight: cured leather armour quiver of elm arrows of accuracy :: nil BODY
[resolveObject] 16418 cured leather armour added to inventory BODY
[resolveObject] CREATE FOR 16411 thought-forged bowman do_wear/tries: true 5 filter:
{forbid_power_source=table: 0x12ffb520, not_properties=table: 0x12ffb548, type="armor", autoreq=true, subtype="hands"}
[TOME ENTITY FILTER] selected basic 67.086493285626 103.5
[resolveObject] CREATED OBJECT: 16419 iron gauntlets tries left: 4
[resolveObject] 16419 iron gauntlets NOT WORN in nil nil
[General Object resolver] 16419 iron gauntlets COULD NOT BE WORN
[resolveObject] adding to main inventory: 16419 iron gauntlets
[resolveObject] CREATE FOR 16411 thought-forged bowman do_wear/tries: true 5 filter:
{forbid_power_source=table: 0x12517c38, not_properties=table: 0x12517cd0, type="armor", autoreq=true, subtype="feet"}
[TOME ENTITY FILTER] selected Ego 28.440601109862 65.5
[resolveObject] CREATED OBJECT: 16420 pair of iron boots of tirelessness tries left: 4
[resolveObject] 16420 pair of iron boots of tirelessness NOT WORN in nil nil
[General Object resolver] 16420 pair of iron boots of tirelessness COULD NOT BE WORN
[resolveObject] adding to main inventory: 16420 pair of iron boots of tirelessness
[Actor:move] 16411 thought-forged bowman (forced) move from nil nil to 5 20
[PARTY] New member, add after thought-forged bowman Oravo
it appears that, when making boots and gloves, the game just randomly picks metal or leather gloves; type="armor", subtype="hands" appears to not differentiate between metal or leather armor
so, this bug can be fixed by giving level 1 heavy armor training to thought-forged bowmen, which would absolutely no impact upon the gameplay beyond enabling them to wear metal boots and gloves when they decide to spawn with them; since they wear leather armor, they wouldn't at all benefit from the bonus armor or critshrug from heavy armor training
or, if you want to do something more complicated for whichever reason, then, well, I don't really know if this would work, and I don't know if theres subtype="metalhands" or subtype="nonmetalhands" as "armor" subtypes, but you could divide item subtypes between metal and non-metal for all relevant item types, or maybe "type" itself could differentiate there between metal or non-metal, instead of doing so via. subtype, and doing something like that could result not only in bowmen not being given metal boots or gloves to wear, but also in warriors and defenders not being given leather boots or gloves to wear, which would not be accomplished by simply giving level 1 heavy armor training to thought-form bowman