Skip to content

Life

Elven Thief

Code
THF
Race
ELF
Domain
Land
Hero class
THIEF
Missile
arrow

Shipped game

The 1.0 release and the 3.02 patch define this unit identically, so these numbers are both. They are the unit's base record; see level progression for what they are not.

Stats

Hit points
8
Attack
4
Ranged attack
4
Armour
1
Strength
6
Dexterity
12
Wisdom
8
Movement points
8
Sight radius
6
Missile range
14
Missile speed
1
Attack recovery
16
Hit recovery
1
HP recovered per turn
1
HP recovered inside
1
HP recovered after moving
1
Stealth noise
3

Cost to build

Gold
42
Food
0
Magic crystals
14
Initiates
1

Upkeep

Gold per turn
1
Food per turn
0
Crystals per turn
0

Requires

Thieves' guild
1

The number is the building's level, not a quantity. A requirement written as 0 is stated by the record rather than absent from it.

Resistances

None declared. Most of the shipped units write no resistance fields at all, and what the engine uses when a record stays silent is not observable from the scripts — so this page does not guess at it.

Flags

These are the engine's own constant names, printed as written. What several of them actually do has not been established, so they are not translated into friendlier language here.

  • UNITTYPEMISSILE
  • CAN_SURRENDER
  • CAN_SUBDUE
  • CAN_AIMED
  • CAN_STEALTH
  • CAN_DETECT_THIEF
  • CAN_USE_LEFT_ARTIFACT
  • CAN_USE_RIGHT_ARTIFACT

Level progression

Held in a level_procedure 15 tokens of GameScript attached to this record — that has not been evaluated. The extraction that produced the stats above records the procedure's size and stops there; it does not run it.

So this site cannot tell you what Elven Thief looks like at level 5, and will not estimate it. A per-level table fitted to a curve nobody measured is the kind of thing that gets copied onto three other sites and outlives the correction.

GS5R3 — a fan mod, not official

GS5R3 is a community modification of the game's scripts. Its numbers are not the game's numbers and are never merged into the block above. It changes 24 of this unit's published fields:

Show the 24 differences
FieldShippedGS5R3
Hit pointshit_points810
Attackattack42
Ranged attackranged_attack43
Armourarmor1-1
Strengthstrength67
Dexteritydexterity1216
Wisdomwisdom87
Movement pointsmps810
Sight radiussight_radius68
Missile rangemissile_range1413
Attack recovery (ticks)attack_recovery_ticks1624
Hit recovery (ticks)get_hit_recovery_ticks18
Hit points recovered per turnrecover_hitpoints14
Hit points recovered insiderecover_hitpoints_inside14
Hit points recovered after movingrecover_hitpoints_moved14
Stealth noise factorstealth_noise_factor34
Gold to buildgold_to_build4275
Food to buildfood_to_build05
Crystals to buildmagic_crystals_to_build1420
Chaos resistancechaos_resistancenot declared-25
Death resistancedeath_resistancenot declared-25
Life resistancelife_resistancenot declared50
Order resistanceorder_resistancenot declared25
Missile attack resistancemissile_attack_resistancenot declared25

not declared means the record does not write the field. That is not the same as writing zero, and the two are kept apart here.

Read from the unit's record in units\lithf.gs, which declares 39 fields and is referenced 66 times elsewhere in the scripts. Not every field is published: sprite bindings and HUD pixel offsets are left out. Back to all units.