Hey everyone. First potential mod out of five ideas I have written down on a piece of paper.
What this mod does: Forces aliens of follow the same Psionics rules as XCOM. Aliens can only target soldiers one of their units has already seen this turn.
What Inspired this mod: The new LOS option is nice, but really plays out as a heavy nerf to the aliens. It does somewhat limit XCOM Mind Control Cheese in the lategame, but makes it significantly easier to get there. When given the choice between mind controling a unit that it can see and just shooting it, the aliens seem to prefer to shoot. My mod seeks to even the playing field instead.
How it works(Warning:Gets Technical): When an alien decides to attack something (which it can do at any time the aliens know about any xcom units), if I can do Psi it tries that first. The AI then looks at each unit and picks the one it has the greatest chance go attack (it may at this stage just decide to shoot something if it figures its the better option). What my mod does is build a list of valid units first, from the units that each enemy unit has seen on its current turn. It then selects the best option from this new smaller list.
What this means in practice: Alien Psi plays out exactly like XCOM's. During the opening sweep of the map psionics will be largely unchanged, the only difference being that only units the aliens have seen in a particular turn are valid targets, so as you press the aliens back only your forward scout units can be paniced and controlled. Of course if the aliens get control of one of your scouts, it can then be used to find more targets. Once alien numbers begin to thin, the Psi troops lose their intel, until your troops burst through the last door for one final confrontation.
How can this be improved: The player typically uses his Psi troops as a reserve, waiting until he discovers enemy units to control. However if the Psi troop moves first and uses all its TUs because it has no valid targets it might miss out on an oppertunity later in the turn. This could be solved by making the Psi troop wait until after other units have moved, although that might introduce a problem with etherials constantly out waiting each other. Using rank as a rough guide in which order to move might solve the problem, although I have no idea how the aliens decide in which order to move. Considerning units can move multiple times a turn (with other units moving in between), it clearly isn't just iterating through an array.
Another possible improvement would be a better fix to the multiple psi attacks on a single unit problem. Currently if I am reading the code correctly, each Psi capable unit is restricted to a single Psi action each turn. While clearly a good fix for the aforementioned problem it somewhat limits their current potential. Possibly check current morale when deciding when to panic, or if a unit already is in FACTION_HOSTILE before attempting the mind control.
I'm interested in getting other peoples thoughts on the idea, and/or if you are a programmer, the implemetation.
if people want to try out my current code I've got a Github fork branch at
github.com/fudgedragon/OpenXcom/tree/fairPsionicsor alternatively, I have a build attatched to this post. It only includes the changed exe (not to mention all the visual studio DLLs) and language files to keep the size down, so install over the current nightly.
EDIT: It occured to me after posting this last night that I didn't mention that it is a toggleable advanced option.