Well, here’s the second part in the er… multi-part series of my analyses of how Laser Squad works. This time around, we’re going to look at the player stats and how they’re calculated and used within the gaming engine.

As you may realise, Laser Squad is pretty much a number cruncher with a nice gaming front end. In real terms, you could probably get a board for the map, counters and the like for the teams, weapons, etc. and work out the moves based on rolling dice and calculating scores. Fortunately, the computer does all that for you (with the added bonus of not showing you the ‘unseen’ opposing player’s pieces when you make your move). This reduces the tedium and increased the fun!

Let’s take ‘The Assassins’ as our example scenario. Corporal Jonlan has the following stats:

Constitution: 36
Stamina: 244
Morale: 250
Weapon Skill: 70
Close Combat Damage: 10
Strength: 56
Agility: 52
Toughness: 6
Morale Value: 40
Victory Points for Killing: 24
Size: 5
Action Points: 131

There are also some other stats that are worth noting but aren’t involved in calculation so much:

Can’t Pick up/Drop: false
Can’t Change/Drop/Pickup: false
Items lost with unit: false
Immune to morale loss from damage: false
Dead: false
Can be equipped: true
Manually deployable: true
Always reserve APs: false
Cautious Movement: false
Ignore threats: false
Infinite Ammo: false
Target Terrains: false
Target visible enemies only: false
Ignore items: false
Ignore 0 threat units: false
Total item size limit: 90
Item held: none

As you can imagine, there is a lot to take into account there but there is an obvious ‘one size fits all’ approach to the game pieces. So let’s get to business. How are in-game Action Points calculated?

Ok, we have the initial action points value of 131 (for Jonlan). Then we take away Jonlan’s burden (i.e. whatever he is carrying) which is calculated as (action points*weight carried)/(2*unit strength). We then remove Action Points based on wounding. Wounding is based on max constitution-current constitution)/toughness rounded to the nearest whole number. Naturally, this would be 0 at the start.

We then remove the weight of the armour and that should be your current Action Points for the turn.

Now Stamina is affected by fatigue (i.e. you have been carrying a lot of weight over a period of time). Fatigue is a counter that is incremented each turn if burden-adjusted Action Points (Action Points – Burden total) divided by 2 is greater than the current fatigue value (starting at 0). If this is the case, a calculation is made ((burden adjusted APs/2) – fatigue) and stamina is reduced if this value is less than the current fatigue count. Otherwise, the stamina value is increased and the fatigue count is reset to 0.

Other conditions that come into play are that if stamina is less than 32, your calculated action points are halved. Also, the game ensures you can never have less than 10% of your maximum action points (i.e. 10% of 131 or 13 in Jonlan’s case here).

I’ve not investigated the long-term effects of these calculations but over a game lasting 25-30 turns, I think the calculations are robust enough.

Opportunity Fire is basically calculated from your final action points less the burden. So if you had 41 action points for the turn and you have a burden score of 20, you would need to leave 21 Action Points to allow Opportunity Fire during the opponents turn.

Morale gets decreased by (Current Morale / (max constitution / damage)) when damage is done to a unit. I’ve been unable to find the level where panic kicks in but suspect it is something like 30% of the max Morale value.

Ok, I’ve bored for my country now. I suspect there are a number of mistakes in my calculations above so anyone who can confirm/correct what I said would be most appreciated. Also, anyone who can confirm how panicking works will be a star!

What’s next? How about a little about how the AI works?

Credit is due to the following:

Julian Gollop: Author and mighty fine game designer
William Fraser: Generously allowed me access to his commented reverse-engineered source code.

VN:F [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +3 (from 3 votes)
Remakes - How Laser Squad Works (Part 2), 10.0 out of 10 based on 3 ratings