Introduction[]
While modifying GearHead is in theory very simple, some understanding of the source-code is necessary in order to know what the values you are modifying mean. Hopefully, I have made things simpler by translating much of the relavent source-code into pseudo-code.
Understanding ghpmacro.txt[]
G,S,V: Integer; {General Descriptive,} {Specific Descriptive,} {and Value Descriptive}
These three values describe what kind of gear we're talking about. The "G" describes general type- Plot, Scene, Mecha, Weapon, Module, etc.
The "S" describes a specific subcategory of the general type. For mecha, this determines the form type (Battroid, Zoanoid, etc). For modules, this describes the module type (Body, Arm, etc).
The "V" field usually holds a size attribute related to the G,S type. For weapons, it holds the DC. For modules, it holds the size.
Scale: Integer; {Scale of this Gear}
This field is only used by physical-type gears. Scale 0 is human scale; PCs are this scale, and Scale:0 equipment can be picked up and used by them. Most mecha are Scale:2.
Stat: Array [1..8] of Integer; {Gear Stats. Needed info for Gear type.}
The stats, as explained before, have different meanings depending upon the gear type (usually the G,S description).
SA: SAttPtr; {String Attributes.}
String attributes are strings, stored as a linked list. They are in the format "key <data>". All the event scripts are stored in SAtts.
NA: NAttPtr; {Numerical Attributes.}
Numeric attributes are numbers, also stored as a linked list. The NAtt record has G,S, and V fields just like the gear... Think of the G,S pair as the key and the V field as the value. Damage, map location, script variables, and more are all stored as NAtts.
Special note regarding calculations[]
The GearHead source-code mainly uses integers and integer division instead of real numbers and regular division. Basically, every time a calculation using the Pascal div operator is made, the value is rounded down to an integer. For instance, the expression:
20 div 5
is equivalent to the expression:
floor(20/5)
in other languages. That is, the fractional part of the result is discarded.
Gears[]
Michael Deutschmann (with some editing done to it for flow) says:
Michael Deutschmann says:
Joseph Hewitt says:
List of Gear types[]
Miscellaneous | Terrain | Mecha Forms | Characters | Cockpits | Weapons | Ammunition | Movement Systems |
---|---|---|---|---|---|---|---|
Story Plot |
MapFeature Rect |
Battroid Zoanoid |
Chara | CPit | Melee EMelee |
Ammo Rockets |
Wheels Tracks |
Holders | Sensors | Support | Shields | Armor | Swag | Props | Electronics |
Hand Mount |
Sensor TarComp |
Gyro Engine |
Shield EShield |
BodyArmor HeadArmor |
Treasure BigTreasure |
Prop | PCS |
Meta Terrain | Usables | Repair fuel | Consumables | Modifiers | Weapon Add-ons |
| |
Door MetaTerrain |
Instrument | FirstAidFuel MechaRepairFuel |
Food | StatModifier SkillModifier |
GAddOn GunAddOn |
|
|
Inventory Rules[]
- Mounting Points may equip: sensors, weapons, move systems
- Hands may equip: sensors, weapons
- Arms and Tails may equip: armor, shields
- Other modules may equip: armor
- A module may only equip one item of any specific type.
Subcomponent Dependancy Rules[]
- Mecha may have as subcomponents: Modules
- Body Modules may have: Cockpits, Weapons, Movement Systems, Holders (Mount), Sensors, Support Systems, Electronics
- Arm Modules may have: Cockpits, Weapons, Movement Systems, Holders (Mount + Hand), Sensors, Electronics
- Other Modules may have: Cockpits, Weapons, Movement Systems, Holders (Mount), Sensors, Electronics
- Characters may have: Modules
- Cockpits may have: Characters
- Physical Shields may have: Weapons
- External Armor may have: Weapons, Movement Systems, Electronics
- Weapon/Projectile may have: Ammo/Projectile
- Weapon/Missile may have: Ammo/Missile
- Props have no restrictions as to what subcomponents they may have.
Additional Subcomponent Rules[]
- Illegal inventory for master gears must be explicitly excluded.
- Legal inventory for other types must be explicitly defined. ((Not sure what this means.))
- At most one Movement System of a specific type per location.
- At most one Support System of a specific type per location.
- At most one Body Module per location (i.e., a mecha may only have one Body).
- At most one Holder of a specific type per location, except that Body may have up to two holders installed.
- At most one Weapon mount per location.
- At most one Hand per location.
- At most one Ammunition item per location.
- Mecha must have exactly one Body Module.
- Mecha must have exactly one Cockpit.
- Hands may only be mounted in Arm Modules.
- Support Systems may only be mounted in Body.
- Level-one subcomponents must be Modules.
- Armor value of any component may not exceed Mecha Size.
- Cockpit armor may be no greater than 2.
- Size of Modules may not exceed Mecha Size + 1 (but never greater than 10).
- Size of Body module must be the same as Mecha Size.
- Size of Engine must be the same as Mecha Size.
- Sensors are always Scale Factor 0.
- Modules Size may be in the range from 1 to 10.
- Mecha Size may be in the range from 1 to 10.
- Weapon Size may be in the range from 1 to 25.
- Weapon Range may be in the range from 1 to 50 for Ballistic, Missile and BeamGun weapons. It is zero for all others.
- Weapon Accuracy may be in the range from -5 to 5.
- Weapon Speed may be no less than 1. [Ed. the upper limit is probably related to the granularity of the game and the length of a round.]
- Weapon Burst Value may be in the range from 0 to 10 for Ballistic, Missile and BeamGun weapons. It is zero for all others.
- Weapon Magazine may be no less than 1 for Ballistic and Missile weapons. It is zero for all others.
- Ammunition Size must be the same as Weapon Size.
- Ammunition AmmoCount can't exceed the Magazine rating.
- Ammunition Burst Value may range from 0 to 10 if the ammo is a Grenade. For other types of ammo, this is always 0.
- Ammunition GrenadeSkill may range from 1 to 5 (one for each of
the combat skills) if the ammo is a Grenade. For other types of ammo, this is always 0.
- Electronics (PCS) Size determines its function. There are currently 5 types, but the values may range from 1 to 10. [Ed. Not sure what happens if you specify a value greater than 5.]
- Shield Size may range from 1 to 10.
- Shield DefBonus may range from -5 to 5.
- ExArmor Size may range from 0 to 10.
- Prop Size may range from 1 to 100.
- Usables (Instruments) Size may range from 1 to 20.
- Usables UseBonus may be in the range from 0 to 5.
- Usables Range may be in the range from 1 to 10.
- Food Size may range from 0 to 60.
- Food MoraleBoost may be in the range from -5 to 10.
- Food Quantity may be in the range from 1 to 50.
- Modifier (Cyberware) Size may range from 0 to 80.
- Modifier Stat Modifiers may range from -5 to 10.
- Modifier Skill Modifiers may range from 1 to 10.
- Weapon Add-On Damage Modifier may range from 0 to 2.
- Weapon Add-On Range Modifier may range from 0 to 5.
- Weapon Add-On Accuracy Modifier may range from 0 to 3.
- Weapon Add-On Speed Modifier may range from 0 to 3.
- Battroids and Gerwalks do not benefit from Wings in any way.
- See the Movement Modes section for tables related to mecha form and movement modes.
Stat Bonuses[]
- If cockpit is located in head, +1 bonus to MV and TR.
- If total wing points >= mecha size, 25% bonus to Flight.
- Storage modules get a +2 bonus to armor rating.
- Zoanids get a 50% bonus to Jump time and a 20dpr bonus to Walking Speed.
- GroundCars get a 50% bonus to Rolling Speed.
- HoverFighters and GerWalkers get a 25% bonus to Flying Thrust (calculated toward speed).
- AeroFighters get a 100% bonus to Flying Thrust if their total wing points is greater than than the mecha size.
- Ornithoids get a 50% bonus to Flying Thrust if their total wing points is greater than than the mecha size.
- Ornithoids get an additional bonus to Flying Thrust equal to the total number of wing points multiplied by 80.
- GroundHuggers get a +2 bonus to Armor.
- Arachnoids get a +1 bonus to Armor.
- See the table in the Movement (MV), Sensors (SE) & Targeting (TR) section for MV and TR bonuses related to mecha form.
List of mecha forms and the modules they can use[]
| Body Head Arm Leg Wing Tail Turret Storage -------------------------------------------------------------------------------------- Battroid | True True True True True True False True Zoanoid | True True False True True True False True GroundHugger | True False False False False False True True Arachnoid | True True False True False True True True AeroFighter | True False False False True False False True Ornithoid | True True False True True True False True Gerwalk | True True True True True True False True HoverFighter | True False False False True False True True GroundCar | True False False False False False True True
Module size table[]
Body SizeTimesTwo Head HalfSize Arm EqualSize Leg SizePlusOne Wing HalfSize Tail EqualSize Turret HalfSize Storage NoHP
Stats[]
Default values for stats[]
Michael Deutschmann says:
Nature/Material[]
Material types[]
Currently there are three materials:
- Meat
- Metal
- Biotech
The default material is Metal.
List of Status Effects and the materials they effect[]
EFFECT METAL MEAT BIOTECH ---------------------------------------------- Poison False True False Burn True True True Regen False True True Stoned False True False Haywire True False False Inhuman Visage False False False Twitchy Hands False False False Depression False False False Rejection False False False Body Aches False False False Anemia False False False Irrational Anger False False False Neural Lag False False False Major Neural Failure False False False Cerebrospinal Shock False False False Toxic Leakage False False False Shutdown False False False Rust True False False Stun FALSE TRUE True Sickness FALSE TRUE False Half-Blinded False False False Spinal Injury False False False Torn Ligaments False False False Crushed Bones False False False Heart Injury False False False
Mass (kg,t)[]
Joseph Hewitt says:
Joseph Hewitt says:
Michael Deutschmann says:
Michael Deutschmann says:
- At Scale Factor 0 one mass point is worth 0.5kg (1 kilogram = 0.001 tons).
- At Scale Factor 1 one mass point is worth 0.1t.
- At Scale Factor 2 one mass point is worth 0.5t.
- As far as movement systems are concerned, there is a low cap of 20 for a mecha's total mass.
Mass calculations by gear type[]
- Module Mass
- ModuleSize = the size of the module (see the table)
- If ModuleSize = NoHP → Mass = 0
- Else if ModuleSize = HalfSize → Mass = PartSize
- Else if ModuleSize = EqualSize → Mass = PartSize
- Else if ModuleSize = SizePlusOne → Mass = PartSize + 1
- Else if ModuleSize = SizeTimesTwo → Mass = PartSize * 2
- Else → Mass = 0
- Mass = Mass + ArmorRating
- Cockpit Mass
- Mass = ArmorValue
- Weapon Mass
- Missile: Mass = 1
- EMelee: Mass = 1
- BeamGunn: Mass = DP
- Melee: Mass = DP
- Ballistic: Mass = DP + BV
- Ammunition Mass
- Missile: Mass = DP
- Grenade: Mass = DP [Ed. This is always equal to 1. It may be a 'bug'.]
- Others: Mass = (DC * NumShots) div 100
- Movement System Mass
- Mass = DP
- Holder Mass
- Mass = 1
- Sensor Mass
- Mass = DP
- Support Mass
- Mass = ArmorValue
- Shield Mass
- If PhysicalShield →
- Mass = ShieldSize + DefenseBonus
- If Mass < 1 → Mass = 1
- Else if EnergyShield → Mass = 1
- ExArmor Mass
- Mass = ArmorSize * 2
- Swag Mass
- Mass = 1
- Prop Mass
- Mass = PartSize
- Metaterrain Mass
- Mass = PartSize
- Electronics Mass
- Mass = PartSize
- Usables Mass
- Mass = DP
- Consumables Mass
- Mass = (PartSize * FoodQuantity) div 5
- Weapon Add-On Mass
- Mass = 1
- Adjustments to Mass based on the Mass Adjustment Value (MAV)
The Mass Adjustment Value (found in the design file) is applied after doing the above calculations.
- Mass = Mass + MAV
Price / Point Value (PV)[]
Francisco Munoz says:
PV calculations by gear type[]
- Module PV
- Value = 25 * PartSize + 35 * ArmorValue
- Weapon PV
See WeaponValue in ghweapon.pp.
The base value of a weapon is 35x Damage Class, unless it's an energy melee weapon in which case 125x Damage Class, or a beam weapon in which case 75x Damage Class. This value is adjusted based on various factors:
- Range:
- Value = Value * (2 + RNG) div 5
- Accuracy:
- If ACC > 0 → Value = Value * (5 + ACC) div 5
- If ACC < 0 → Value = Value * (10 + ACC) div 10
- Speed:
- Value = Value * (1 + 2 * SPD) div 5
- Burst Value:
- Value = Value * (4 + 3 * BV) div 4
- Additional BV cost for BeamGuns:
- Value = (Value * 3) div 2
- Magazine:
- Ballistic weapons:
- If MAG < 7 → Value = Value * (9 + MAG) div 20
- Else if MAG < 10 → Value = (Value * 4) div 5
- Else if MAG < 20 → Value = (Value * 9) div 10
- Missile weapons:
- Value = Value * MAG div 5
- Ballistic weapons:
- Damage Effects & Status Effects (see below for the cost tables)
- Base value of N is 10.
- Damage Effects (for each effect): N = ( N * CostOfEffect ) div 10
- Status Effects (for each effect): N = ( N * CostOfEffect ) div 10
- Special case (Blast): N = ( N * CostOfEffectPerRadius ) div 10
- Final values for N that are less than 5 are rounded up to 5.
- Value = Value * N div 10
- Base value of N is 10.
- Ammunition PV
See AmmoValue in ghweapon.pp.
- BaseValue = the clip magazine size for this ammo
- If the ammo is a missile → BaseValue = BaseValue * 10
- Else, if the ammo is a grenade →
- BaseValue = BaseValue * 2
- BaseValue = BaseValue * (BV + 1)
- Damage Effects & Status Effects (see below for the cost tables)
- N = a new variable = 10
- Damage Effects (for each effect): N = ( N * CostOfEffect ) div 10
- Status Effects (for each effect): N = ( N * CostOfEffect ) div 10
- Special case (Blast): N = ( N * CostOfEffectPerRadius ) div 10
- Final values for N that are less than 5 are rounded up to 5.
- If the ammo has the BLAST effect → N = N * 2
- If the ammo has the HYPER rating → N = N * 3
- N = a new variable = 10
- BaseValue = (BaseValue * AmmoSize * N) div 50
- Movement System PV
- MoveSystemCost = the cost of the movement system (see table, below)
- Value = PartSize * MoveSystemCost
- Holder PV
- Value = 15
- ExArmor PV
- Value = PartSize * PartSize * PartSize * 5 + PartSize * PartSize * 10 + PartSize * 35
- Cockpit PV
- Value = 25 * ArmorValue
- Sensor PV
- MainSensor: Value = PartSize * PartSize * 50 + 50
- TarCom: Value = PartSize * PartSize * 125
- ECM: Value = PartSize * PartSize * 500 - PartSize * PartSize * 350
- Others (hypothetical): Value = PartSize * PartSize * PartSize * 5 + PartSize * 10 + 15
- Electronics PV
- Value = PartSize * PartSize * PartSize * 5 + PartSize * 10 + 15
- Support PV
- If the part is a Gyroscope → Value = PartSize * PartSize * 30
- Else, if the part is an Engine →
- If the part is a High-output engine → Value = PartSize * 1000
- Else → Value = PartSize * 45
- Else → Value = PartSize * 45
- Value = Value + ArmorValue * 25
- Shield PV
- If EnergyShield → Value = PartSize * 75
- Else → Value = PartSize * 25
- If DefenseBonus > 0 → Value = Value * (4 + DefenseBonus ) div 4
- Else if DefenseBonus < 0 → Value = Value * (10 + DefenseBonus) div 10
- Swag PV
- Value = PartSize
- For t = 1 to Part^.S → Value = Value * 10 [Ed. Couldn't figure out what Part^.S is in this case. I think it is equal to 12.]
- Usables PV
- Value = (50 + UseBonus * UseBonus * UseBonus * 10 + PartSize * 5) * (UseRange + 5) div 10
- Repair Fuel PV
- Value = PartSize
- Consumables PV
- Value = (PartSize * FoodXValue) / div 5
- If MoraleBoost > 0: Value = Value + (MoraleBoost * (150 - 2 * PartSize))
- Else:
- TempVar = a temporary variable = Value * (MoraleBoost + 10) div 10
- If TempVar < (Value div 2): TempVar = Value div 2
- Value = TempVar
- Value = Value * FoodQuantity
- Modifier (Cyberware) PV
- Plusses = 0
- Minuses = 0
- PriceFactor = 2000
- BasePrice = an array = [10,25,45,70,100]
- If the part is a stat modifier →
- For each stat →
- StatMod = the amount this stat is being modified
- If StatMod > 0 → Plusses = Plusses + StatMod
- Else if StatMod < 0 → Minuses = Minuses + StatMod
- For each stat →
- Else, if the part is a skill modifier →
- SkillMod = the amount this skill is being modified (this can only be a positive integer)
- Plusses = SkillMod
- If Plusses > 5 →
- Value = Value + (PriceFactor * 50 * (Plusses - 5))
- Plusses = 5
- If Plusses > 0 → Value = Value + BasePrice[Plusses] * PriceFactor
- If Minuses > 0 → Value = Value - PriceFactor * 5 * Minuses
- Else, if there are no Minuses → Value = (Value * 3) div 2
- If the part is a character modifier (as opposed to a mecha modifier) → Value = (Value * (100 - PartSize)) div 100
- Else → Value = Value div 2
- If the part is a non-combat skill modifier → Value = Value div 2
- If Value < PriceFactor → Value = PriceFactor
- Weapon Add-On PV
See WeaponAddOnCost in ghweapon.pp.
- The base value is 120.
- If the add-on is a general add-on (i.e., it can be added to any type of weapon), multiply this value by 3.
- Adjust the value for the part's size: Value = Value * PartSize * 2
- Range: Value = Value * (RNGMod + 3) div 2
- Accuracy: Value = Value * (ACCMod + 3) div 2
- Speed: Value = Value * (SPDMod + 1)
- Damage Effects & Status Effects (see below for the cost tables)
- Base value of N is 10.
- Damage Effects (for each effect): N = ( N * CostOfEffect ) div 10
- Status Effects (for each effect): N = ( N * CostOfEffect ) div 10
- Special case (Blast): N = ( N * CostOfEffectPerRadius ) div 10
- Final values for N that are less than 5 are rounded up to 5.
- If N > 10, then: Value = Value * N * 2 div 10
- Base value of N is 10.
Additional PV calculations for all types of gears[]
See ComponentValue in gearutil.pp
- Mass Adjustment Value (MAV)
- MAV = the Mass Adjustment Value (MAV) found in the design file
- MassPerMV = 15
- If (PartScale = 0) and (MAV < 0) → MAV = MAV * 5
- If (MAV > 0) and (Value > 0) →
- Value = (Value * (MassPerMV * 4 - MAV)) div (MassPerMV * 4)
- If Value < 1 → Value = 1
- Else if MAV < 0 → Value = Value * (MassPerMV + abs(MAV)) div MassPerMV
- Material
- If Material = Biotech →
- If the part is a mecha → Value = PartSize * 250
- Else → Value = (Value * 3) div 2
- If Material = Biotech →
- Overstuffed
- N = the CMX of the part
- T = the CMX of the part's sub-components
- If N > T → Value = (Value * (10 + N - T)) div 10
- Scale
- If (Value > 0) and (PartScale > 0) →
- For t = 1 to PartScale → Value = Value * 5
- If (Value > 0) and (PartScale > 0) →
- Fudge
- Fudge = a numerical attribute defined in the design file that arbitrarily raises or lowers the value of the part
- Value = Value + Fudge
Attack attribute cost table[]
SWARM 15 BLAST 15 LINE 20 SCATTER 9 EXTEND 11 HYPER 250 ARMORPIERCING 20 MYSTERY 10 THROWN 15 RETURN 30 ARMORIGNORE 85 INTERCEPT 25 OVERLOAD 15 BRUTAL 20 FLAIL 25 ANTIAIR 12 SMOKE 2 GAS 10 DRONE 20 NOMETAL 10 STRAIN 7 COMPLEX 7
Blast effect cost table[]
10, 20, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95
Status effect cost table[]
Poison 15 Burn 19 Regen 5 Stoned 20 Haywire 20 Inhuman Visage 10 Twitchy Hands 10 Depression 10 Rejection 10 Body Aches 10 Anemia 10 Irrational Anger 10 Neural Lag 10 Major Neural Failure 10 Cerebrospinal Shock 10 Toxic Leakage 10 Shutdown 10 Rust 95 Stun 12 Sickness 15 Half-Blinded 10 Spinal Injury 10 Torn Ligaments 10 Crushed Bones 10 Heart Injury 10
Movement system cost table[]
Wheels 10 Tracks 10 Hover Jets 45 Flight Jets 65 Arc Thrusters 100 Overchargers 30
Damage Points (DP)[]
DP calculations by gear type[]
- Module DP
- ModuleSize = the size of the module (see the table)
- If ModuleSize = NoHP → DP = -1 (damage gets passed on to its contents)
- Else if ModuleSize = HalfSize → DP = (PartSize + 1) div 2
- Else if ModuleSize = EqualSize → DP = PartSize
- Else if ModuleSize = SizePlusOne → DP = PartSize + 1
- Else if ModuleSize = SizeTimesTwo → DP = PartSize * 2
- Else → DP = 0
- Mecha DP
Mecha don't have a DP value. Instead, damage is passed on to their individual parts.
- Character DP
In this case, DP is called HP.
- HP = (BodyStat + 5) div 2
- HP = HP + VitalitySkill
- Cockpit DP
Cockpits don't have DP. This may be because damage is passed on to their contents (i.e., characters). [Ed. Not 100% sure, though.]
- Weapon DP
- EMelee: DP = (DC + 1) div 2
- Missile: DP = -1 [Ed. Don't know exactly how this works.]
- Others: DP = DC
For missile weapons, damage is passed on to the weapon payload.
- Ammunition DP
- Missile: DP = (DC * NumShots) div 25 (Values less than 1 get rounded up to 1)
- Other: DP = 1
- Movement System DP
- MoveSystemDMG = the DMG value of the movement system (see table, below)
- If MoveSystemDMG = 0 → DP = 1
- Else → DP = PartSize * MoveSystemDMG
- Holder DP
- DP = 1
- Sensor DP
- MainSensor: DP = 60 - (5 * PartSize)
- TarCom, ECM: DP = 25
- Suppot DP
- If the part is an Engine → DP = 3
- Else → DP = 1
- Shield DP
Shields don't have DP. [Ed. Not sure why.]
- ExArmor DP
Shields don't have DP. [Ed. Not sure why.]
- Swag DP
- DP = 1
- Prop DP
- DP = PartSize
- Metaterrain DP
- DP = PartSize
- Electronics DP
- DP = 1
- Usables DP
- DP = PartSize + 1
- Repair Fuel DP
- DP = 0 [Ed. Not sure why.]
- Consumables DP
- DP = 0 [Ed. Not sure why.]
- Modifier DP
- DP = 0 [Ed. Not sure why.]
- Weapon Add-On DP
- DP = 1
Adjustments to DP based on scale and material[]
DP is further modified based on the scale of the item as well as its material.
- If Scale < 1 →
- If Material = Meat → DP = DP * 2
- Else → DP = DP * 3
- Else →
- If Material = Meat → DP = DP * 4
- Else if Material = Biotech → DP = DP * 6
- Else if Material = Metal → DP = DP * 5
- If Scale > 1 →
- For t = 2 to Scale → DP = DP * 5
Movement system DMG table[]
Wheels 1 Tracks 2 Hover Jets 0 Flight Jets 0 Arc Thrusters 0 Overchargers 0
Points of Complexity (CMX)[]
Michael Deutschmann says:
For all other parts, CMX is equal to 1.
Arc (ARC)[]
See WeaponArc in ghweapon.pp
Weapon arcs are determined by where they are equipped or installed.
- By default, an uninstalled weapon has an arc of F90.
- Weapons equipped in arms: ARC = F180
- Weapons equipped in tails: ARC = F360
- Weapons equipped in other places: ARC = F90
- Weapons installed in arms, heads or tails: ARC = F180
- Weapons installed in turrets: ARC = F360
- Weapons installed in other places: ARC = F90
Movement (MV), Sensors (SE) & Targeting (TR)[]
Michael Deutschmann says:
Malte Helmert says:
- You get a -1 MV penalty for every 7.5 extra tons of installed
stuff. But, for equipped stuff, the figure depends on mecha size (e.g., 8t for size 1, 8.5t for size 2, 9t for size 3, etc.). Note that Mounts and Hands weigh 0.5t.
- A gyroscope gets you a +1 MV bonus per level; so a Gyroscope +3 will chage a MV -5 to -3 or -2.
- Biotech mecha get a +1 to MV and TR.
- If cockpit is located in head, +1 bonus to MV and TR.
Base MV or TR score[]
- IMass = the intrinsic weight of your mecha (i.e., its weight
minus the weight of all equipped or carried items, but including installed items)
- EMass = the weight of all your equipment, equipped or carried in the inventory
- MassPerMV = 15
- MaxWeight = the maximum weight your mech can carry = MassPerMV + MechSize
- If MaxWeight < 1 → MaxWeight = 1
- If EMass < 0 → EMass = 0
- MVTRScore = -1 * (IMass div MassPerMV + EMass div MaxWeight)
- If the cockpit is located in the head → MVTR = MVTRScore + 1
Additional calculations to MV[]
- FormBonus = the bonus to MV that is attributed to the mecha's form (see table, above)
- MV = MVTRScore + FormBonus
- MV = MV + GyroscopeSize - 1
- If MV > 0 → MV = 0
Additional calculations to TR[]
- FormBonus = the bonus to TR that is attributed to the mecha's form (see table, above)
- TR = MVTRScore + FormBonus
- TR = TR + TargetingComputerSize
- If TR > 0 → TR = 0
Scale Factor (SF) and Class (Size)[]
SF and Size details[]
Joseph Hewitt says:
Michael Deutschmann says:
List of mecha sizes/classes[]
- Size 1 = "Pico Class"
- Size 2 = "Demi Class"
- Size 3 = "Mini Class"
- Size 4 = "Light Class"
- Size 5 = "Standard Class"
- Size 6 = "Heavy Class"
- Size 7 = "Super Class"
- Size 8 = "Mega Class"
- Size 9 = "Giga Class"
- Size 10 = "Tera Class"
[Ed: Shouldn't this list take Scale into account, too? I.e., Is an SF:1 mecha of Size 1 a "Pico" class vehicle just like a SF:2 mecha of Size 1?]
Speed (dpr)[]
Michael Deutschmann says:
Michael Deutschmann says:
Michael Deutschmann says:
Michael Deutschmann says:
Michael Deutschmann says:
Base Walking Speed[]
Mecha
- Mass = the mass of the mecha
- If Mass < 20 → Mass = 20
- Speed = (240 - Mass) div 3
- If the mech is a Zoanid → Speed = Speed + 20
- If Speed < 20 → Speed = 20
- MinLegs = MechSize * 2 - 2
- If MinLegs < 2 → MinLegs = 2
- TotalLegs = total number of leg points (damaged & undamaged)
- If the mecha is a Zoanid → TotalLegs = TotalLegs + number of arm points (damaged & undamaged)
- Speed = (Speed * TotalLegs) div MinLegs
- If Speed < 1 → Speed = 1
- ActiveLegs = the number of active (undamaged) legs
- If (ActiveLegs * 2) < (TotalLegs + 2) → Speed = 0
- If the Gyroscope is inactive → Speed = 0
Characters
- Speed = CharSpeedStat * 4
- TotalLegs = the number of leg points
- ActiveLegs = the number of active (undamaged) legs
- If (ActiveLegs * 2) < (TotalLegs + 2) → Speed = Speed div 10
- If Speed < 20 → Speed = 20
Base Rolling Speed[]
Mecha
- Mass = the mass of the mecha
- If Mass < 20 → Mass = 20
- Speed = (360 - Mass) div 3
- If Speed < 20 → Speed = 20
- If the mech is a GroundCar → Speed = (Speed * 3) div 2
- MinWheels = MechSize * 2 - 2
- If MinWheels < 2 → MinWheels = 2
- ActiveWheels = the active (undamaged) number of wheel points (including tracks)
- If ActiveWheels = 0 → exit [Ed. this is quite odd.]
- If ActiveWheels < MinWheels →
- Speed = (Speed * ActiveWheels) div MinWheels
- If Speed < 1 → Speed = 1
Characters
- Speed = CharSpeedStat * 5
- MinWheels = 10
- ActiveWheels = the number of active (undamaged) wheel points (including tracks)
- If ActiveWheels = 0 → exit
- If ActiveWheels < MinWheels →
- Speed = (Speed * ActiveWheels) div MinWheels
- If Speed < 1 → Speed = 1
Base Skimming Speed[]
Mecha
- Mass = the mass of the mecha
- Thrust = the number of thrust points
- If Thrust > Mass →
- Speed = (Thrust * 10) div Mass
- If the Gyroscope is inactive → Speed = Speed div 2
- Else → Speed = 0
Characters
- Mass = the mass of the character + 25
- Thrust = the number of thrust points
- ActiveWings = the number of undamaged wings
- Thrust = Thrust + ActiveWings * 90
- If Thrust > Mass → Speed = (Thrust * 10) div Mass
- Else → Speed = 0
Base Flying Speed[]
Mecha
- Mass = the mass of the mecha
- Thrust = the number of thrust points
- TotalWings = the number of wing points
- If TotalWings < MechaSize → Thrust = Thrust div 2
- If the mecha is an AeroFighter →
- If TotalWings > MechaSize → Thrust = Thrust * 2
- If the mecha is a HoverFighter or GerWalker → Thrust = (Thrust * 5) div 4
- If the mecha is an Ornithoid →
- If TotalWings > MechaSize → Thrust = (Thrust * 3) div 2
- Thrust = Thrust + TotalWings * 80
- If Thrust > Mass →
- Speed = (Thrust * 10) div Mass
- If Speed < 30 → Speed = 0
- TrueSpeed = a boolean value that is not true when determing Jump Time (see below)
- Else if (Speed < 150) and TrueSpeed → Speed = 150
- If the Gyroscope is inactive: Speed = 0
- Else → Speed = 0
Characters
- Mass = the mass of the character + 25
- Thrust = the number of thrust points
- TotalWings = the number of wing points
- If TotalWings < MechaSize → Thrust = Thrust div 2
- Thrust = Thrust + TotalWings * 80
- If Thrust > Mass →
- Speed = (Thrust * 10) div Mass
- If Speed < 30 → Speed = 0
- TrueSpeed = a boolean value that is not true when determing Jump Time (see below)
- Else if (Speed < 150) and TrueSpeed → Speed = 150
- If the Gyroscope is inactive → Speed = 0
- Else → Speed = 0
Overcharger speed bonus[]
Overchargers add a bonus to a mek's FULLSPEED action.
- Mass = the mass of the mecha
- Overchargers = the number of overchargers
- SpeedBonus = (Overchargers * 125 * 10) div Mass
Some additional scaling is done to keep things within the speed limits. (Not sure about the logic behind this.)
- For t = 1 to 10 →
- SpeedFactor = t * 20
- If SpeedBonus > SpeedFactor → SpeedBonus = SpeedFactor + ((SpeedBonus - SpeedFactor) div 2)
Additional speed calculations[]
- Speed = the speed of your mecha depending on the movement mode, using the above calculations
Some additional scaling is done to keep things within the speed limits. [Ed. Not sure about the logic behind this.] [Ed2. It appears to be logarithmic: the larger your speed, the more times you get hit by the speed penalty, so eventually you will need to go to great pains to raise your speed by the smallest amount. Much harsher than reality, where air friction is proportional to speed^2, but in reality, extra jets weigh much more, anyway.]
- For t = 1 to 10 →
- SpeedFactor = t * 50
- If Speed > SpeedFactor → Speed = SpeedFactor + ((Speed - SpeedFactor) div 2)
Mecha have additional speed limits based on the form of the mecha and the movement mode. Look up the correct value in the table and store the value as SpeedLimit. [Ed2: this is fairly trivial compared to the speed scaling above.]
- If Speed > SpeedLimit → Speed = SpeedLimit + ((Speed - SpeedLimit) div 2)
- If the macha is turning, then limit the speed to a maximum turn rate (not described in this article).
- If you're moving at Full Speed, then apply the overcharger speed bonus (described above).
- Additionally, if you're moving at Full Speed, then → Speed = (Speed * 3) / div 2
Some additional bonuses are then given for when you are turning. I'm not sure why the speed is first limited, then later multiplied.
Jump Time[]
- Speed = the base flying speed for your mech using the above calculation [Ed. Make sure to set TrueSpeed to FALSE.]
- If the mecha is a Zoanid → Speed = (Speed * 3) div 2
- Else if Speed < 150 → Speed = 0
- JumpTime = (Speed + 1) div 2
Range (RNG)[]
- If the weapon is Ballistic → Range = (DC + 1) div 2
- If the weapon is BeamGun → Range = DC div 2 + 2
- If the weapon is Missile → Range = DC div 3 + 3
Speed (SPD)[]
The default speed for all weapons is 2. [Ed. need more info!]
Damage Class (DC)[]
Absolute values for Damage Class are scaled depending on the Scale Factor of the weapon.
- If SF = 0 → DC = DC
- Else if SF > 0 → DC = DC * 2
- Else if SF > 1 → DC = DC * 5 ^ (SF - 1)
The effects are cumulative, so a hypothetical SF:4 weapon (REALLY HUGE!!) would have an absolute DC of (DC * 2 * 5 * 5 * 5). Assuming the weapon's base DC is 3, the text description of the weapon would read 'DC3x250'.
Oddly, the actual damage for SF:1 and higher weapons multiplies damage by 4 for SF 1, and by 5 for each scale above that. So a DC 4x10 weapon is closer to DC 4x20 for actual damage dealt.
Ammo (a) & Magazine (MAG)[]
The default clip-size for ammo is 1, unless it is loaded in a weapon, in which case the clip size is determined by the weapon's Magazine rating.
The default GrenadeSkill is 2 [Ed. Mecha Artillery???] for all ammo.
The default Magazine rating for Ballistic and Missile weapons is 10.
Armor[]
Armor calculations[]
- If the part is a Module →
- Armor = ArmorStat
- If the part is a Storage Module → Armor = Armor + 2
- Else, if the part is a Cockpit or Support Module → Armor = ArmorStat
- Else, if the part is a Shield → Armor = PartSize * 2
- Else, if the part is External Armor (ExArmor) → Armor = PartSize
- Else, if the part is MetaTerrain → Armor = PartSize
- Else → Armor = 0
- If Armor > 0 →
- If the part's parent is a mecha →
- If the parent mecha is a GroundHugger → Armor = Armor + 2
- If the parent mecha is an Arachnoid → Armor = Armor + 1
- If the part's parent is a mecha →
Adjustments to Armor based on scale and material[]
If the Armor value is greater than zero, it is further modified based on the scale of the item as well as its material.
- If Scale < 1 →
- If Material = Meat → Armor = Armor * 2
- Else → Armor = Armor * 3
- Else →
- If Material = Meat → Armor = Armor * 4
- Else if Material = Biotech → Armor = Armor * 6
- Else if Material = Metal → Armor = Armor * 5
- If Scale > 1 →
- For t = 2 to Scale → Armor = Armor * 5
Encumberence[]
The following furmulae are used to determine the amount of weight you can carry:
- For mecha: MaxWeight = 15 + MechSize
- For characters: MaxWeight = BodyStat + 2 + WeightLiftingSkill
Your Encumberence level is then calculated as follows:
- If MaxWeight < 1 → MaxWeight = 1
- EquipmentWeight = the weight of all your equipment, whether carried, installed or equipped
- EMass = EquipmentWeight - MaxWeight
- For characters: EMass = EMass - WeightLiftingSkill
- If EMass > 0 → Encumberence = EMass div MaxWeight
- Else → Encumberence = 0
Chance to Hit (CTH)[]
Michael Deutschmann says:
Movement Modes[]
Michael Deutschmann says:
Michael Deutschmann says:
Michael Deutschmann says:
Aquillion says:
Michael Deutschmann says:
Mecha movement modes table[]
WALK ROLL SKIM FLY Battroid True True True True Zoanoid True False False True GroundHugger False True True False Arachnoid True False False False AeroFighter False False False True Ornithoid True False False True GerWalk True False True True HoverFighter False False True True GroundCar False True False False
Mecha speed limits table[]
WALK ROLL SKIM FLY Battroid 200 100 150 150 Zoanoid 200 0 0 200 GroundHugger 200 150 200 0 Arachnoid 200 0 0 0 AeroFighter 200 0 0 300 Ornithoid 200 0 0 300 GerWalk 60 0 300 250 HoverFighter 200 0 300 250 GroundCar 200 200 0 0
Movement system thrust points table[]
SKIM FLY Wheels 0 0 Tracks 0 0 Hover Jets 75 10 Flight Jets 0 90 Arc Jets 80 80 Overchargers 7 7
Multiply the above values by the size of the module to get the number of thrust points.
Miscellaneous[]
Aquillon says: