/** * @brief Terror attack mission is over and is a success: change interest values. * @note Terror attack mission */ void CP_TerrorMissionIsSuccess (mission_t *mission) { INT_ChangeIndividualInterest(-0.2f, INTERESTCATEGORY_BASE_ATTACK); INT_ChangeIndividualInterest(0.03f, INTERESTCATEGORY_HARVEST); CP_MissionRemove(mission); }
/** * @brief XVI Spreading mission is over and is a success: change interest values. * @note XVI Spreading mission */ void CP_XVIMissionIsSuccess (mission_t *mission) { INT_ChangeIndividualInterest(-0.3f, INTERESTCATEGORY_XVI); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_HARVEST); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BUILDING); CP_MissionRemove(mission); }
/** * @brief Supply mission is over and is a failure (from an alien point of view): change interest values. * @note Supply mission */ void CP_SupplyMissionIsFailure (mission_t *mission) { INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_SUPPLY); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_INTERCEPT); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BASE_ATTACK); CP_MissionRemove(mission); }
/** * @brief Harvesting mission is over and is a failure: change interest values. * @note Harvesting mission */ void CP_HarvestMissionIsFailure (mission_t* mission) { INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_INTERCEPT); INT_ChangeIndividualInterest(0.03f, INTERESTCATEGORY_BASE_ATTACK); INT_ChangeIndividualInterest(0.03f, INTERESTCATEGORY_TERROR_ATTACK); CP_MissionRemove(mission); }
/** * @brief Build Base mission is over and is a failure (from an alien point of view): change interest values. * @note Build Base mission */ void CP_BuildBaseMissionIsFailure (mission_t* mission) { /* Restore some alien interest for build base that has been removed when mission has been created */ INT_ChangeIndividualInterest(0.5f, INTERESTCATEGORY_BUILDING); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BASE_ATTACK); CP_MissionRemove(mission); }
/** * @brief Recon mission is over and is a failure: change interest values. * @note Recon mission */ void CP_ReconMissionIsFailure (mission_t *mission) { INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_RECON); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_INTERCEPT); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_TERROR_ATTACK); CP_MissionRemove(mission); }
/** * @brief Base attack mission is over and is a success (from an alien point of view): change interest values. * @note Base attack mission * @sa CP_BaseAttackMissionStart */ void CP_BaseAttackMissionIsSuccess (mission_t* mission) { INT_ChangeIndividualInterest(0.3f, INTERESTCATEGORY_RECON); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_HARVEST); INT_ChangeIndividualInterest(-0.5f, INTERESTCATEGORY_TERROR_ATTACK); INT_ChangeIndividualInterest(-0.5f, INTERESTCATEGORY_INTERCEPT); CP_MissionRemove(mission); }
/** * @brief Terror attack mission is over and is a failure: change interest values. * @note Terror attack mission */ void CP_TerrorMissionIsFailure (mission_t *mission) { INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_TERROR_ATTACK); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_INTERCEPT); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BUILDING); INT_ChangeIndividualInterest(0.02f, INTERESTCATEGORY_BASE_ATTACK); CP_MissionRemove(mission); }
/** * @brief Intercept mission is over and is a success: change interest values. * @note Intercept mission */ void CP_InterceptMissionIsSuccess (mission_t* mission) { INT_ChangeIndividualInterest(0.3f, INTERESTCATEGORY_RECON); INT_ChangeIndividualInterest(-0.3f, INTERESTCATEGORY_INTERCEPT); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_HARVEST); if (CP_IsXVIStarted()) INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_XVI); CP_MissionRemove(mission); }
/** * @brief Harvesting mission is over and is a success: change interest values. * @note Harvesting mission */ static void CP_HarvestMissionIsSuccess (mission_t* mission) { INT_ChangeIndividualInterest(-0.3f, INTERESTCATEGORY_HARVEST); INT_ChangeIndividualInterest(0.2f, INTERESTCATEGORY_RECON); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BUILDING); if (CP_IsXVIStarted()) INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_XVI); CP_MissionRemove(mission); }
/** * @brief Recon mission is over and is a success: change interest values. * @note Recon mission */ static void CP_ReconMissionIsSuccess (mission_t *mission) { INT_ChangeIndividualInterest(-0.2f, INTERESTCATEGORY_RECON); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_HARVEST); if (AB_GetAlienBaseNumber()) INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_SUPPLY); if (CP_IsXVIStarted()) INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_XVI); CP_MissionRemove(mission); }
/** * @brief Alien base has been destroyed: change interest values. * @note Build Base mission */ void CP_BuildBaseMissionBaseDestroyed (mission_t* mission) { /* An alien base has been built */ alienBase_t* base = mission->data.alienBase; assert(base); INT_ChangeIndividualInterest(+0.1f, INTERESTCATEGORY_BUILDING); INT_ChangeIndividualInterest(+0.3f, INTERESTCATEGORY_INTERCEPT); AB_DestroyBase(base); mission->data.alienBase = nullptr; CP_MissionRemove(mission); }
/** * @brief Build Base mission is over and is a success (from an alien point of view): change interest values. * @note Build Base mission */ void CP_BuildBaseMissionIsSuccess (mission_t* mission) { if (CP_BasemissionIsSubvertingGovernmentMission(mission)) { /* This is a subverting government mission */ INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_TERROR_ATTACK); } else { /* An alien base has been built */ const alienBase_t* base = mission->data.alienBase; assert(base); CP_SpreadXVIAtPos(base->pos); if (CP_IsXVIStarted()) INT_ChangeIndividualInterest(0.4f, INTERESTCATEGORY_XVI); INT_ChangeIndividualInterest(0.4f, INTERESTCATEGORY_SUPPLY); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_HARVEST); } CP_MissionRemove(mission); }
/** * @brief Supply mission is over and is a success (from an alien point of view): change interest values. * @note Supply mission */ void CP_SupplyMissionIsSuccess (mission_t *mission) { alienBase_t *base; INT_ChangeIndividualInterest(-0.2f, INTERESTCATEGORY_SUPPLY); /* Spread XVI */ base = mission->data.alienBase; assert(base); CP_SpreadXVIAtPos(base->pos); CP_MissionRemove(mission); }
/** * @brief Base attack mission is over and is a failure (from an alien point of view): change interest values. */ void CP_BaseAttackMissionIsFailure (mission_t *mission) { base_t *base = mission->data.base; if (base) base->baseStatus = BASE_WORKING; ccs.mapAction = MA_NONE; /* we really don't want to use the fake aircraft anywhere */ if (base) base->aircraftCurrent = AIR_GetFirstFromBase(base); MAP_SetMissionAircraft(NULL); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BUILDING); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_BASE_ATTACK); /* reset current selected mission */ MAP_NotifyMissionRemoved(mission); CP_MissionRemove(mission); }
/** * @brief Base attack mission is over and is a failure (from an alien point of view): change interest values. */ void CP_BaseAttackMissionIsFailure (mission_t* mission) { base_t* base = mission->data.base; if (base) { base->baseStatus = BASE_WORKING; /* clean up the fakeAircraft */ cgi->LIST_Delete(&baseAttackFakeAircraft.acTeam); base->aircraftCurrent = AIR_GetFirstFromBase(base); baseAttackFakeAircraft.mission = nullptr; } GEO_SetMissionAircraft(nullptr); INT_ChangeIndividualInterest(0.05f, INTERESTCATEGORY_BUILDING); INT_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_BASE_ATTACK); /* reset current selected mission */ GEO_NotifyMissionRemoved(mission); CP_MissionRemove(mission); }
/** * @brief Run when the mission is spawned. */ void CP_BaseAttackMissionOnSpawn (void) { /* Prevent multiple bases from being attacked. by resetting interest. */ INT_ChangeIndividualInterest(-1.0f, INTERESTCATEGORY_BASE_ATTACK); }
/** * @brief Run when the mission is spawned. */ void CP_TerrorMissionOnSpawn (void) { /* Prevent multiple terror missions per cycle by resetting interest. */ INT_ChangeIndividualInterest(-1.0f, INTERESTCATEGORY_TERROR_ATTACK); }
/** * @brief Run when the mission is spawned. */ void CP_BuildBaseMissionOnSpawn (void) { INT_ChangeIndividualInterest(-0.7f, INTERESTCATEGORY_BUILDING); }