| 1199 | } |
| 1200 | |
| 1201 | void BattleUnit::stopAttackPsi(GameState &state) |
| 1202 | { |
| 1203 | switch (psiStatus) |
| 1204 | { |
| 1205 | case PsiStatus::Control: |
| 1206 | if (psiTarget->owner == psiTarget->agent->owner) |
| 1207 | { |
| 1208 | break; |
| 1209 | } |
| 1210 | psiTarget->changeOwner(state, psiTarget->agent->owner); |
| 1211 | psiTarget->sendAgentEvent(state, GameEventType::AgentPsiOver, true); |
| 1212 | break; |
| 1213 | case PsiStatus::Probe: |
| 1214 | case PsiStatus::Panic: |
| 1215 | case PsiStatus::Stun: |
| 1216 | // Nothing immediate to be done |
| 1217 | break; |
| 1218 | case PsiStatus::NotEngaged: |
| 1219 | return; |
| 1220 | } |
| 1221 | psiTarget->psiAttackers.erase(id); |
| 1222 | psiStatus = PsiStatus::NotEngaged; |
| 1223 | psiTarget.clear(); |
| 1224 | psiItem.clear(); |
| 1225 | ticksAccumulatedToNextPsiCheck = 0; |
| 1226 | } |
| 1227 | |
| 1228 | void BattleUnit::changeOwner(GameState &state, StateRef<Organisation> newOwner) |
| 1229 | { |
no test coverage detected