Well, only aircraft, ships, and artillery have munitions, but I'd say it makes sense that these classes can get past air protection and attack (still subject to interception/reactive defense of course), so I'd say we just use the munition generation.Air protected stacks: I almost did a basic version of this, but I realized that my move unit function might take a plane off one ground unit and place it on another, so no air protected stacks fix for American Thanksgiving. Do we want to make it so no ground/sea unit can be protected or are there units that are allowed to be defended with an air protected stack? Also, do we want to make an air protected stack check when a new munition is generated, or do we want to do one under the 'after production' functions?
I'd say we keep it simple - any American fighter can transfer to any other American fighter, Any British fighter to any other British fighter (including fighter bombers), any German fighter to any German fighter. The same for bombers. The 4th FG and several others transitioned throughout the war to different types of aircraft. It should probably take the entire turn of both units as they transition to new mounts. I'd say they should have full health, yes.Veteran Swap: Start thinking about the groups of units that can swap veteran status between themselves. I assume veteran swapping must be done in a city/airbase. Do you want it to take the entire turn of both units involved? Should the units be at full health?
I'll probably work on veteran swap and formation flying (press '4' to make all aircraft in a certain radius follow the "leader's" command, which hopefully means 1 unit moves instead of 10 or 20) this weekend, since I can get most of the work done in separate files. Maybe I'll see if I can tidy up combat reporting or something.
Is it as simple as adding in civ.ui.text(func.splitlines(textAliases.newText)) so that it looks like this:
if tribe == tribeAliases.Allies and counterValue("AlliedScore") >= specialNumbers.invadeItalyThreshold and not civ.hasTech(tribeAliases.Allies, civ.getTech(73)) then
civ.ui.text(func.splitlines(textAliases.newText))
civ.giveTech(tribeAliases.Allies, civ.getTech(73))
end
if loser.type == unitAliases.Freighter then
incrementCounter("GermanScore",specialNumbers.germanScoreIncrementSinkFreighter)
elseif loser.type == unitAliases.B17F or loser.type == unitAliases.B17G then
justOnce (civ.ui.text("Testing1."))
incrementCounter("GermanScore",.75*specialNumbers.germanScoreIncrementKillHeavyBomber)
UnitType<id=50, name="P-47D11", prereq="Escort Fighters I", domain=1, attack=0, defense=7, hitpoints=20, firepower=2>
30
UnitType<id=35, name="Spitfire IX", prereq="<nil>", domain=1, attack=0, defense=6, hitpoints=20, firepower=2>
20
D:\Test of Time\lua\civlua.lua:18: attempt to call a nil value (local 'f')
stack traceback:
D:\Test of Time\lua\civlua.lua:18: in function 'civlua.justOnce'
D:\Test of Time\Scenario\OTR3\events.lua:4174: in upvalue 'justOnce'
D:\Test of Time\Scenario\OTR3\events.lua:5316: in function <D:\Test of Time\Scenario\OTR3\events.lua:5181>