GearTypes.wiki
author Wuzzy
Fri, 01 Jan 2016 21:17:56 +0000
changeset 705 dd150d4e3469
parent 703 7d343af36e43
child 707 e19b53dd5770
permissions -rw-r--r--
test links

#summary List of all gear types

This is a list and overview of all gear types.

This page is split in two parts: The first part is a short list, the second part gives a longer description for all gear types and also describes the meaning of the gear values (such as timer, pos, health, etc.).

Please note this page is still a work in progess. The categories presented here are purely for a better overview here; they do not neccessarily reflect anything in the actual game’s source code.

A “TODO” means that this particular section is not yet finished and may be not accurate.

<wiki:toc max_depth="3" />

== List of gear types ==
This is a short overview and a brief description of all gears.

=== Land objects ===
|| *Gear type* || *Description* ||
|| `gtCase` || An ammo, utility or health crate ||
|| `gtExplosives` || An explosive barrel ||
|| `gtFlake` || A snowflake (can become part of terrain) ||
|| `gtFlame` || A flame ||
|| `gtGrave` || A grave ||
|| `gtHedgehog` || A hedgehog ||
|| `gtPortal` || A portal from the portable portal device ||
|| `gtTarget` || A target ||

=== Utilities ===
|| *Gear type* || *Description* ||
|| `gtGirder` || A girder (construction) ||
|| `gtJetpack` || A flying saucer ||
|| `gtLandGun` || The land spray tool ||
|| `gtParachute` || A parachute ||
|| `gtResurrector` || Resurrection ||
|| `gtRope` || A rope ||
|| `gtSwitcher` || Switch hedgehog ||
|| `gtTardis` || A !TimeBox ||
|| `gtTeleport` || Teleportation ||

=== Weapons and main projectiles ===
|| *Gear type* || *Description* ||
|| `gtAirAttack` || The airplane of an airborne attack ||
|| `gtAirMine` || An air mine ||
|| `gtBallGun` || A ballgun ||
|| `gtBee` || Homing bee ||
|| `gtBirdy` || Birdy ||
|| `gtBlowTorch` || A blowtorch ||
|| `gtClusterBomb` || A cluster bomb ||
|| `gtCake` || A cake ||
|| `gtDEagleShot` || A shot from a Desert Eagle ||
|| `gtDrill` || Drill rocket ||
|| `gtDynamite` || A dynamite ||
|| `gtFirePunch` || Shoryuken ||
|| `gtFlamethrower` || A flamethrower ||
|| `gtGasBomb` || An old limburger ||
|| `gtGrenade` || A grenade ||
|| `gtHammer` || A hammer ||
|| `gtHellishBomb` || A hellish hand-grenade ||
|| `gtIceGun` || A freezer ||
|| `gtKamikaze` || An ongoing kamikaze ||
|| `gtKnife` || A cleaver ||
|| `gtPiano` || Piano from piano strike ||
|| `gtPickHammer` || A pickhammer ||
|| `gtRCPlane` || A RC plane ||
|| `gtMolotov` || A molotov cocktail ||
|| `gtMortar` || A mortar ||
|| `gtMine` || A mine ||
|| `gtSeduction` || Seduction ||
|| `gtShell` || A bazooka shell (projectile) ||
|| `gtShotgunShot` || A shot from a shotgun ||
|| `gtShover` || Used by baseball bat. ||
|| `gtSineGunShot` || A shot from the sine gun ||
|| `gtSMine` || A sticky mine ||
|| `gtSniperRifleShot` || A shot from the sniper rifle ||
|| `gtSnowball` || A mudball ||
|| `gtWatermelon` || A watermelon bomb, still intact ||
|| `gtWhip` || A whip ||

=== Secondary projectiles ===
|| *Gear type* || *Description* ||
|| `gtAirBomb` || A bomb from the air attack or the RC plane ||
|| `gtBall` || A ball from the ball gun || 
|| `gtCluster` || A cluster from the cluster bomb or the mortar ||
|| `gtEgg` || An egg from Birdy ||
|| `gtHammerHit` || A hit from the hammer. ||
|| `gtMelonPiece` || A cluster from a watermelon bomb ||
|| `gtNapalmBomb` || A bomb from the napalmn strike ||
|| `gtPoisonCloud` || A poisonous cloud ||

=== Other ===
|| *Gear type* || *Description* ||
|| `gtAddAmmo` || Adds a weapon or utilty to a hedgehog. ||
|| `gtATStartGame` || TODO  ||
|| `gtATFinishGame` || TODO || 
|| `gtGenericFaller` || TODO || 
|| `gtWaterUp` || Causes water to rise. ||

== Long descriptions and values ==
This section gives longer description of the various gear types and how their values (i.e. tag, pos, timer, health, etc.) are interpreted. The gear values are pretty chaotic, so they are described for each gear seperately. Use the various setter and getter functions for gears to modifiy the gear values.

In Lua, use the functions `GetGearPos`, `SetGearPos`, `GetTag`, `SetTag`, `GetTimer`, `SetTimer`, `GetHealth`, `SetHealth`, `GetFlightTime`, `SetFlightTime`, `GetGearValues` and `SetGearValues` to query or modify the gear values.

=== Land objects ===
This is a list of gears which usually stay on the land for a long time and stay for several rounds and can’t normally directly placed by players.

==== `gtCase` ====
An ammo, utility or health crate.

 * `Pos`: Crate type: 1=ammo crate, 2=health crate, 4=utility crate
 * `Tag`: Used for the appear animation
 * `Health`: Amount of health contained in a health crate

==== `gtExplosives` ====
An explosive barrel. It has its own invisible health, like a hedgehog. On low health levels smoke comes out of the barrel.

 * `Health`: “health” of the barrel: Starts at 60, explodes at 0.

==== `gtFlake` ====
A snowflake which might become part of the terrain.

==== `gtFlame` ====
A single flame.

TODO: Flame size.

 * `Pos`: Some unknown value between 0-32 (TODO)
 * `FlightTime`: If set to `0`, this flame can hurt hedgehogs even in mid-air. By default, the FlightTime is a non-zero value.

==== `gtGrave` ====
A grave from a dead hedgehog.

 * `Health`: Used when being resurrected.

==== `gtHedgehog` ====
A hedgehog.

 * `Tag`: Used for animation. `0` = no animation plays. Other value: animation plays
 * `Health`: Hedgehog's health.

TODO: Write more about hedgehogs.

==== `gtPortal` ====
A portal from the portable portal device.

 * `Tag`: Portal state. 0=orange flying, 1=orange placed, 2=blue flying, 3=blue placed
 * `Timer`: Remaining existance time (portals will disappear after end of turn).

==== `gtTarget` ====
A target, useful in target practice missions.

=== Utilities ===
The gears used by various utilities.

==== `gtGirder` ====
A girder (construction).
TODO

==== `gtJetpack` ====
A flying saucer. Its fuel is stored in `Health` and starts at 2000, which stands for 100% fuel. The fuel value is reduced whenever the player taps one of the direction keys. The up direction costs 50 fuel and the left and right directions cost 10 fuel.

 * `Health`: Amount of remaining fuel. `2000` denotes 100% fuel.

==== `gtLandGun` ====
The land spray tool.

 * `Tag`: Spitting power of land spray (`5`-`20`).
 * `Health`: Amount of fuel. `1000` denotes 100% fuel. ||

==== `gtParachute` ====
A parachute.

==== `gtResurrector` ==== 
A hedgehog which does perform a resurrection.

 * `Radius`: Effect range of resurrection in pixels (default: 100). Note that this does not change the drawn circle

==== `gtRope` ====
A rope.

 * `Tag` Rope style: `0`=classic white segments (default), `1`=simple line which can be colored with `Tint`.
 * `Tint`: Rope color as RGBA. This only works if `Tag` equals `1`

==== `gtSwitcher` ====
Switch hedgehog.

==== `gtTardis` ====
A !TimeBox. It works in several phases and an internal timer.

 * `Pos`: Current phase. The value `4` is used when the !TimeBox is currently time-travelling (has completely turned invisible).
 * `Timer`: Has several meanings, depending on `Pos`. Here's the most imporant one, for `Pos` of `4`: A timer (in milliseconds) containing the remaining time until the !TimeBox returns. The !TimeBox returns when `Timer` reaches 0. Hedgewars decreases the timer only while the same team is playing
 * `Tint`: RGBA color (default: clan color)

TODO: Add more information for the other phases.

==== `gtTeleport` ====
Teleportation.

=== Weapons and main projectiles ===
Gears of weapons which can be directly used or launched by the players.

==== `gtAirAttack` ====
The airplane of an airborne attack.

 * `Pos`: Type of airborne attack: `0` = Air Attack, `1` = Mine Strike, `2` = Napalm, `3` = Drill Strike
 * `Tag`: Direction of airplane: `-1` = left, `1` = right
 * `Health`: Number of bombs/mines/drills left (default: 6)
 * `Damage`: Distance (in pixels) between two dropped bombs/mines/drills (default: 30)
 * `Tint`: RGBA color of airplane (default: clan color)

==== `gtAirMine` ====
An air mine. It seeks nearby hedgehogs. If it is in explosion range, its timer activates and will become lower. If the timer reaches 0 and is still in explosion range of a hedgehog, it explodes. But it does not explode if it is out of range, after which the timer is reset and the air mine can be activated again.

To properly set the timer of an air mine, you must set both `Timer` and `WDTimer`.

If the gear state flag `gstAttacking` is set, the air mine is activated and is about to explode.
If the gear state flag `gstChooseTarget` is set, the air mine is currently hunting a hedgehog. This should only be read by Lua scripts, setting it from a Lua script has no effect.

 * `Pos`: Air friction. Higher values mean slower movement. 
 * `Timer`: Time left until possible detonation (in milliseconds). Default value depends on game scheme.
 * `WDTimer`: Initial timer value (in milliseconds) of an activated air mine. The `Timer` is reset to this value if the air mine gets re-activated.
 * `Angle`: Range in which it seeks and follows hedgehogs, in pixels. If a hedgehog is within this range, the air mine will start following. Set it to `0xFFFFFFFF` for an infinite seek range. Set to `0` to disable following. Default: 175
 * `Power`: Speed in which it seeks and follows hedgehogs.
 * `Karma`: Explosion size and damage. Default: 30

==== `gtBallGun` ====
A ballgun. This weapon is timer-based.

 * `Timer`: Remaining usage time (in ms), default is 5001. One ball is fired every 100ms.

==== `gtBee` ====
A homing bee. The bee works in up to three phases: The first phase is the pre-homing phase lasts 0.5 seconds in which the bee behaves like a normal projectile. In the second phase the bee actually starts homing. This phase can last up to 5 seconds. If the bee did not explode in this time, the bee goes into post-homing phase, stops homing and simply falls. For the first two phases this gear uses `Timer`.

This gear does not directly store in which phase the bee currently is in, so it is a bit tricky to modify the timer values.
If you just want to modify the pre-homing time, simply set the `Timer` after creation. But if you want to modify the duration of the homing phase, you have somehow track the bee gear and wait until the `Timer` first reaches 0, so you know the bee will now get into its second phase. Now wait one more tick (or more) and set `Timer` to set the maximum flight time in the homing phase.

 * `Tag`: Whether the bee is underwater (`0` = no, `1` = yes). This is used for the sound effect.
 * `Timer`: Remaining time (in milliseconds) either of the pre-homing phase or the homing phase.

==== `gtBirdy` ====
Birdy. Birdy works like a flying saucer and depletes energy (stored in `Health`) whenever you tap one of the direction keys. Flapping left and right costs 10 energy, flapping upwards costs 50 energy.

 * `Tag`: Facing direction (`-1` = left, `1` = right)
 * `Health`: “Flapping energy” left, default is 2000
 * `FlightTime`: Number of eggs left (default: 2)

==== `gtBlowTorch` ====
A blowtorch. This utility is entirely timer-based.

 * `Timer`: Remaining usage time in ms, default is 7500.

==== `gtClusterBomb` ====
A cluster bomb.

==== `gtCake` ====
A cake. 

 * `Tag`: A timer used for several animations. The final animation (sit down) will cause the cake to explode when the tag reaches `2250`.
 * `Health`: Remaining walking time, default is 2048. Note: the cake uses its own time unit.

==== `gtDEagleShot` ====
A shot from a Desert Eagle.

 * `Health`: How deep the bullet digs into land. Default: 50.

==== `gtDrill` ====
A drill rocket. This is either a launched drill rocket or a small drill rocket from the drill strike (which is a bit weaker than the launched one).

The type of drill rocket is stored in the gear state. If `gsttmpFlag` is set (e.g. {{{band(GetState(yourDrillGear), gsttempFlag) == 0}}} evaluates to `true`), it is a launched drill rocket, otherwise it is a drill rocket from the drill strike.

 * `Tag`: Used for drill strike. If `1`, then first impact occoured already.
 * `Timer`: Detonation timer (in ms)

==== `gtDynamite` ====
A dynamite.
Note: The current animation does not support denotation times above 5 seconds. If you want to have larger times, you have to provide your own dynamite sprite in a sidecar HWP or find another workaround.

 * `Tag`: Displayed animation frame.
 * `Timer`: Detonation timer (in ms). Default: 5000.

==== `gtFirePunch` ====
A hedgehog which performs the Shoryuken attack.

 * `Tag`: Current Y coordinate of the hedgehog.

==== `gtFlamethrower` ====
A flamethrower. 

 * `Tag`: Current spitting power of flamethrower (`5`-`20`)
 * `Health`: Remaining fuel. `500` is for 100% fuel.

==== `gtGasBomb` ====
An old limburger. Will spawn several `gtPoisonCloud` gears on detonation.

 * `Timer`: Detonation timer (in milliseconds).

==== `gtGrenade` ====
A grenade.

 * `Timer`: Detonation timer (in milliseconds).

==== `gtHammer` ====
A hammer. See also `gtHammerHit` for the actual hit of the hammer.

==== `gtHellishBomb` ====
A hellish hand-grenade.

 * `Timer`: Detonation timer (in milliseconds). Default: 5000

==== `gtIceGun` ====
A freezer.

 * `Health`: Remaining fuel. `1000` is for 100% fuel

==== `gtKamikaze` ====
A hedgehog which is doing a kamikaze attack.

 * `Health`: Remaining travel range. Default: 2048

==== `gtKnife` ====
A cleaver.

==== `gtPiano` ====
A piano from piano strike.

 * `Tag`: Number of remaining terrain bounces. Default: 5. If this number reaches 0, the piano will not collide anymore and directly fall into the water.

==== `gtPickHammer` ====
A pickhammer. This gear is entirely timer-based.

 * `Timer`: Remaining usage time (in milliseconds). Default: 4000

==== `gtRCPlane` ====
An RC plane.

 * `Tag`: dX speed??? (The purpose of the `Tag` is not clear yet)
 * `Timer`: Remaining fly time (in milliseconds). Default: 15000
 * `Health`: Number of missiles on board. Default: 3
 * `Tint`: RGBA color of RC plane (default: clan color)

==== `gtMolotov` ====
A molotov cocktail.

==== `gtMortar` ====
A mortar.

==== `gtMine` ====
A land mine.

If the gear state flag `gstAttacking` is set, mine has been activated and is about to explode (if it is not a dud).

 * `Timer`: Detonation timer (after activation).
 * `Health`: If `0`, mine is a dud.

==== `gtSeduction` ====
A hedgehog trying to seduce others.

 * `Radius`: Effect range of seduction in pixels. Default: 250. Note that this does not change the drawn circle

==== `gtShell` ====
 A bazooka shell (projectile).

==== `gtShotgunShot` ====
A shot from a shotgun. It is invisible and only can be noticed by its effects.

==== `gtShover` ====
Used by baseball bat.

==== `gtSineGunShot` ====
A shot from the sine gun.

 * `Radius`: The thickness of the sine gun shot.

==== `gtSMine` ====
A sticky mine.

If the gear state flag `gstAttacking` is set, the sticky mine has been activated and is about to explode.

 * `Timer`: Detonation timer after it was activated (in milliseconds). Default: 500

==== `gtSniperRifleShot` ====
A shot from the sniper rifle.

 * `Health`: How deep the bullet digs into land. Default: 50

==== `gtSnowball` ====
A mudball.

==== `gtWatermelon` ====
A watermelon bomb, still intact.

 * `Timer`: Detonation timer (in milliseconds).

==== `gtWhip` ====
A whip.

=== Secondary projectiles ===
Gears for projectiles that can’t be directly fired but are generated by other weapon gears.

==== `gtAirBomb` ====
A bomb from the air attack or the RC plane.

==== `gtBall` ====
A ball from the ball gun

 * `Timer`: Detonation timer (in milliseconds). Default: 5000
 * `Tag`: Color: `0`=red, `1`=green, `2`=cyan, `3`=yellow, `4`=violet, `5`=pink, `6`=orange, `7`=lime, `8`=white

==== `gtCluster` ====
A cluster from the cluster bomb or the mortar

==== `gtEgg` ====
An egg from Birdy.

==== `gtHammerHit` ====
A hit from the hammer.

 * `Timer`: How deep a successful hammer hit dig into land. 1 is the smallest possible depth. Using the value 0 will dig all the way to the water. Default: 125.

==== `gtMelonPiece` ====
 * A cluster from a watermelon bomb.

==== `gtNapalmBomb` ====
A bomb from the napalmn strike, will burst into fire.

 * `Timer`: Detonation timer (in milliseconds). Default: 1000

==== `gtPoisonCloud` ====
A poisonous cloud, makes hedgehogs sick on contact.

 * `Timer`: Remaining “life time” in milliseconds (default: 5000). Note that the current animation does not very well support timers larger than 5 seconds, and the animation is partly hardcoded.

=== Other ===
Gears which don't fit into any other category.

==== `gtAddAmmo` ====
Used to add some weapon or utilty to a hedgehog. The gear is added when a crate has been collected.

==== `gtATStartGame` ====
TODO. The purpose of this gear is not clear yet.

==== `gtATFinishGame` ====
TODO. The purpose of this gear is not clear yet.

==== `gtGenericFaller` ====
TODO. The purpose of this gear is not clear yet.

==== `gtWaterUp` ====
Causes the water to rise.

`Tag` contains the number of pixels the water still has to rise (default: 47). The gear will be removed when its `Tag` reaches the value 0.

== Reference ==
For a current list of the gears look at `hedgewars/uTypes.pas` at
the `TGearType` enumeration:
[http://hg.hedgewars.org/hedgewars/file/default/hedgewars/uTypes.pas#l92]

Note: `gtBomb` and `gtShell` were named `gtAmmo_Bomb` and `gtAmmo_Grenade` before 0.9.14.