/** * @brief Spread XVI for each mission that needs to be daily spread. * @note Daily called */ void CP_SpreadXVI (void) { /* don't check if XVI spreading didn't start yet */ if (!CP_IsXVIStarted()) return; MIS_Foreach(mission) { if (mission->stage == STAGE_SPREAD_XVI) CP_SpreadXVIAtPos(mission->pos); } }
/** * @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 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 */ CL_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); CL_ChangeIndividualInterest(0.4f, INTERESTCATEGORY_XVI); CL_ChangeIndividualInterest(0.4f, INTERESTCATEGORY_SUPPLY); CL_ChangeIndividualInterest(0.1f, INTERESTCATEGORY_HARVEST); } CP_MissionRemove(mission); }