I think that found the alien base must be from interrogation of the aliens. May be capturing an officer, just like x-com. If our soldiers have ranks, why not the aliens? something simple; troop, low-rank officer-high rank officer, and maybe commander.
nope it's not, you need 10 live aliens only for Odd Behaviour research and 3 for Alien mind.
actually this alienbase problem based on probability of it's detection
there is not actually 'trigger' in code to detect it, its depends on multiple parameters:
first y need to have it to be built, it depends on alien interest value which increase in time exponentionally by specific formula, when you will see first supply ships than one base definitely created, after that starts to work periodic check on base detections from CP_CampaignRun function which calls static void CP_CampaignFunctionPeriodicCall, so if by simple language its dynamic check depends on actually stealth value which updates by probability during some period of time, not specificly setted date... more xvi infection less probability for nations (divided by 2) to detect alien base, more supply ships and longer aircraft stays in base area or base in radar range(multiplier 0.4) higher chance to detect it, the most effective way for detecting base is to 'see' by aircraft supply ship landing, it decreases stealth value by 5.0, actually i think problem is in too big decreasing factor for player aircrafts and maybe too high original value, also possible this value for alien bases not saved propetly in savegames...
alienBase_t* AB_BuildBase (const vec2_t pos)
{
alienBase_t base;
const float initialStealthValue = 50.0f; /**< How hard PHALANX will find the base */
OBJZERO(base);
Vector2Copy(pos, base.pos);
base.stealth = initialStealthValue;
base.idx = ccs.campaignStats.alienBasesBuilt++;
return (alienBase_t*)(LIST_Add(&ccs.alienBases, (const byte *)&base, sizeof(base)))->data;
}
static void AB_UpdateStealthForOneBase (const aircraft_t const *aircraft, alienBase_t *base)
{
float distance;
float probability = 0.0001f; /**< base probability, will be modified below */
const float radarratio = 0.4f; /**< stealth decreases faster if base is inside radarratio times radar range */
const float decreasingFactor = 5.0f; /**< factor applied when outside @c radarratio times radar range */
/* base is already discovered */
if (base->stealth < 0)
return;
/* aircraft can't find base if it's too far */
distance = GetDistanceOnGlobe(aircraft->pos, base->pos);
if (distance > aircraft->radar.range)
return;
/* the bigger the base, the higher the probability to find it */
probability *= base->supply;
/* decrease probability if the base is far from aircraft */
if (distance > aircraft->radar.range * radarratio)
probability /= decreasingFactor;
/* probability must depend on DETECTION_INTERVAL (in case we change the value) */
probability *= DETECTION_INTERVAL;
base->stealth -= probability;
/* base discovered ? */
if (base->stealth < 0) {
base->stealth = -10.0f; /* just to avoid rounding errors */
CP_SpawnAlienBaseMission(base);
}
}
/**
* @brief Update stealth value of every base for every aircraft.
* @note Called every @c DETECTION_INTERVAL
* @sa CP_CampaignRun
* @sa UFO_UpdateAlienInterestForOneBase
*/
void AB_UpdateStealthForAllBase (void)
{
base_t *base = NULL;
while ((base = B_GetNext(base)) != NULL) {
aircraft_t *aircraft;
AIR_ForeachFromBase(aircraft, base) {
alienBase_t* alienBase;
/* Only aircraft on geoscape can detect alien bases */
if (!AIR_IsAircraftOnGeoscape(aircraft))
continue;
AB_Foreach(alienBase)
AB_UpdateStealthForOneBase(aircraft, alienBase);
}
}
}
void AB_BaseSearchedByNations (void)
{
const int daysPerWeek = 7; /**< delay (in days) between base stealth update */
float probability = 1.0f; /**< base probability, will be modified below */
const float xviLevel = 20.0f; /**< xviInfection value of nation that will divide probability to
* find alien base by 2*/
alienBase_t* base;
/* Stealth is updated only once a week */
if (ccs.date.day % daysPerWeek)
return;
AB_Foreach(base) {
const nation_t *nation = MAP_GetNation(base->pos);
/* If nation is a lot infected, it won't help in finding base (government infected) */
if (nation) {
const nationInfo_t *stats = NAT_GetCurrentMonthInfo(nation);
if (stats->xviInfection)
probability /= 1.0f + stats->xviInfection / xviLevel;
}
/* the bigger the base, the higher the probability to find it */
probability *= base->supply;
base->stealth -= probability;
}
}
if (!RS_MarkStoryLineEventResearched(ALIENBASE_DISCOVERED_TECH))
Com_DPrintf(DEBUG_CLIENT, ALIENBASE_DISCOVERED_TECH" is not marked as researched\n");
else
Cmd_ExecuteString("addeventmail alien_base_discovered");
}
This list is available at 2.3.1 version? i can´t research the black signaled.
mm if to look date of translations on wiki i think it should be, also based on part of codes i looked think this depends from increasing of alien interest, try to speed up global time and ignore alien ships for 5-6 monthes, me personally waited for 99% of researches till aug 16 2085 until first destroyer ships appeared, for you it can be different.. jan-may 2085 or something like.
Don't CHEAT, please!
-geever
i'm trying
-noob