Backporting droid stuff

Backporting droid stuff

Can WZ 3.2 droid properties be backported to WZ 3.1? Let the pondering commence....

Note: For own-built droids, we can just hook in to buildDroid() and addDroid() to get accurate details for most properties, with .cost being the main exception. The table below is more about other player's droids where we have far less info to hand.

Property

Notes

Property

Notes

born

Will use first sighting time.

droidType

Super-cyborgs need to appear as DROID_CYBORG, not DROID_WEAPON.

Might be able to work out some info from health/armour/thermal properties. Also name, particularly with cyborgs.

What to do with scav units?

When NB wants to build droids, will need to try and work this out based on components - primarily turret1 and propulsion, but sometimes body (eg. for either cyborgs or transports).

group

Even if droid not in a group, the group property should exist (with value null) – easy to do.

armed

Deprecated in 3.2, but can use this field in 3.1 to determine if droid is VTOL, and also give rough estimate of armed state in .weapons[]

isVTOL

If .armed != null, then its a VTOL, can also use isVTOL() if the droid is not dead.

cost

Burr. *run for the trees*

isRadarDetector

Possibly, based on droid name.

isCB

Possibly, based on droid name.

isSensor

Possibly, based on droid name or DORDER_OBSERVE.

range

Start with min range, then improve accuracy during attacks (dist between attacker and victim).

canHitAir

Possibly, if it attacks one of our VTOLs, or by droid name.

canHitGround

Possibly, if it attacks one of our ground/hover units or structures, or by droid name.

hasIndirect

Ditto. Also by spotting DORDER_FIRESUPPORT.

body

Might be able to work out some info from health/armour/thermal properties and also droid name.

propulsion

VTOL should be trivial to determine (.armed property, isVTOL() or transporter).

Hover much more difficult – will need to identify a water tile then do droidCanReach() to see if droid is a hovercraft. Alternatively, by droid name.

Land propulsions very difficult to determine – maybe by name, other than that it's guesswork.

cargoSize

Suggest this property is skipped - transports painful to work with pre-3.2

cargoCapacity

Suggest this property is skipped - transports painful to work with pre-3.2

cargoSpace

Suggest this property is skipped - transports painful to work with pre-3.2

cargoCount

Suggest this property is skipped - transports painful to work with pre-3.2

bodySize

Might be able to work this out if we know .body. Alternatively .health, .thermal and .armour might give clues.

weapons

Only way I can think of is to look at droid name and try and determine weapon id (only one turret can be identified this way). The .lastFired property will be a static value, but maybe update if the droid attacks us. The .armed will be fed through from the main .armed property.