Skip to content
Snippets Groups Projects
Commit b7b1057c authored by hexall90's avatar hexall90
Browse files

Beginning of attackReport

parent c10760b8
No related branches found
No related tags found
3 merge requests!1155Pregmod master,!1039Hexall90's security expansion mod,!871Security expansion
......@@ -59,49 +59,24 @@
<<if ndef $expectedEquip>>
<<set $expectedEquip = 0>>
<</if>>
<<if ndef $phase>>
<<set $phase = 0>>
<</if>>
<<if ndef $recon>>
<<set $recon = 0>>
<</if>>
<<if ndef $attackV>>
<<set $attackV = 0>>
<</if>>
<<if ndef $defenseV>>
<<set $defenseV = 0>>
<</if>>
<<if ndef $morale>>
<<set $morale = 0>>
<</if>>
<<if ndef $enemyAttackV>>
<<set $enemyAttackV = 0>>
<</if>>
<<if ndef $enemyDefenseV>>
<<set $enemyDefenseV = 0>>
<</if>>
<<if ndef $enemyMorale>>
<<set $enemyMorale = 0>>
<</if>>
<<if ndef $losses>>
<<set $losses = 0>>
<</if>>
/* units */
<<if ndef $secBots && $arcologyUpgrade.drones != 1>>
<<set $secBots = {
active: 0,
isDeployed: 0,
troops: 0,
maxTroops: 0,
equip: 0} >>
<<elseif ndef $secBots && $arcologyUpgrade.drones == 1>>
<<set $secBots = {
active: 1,
isDeployed: 0,
troops: 30,
maxTroops: 30,
equip: 0} >>
<<if ndef $secBots>>
<<if $arcologyUpgrade.drones == 0>>
<<set $secBots = {
active: 0,
isDeployed: 0,
troops: 0,
maxTroops: 0,
equip: 0} >>
<elseif $arcologyUpgrade.drones == 1>>
<<set $secBots = {
active: 1,
isDeployed: 0,
troops: 50,
maxTroops: 50,
equip: 0} >>
<</if>>
<</if>>
<<if ndef $militiaUnits>>
......@@ -109,40 +84,37 @@
<<set $militiaUnits[0] = {
active: 0,
isDeployed: 0,
isTired: 0,
troops: 0,
maxTroops: 0,
equip: 0,
training: 0,
loyalty: 0,
medics: 0,
engineers: 0} >>
escorts: 0}>>
<</if>>
<<if ndef $slaveUnits>>
<<set $slaveUnits = []>>
<<set $slaveUnits[0] = {
active: 0,
isDeployed: 0,
isTired: 0,
troops: 0,
maxTroops: 0,
equip: 0,
training: 0,
loyalty: 0,
medics: 0,
engineers: 0} >>
escorts: 0}>>
<</if>>
<<if ndef $mercUnits>>
<<set $mercUnits = []>>
<<set $mercUnits[0] = {
active: 0,
isDeployed: 0,
isTired: 0,
troops: 0,
maxTroops: 0,
equip: 0,
training: 0,
loyalty: 0,
medics: 0,
engineers: 0} >>
escorts: 0}>>
<</if>>
\ No newline at end of file
......@@ -31,7 +31,7 @@
<<set $attackThisWeek = 1>>
<<set $lastAttackWeeks = 0>>
<<set $leadingTroops = "assistant">>
<<set $deployableUnits = 1 + $readiness>>
<<set $deployableUnits = 1 + $readiness>> /* +1 is for testing */
<<set $chosenTactic = either("Bait and Bleed", "Guerrilla", "choke Points", "Interior Lines", "Pincer Manouver", "Defense In Depth", "Blitzkrieg", "Human Wave")>>
/* _type is the chance out of 100 of an attack of that type happening */
......@@ -106,7 +106,6 @@
<<set $attackType = "freedom fighters">>
<</if>>
<<else>>
<<set $attackType = "none">>
<<set $lastAttackWeeks++>>
<</if>>
......
......@@ -121,22 +121,23 @@ It seems your troops and your adversary will fight
Unfortunately you have no good information on what is coming your way, the confused reports of your citizens gives you only a vague number. Around <strong><<print Math.round($attackTroops * (1 + either(-1,1) * random(3) * 0.1))>> men</strong> are coming.
<</if>>
They seems to be
<<set _expectedEquip = 0>>
<<if $riskSim == 1 && $riskSimExpectedAttack == $attackType>>
<<set $expectedEquip = $attackEquip>>
<<set _expectedEquip = $attackEquip>>
<<elseif $perimeterDrones == 1>>
<<set $expectedEquip = $attackEquip + either(-1,1)>>
<<set _expectedEquip = $attackEquip + either(-1,1)>>
<<else>>
<<set $expectedEquip = $attackEquip + either(-1,1) * random(2)>>
<<set _expectedEquip = $attackEquip + either(-1,1) * random(2)>>
<</if>>
<<if $expectedEquip == 0>>
<<if _expectedEquip == 0>>
<strong>poorly armed</strong>. old rusty small arms are the norm with just a few barely working civilian vehicles.
<<elseif $expectedEquip == 1>>
<<elseif _expectedEquip == 1>>
<strong>lightly armed</strong>. mostly small arms with some repurposed civilian vehicles and a scattered few machine guns. There's no sign of heavy vehicles, artillery or aircrafts.
<<elseif $expectedEquip == 2>>
<<elseif _expectedEquip == 2>>
<strong>decently armed</strong>. good quality small arms, machine guns a few mortars. There seems to be some heavy military vehicles coming as well.
<<elseif $expectedEquip == 3>>
<<elseif _expectedEquip == 3>>
<strong>well armed</strong>. high quality small arms, snipers, demolitions teams, heavy duty machine guns and mortars. Heavy military vehicles are numerous and a few artillery piecies are accompaning the detachment.
<<elseif $expectedEquip == 4>>
<<elseif _expectedEquip == 4>>
<strong>extremely well armed</strong>. excellent small arms and specialized teams with heavy duty infantry support weapons. Heavy presence of armored military vehicles, artillery pieces and even some attack helicopters.
<</if>>
......@@ -224,8 +225,11 @@ You quickly lay down a plan of action:
<br><br>
With your current readiness level you can <<if $deployedUnits > 0>>still<</if>> send <strong><<print $deployableUnits>></strong>. Available units:
<<set _mL = $militiaUnits.length>>
<<set _sL = $slaveUnits.length>>
<<set _meL = $mercUnits.length>>
<<if $deployableUnits > 0>>
<<if $secBots.isDeployed == 0>>
<<if $secBots.isDeployed == 0 && $secBots.troops > 0>>
<br>
<<secBotsDescription>>
<br>
......@@ -236,10 +240,8 @@ With your current readiness level you can <<if $deployedUnits > 0>>still<</if>>
<<goto "attackHandler">>
<</link>>
<</if>>
<br>
<<set _mL = $militiaUnits.length>>
<<for _i = 0; _i < _mL; _i++>>
<<if $militiaUnits[_i].active == 1 && $militiaUnits[_i].isDeployed == 0>>
<<if $militiaUnits[_i].active == 1 && $militiaUnits[_i].isDeployed == 0 && $militiaUnits[_i].troops > 0>>
<br>
<<militiaUnitsDescription $militiaUnits[_i]>>
<br>
......@@ -251,10 +253,8 @@ With your current readiness level you can <<if $deployedUnits > 0>>still<</if>>
<</link>>
<</if>>
<</for>>
<<set _ms = $slaveUnits.length>>
<br>
<<for _i = 0; _i < _mL; _i++>>
<<if $slaveUnits[_i].active == 1 && $slaveUnits[_i].isDeployed == 0>>
<<for _i = 0; _i < _sL; _i++>>
<<if $slaveUnits[_i].active == 1 && $slaveUnits[_i].isDeployed == 0 && $slaveUnits[_i].troops > 0>>
<br>
<<slaveUnitsDescription $slaveUnits[_i]>>
<br>
......@@ -266,9 +266,8 @@ With your current readiness level you can <<if $deployedUnits > 0>>still<</if>>
<</link>>
<</if>>
<</for>>
<<set _mL = $mercUnits.length>>
<<for _i = 0; _i < _mL; _i++>>
<<if $mercUnits[_i].active == 1 && $mercUnits[_i].isDeployed == 0>>
<<for _i = 0; _i < _meL; _i++>>
<<if $mercUnits[_i].active == 1 && $mercUnits[_i].isDeployed == 0 && $mercUnits[_i].troops > 0>>
<br>
<<mercUnitsDescription $mercUnits[_i]>>
<br>
......@@ -313,7 +312,7 @@ Units about to be deployed:
<</link>>
<</if>>
<</for>>
<<for _i = 0; _i < _mL; _i++>>
<<for _i = 0; _i < _sL; _i++>>
<<if $slaveUnits[_i].isDeployed == 1>>
<br>
<<slaveUnitsDescription $slaveUnits[_i]>>
......@@ -326,7 +325,7 @@ Units about to be deployed:
<</link>>
<</if>>
<</for>>
<<for _i = 0; _i < _mL; _i++>>
<<for _i = 0; _i < _meL; _i++>>
<<if $mercUnits[_i].isDeployed == 1>>
<br>
<<mercUnitsDescription $mercUnits[_i]>>
......
:: attackReport [nobr]
/*Init*/
<<set $phase = 0>>
<<set $recon = 0>>
<<set $attackV = 0>>
<<set $defenseV = 0>>
<<set $morale = 0>>
<<set $enemyAttackV = 0>>
<<set $enemyDefenseV = 0>>
<<set $enemyMorale = 0>>
<<set $totalLosses = 0>>
<<set $militiaLosses = 0>>
<<set $slaveLosses = 0>>
<<set $mercLosses = 0>>
<<set _phase = 0>>
<<set _attack = 0>>
<<set _defense = 0>>
<<set _morale = $baseMorale>>
<<set _hp = 0>>
<<set _enemyAttack = 0>>
<<set _enemyDefense = 0>>
<<set _enemyMorale = 0>>
<<set _enemyHp = 0>>
<<set _mL = $militiaUnits.length>>
<<set _sL = $slaveUnits.length>>
<<set _meL = $mercUnits.length>>
/* calculates PC army stats */
<<if $secBots.isDeployed == 1>>
<<set _attack += $secBotsBaseAttack + $secBotsBaseAttack * $secBots.equip * 0.5>>
<<set _defense += $secBotsBaseDefense + $secBotsBaseDefense * $secBots.equip * 0.5>>
<<set _morale += $secBotsMorale>>
<<set _hp += $secBotsBaseHp * $secBots.troops>>
<</if>>
<<for _i = 0; _i < _mL; _i++>>
<<if $militiaUnits[_i].isDeployed == 1>>
<<set _attack += $militiaBaseAttack + $militiaBaseAttack * $militiaUnits[_i].equip * 0.5>>
<<set _defense += $militiaBaseDefense + $militiaBaseDefense * $militiaUnits[_i].equip * 0.5>>
<<set _morale += $militiaBaseMorale + $militiaBaseMorale * $militiaUnits[_i].escorts * 0.5>>
<<set _hp += ($militiaBaseHp + $militiaBaseHp * $militiaUnits[_i].medics * 0.5) * $militiaUnits[_i].troops >>
<</if>>
<</for>>
<<for _i = 0; _i < _sL; _i++>>
<<if $slaveUnits[_i].isDeployed == 1>>
<<set _attack += $slaveBaseAttack + $slaveBaseAttack * $slaveUnits[_i].equip * 0.5>>
<<set _defense += $slaveBaseDefense + $slaveBaseDefense * $slaveUnits[_i].equip * 0.5>>
<<set _morale += $slaveBaseMorale + $slaveBaseMorale * $slaveUnits[_i].escorts * 0.5>>
<<set _hp += ($slaveBaseHp + $slaveBaseHp * $slaveUnits[_i].medics * 0.25) * $slaveUnits[_i].troops>>
<</if>>
<</for>>
<<for _i = 0; _i < _meL; _i++>>
<<if $mercUnits[_i].isDeployed == 1>>
<<set _attack += $mercBaseAttack + $mercBaseAttack * $mercUnits[_i].equip * 0.5>>
<<set _defense += $mercBaseDefense + $mercBaseDefense * $mercUnits[_i].equip * 0.5>>
<<set _morale += $mercBaseMorale + $mercBaseMorale * $mercUnits[_i].escorts * 0.5>>
<<set _hp += ($mercBaseHp + $mercBaseHp * $slaveUnits[_i].medics * 0.25) * $mercUnits[_i].troops>>
<</if>>
<</for>>
/* calculates enemy army stats */
<<if $attackType == "raiders">>
<<elseif $attackType == "free city">>
<<set _enemyAttack = $fcBaseAttack * $fcBaseAttack * $attackEquip * 0.5>>
<<set _enemyDefense = $fcBaseDefense + $fcBaseDefense * $attackEquip * 0.5>>
<<set _enemyMorale = $fcBaseMorale>>
<<set _enemyHp = $fcBaseHp * $attackTroops>>
<<elseif $attackType == "old world">>
<<set _enemyAttack = $owBaseAttack + $owBaseAttack * $attackEquip * 0.5>>
<<set _enemyDefense = $owBaseDefense + $owBaseDefense * $attackEquip * 0.5>>
<<set _enemyMorale = $owBaseMorale>>
<<set _enemyHp = $owBaseHp * $attackTroops>>
<<elseif $attackType == "freedom fighters">>
<<set _enemyAttack = $ffBaseAttack + $ffBaseAttack * $attackEquip * 0.5>>
<<set _enemyDefense = $ffBaseDefense + $ffBaseDefense * $attackEquip * 0.5>>
<<set _enemyMorale = $ffBaseMorale>>
<<set _enemyHp = $ffBaseHp * $attackTroops>>
<</if>>
/* apply leader, terrain and tactics bonuses */
/* simulates the combat by pitting attk against def
<<for _i = 0; _i < $maxTurns; _i++>>
<</for>>
/* resets variables */
<<set $attackType = "none">>
<<set $chosenTactic = "none">>
<<set $leadingTroops = "none">>
<<set $attackTroops = 0>>
<<set $attackEquip = 0>>
<<set $deployableUnits = 0>>
<<set $deployedUnits = 0>>
<<set $battleTerrain = "none">>
<<set $attackThisWeek = 0>>
<<set $deployableUnits = 0>>
<<set $deployedUnits = 0>>
<<set $secBots.isDeployed = 0>>
<<for _i = 0; _i < _mL; _i++>>
<<set $militiaUnits[_i].isDeployed = 0>>
<</for>>
<<for _i = 0; _i < _sL; _i++>>
<<set $slaveUnits[_i].isDeployed = 0>>
<</for>>
<<for _i = 0; _i < _meL; _i++>>
<<set $mercUnits[_i].isDeployed = 0>>
<</for>>
\ No newline at end of file
......@@ -35,16 +35,7 @@
<<set $deployableUnits = 0>>
<<set $deployedUnits = 0>>
<<set $battleTerrain = "none">>
<<set $expectedEquip = 0>>
<<set $phase = 0>>
<<set $recon = 0>>
<<set $attackV = 0>>
<<set $defenseV = 0>>
<<set $morale = 0>>
<<set $enemyAttackV = 0>>
<<set $enemyDefenseV = 0>>
<<set $enemyMorale = 0>>
<<set $losses = 0>>
<<set $maxTurns = 10>>
/* Units */
<<if def $secBots>>
......@@ -55,6 +46,7 @@
<<set $secBots.equip = 0>>
<<else>>
<<set $secBots = {
platoonName: "security drones",
active: 0,
isDeployed: 0,
troops: 0,
......@@ -65,109 +57,106 @@
<<if def $militiaUnits>>
<<set _mL = $militiaUnits.length>>
<<for _i = 0; _i < _mL; _i++>>
<<if _i == 1>>
<<set $militiaUnits[_i].platoonName = _i + "st Citizens' platoon">>
<<if _i == 0>>
<<set $militiaUnits[_i].platoonName = _i + "st citizens' platoon">>
<<elseif _i == 1>>
<<set $militiaUnits[_i].platoonName = _i + "nd citizens' platoon">>
<<elseif _i == 2>>
<<set $militiaUnits[_i].platoonName = _i + "nd Citizens' platoon">>
<<elseif _i == 3>>
<<set $militiaUnits[_i].platoonName = _i + "rd Citizens' platoon">>
<<set $militiaUnits[_i].platoonName = _i + "rd citizens' platoon">>
<<else>>
<<set $militiaUnits[_i].platoonName = _i + "th Citizens' platoon">>
<<set $militiaUnits[_i].platoonName = _i + "th citizens' platoon">>
<</if>>
<<set $militiaUnits[_i].active = 0>>
<<set $militiaUnits[_i].isDeployed = 0>>
<<set $militiaUnits[_i].isTired = 0>>
<<set $militiaUnits[_i].troops = 0>>
<<set $militiaUnits[_i].maxTroops = 0>>
<<set $militiaUnits[_i].equip = 0>>
<<set $militiaUnits[_i].training = 0>>
<<set $militiaUnits[_i].loyalty = 0>>
<<set $militiaUnits[_i].medics = 0>>
<<set $militiaUnits[_i].engineers = 0>>
<<set $militiaUnits[_i].escorts = 0>>
<</for>>
<<else>>
<<set $militiaUnits = []>>
<<set $militiaUnits[0] = {
platoonName: "1st citizens' platoon",
active: 0,
isDeployed: 0,
isTired: 0,
troops: 0,
maxTroops: 0,
equip: 0,
training: 0,
loyalty: 0,
medics: 0,
engineers: 0} >>
escorts: 0} >>
<</if>>
<<if def $slaveUnits>>
<<set _mL = $slaveUnits.length>>
<<for _i = 0; _i < _mL; _i++>>
<<if _i == 1>>
<<if _i == 0>>
<<set $slaveUnits[_i].platoonName = _i + "st slave platoon">>
<<elseif _i == 2>>
<<elseif _i == 1>>
<<set $slaveUnits[_i].platoonName = _i + "nd slave platoon">>
<<elseif _i == 3>>
<<elseif _i == 2>>
<<set $slaveUnits[_i].platoonName = _i + "rd slave platoon">>
<<else>>
<<set $slaveUnits[_i].platoonName = _i + "th slave platoon">>
<</if>>
<<set $slaveUnits[_i].isDeployed = 0>>
<<set $slaveUnits[_i].isTired = 0>>
<<set $slaveUnits[_i].troops = 0>>
<<set $slaveUnits[_i].equip = 0>>
<<set $slaveUnits[_i].training = 0>>
<<set $slaveUnits[_i].loyalty = 0>>
<<set $slaveUnits[_i].medics = 0>>
<<set $slaveUnits[_i].engineers = 0>>
<<set $slaveUnits[_i].escorts = 0>>
<</for>>
<<else>>
<<set $slaveUnits = []>>
<<set $slaveUnits[0] = {
platoonName: "1st slave platoon",
active: 0,
isDeployed: 0,
isTired: 0,
troops: 0,
maxTroops: 0,
equip: 0,
training: 0,
loyalty: 0,
medics: 0,
engineers: 0} >>
escorts: 0} >>
<</if>>
<<if def $mercUnits>>
<<set _mL = $mercUnits.length>>
<<for _i = 0; _i < _mL; _i++>>
<<if _i == 1>>
<<if _i == 0>>
<<set $mercUnits[_i].platoonName = _i + "st mercenary platoon">>
<<elseif _i == 2>>
<<elseif _i == 1>>
<<set $mercUnits[_i].platoonName = _i + "nd mercenary platoon">>
<<elseif _i == 3>>
<<elseif _i == 2>>
<<set $mercUnits[_i].platoonName = _i + "rd mercenary platoon">>
<<else>>
<<set $mercUnits[_i].platoonName = _i + "th mercenary platoon">>
<</if>>
<<set $mercUnits[_i].isDeployed = 0>>
<<set $mercUnits[_i].isTired = 0>>
<<set $mercUnits[_i].troops = 0>>
<<set $mercUnits[_i].equip = 0>>
<<set $mercUnits[_i].training = 0>>
<<set $mercUnits[_i].loyalty = 0>>
<<set $mercUnits[_i].medics = 0>>
<<set $mercUnits[_i].engineers = 0>>
<<set $mercUnits[_i].escorts = 0>>
<</for>>
<<else>>
<<set $mercUnits = []>>
<<set $mercUnits[0] = {
platoonName: "1st mercenary platoon",
active: 0,
isDeployed: 0,
isTired: 0,
troops: 0,
maxTroops: 0,
equip: 0,
training: 0,
loyalty: 0,
medics: 0,
engineers: 0} >>
escorts: 0} >>
<</if>>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment