21 #include <yaml-cpp/yaml.h> 26 class RuleAlienMission;
38 class AlienDeployment;
50 std::string _region, _race;
52 size_t _nextUfoCounter;
53 size_t _spawnCountdown;
55 int _uniqueID, _missionSiteZone;
67 YAML::Node
save()
const;
71 const std::string &
getRegion()
const {
return _region; }
73 void setRegion(
const std::string ®ion,
const Mod &rules);
75 const std::string &
getRace()
const {
return _race; }
77 void setRace(
const std::string &race) { _race = race; }
98 void start(
size_t initialCount = 0);
117 void spawnAlienBase(
Game &engine,
const MissionArea &area, std::pair<double, double> pos);
119 std::pair<double, double> getWaypoint(
const UfoTrajectory &trajectory,
const size_t nextWaypoint,
const Globe &globe,
const RuleRegion ®ion);
121 std::pair<double, double> getLandPoint(
const Globe &globe,
const RuleRegion ®ion,
size_t zone);
125 void logMissionError(
int zone,
const RuleRegion ®ion);
void ufoShotDown(Ufo &ufo)
Handle UFO shot down.
Definition: AlienMission.cpp:537
const RuleAlienMission & getRules() const
Gets the mission's ruleset.
Definition: AlienMission.h:69
Represents an alien base on the world.
Definition: AlienBase.h:31
~AlienMission()
Cleans up the mission info.
Definition: AlienMission.cpp:55
Represents an ongoing alien mission.
Definition: AlienMission.h:46
const std::string & getRegion() const
Gets the mission's region.
Definition: AlienMission.h:71
bool isOver() const
Is this mission over?
Definition: AlienMission.cpp:135
void setAlienBase(const AlienBase *base)
Sets the alien base for this mission.
Definition: AlienMission.cpp:632
void decreaseLiveUfos()
Decrease number of live UFOs.
Definition: AlienMission.h:102
const AlienBase * getAlienBase() const
Gets the alien base for this mission.
Definition: AlienMission.cpp:641
The game data that gets written to disk when the game is saved.
Definition: SavedGame.h:99
Represents an alien mission site on the world.
Definition: MissionSite.h:33
Contains all the game-specific static data that never changes throughout the game, like rulesets and resources.
Definition: Mod.h:87
Interactive globe view of the world.
Definition: Globe.h:43
int getId() const
Gets the unique ID for this mission.
Definition: AlienMission.cpp:621
AlienMission(const RuleAlienMission &rule)
Creates a mission of the specified type.
Definition: AlienMission.cpp:50
void setRegion(const std::string ®ion, const Mod &rules)
Sets the mission's region.
Definition: AlienMission.cpp:716
Defines a rectangle in polar coordinates.
Definition: RuleRegion.h:33
void think(Game &engine, const Globe &globe)
Handle UFO spawning for the mission.
Definition: AlienMission.cpp:161
Holds information about a specific trajectory.
Definition: UfoTrajectory.h:47
void ufoReachedWaypoint(Ufo &ufo, Game &engine, const Globe &globe)
Handle UFO reaching a waypoint.
Definition: AlienMission.cpp:421
void setRace(const std::string &race)
Sets the mission's race.
Definition: AlienMission.h:77
void setWaveCountdown(size_t minutes)
Sets the minutes until next wave spawns.
Definition: AlienMission.cpp:597
Information about a mission wave.
Definition: RuleAlienMission.h:34
void start(size_t initialCount=0)
Initialize with values from rules.
Definition: AlienMission.cpp:382
Stores fixed information about a mission type.
Definition: RuleAlienMission.h:67
const std::string & getRace() const
Gets the mission's race.
Definition: AlienMission.h:75
void increaseLiveUfos()
Increase number of live UFOs.
Definition: AlienMission.h:100
Represents an alien UFO on the map.
Definition: Ufo.h:40
The core of the game engine, manages the game's entire contents and structure.
Definition: Game.h:41
Represents a specific type of Alien Deployment.
Definition: AlienDeployment.h:63
void load(const YAML::Node &node, SavedGame &game)
Loads the mission from YAML.
Definition: AlienMission.cpp:77
void setMissionSiteZone(int zone)
Keep track of the city/whatever that we're going to target.
Definition: AlienMission.cpp:819
size_t getWaveCountdown() const
Gets the minutes until next wave spawns.
Definition: AlienMission.h:79
YAML::Node save() const
Saves the mission to YAML.
Definition: AlienMission.cpp:110
Represents a specific region of the world.
Definition: RuleRegion.h:71
void addScore(double lon, double lat, SavedGame &game) const
Handle Points for mission successes.
Definition: AlienMission.cpp:652
Definition: BaseInfoState.cpp:40
void ufoLifting(Ufo &ufo, SavedGame &game)
Handle UFO lifting from the ground.
Definition: AlienMission.cpp:563
void setId(int id)
Sets the unique ID for this mission.
Definition: AlienMission.cpp:612