Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Solver

  1. No, that's just a translation for the mod that's included with X:CE. It does nothing usually, unless you also install Fire in the Hole and play in French.
  2. I'll have to agree that the tread has served its purpose. The requested change has been made and the recent series of posts here is anything but constructive, so a lock it is.
  3. I've been playing the Milestone builds, and of course I'd played a fair bit of earlier builds, but the Milestone builds do feel much more mature and are also the first time I've gotten past the early midgame, so it seems like a good time to provide some renewed feedback. I've seen a lot of what others have posted, so I'll omit points that have already been brought up many times unless I have additional insights to share. Mostly staying away from balance, too. All in all, well, I can't stop playing in the evenings and I'm particularly impressed with how much gameplay has improved over X1 thanks to mostly small changes. Cleaners People have said the Cleaner arc is short, and after reading those comments, I understand. They featured more prominently in earlier builds but aren't so visible in the EA build after all. Design-wise, getting rid of the mandatory Cleaner base attack was the right choice, but it can lead to the Cleaners coming out of nowhere seemingly. You attack the Intel Hub without a good background on who they are and then most of their story comes after you eliminate the organisation entirely. I strongly suspect the flow of the Cleaner story can be improved with some fairly minor changes. They should appear in the first mission (the alien research site) alongside aliens. This will create a memorable moment for the player (who are these secret service type guys? why are they attacking me, are they with the aliens?) and provide an opportunity for the appropriate research text to show up early, giving some background. Then the player would be going into the Intel Hub to face a familiar enemy. Especially recovering a Cleaner body from the first mission would make a difference. As things are now, you're almost certain to only get the Cleaner autopsy done after destroying their HQ, because the Intel Hub and the Cells end with you escaping, so you don't recover any bodies unless you drag them yourself. A lot has been said about the difficulty of Cleaner Cells, to the point where it seems a couple negative Steam reviews appeared in frustration at the missions. These two missions aren't unfair to experienced players but they do show up fairly early and can feel unfair to new players. It's pretty undeniable that there is a difficulty spike. The Cells are harder than the Intel Hub or HQ missions, and they're harder than crash sites or even terror missions in that phase of the game. While there's been some focus on the timed reinforcement aspect, I'm not so sure that is the main problem, though of course adjusting reinforcements/timers per difficulty is a good idea. Much of the difficulty of the Cells seems to stem from a high initial enemy count. The Cell Cleaners are tougher than most other enemies in this phase, they have burst weapons and either decent damage or good armour. Removing even one Cleaner from the initial map would go a long way - the Cells don't need radical changes as much as they need fine tuning. The other difficulty component is that you need to locate the VIP. Which is a bit weird with metagaming effects. The first time you play, you need to spread out a bit and look for the VIP. The second time you play, you know where the VIP is so you can follow the optimal tactic of heading straight for the main building, blowing open walls and finishing the VIP off with a MARS rocket salvo or something similarly explosive. In the Cleaner HQ, the objective area should display what boosts you're getting from killing the cells, like "Cleaner Cell destroyed - defender armour weakened". This is as a reminder and as a confirmation to the player of what specifically has been accomplished. Air Combat Since air combat is going to get another pass, I'm not going to go into the actual combat mechanics now but rather some adjacent points. There's a strange metagaming issue with damaged UFOs, which X1 also has. During a UFO wave, as UFOs go in and out of radar range, I can remember if I e.g. destroyed a particular UFO's armour if I remember the ID. I torpedoed UFO-5 so it has no armour any longer? Okay, then the next time I get a contact, I'll know if it's the same one by checking if it's UFO-5 or UFO-6. But it's unclear if I'm supposed to do this. Same issue with UFO types really, if I engaged it and know it's a Destroyer, subsequent clicks will still say Unknown. One fairly straightforward solution could be to remember which UFOs have been engaged by a squadron and, for any such UFO, show its type and perhaps damage status. I can't help but feel that the existence of the Dynamic UFO HP option is weird and suggests an issue. It's very strange for the same UFO to get weaker or tougher depending on how many planes I engage with. No idea what to do with this, but my intuition is that the best balancing tool is fuel. If you're sending three planes where one would do, in theory you should be wasting fuel and thus be in a worse position to respond to a subsequent threat. And related to dynamic HP, I've complained before that the auto-healing of UFOs is very much a black box. Maybe the mechanic has its place but it needs to be more clear. Compared to X1, there's the excellent move of making UFOs occasionally slow down so that it's possible to catch a faster UFO with a slower plane if you get lucky. This makes another mechanic from X1 appear awkward - if your squadron runs out of fuel, they have to go back to base, but they're limited to the lowest-fuel plane. In X1, I didn't mind, but in X2 it really feels like it'd make sense to split squadrons in-flight in such a situation, with e.g. Angels returning to base and Phantoms continuing. Bases and Teching There are a few surprising moments in the tech tree. One example is, if you skip Accelerated Cannon (engineer build) for planes, and go for the much superior Laser Lance, when eventually research Heavy Gauss, you'll see the engineering project to build the Gauss Cannon (whatever it was called) and suddenly discover it needs Accelerated Cannons first. This is surprising because of the inconsistency, normally each weapon tier is independent and also thematically we're building a new type of gun, not upgrading the previous one. Starting a new base, you can assign buildings to be constructed before the access lift is complete. That is a good change but it's not even hinted at anywhere, you have to discover it by accident. The Training Center, along with the whole training mechanic, is too much of a black box. I do see the training capacity but that's all. How fast are my soldiers getting attribute progress? How much has training contributed overall? Which attributes? Are all my soldiers training? I did not find anywhere to see those. Base upgrades (Alenium generators, Quantum labs, etc) may be easy to miss for players who don't expect those. Perhaps a tooltip in the main base view if an upgrade is available? Hover over a generator and it might say "Alenium Generator upgrade available in the Workshop". I find base storage confusing right now. Why are mission items not sold automatically? Not sure if there's still a reason for this. There was in earlier builds but now, unless I'm mistaken, there is no reason ever to hold on to an item you got from a mission. Research unlocks automatically when relevant and items are never used in manufacture. Then the only thing storage adds is confusion potential, exemplified by how "when can I sell Cleaner Data?" is one of the most common progression questions. Combat missions Ground combat, the meat of the game, is of course excellent overall, with significant improvements compared to just a few months ago. I really like the various alien abilities, they feel like a successful return to classic X-Com style, which is probably the main reason combat feels better than earlier this year. A strange thing I noticed is that terror missions feel a lot easier in X2. In X1, I'd always be afraid of them, they were, well, a terror. Just like in the original game. X2 terror missions are easy but I cannot quite figure out why, they're mechanically the same as X1 after all. Some contributing factors could be that aliens always prioritise civilians (making civilians powerful meat shields), that Reaper AI in particular is dumb (they're not sneaky and so are easier to deal with) and that the terror maps have many explosive props (if a gas station shows up, that's almost cheating, a well-placed shot blows the entire area up). Base defence missions are always a highlight for me. Some AI issues clearly present but very good stuff overall, though they could be improved by having a few more interactive props. It's a Xenonaut base, it is the perfect place for that. An explosive gas balloon in the workshop, some equipment in the lab that explodes with EMP damage, a container that starts leaking smoke if damaged in the storage room. The fights would feel more epic plus interactive props are always fun. Also, the Access Lift tile is very uninteresting. Aliens aren't coming from it anyway so ideally I'd give it a complete makeover with a rename to Command Center, but the existing tile could be improved by at adding some sandbags to hide behind. Stun damage is difficult to balance but it's currently not there. I've repeatedly knocked enemies out without meaning to. The general rule that stun bar above HP bar means unconscious is good but some tweaks are needed. One idea is to require an actor to have just received stun damaged to fall unconscious, and disallow unconsciousness on HP damage. This is to prevent a situation where you shoot an alien, not dealing enough damage to kill but enough to knock them out. Being knocked out from a shotgun to the face is weird. Related to stun, stun guns need a clearer role. They're currently fully useless. Miscellany Tutorial tooltips - the overdamage explanation seems to pop up the first time an actor dies via overdamage, which is very likely to be a civilian from alien fire. Should probably be only if you kill via overdamage instead. Yes I tried the tutorial mode. Tutorial tooltips - I cannot figure out what triggers the "adjacent soldiers can open doors" explanation but I got it during the alien turn and that probably shouldn't happen. We need soldier flags back on the UI! Servitors are mostly referred to as gun drones, except the initial research text. Missions with reinforcements could really use a visible timer, like the abduction missions have. Soldiers can path through burning tiles and even kill themselves by doing so. A corner case with laser machine guns. If I fire a 10-round burst and a 3-round burst, that takes my ammo down to 7/30. Then the game won't let me fire a 10-round burst because there's not enough ammo. Makes some sense but I'd prefer to be able to force-fire anyway if I use ctrl. Using a medkit can cause reaction fire, it should probably be exempt. It's highly counterintuitive that winning a terror mission doesn't reduce panic in the region.
  4. It seems that 1.25 has the wrong save location. Go to My Documents\My Games\Xenonauts 2 and copy the Saves folder from there (which has all your saves) to My Documents\My Games\Xenonauts 2-Editor, which is a folder the appears in 1.25. Then I imagine the saves will be visible - this will probably be fixed soon in the builds.
  5. Having also enjoyed Jagged Alliance 2 years ago, the expendability of soldiers is a major difference compared to Xcom series. In the original X-Com, you could have 14 soldiers in the first dropship so a few would die and leave you with enough of a force. In Xenonauts, you have saner amounts of troops but losing 1-2 per mission is completely fine. One Laser Rifle costs as much as five recruits (plus materials). Keep replacing soldiers as you lose them, and you'll end up with a core of excellent veterans who have done multiple missions, they're the valuable ones.
  6. Man darf mich danken. Muss es doch nicht
  7. Your wisdom is infinite and even greater than my stupidity. Removed dead links from the original post and re-uploaded 1.06 into it.
  8. XenoDE_V1.06.zip for me - does it look fine to you @Charon? From your download link.
  9. It makes a lot of sense to modify the abduction/cleaner missions based on the difficulty level. Since people have struggled with cleaners, the default for reinforcements should perhaps be an extra turn compared to release, and abduction missions could be modified to require a different number of civilians rescued per difficulty.
  10. This may not be a problem but a surprising outcome, to me, was that money recovered from UFO crash sites eventually drops to approximately the bounty amount due to item depreciation. After I started suspecting so, I verified with a Destroyer crash site. Offered bounty was 125k. I did the crash site and the sum of items I'd recovered (except Alloys and Alenium) was just over 120k. So with items gradually getting cheaper, crash sites become a source of alloys and alenium but do not offer an advantage in purely monetary terms. Perhaps worth keeping in mind for subsequent economy balance passes.
  11. Research lets you skip Alenium explosives and research Fusion explosives when you get to those. Then you can complete Fusion Warheads at the workshop. However, doing so leaves you with standard missiles/torpedoes, probably because Fusion items are set to replace the Alenium ones.
  12. On my own playthrough, I can second the lack of Terror missions. It's not like I'm great at air superiority either, but hardly any Terror showing up. Cleaner pacing might need some work. As an experiment, I did the Intel Hub late. Ignored it for a month, and only rolled into it during the second month, full Wardens and Lasers by that point. I of course dominated the hub, grabbed all the data and killed all Cleaners a turn before reinforcements started spawning. The mission is meant to be done earlier but perhaps it needs a bit more urgency? The difficulty curve of Cleaner Cells vs the HQ also doesn't feel quite right. The Cells are difficult missions, in particular the armoured one as it guarantees enemies will survive 1-2 more shots. After that, the HQ is a step down in difficulty. You can more carefully take your time and it's just easier than the Cells.
  13. Oh, this explains another issue I've been seeing, UFO doors are very weak to laser fire. When approaching the UFO, if one shot misses and hits the door, the door is gone. That's probably because lasers are Thermal.
  14. There's a difference between the information being available somewhere and the game explaining it. A good ingame explanation means you're shown in a way that will be pretty clear when you try to do the relevant action. Then there's elements like UFO auto-repair, which are unexplained entirely - seems to trigger after some time only but it's quite unclear. Some bugs could be involved - missiles have an infinite range just like torpedoes, which I'm not sure they're meant to. The cannon hardpoint on aircraft can also be changed to missiles/torpedoes. All in all though, I gather air combat will be getting a design pass during Early Access so these are not the most pressing issues.
  15. I have no idea what's going on with air combat on the current build. I send two Angels after a Scout. It has 275 HP. I hit it with four torpedoes, down to 211 HP. Back to base, rearm also with some missiles, hit the Scout again - it's back to full HP. I hit it with these four torpedoes again and two missiles, down to 160 HP. The UFO auto-repair still doesn't feel like a good mechanic to me, but on top of that, I no longer understand what the game wants me to do. Are torpedoes now just for destroying armour? Maybe so but missiles don't seem to do very much damage either. Is it the intention for me to always have to close in and use cannons? Maybe but then the UFO repair mechanic gets much worse because if I have to abort, my planes are damaged but the UFO will get back to full health straight away. It's maybe better than the "you only ever need torpedoes" situation many builds had but the current air weapons don't feel especially balanced and, what's probably more important, it doesn't feel like the game is clear about what should be expected.
  16. Thanks to @Kamehamehayes for notifying me on this. @AFFA94 here's a copy I found - I hope it's good! Xenonauts 1.65 ITA.zip
  17. Not an issue new to V27 but the game has a problem with smoke. I accidentally captured two Sebillians on one mission after throwing a smoke into the UFO to protect my exposed breachers. The problem is a known one I'm pretty sure - smoke deals stun damage and being in the middle of a smoke cloud can add up to a lot while moving out of it. I'm bringing it up because I think I have a decent suggestion. It would be unsatisfying to remove smoke stun but I think the solution is to apply smoke stun at the end of the unit's turn, if the unit is standing in smoke. Then get rid of smoke if moving into / through a smoke tile. That would be a simple rule that players can understand, as it would be similar to bleeding wounds, and it would let smoke retain its secondary stun function without being some kind of super-effective stun gas.
  18. The attached save produces a CTD for me after an hour of in-game time. Per the exception log, I believe this is because X-55 interceptor research completes then. 2023-05-20 01:11:51,126 [FATAL] (F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\XenonautsMain.cs:938) [INITIAL CRASH] System.Collections.Generic.KeyNotFoundException: A fatal error occurred during Update[] - Exception occurred during handling of 371 Xenopedia Entry - X-55 Phantom Interceptor [Unlocked:True] for controller xenopedia_entry_component_interceptor[Clone] of type ComposableXenopediaEntryController - The given key was not present in the dictionary. Context: - Transition:global::Stateless.StateMachine<global::Xenonauts.Strategy.Systems.StrategyUIStates, global::Xenonauts.Strategy.Systems.StrategyUITriggers> - Transition [Source: GeoscapeMain, Destination: XenopediaEntryUnlocked, Trigger: ShowModal] - Fire Arguments:global::Stateless.StateMachine<global::Xenonauts.Strategy.Systems.StrategyUIStates, global::Xenonauts.Strategy.Systems.StrategyUITriggers> - Fire [ShowModal, args: Strategy.UI.Elements.XenopediaEntryUnlockedElement+Parameters,XenopediaEntryUnlocked,Xenonauts.Strategy.Systems.StrategyUISystem+ShowModalParameters] - Process:global::Artitas.Events.DeltaTimeEvent - DeltaTime Event[dT: 0.0175533] - Exception occurred during handling of 371 Xenopedia Entry - X-55 Phantom Interceptor [Unlocked:True] for controller xenopedia_entry_component_interceptor[Clone] of type ComposableXenopediaEntryController - The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2[System.String,System.Object].get_Item (System.String key) [0x000a8] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:151 at Artitas.Components.DictionaryComponent`3[TKey,TValue,TComponent].get_Item (.TKey key) [0x00008] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Artitas\Artitas.Core\Code\Components\CollectionComponents.cs:495 at Common.UI.Tooltips.RepeatableTextFormatterScribanContextKeyTarget.Apply (IComposable target) [0x0000d] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\UI\Tooltips\StateControl\RepeatableTextFormatterTargetSelectors.cs:54 at Common.UI.Tooltips.RepeatableTextFormatterBehaviour.Apply (IComposable composable) [0x00024] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\UI\Tooltips\StateControl\RepeatableTextFormatterBehaviour.cs:46 at Common.UI.UIController.ComposableContextController.Apply (IComposable target) [0x00034] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\UI\UIController\ComposableContextController.cs:74 at Common.UI.UIController.ComposableContextController.OnSetTarget () [0x0000e] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\UI\UIController\ComposableContextController.cs:40 at Xenonauts.Common.Xenopedia.ComposableXenopediaEntryController.OnSetTarget () [0x00002] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\Common\Xenopedia\ComposableXenopediaEntryController.cs:15 at Common.UI.DataStructures.UIController`1[T].SetTarget (.T target) [0x0002c] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\UI\UIController\UIController.cs:118 at Common.UI.DataStructures.AUILayoutController`2[Xenonauts.Common.Xenopedia.ComposableXenopediaEntryController,Artitas.Entity].Add (Artitas.Entity target, Boolean animate) [0x000ba] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\UI\UIController\AUILayoutController.cs:164 2023-05-20 01:11:51,127 [FATAL] (F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\XenonautsMain.cs:720) Exception in Unity lifecycle, marked as handled: KeyNotFoundException: [INITIAL CRASH] - A fatal error occurred during Update[] - Exception occurred during handling of 371 Xenopedia Entry - X-55 Phantom Interceptor [Unlocked:True] for controller xenopedia_entry_component_interceptor[Clone] of type ComposableXenopediaEntryController - The given key was not present in the dictionary. Context: - Transition:global::Stateless.StateMachine<global::Xenonauts.Strategy.Systems.StrategyUIStates, global::Xenonauts.Strategy.Systems.StrategyUITriggers> - Transition [Source: GeoscapeMain, Destination: XenopediaEntryUnlocked, Trigger: ShowModal] - Fire Arguments:global::Stateless.StateMachine<global::Xenonauts.Strategy.Systems.StrategyUIStates, global::Xenonauts.Strategy.Systems.StrategyUITriggers> - Fire [ShowModal, args: Strategy.UI.Elements.XenopediaEntryUnlockedElement+Parameters,XenopediaEntryUnlocked,Xenonauts.Strategy.Systems.StrategyUISystem+ShowModalParameters] - Process:global::Artitas.Events.DeltaTimeEvent - DeltaTime Event[dT: 0.0175533] - Exception occurred during handling of 371 Xenopedia Entry - X-55 Phantom Interceptor [Unlocked:True] for controller xenopedia_entry_component_interceptor[Clone] of type ComposableXenopediaEntryController - The given key was not present in the dictionary. System.Collections.Generic.Dictionary`2[System.String,System.Object].get_Item (System.String key) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:151) Artitas.Components.DictionaryComponent`3[TKey,TValue,TComponent].get_Item (.TKey key) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Artitas/Artitas.Core/Code/Components/CollectionComponents.cs:495) Common.UI.Tooltips.RepeatableTextFormatterScribanContextKeyTarget.Apply (IComposable target) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/UI/Tooltips/StateControl/RepeatableTextFormatterTargetSelectors.cs:54) Common.UI.Tooltips.RepeatableTextFormatterBehaviour.Apply (IComposable composable) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/UI/Tooltips/StateControl/RepeatableTextFormatterBehaviour.cs:46) Common.UI.UIController.ComposableContextController.Apply (IComposable target) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/UI/UIController/ComposableContextController.cs:74) Common.UI.UIController.ComposableContextController.OnSetTarget () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/UI/UIController/ComposableContextController.cs:40) Xenonauts.Common.Xenopedia.ComposableXenopediaEntryController.OnSetTarget () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Screens/Common/Xenopedia/ComposableXenopediaEntryController.cs:15) Common.UI.DataStructures.UIController`1[T].SetTarget (.T target) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/UI/UIController/UIController.cs:118) Common.UI.DataStructures.AUILayoutController`2[Xenonauts.Common.Xenopedia.ComposableXenopediaEntryController,Artitas.Entity].Add (Artitas.Entity target, Boolean animate) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/UI/UIController/AUILayoutController.cs:164) UnityEngine.Debug:LogException(Exception) user_x55crash-5.json
  19. I think it'd be an improvement mostly because of how it affects player perception. I did very well in the Intel Hub, grabbed over 20 data sticks so I think I started with 42% cleaner network progress. So if Cells showed up at 50, I'd still see them after only a week. But even a short delay conveys a sense of, hey look, here's the next level of the Cleaner story, it's probably more difficult. When the Cells pop up right after you do the Intel Hub, the feeling it invokes is more like, okay, you did that mission, now go here. And that's the wrong feeling because you're not meant to tackle the Cells with Sergeants and ballistics. Besides, it'd make more narrative sense at 50% - the Xenonaut organisation should need at least a bit of time with the captured data to figure out how the Cleaner cells work and where they are exactly.
  20. I went with Veteran but with enabled health indicators because they help me give better feedback. I'm not saying the mission is too hard in itself - it's a challenge but it's a fine mission that rewards speed. The problem seems to be that it appears too early. When a mission appears, I assume that it's somewhat appropriate for what I have at the time. But the Cells appear so early they could be your third tactical mission and then you're on starting equipment with little-experienced soldiers, and then it's too hard. Depending on what others think, a reduction in enemy count or reinforce rate may be warranted, but my suggestion would be to make the Cells show up when your Cleaner network progress hits 50%, just to delay that initial appearance a bit.
  21. The autopsy shows up after the first mission where you encounter this anyway, doesn't it? I don't know if the ability itself is fine but there's definitely a problem with how it's being conveyed. Perhaps a text change would suffice, using different text for this ability than when aliens do psi attacks on their turn. Instead of "Soldier has been mesmerized", a more explicit "After missing the shot, Soldier gets mesmerized by the Psyon's gaze", which at least strongly hints as to what just happened.
  22. After a few missions, I'm finding burst fire from rifles to be very underpowered. I would expect it to be an effective tool if a rifleman closes in to within some 3 tiles of an enemy, but as it is, firing a burst is nearly suicidal. It remains inaccurate at such close ranges so you will not score a kill, and it also doesn't do enough suppression to suppress. You'll use up your TUs while scoring just one hit, if any, and your soldier is screwed. Burst should have a defined role - I think it would work well as an "oh crap" reliable short-range suppressor but anything really. The Cleaner Cell missions feel like a massive trap. I don't know if it was randomness but I got the cells revealed early - the Intelligence Hub spawned before I shot down the first UFO, so I went there, got tons of intel, revealed the cells. The intelligence hub is not too hard, enemies have no armour mostly and you have time until reinforcements arrive. Then the Cells are revealed right after, which gives you the impression you may go after them, but they're much, much harder than the Intel Hub or early UFO crashes. All Cleaners have 15 armour, you have five or six turns until they turn into a horde and your objective is to kill a psyon who will mesmerize anyone that misses a shot. It's doable with the right squad of course but the mission appears so early that you expect it to be easier.
  23. Aha. Okay, then perhaps not a bug but the numbers being way wrong - mind control seems rare but every missed shot against a psyon there is a mesmerize.
  24. I am not sure what's going on here exactly but it feels like aliens using psionic attacks as reaction fire of some sort. Here's a starting save from an abduction mission. If my soldier misses a shot then that soldier usually gets mesmerized or even mind controlled straight away. Should be easy to reproduce by playing a turn, perhaps two. auto_groundcombat_turn_1_start-53.json
  25. I am getting a repeatable CTD when I try to fire the smoke launcher of my MARS. Here's where I'm trying to shoot, but it's not just that tile. Exception: [INITIAL CRASH] System.InvalidCastException: A fatal error occurred during Update[] - Cannot cast from source type to destination type. Context: - Process:global::Common.RPG.AbilityEvent - AbilityID: Aimed Shot, Source: GlobalEntity 894 Item - Name:Smoke Launcher, Target: GlobalEntity 8124 - Cannot cast from source type to destination type. at Xenonauts.GroundCombat.Abilities.Shoot.ArcProjectile.ClosestUnobstructedAddress (Address startAddress, Address targetAddress, Xenonauts.GroundCombat.BaseConflict conflict) [0x00029] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\GroundCombat\Factories\Abilities\Shoot\ArcProjectile.cs:318 at Xenonauts.GroundCombat.Abilities.Shoot.ArcProjectile+<Calculate>c__AnonStorey0.<>m__2 (Address a) [0x00021] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\GroundCombat\Factories\Abilities\Shoot\ArcProjectile.cs:158 at (wrapper delegate-invoke) System.Func`2<Common.Boards.Address, Common.Boards.Address>:invoke_Address__this___Address (Common.Boards.Address) at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[Common.Boards.Address,Common.Boards.Address].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[Common.Boards.Address,Artitas.Utils.Optional`1[Common.Boards.Address]].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[Artitas.Utils.Optional`1[Common.Boards.Address]].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[Artitas.Utils.Optional`1[Common.Boards.Address],Common.Boards.Address].MoveNext () [0x00000] in <filename unknown>:0 at System.Collections.Generic.List`1[Common.Boards.Address].AddEnumerable (IEnumerable`1 enumerable) [0x0001a] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:128 at System.Collections.Generic.List`1[Common.Boards.Address]..ctor (IEnumerable`1 collection) [0x00025] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:65 at System.Linq.Enumerable.ToList[Address] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 at Xenonauts.GroundCombat.Abilities.Shoot.ArcProjectile.Calculate () [0x0047f] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\GroundCombat\Factories\Abilities\Shoot\ArcProjectile.cs:160 at Xenonauts.GroundCombat.Abilities.FirearmAbility.CalculateAndQueueShots (Common.RPG.AbilityState state) [0x002d5] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\GroundCombat\Factories\Abilities\FirearmAbility.cs:567 at Common.RPG.EffectDSL`1+<OnStart>c__AnonStorey0[Common.RPG.AbilityState].<>m__0 (Common.RPG.AbilityState state, Common.RPG.LifecycleEffect`1 effect, Status status) [0x00007] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Gameplay\RPG\Ability\EffectDSL.cs:29 at Common.RPG.DelegateLifecycleEffect`1[Common.RPG.AbilityState].Apply (Common.RPG.AbilityState state, Status status) [0x0000a] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Gameplay\RPG\Ability\Effects\LifecycleEffect.cs:66 at Common.RPG.AbilityState.Execute (IEvent event) [0x00066] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Gameplay\RPG\Ability\AbilityState.cs:193 at Common.RPG.AbilitySystem.HandleAbility (Common.RPG.AbilityEvent event) [0x001b0] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Gameplay\RPG\AbilitySystem.cs:297 at Common.RPG.AbilitySystem.Handle (IEvent trigger) [0x000bf] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Gameplay\RPG\AbilitySystem.cs:223 at Artitas.DebugProcessStrategy.ProcessEvent (IEvent queuedEvent) [0x001e7] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Artitas\Artitas.Core\Code\World.cs:1043 at Artitas.DefaultProcessStrategy.Process () [0x0003b] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Artitas\Artitas.Core\Code\World.cs:875 at Artitas.DebugProcessStrategy.Process () [0x0000e] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Artitas\Artitas.Core\Code\World.cs:975 at Artitas.World.Process () [0x00015] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Artitas\Artitas.Core\Code\World.cs:688 at Common.Screens.DataStructures.WorldManagedScreen`2[Xenonauts.GameScreens,Common.Screens.DataStructures.IScreenParameters].Update (Single deltaTime) [0x00042] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Lifecycles\ScreenLifecycle\DataStructures\WorldManagedScreen.cs:52 at Common.Screens.ScreenManager`1[Xenonauts.GameScreens].Update (Single deltaTime) [0x000f9] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Libraries\Common\Code\Lifecycles\ScreenLifecycle\ScreenManager.cs:175 at Xenonauts.XenonautsMain.Update () [0x00139] in F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\XenonautsMain.cs:795 2023-05-18 00:31:49,558 [FATAL] (F:\Jenkins\workspace\X2 (Build)\release-0.78.x\Assets\Code\Screens\XenonautsMain.cs:720) Exception in Unity lifecycle, marked as handled: InvalidCastException: [INITIAL CRASH] - A fatal error occurred during Update[] - Cannot cast from source type to destination type. Context: - Process:global::Common.RPG.AbilityEvent - AbilityID: Aimed Shot, Source: GlobalEntity 894 Item - Name:Smoke Launcher, Target: GlobalEntity 8124 - Cannot cast from source type to destination type. Xenonauts.GroundCombat.Abilities.Shoot.ArcProjectile.ClosestUnobstructedAddress (Address startAddress, Address targetAddress, Xenonauts.GroundCombat.BaseConflict conflict) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Screens/GroundCombat/Factories/Abilities/Shoot/ArcProjectile.cs:318) Xenonauts.GroundCombat.Abilities.Shoot.ArcProjectile+<Calculate>c__AnonStorey0.<>m__2 (Address a) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Screens/GroundCombat/Factories/Abilities/Shoot/ArcProjectile.cs:158) System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[Common.Boards.Address,Common.Boards.Address].MoveNext () System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[Common.Boards.Address,Artitas.Utils.Optional`1[Common.Boards.Address]].MoveNext () System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[Artitas.Utils.Optional`1[Common.Boards.Address]].MoveNext () System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[Artitas.Utils.Optional`1[Common.Boards.Address],Common.Boards.Address].MoveNext () System.Collections.Generic.List`1[Common.Boards.Address].AddEnumerable (IEnumerable`1 enumerable) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:128) System.Collections.Generic.List`1[Common.Boards.Address]..ctor (IEnumerable`1 collection) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:65) System.Linq.Enumerable.ToList[Address] (IEnumerable`1 source) Xenonauts.GroundCombat.Abilities.Shoot.ArcProjectile.Calculate () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Screens/GroundCombat/Factories/Abilities/Shoot/ArcProjectile.cs:160) Xenonauts.GroundCombat.Abilities.FirearmAbility.CalculateAndQueueShots (Common.RPG.AbilityState state) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Screens/GroundCombat/Factories/Abilities/FirearmAbility.cs:567) Common.RPG.EffectDSL`1+<OnStart>c__AnonStorey0[Common.RPG.AbilityState].<>m__0 (Common.RPG.AbilityState state, Common.RPG.LifecycleEffect`1 effect, Status status) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Gameplay/RPG/Ability/EffectDSL.cs:29) Common.RPG.DelegateLifecycleEffect`1[Common.RPG.AbilityState].Apply (Common.RPG.AbilityState state, Status status) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Gameplay/RPG/Ability/Effects/LifecycleEffect.cs:66) Common.RPG.AbilityState.Execute (IEvent event) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Gameplay/RPG/Ability/AbilityState.cs:193) Common.RPG.AbilitySystem.HandleAbility (Common.RPG.AbilityEvent event) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Gameplay/RPG/AbilitySystem.cs:297) Common.RPG.AbilitySystem.Handle (IEvent trigger) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Gameplay/RPG/AbilitySystem.cs:223) Artitas.DebugProcessStrategy.ProcessEvent (IEvent queuedEvent) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Artitas/Artitas.Core/Code/World.cs:1043) Artitas.DefaultProcessStrategy.Process () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Artitas/Artitas.Core/Code/World.cs:875) Artitas.DebugProcessStrategy.Process () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Artitas/Artitas.Core/Code/World.cs:975) Artitas.World.Process () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Artitas/Artitas.Core/Code/World.cs:688) Common.Screens.DataStructures.WorldManagedScreen`2[Xenonauts.GameScreens,Common.Screens.DataStructures.IScreenParameters].Update (Single deltaTime) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Lifecycles/ScreenLifecycle/DataStructures/WorldManagedScreen.cs:52) Common.Screens.ScreenManager`1[Xenonauts.GameScreens].Update (Single deltaTime) (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Libraries/Common/Code/Lifecycles/ScreenLifecycle/ScreenManager.cs:175) Xenonauts.XenonautsMain.Update () (at F:/Jenkins/workspace/X2 (Build)/release-0.78.x/Assets/Code/Screens/XenonautsMain.cs:795) UnityEngine.Debug:LogException(Exception) user_smoke-1.json
  • Create New...