long-war-2 / lwotc Goto Github PK
View Code? Open in Web Editor NEWPort of Long War 2 to XCOM 2's War of the Chosen expansion
Port of Long War 2 to XCOM 2's War of the Chosen expansion
For example, after Laser Weapons is researched, XCOM fails to popup laser rifles. I only see laser pistols and stenguns. This may be specific to lasers only, but needs to be checked out regardless.
The XComGameState_Effect_*
classes below are apparently problematic, due to using effect components:
They may lead to post-mission crashes.
From Musashi:
you can replace most of it by just registering event listeners in the effects and pass the object you need in the delegate in the listener data parameter
or using event listener templates
for example XComGameState_Effect_TemporaryItem just exists to remove TemporaryItems from the units inventory on tactical game end
From robojumper:
Effect components are definitely not something you want to use anymore
You can simply subclass XCGS_Effect if needed, and if not needed, use the CallbackData parameter to retrieve the target XCGS_Effect while having the callback in X2Effect_Persistent subclasses
WOTC no longer has the functions that LW2 was using to capture headshot photos of soldiers. We need to use the Photo Booth instead.
There are various WOTC TODO
entries marking where photos need to be taken.
After a successful extract VIP mission, the engineer I rescued didn't actually get added to the Avenger's engineer count.
Although soldiers that are infiltrating are blocked from being added to other missions, their displayed status does not reflect this situation.
Apparently Long War 2 made quite a few changes to the highlander classes in order to implement this behaviour. That may no longer be necessary as WOTC introduces the eStatus_CovertAction
status that represents something similar.
So, we need to replace references to eStatus_OnMission
with eStatus_CovertAction
. We then need to override the display of the status so that it shows "On Mission" or "On Covert Action" as appropriate. A similar requirement seems to have been tackled by the community highlander in this issue and linked pull request.
This mod should make for a more consistent and nicer user experience. Plus the new promotion screen already supports 3 abilities per rank! Just need to sort out training center integration first.
A lot of the code still uses CreateStateObject()
and AddStateObject()
rather than the new CreateNewStateObject()
.
As things stand, XCom will likely collect a lot of ability points which could result in an easy route to super soldiers. We should rethink how they work.
For a start, I'm not a big fan of how they are awarded. The current system basically rewards you for certain types of play, but not others. It could potentially also favour some soldier classes over others. Melee fighters are probably hurt the most by this.
I would rather see ability points awards alongside XP. I think we can also open up some interesting player decisions by allowing players to spend ability points to train up soldiers. This would allow them to mitigate the loss of more experienced soldiers. There could be an interesting trade off between building (mildly) super soldiers and being more robust in the face of one-off soldier losses. I don't know whether the ability point system can be repurposed for this.
Edit Goals:
Current thoughts/proposal:
Before going too far down this road, we'll still need to work out what to do with the training center and "AWC" abilities (issue #8).
This is because I commented out the code in UIScreenListener_TacticalHUD
that handles this. In order to restore the code, we need changes to the community highlander unless there is another way to control the display of the UITacticalHUD_Countdown
alert, including its text and colour.
At least one of the shots should do so if possible. Having both potentially proc headshot could be overpowered though.
LW2 coded its own mission timer into various maps, but this should no longer be necessary with WOTC's BasicMissionTimer
Kismet sequence (or set of sequences). It has an integer variable (Timer.LengthDelta
, default: 0) that gets added the to base mission time (which comes from config) and a float variable (Timer.DeltaMultiplier
, default: 1.0) that is multiplied against the result.
It should be possible to set appropriate base times for the missions in config (see DefaultMission.ini - under [RescueVIP]
for example) and then inject appropriate modifiers based on the size of the map (see X2SitRepEffect_ModifyKismetVariable
for an example of injecting Kismet variables from UnrealScript).
Note that we also need to take into account officer abilities that adjust mission timers. This are currently coded against the LW2 mission timer rather than the WOTC one. See X2Effect_SuspendMissionTimer
for an example of interacting with the mission timer via abilities/effects.
It should be relatively easy to refactor XComGameState_LWListenerManager
if I use X2WOTCCommunityHighlander's listener templates, as demonstrated by this class.
Note that I did do a quick try of this on the utility item slot events, but it crashed the game. May have been connected with loading an old game though.
If a new, empty squad is created for a mission (because no other squad is available), then squad select should not be allocating any soldiers to it or displaying them.
The UIAfterAction_LW
screen uses a custom cinematic that doesn't handle faction/hero soldiers.
I tried to rescue a VIP from an ADVENT van, which seemed to work OK. I ran them out of the van after unlocking it. But on every subsequent turn, the VIP had 0 action points, so I couldn't run them to the evac.
I can invoke the Call Skyranger ability, but the blue rectangle for targeting doesn't appear and it's impossible to activate it, either by pressing return or clicking on the "Call Skyranger" button.
Detailed Soldier Lists should act as a good replacement for the LW_Toolbox equivalent.
I was just on a rural "retrieve item from vehicle" mission that didn't have a vehicle! There was a redscreen pointing this out and saying that the mission may not be completable (it wasn't). This may be the reason this method exists. It's not doing anything right now because it requires changes to the highlander.
This works really well in Long War Rebalance and allows for a faster tactical game. It might be necessary to reduce the mobility for the free action, though. Not sure if that's possible.
Specifically, Obj_LWTerror
, Obj_Defend_LW
(I like the naming consistency...), and Obj_Jailbreak_LW
need their Kismet changing to use the WOTC subsystems for rescuing civilians and VIPs. The latter in particular is a blocker as the rebels don't swap to Team XCom properly otherwise.
Overwatch was a little too strong in the original LW2 and could probably do with being weakened. It was a dominant strategy that allowed for the destruction of entire pods on the alien turn, often without any danger to the XCOM squad. It needs to either be less effective or more niche.
It seems that gunners get a bonus of +20 aim while shinobis get +5. I don't yet know where those are coming from.
ADVENT and aliens never seem to hit XCOM soldiers. Check their ToHitCalc and perhaps XCOM soldier defence.
The animation of firing the flamethrower seems to target tiles at somewhere between 45 and 90 degrees anti-clockwise from the targeting tiles. In addition, the same happens for the tiles that are set on fire.
Don't have a save game for this yet, but it happens maybe 30-50% of the time, leaving the enemy flanked on XCom's turn.
Clicking on the "Start infiltration" button works as expected, but pressing the return key bypasses that behaviour and launches the mission.
On the main retaliation missions, approaching a rebel/civilian makes the rescue circles on the rest disappear, making it hard to see where the civilians are.
See this commit in the WOTCStrategyOverhaul:CovertInfiltration project for a way to do this. The current approach based on the Lock and Load continent bonus won't work with WOTC.
The trigger based on XCOM being discovered doesn't seem to be working.
I don't know whether this is dependent on which soldier does it, or whether it's from a previously saved game, or what. But this is game breaking.
All the missions seem to spawn in a very small circle within a region, leading to annoying overlap. Check both XCGS_LWAlienActivity
and the XComGame XCGS_WorldRegion.GetRandomLocationInRegion()
method. The latter should ensure that the location isn't close to existing entities, but that seems to be breaking down for some reason.
I can't seem to reproduce this in skirmish mode or when forcing it as a debug mission. But there's definitely something wrong.
This would involve making Light 'Em Up a pure passive ability that modifies standard shot - see X2Ability_WeaponCommon
- to not consume all action points. Here's the relevant code for the Skirmisher ability in that class:
// Action Point
ActionPointCost = new class'X2AbilityCost_ActionPoints';
ActionPointCost.iNumPoints = 1;
ActionPointCost.bConsumeAllPoints = true;
ActionPointCost.DoNotConsumeAllSoldierAbilities.AddItem('SkirmisherStrike');
Template.AbilityCosts.AddItem(ActionPointCost);
We would have to modify the template by adding an extra item to the DoNoConsumeAllSoldierAbilities
array.
At the moment, this class has the code for several different screens, such as Guerrilla Ops, council missions, etc. It would be easier to customise the behaviour of different screens if they were in their own classes.
The rocket launcher projectile and holotargeter visual effect don't show in game. I think the effect for the stun gun is also missing.
Since the AWC has been split into two, all of LW2's AWC functionality needs to be rejigged. This includes all the localisation files that reference the Advanced Warfare Center!
There's a little square under the crate counter, but no text next to it.
The post-mission screen doesn't seem to display faction soldier pawns properly relative to the other soldiers. They seem to collide/overlap.
More concerning is that the second row of pawns is not displayed, although their panels with promote icons are.
The gamestate change doesn't seem to be working. I'm seeing an error about it not being added to the history.
Allow players to undertake a shorter campaign than the normal one. There are a couple of ways we could approach this:
The former could perhaps be implemented in the alien activity manager and is probably the easier option to implement.
The second would involve doubling the rate of:
In both cases, resource rewards would have to be doubled (or you halve resource requirements). VIP and soldier rewards could probably stay the same.
It's a DLCInfo hook that we added to
XCGS_AIReinforcementSpawner.BuildVisualizationForSpawnerCreation
. The wotc version is a bit different from vanilla and the wotc highlander doesn't have the hook
Try to replace that DLCInfo hook with an event in X2WOTCCommunityHighlander.
This may be to do with WOTC's new overwatch mechanics. It basically looks like the overwatch aim is being reduced by the cover the enemy starts in. I'm going by what Perfect Information is saying, so I'm not 100% sure that there is a problem here. But those low odds overwatch shots all missed.
I don't know how to reliably reproduce this, but sometimes only one overwatch goes off during a turn, when more should. Particularly when Sentinel is involved.
Every new campaign starts with a Point of Interest available. I don't yet know where this is coming from or how to disable it.
Sometimes reinforcements appear as multiple pods in one turn. Sometimes they appear in consecutive turns, even when there should be a gap.
Supply raids were always hard to balance because the rewards for under infiltrating were so great. I propose that the rewards are reduced as infiltration level falls. This could either be done on a straightforward percentage basis (rewards = %infil * base rewards) or at discrete levels. For example:
It might also be worth scaling the number of enemies down as well, since their corpses have intrinsic value and drop loot.
The justification for this would be that XCOM would be hitting a waypoint where supplies are congregating. At 0% infiltration, no supplies have actually reached that waypoint. As infiltration goes up, more supplies and their escorts arrive.
Note that I don't think over infiltration should have any effect on supply raids.
Once we've had a chance to play with the flamethrower a bit, decide whether the WOTC flamethrower targeting is fine as it stands. Otherwise, consider resurrecting the old LW2 targeting method.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.