Arcen Games

General Category => AI War II => AI War II - Modding => : StarKeep May 21, 2019, 06:50:30 PM

: Civilian Industries
: StarKeep May 21, 2019, 06:50:30 PM
Civilian Industries
Trade Wars

Every empire is only as strong as the people within. Protect your people, and they will help your empire flourish. From collecting and processing various resource around the galaxy to bolster the economy, to taking up arms on their own to aid your survival, you'll find their help invaluable in the long term. As they flourish, so do you.


Distributed with the game, check Game Options

Feature List:

Trade Stations
Militia Outposts
Patrol Posts
Protectors
Militia Barracks
Battlestation Expansion
Wormhole Raids
Faction Settings

Protectors
The Crackerjack Protector
-Raid Frigate with a damage bonus against all targets that have been on the planet for less than a minute.

The Thunderstrike Protector
-Siege Frigate with vastly increased hit radius and knockback on hit.

The Paladin Protector
-Suppressor with a powerful bubble shield and self sustain.

The Brick Breaker Protector
-Assault Frigate that is an expert at dealing with large, heavily armored, targets.

The Hurricane Protector
-Sniper Frigate that has a large radius Gravity Generator and can hit multiple targets at once.

The Excalibur Protector
-Melee Frigate that has a large number of close ranged tractor beams and takes less damage from distant targets.

The Grim Reaper Protector
-Raid Frigate that is excellent at absorbing the life force from weak ships to power itself.

The Wildfire Protector
-Frigate that fires off slow moving grenades at targets across the planet.

The Tangler Protector
-Warbird Frigate that can zip around the battlefield, vaporizing fast moving targets and paralyzing the rest.

The Orchestrator Protector
-Carrier Frigate that spawns decoy drones, grants planet wide Tachyon Coverage, and boosts the speed of all allied ships on its planet.
: Re: Player Trains - A Player Aligned Special Faction
: x4000 May 21, 2019, 09:51:28 PM
This is super cool!  I absolutely love having a mobile economy like this, where there are supply lines that might cause you to not get some metal if you don't defend them, etc.  I look forward to seeing what folks think of it as they test it out.  If it's something that seems solid, then I could see this as an added option in the lobby or something.  Not sure if needs to be its own faction, I haven't looked into the details.  But the description is killer.
: Re: Player Trains - A Player Aligned Special Faction
: StarKeep May 21, 2019, 11:55:30 PM
Chris himself posted! I'm going to take that as further inspiration to keep going with this.  ;)

If its possible to have units be aligned with a player, while not being controllable, it could be done without being its own faction. But I'm brand new and had no idea how to go that route, hah. Was far simpler to just see how other factions work, and stick this thing together as a result. Was a learning experience, even if it took 5 full recodes to get it into its current state.
: Re: Player Trains - A Player Aligned Special Faction
: x4000 May 22, 2019, 04:30:12 PM
Cheers!  In that regard, going with your own faction is by far the best choice.  That's what they are made for, and there's no real "cost" to having an extra faction when it's just living on existing planets anyhow.  The main "cost" to factions is if they require planets of their own, small galaxies might not have enough room.  But even things like the mercenaries are their own faction, because we want them to have their own AI and not be controllable by the player, for instance.

Badger did mention that you're using the C# Random class, which is something that I realized you would have absolutely no way to know not to do.  You and every other modder out there.  So I figured I would write up a little guide on how to avoid desyncs, and some of the pros and cons of a few approaches.  It should be useful for a lot of people, hopefully, if modding takes off: https://forums.arcengames.com/ai-war-ii-modding/quick-tips-for-how-to-avoid-multiplayer-desyncs-from-your-modding-code/
: Re: Player Trains - A Player Aligned Special Faction
: StarKeep May 23, 2019, 03:26:55 AM
Update! Source Code: https://hastebin.com/ovipegeked.cpp
(Will post source code now and than so people who don't frequent the discord can also enjoy browsing my absolutely perfect code.)

Contains no new content, but contains a bunch of tweaks and utility!

Utility:

Ingame:

Dynamic descriptions. Actually see whats happening!
Start station: Lists all train lines, along with capacity, build timers, number of ships in its train, and if its currently running or building.
End station: Lists capacity, build timer, number of ships in its train, and if its currently running or building.
Train ship: See if its currently part of a line, or idling around like a lazy bugger.
Reward stations: Lists precise numbers for the number of ships required for things to occur. (Aka, number of ships until next reward or upgrade.)

Outgame:

Added in a new external constants xml file. This allows both myself, and any of you who download this, to modify various values for the reward stations in games. If you want to set the turret cap per planet to 9 million and crash your game, by all means. (Please note, you will not actually crash your game.)
Will, of course, be updated as new reward stations are added.


Code:

Moved everything not related to game commands out of DoLongRangePlanning to help against potential desyncs in the future. (This was a pain, and the code is somewhat messy, but I think its understandable enough in how it works to not require a brand new recode to reorder it from scratch.)
Removed the use of local random number generation. (Didn't swap to Context random, but rather entirely redid how turrets upgrade themself with thanks to Badger.)
I stuck assault ri- *cough* I put in a bunch of sanity checks in various locations to hopefully nip any future bugs in the bud.
Fixed a bug where train cars would start stacking, and the train lines would start crashing the game in fear of all their goods going missing.
: Re: Player Trains - A Player Aligned Special Faction
: x4000 May 23, 2019, 08:30:27 AM
Awesome stuff!!  Have not looked at it in detail yet, but I love hearing about that sort of thing.  Gives me a vibe somewhere between games like Cities in Motion or Cities: Skylines, and the trade caravels and caravans in Age of Empires 1 (boy that was long ago).

I remember having to babysit those trade routes (from attackers) as an optional thing being both fun and frustrating depending on the circumstances.  I can see why they did away with them in later AOE games, but I feel like something was lost there.  When it's looked at entirely as a value-added amount of income and isn't something your economy is completely dependent on, then I think it's really a cool dynamic to have in play.
: Re: Player Trains - A Player Aligned Special Faction
: StarKeep June 19, 2019, 10:22:09 PM
Update for anybody who is/was interested in this mod.

Its still in production! I'm in the process of a large overhaul (hopefully one of the last ones this time) that implements minerals and actual fleet usage into the mod.

Its a fairly large process, but the fleet mechanic really, REALLY helps performance, and allows me much more freedom when it comes to just what I can do.
The minerals, on the other hand, allow me to do more interesting things in the long term (such as eventually allowing you to actually buy stuff from them if you build up their economy enough, as one example.)

Combined with learning both COBOL and Java in college as well, I'm... slow going. So I apologize for anybody who picked up the (somewhat unstable) early version.
: Re: Player Trains - A Player Aligned Special Faction
: ArnaudB October 17, 2019, 07:36:19 AM
I have wanting to try the mod and I had a (unsurprisingly) error in the log. Not a big thing to solve, it just lacks experience values for the units:

:
10/17/2019 1:31:34 PM EXPToGrantOnDeath: was 0 for StationStart.  It should either be set to a positive value (to give EXP), or to -1 (to indicate no EXP is granted).
10/17/2019 1:31:34 PM EXPToGrantOnDeath: was 0 for StationEnd.  It should either be set to a positive value (to give EXP), or to -1 (to indicate no EXP is granted).
10/17/2019 1:31:34 PM EXPToGrantOnDeath: was 0 for Train Ship.  It should either be set to a positive value (to give EXP), or to -1 (to indicate no EXP is granted).
10/17/2019 1:31:34 PM EXPToGrantOnDeath: was 0 for TrainYard.  It should either be set to a positive value (to give EXP), or to -1 (to indicate no EXP is granted).
10/17/2019 1:31:34 PM EXPToGrantOnDeath: was 0 for MilitiaMiner.  It should either be set to a positive value (to give EXP), or to -1 (to indicate no EXP is granted).
10/17/2019 1:31:34 PM Errors in reading GameEntityTypeDataTable
StationStart: is missing int attribute exp_to_grant_on_death
StationEnd: is missing int attribute exp_to_grant_on_death
Train Ship: is missing int attribute exp_to_grant_on_death
TrainYard: is missing int attribute exp_to_grant_on_death
MilitiaMiner: is missing int attribute exp_to_grant_on_death

Haven't tested the mod yet, the error showed up at startup. I'll see how it goes.
: Re: Civilian Industries
: StarKeep November 26, 2019, 11:03:56 PM
Civilian Industries
Beta Edition
Commerce must flow

Download: https://drive.google.com/open?id=14JCLZ_1l-gMVpeX5eR-YEi4i_F82yCPM
Note: You can safely ignore the error on the main menu related to the xmlmod table. It is a harmless error.

A long time coming, I present to you the initial version of the Civilian Industries mod, a reworked variant of Player Trains.

Currently contains the following:

A functional autonomously active trade system.
A functional militia system.

And... thats it for this version. Its built specifically to allow me to expand it easily in the future this time however, so no more full recoding at least.

Later intentions:
Resources based on capturables on the planet.
Buildings that convert said resources into goodies.
Ship and Outpost variations.
: Re: Civilian Industries
: StarKeep November 28, 2019, 02:06:50 AM
Updated
Arrival of Barracks
Added Militia Barracks, which request resources to build friendly VWings to patrol the planet.
Militia Barracks only spawn if all hostile wormholes on the planet have been covered by an Outpost.

Added an Intensity slider.
Changes spawn rate and build costs.

Militia ships now mark up as you gain AIP.
Militia Outposts now deploy closer to your command station.
Militia Ships are now sent back to the idle pool if their destination target becomes invalid, just like cargo ships.
Cargo Ships should be less likely to all group around the same few stations.

Next Goals:
Move Mark/Capacity away from AIP scaling and instead rely on capturables.
Set up some (basic) raiding logic for Barracks-spawnt units.
: Re: Civilian Industries
: StarKeep November 30, 2019, 06:44:17 AM
Updated
Trade Wars
Updated Threat Logic, Add More Resources
New Save Required

Further trade logic improvements.
Now uses a form of a Supply and Demand ticket system instead of the previous free-form supply and demand style.
Militia Buildings now drain resources to produce ships instead of immediately spending all of their resources the moment they have enough.
Removed the Grand Station resource drain mechanic.
Will have ways to directly profit off of their resources elsewhere.

Revamped the threat code.
Barracks-spawnt fleets will now attempt to defend and raid adjacent planets.

Civilians will build more stations than before.
Intensity Slider now influences the number of buildings that the Civilians build in response to hostile threat, among other things.

Ships spawnt by Militia Buildings will self-destruct if their home building is destroyed.

Trade Stations now get a random resource upon being built.
Added 3 more resources, with 3 more ships and turrets buildable as a result.
Grand Station now has an actual infinite supply of Goods.

Fixed some Null exceptions in relation to stations dying mid resource transfer.
Shrunk ths size of Cargo Ships now that they're more numerous.
: Re: Civilian Industries
: StarKeep November 30, 2019, 04:34:47 PM
Mini Update

Don't push updates when you're sleep deprived kids.

Fixed trade ships spending way too much time hanging around the grand station.

Fixed Militia Ships being way too scared to ever attack.

Fixed Militia Ships stacking with Ships from other Militia Fleets, resulting in ship counts being incorrect. (Thanks to Badger³ for pointing out the fix.)
: Re: Civilian Industries
: ArnaudB December 28, 2019, 06:02:09 AM
Some feedback on the mod since I had the opportunity to play with it.

It makes defenses easier especially in the early game. It also heavily encourage linked empires with a single AI planet between player-held planets so that cargo ships can stay in protected space. Fostering such linked empires rather than the more spread empire is a big point of attraction from the mod.

I do find it annoying that you MUST have a cleared path to the homeworld for every planet, or cargo ships will suicide trying to get to distant outposts. It can really hurt. I also find disappointing that multiple distant planets cannot support each other in any way, where trade is concerned. It'd be a lot more interesting to be able to make secondary stations for goods, rather than just the homeworld.

I don't find the balance too bad versus the AI. In low-AIP games (and diff below 8/9) the civilian army will help crush the waves, allowing for a more offensive playstyle than usual, which really help getting into the higher AIP encouraged by creating an interconnected empire. Bigger-scale attacks can get through civilians defenses. A bit more testing might be required, but work on performance would alter the balance anyway, so that's for later.

Performance is where the mod really hurts. When using a "kamikaze" hunter fleet with Astro trains running around, the constant shifting of civilians ships will ground the simulation to a halt. I managed to drop to 26% simulation speed at x10 speed, with no Nanocaust or other minor faction running around.
The why is pretty evident. You can end up with hundreds of cargo ships running around near-empty or straight up empty. Civilian fleets numbering in the thousands ships isn't rare at all (6000+ ships). Factories buildings pop up at a count between 15-20 per planet despite each only having two shiplines.
I understand the perspective of keeping civilian ships at mark between I and III for thematic reasons. For performance reasons however I'd recommend to throw away that approach and have them lag one Mark behind the player, then limit their numbers. Maybe the civilians could be given more frigates since the ship-cap for those is much lower. (It might also help since otherwise the player can draw the AI fleets' ire with their own fleets and leave the civilian bombard the AI with 3000+ Mark I snipers unchallenged).

I like the civilian military outposts (the mini fortresses). It really gives the civilian forces character rather than just having turrets.
: Re: Civilian Industries
: StarKeep January 06, 2020, 07:57:07 PM
Yeah the unit count and resource thing is great in theory, and good in low count practice, but is real hard to scale. People who get it working for entire galaxies are wizards.
After the trial run of them, a mission based system may be the only feasible way to do a larger scale, performance friendly style. (Akin to the AI Astro Train system.)

On Hiatus while I do some major catch-up and sanity-checking in college (again), but I'm glad you got some enjoyment out of them.
: Re: Civilian Industries
: x4000 January 08, 2020, 05:08:32 PM
Quick note, this will need to be recompiled with some very minor changes (just what you find errors in VS) to work properly in the new builds of the game.  I renamed a lot of the hooks to be a lot more clear, and that causes this to not compile properly anymore.  Sorry about that!  I know you have a lot of other things going on.
: Re: Civilian Industries
: Draco18s January 09, 2020, 10:16:29 AM
I renamed a lot of the hooks to be a lot more clear, and that causes this to not compile properly anymore.  Sorry about that!  I know you have a lot of other things going on.

:
[Deprecated]
public void OldHook(){
  DoNewHookBetterName();
}

 :P

Then you can clean them out at major version milestones, but minor versions maintain compatibility.
: Re: Civilian Industries
: BadgerBadger January 09, 2020, 12:24:37 PM
Probably a bit of overkill for a single mod.
: Re: Civilian Industries
: x4000 January 09, 2020, 03:49:19 PM
Yep it would be a good idea in the future, but for now there's only a single mod that is affected, as noted.
: Re: Civilian Industries
: Draco18s January 09, 2020, 04:26:13 PM
Yep it would be a good idea in the future, but for now there's only a single mod that is affected, as noted.

Sure, sure. :)
: Re: Civilian Industries
: StarKeep January 23, 2020, 01:03:35 AM
Performance and You
Main Post Updated, Download Link Updated

Save Compatibility is pretty much impossible due to the performance overhauls in this patch. Sorry. Eventually I'll get better at future-proofing, but there was a need for quite the overhaul for performance's sake. I'm slowly getting better at programming though, and the dream of a patch-safe update is still alive and strong.

Code Revamped for better late game performance.
Certain changes may potentially cause desync in multiplayer. They, for all intents and purposes, shouldn't, but noting this here for my future self to come back and laugh at if it happens.The performance gain is enough for this to be worth it for the time being.

Goods removed.

Grand Station no longer imports or exports cargo.
Militia Stations now only requests resources from their local Trade Station, OR adjacent planet trade stations if theirs is destroyed.
They will never search beyond that point.
Trade Stations have increased capacity and resource generation.
You now start with a Trade Station on your home planet.
-All these changes basically mean that your trade network can splinter, but survive. You still need to have a few cargo ships arrive on a planet in the first place, but afterwards, they'll be able to (somewhat) defend themselves with local shipments to their militia bases.
-They will attempt to ferry resources between stations (and, in fact, will do so much better than before), but won't attempt to do so across the entire galaxy anymore.


Every resource is now tied to a tech type.
Each Outpost and Patrol Post will roll one random ship (or turret, if outpost) type that uses the respective resource's tech.
Expect a much, much larger variety in units now. No more uniform ship style, your civies will simply use what they can find.

Current barracks renamed to Patrol Posts.
Patrol Posts can only be built around mines and are limited by the mine count on each planet.
Each planet will attempt to fully cover all wormholes and mines on its planet over time, but they will prioritize threatened planets first.

Ship counts have been notably lowered across the board as a result of all these new resources allowing some fairly hefty unit combinations by mid to late game.
Intensity and AIP have much larger effects on the end ship capacity values.
A new building has taken the name Barracks, and can be manually built by the player on any planet they control.
The Barracks increases ship/turret counts of all militia buildings by 33% or 1, whichever is higher, on its planet, and all adjacent planets.
The come with a whopping 5 million build cost, take ages to finish, and will be a constant drain of 100k energy, so these are some late-game metal sinks for people who always find themselves stocked,
a mid game choice for people who want better automated defenses, or an early game investment for people who want to dream big.
Due to its low metal flow, you'll find yourself capable of building this long term without feeling the burn too bad.

The AI will now launch periodic Exogalactic attacks meant to raid various trade stations. They will attempt to do so in time with waves sent by the ai for coordinated strikes.

Patrol Post mobile forces will no longer attempt to aid you in fights you have an overwhelming advantage in, unless they have nothing else they think they can currently be doing.
AI Ship targeting priority updated so they will no longer focus cargo ships over absolutely everything else.
Outpost/Patrol Posts have had increased defensive stats to make up for them no longer marking up.
Outposts will attempt to build themselves further away from the command station, and won't be requested for wormholes that are within (very) close proximity of a command station.
Cargo Ships are now smaller, to help with clutter when they arrive at stations in bulk.
: Re: Civilian Industries
: StarKeep January 23, 2020, 10:51:17 AM
Hotfix
Updated in Main Post
Save Compatible

Lowered the Scatter Wave scaling by a notable margin.

Fixed a bug that involved the Grand Station going MIA.

Fixed a bug that made Trade Stations and Grand Stations unkillable that was left in from testing.
: Re: Civilian Industries
: x4000 January 23, 2020, 12:26:21 PM
Love that this is evolving! :)
: Re: Civilian Industries
: StarKeep January 23, 2020, 11:26:15 PM
Civilian Industries - V 0.2.5 - Download Link Updated in Main Post
We now have a version in game. This is good, because it means I can support prior saves better.
This is bad, because I have no way to check for prior game versions.

So this'll break saves. But it'll be the last time for the 0.2 series.
For the forseeable future, expect every 0.0.X change to be save safe, 0.X.0 to be conditionally save safe, and X.0.0 change to bluescreen your computer.

Fixed a bug where Cargo Ships were not being correctly forgotten by the mod on death.

Overhauled Scatter Waves into Wormhole Raids.
-Every 15-30 minutes, the AI will launch an attack on a section of your trade network.
-You will be given a warning 60-120 seconds before the attack begins.
-This warning comes in the form of a bunch of wormholes appearing on planets around their primary target.
-Upon launching the attack, a large quantity of raid ships will attempt to rush down and kill every cargo ship on these planets.

: Re: Civilian Industries
: StarKeep January 24, 2020, 08:36:25 PM
Civilian Industries - V 0.2.6
Civilian Militia Ships
Download Link updated in main post

All Civilian militia ships are now pulled from a list (based on technology) of slightly modified vanilla designs.
No more randomly pulling from the game's tech list, as that kept capturing variations and oddities, such as Dyson units.
Patrol Posts and Outposts from prior versions will retain their old unit choices, but any time they acquire a new resource for the first time, it'll start using the new ship lists.

Due to missing turrets for some technologies, the following resources will produce a random civilian turret of another type instead:
Tungsten (Melee)
Radium (Raid)
Techrackum (Technologist)

Grand Station now has a 10 minute timer before it can be rebuilt if destroyed.
Trade Stations now have a 5 minute timer before being rebuilt after being destroyed.

Militia Barracks Energy Cost lowered to 50k.
: Re: Civilian Industries
: StarKeep January 26, 2020, 12:36:31 AM
Civilian Industries - V 0.3.0 - Battlestation Commander
Download updated in main post.
Laying out some framework for the rest of 0.3.X, so saves are broken.

Added: Militia Headquarters - 1 Million Metal - 100k Energy - Each Battlestation/Citadel you control can create one
All units built by this will treat the Battlestation/Citadel as their focal point, allowing you to maneuver them around as needed.
Built units will always be built from the Headquarters, however, so moving too far away will result in long travel times unless you fork out the money to rebuild the HQ elsewhere.
Is much beefier than the traditional Patrol Post on account of it being funded by the military.

Added: Trade Post - 500k Metal - 50k Energy - Each Battlestation/Citadel you control can create one
Acts like a Trade Station for the planet, except it only generates 66% of what a normal trade station would.
Can be built on any planet, even hostile. Does not send Protection Requests, as it is military owned.
Is much beefier than the traditional Trade Station on account of it being funded by the military.

Militia Capital Ships renamed to Militia Construction Ships. Weapons removed.
Changed how strength is calculated for Raids.
Lowered the cost to build civilian ships and turrets by 50%.
Cargo Ships will now be requested faster as your civilians expand, to help them fill out fringe worlds faster.
Other misc trading logic tweaks.
: Re: Civilian Industries
: StarKeep January 26, 2020, 02:50:33 PM
Civilian Industries - V 0.3.1 - Bugfixes, Balance, and Trade
Download Updated in Main Post

In order to fix a bug involving unit stacking (which I had believed fixed, but failed), all unit counts have been lowered to 25% of their original values.
Eventually plan to do-away with the fleet system so I can manually keep track of ships, but that will be later down the line.
Expect many explosions as your old units get cut down to size on old saves.
(Some units may still stick around stacked from old saves. This is harmless other than them getting the extra stats from being stacked.)

Increased the Shield Radius of Militia HQ by ~100%.
Increased the number of Trade Posts that each Battlestation can build to 5.

The endless quest for better trade logic continues.
Further increase to how quickly your civvies can build new cargo ships in response to needs.
Dialed back the amount of cargo ships that each station can request somewhat, as I had slightly overtuned it last patch.
There will be much more demand, and much less supply, so whenever a trade station finally puts out its request, expect to see it swarmed by cargo ships.
Grand Station now displays percentage until next ship built instead of a flat value.
If a Cargo Ship fails to acquire at least 50% of a resource while loading, it will return to the Idle pool instead of attempting to path to its destination with no cargo.
: Re: Civilian Industries
: ArnaudB January 27, 2020, 11:15:19 AM
Quite a lot that sounds good there. I'll try it soon.

A question regarding trade raid. Are they like Wormholes in that they can appear anywhere regardless of neutering or are they more limited? It isn't clear whether the raid wormhole is there as a warning of where they attack, or if it's a gate through which they come from.

What probably would make the most sense is for trade raider to attacks on AI planets that aren't captured, rather than heavily defended human planets, but we'll see.

I do hope that backline planets within neuteured clusters can be kept peaceful (save Wormholes invasion) with the Civilian Patrols' help and outposts. It's one thing that drew me to the mod, as otherwise CPA can draw even from neuteured worm and throw forces in the backline.

Need some testing to work it out.
: Re: Civilian Industries
: StarKeep January 27, 2020, 07:26:53 PM
Currently, ANY planet with a Trade Station is a valid raid target. I may add restrictions if they end up too potent, but the idea is for them to attack the juiciest spot.

Raids work by giving you a 60-120 seconds notification before it begins (varies between these times) which names it primary target, and spawns wormholes around the edge of the primary planet, and all planets adjacent to said planet.

In its current somewhat neutered state ( on account of the stacking issue ), they may struggle with defending against raids solo.

When buffed back up to their intended values, they (should) be able to knock off most raids solo before they take a command station, but expect the raid to eat some cargo ships here and there before they're killed. (They're picked from fast and/or stealthed raiding ships, so they're designed to munch cargo ships for dinner.)
: Re: Civilian Industries
: StarKeep January 28, 2020, 11:46:42 AM
Civilian Industries - V 0.4.0 - The New Trade Order
Saves Broken - Main Post Download Updated

Goodbye saves, hello trades.
This patch fixes a multitude of issues with using the npc fleets feature and stacking.
I built a simple method of keeping track of all units, and restructured my threat code to work around it.
Initial results shows full functionality, but do let me know if you see any oddities.

As payment for breaking saves (again), enjoy a vastly revamped trade system.
These changes may potentially slow the game down more by late game, but tests up to 10 planets still showed optimal performance.
They are especially good at no longer glomping every single station that has even a slight suction of resources, causing a vortex of new requests.

Alongside this, the UI for... pretty much everything has been updated to be more readable.
Resources are now color coded, percentages are displayed for everything, and militia will now specify if they're building or simply stockpiling resources.

Militia Buildings now use the same cargo system as the rest of the mod.
-They used to use a minimal system baked into their militia data. More than likely for performance in the past, but swapping them over now is a net positive.

Militia Buildings will no longer request resources that they're full on.
-Minimal logic for this was previously in place, but failed to account for... many circumstances.

Militia Building request urgency lowers the more ships that are already enroute.
-This means that cargo ships will prefer trades with militia stations that don't already have another ship enroute.

Trade Stations will now have an ACTUAL export request cap. It will be equal to around 200% their resource generation.
-My previous method for detecting incoming ships was flawwed, and failed to take account for ships already docked. Whoops.

Cargo Ships will no longer glomp trade stations the moment they have any resources, and will rather trickle in as they detect it has enough goods to share.
-Glomps are fun and all, but not that good for the economy.

Cargo Ships are now much more likely to take more than one resource from trade stations.
-Expect to never actually see many resources, besides the produced one, in trade stations however, on account of any resource being depositied by one cargo ship immediately being picked up by another.
: Re: Civilian Industries
: ArnaudB January 28, 2020, 03:59:40 PM
Hum, likely still performance issues with the last mod. Too many "MoveManyToOnePoint" apparently, that ends up causing massive slowdown. It throw errors in some cases. Oddly enough the simulation still show 500% and above but ships move much more slowly.
: Re: Civilian Industries
: StarKeep January 28, 2020, 07:12:16 PM
The command thing is fairly normal. Thats not a per second value, but rather the total number of commands since the save has been loaded (or the game has started, one or the other.) Consider thats the command count for an hour of gametime. Its very high, for sure, but this mod also needs to constantly redirect trade units. Unlike military, they can't simply be left alone upon arriving at a planet with AttackerFull.

The real issue is probably coming from be incorrectly drawing units from a grabbag (what the ai uses to divide its units up). I had, uh. Used the function that failed to replace the items in it.

Fixing it up, won't break your save, but will take a bit to confirm its working before releasing it, as it will cause the raid waves to be... beefier.
: Re: Civilian Industries
: StarKeep January 28, 2020, 07:44:09 PM
Civilian Industries - V 0.4.1 - Polite Raiding
Save Compatible with 0.4.0 Download In Main Updated

Fixed a bug where every ship used to raid with was semi-permanently removed from the AI as a choice.

Fixed a bug for militia ships where they may fail to find an optimal place to path to for an Outpost location.

Removed a bit of debugging code left in from the fleet-removing overhaul. (I missed one related to trading, whoops.)
: Re: Civilian Industries
: StarKeep January 30, 2020, 02:11:22 PM
So the amount of calculations that the mod does every second ended up getting to fairly obscene levels in regards to unit spawning. Every second every single Patrol Post and Outpost had to do the following for EVERY resource they've gotten at least one of:

If they don't have a unit type yet, get one.
Calculate the capacity for the unit type based on its strength, the current AIP, and the faction's Intensity.
Scan adjacent planets for player placed buildings that modify said capacity.
-Due to these being placed by the player, and me not having a way to do something after its been built, the only way was to loop through every special entity on adjacent planets. Not ideal.
Calculate current ship count. (# of entities + # of stacks in each entity)

The swap away from fleets really ended up being the breaking point for this, requiring me to do manual unit counts. Again, not bad individually, but these are done upwards of 12 times per second per planet per resource. Complete insanity. This is on top of having to also process trade requests, and properly route trade ships to answer said trade requests.

As a result, I'm going to be working on converting Patrol Posts and Outposts to dynamically spawn ships based on stored resources in response to threat. Outposts will begin rapidly building turrets when they detect an incoming wave or threat appears. Patrol Posts will do the same, as well as preparing pseudo-waves of ships to attack adjacent planets, instead of their old pathing logic. (Militia HQ will have a slight rework in functionality as a result from these changes, but they will still revolve around Battlestations.)

Another notable improvement for the next version will involve separating Import and Export requests into separate lists, instead of populating the same list with a modifier differentiating them. This will allow me to break off trade request processing far earlier on.
: Re: Civilian Industries
: StarKeep February 11, 2020, 11:02:55 PM
Its pretty sad that the main hiccup for this mod so far isn't the trade system, but the simple act of spawning in ships.

Wave-based spawns ended up feeling really, really subpar, so thats out the window. Back to trying to optimize unit spawning.
: Re: Civilian Industries
: StarKeep February 18, 2020, 04:57:23 PM
Civilian Industries - V 0.4.2 - Spawn On Time
Save Compatible

Trade Requests
-Optimization in regards to how Import and Export requests are stored and sorted.

Ship/Turret Spawning
-Updated how turret spawn points are chosen to be more optimal.
-Restructured the code in many moderate to major ways, the most notable being moving ship cap calculations to the background thread.
--Initial tests show all functionality is retained with notable performance increases, the struggle continues.

Raids
-Are much more deadly.
: Re: Civilian Industries
: StarKeep February 21, 2020, 08:25:00 PM
Civilian Industries - V 0.5.0 - The Protectors
Save Compatible

This is a large update, and includes many new ships. I am but a single person, so my primary goal with ship balance was 'don't one shot entire fleets' and 'be useful.'
If you try this out, please let me know which Protectors, if any, you have an issue with on either side of the power scale.

Protectors
-Added in a new ship class, the Protector. This is the Civilian equivalent of a Dire Guardian, and civilians can only build one per tech type per planet.
-When a planet has all of its Wormholes and Mines covered by buildings, it will than request a construction ship to build an Advanced Civilian Shipyard, which is where these units will be built.
-Requires a large investment of resources to produce.
-Battlestations and Citadels can build Militia Protector Shipyards in order to have Protectors spawn and support it.

The Crackerjack Protector
-Raid Frigate with a damage bonus against all targets that have been on the planet for less than a minute.

The Thunderstrike Protector
-Siege Frigate with vastly increased hit radius and knockback on hit.

The Paladin Protector
-Suppressor with a powerful bubble shield and self sustain.

The Brick Breaker Protector
-Assault Frigate that is an expert at dealing with large, heavily armored, targets.

The Hurricane Protector
-Sniper Frigate that has a large radius Gravity Generator and can hit multiple targets at once.

The Excalibur Protector
-Melee Frigate that has a large number of close ranged tractor beams and takes less damage from distant targets.

The Grim Reaper Protector
-Raid Frigate that is excellent at absorbing the life force from weak ships to power itself.

The Wildfire Protector
-Frigate that fires off slow moving grenades at targets.

The Tangler Protector
-Warbird Frigate that can zip around the battlefield, vaporizing fast moving targets and engine stunning the rest.

The Orchestrator Protector
-Carrier Frigate that spawns decoy drones, grants planet wide Tachyon Coverage, and boosts the speed of all allied ships on its planet.

Bugfixes/Tweaks
-Fixed a bug that caused Battlestation-spawnt units to not follow the Battlestation into hostile space.
-Building Percentages now display 2 decimal points.
-Fixed a bug where ships were getting cheaper over time instead of more expensive.
-Outposts now tech up from Citadel and Military Command Station tech.
-Patrol Posts now tech up from Citadel and Sentries tech.
-Militia HQ now tech up from Citadel and Forcefield tech.
-Grand Staion techs up from Economical, Logistic, and Engineering tech.
-Trade Station/Post techs up from Economical, Logistic, and Metal Generation tech.
--Trade Station/Post gains +1 additional resource generation for every mark.
-Cargo Ships now tech up from Metal Generation and Light tech.
-Militia Construction Ships now tech up from Engineering and Medium tech.
-Many of these tech changes resulted in more being capable of being built.
: Re: Civilian Industries
: StarKeep February 22, 2020, 01:19:36 AM
Civilian Industries - V 0.5.1 - The Protectors Price Purge
Save Compatible

-Reduced the base cost of Protector class ships by ~50%.
: Re: Civilian Industries
: StarKeep February 22, 2020, 04:03:15 AM
Civilian Industries - V 0.5.2 - The Performance Protection
Save Compatible

-Fixed a bug that caused the game to slooowly grind to a halt after building your first Battlestation building.
--Retroactively fixes it from prior saves.
: Re: Civilian Industries
: StarKeep February 22, 2020, 10:24:17 PM
Civilian Industries - V 0.5.3 - Swapping the Scales
Save Compatible

Updated Turrets to be the same overall stats, but lower capacity. Unlike fleetships, which stack and benefit from swarms for the purpose of feeling like weak little civilian ships, turrets didn't really accomplish that same goal and just ended up being maximum clutter.
Protectors have gotten some various stat changes, the most important ones being increased durability and more immunity to various effects.

-Inverted civilian turrets from half power, double cap, to double power, half cap.
--Smaller units felt fitting for them; but they got to some insane levels of spam in higher intensities and aip.

-Protector stats updated to be immune to many effects such as Zombification
-Protector base durability increased by 100%.
-Increased the scale of some of the smaller Protectors.
-Protector Paladin shield radius doubled.
: Re: Civilian Industries
: StarKeep February 23, 2020, 09:17:12 PM
Civilian Industries - V 0.5.4 - The New Pathfinder
Save Compatible

Updated pathfinding logic for threat reaction to help stop ships from dipping in and out of planets, or going into planets alone due to them arriving after the order to retreat was given.
Updated a few movement commands to be assigned in bulk.
Fixed a bug where Protectors were not being considered in strength calculations.
: Re: Civilian Industries
: Parch February 28, 2020, 05:10:18 PM
This mod is really awesome. I didn't find out about this mod until someone told me about it. You should promote it more!
: Re: Civilian Industries
: StarKeep February 28, 2020, 10:23:28 PM
I appreciate it. I don't want to widely share it however until its in a better state. Its feature rich, and has (fairly good) performance, but there are still the occasional bugs and save-breaking updates. Especially the next one that swaps trade details to xml.
: Re: Civilian Industries
: Parch February 29, 2020, 05:20:40 PM
Do you have a roadmap of some sorts for what you plan to add to this mod in the future? I'm curious on what's next!
: Re: Civilian Industries
: StarKeep February 29, 2020, 06:14:48 PM
0.6 Will be dedicated to converting trade to being xml defined, so no real new content is planned.

0.7 Will be dedicated to special faction integration; so trading with allied Marauders/Nanocaust/Macropahge. (Think less trade in the case of Nano/Macro, and more 'we're studying them and returning resources to study and reproduce their abilities.)

0.8 and on is not yet decided and is based on the prior. Planning too far ahead on something that I do for fun isn't fun. (;
: Re: Civilian Industries
: deadone March 04, 2020, 05:51:00 AM
Nice mod!
The players now has his own automated Wardenfleet 8)

PS: In my logs,(https://imgur.com/a/Teu1h4h) i see there were no raids for over 2 hours..
: Re: Civilian Industries
: StarKeep March 04, 2020, 11:18:09 AM
I'd need your save in order to figure out what went wrong; as theres nothing obviously sticking out.
: Re: Civilian Industries
: StarKeep March 05, 2020, 09:44:34 AM
Updated the download link with a new version of the dll that should work on the latest update for people having issues.
: Re: Civilian Industries
: StarKeep March 06, 2020, 12:27:06 PM
Updated the fixed dll to remove a left over debug line that spammed your chat log. Whoops.

Thanks to Mike007 on Discord for reporting.
: Re: Civilian Industries
: WolfWhiteFire March 12, 2020, 03:45:26 PM
How exactly do you download and enable this mod? I have it in C:\Program Files (x86)\Steam\steamapps\common\AI War 2\XMLMods\Civilian Industry unzipped, however when I actually try playing the game the faction does not appear in the lobby, so I am wondering if I stored it in the wrong location.
: Re: Civilian Industries
: ArnaudB March 13, 2020, 08:20:25 AM
so I am wondering if I stored it in the wrong location.
Yes, you did.

Extract the file in : "C:\Program Files (x86)\Steam\steamapps\common\AI War 2" instead

The folder in XML mod must be "SKCivilianIndustry" and not "Civilian Industry". The "Gamedata" folder must merge with the game's Gamedata folder (which is what happens if you do "extract here" on the .rar in "C:\Program Files (x86)\Steam\steamapps\common\AI War 2"

Do that and check "add faction" in the lobby after booting the game, if Civilian Industry show up. Do tell if it worked.
: Re: Civilian Industries
: WolfWhiteFire March 14, 2020, 03:49:13 PM
It worked, thanks for the help.
: Re: Civilian Industries
: ArnaudB March 20, 2020, 05:33:03 AM
I am working on using the mod more, though it puzzles me a few times.

Part of it is the delay to see changes. From what I understand it civilian buildings takes priority over military station for cargo-ships, so Militia Heartquarters can take several minutes or more before a cargo ship arrives to start production. I think each heartquarter produces different ships for military like civilian, but it might be by planet for military.

I noticed pretty much all trade stations are maxed out at 24XX/2500 on their resources, even in a completely secure environnement. It might make the battlestations trade post sort of redundants. Though, there are less cargo ships everywhere which used to be a sort of problem. I do like the new mini-cargo ships, it's cute and make the planet less visually busy.

The ship caps on the heartquarter kind of confuses me. I think the cap increase when you have more of a resource available(ie, more trade post of that resources). Though with cargo ships having difficulties bringing the goods sometimes, it led to me building 4 trade posts on a planet 5 hops away from the homeworld, with the heartquarter on the homeworld at 0/324 sniper for over 30min so far (though it might have built a few at some point?). Anyway, I think the more trade post boosting ship cap is what is happening but I am unsure if there are others factors.

I am still experimenting so I haven't gone far with the military various boosters to boolster cap. As far as I can tell, I need to build wide initially to get more planets boosting more caps and allowing the civilian patrols of each planet to reinforce their neighbors at need. Then when I get enough energy, I should build tall in a cluster with 2-3 battlestation to get crazy-high cap everywhere and use that both for defense and overwhelming defense. We'll see.

Logistical Station on pretty much every planet seems to be a given with Civilian Industry. It allows the cargo ships to move faster as well as the patrols, gives me the best defensive options against raid, while pumping enough energy to get by. Also because science needs to go wide since the first two tech levels are a significant boost to all civilian forces, I need all kinds of tech, meaning investing in a single type of station is the superior option. A focus on light hull might be better too, since it upgrades cargo ships though I don't know if it just makes them tougher or also boost their cargo size.


In term of offensive use, I use the the battlestations forces as reinforcement, with my main fleets taking the brunt of the damage and initial attack when invading a planet. It's easier to refill the main fleets but the civilian battlestation-fleet can adds significant firepower when clearing a world. It certainly helps that in my last game I got a focus on long-range civilian with Steel giving me Concussion ships.

Performance wise, things seems a lot better than they use to be. I am playing a 200 hundred planets game to test it so we'll see how that evolves.

Edit: After focusing on a save where I slowly went from one to four planet I seem to get where the problem lies with Cargo being "slow" to get resources around. It looks like they spend a lot, like a lot, of time loading/unloading trade posts in order to get 100/100 of each resource loaded before going to a military post/base/Etc...

So, they "unload" at a trade post lacking a specific kind of good, then load up... except that in some case in the process of "loading up" they go to another trade post because "it's lacking in X and Y resources" among 3-5 different resources. But then the trade post where they loaded up is empty again... so they start taking out resources from the post they just refilled and go back to "solve" the shortage on the earlier one. A vicious cycle.

If you cheese RNG to have only a single type of resources (or use just the homeworld early on) the cargo ships perform incredibly well.
: Re: Civilian Industries
: StarKeep March 29, 2020, 05:42:38 AM
@ ArnaudB Appreciate that, been doing a bit of work on trade logic based on that feedback, and some feedback from discord, and the results in testing have been promising.

Civilian Industries - V 0.5.5 - Trade Regulations
Save Compatible

Time for more of everyone's favorite: Trade logic improvements.
Improvements this time: Absolute priority for militia buildings, better resource spreading, and the removal of some hard caps.

Removed the global 3 hop limiter for the assignment of Cargo Ships to Routes.
-Plus, this will make them more willing to expand into new territory.
-Plus, stations that would previously fail to start a route that is entirely valid will now look further to find cargo ships to fulfill their request.
-Negative, this may result in some Cargo Ships becoming suicidal in their attempts to deliver their precious cargo.
--This was a previous limiter added to assist with late game lag. Due to the many improvements since its addition however, the positives for removing it outweigh the negatives.

(Potentially) fixed a bug that resulted in all of your planets gaining the ability to build buildings that only Battlestations should.
-This was an extremely odd bug, still not quite sure how it could happen.

Updated a bit of the pathfinding logic to have slightly less redundant orders given.

Civilians will now Tachyon Burst planets if 90% of the remaining ships have cloaking.
-This can only occur a maximum of once per 30 seconds.

You will now be granted vision of any planets that the Civilians are actively attacking.

Civilians will now consider all hostile planets hostile, not just those owned by the ai.
: Re: Civilian Industries
: StarKeep March 29, 2020, 02:42:15 PM
Civilian Industries - V 0.5.6 - Stop Being Lazy
Save Compatible

Militia Ships no longer have 24/7 union regulated breaks.

Due to an oversight, whenever the player was previously attacking an adjacent planet, they would nearly always wait until you're finished.
-This has been fixed and they are now always back on the clock.

They will now attempt to clear out Unarmed Guardposts before leaving planets.
-In some cases, they may leave them if a more powerful target appears elsewhere, but they should return back to finish the job later if this occurs.
: Re: Civilian Industries
: StarKeep March 29, 2020, 05:29:34 PM
Mini Update
Removed the planet vision portion of 0.5.5's update due to a bug.
: Re: Civilian Industries
: ArnaudB March 31, 2020, 04:44:34 AM
I took the last update for a spin on a straightforward single diff7 AI.

First thing I noticed was that cargo ships do (in 5.6) work better. They supply local heartquarters a lot better, the civilian fleet defended... correctly. I  did notice a huge struggle for them to cap out either my stations ships or the civilian ones ships/turrets, which could be either because I kept expanding and a 4h game is very fast. I also built tall, meaning that many civilian ships were low-Marks and thus likely died easy. On the other hand this was a basic Ai7 that was wholly outmatch.

My heartquarters struggled to cap out though. It could be because I moved my fleets a LOT but at the same time I often had powerful positions and even on my planet with 4 trade posts and 1 military HQ, the (disruptive) ship never capped out at my HQ. I ultimately ended up using "distant scrapping" on my battlestation because the QoL of freeing turrets across multiple planets outweighted keeping the trade posts and HQs alive. They simply didn't refill fast enough to be helpful.

I made a bunch of trade posts like mentioned above on a single planet, 4 or so, since it seems having more trade posts increase the building speed of cargo ships (slightly). It still was never enough to drop any trade post below 2450-2500. I am leery of buffing too much supplying times balance-wise, but some way for the player to speed up supplying might be nice. As it's, even with complete domination of the galaxy (the AI only killed one of my station once) the transfer-supply rates are too low.
Maybe some way for the player to boost either cargo ships numbers or their loading/unloading speed? Maybe trade posts/stations could use their excess resources (when at 2500) to contribute to cargo building, or maybe for performance they could make a "Train" that would perform like a cargo ship but much better, something for the player to protect.

Defence-wise I found the civilians pretty helpful though raid means you need to build exclusively logistical over economic stations since raiders are hard to stop from killing stations. It also makes protecting capturables a much tougher task, so hacking is better on higher difficulties (not 7, but multiple 7 or 9, yes.)
Even with 4 trade posts contributing for disruptium I had numerous civilian stations low enough on resource to have 2/10 Pike turrets.

I added three saves of that game below, in case it's useful for data gathering.

*

On a useful note, I found how to prevent scrapping distant trade posts and others things by looking at the Major Data Center data.  You just need to add the following line to their entity data:

is_critical_infrastructure="true"

Like this:

:
<entity name="TradePost" display_name="Trade Post" copy_from="TradeStation" tags="CivilianIndustryEntity,TradePost"
                build_sidebar_categories_i_am_part_of="MilitiaBuildings"
                special_entity_type="NPCFactionCenterpiece"
                description="A military funded trade post. Upgraded by Economic and Logistic Command and Metal Generation Tech."
                hull_points="250000" shield_points="500000"
                metal_cost="500000" energy_consumption="100000"
                visuals_scale_multiplier="5" size_scale="5"
                tech_upgrades_that_benefit_me="CommandEconomic,CommandLogistical,MetalGeneration"
is_critical_infrastructure="true"
    >
        <metal_flow purpose="SelfConstruction" throughput="500"/>
    </entity>
[/s]
Further testing showed this didn't work again, though it weirdly worked once. Odd.

Good luck and thank you for your great work!
: Re: Civilian Industries
: shoter March 31, 2020, 08:23:11 AM
Hello Starkeep,

You have very nice mod out there and I would like to help you out with this mod.
The problem is that your mod does not have any license on Github nor project structure known for C# and therefore it is hard to help you with that. I think ti would be better to upload whole project structure along with .sln and .csproj instead of just putting .cs files.

Thanks for great mod,
Shoter

: Re: Civilian Industries
: StarKeep March 31, 2020, 03:27:03 PM
@ ArnaudB - I do think I've figured that out. The changing of trade logic from main thread to background thread means that they only increment the build counter whenever the background thread is finished. This essentially means that unlike before, when it would send requests for more ships when needed every second, it can take up to 2, at some points, to do so currently. Simple enough fix is to have the background thread update the request counter and the main thread spawn based on it.

@ Shoter - Yeah, the github was mostly created as a way to showcase how the mod does what it does to hopefully inspire others to make their own mods, and was started before I was really aware of how Github really worked. It has basically been something that I started out learning programming with nearly a year ago, and has been constantly modified as I've learnt more from either it or classes.
Between my inexperience in programming and how often I have to break down and rebuild sections of the mod as a result of this, I would recommend against helping me for your sanity's sake; but I'll look into updating the Git with a proper license and the full project regardless.
: Re: Civilian Industries
: StarKeep March 31, 2020, 11:13:44 PM
Civilian Industries - V 0.5.7 - Requests in Triplicate
Save Compatible

Cargo Ship requests are now completed in bulk.
-Whenever the Grand Station fires a spawning event, it will spawn a varying amount of cargo ships, based on the amount of demand for them.

Maximum exports for a resource production station increased from 2 per generated to 5 per generated.
-Aka, previously, something that generated 7 per second could export up to 14 routes. It would now export up to 35.
-This will make them more aggressively drain resources from stations, especially as they fill up.
-Note that this is the cap if they are at 2500/2500 resources. They will put out fewer requests the fewer resources they have.
-May result in some shortages here and there; but thats better than the alternative of having resources sitting around doing nothing.

Grand Station no longer displays build timers.
-This has lost its purpose due to it no longer being a passive over time occurence.

Fixed an Index was out of range Exception.
-Thanks to ussdefiant60 on Discord for the report.

Trade Post energy cost reduced to 50k.

Protector Balancing
-I apparently undershot pretty much everything, considering how long it takes these to come off the production line.

Crackerjack
-Fire rate 6 -> 3
-Shots per Salvo 1 -> 3

Thunderstrike
-Base knockback 3000 -> 5000
-Area of Effect 1500 -> 2000

Paladin
-Base shield radius 10x -> 6x

Brick Breaker
-Rate of fire 3 -> 1
-Base damage 700 -> 1000

Hurricane
-Base damage 300 -> 800

Excalibur
-Base damage 335 -> 1500
-Shots per salvo 30 -> 50

Grim Reaper
-Base damage 100 -> 500

Wildfire
-Size reduced by ~14%.
-Grenade base damage 60 -> 800
-Grenade shots per salveo 5 -> 8

Tangler
-Vine Piercer base damage 300 -> 800

Orchestrator
-Base planetary speed boost 200% -> 120%
-Planetary speed boost increase per mark 25% -> 5%
: Re: Civilian Industries
: StarKeep April 03, 2020, 06:27:27 PM
Civilian Industries - V 0.6.0 - Warring Companies
Saves Mostly Broken
-They will load, but some odd side effects may occur.

Civilian Industries can now be added to minor faction teams.
-They require a friendly stationary building and friendly strength superiority on a planet before they will spawn in.

Civilians will now expand to and protect Trade Posts you place on neutral or hostile planets.

Civilian ship capacity now scales with Trade Station count rather than AIP.

Fixed a bug where units were always spawning in at mark 1 instead of their intended mark.

Trade Post base count 5 -> 3
Protector Shipyards count no longer increases with tech
Protector Shipyards energy 100k -> 125k
Militia Barracks base count 3 -> 1
Militia Barracks energy 50k -> 75k

Civilian Warbird Frigates
-Targets per salvo 16 -> 4
-Damage per shot 560 -> 2240
--Should help with their ability to stunlock entire fleets.

Added a new Melee, Raid, and Technologist turret.
-The Kinetic Spike turret, mid ranged shield-piercing weapon and a single tractor beam
-The Blitz Cannon turret, long ranged weapon that deals bonus damage to high health targets
-The Techno Babble turret, mid plinky weapon and tachyon coverage
: Re: Civilian Industries
: StarKeep April 05, 2020, 09:29:28 PM
Civilian Industries - V 0.6.1 - Breaking Brakes
Saves Compatible

Reworked the unit cap scaling formula. Again.
-Will hopefully help with the extreme late-game scaling.
-Not using AIP is hard.

Militia Stations can now only recieve resources from a trade station on their own planet.
-Used to be able to get resources from any trade station within one hop.
-This gives you and the ai a weak point to aim for on strongly defended planets.
-It also makes it more obvious when a planet is full of its own resource, due to its primary caps being closer to full.

Pathfinding logic has been set up to use bulk movement.
-You can see how many movement commands are being done by just the mod now.
--SetWormholePath_CivilianIndustryBulk and MoveManyToOnePoint_CivilianIndustryBulk

Fixed a potential bug where a movement command could be sent without a point to move to.
-This was a confusing one, thanks to ArnaudB on Discord for the report and save.

The Barracks changes were not actually included the last version, because I'm a goof.
-After further testing, its cost is now a full 100k, and it now properly sticks to a count of 1 regardless of mark.
-In addition, Barracks now stack additively instead of multiplicatively

Added in a multitude of settings that will let you tweak various portions of the mod.
-These can be found under Galaxy-Wide Settings in game.
-The default values are set to what I personally use and is what the mod is mostly optimized for, but I've given some leeway on some options that shouldn't break anything.
-For info on what each option does, you can mouse over it in the menu.
: Re: Civilian Industries
: StarKeep April 05, 2020, 11:18:28 PM
Hotfix
Uploaded a fix to Trade Posts (the ones built by battlestations) causing an error on mouse over.
: Re: Civilian Industries
: StarKeep April 07, 2020, 04:18:41 PM
Civilian Industries - V 0.6.3 - Togge'm
Save Compatible

Can now toggle the ability for your Civilians to expand alongside your other allies, instead of just you.
Can now choose the minimum hostile strength required for a planet to be considered a valid target for your militia.

Raid strength now scales with intensity.
-Intensity 5 is the old strength.
-Intensity 1 is 80~% of the old strength.
-Intensity 10 is 120~% of the old strength.

You no longer receive notifications about raids against non-friendly Civilians.

Defaulted the Civilian AI to being player aligned if they somehow get added to the game without an Allegiance set.
-This was an odd one. Thanks to ArnaudB on Discord for the save.

Removed the logic that caused Civilians to leave a planet after it has less than 1 strength.
-This was conflicting with the recent logic that had them stay on planets to kill Unarmed Guardposts.
-They will still leave if another valid target appears; this purely applies to their 'no current target' idle logic.
: Re: Civilian Industries
: StarKeep April 08, 2020, 01:44:32 PM
Hotfix

Updated to work with the latest patch; making use of the new pathfinding system to (hopefully) have cargo ships take the absolute safest route rather than bee-lining for their goals.
: Re: Civilian Industries
: StarKeep May 08, 2020, 07:22:14 PM
Compatibility Patch

Updated to work with the latest patch.
: Re: Civilian Industries
: Endovior May 18, 2020, 08:30:05 AM
Got a bug report for you.

I decided to run with Strength 10 Civilian Industry to see what they can do, while also running Fallen Spire in an economically-focused layout, so as to afford a large number of Militia Barracks.

Once they get going, it turns out that what they do is given an error about too many ships being moved:

(https://i.imgur.com/Q5sxFAt.png)

5/18/2020 8:07:24 AM
command.RelatedPoints.Count < 1 in GameCommand_MoveManyToOnePoint!
GameCommand Details:MoveManyToOnePoint
  RelatedFactionIndex:-1


  at System.Environment.get_StackTrace () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, System.Boolean IncludeStackTrace, Arcen.Universal.Verbosity Verbosity) [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, Arcen.Universal.Verbosity Verbosity) [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at Arcen.AIW2.External.GameCommand_MoveManyToOnePoint.Execute (Arcen.AIW2.Core.GameCommand command, Arcen.AIW2.Core.ArcenSimContext context) [0x00000] in <7b6b002fcbb1455cb82907735df64082>:0
  at Arcen.AIW2.Core.GameCommand.Execute (Arcen.AIW2.Core.ArcenSimContext Context) [0x00000] in <25939fe1becd42db8b36ff4523b6f44c>:0
  at Arcen.AIW2.Core.World_AIW2.OnClient_ExecuteGameCommandsReceivedFromServer (Arcen.AIW2.Core.ArcenSimContext Context) [0x00000] in <25939fe1becd42db8b36ff4523b6f44c>:0
  at Arcen.AIW2.External.SimPlannerImplementation.DoActualSimStep (System.Boolean& stalledWaitingOnConnections, System.Boolean& mayUpdateVisuals) [0x00000] in <7b6b002fcbb1455cb82907735df64082>:0
  at Arcen.AIW2.Core.Engine_AIW2.ProcessSimStep (System.Boolean& stalledWaitingOnConnections) [0x00000] in <25939fe1becd42db8b36ff4523b6f44c>:0
  at Arcen.Universal.Engine_Universal.OnUpdateFromMainThread () [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at ArcenGameController.Update () [0x00000] in <ab0d680e0f374bfb9d26811ca45e8872>:0

Note that the error above appears in my Debug Log 56 times in one second after initial appearance, exceeding the maximum post length for this forum. This appears to be fatal, since it'll continue showing up dozens of times a second if I attempt to ignore it, along with errors like:

5/18/2020 8:20:11 AM
QueueGameCommand invalid ExecuteOnFrameNumber for game command:

GameCommand Details:SetTargetList
  ToBeQueued:False
  RelatedEntityIDs(474): 747579, 747580, 747586, 747679, 747710, 747721, 747729, 747730, 747731, 747746, 747749, 747753, 747772, 747774, 747779, 747782, 747787, 747794, 747795, 747806, 747824, 747828, 747837, 747838, 747862, 747866, 747902, 747909, 748094, 748098, 748104, 748107, 748109, 748113, 748115, 748121, 748122, 748123, 748129, 748136, 748140, 748145, 748147, 748149, 748155, 748156, 748174, 748190, 748195, 748199, 748205, 748206, 748219, 748230, 748234, 748236, 748240, 748250, 748257, 748266, 748271, 749222, 749226, 749246, 749251, 749256, 749259, 749262, 749275, 749309, 749310, 749321, 749347, 749360, 749372, 749375, 749382, 749390, 749397, 749430, 749434, 749441, 749479, 749497, 749504, 749505, 749518, 749526, 749532, 749536, 749554, 749571, 749577, 749582, 749585, 749587, 749591, 749600, 749612, 749616, 749644, 749656, 749659, 749668, 749672, 749675, 749685, 749690, 749700, 749704, 749719, 749723, 749744, 749756, 749767, 749772, 750345, 750371, 750385, 750390, 750403, 750405, 750406, 750409, 750420, 750446, 750470, 750471, 750472, 750476, 750487, 750497, 750511, 750513, 750524, 750530, 750935, 750940, 750982, 750986, 750993, 750996, 751003, 751142, 751157, 751161, 751163, 751164, 751180, 751192, 751202, 751207, 751381, 751327, 752557, 752558, 752559, 752560, 752561, 752562, 752571, 752572, 752577, 752586, 752587, 752588, 752589, 752590, 752591, 752593, 752595, 752597, 752598, 752599, 752600, 752640, 752641, 752642, 752643, 752644, 752645, 752646, 752647, 751313, 751318, 751323, 751330, 752739, 76412, 76412, 77416, 77416, 77804, 77804, 78710, 78710, 79629, 82920, 83879, 92663, 92663, 99376, 99376, 99462, 99462, 99732, 99732, 99807, 99807, 100025, 100025, 100105, 100105, 100135, 100135, 100424, 100424, 100464, 100464, 100971, 100971, 101583, 101583, 101593, 101593, 101601, 101601, 101602, 101602, 102353, 102353, 104703, 104703, 104811, 104811, 110038, 110038, 112814, 112814, 112837, 112837, 112873, 112873, 113292, 113292, 113293, 113293, 113399, 113399, 113591, 113591, 113592, 113592, 113655, 113655, 113726, 113726, 114189, 114189, 114205, 114364, 114364, 114434, 114434, 114474, 114474, 114527, 114527, 115327, 115327, 115883, 115883, 117759, 117759, 119369, 119369, 119716, 119716, 120672, 120672, 120915, 120915, 127633, 127633, 129273, 129273, 129682, 129682, 131062, 131062, 131264, 131264, 131526, 131526, 132232, 132232, 132498, 132498, 139742, 139742, 139931, 141732, 141732, 142042, 142042, 142275, 142275, 142425, 142658, 142658, 142785, 142785, 142786, 142786, 142936, 142936, 143019, 143019, 144373, 144373, 144706, 144706, 144896, 144896, 144961, 144961, 145129, 145462, 145462, 145770, 145770, 145880, 145880, 146235, 146372, 146372, 146415, 146415, 148001, 148002, 148002, 148733, 148733, 149773, 149773, 152229, 152229, 155477, 155477, 158599, 158599, 160470, 160470, 160779, 161719, 163703, 166241, 166241, 170765, 170765, 171286, 171286, 176153, 176153, 176665, 177518, 179767, 182978, 185465, 185465, 186035, 186036, 186036, 191336, 191336, 193429, 193429, 196440, 196440, 203570, 204098, 205121, 205467, 205467, 205824, 205825, 206519, 206519, 209461, 209461, 209828, 211484, 211484, 212923, 213286, 213286, 214829, 215741, 215741, 216464, 216465, 216465, 216644, 216645, 216645, 219022, 222463, 222463, 222464, 222920, 222920, 223992, 224433, 224454, 224454, 224702, 224702, 225412, 225412, 226066, 226066, 226267, 226267, 229388, 230636, 230636, 235144, 235144, 236443, 236443, 240684, 240684, 241050, 241050, 242299, 242300, 245355, 245355, 246047, 246047, 249431, 249431, 250950, 250950, 255233, 255233, 257323, 261340, 261340, 264061, 264061, 266330, 267770, 268503, 268503, 272890, 272890, 274826, 274826, 276035, 281364, 281552, 281552, 283701, 283701, 284097, 284835, 288332, 288332, 289319, 290292, 292116, 292116, 292718
  RelatedPoints(0):
  FromActualInputEventOfPlayerID:-1
  CameFromMultiplayerClientConnectionIndex:-1
  ExecuteOnFrameNumber:-1
  RelatedMagnitude:0
  PlanetOrderWasIssuedFrom:-1
  RelatedBool:False
  RelatedFactionIndex:-1
  RelatedSetup:null
  RelatedString:
  RelatedString2:
  RelatedString3:
  RelatedEnumValue:0
  RelatedModdableCommandCode:
  RelatedIntegers(474): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1
  RelatedIntegers2(474): 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 6, 7, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 6, 8, 8, 8, 8, 8, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 8, 8, 8, 7, 6, 8, 8, 8, 8, 8, 8, 6, 6, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 30, 25, 30, 25, 30, 25, 30, 25, 7, 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 20, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 8, 25, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 8, 8, 6, 25, 8, 8, 8, 8, 8, 8, 8, 21, 8, 8, 25, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 25, 8, 8, 8, 8, 25, 4, 8, 8, 1, 8, 8, 8, 9
  RelatedIntegers3(0):
  RelatedIntegers4(4124): 57284, 13829, 81064, 489053, 128865, 37202, 66161, 100199, 489053, 81064, 128865, 37202, 66161, 100199, 488176, 15493, 713686, 686602, 77416, 78710, 725344, 679275, 679706, 697603, 48824, 57284, 44963, 13829, 77416, 713686, 686602, 99732, 713686, 686602, 670876, 309567, 99732, 100464, 491966, 431460, 13829, 81064, 489053, 128865, 37202, 66161, 100199, 488176, 743781, 745501, 740277, 742414, 744784, 76412, 739551, 742723, 743781, 745501, 740277, 742414, 744784, 76412, 739192, 739551, 743781, 745501, 740277, 742414, 744784, 76412, 739192, 739551, 715809, 70276, 70277, 89448, 48859, 74213, 464668, 37202, 76412, 81060, 389492, 81061, 14115, 752457, 19536, 740277, 76412, 81060, 81061, 389492, 14115, 752457, 666205, 19536, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 70277, 461202, 100111, 74669, 74549, 558013, 57919, 742334, 17804, 461202, 100111, 742334, 74669, 74549, 558013, 57919, 461202, 100111, 74669, 74549, 558013, 742334, 57919, 461202, 100111, 74669, 742334, 74549, 558013, 57919, 461202, 100111, 74669, 742334, 74549, 558013, 57919, 461202, 100111, 74669, 742334, 74549, 558013, 57919, 100111, 74549, 57919, 17804, 70277, 661887, 48859, 464668, 746128, 743416, 742241, 741233, 739192, 739551, 742334, 743781, 745501, 740277, 752457, 742414, 558013, 740277, 743781, 745501, 742414, 744784, 741233, 740277, 743781, 745501, 742414, 744784, 741233, 76412, 465554, 73326, 13997, 66160, 208346, 15576, 57710, 465554, 73326, 13997, 66160, 76412, 81060, 740277, 81061, 742334, 752457, 743781, 745501, 740277, 690706, 742414, 744784, 76412, 465554, 73326, 13997, 66160, 81060, 740277, 743781, 17720, 693036, 740900, 733604, 714478, 742973, 687580, 683460, 17720, 693036, 740900, 733604, 714478, 742973, 687580, 683460, 17720, 693036, 733604, 714478, 742973, 687580, 683460, 709613, 17720, 693036, 740900, 733604, 714478, 742973, 687580, 683460, 17720, 693036, 675311, 733604, 682440, 741568, 678988, 710458, 17720, 693036, 675311, 727042, 733604, 682440, 741568, 678988, 693036, 740900, 733604, 711295, 724745, 714478, 742973, 687580, 693036, 733604, 682440, 741568, 678988, 710458, 709613, 683460, 334034, 740900, 733604, 714478, 742973, 687580, 683460, 709613, 693036, 733604, 678988, 710458, 709613, 683460, 741568, 687580, 693036, 733604, 682440, 741568, 678988, 710458, 709613, 683460, 17720, 693036, 675311, 727042, 733604, 682440, 741568, 678988, 17720, 693036, 675311, 727042, 733604, 682440, 741568, 678988, 724745, 711295, 77416, 698935, 725344, 679275, 679706, 697603, 724745, 711295, 77416, 698935, 725344, 679275, 679706, 697603, 724745, 711295, 77416, 698935, 725344, 679275, 679706, 697603, 77416, 48824, 44963, 57284, 17720, 724745, 711295, 686602, 724745, 711295, 77416, 698935, 725344, 679275, 679706, 697603, 740900, 733604, 714478, 742973, 687580, 683460, 713686, 686602, 468347, 714793, 489053, 698935, 713686, 686602, 468347, 714793, 698935, 725344, 713686, 686602, 468347, 714793, 314124, 711683, 713686, 686602, 468347, 314124, 711683, 714793, 713686, 686602, 468347, 714793, 314124, 711683, 48824, 57284, 44963, 713686, 686602, 670876, 99732, 100464, 77416, 78710, 725344, 679275, 679706, 697603, 698838, 699360, 77416, 78710, 752456, 77804, 751719, 48824, 57284, 44963, 77416, 78710, 725344, 741234, 724744, 733603, 693543, 679275, 713686, 686602, 670876, 309567, 99732, 100464, 48824, 713686, 686602, 99732, 100464, 670876, 431460, 416885, 128865, 37202, 66161, 100199, 15493, 84814, 489053, 63748, 128865, 37202, 66161, 489053, 100199, 15493, 84814, 65970, 37202, 63748, 465289, 74213, 389490, 57921, 65741, 692136, 48824, 713686, 686602, 670876, 309567, 268503, 99732, 100464, 713686, 686602, 670876, 268503, 689289, 152229, 713686, 686602, 468347, 314124, 711683, 714793, 713686, 686602, 48824, 44963, 724745, 711295, 713686, 686602, 468347, 714793, 314124, 698935, 128865, 37202, 66161, 100199, 489053, 15493, 84814, 65970, 489053, 81064, 128865, 37202, 66161, 100199, 488176, 15493, 48824, 57284, 44963, 13829, 77416, 431460, 148001, 131526, 48824, 57284, 44963, 13829, 77416, 78710, 431460, 713686, 48824, 57284, 44963, 13829, 77416, 78710, 713686, 686602, 13829, 208346, 78710, 81064, 489053, 128865, 81063, 37202, 48824, 57284, 44963, 77416, 713686, 686602, 670876, 309567, 48824, 57284, 44963, 13829, 77416, 78710, 208346, 431460, 686602, 713686, 724745, 711295, 314124, 468347, 686602, 713686, 468347, 314124, 711683, 714793, 713686, 686602, 468347, 714793, 725344, 80364, 713686, 686602, 670876, 268503, 152229, 689289, 309567, 257323, 713686, 686602, 670876, 268503, 309567, 689289, 152229, 226267, 465554, 73326, 13997, 66160, 76412, 81060, 81061, 740277, 742334, 752457, 14262, 740277, 743781, 745501, 558013, 746128, 742241, 742415, 666205, 743416, 745343, 76412, 77804, 78710, 77416, 13997, 66160, 73326, 465554, 742334, 461202, 74669, 558013, 57919, 17804, 69290, 74653, 465554, 13997, 81060, 740277, 743781, 745501, 742414, 744784, 742334, 752457, 14262, 743781, 745501, 740277, 661887, 690706, 77416, 78710, 752456, 77804, 751719, 713686, 686602, 48824, 77416, 78710, 77804, 76412, 57284, 44963, 13829, 48824, 713686, 686602, 468347, 714793, 698935, 725344, 713686, 686602, 48824, 44963, 57284, 468347, 48824, 57284, 44963, 13829, 77416, 713686, 686602, 670876, 48824, 44963, 713686, 686602, 99732, 431460, 416885, 100025, 713686, 686602, 670876, 268503, 689289, 309567, 152229, 226267, 48824, 713686, 686602, 99732, 100464, 670876, 431460, 416885, 57284, 13829, 44963, 208346, 57710, 48824, 78710, 77416, 13829, 208346, 57284, 57710, 44963, 48824, 78710, 77416, 13829, 78710, 208346, 57710, 57284, 44963, 77416, 81064, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 743781, 745501, 740277, 742414, 744784, 76412, 739551, 742723, 715809, 461202, 100111, 74669, 74549, 558013, 57919, 742334, 743781, 745501, 740277, 742414, 744784, 81060, 742334, 461202, 742334, 100111, 74549, 57919, 17804, 70277, 661887, 48859, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 70277, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 48824, 57284, 44963, 13829, 77416, 713686, 686602, 99732, 48824, 57284, 44963, 13829, 77416, 78710, 713686, 686602, 713686, 686602, 724745, 711295, 728764, 740900, 713686, 686602, 48824, 57284, 44963, 13829, 13829, 81064, 489053, 128865, 37202, 66161, 100199, 488176, 713686, 686602, 77416, 78710, 698935, 725344, 679275, 679706, 713686, 686602, 670876, 268503, 309567, 689289, 152229, 226267, 48824, 57284, 44963, 713686, 686602, 99732, 431460, 100025, 166241, 292727, 318481, 209828, 80364, 728039, 712439, 714672, 48824, 44963, 77416, 268503, 152229, 689289, 670876, 309567, 48824, 44963, 77416, 670876, 268503, 689289, 152229, 309567, 334034, 661308, 274826, 466562, 257323, 740900, 728764, 693982, 257323, 226267, 152229, 661308, 689289, 268503, 666740, 491966, 403643, 465521, 389510, 698416, 692143, 222920, 687347, 313454, 161719, 276035, 114364, 313454, 403643, 401954, 678582, 216645, 77416, 745675, 242299, 466301, 717107, 699718, 479646, 720980, 48824, 77416, 468347, 329792, 318617, 733142, 142936, 230636, 742334, 100111, 74549, 57919, 17804, 70277, 661887, 48859, 461202, 100111, 74669, 74549, 558013, 57919, 742334, 17804, 100111, 74669, 461202, 74549, 57919, 558013, 17804, 70277, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 70277, 100111, 74669, 461202, 74549, 57919, 558013, 17804, 70277, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 70277, 76412, 13997, 66160, 73326, 465554, 208346, 742334, 461202, 715809, 100111, 74549, 74669, 17804, 70277, 74653, 74668, 715809, 100111, 74669, 74549, 57919, 461202, 17804, 70277, 715809, 100111, 74669, 74549, 57919, 17804, 70277, 74653, 100111, 74549, 74669, 17804, 70277, 74653, 74668, 74654, 76412, 77804, 78710, 77416, 13997, 66160, 73326, 465554, 76412, 77804, 78710, 77416, 465554, 73326, 13997, 66160, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 74653, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 74653, 13829, 57284, 208346, 57710, 44963, 48824, 19715, 78710, 100111, 74669, 74549, 57919, 461202, 17804, 70277, 69290, 461202, 74669, 742334, 558013, 100111, 57919, 74549, 17804, 742334, 57919, 100111, 74549, 17804, 661887, 48859, 464668, 742414, 81060, 742334, 752457, 389492, 690706, 14115, 661887, 742334, 752457, 14262, 690706, 742414, 389492, 661887, 81060, 742334, 661887, 558013, 7447, 752457, 74654, 69290, 461202, 742334, 461202, 74669, 558013, 57919, 100111, 74549, 17804, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 389492, 742414, 14115, 752457, 19536, 690706, 558013, 74654, 742414, 76412, 739192, 739551, 739897, 739999, 740633, 741309, 742414, 76412, 739192, 739551, 739897, 739999, 740633, 741309, 635094, 635517, 635708, 637197, 638556, 639139, 641028, 641299, 667715, 692342, 703552, 725345, 635094, 635517, 635708, 637197, 465554, 73326, 13997, 66160, 76412, 81061, 558026, 558027, 17720, 693036, 675311, 727042, 733604, 741568, 678988, 710458, 100111, 74669, 74549, 57919, 461202, 17804, 70277, 69290, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 70277, 100111, 74669, 461202, 74549, 57919, 558013, 17804, 70277, 742334, 752457, 742414, 389492, 690706, 81060, 14115, 29805, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 724745, 711295, 713686, 670876, 268503, 152229, 689289, 309567, 713686, 99732, 431460, 100025, 416885, 81064, 113399, 100464, 48824, 57284, 44963, 13829, 77416, 713686, 99732, 431460, 461202, 742334, 100111, 74669, 74549, 558013, 57919, 17804, 465554, 73326, 13997, 66160, 15576, 76412, 81060, 81061, 465554, 73326, 13997, 66160, 76412, 81060, 742414, 389492, 465554, 73326, 13997, 66160, 15576, 76412, 81060, 81061, 17720, 693036, 740900, 733604, 714478, 683460, 709613, 710458, 17720, 693036, 733604, 714478, 683460, 709613, 710458, 740900, 48824, 57284, 44963, 13829, 77416, 713686, 670876, 99732, 742334, 461202, 558013, 57919, 69290, 17804, 74653, 661887, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 461202, 742334, 100111, 74669, 74549, 558013, 57919, 17804, 742334, 461202, 74669, 558013, 57919, 100111, 74549, 17804, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 713686, 670876, 309567, 268503, 99732, 100464, 491966, 431460, 713686, 670876, 268503, 309567, 689289, 152229, 226267, 99732, 742334, 752457, 742414, 690706, 389492, 81060, 14115, 29805, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 81060, 742414, 389492, 14115, 76412, 752457, 81061, 741233, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 742334, 461202, 100111, 74669, 74549, 558013, 57919, 17804, 667715, 692342, 703552, 725345, 635094, 635517, 635708, 637197, 667715, 692342, 703552, 725345, 635094, 635517, 635708, 637197, 667715, 692342, 703552, 725345, 635094, 635517, 635708, 637197, 667715, 692342, 703552, 725345, 635094, 635517, 635708, 637197, 465554, 73326, 13997, 66160, 76412, 81060, 81061, 742414, 747862, 747866, 747909, 749430, 750940, 749504, 749479, 746983, 747749, 750935, 747753, 746747, 746754, 751202, 747024, 750497, 747025, 747730, 747731, 749526, 751207, 747029, 749644, 747028, 747035, 747862, 747866, 749430, 750940, 749479, 747749, 750935, 747753, 746747, 746754, 751202, 747024, 750497, 747025, 747730, 747731, 749526, 751207, 747029, 749644, 747028, 747035, 747729, 747909, 749504, 746983, 747043, 751157, 751161, 747007, 749585, 749526, 749587, 749275, 750420, 749591, 747316, 749704, 747262, 747546, 747586, 749518, 747439, 748236, 747434, 749756, 748234, 748230, 749767, 748147, 748156, 748149, 748145, 748155, 750940, 749585, 749526, 749587, 749275, 750420, 749591, 747316, 749704, 747262, 747546, 747586, 749518, 747439, 748236, 747434, 749756, 748234, 748230, 749767, 748147, 748156, 748149, 748145, 748155, 750940, 749479, 750935, 750385, 749360, 747404, 749526, 750940, 747262, 747586, 749518, 747439, 748236, 747434, 749479, 749756, 748234, 750935, 748230, 749767, 747862, 749587, 749591, 749585, 750420, 747866, 750385, 747753, 749430, 749275, 747749, 749526, 750940, 747262, 747586, 749518, 747439, 748236, 747434, 749479, 749756, 748234, 750935, 748230, 749767, 749587, 749591, 749585, 750420, 747862, 747866, 750385, 747753, 749430, 749275, 747749, 747043, 747909, 749504, 747316, 749704, 749587, 749591, 749585, 749526, 747316, 747262, 747586, 749518, 747439, 748236, 747434, 749756, 748234, 748230, 749767, 750940, 748147, 748156, 748149, 749479, 750935, 749704, 749360, 747546, 749310, 749587, 749591, 749585, 749526, 747316, 747262, 747586, 749518, 747439, 748236, 747434, 749756, 748234, 748230, 749767, 750940, 748147, 748156, 748149, 749479, 750935, 749275, 749704, 749360, 747546, 747404, 749310, 747415, 749554, 749700, 746754, 747753, 747749, 751157, 746747, 751161, 750935, 749504, 749479, 750940, 749430, 747007, 746996, 747909, 746992, 747866, 747862, 749659, 751142, 751202, 747024, 750497, 747025, 747730, 747731, 748140, 748136, 748113, 748098, 748107, 748094, 748104, 750420, 749479, 750935, 750940, 747024, 747025, 747028, 747029, 747035, 749479, 750935, 750940, 747024, 747025, 747028, 747029, 747035, 749479, 750935, 750940, 746983, 747025, 747028, 747029, 747035, 749479, 750935, 750940, 746983, 747025, 747028, 747029, 747035, 747262, 747434, 747439, 747586, 748147, 748149, 748156, 748230, 747262, 747434, 747439, 747586, 748147, 748149, 748156, 748230, 747262, 747404, 747415, 747434, 747439, 747546, 747586, 748145, 747262, 747404, 747415, 747434, 747439, 747546, 747586, 748145, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747404, 747415, 747434, 747439, 747586, 748145, 748147, 747262, 747404, 747415, 747434, 747439, 747586, 748145, 748147, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 748230, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 748230, 749526, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 749526, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 747262, 747415, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747415, 747439, 747586, 748145, 748147, 748149, 748155, 749479, 750940, 751207, 750935, 747222, 746983, 747024, 747028, 749479, 750940, 751207, 750935, 747222, 746983, 747024, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 747262, 747404, 747434, 747439, 747586, 748145, 748147, 748149, 747262, 747404, 747434, 747439, 747586, 748145, 748147, 748149, 747262, 747434, 747586, 748230, 748234, 748236, 749518, 749526, 747262, 747434, 747586, 748230, 748234, 748236, 749518, 749526, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 749479, 750935, 750940, 747222, 746983, 747025, 747028, 747029, 749479, 750935, 750940, 747222, 746983, 747025, 747028, 747029, 747262, 747434, 747439, 747586, 748234, 748236, 749518, 749526, 747262, 747434, 747439, 747586, 748234, 748236, 749518, 749526, 747262, 747434, 747439, 748147, 748230, 748234, 749518, 749767, 747262, 747434, 747439, 748147, 748230, 748234, 749518, 749767, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747439, 747586, 749526, 749756, 749518, 746983, 747024, 747262, 747439, 747586, 749526, 749756, 749518, 746983, 747024, 747262, 747434, 747586, 748147, 748156, 748236, 749518, 749526, 747262, 747434, 747586, 748147, 748156, 748236, 749518, 749526, 747262, 747404, 747415, 747434, 747439, 747546, 747586, 748145, 747262, 747404, 747415, 747434, 747439, 747546, 747586, 748145, 747262, 747439, 747586, 749518, 749526, 749756, 746983, 747024, 747262, 747439, 747586, 749518, 749526, 749756, 746983, 747024, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 747439, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 747439, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 749479, 750940, 750935, 747222, 746983, 747024, 747028, 747029, 749479, 750940, 750935, 747222, 746983, 747024, 747028, 747029, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 747262, 747434, 747586, 748145, 748147, 748155, 748156, 748230, 747262, 747434, 747586, 748145, 748147, 748155, 748156, 748230, 747024, 747028, 747035, 747729, 747731, 749479, 749644, 750497, 747024, 747028, 747035, 747729, 747731, 749479, 749644, 750497, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 749479, 750935, 750940, 746983, 747025, 747028, 747029, 747035, 749479, 750935, 750940, 746983, 747025, 747028, 747029, 747035, 747262, 747434, 747439, 747586, 748147, 748149, 748156, 748230, 747262, 747434, 747439, 747586, 748147, 748149, 748156, 748230, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 749526, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 749526, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 747262, 747434, 747586, 748094, 748098, 748107, 748145, 748147, 747262, 747434, 747586, 748094, 748098, 748107, 748145, 748147, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747262, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 749479, 750935, 750940, 746983, 747025, 747028, 747029, 747035, 749479, 750935, 750940, 746983, 747025, 747028, 747029, 747035, 747262, 747316, 747404, 747434, 747439, 747546, 747586, 748147, 747262, 747316, 747404, 747434, 747439, 747546, 747586, 748147, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 747262, 747439, 747586, 749518, 749526, 749756, 746983, 747024, 747262, 747439, 747586, 749518, 749526, 749756, 746983, 747024, 749479, 750935, 750940, 746983, 747024, 747025, 747029, 747035, 749479, 750935, 750940, 746983, 747024, 747025, 747029, 747035, 750940, 746983, 747024, 747025, 747028, 747035, 747043, 747262, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 750385, 750420, 748145, 748155, 747439, 747586, 748147, 748149, 748156, 748230, 748236, 749756, 749767, 747434, 748234, 749518, 749526, 747262, 749275, 749585, 747415, 746983, 747043, 747746, 747749, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 747262, 747434, 747586, 748145, 748147, 748155, 748156, 748230, 747262, 747434, 747586, 748145, 748147, 748155, 748156, 748230, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748236, 749518, 749526, 749756, 747262, 747434, 747439, 747586, 748236, 749518, 749526, 749756, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 749479, 750935, 750940, 747222, 746983, 747025, 747028, 747029, 749479, 750935, 750940, 747222, 746983, 747025, 747028, 747029, 747262, 747439, 749518, 747586, 748236, 749526, 749756, 746983, 747262, 747439, 749518, 747586, 748236, 749526, 749756, 746983, 747262, 749526, 746983, 747024, 747025, 747028, 747029, 747035, 747262, 749526, 746983, 747024, 747025, 747028, 747029, 747035, 747262, 747586, 749526, 749756, 749518, 746983, 747024, 747025, 747262, 747434, 747586, 748230, 748234, 748236, 749518, 749526, 747262, 747434, 747586, 748230, 748234, 748236, 749518, 749526, 747262, 747434, 747439, 747586, 748234, 748236, 749518, 749526, 747262, 747434, 747439, 747586, 748234, 748236, 749518, 749526, 747262, 747434, 747439, 747586, 748236, 749518, 749526, 749756, 747262, 747434, 747439, 747586, 748236, 749518, 749526, 749756, 750940, 749479, 750935, 747222, 747043, 746983, 747862, 747866, 747909, 749430, 746992, 749504, 746996, 747007, 751157, 746747, 751161, 747749, 747753, 746754, 750940, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 750940, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747316, 747404, 747434, 747439, 747546, 747586, 748147, 747262, 747434, 747439, 748147, 748230, 748234, 749518, 749767, 747262, 747434, 747439, 748147, 748230, 748234, 749518, 749767, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749526, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749526, 747262, 747404, 747415, 747434, 747586, 748145, 748147, 748155, 747262, 747404, 747415, 747434, 747586, 748145, 748147, 748155, 747731, 749479, 750935, 751202, 751207, 750940, 747222, 746983, 747731, 749479, 750935, 751202, 751207, 750940, 747222, 746983, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 750420, 747262, 747439, 747586, 748145, 748147, 748149, 748156, 748230, 749275, 749585, 747415, 750385, 746983, 747043, 747746, 747749, 747753, 747909, 748113, 749504, 749587, 749591, 750420, 750487, 751161, 751381, 746754, 747404, 747421, 747679, 749309, 749700, 750511, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 750935, 750940, 749479, 747222, 746983, 747024, 747025, 747028, 750935, 750940, 749479, 747222, 746983, 747024, 747025, 747028, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 749526, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 749526, 747439, 747586, 749756, 749518, 749526, 747262, 746983, 747043, 747753, 748113, 747746, 747749, 747909, 749275, 749504, 749585, 749587, 749591, 750420, 750487, 751161, 751381, 746754, 747404, 747415, 747262, 747439, 747586, 748230, 748236, 749518, 749526, 749756, 749479, 750940, 750935, 747222, 746983, 747024, 747028, 747029, 750420, 750385, 747731, 750935, 750940, 751207, 749479, 747222, 747862, 746983, 747731, 750935, 750940, 751207, 749479, 747222, 747862, 746983, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 747262, 747404, 747434, 747439, 747586, 748145, 748147, 748149, 747262, 747404, 747434, 747439, 747586, 748145, 748147, 748149, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 749479, 750935, 750940, 747024, 747025, 747028, 747029, 747035, 749479, 750935, 750940, 747024, 747025, 747028, 747029, 747035, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 750935, 749479, 750940, 749275, 749585, 747415, 750385, 746983, 747043, 747746, 747749, 747753, 747909, 748113, 749504, 749587, 749591, 750420, 750487, 751161, 751381, 746754, 747404, 747421, 747679, 750940, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 749479, 750935, 750940, 746983, 747024, 747025, 747029, 747035, 749479, 750935, 750940, 746983, 747024, 747025, 747029, 747035, 750420, 750385, 749526, 749275, 749585, 749587, 749526, 747262, 747586, 749518, 747439, 748236, 747434, 749756, 748234, 750420, 749587, 749585, 749591, 748113, 748140, 748136, 750385, 748098, 749275, 748107, 748094, 748104, 747316, 749704, 749360, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 747262, 747434, 747439, 747586, 748230, 748234, 748236, 749518, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747434, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747434, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 750940, 749479, 750935, 747043, 747222, 746983, 747862, 747866, 747909, 749430, 746992, 749504, 746996, 747007, 751157, 746747, 751161, 747749, 747753, 746754, 749659, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 750385, 750420, 748147, 749767, 748107, 747439, 747586, 748145, 748149, 748156, 748230, 748236, 749756, 748094, 748098, 747434, 748234, 749518, 749526, 747262, 748155, 749587, 750487, 746983, 747043, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 750420, 750385, 749526, 749275, 749585, 747404, 747415, 749587, 749554, 749526, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 749526, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 748230, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 748230, 747262, 749526, 746983, 747025, 747028, 747029, 747035, 747043, 747222, 749479, 750940, 751207, 750935, 746983, 747024, 747028, 747222, 749479, 750940, 751207, 750935, 746983, 747024, 747028, 749526, 750420, 749587, 749591, 747862, 749585, 747043, 750385, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 750420, 750385, 747439, 748149, 747586, 748145, 748147, 748156, 748230, 748236, 749756, 749767, 747434, 748234, 749518, 749526, 747262, 748155, 747749, 747909, 747679, 749309, 746983, 747043, 747746, 750940, 746983, 747024, 747025, 747028, 747029, 747035, 747043, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 749526, 747262, 746983, 747024, 747025, 747028, 747029, 747035, 749526, 747262, 746983, 747024, 747025, 747028, 747029, 747035, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 750940, 746983, 747025, 747028, 747029, 747035, 747043, 747262, 750940, 746983, 747025, 747028, 747029, 747035, 747043, 747262, 747262, 747404, 747434, 747439, 747586, 748147, 748149, 748156, 747262, 747404, 747434, 747439, 747586, 748147, 748149, 748156, 750385, 750420, 747586, 748156, 748236, 749756, 749526, 747439, 748145, 748147, 748149, 748230, 749767, 748094, 748098, 748104, 747434, 748234, 749518, 747262, 748155, 748107, 747746, 746983, 747043, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 750935, 750940, 749479, 746983, 747024, 747025, 747028, 747035, 750935, 750940, 749479, 746983, 747024, 747025, 747028, 747035, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747586, 749518, 749526, 746983, 747024, 747025, 747028, 747262, 747586, 749518, 749526, 746983, 747024, 747025, 747028, 750420, 749767, 748156, 749585, 749526, 750385, 749275, 749587, 747316, 749591, 749704, 749360, 747262, 747546, 747404, 749310, 747415, 749554, 749700, 747586, 747421, 748098, 749518, 748107, 748094, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747586, 749518, 749526, 749756, 746983, 747024, 747028, 747262, 747586, 749518, 749526, 749756, 746983, 747024, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747586, 749518, 749526, 746983, 747024, 747025, 747028, 747262, 747586, 749518, 749526, 746983, 747024, 747025, 747028, 750420, 749767, 748156, 750385, 747404, 747415, 749554, 749700, 749756, 748098, 748107, 748094, 749518, 747262, 747586, 748104, 747546, 747439, 747434, 749310, 749704, 749275, 748236, 748147, 748234, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 749479, 750935, 750940, 747222, 746983, 747024, 747025, 747028, 749479, 750940, 747024, 747025, 747028, 747029, 747035, 747262, 747262, 747439, 747586, 748145, 748147, 748149, 748155, 748156, 747262, 747404, 747434, 747439, 747586, 748147, 748149, 748156, 747262, 747404, 747434, 747439, 747586, 748147, 748149, 748156, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 749479, 750935, 750940, 751207, 747222, 746983, 747024, 747025, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 747262, 747434, 747439, 747586, 748145, 748149, 748155, 748156, 750420, 749518, 747439, 747586, 748147, 748149, 748156, 748230, 748236, 749756, 749767, 747434, 748234, 749526, 747262, 746983, 747043, 747746, 747749, 747753, 747909, 748113, 749275, 749504, 749585, 747439, 747586, 749756, 749518, 749526, 747262, 750420, 749700, 746983, 747043, 747746, 747749, 747753, 747909, 748113, 749275, 749504, 749585, 749587, 749591, 750487, 751161, 751381, 746754, 747404, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748156, 749526, 747262, 746983, 747024, 747025, 747028, 747029, 747035, 749526, 747262, 746983, 747024, 747025, 747028, 747029, 747035, 747439, 747586, 748145, 748147, 748149, 748156, 748230, 748236, 749756, 749767, 747434, 748234, 749518, 749526, 747262, 748155, 746983, 747043, 747753, 748113, 747746, 747749, 747909, 749275, 749504, 750420, 749587, 749591, 749585, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 747262, 747434, 747439, 748145, 748147, 748149, 748155, 748230, 747043, 747262, 747434, 747439, 747586, 748145, 748147, 748149, 748155, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 749479, 750935, 750940, 746983, 747024, 747025, 747028, 747029, 750420, 750385, 749526, 749585, 749275, 749587, 749591, 747404, 747415
  RelatedFInts(0):
  RelatedBools(0):




  at System.Environment.get_StackTrace () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, System.Boolean IncludeStackTrace, Arcen.Universal.Verbosity Verbosity) [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, Arcen.Universal.Verbosity Verbosity) [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00000] in <135c9b6b074641e7a9c7e066d06d4b1b>:0
  at Arcen.AIW2.Core.World_AIW2.QueueGameCommand (Arcen.AIW2.Core.GameCommand Command, System.Boolean ShouldAllowLocalAudioOrVisualReactionToThis) [0x00000] in <25939fe1becd42db8b36ff4523b6f44c>:0
  at Arcen.AIW2.External.ArcenLongTermContinuousPlanningContext.ForceImmediateQueueOfMyCommands () [0x00000] in <7b6b002fcbb1455cb82907735df64082>:0
  at Arcen.AIW2.External.TargetListPlanning.Execute () [0x00000] in <7b6b002fcbb1455cb82907735df64082>:0
  at Arcen.AIW2.External.ArcenSimPlanningContext.InnerRun () [0x00000] in <7b6b002fcbb1455cb82907735df64082>:0
  at Arcen.AIW2.External.ArcenThread.InternalActualThreadFunction () [0x00000] in <7b6b002fcbb1455cb82907735df64082>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0

For reference, I am running the latest version of the mod on v2.032; hope that helps!
: Re: Civilian Industries
: StarKeep May 18, 2020, 01:49:36 PM
I have a potential fix for it on my local copy, what a sneaky little bug. It'll require the beta/next version of the game however, as I've already been updating the source to go alongside the changes. (A notable number of function changes have occurred.) Will be save compatible.

I'll look towards testing and putting that out either tonight or tomorrow.

If curious; the bug is not related to too many ships being moved, but rather due to there being no destination/a null destination set. (command.RelatedPoints.Count < 1)
: Re: Civilian Industries
: Endovior May 18, 2020, 02:53:59 PM
That was fast!

I can upload save files, if it'd help with your testing. Convenient autosave timing means I have before-and-after saves (~2 minutes before the error, and immediately after it).
: Re: Civilian Industries
: StarKeep May 18, 2020, 02:59:43 PM
Would be greatly appreciated. Fixing a bug and confirming a bug is fixed are two different things.
: Re: Civilian Industries
: Endovior May 18, 2020, 03:03:35 PM
Got it. I can't upload both saves in the same post, so here's the before save.
: Re: Civilian Industries
: Endovior May 18, 2020, 03:04:13 PM
...and here's the after save.
: Re: Civilian Industries
: StarKeep May 18, 2020, 10:17:00 PM
That was one lagtastic save, my goodness. My computer could barely run it. No error with the proposed changes after eeking it along at speed 5 for 10ish minutes, so looks good.

Hotfix

Fixed a bug that could result in movement commands being given with no destination.
Removed various references to the experience system in the xml.
: Re: Civilian Industries
: Endovior May 18, 2020, 11:06:43 PM
That was one lagtastic save, my goodness. My computer could barely run it. No error with the proposed changes after eeking it along at speed 5 for 10ish minutes, so looks good.

Part of it was underestimating just how many little autonomous ships that Strength 10 Civilian Industry would run at full blast, part of it was running a 300-star galaxy. It runs at about 80% on my computer (dipping to around 70% if the Civilian Industry is fighting three simultaneous major battles), which I take as gentle encouragement to try a smaller galaxy next time.

Just to confirm, the linked download now requires 2.042?
: Re: Civilian Industries
: StarKeep May 18, 2020, 11:10:38 PM
Aye, it requires 2.042 or later. It miiight work on the current version; but it'll complain about missing xml elements at the bare minimum.
: Re: Civilian Industries
: Endovior May 19, 2020, 11:39:18 AM
Something seems to have gone wrong with this; I updated to the current Beta (v2.043), installed the mod, and tried to start a new game.

I got an error the moment I clicked to select my starting planet, repeated below.

(https://i.imgur.com/j4O5ECs.png)

Noticing that I still had factions from my previous game loaded, I clicked Reset to Defaults. That didn't help, so I restarted the game. That didn't help either. It seems like the mod somehow broke map generation?

EDIT: I uninstalled and reinstalled the game, without the mod, and I'm still getting that error. Something's really borked here!

EDIT EDIT: The issue is solved by reverting back to v2.032, and returns when running v2.043; I think it may be a Beta bug, so I'll report it to Arcen.

EDIT EDIT EDIT: Yep, vanilla bug; reported and fixed in v2.044.
: Re: Civilian Industries
: Endovior May 20, 2020, 08:54:53 AM
I updated to v2.044; got a different error, and one that does seem to be a mod problem.

(https://i.imgur.com/uCY8kmh.png)

There's an error about a missing method for "TachyonBlastPlanet", which spams constantly, and makes the Civilian Industry fail to spawn.

5/20/2020 8:51:36 AM
Error in thread for execution context 'executionContext'
MissingMethodException
void Arcen.AIW2.External.BadgerFactionUtilityMethods.TachyonBlastPlanet(Arcen.AIW2.Core.Planet,Arcen.AIW2.Core.Faction)
===STACK FRAMES (with file info)===
FILE   METHOD   IL_OFFSET   NATIVE_OFFSET   LINE_NUMBER   COLUMN_NUMBER
   <DoWorldSecondLogic_FromSimBGThread>b__2   1   55   0   0
   DoForFactions   18   107   0   0
   DoWorldSecondLogic_FromSimBGThread   102   738   0   0
   DoWorldStepLogic_FromSimBGThread   380   1210   0   0
   Execute   186   487   0   0
===RAW STACK TRACE===
  at Arcen.AIW2.External.EntitySimLogicImplementation+<>c__DisplayClass45_0.<DoWorldSecondLogic_FromSimBGThread>b__2 (Arcen.AIW2.Core.Faction faction) [0x00001] in <b3272b01b6b34d3dadbb867325241287>:0
  at Arcen.AIW2.Core.World_AIW2.DoForFactions (Arcen.AIW2.Core.Faction+ProcessorDelegate Processor) [0x00012] in <a760605bb393499392d3be94cf03ad2c>:0
  at Arcen.AIW2.External.EntitySimLogicImplementation.DoWorldSecondLogic_FromSimBGThread (Arcen.AIW2.Core.ArcenSimContext Context) [0x00066] in <b3272b01b6b34d3dadbb867325241287>:0
  at Arcen.AIW2.External.EntitySimLogicImplementation.DoWorldStepLogic_FromSimBGThread (Arcen.AIW2.Core.ArcenSimContext Context) [0x0017c] in <b3272b01b6b34d3dadbb867325241287>:0
  at Arcen.AIW2.External.SimExecution.Execute () [0x000ba] in <b3272b01b6b34d3dadbb867325241287>:0

  at System.Environment.get_StackTrace () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, System.Boolean IncludeStackTrace, Arcen.Universal.Verbosity Verbosity) [0x00000] in <f8b9c768b9c7431a93185395b11c2405>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, Arcen.Universal.Verbosity Verbosity) [0x00000] in <f8b9c768b9c7431a93185395b11c2405>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00000] in <f8b9c768b9c7431a93185395b11c2405>:0
  at Arcen.Universal.ArcenDebugging.LogException (System.Exception e, System.String message, Arcen.Universal.Verbosity verbosity) [0x00000] in <f8b9c768b9c7431a93185395b11c2405>:0
  at Arcen.AIW2.External.SimExecution.Execute () [0x00000] in <b3272b01b6b34d3dadbb867325241287>:0
  at Arcen.AIW2.External.ArcenSimPlanningContext.InnerRun () [0x00000] in <b3272b01b6b34d3dadbb867325241287>:0
  at Arcen.AIW2.External.ArcenExecutionContext.InnerRun () [0x00000] in <b3272b01b6b34d3dadbb867325241287>:0
  at Arcen.AIW2.External.ArcenThread.InternalActualThreadFunction () [0x00000] in <b3272b01b6b34d3dadbb867325241287>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
: Re: Civilian Industries
: StarKeep May 20, 2020, 09:38:52 AM
Turns out there was a change to a few more functions that I missed; one of which being the Tachyon burst functionality. I haven't had time to personally play for a few days now, so I'm really sorry about that.

Hotfix

Fixed some more patch-related bugs.
: Re: Civilian Industries
: Endovior May 20, 2020, 11:08:17 AM
Turns out there was a change to a few more functions that I missed; one of which being the Tachyon burst functionality. I haven't had time to personally play for a few days now, so I'm really sorry about that.

Hotfix

Fixed some more patch-related bugs.

No need to apologize; there's a lot of new modding-related changes coming out these days, so there's a lot of stuff for you to do to keep on top of them. Hopefully, the changes should make things easier for you going forwards.
: Re: Civilian Industries
: facc00 May 22, 2020, 02:35:17 AM
So the hotfix doesn't seem to be a link or anything and the main download is still the april version.
: Re: Civilian Industries
: StarKeep May 22, 2020, 08:40:23 AM
Main download link is automatically updated to any new versions I push out, but the url remains the same. So while the post hasn't been updated in a while, the download link is giving you a new version from may 21st.
: Re: Civilian Industries
: Endovior May 22, 2020, 09:57:17 AM
The devs are really breaking a lot of stuff with new changes! It was working for a while there, but v2.047 again gives an error on game start; apparently the game is upset about the lack of Mark Level specifications for Civilian Industry?

(https://i.imgur.com/SFdTVC9.png)

5/22/2020 9:49:00 AM   specialFactionContext_17_SKCivilianIndustry Error: System.MissingFieldException: Field 'Arcen.AIW2.Core.GameEntityTypeData/MarkLevelStats.StrengthPerSquad' not found.
  at SKCivilianIndustry.SpecialFaction_SKCivilianIndustry.DoLongRangePlanning_OnBackgroundNonSimThread_Subclass (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.External.ArcenLongTermIntermittentPlanningContext Context) [0x00073] in <38bbf35e47f6403bab76ee1f183ecd35>:0
  at Arcen.AIW2.External.BaseSpecialFaction.DoLongRangePlanning_OnBackgroundNonSimThread (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.Core.ILongRangePlanningContext Context) [0x00076] in <c3a9e45aa47c45169953ddab9ce44878>:0
  at Arcen.AIW2.External.SpecialFactionPlanning.Execute () [0x00077] in <c3a9e45aa47c45169953ddab9ce44878>:0
: Re: Civilian Industries
: StarKeep May 22, 2020, 10:33:03 AM
It looks like they changed how one accesses unit strength values; shouldn't be too bad to fix.
: Re: Civilian Industries
: StarKeep May 22, 2020, 10:37:41 AM
Hotfix

Quick release for compatibility with the latest update. Untested; will be able to test and confirm by this evening.

Based on person and posted test results; the (untested) has been removed from this Hotfix. Thank you guys.
: Re: Civilian Industries
: facc00 May 22, 2020, 01:16:43 PM
Thank you gor the quick reply.  When I open the zip folder and look at last modified it says 4/5/20 which is why I was thinking its not updated.  In fact it still shows that same date with a download of the main link from the front page.  Please advise.
: Re: Civilian Industries
: Endovior May 22, 2020, 02:33:35 PM
(untested)Hotfix

Quick release for compatibility with the latest update. Untested; will be able to test and confirm by this evening.

Tried the new version, didn't get the error on startup, and it seems to be running fine half an hour in.

Thank you gor the quick reply.  When I open the zip folder and look at last modified it says 4/5/20 which is why I was thinking its not updated.  In fact it still shows that same date with a download of the main link from the front page.  Please advise.

I confirm that the version linked in the OP is the newest available version, compatible with the current release.
: Re: Civilian Industries
: facc00 May 22, 2020, 03:40:19 PM
Sorry the main folder was old but the files inside were new.  Derp for me!
: Re: Civilian Industries
: StarKeep June 10, 2020, 09:45:13 AM
PSA that the latest change breaks the mod. I'll be working on an update with a few functional changes that are a bit large-scale, since this is a good excuse to do so.
: Re: Civilian Industries
: Fritz1776 August 27, 2020, 08:37:19 PM
This looks super cool. Hope it gets updated sooner rather than later so I can mess with it myself.
: Re: Civilian Industries
: StarKeep August 28, 2020, 09:33:46 PM
Updated

Update Instructions: Delete the existing Civilian Industries dll from GameData\ModdableLogicDLLs.

I truly have been taken over by so many projects, including the rework of this mod; to the point where I just couldn't put this off any longer.
No new features, but fully functional, for the latest version of the game. Please enjoy, and I'm terribly sorry that you waited so long for minimal payoff.
: Re: Civilian Industries
: StarKeep September 02, 2020, 12:57:52 PM
Civilian Industries - V 0.6.4 - Power Play
Save Compatible

(Early download located in the main post, for those who would be interested in it before the next game update.)

Lowered the overall number of mobile ships that Civilians can output.
-The exact decrease is not documented, on account of me overhauling an absolutely ancient scaling function for the capacity that was unwieldy and scary. I've estimated it to be around 50% less.

Cost Scaling and Stockpiling
-Previously, unit costs would increase as they neared their capacity, eventually costing 200% of their base cost.
-This seemed silly in hindsight, and has been removed.
-Along with this, the minimum and default stockpiling percentage has been changed to 300%.

Barracks reworked
-Now capped at 1 per planet.
-Now starts at 20% increase, scaling up by 5% per Mark Level.
-Now marks up with Command tech.
-Now increases the maximum Protector capacity on it and adjacent planets by 1 at Mark 7.

Code Optimizations
-Civilians should no longer absolutely chug your saves by late game!
-A bunch of old code has been optimized to be multiplayer-ready.

Raid Notification
-You are now given a notification box whenever a raid is about to fire, letting you know how close it is to firing, and what planets its aimed at.

Protectors
-Have all received notable buffs.
-Some may still be too weak; and will be buffed up over time after some additional testing.

Resources
-Replaced real names and puns with references to other fictional materials.
-Now display what Technology is used for which resource.
: Re: Civilian Industries
: Fritz1776 September 03, 2020, 09:14:32 PM
Not sure what you did but you seem to have broke it. I'm getting error messages up the wazoo and no idea why other than they only happen if this mod id active.
: Re: Civilian Industries
: StarKeep September 03, 2020, 09:26:26 PM
Can I get a copy of your ArcenDebugLog? I have experienced no such errors; and thus don't have a starting point.

If you are on the Beta; that is known. The prior version was put into the codebase before the latest beta was complete; so it isn't working yet, and is in the process of being updated.
: Re: Civilian Industries
: Endovior September 16, 2020, 08:24:49 PM
The public release of 2.507 broke the mod, probably because of the changes in 2.506 which were noted to break all the mods. How fixable is that?
: Re: Civilian Industries
: StarKeep September 30, 2020, 03:23:41 AM
Updates for it should be coming within the next few pushes.

Its primarily bugfixes, but there are a few notable changes included.

Units will now load into Patrol Posts when they have no active job, greatly increasing game performance when you have so many extra Civvie units on your homeworld.

Raids no longer fire for the first hour of the game.

Civilians can now be enabled via Beacon.
: Re: Civilian Industries
: Endovior October 01, 2020, 11:15:28 PM
It's definitely working again now, thanks!

Incidentally, now that Civilians can load into Patrol Posts when not active, how feasible would it be to have them hide in their patrol posts when the Devourer Golem is in system, instead of deploying to sit around getting eaten? Similarly, would it be feasible to advise the civilian AI to not reinforce worlds menaced by the Devourer Golem?
: Re: Civilian Industries
: Endovior October 09, 2020, 09:50:44 AM
Running the latest v2.608; ran into a bug specifying Civilian Industry.

10/9/2020 9:46:59 AM   specialFactionContext_10_SKCivilianIndustry_idx_9 Error: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Collections.Generic.List`1[T].RemoveAt (System.Int32 index) [0x00009] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at SKCivilianIndustry.CivilianMilitia.GetShipCount (Arcen.AIW2.Core.GameEntityTypeData typeData, System.Boolean calledFromSimSafeThread) [0x00092] in <f83ea885a3de4172b865a34197b96c70>:0
  at SKCivilianIndustry.SpecialFaction_SKCivilianIndustry.DoMilitiaThreatReaction (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.External.ArcenLongTermIntermittentPlanningContext Context) [0x0076f] in <f83ea885a3de4172b865a34197b96c70>:0
  at SKCivilianIndustry.SpecialFaction_SKCivilianIndustry.DoLongRangePlanning_OnBackgroundNonSimThread_Subclass (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.External.ArcenLongTermIntermittentPlanningContext Context) [0x0004e] in <f83ea885a3de4172b865a34197b96c70>:0
  at Arcen.AIW2.External.BaseSpecialFaction.DoLongRangePlanning_OnBackgroundNonSimThread (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.Core.ILongRangePlanningContext Context) [0x00077] in <7fefacd8d6274b5eb643ab415dfc1a0c>:0
  at Arcen.AIW2.External.SpecialFactionPlanning.Execute () [0x00077] in <7fefacd8d6274b5eb643ab415dfc1a0c>:0
: Re: Civilian Industries
: Endovior October 09, 2020, 09:00:36 PM
I tried continuing that game, and got another, more dire-sounding error:

10/9/2020 8:57:53 PM   DoPerSecondLogic_Stage3Main_OnMainThreadAndPartOfSim Error for faction Civilian Industry(index 9).  Consider restarting the game, as many other things may now go wrong because of this first error.  And please report this! Error: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at System.Collections.Generic.List`1[T].RemoveAt (System.Int32 index) [0x00009] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at SKCivilianIndustry.CivilianMilitia.GetShipCount (Arcen.AIW2.Core.GameEntityTypeData typeData, System.Boolean calledFromSimSafeThread) [0x00092] in <f83ea885a3de4172b865a34197b96c70>:0
  at SKCivilianIndustry.SpecialFaction_SKCivilianIndustry.DoMilitiaDeployment (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.Core.ArcenSimContext Context) [0x00a69] in <f83ea885a3de4172b865a34197b96c70>:0
  at SKCivilianIndustry.SpecialFaction_SKCivilianIndustry.DoPerSecondLogic_Stage3Main_OnMainThreadAndPartOfSim (Arcen.AIW2.Core.Faction faction, Arcen.AIW2.Core.ArcenSimContext Context) [0x002e0] in <f83ea885a3de4172b865a34197b96c70>:0
  at Arcen.AIW2.External.EntitySimLogicImplementation+<>c__DisplayClass60_0.<DoWorldSecondLogic_FromSimBGThread>b__3 (Arcen.AIW2.Core.Faction faction) [0x00002] in <7fefacd8d6274b5eb643ab415dfc1a0c>:0
: Re: Civilian Industries
: StarKeep October 10, 2020, 12:01:52 AM
Fun little bug; I'm guessing I forgot to check for some data being created before using it. The change to how ExternalData is used is something I'm still learning.

Plus side though; if you keep this save for later it should work after I get the fix created and pushed out.
: Re: Civilian Industries
: Endovior October 16, 2020, 09:09:54 PM
Found another bug:

The picture made me think it might've been unrelated, but the log indicates that it has something to do with Civilian Industry.

10/16/2020 9:01:32 PM
Tried to write Int32 PosExceptNeg1, but passed value was: -4, which is out of range!  Value set to -1 so your save would work.   (Unknown field being saved)

  at System.Environment.get_StackTrace () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, System.Boolean IncludeStackTrace, Arcen.Universal.Verbosity Verbosity) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, Arcen.Universal.Verbosity Verbosity) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.Universal.ArcenSerializationBuffer.AddInt32 (Arcen.Universal.ReadStyle RStyle, System.Int32 Item, System.String FieldNameForErrors) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at SKCivilianIndustry.CivilianMilitia.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean IsForPartialSyncDuringMultiplayer) [0x00000] in <b4dcfff58e3d48e099272c53dc496f9f>:0
  at SKCivilianIndustry.Persistence.CivilianMilitiaExternalData.SerializeExternalData (System.Object[] Source, Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean IsForPartialSyncDuringMultiplayer) [0x00000] in <b4dcfff58e3d48e099272c53dc496f9f>:0
  at Arcen.Universal.ArcenExternalData.SerializeExternalDataTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.String ExternalDataHeader, System.Boolean IsForPartialSyncDuringMultiplayer) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.Universal.ArcenExternalDataLookup.SerializeExternalDataTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.String ExternalDataHeader, System.Boolean IsForPartialSyncDuringMultiplayer, System.Boolean IsForLastSettings) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.AIW2.Core.GameEntity_Squad.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, Arcen.Universal.UltraEfficientStyle StyleForPKIDsIfNetworkSyncData) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.AIW2.Core.PlanetFaction.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, SerializationCommandType SerializationCmdType, System.Boolean IsForLastSettings) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.AIW2.Core.Planet.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, SerializationCommandType SerializationCmdType, System.Boolean IsForLastSettings) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.AIW2.Core.Galaxy.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean IsForLastSettings) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.AIW2.Core.World_AIW2.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean DoPartialSyncForDuringGameplay, System.Boolean IsForLastSettings) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.Universal.World.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean DoPartialSyncForDuringGameplay, System.Boolean IsForLastSettings) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.Universal.World.SaveWorldToDisk (System.String SaveName, System.Collections.Generic.List`1[T] SavegameMetadata) [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.AIW2.External.GameCommand_SaveGame.Execute (Arcen.AIW2.Core.GameCommand command, Arcen.AIW2.Core.ArcenSimContext context) [0x00000] in <4e386c2e5e4f4b62b2f4c632dc16857f>:0
  at Arcen.AIW2.Core.GameCommand.Execute (Arcen.AIW2.Core.ArcenSimContext Context) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.AIW2.Core.World_AIW2.OnClient_ExecuteGameCommandsReceivedFromServer (Arcen.AIW2.Core.ArcenSimContext Context) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.AIW2.External.SimPlannerImplementation.DoActualSimStep (System.Boolean& stalledWaitingOnConnections, System.Boolean& mayUpdateVisuals, System.String& reasonForNoVisualUpdates) [0x00000] in <4e386c2e5e4f4b62b2f4c632dc16857f>:0
  at Arcen.AIW2.Core.Engine_AIW2.ProcessSimStep (System.Boolean& stalledWaitingOnConnections, System.String& reasonForNoVisualUpdates) [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at Arcen.Universal.Engine_Universal.OnUpdateFromMainThread () [0x00000] in <61e10848c4834031a6650d8e71fadd0e>:0
  at Arcen.AIW2.Core.ArcenGameControllerBase.BaseUpdate () [0x00000] in <44cd3bd2652146ffb674e9e63f761e6b>:0
  at ArcenGameController.Update () [0x00000] in <342846c60ad043638e2ec80b42611e65>:0
: Re: Civilian Industries
: StarKeep October 17, 2020, 01:59:52 AM
Curse you ExternalData!

The error should be mostly harmless, it looks like its sometimes overdrawing ships out of its storage, so it just means an extra couple ships may pop out of a Patrol Post that weren't listed. I'll look into this.
: Re: Civilian Industries
: WolfWhiteFire October 17, 2020, 06:06:02 PM
This mod seems to be causing a lot of errors when I try running it in the game, with the biggest problem being that it somehow prevents the game from generating a galaxy in the lobby, while none of these errors appear with the mod disabled. Not really sure what is causing the issues, but I took some screenshots of the error messages and found the debug log. The mod seems to be up to date, showing as being last modified at 10/15/2020. Using Windows 10, playing through steam, the only other mods activated being the ones that Arcen added as coming packaged with the game itself like this one. Let me know if there is anything else you need to figure out what the problem is. Also, I verified the integrity of the data cache and it didn't find any issues.
: Re: Civilian Industries
: StarKeep October 17, 2020, 07:50:33 PM
I'm worried that this error keeps popping up. Here are the steps from a Mantis report that fixed it for them.

A: Remove any Civilian Industries files from AI War 2\GameData\ModdableLogicDLLs.
Mods used to require their dll to be put in here, and if you used the mod in the past, there is a chance the old dll is still hanging out within.
B1: Delete the SKCivilianIndustry folder from AI War 2\XMLMods.
B2: Revalidate game files on Steam
Sometimes things just happen in regards to file updates on steam.

If neither of these work; please reply back.
: Re: Civilian Industries
: Gott365 November 06, 2020, 09:48:26 AM
Hey there, I got an issue, where none of the trading ships or builders move from their spawn at the Homeworld. Got a few tradeposts and militia outposts all from the same battlestation (first one you get). I have the mods enabled that are issued with the game atm, but only got an error message from another one, not this one. Trade ships and builders are simply spawning, decolliding and that´s it. No other ships are spawning either. Screen and save attached (there´s a lot going on, though).
Mod list:
 
(AMU, Extended Ship Variants (+Fallen Spire), Kaizers Marauders, More Starting options (didn't pick one of the new ones), this mod and Spire Railgun Shop)

Also tried deleting/validating the mod files, no change.
: Re: Civilian Industries
: StarKeep November 11, 2020, 12:32:37 AM
Oh yikes, I'm sorry I didn't see this before now. It looks like the forum's 'notify' feature isn't working anymore.

I'll look into it within the next few days and see if I can reproduce it and look about a fix for you.
: Re: Civilian Industries
: Endovior November 11, 2020, 03:02:06 AM
Oh yikes, I'm sorry I didn't see this before now. It looks like the forum's 'notify' feature isn't working anymore.

On my end, it's still working... except that the email notifications are being sent to spam. Something in how the automatic notifications are formatted causes them to appear to be from [email protected], as opposed to [email protected], and Google can tell that [email protected] isn't really the sender, and views this as suspicious.
: Re: Civilian Industries
: StarKeep November 12, 2020, 07:53:53 PM
Upon loading into the latest version, they all begin properly moving, so it looks like your bug was fixed alongside the rest of them.
: Re: Civilian Industries
: TechSY730 November 21, 2020, 06:57:37 PM
When you are using "Minimum Tech to Process resource", it no longer says what tech corresponds to that resource.

Like I had no idea that Carbonadium corresponded to Melee; it never told me.