| 2094 | } |
| 2095 | |
| 2096 | void Battle::refreshLeadershipBonus(StateRef<Organisation> org) |
| 2097 | { |
| 2098 | Rank highestRank = Rank::Rookie; |
| 2099 | for (auto &u : units) |
| 2100 | { |
| 2101 | if (u.second->owner != org || u.second->isDead() || u.second->retreated) |
| 2102 | { |
| 2103 | continue; |
| 2104 | } |
| 2105 | if ((int)u.second->agent->rank > (int)highestRank) |
| 2106 | { |
| 2107 | highestRank = u.second->agent->rank; |
| 2108 | } |
| 2109 | } |
| 2110 | switch (highestRank) |
| 2111 | { |
| 2112 | case Rank::Rookie: |
| 2113 | case Rank::Squaddie: |
| 2114 | leadershipBonus[org] = 0; |
| 2115 | break; |
| 2116 | case Rank::SquadLeader: |
| 2117 | leadershipBonus[org] = 5; |
| 2118 | break; |
| 2119 | case Rank::Sergeant: |
| 2120 | leadershipBonus[org] = 10; |
| 2121 | break; |
| 2122 | case Rank::Captain: |
| 2123 | leadershipBonus[org] = 15; |
| 2124 | break; |
| 2125 | case Rank::Colonel: |
| 2126 | leadershipBonus[org] = 25; |
| 2127 | break; |
| 2128 | case Rank::Commander: |
| 2129 | leadershipBonus[org] = 50; |
| 2130 | break; |
| 2131 | } |
| 2132 | } |
| 2133 | |
| 2134 | void Battle::spawnReinforcements(GameState &state) |
| 2135 | { |