GearTypes.wiki
author Wuzzy
Wed, 08 Jul 2020 18:19:41 +0200
changeset 2172 798ddaa7aa94
parent 2171 aff8f58ef3c4
child 2181 3da12997c5e7
permissions -rw-r--r--
TODO: AI: Mudball is DONE!

#summary List of all gear types

= 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.).

The categories presented here are purely for a better overview here; they do not neccessarily reflect anything in the actual game’s source code.

<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* ||
|| [GearTypes#gtCase `gtCase`] || Crate ||
|| [GearTypes#gtExplosives `gtExplosives`] || Barrel ||
|| [GearTypes#gtFlake `gtFlake`] || Snowflake or land spray flake ||
|| [GearTypes#gtFlame `gtFlame`] || Flame ||
|| [GearTypes#gtGrave `gtGrave`] || Grave ||
|| [GearTypes#gtHedgehog `gtHedgehog`] || Hedgehog ||
|| [GearTypes#gtPortal `gtPortal`] || Portal from the portable portal device ||
|| [GearTypes#gtTarget `gtTarget`] || Target ||

=== Utilities ===
|| *Gear type* || *Description* ||
|| [GearTypes#gtGirder `gtGirder`] || Attempt to place a construction or rubber ||
|| [GearTypes#gtJetpack `gtJetpack`] || Flying saucer ||
|| [GearTypes#gtLandGun `gtLandGun`] || Land spray tool ||
|| [GearTypes#gtParachute `gtParachute`] || Parachute ||
|| [GearTypes#gtResurrector `gtResurrector`] || Resurrection ||
|| [GearTypes#gtRope `gtRope`] || Rope ||
|| [GearTypes#gtSwitcher `gtSwitcher`] || Switch hedgehog ||
|| [GearTypes#gtTardis `gtTardis`] || Time Box ||
|| [GearTypes#gtTeleport `gtTeleport`] || Teleportation ||

=== Weapons and main projectiles ===
|| *Gear type* || *Description* ||
|| [GearTypes#gtAirAttack `gtAirAttack`] || Airplane of an airborne attack ||
|| [GearTypes#gtAirMine `gtAirMine`] || Air mine ||
|| [GearTypes#gtBallGun `gtBallGun`] || Ballgun ||
|| [GearTypes#gtBee `gtBee`] || Homing bee ||
|| [GearTypes#gtBirdy `gtBirdy`] || Birdy ||
|| [GearTypes#gtBlowTorch `gtBlowTorch`] || Blowtorch ||
|| [GearTypes#gtClusterBomb `gtClusterBomb`] || Cluster bomb ||
|| [GearTypes#gtCake `gtCake`] || Cake ||
|| [GearTypes#gtCreeper `gtCreeper`] || Creeper (unfinished weapon) ||
|| [GearTypes#gtDEagleShot `gtDEagleShot`] || Shot from a Desert Eagle ||
|| [GearTypes#gtDrill `gtDrill`] || Drill rocket ||
|| [GearTypes#gtDynamite `gtDynamite`] || Dynamite ||
|| [GearTypes#gtFirePunch `gtFirePunch`] || Shoryuken ||
|| [GearTypes#gtFlamethrower `gtFlamethrower`] || Flamethrower ||
|| [GearTypes#gtGasBomb `gtGasBomb`] || Old limburger ||
|| [GearTypes#gtGrenade `gtGrenade`] || Grenade ||
|| [GearTypes#gtHammer `gtHammer`] || Gear dealing hammer damage ||
|| [GearTypes#gtHellishBomb `gtHellishBomb`] || Hellish hand-grenade ||
|| [GearTypes#gtIceGun `gtIceGun`] || Freezer ||
|| [GearTypes#gtKamikaze `gtKamikaze`] || Hegehog going kamikaze ||
|| [GearTypes#gtKnife `gtKnife`] || Cleaver ||
|| [GearTypes#gtMinigun `gtMinigun`] || Minigun ||
|| [GearTypes#gtMinigunBullet `gtMinigunBullet`] || Minigun bullet ||
|| [GearTypes#gtPiano `gtPiano`] || Piano from piano strike ||
|| [GearTypes#gtPickHammer `gtPickHammer`] || Pickhammer ||
|| [GearTypes#gtRCPlane `gtRCPlane`] || RC plane ||
|| [GearTypes#gtMolotov `gtMolotov`] || Molotov cocktail ||
|| [GearTypes#gtMortar `gtMortar`] || Mortar ||
|| [GearTypes#gtMine `gtMine`] || Mine ||
|| [GearTypes#gtSeduction `gtSeduction`] || Seduction ||
|| [GearTypes#gtShell `gtShell`] || Bazooka shell (projectile) ||
|| [GearTypes#gtShotgunShot `gtShotgunShot`] || Shot from a shotgun ||
|| [GearTypes#gtShover `gtShover`] || Punch from baseball bat ||
|| [GearTypes#gtSineGunShot `gtSineGunShot`] || Shot from the sine gun ||
|| [GearTypes#gtSMine `gtSMine`] || Sticky mine ||
|| [GearTypes#gtSniperRifleShot `gtSniperRifleShot`] || Shot from the sniper rifle ||
|| [GearTypes#gtSnowball `gtSnowball`] || Mudball ||
|| [GearTypes#gtWatermelon `gtWatermelon`] || Watermelon bomb (main projectile) ||
|| [GearTypes#gtWhip `gtWhip`] || Whip ||

=== Secondary projectiles ===
|| *Gear type* || *Description* ||
|| [GearTypes#gtAirBomb `gtAirBomb`] || Bomb from air attack or RC plane ||
|| [GearTypes#gtBall `gtBall`] || Ball from ball gun || 
|| [GearTypes#gtCluster `gtCluster`] || Cluster from the cluster bomb or mortar ||
|| [GearTypes#gtEgg `gtEgg`] || Egg from Birdy ||
|| [GearTypes#gtHammerHit `gtHammerHit`] || Hammer digging into land ||
|| [GearTypes#gtMelonPiece `gtMelonPiece`] || Cluster from a watermelon bomb ||
|| [GearTypes#gtNapalmBomb `gtNapalmBomb`] || Bomb from the napalm strike ||
|| [GearTypes#gtPoisonCloud `gtPoisonCloud`] || Poisonous cloud ||

=== Other ===
|| *Gear type* || *Description* ||
|| [GearTypes#gtAddAmmo `gtAddAmmo`] || Adds a weapon or utilty to a hedgehog ||
|| [GearTypes#gtATStartGame `gtATStartGame`] || Created at the start of the game ||
|| [GearTypes#gtATFinishGame `gtATFinishGame`] || Created at the end of the game. Fades out the screen and exits the game || 
|| [GearTypes#gtGenericFaller `gtGenericFaller`] || Virtual ball || 
|| [GearTypes#gtWaterUp `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, health or even a fake crate.

If the crate has just been collected, the gear message flag `gmDestroy` will be set before `onGearDelete` is called.

 * `Pos`: Crate type: 1=ammo crate, 2=health crate, 4=utility crate (also see below)
 * `Tag`: Used for the appear animation
 * `Health`: Amount of health contained in a health crate. This value should not be negative
 * `Power`: Ammo count in an ammo or utility crate. 0: Use weapon scheme default. 100 or greater: infinite (default: 0)
 * `Boom`: Explosion size and damage (default: 25)
 * `Karma`: (1.0.0) If `1`, health amount of a health crate can not be viewed in the game with the object information view, but it will be available in demos. If `2`, health amount can never be viewed.

We recommend you to use `SpawnAmmoCrate` and the like to crate crate gears instead of `AddGear`.

It is not possible to get the ammo type contained in an ammo or utility crate. Note that random crate contents are determined when a hedgehog collects it, not before.

Advanced crate types: If you just care about normal crates, the values 1, 2 and 4 mentioned above are all you need to know. But Hedgewars supports a few crate variants which can be spawned with `SpawnFakeAmmoCrate` and the like. The `Pos` parameter is in reality a sum of several flags which need to be added up for the final type.
|| *Pos flag* || *Meaning* ||
|| `0x1` || Ammo crate ||
|| `0x2` || Health crate ||
|| `0x4` || Utility crate ||
|| `0x8` || Fake crate, looks like a normal crate but does not actually contain health or ammo ||
|| `0x10` || Booby trap: When the player collects this crate it will explode ||
|| `0x20` || Poison trap: When the player collects this crate the player will be poisoned ||

All crates *must* have exactly one of the flags `0x1`, `0x2` or `0x4` set. Everything else can be combined at will.

Examples:

 * Pos = 0x1: Ammo crate
 * Pos = 0x9: Fake ammo crate (0x1 + 0x8)
 * Pos = 0x2A: Fake health crate with poison trap (0x2 + 0x8 + 0x20)

==== `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.
 * `Boom`: Explosion size and damage (default: 75)

==== `gtFlake` ====
A little object which will, when colliding with the terrain, become part of the terrain. It is either a snowflake generated by the theme (examples are the Snow and Christmas themes) or a flake created by a land spray ([GearTypes#gtLandGun `gtLandGun`]).

If the gear state flag `gsttmpFlag` is set, it is a flake from a land spray, otherwise, it is a snowflake.

==== `gtFlame` ====
A single flame.
In the main game, there are two kinds of flames: Normal flames and sticky flames. Normal flames will quickly burn through land and are guaranteed to be destroyed at the end of a turn. Sticky flames may live through multiple turns and burn very slowly through land. Sticky flames die based on time.

Sticky flames have the gear state flag `gsttmpFlag` set, non-sticky ones haven't.

 * `Tag`: For sticky flames, this determines the burning time (higher = longer). Burning time in ms = `3000+1500*Tag`. This also sets the “direction” of the animation. If the last binary digit is a 0, the animation is played forwards, otherwise its backwards. `Tag` is initialized with a random value between 0 and 31.
 * `Health`: Size of the flame. Normal flames starts at 5 (largest) and become smaller as they destroy land and damage gears. All flames die when they reach a health of 0.
 * `FlightTime`: If set to `0`, this flame can damage hedgehogs and other gears even in mid-air. Otherwise, flames don't do damage while they are still falling. By default, the `FlightTime` is a huge non-zero value.
 * `Boom`: Damage and size of destroyed land (default: 2). Sticky flames always deal `Boom` damage, normal flames deal either `Boom` or sometimes deal 3 times this value as damage.

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

 * `Pos`: `gearUid` of the dead hedgehog
 * `Health`: If 0, it is not being resurrected. With larger values, it is being resurrected, and the value stands for amount of health the owner of this grave has received so far.

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

Basic attributes are:

 * `Health`: Hedgehog's health.
 * `Tag`: Used for animation. `0` = no animation plays. Other value: animation plays
 * `Radius`: Collision radius. Default: 9
 * `Boom`: Explosion size and damage caused when the hedgehog dies (default: 30)
 * `FlightTime`: Time (in milliseconds) since the hedgehog stood the last time on solid ground
 * `Damage`: Amount of damage the hog took in this turn. At the end of turn, the health will be reduced accordingly and the `Damage` is reset to 0
 * `Angle`: Current aiming angle, ranging from 0 to 2024. 0 is 90° (up) and 2024 is -90° (down).
 * `FlightTime`: Amount of time the hedgehog flew after being hit by a baseball bat. If not hit or not in air, this is 0

Hedgehogs also make heavy use of the gear state, see [States]. [GearMessages Gear messages] are used for controlling a hedgehogs movement and actions (e.g. moving left, attacking, jumping, etc.)

Please note that hedgehogs have also many other attributes and functions which are specific to hedgehogs only (like name, team name, hat, etc.). You can find many hedgehog-related functions in LuaGears.

==== `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 and similar missions. This is a simple gear which will fall straight down and is destroyed by any form of damage, no matter how small. It is not affected by wind.

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

==== `gtGirder` ====
This gear is created when a player tried to place construction or rubber somewhere. Placement may or may not have been successful.

 * `State`: Orientation and size coded as a number. See Lua API documentation on `onGirderPlacement` or `onRubberPlacement` for the meaning of the number.

If you expect a successful placement including information regarding building type, position and orientation, use the functions `onGirderPlacement` and `onRubberPlacement`, respectively.

==== `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. The special value `JETPACK_FUEL_INFINITE` is used for infinite fuel

==== `gtLandGun` ====
The land spray tool. Creates [GearTypes#gtFlake `gtFlake`] gears.

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

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

 * `Timer`: Number of milliseconds the parachute has been enabled.

==== `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. There can only be one rope gear at once.

The gear state flag `gstCollision` is set when the previous rope shot has hit something and is reset each time a new hook it fired.

 * `X` and `Y`: Position of the nearest “bending point” of the rope (nearest to the rope gun), or the rope hook if rope does not touch anything
 * `dX`: sine of rope angle, number between -1000000 and 1000000 (correspond to -180° to 180°)
 * `dY`: negative cosine of rope angle, expressed as number between 0 and 1000000
 * `Elasticity`: If the hog is attached to a rope, or is busy firing one, the elasticity of the rope will be non-zero. A non-zero number holds the current retracted length of the rope from the nearest “bending point” or the hook, times 10000
 * `Friction`: Holds the maximum remaining length of the rope measured from the nearest “bending point” or the hook, times 10000. Set this after rope creation to manually set the rope length individually. Note you can set `RopePercent` in `onGameInit` to set the rope length for all ropes at once
 * `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`

Note: `dX` and `dY` are returned by the `GetGearVelocity` function.

==== `gtSwitcher` ====
This gear handles switching of hedgehogs, represented by spinning arrows. As long this gear exists, hedgehogs can be switched with the Switch Hedgehog key. This gear is destroyed, thus ending hog switching, as soon the hedgehog does something, like walking or choosing a weapon. There must never be more than one `gtSwitcher` gear at once in the game.

*Note*: To enable hog switching manually from Lua, `AddGear` won't work. You must call `EnableSwitchHog()` instead (only available in 0.9.25 or later). Alternatively, enabling the !GameFlag `gfSwitchHog` enables hog switching automatically on turn start for everyone.

 * `X` and `Y`: Position of the spinning arrows (visual effect only)

==== `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)

Note: This section is incomplete, not all phases are documented yet.

==== `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. It can drop either missiles ([GearTypes#gtAirBomb `gtAirBomb`]), mines ([GearTypes#gtMine `gtMine`]), napalm missiles ([GearTypes#gtNapalmBomb `gtNapalmBomb`]) or drill rockets ([GearTypes#gtDrill `gtDrill`])

 * `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`.

States:

 * `gsttmpFlag`: The air mine is active and ready to chase. The air mine is only inactive for the first few seconds of its existence, inactivity is indicated by a slightly darker color
 * `gstAttacking`: The air mine is activated and is about to explode.
 * `gstChooseTarget`: 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.

Gear values:

 * `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. This also indirectly sets the escape distance which hog need to reach for the air mine to stop following. It is 6 times this value. Default: 175 (and an implied default escape distance of 1050)
 * `Power`: Speed in which it seeks and follows hedgehogs.
 * `Boom`: Explosion size and damage. Default: 25
 * `Karma`: (1.0.0) If `1`, mine timer display is hidden when object information view is enabled

==== `gtBallGun` ====
A ballgun. It throws 51 balls ([GearTypes#gtBall `gtBall`]) by default. 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.
 * `Boom`: Explosion size and damage. Default: 50

==== `gtBirdy` ====
Birdy. Transports hogs and can drop eggs ([GearTypes#gtEgg `gtEgg`]). 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. The special value `BIRDY_ENERGY_INFINITE` is used for infinite energy
 * `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.
 * `Radius`: Hit radius. Things inside this radius will be hit. Default: 15
 * `Boom`: Damage caused when burning a hedgehog or an object. Default: 2

==== `gtClusterBomb` ====
A cluster bomb. Spawns several [GearTypes#gtCluster `gtCluster`] gears on detonation.

 * `Boom`: Explosion size and damage. Default: 20

==== `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.
 * `Boom`: Explosion size and damage. Default: 75

==== `gtCreeper` ====
Used for an unfinished weapon that is internally known as the “Creeper”.

As of 1.0.0, it uses a rubber duck sprite (to be replaced). When released, it tries to walk and hop around on the terrain and tries to find a hog nearby. When it sees one, it will explode in a big explosion.

It's still pretty buggy and shouldn't be used for anything yet. It's unclear whether this weapon will ever be used. If this weapon is adopted, the name will probably change.

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

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

==== `gtDrill` ====
A drill rocket. This is either a launched drill rocket or a small and weaker drill rocket from the drill strike ([GearTypes#gtAirAttack `gtAirAttack`]).

The type of drill rocket is stored in the gear state. If `gsttmpFlag` is set (e.g. {{{band(GetState(yourDrillGear), gsttmpFlag) == 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)
 * `Boom`: Explosion size and damage. Default: 50 for launched drill rocket, 30 for drill rocket from drill strike

==== `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.
 * `Boom`: Explosion size and damage. Default: 75

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

 * `Tag`: Current Y coordinate of the hedgehog.
 * `Radius`: Hit radius. Default: 15
 * `Boom`: Damage. Default: 30

==== `gtFlamethrower` ====
A flamethrower creates both sticky and non-sticky [GearTypes#gtFlame `gtFlame`] gears.

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

==== `gtGasBomb` ====
An old limburger. Will spawn several [GearTypes#gtPoisonCloud `gtPoisonCloud`] gears on detonation.

 * `Timer`: Detonation timer (in milliseconds).
 * `Boom`: Explosion size and damage. Default: 20

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

 * `Timer`: Detonation timer (in milliseconds).
 * `Boom`: Explosion size and damage. Default: 50

==== `gtHammer` ====
A hammer attack. This gear is for determining which hedgehogs and objects to hit and to reduce health of anything hit. Hedgehogs, mines and barrels can be hit. See also [GearTypes#gtHammerHit `gtHammerHit`] for the digging part.

 * `Boom`: Damage denominator. The damage caused will be `(1/Boom)*health_of_victim`, e.g. if this value is `4` and the victim has 100 health, the hammer takes away 25 health (one quarter). Default: 3 normally (so one third of the health); 2 if Extra Damage is enabled (so one half of the health)
 * `Radius`: Stuff inside this radius will be hit and be subject to hammer damage and digging. Default: 20

==== `gtHellishBomb` ====
A hellish hand-grenade. It creates several sticky and non-sticky flames ([GearTypes#gtFlame `gtFlame`]) on detonation.

 * `Timer`: Detonation timer (in milliseconds). Default: 5000
 * `Boom`: Explosion size and damage. Default: 90

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

 * `Health`: Remaining fuel. `1000` is for 100% fuel
 * `Radius`: Freeze radius; Objects and hogs will be frozen within the radius of the freezer beam impact location. Does not affect the size land which will be frozen. Default: 8

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

 * `Health`: Remaining travel range. Default: 2048
 * `Radius`: Hit radius. Objects and hogs within this distance of the kamikaze hog will be hit. Default: 20
 * `Boom`: Damage of a hit and damage and explosion size of the final explosion. Default: 30

==== `gtKnife` ====
A cleaver. If the cleaver takes a lot of damage, it might fall down into the water (without colliding with the land) eventually.

 * `Boom`: Scaling value for the impact damage. The actual damage does not linearly scale. Default: 40000
 * `Damage`: Holds the damage taken by the cleaver received in the current tick (damage taken *at once*). For each tick, `Damage` is first checked and then reset to 0. If the damage was greater than 30, then there is a chance the cleaver will drop, with the chance increasing with the damage. When `Damage` is over 100, the cleaver will drop for sure.

==== `gtMinigun` ====
A minigun. This gear is added for the full duration of a minigun shooting. Its job is to spawn `gtMinigunBullet`s until it runs out of time.

Before it starts shooting, there is a short delay for the “spin-up”. Then the timer is set to `Karma` and the minigun starts shooting until the timer reaches 0 again. Then the gear is destroyed.

The minigun is entirely timer-based (see `Karma`).

 * `Timer`: Used for two things: 1) Spin-up delay. If this timer reaches 0, minigun starts shooting and timer is set to `Karma`. 2) It shoots bullets until `Timer` is 0 again, after which it is destroyed. Timer starts at 601 by default.
 * `Karma`: The time of the minigun actually shooting. This is in direct relation to the number of bullets fired. One bullet is fired every 50 milliseconds. Default: 3451 (is equivalent to 70 bullets)
 * `Tag`: Current frame of minigun image, used for rotation animation and dispensing shells. Value is 0-1.
 * `WDTimer`: Number of bullets fired

==== `gtMinigunBullet` ====
A minigun bullet.

 * `Boom`: Damage. Default: 2
 * `Radius`: Collision detection radius. Default: 1
 * `WDTimer`: Bullet number of minigun, set by `gtMinigun`. This is the (`WDTimer`+1)th bullet. E.g. if `WDTimer` is `0`, this means its the first bullet from a minigun.

==== `gtPiano` ====
A piano from piano strike. By default, a piano bounces up to 5 times on the terrain, causing 3 big explosions (80 damage each) per impact.

 * `Pos`: Number of remaining terrain bounces. If this number reaches 0, the piano will not collide anymore and directly fall into the water. Default: 5
 * `Boom`: Explosion size and damage of a single explosion of a single impact. Default: 80

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

 * `Timer`: Remaining usage time (in milliseconds). Default: 4000
 * `Radius`: Width of dug land. Default: 10
 * `Boom`: Damage per hit. Default: 6

==== `gtRCPlane` ====
An RC plane. It can drop missiles ([GearTypes#gtAirBomb `gtAirBomb`]).

 * `Tag`: Initial flying direction, depends on the facing direction of the hedgehog which launched it. -1: left, 1: right. This is used for rendering. 
 * `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)
 * `Boom`: Explosion size and damage when the RC plane crashes. Default: 25

==== `gtMolotov` ====
A molotov cocktail. Creates several flames ([GearTypes#gtFlame `gtFlame`]) on impact.

==== `gtMortar` ====
A mortar. On impact it spawns a few [GearTypes#gtCluster `gtCluster`] gears.

 * `Boom`: Explosion size and damage of the main mortar projectile only. Default: 20

==== `gtMine` ====
A regular mine. The game will decide whether a mine is a dud or not when the mine timer reaches 0.

State:

 * `gstAttacking`: If set, mine has been activated and is about to explode (if it is not a dud)
 * `gstWait` if set, the mine will be guaranteed to not be a dud. `gstWait` is automatically set for mines that are placed by hedgehogs via the `amMine` ammo type

Gear values:

 * `Timer`: Detonation timer (after activation). The initial value depends on the game settings.
 * `Health`: If `0`, mine is a dud, otherwise it is not a dud or has not been triggered yet.
 * `Tag`: If `1`, mine timer will be random.
 * `Damage`: If mine has become a dud, this will contain the damage taken by the mine since it was a dud. It starts at 0 and the mine will explode when `Damage` is greater than 35.
 * `Boom`: Explosion size and damage. Default: 50
 * `Karma`: (1.0.0) If `1`, mine timer display is hidden when object information view is enabled

==== `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).

 * `FlightTime`: Time since the bazooka has been launched
 * `Boom`: Explosion size and damage. Default: 50

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

 * `Boom`: Damage. Default: 25

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

 * `Radius`: Hit radius. Default: 20
 * `Boom`: Damage. Default: 30

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

 * `Radius`: The thickness of the sine gun shot (must be at least 1)
 * `Boom`: Damage. Default: 35

==== `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
 * `Boom`: Explosion size and damage. Default: 30
 * `Karma`: (1.0.0) If `1`, mine timer display is hidden when object information view is enabled

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

 * `Health`: How deep the bullet digs into land. Default: 50
 * `Boom`: Scaling value of the damage caused (not the actual damage). A higher value leads to higher damage. Default: 100000

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

 * `Boom`: Pushing power (just an arbitrary value for scaling). Default: 200000
 * `Density`: Density is taken into account in `gfMoreWind` only. Otherwise, wind affects mudball as if `Density` is 1. Default: 0.5

==== `gtWatermelon` ====
A watermelon bomb, still intact. It spawns several [GearTypes#gtMelonPiece `gtMelonPiece`] gears when it explodes.

 * `Timer`: Detonation timer (in milliseconds).
 * `Boom`: Explosion size and damage. Default: 75

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

 * `Radius`: Hit radius. Default: 20
 * `Boom`: Damage. Default: 30

=== 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 ([GearTypes#gtAirAttack `gtAirAttack`]) or the RC plane ([GearTypes#gtRCPlane `gtRCPlane`]).

 * `Boom`: Explosion size and damage. Default: 30

==== `gtBall` ====
A ball from the ball gun ([GearTypes#gtBallGun `gtBallGun`]).

 * `Timer`: Detonation timer (in milliseconds). Default: 5000
 * `Boom`: Explosion size and damage. Default: 40
 * `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 ([GearTypes#gtClusterBomb `gtClusterBomb`]) or the mortar ([GearTypes#gtMortar `gtMortar`]).

 * `Timer`: Default explosion size and damage on creation.  Prior to the addition of Boom this exclusively controlled the damage for clusterbomb, mortar and melon pieces, and was the main way to make a variable size explosion in lua.  Retained for compatibility.
 * `Boom`: Explosion size and damage. Default: 25

==== `gtEgg` ====
An egg from Birdy ([GearTypes#gtBirdy `gtBirdy`])

 * `Boom`: Size of destroyed land and damage. Default: 10

==== `gtHammerHit` ====
Created when a hammer hit something. This gear will dig into the ground. See also [GearTypes#gtHammer `gtHammer`] for hammer damage.

 * `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 ([GearTypes#gtWatermelon `gtWatermelon`])

 * `Timer`: Default explosion size and damage on creation.  Prior to the addition of Boom this exclusively controlled the damage for clusterbomb, mortar and melon pieces, and was the main way to make a variable size explosion in lua.  Retained for compatibility.
 * `Boom`: Explosion size and damage. Default: 75

==== `gtNapalmBomb` ====
A bomb from napalmn ([GearTypes#gtAirAttack `gtAirAttack`]), will burst into fire.

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

==== `gtPoisonCloud` ====
A poisonous cloud, makes hedgehogs sick on contact. Is normally created by [GearTypes#gtGasBomb `gtGasBomb`].

 * `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.
 * `WDTimer`: (1.0.1-dev) Initial life time (after spawning). Used by the animation

=== 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 ([GearTypes#gtCase `gtCase`]) has been collected.

 * `Pos`: Ammo classification: 1=weapon, 4=utility
 * `Power`: Ammo count. 0: Use weapon scheme default. 100 or greater: infinite (default: 0)

==== `gtATStartGame` ====
This gear is created to mark the beginning of the game. It will cause a ticker message to be displayed (“Let's fight!”) and sets some internal stuff. This gear shouldn't be created in Lua.

==== `gtATFinishGame` ====
This gear is created at the end of the game. The gear itself will fade out the screen and cause the game to be closed. Note: This gear shouldn't be created in Lua. If you want to end the game early, we recommend to call the `EndGame` function.

 * `Timer`: Fade-out countdown in milliseconds. Fade-out begins at 1000 and finishes at 0.

==== `gtGenericFaller` ====
This gear behaves like a virtual ball. It collides with its surroundings and bounces around but doesn't affect the environment or other gears in any way. It appears as a red circle, unless it is made invisible by setting the gear state. It also supports the gear state `gstNoGravity`. It gets automatically destroyed when its `Timer` is up.

The density, elasticity, friction and radius can be changed.

 * `Radius`: Radius of the “ball”
 * `Timer`: Life time in milliseconds. Needs to be set explicitly to a positive value, otherwise the gear just dies instantly

This gear could be useful for some testing or as a dummy.

==== `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:
[https://hg.hedgewars.org/hedgewars/file/default/hedgewars/uTypes.pas#l92]