MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / handleBaseDefense

Method handleBaseDefense

src/Geoscape/GeoscapeState.cpp:2126–2148  ·  view source on GitHub ↗

* Handle base defense * @param base Base to defend. * @param ufo Ufo attacking base. */

Source from the content-addressed store, hash-verified

2124 * @param ufo Ufo attacking base.
2125 */
2126void GeoscapeState::handleBaseDefense(Base *base, Ufo *ufo)
2127{
2128 // Whatever happens in the base defense, the UFO has finished its duty
2129 ufo->setStatus(Ufo::DESTROYED);
2130
2131 if (base->getAvailableSoldiers(true) > 0)
2132 {
2133 SavedBattleGame *bgame = new SavedBattleGame();
2134 _game->getSavedGame()->setBattleGame(bgame);
2135 bgame->setMissionType("STR_BASE_DEFENSE");
2136 BattlescapeGenerator bgen = BattlescapeGenerator(_game);
2137 bgen.setBase(base);
2138 bgen.setAlienRace(ufo->getAlienRace());
2139 bgen.run();
2140 _pause = true;
2141 _game->pushState(new BriefingState(_game, 0, base));
2142 }
2143 else
2144 {
2145 // Please garrison your bases in future
2146 popup(new BaseDestroyedState(_game, base));
2147 }
2148}
2149
2150/**
2151 * Determine the alien missions to start this month.

Callers 1

btnOkClickMethod · 0.80

Calls 11

getAvailableSoldiersMethod · 0.80
setBattleGameMethod · 0.80
getSavedGameMethod · 0.80
setMissionTypeMethod · 0.80
pushStateMethod · 0.80
setStatusMethod · 0.45
setBaseMethod · 0.45
setAlienRaceMethod · 0.45
getAlienRaceMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected