Talk:Alien Infiltration

From UFOpaedia
Jump to: navigation, search

So, once the supply ships and battleships arrive, is it too late? Is there no way to stop the infiltration, and will you always lose that country's funding? Rlbond86 21:41, 20 January 2010 (EST)

So far I find the only way to stop it is to shoot down every scout ship before it enters the REGION of its destination, no matter it's ocean or land. -Pagan 11:26, 12 February 2013 (EST)
I notice the article says 'you have several options available to you', but doesn't go on to list any. I assume one of them is to eliminate the base and, hopefully if done before the end of the month, it renegs the pact (by breaking their contact with each other or possibly giving the funding nation reason to keep faith in the X-COM project and tell the aliens to bugger off), but is this possible? There should be more details here. I personally think it should be possible to undo the 'damage', if you're paying enough attention, and obviously have the tracking capabilities to do so, and address it quickly enough, at least.
In my case, at least, I've been playing OpenXcom 0.9, and I eliminated an Infiltration mission utterly, and cleansed the Base (it was the first one they built, too, and right in Washington, D.C.- just a short jaunt away from my HQ near the Lake Erie/Ontario merged body of water on the Geoscape weirdness- silly low-polygon limits resulting in quirky and inaccurate terrain layouts), and, even though the month hasn't ended, the savegame data seems to imply no pact status changes, so I think it's dealt with. The Infiltration mission's still active, though, but it's been essentially reset back to the first wave and postponed HEAVILY, by at least another month, it seems. Not sure if it's going to just continue or eventually vanish from the savegame when the spawn countdown depletes, but either way, it seems like a major victory. --StormhawkAPS 14:14, 4 October 2013 (EDT)

There is no way to completely stop an infiltration mission. The most you can do is delay the outcome by shooting down every UFO that preforms the mission, which heavily delays the arrival of the next UFO. The final "wave" of ships spawns in rapid succession. It is possible to delay this outcome by intercepting one of the initial ships in the wave but this usually can only be done if you have avengers and can intercept the first ships very quickly as there are only an hour between these ships. Once the second battleship in the mission has been spawned, the pact is sealed. There is no way to recover a country that has signed a pact. However, the game does not end if you lose all the countries, including Russia. (Even though Russia can't be infiltrated normally due to a oversight.)-Tycho (talk)

What of the current wave of aliens that are running the infiltration mission? Can you cause them to reset and start over after holding them off for a certain amount of time? -NKF (talk) 00:00, 2 December 2014 (EST)
Not that I see. The routine that handles updating the data every 30 minutes will go through the MISSIONS.DAT database and decrease all timers for active missions. When a timer reaches zero, it spawns the UFO to which the mission counter refers, increases the counter, and then sets the timer for the new stage. When you shoot down a UFO, this time gets increased. In the case of infiltration, if the value of the next stage is greater than 8, the "sign pact" routine runs. In zones where there is more than one country, the MISSON.DAT entry resets back to stage 0 so the aliens will start to infiltrate the next country in that zone. -Tycho (talk) 22:51, 2 December 2014 (EST)
Since you mentioned it, what's the oversight that causes that Russia can't be infiltrated? I've heard about this for years but no one ever explained why this happens. Hobbes (talk) 14:15, 3 December 2014 (EST)
Russia is part of Europe but only the western part and only for determining the cost of starting a base or awarding points for alien/X-com activity. For the purposes of infiltration, the programmers made the path to infiltrating Russia go though Siberia. However, the chance of an infiltration mission in Siberia is 0. - Tycho (talk) 16:06, 3 December 2014 (EST)
That's something I had already noticed (no infiltration missions set for Siberia) but the confirmation required is how the countries are assigned to the geographical areas used by the MissionZones. Meanwhile I did a search for a previous post where I talked about this and Warboy1982 states that the location of the countries' name is what determines the assignment of a country to a region, which makes sense. Thanks Hobbes (talk) 17:20, 3 December 2014 (EST)
If you look at the differences between the zone map and the country map under the Geoscape map. It would seem that any alien activity that occurs within what we consider Western Russia/Eastern Europe would have the alien scores penalize the Europe zone then Russia specifically. -Tycho (talk)
I mentioned MissionZones but I actually meant the Regional zones, which are used for base construction costs and the UFO/Alien on the Graphs, as you mention, and to generate alien missions. As Warboy1982 described on the OpenXCom forums, once an Alien Infiltration mission is successfully completed on a region, the game choose on the countries present in that region, and it assigns countries to regions based on the location of the country's name on the Geoscape (which can be different from the name's locations on the country map on the Geoscape page).
Mission Zones are used only for UFO trajectories (which are determined themselves by the settings Alien Missions, which are somewhat described on the MISSION.DAT page), including their entry/exit areas, and patrol and landing locations. Moscow actually belongs to a MissionZone located in Europe, so you can get Terror Sites and UFOs landings (in Alien Infiltration missions, although the infiltrated country won't be Russia). Hobbes (talk) 19:01, 3 December 2014 (EST)
PS - I'll eventually write a page about how the game generates Alien Missions based on what was discovered by OpenXcom's developers. There's already information about this on the respective game file pages but it would be nice to describe the whole process. It will contain a lot of spoilers though. Hobbes (talk) 19:14, 3 December 2014 (EST)
I don't understand what is meant that the location of the countries' name has to do with the zone, except maybe from a developer's standpoint as they were coding the game. It's an array that determines in what zone a set of coordinates belongs to. Am I misunderstanding your meaning? I see that most of western Russia falls under the Europe zone for this purpose. Also, the game doesn't randomly choose the country in a zone at the time of a successful infiltration. The order is predetermined. The landing sites of the final UFOs are chosen randomly, but that has no impact on what country will sign (as you mentioned).
This image should explain it better

CountryNames.png

From a coding perspective, since the Alien Infiltrations are generated for Regions and not specific countries, then there needs to be a way in the code to determine what country will sign a pact if the mission is successful in that region. The game solves this by checking the location on the globe of the Countries' names and the region where they are located. In the image above the "Russia" label is clearly located in the Siberia region, so any Alien Infiltration missions in Europe will never result in Russia signing a pact. Hobbes (talk) 09:41, 4 December 2014 (EST)
That's not at all what I've seen in the code: When the game is updating missions, it cycles through every entry in MISSIONS.DAT file. Each "line" of the MISSION.DAT refers to a specific region already. When the game determines that a pact will be signed, it already knows what zone it is checking. It then passes the zone data to the "sign pact/spawn base" subroutine which then goes through a series of conditional statements. As it goes through the proper zone section, it checks the DIPLOM.DAT status of each country that has been hard-coded to be in that region: literally each byte for "satisfaction rating" in DIPLOMAT.DAT is specified: check this byte, if '0' check this byte instead). Once the first country that it finds whose status is not '0' (in pact), it sets it to zero, and resets the entry in MISSIONS.DAT to start infiltrating the zone again. the location of the country name in never referenced.)
That doesn't the whole question behind this discussion: where are the countries assigned (hard-coded as you mention) to regions? According to the info about the DIPLOM.DAT there isn't anything there that assigns countries to regions, only if the country has signed a pact or not. There needs to be some place in the code where it states: Country #0 belongs to region #0, Countries #1 and #2 to region #1, etc.Hobbes (talk) 16:46, 4 December 2014 (EST)
For purposes of infiltration, the countries per zone are determined by a set of conditional statements in the 'sign pact / spawn base' routine, very similar to how the research tree is established through a long series of conditional statements that constantly reference RESEARCH.DAT. In this case, the conditional statements reference DIPLOMAT.DAT to determine which countries have already signed a pact, and proceeds down the list for that zone. (A->B->C etc.) When the last country in the list has signed, the routine zeros the entry for infiltration missions for that zone in the ZONAL.DAT array. disables the infiltration mission in MISSION.DAT. The entry for infiltration in that zone was disabled in ACTS.DAT when the mission is initiated (so the game doesn't ever select the same mission in the same zone twice.)-Tycho (talk) 04:15, 8 December 2014 (EST)
For other random points on the globe, the game passes the location's coordinates to two routines which compares them to arrays of map coordinates that define the zone/country blocks (as we see in Geoscape map). Once it determines which block(s) the coordinates fall into, the arrays will returns the zone (and country, if there is one for the coordinates) to which those blocks are assigned. It is these two arrays that determine what zone and/or country gets awarded/penalized points for X-COM / UFO activity. If you like, I can make some screenshots of the code to show how this works.
OK, so the conditions are something like: If Sign Pact is successful, then check one by one the countries for that region to find the first one who wasn't been infiltrated yet. That means the assignment to countries to regions is somewhere on the EXE? And yes please, show me the screenshot about the infiltration code, I'm not an expert but I may be able to figure it out. :) Hobbes (talk) 18:59, 4 December 2014 (EST)
Correct. The "sign pact" section contain the assignment of countries to each zone. For example, if the alien complete an infiltration mission in North America: (1) the routine finds the entry for the North America zone (2) checks the status for the USA in DIPLOMAT.DAT (3) if not 0, it sets the byte to have the USA sign a pact at the end of the month. If the USA status already indicates that it is in a pact, it then sets the byte to have Canada sign a pact. In this code, Russia is only accessible if the mission occurs in Siberia. -Tycho (talk) 04:32, 8 December 2014 (EST)