1. Airships: Conquer the Skies
  2. News

Airships: Conquer the Skies News

Version 1.2.3

  • Added setting for enabling/disabling spy actions in conquest. (You still use spies to see enemy cities either way.)
  • Fixed tentacles losing track of crew or trying to grab already grabbed crew.
  • You are now notified when an enemy's new alliance causes a new war for you.
  • The game finally no longer sometimes repositions buildings at the start of combat.
  • Fixed modded zombies turning up on the wrong side.
  • Fixed spy action success chance tooltip.
  • Fixed weapon barrel lighting bug.
  • AI no longer gets stuck moving fleets back and forth when reinforcing an allied city.
  • Fixed the game crashing when a town was incorporated into another empire in the middle of a fight over that town.
  • Crew spawned through hero abilities now despawn again after combat.
  • Reduced money and reputation gained from cultists spawned in the age of madness.
  • Fixed camera not going up far enough in direct control mode.
  • The landscape and weather selectors in combat setup now have scroll bars when needed.
  • Fixed modded external barrel animations.
  • When you're demanding more territory than you're offering, the decrease in AI approval is now shown as a line item in the diplomacy offer editor.
  • Fixed the altitude change sound not ending when you exit direct control mode.

Version 1.2.2 - Diplomacy and AI, Fixes

[h3]Diplomacy and AI[/h3]
  • Empires consisting of a single town can now apply to join an existing larger empire. The joined empire must be at war with anyone the town is at war with.
  • When evaluating attack targets, the AI now looks at enemy fleets that could be sent to reinforce the defenses.
  • AI no longer sends ship halfway across the map, ignoring supply limits.
  • Roughly halved diplomacy value of towns and cities, but introduced a -40 penalty for any trade that is a loss of territory.
  • Doubled interval and effect strength from insults and delegations.
  • When evaluating peace, AIs now take into account whether their AI allies want peace.

[h3]Features and Adjustments[/h3]
  • Tech tier selector for single combats.
  • Attacking fleets are now shown with red travel lines on your map.
  • Allowed combat camera to zoom out more.
  • Option to turn off heroes and incidents by setting their frequency to "None".


[h3]Fixes[/h3]
  • Wheeled and tracked landships are now much better at moving up and down slopes.
  • Combats (including missions) from before version 1.2 that have a less wide combat area are now supported properly.
  • No longer get a research bonus from stealing a fake occult book.
  • Mods with long names now have their whole names shown in the mod list.
  • Biplane hooks can be coloured and are drawn below decals.
  • Weapons that have a clip greater than one and require more than one ammo to reload (such as giant flamethrowers) now show this properly in the tooltip.
  • Gargoyles are now lit correctly.
  • Fixed a crash caused by mods referencing techs by their old name.
  • Empty tiles no longer emit fire particles.
  • The appropriate number of repair crew and firefighters are now despatched to a module, rather than the maximum amount.
  • The AI now researches cartography.
  • Added mast pieces, bowsprits, and figureheads for buildings.
  • Fixed the diplomacy AI not remembering across saves that it recently offered some treaty terms.

[h3]Balance[/h3]
  • Reduced pirate, pirate king, giant anemone, and cultist nest clear payouts by a third.
  • Can no longer endlessly create hero events by re-researching choice techs, rebuilding city upgrades, and failing at attacks without taking any losses.

[h3]Minor Modding Fixes[/h3]
  • Leg images are now flipped alongside the ship the legs are attached to.
  • MonsterNestType: incomeModifier, incomeModifierPercentage, and unrest are now bonusable, using the bonuses from the empire whose territory they're in.

[h3]Hero Modding[/h3]
You can now set "canDismiss" in HeroTypes to false to make a hero non-dismissable. They can still leave via stat effects if you so choose.

With hero stats, you can now set "winOn100" or "loseOn100" to true to make an empire lose the entire game when the stat hits that value. When that happens, the empire's territories are distributed to whatever empire is closest to each territory.

[h3]Modding Shots that Spawn Crew![/h3]
An entirely new feature, allowing you to create weapons that produce crew on impact. This is available both for ship and troop weapons. Use the following fields in ModuleType and CrewType to add this:
  • spawnCrewOnImpact (CrewType) - Setting this to a CrewType will activate crew spawning.
  • spawnNumCrewOnImpact (integer, default 1)
  • spawnCrewInsideIfArmourPierced (true/false, default true)
  • alwaysSpawnCrewInside (true/false, default false) - Note that if the hit tile is not occupable, the crew will still spawn outside the ship even if this is set to true.
  • spawnCrewOnMiss (true/false, default false)
  • spawnCrewOnKillBiologicalOnly (true/false, default false) - Only available for CrewType. Crew is only spawned if the shot killed an enemy crew with isMachine set to false. The "zombify enemies" flag.

You can use this to make boarding torpedoes, zombies, and aircraft dropping paratroopers. Or, as in the title image, gatling guns that spawn bees.



Do note that of course crew have a performance cost, so if you e.g make something that makes a copy of itself every time it fires, the game might run a bit slowly after a while...

Hero Modding Documentation

The heroes introduced in the Heroes & Villains DLC can be modded, changing them or adding new ones.

You can download a simple example mod here, for you to study and modify. You can also look at the already existing heroes in data/crossplay/heroes/HeroType. You can probably figure things out just from that.

The rest of this post attempts to document everything exhaustively, so don't feel that you have to have read all of it to start modding heroes! Reading "Basic Hero Structure" and "Recruit Hooks" and then whatever you think you need should be enough to start.

You can find detailed documentation on how modding works here, but here's the short version: A mod is a folder containing an info.json file, a logo.png file, and a bunch of folders containing JSON files with the same structure as the data folder in the game. You will also need a strings/en.properties file for the text in your mod, and an images folder. Here's the basic structure:

  • MyHeroMod/
    • info.json
    • logo.png
    • HeroType/
      • myHeroes.json
    • strings/
      • en.properties
    • images/
      • myHeroPortrait.jpg
      • scaled/
        • myHeroPortrait-200.jpg
        • myHeroPortrait-100.jpg
        • myHeroPortrait-50.jpg

logo.png should be a 512x512 PNG and info.json should look like this:

{
"id": "MyHeroMod",
"name": {
"en": "My Hero Mod"
},
"description": {
"en": "My Hero Mod is a mod that mods heroes."
}
}


Note that for your mod, you shouldn't put the HeroType folder into a crossplay folder.

[h2]Basic Hero Structure[/h2]
To get started, create a HeroType folder inside your mod folder, and add a JSON file containing the following.

[
{
"name": "myHero",
"role": "CAPTAIN",
"img": "myHeroPortrait.jpg",
"maintenance": 10,
},
]


A hero needs at least a name, a role ("CAPTAIN" or "GOVERNOR"), a portrait image, and a maintenance value. If you want to change an existing hero in the game, use the same name to overwrite them.

The name is used to look up their display name in en.properties. The hero also needs a description under [hero name]_desc, so:

myHero=Steve Stevenson
myHero_desc=Steve is just this guy, you know?


The portrait should be a 300x300px JPG or PNG stored in the images folder. Also add 200px, 100px, and 50px downscaled versions of it to images/scaled/, with the pixel size in the name like so: myHeroPortrait-200.jpg, myHeroPortrait-100.jpg, myHeroPortrait-50.jpg.

This will spawn a new hero in the game, but they won't do anything and can't be acquired.

[h2]Recruit Hooks[/h2]
To get heroes to turn up for recruitment, you need a list of recruit hooks, which specify events that cause them to turn up. Here's an example of three hooks:


"recruitHooks": [
{ "type": "upgradeBuilt", "upgradeType": "fleetAcademy" },
{ "type": "combatVictory" },
{ "type": "techResearched", "tech": "CARTOGRAPHY" },
]


So the hero may turn up when you build a fleet academy, when you win a fight, or when you research cartography. See the full list at the end of this document, or look at the existing heroes.

[h2]Template Heroes[/h2]
If you want to create a generic kind of hero, of which there can be multiple copies, use the following lines:

"isTemplate": true,
"templateSpawnPerEmpire": 0.1,
"templateFirstNameKey": "M",
"templateFirstNameNum": 26,
"templateLastNameKey": "B",
"templateLastNameNum": 26,


templateSpawnPerEmpire is multiplied by the number of starting empires and rounded up to arrive at the number of such heroes to create at the start of the game.

The first name of the hero is generated by picking a number between 0 and templateFirstNameNum - 1 and then looking up "HERO_[number]" in the strings, same with the last name. So M are male names (26 available), F are female names (26 available), NB are non-binary names (6 available), and B are last names (26 available). You can also make your own name lists.

[h2]Starter Heroes[/h2]
At the start of the game, players are given a choice between a set of heroes to start the game with. You can turn a template hero into a starter hero by setting isStarter to true. The game will also create additional such heroes based on templateSpawnPerEmpire if it's more than 0.

[h2]Techs and Bonuses[/h2]
Heroes can give the player techs when they are hired, for example:

"techs": [ "CARTOGRAPHY" ],


If a hero gives a tech, it's a good idea to also specify a hireCost value, which is an up-front payment when hiring the hero, so that players can't just get a tech for nothing.

And a hero can give a bonus to the empire they're working for, which lasts as long as they're around, using "bonus".

Finally, you can use "departureBonus" to specify a bonus that the hero gives the empire when they leave it, due to stat changes or being dismissed. Right now this is just used for druid (Vex) in captains.json, who curses your empire when they depart.

[h2]Passive Combat Abilities[/h2]
On to making heroes actually do something! If you're creating a captain, you can give them passive combat abilities that apply to the ship or fleet they're in. The following are available:

Ship:
  • shipBonus: A Bonus applied to this ship alone.
  • fireRatePercent
  • accuracyPercent
  • crewSpeedPercent
  • flammabilityPercent
  • explosionRiskPercent
  • commandCooldownPercent
  • repairAmountPercent
  • firefightAmountPercent
  • propulsionPercent
  • liftPercent
  • armourRepairPercent
  • experiencePercent
  • lootMoneyPercentage: Percentage of total value of destroyed enemy ships earned after combat.
  • scavengeMoneyToSupply: Multiplied by total value of destroyed enemy ships to gain supply after combat. Note that 100 supply is a lot and 100 ship value is tiny, so this should be a number much smaller than 1.
  • surpriseAttack: If set to true, enemy ships start on command cooldown.

Fleet:
  • expeditionStrengthPercent: Expedition outcomes are based on total fleet strength. This is a percent bonus to fleet strength for this purpose alone.
  • fleetSpeedPercent
  • fleetFireRatePercent
  • fleetAccuracyPercent
  • fleetCrewSpeedPercent
  • fleetFlammabilityPercent
  • fleetExplosionRiskPercent
  • fleetCommandCooldownPercent
  • fleetRepairAmountPercent
  • fleetFirefightAmountPercent

If you have multiple captains in a fleet, only the strongest ability counts. They don't stack.

All percentage values should be integers.

[h2]Combat abilities[/h2]
Captains can also have active combat abilities, which are specified like this:

"combatAbilities": [ "IMPROVISE_MUNITIONS", "SCAVENGE_MATERIALS" ],


Here's a list of all available abilities:
  • SMOKESCREEN
  • FLANK
  • IMPROVISE_MUNITIONS
  • SCAVENGE_MATERIALS
  • SCAVENGE_FUEL
  • ENGINEERING_MIRACLE
  • NECROMANTIC_INCANTATION
  • EXTINGUISH
  • BURST_OF_SPEED
  • SUPERCHARGE_SUSPENDIUM
  • FEAR
  • DOUBLE_TIME
  • TAUNT
  • BLINDING_GLIMMER
  • CROSSWINDS
  • CRIPPLING_SHOT
  • DISARMING_SHOT
  • PARALYSIS
  • TURNABOUT
  • GUST_OF_WIND
  • LAST_STAND
  • SINKHOLE
  • SUDDEN_STORM
  • MOMENT_OF_DOUBT
  • HYSTERICAL_BLINDNESS
  • EARTHQUAKE
  • CRASH_ZONE
  • EMERGENCY_ORDERS
  • HIGH_STORM
  • AERIAL_ACE: Also specify a CrewType with aerialAceCrewType so it knows what unit to spawn.
  • AIR_SUPPORT: Also specify a CrewType with airSupportCrewType and a number with airSupportNumCrew so it knows how many of what units to spawn.
  • PERSONAL_GUARD: Also specify a CrewType with guardCrewType and a number with numGuards so it knows how many of what units to spawn.

[h2]Passive City Abilities[/h2]
If you're making a governor, they can have passive abilities that apply to the city they're assigned to:
  • unrest
  • spyDefence
  • productionPercent
  • defenceBudget
  • incomePercent
  • researchPercent
  • upgradeCostPercent
  • upgradeSpeedPercent
  • airshipSpeedPercent
  • landshipSpeedPercent
  • buildingSpeedPercent

You can also use "research" specify an amount of research generated independent of whether they're assigned anywhere.

[h2]Edicts[/h2]
Governors can also enact edicts in cities they're assigned to. Edicts are temporary events, and unlike active captain abilities, new ones can be modded in. To add one or more edicts to a hero, add a line like this:

"edicts": [ "martial_law" ],


Then, create your edict by adding a JSON file to the Edicts folder in your mod, e.g:

[
{
"name": "martial_law",
"duration": 145600,
"icon": { "src": "heroes", "x": 16, "y": 32 },
"iconBackground": { "src": "heroes", "x": 32, "y": 32 },
"rep": -1,
"unrest": -30,
"comment": "h_martlaw",
"stat": "experience",
"statChange": 10,
"sound": "double-time"
},
]


Edicts need a name, a duration, an icon, and an iconBackground. The icon should be a 16x16px white on transparent icon with a 1px margin, and the iconBackground should be the icon plus a 1px border, fitting into those 16x16 by using the margin. (See the example mod for what that looks like.)

Edicts can make a sound. They can change the stats of the hero that enacts them (see about stats below). You can also have the hero make a comment on the edict.

Edicts can have two kinds of effects: immediate effects that happen when they're enacted, and ongoing effects that last until the end of the edict.

Immediate effects:
  • money
  • instantResearch
  • rep
  • pillaging

Ongoing effects:
  • unrest
  • spyDefence
  • production
  • defenceBudget
  • incomePercent
  • research: Misnamed, also a percentage.
  • upgradeCostPercent
  • upgradeSpeedPercent
  • airshipSpeedPercent
  • landshipSpeedPercent
  • buildingSpeedPercent
Moving and Clearing Monster Nests

Governors can have the ability to clear or move specific monster nests in the territory of their city. To specify clearable nests, add a list to "clearableNests" like so:

"clearableNests": [ "pirates", "brigands", "cultists" ],


You can use nestClearRep, nestClearMoney and nestClearResearch to add rep/money/research effects to clearing a nest. Use nestClearStat to specify the name of a stat you want to change when clearing a nest, and nestClearStatChange to specify by how much. Finally, use nestClearComment to have the hero make a comment when clearing the nest.

Moving nests (which means relocating it to an empty nest location outside your territory) has all the same fields, so moveableNests, nestMoveRep, nestMoveMoney, nestMoveResearch, nestMoveStat, nestMoveStatChange, and nestMoveComment.

[h2]Stats[/h2]
Finally, both captains and governors can have stats, which are values between 0 and 100 that can be affected by the same kind of events as recruit hooks. You can make up any kind of stat, like "Sliminess" or "Desire for Cheese".

Here's an example stats block from Commander Bertelli:

"stats": [
{
"name": "experience",
"startingValue": 0,
"evolveOn100": "heroic_officer",
"changers": [
{ "type": "combatVictory", "change": 5 },
{ "type": "combatDefeat", "change": 5 },
],
},
{
"name": "pride",
"startingValue": 30,
"evolveOn100": "proud_officer",
"changers": [
{ "type": "combatVictory", "change": 10 },
{ "type": "receiveTribute", "change": 30, "comment": "fresh_officer_superiority" },
{ "type": "receiveSubmission", "change": 40, "comment": "fresh_officer_superiority" },
{ "type": "everyMonth", "change": -1 },
{ "type": "combatDefeat", "change": -10 },
],
},
],


Each stat needs a name and a starting value, and one or several changers, which specify when the stat should change. See the list of hooks below to see what changers are possible. Heroes can also make a comment when the changer is triggered.

You can also base the amount by which a stat changes on the size of the map, by adding a changeDivByCities and optionally a changeMax value. Here's an example:

{ "type": "cityGained", "change": 1, "changeDivByCities": 100, "changeMax": 10 },


This means that if you gain a town or city, the stat changes by min(changeMax, change + changeDivByCities / numberOfCitiesOnMap). So 1 plus 100 divided by the map size, but no more than 10. This is especially useful for stats with powerful effects, where you want them to happen more slowly on large maps.

When a stat reaches 0 or 100, it can affect the hero by making them leave, killing them, changing them into another hero, enabling coronation victory without having the required rep, or winning the game altogether.

Here's the values to set for these effects:
  • leaveOn0: true/false
  • leaveOn100: true/false
  • dieOn0: true/false
  • dieOn100: true/false
  • evolveOn0: Name of hero to change into
  • evolveOn100: Name of hero to change into
  • winOn100: true/false
  • coronationOn100: true/false

If you want your hero to evolve into another, set up another hero entry with spawnAtStart set to false, so that their evolved form doesn't turn up beforehand.

Note that Loyalty is a bit of a special case with stats, as a hero with a loyalty stat below 25 is corruptable by spy actions. The stat that lets you have a coronation is usually Fame, and the one that lets you win outright is usually Power, but that's not hard-coded.

[h2]Testing[/h2]
Once you've put together your hero, you can use the cheats (enabled in the game settings) to acquire them for testing.

[h2]Additional Features[/h2][h3]Using Captains in Single Combats[/h3]
Captains can also be used in single combats outside of the campaign by setting the singleCombatCost value.
[h3]Nemesis Empire[/h3]
By setting hasNemesisEmpire to true, a hero can have a nemesis empire, which is a random empire that they hate. The game picks a random empire at the start of the game when creating the hero. Typically, the hero's loyalty changes based on how you interact with their nemesis, but the details of that are up to you.

Because empires can be destroyed, you should also create a version of the hero without the nemesis stat effects and specify it in turnIntoIfNemesisIsGone.

See beautiful_and_determined (Captain Bui) in captains.json for an example.

Of course, a hero will never turn up for recruitment for their nemesis.
[h3]Hometown[/h3]
Conversely, by setting hasHomeCity to true, a hero can have a random hometown. You can then use hooks specific to that hometown to change their stats. See science_admin (Sa'd Khayyam) in governors.json for an example.

Since towns and cities cannot be destroyed, you don't need a version without a hometown.
[h3]Hire Comments[/h3]
Heroes can comment on other heroes being hired without having a stat change, for additional storytelling purposes. You don't need to add anything to the HeroType for this. Simply add a line called
[hero1]_hire_[hero2]
to en.properties.

For example:

painted_sorceress_hire_secret_heretic=Oh, Kamina is so eager to please! We all know why, of course.


This has painted_sorceress (Izegbe) comment on you hiring secret_heretic (Kamina Ver).
[h3]Combat Comments[/h3]
Heroes can also make comments upon things happening in combat. This uses the PortraitMessageType system already used for generic comments on combat.

To create a comment when a hero uses an ability, add a PortraitMessageType that looks like this:

{
"name": "health_and_safety_DOUBLE_TIME",
"eventInfoPrefix": "cast DOUBLE_TIME health_and_safety",
"messageImages": ["scaled/X2-Health-and-safety3-200.jpg"],
},


The eventInfoPrefix is what the system uses to match to combat events. Here, it says that DOUBLE_TIME has been cast by health_and_safety. The message has as many variations as there are message images - so just one in that case, which is:

health_and_safety_DOUBLE_TIME0=Double time, men! Like we trained!


To create a comment when a hero observes an enemy hero's ability use, add one like this:

{
"name": "HYSTERICAL_BLINDNESS_druid",
"heroType": "druid",
"sort": -1,
"eventInfoPrefix": "received HYSTERICAL_BLINDNESS",
"messageImages": ["scaled/X-34-Druid-200.jpg"]
},

[h3]Interesting?[/h3]
Heroes can have "interesting" set to true. If a player has spent two in-game years without having a hero marked as "interesting" turn up for hire, the game tries really hard to get one to turn up as soon as possible.

[h2]List of Hooks[/h2]
Finally finally, here's the list of event hooks and their parameter that you can use for recruitHooks and stat changers. Note that you can find plenty of examples of these being used in captains.json and governors.json.
  • anyNestDestroyed: You've destroyed a nest of any type.
  • bioNestDestroyed: You've destroyed a nest marked as biological.
  • nonBioNestDestroyed: You've destroyed a nest not marked as biological.
  • nestDestroyed(nestType: MonsterNestType): You've destroyed a nest of this specific type.
  • multiNestDestroyed(nestTypes: list of MonsterNestType): You've destroyed a nest from this list of types. The list will be referred to by the first nest on the list.
  • anyNestAppeared: A nest of any type has appeared in your territory.
  • bioNestAppeared: A nest marked as biological has appeared in your territory.
  • nonBioNestAppeared: A nest not marked as biological has appeared in your territory.
  • nestAppeared(nestType: MonsterNestType): A nest of this specific type has appeared in your territory.
  • multiNestAppeared(nestTypes: list of MonsterNestType): A nest from this list of types has appeared in your territory. The list will be referred to by the first nest on the list.
  • anyUpgradeBuilt: You've built a town or city upgrade.
  • upgradeBuilt(upgradeType: CityUpgradeType): You've built a town or city upgrade of this type.
  • takeover(takeoverType: TakeoverMethod): You've started taking over a town or city using this method.
  • anySpyAction: You've done any spy action.
  • spyAction(spyActionType: see list of CitySpyActions below): You've done a spy action of this type.
  • anySpyActionAgainstNemesis: You've done any spy action against this hero's nemesis.
  • spyActionAgainstNemesis(spyActionType: see list of CitySpyActions below): You've done a spy action of this type against this hero's nemesis.
  • everyMonth: Exactly once every month.
  • randomly: Triggers about every 6 months.
  • rarely: Triggers about every 19 months.
  • relationshipLevelUpgrade(newLevel: see list of RelationshipLevels below): Your relationship level with another empire has increased to this level.
  • relationshipLevelUpgradeWithBonusEmpire(newLevel: see list of RelationshipLevels below, bonus: Bonus): Your relationship level with another empire that has this bonus has increased to this level. Used e.g to have Father Tesseract complain when you're nice to cultist empires.
  • nemesisRelationshipLevelUpgrade(newLevel: see list of RelationshipLevels below): Your relationship level with this hero's nemesis has increased to this level.
  • relationshipLevelDowngrade(newLevel: see list of RelationshipLevels below): Your relationship level with another empire has decreased to this level.
  • relationshipLevelDowngradeWithBonusEmpire(newLevel: see list of RelationshipLevels below, bonus: Bonus): Your relationship level with another empire that has this bonus has decreased to this level.
  • nemesisRelationshipLevelDowngrade(newLevel: see list of RelationshipLevels below): Your relationship level with this hero's nemesis has decreased to this level.
  • tradeTreaty: You've made a trade treaty with another empire.
  • tradeTreatyEnded: You've broken or dissolved a trade treaty with another empire.
  • researchTreaty: You've made a research treaty with another empire.
  • researchTreatyEnded: You've broken or dissolved a research treaty with another empire.
  • sendTribute: You've started sending tribute to another empire.
  • sendTributeToNemesis: You've started sending tribute to this hero's nemesis.
  • sendTributeEnded: You've stopped sending tribute to another empire.
  • receiveTribute:You've started receiving tribute from another empire.
  • receiveTributeFromNemesis: You've started receiving tribute from this hero's nemesis.
  • receiveTributeEnded: You've stopped receiving tribute from another empire.
  • demonstrateSubmission: You've demonstrated submission to another empire.
  • demonstrateSubmissionToNemesis: You've demonstrated submission to this hero's nemesis.
  • receiveSubmission: You've received submission from another empire.
  • receiveSubmissionFromNemesis: You've received submission from this hero's nemesis.
  • cityGained: You've gained control of a town or city.
  • homeCityGained: You've gained control of this hero's hometown.
  • cityLost: You've lost control of a town or city.
  • homeCityLost: You've lost control of this hero's hometown.
  • combatVictory: You've won a battle.
  • combatVictoryAgainstNemesis: You've won a battle against this hero's nemesis.
  • combatDefeat: You've lost a battle.
  • combatDefeatAgainstNemesis: You've lost a battle against this hero's nemesis.
  • nemesisDestroyed: This hero's nemesis empire has stopped existing. (By your actions or otherwise.)
  • techResearched: You've researched any technology.
  • techResearched(tech: Tech): You've researched this specific technology.
  • heroHired(hero: HeroType): You've hired this hero.
  • heroLeft(hero: HeroType): This hero has left your employ, by being fired, or leaving, or dying.
  • repLevelUpgrade: Your reputation level has increased.
  • repLevelUpgrade(level: see list of RepLevels below): Your reputation level has increased to this level.
  • repLevelDowngrade: Your reputation level has decreased.
  • repLevelDowngrade(level: see list of RepLevels below): Your reputation level has decreased to this level.
  • incident(tag: text, see list of Incident Tags below): You had a diplomatic incident outcome with this tag.

CitySpyActions:
  • SABOTAGE_RISE_TO_POWER
  • BRIBE_GOVERNOR
  • CONVERT_GOVERNOR
  • INTRIGUE
  • UNEARTH_SCANDALS
  • ORGANISE_STRIKES
  • SABOTAGE_PRODUCTION
  • STEAL_RESEARCH
  • STEAL_SUPPLIES
  • STEAL_FUNDS
  • BUILD_NETWORK
  • FOMENT_UNREST
  • SABOTAGE_CORONATION
  • SABOTAGE_FINAL_RITUAL
  • INCITE_RIOT
  • INCITE_REVOLT

RelationshipLevels:
  • WAR
  • TRUCE
  • PEACE
  • NON_AGGRESSION_PACT
  • DEFENSIVE_PACT
  • ALLIANCE

RepLevels:
  • LOVED (80-100)
  • LIKED (60-79)
  • TOLERATED (40-59)
  • DISLIKED (20-39)
  • HATED (0-19)

Incident Tags currently being used in incidents:
  • coop: You cooperate with another empire.
  • betrayed: You were betrayed by another empire.
  • betrayal: You betrayed another empire.
  • kindness: You showed kindness to another empire.
  • kindnessReceived: You received kindness from another empire.

Version 1.2.1 Balance Fixes & Hero Changes

Edit: I forgot three things:
  • 1/2 and 1/4 speeds are available again in multiplayer.
  • There's now a cheat menu option for getting heroes of your choice.
  • Age of monsters/piracy/madness now spawns monster nests at the start rather than throughout the age.


[h2]Conquest Balance[/h2]
  • +10 base unrest in towns, +15 in cities.
  • Increased maximum unrest decrease from defensive buildings from 20 to 30.
  • Reduced cost of defensive buildings by 1/6.
  • AI is now much more likely to enter alliances and defensive pacts once one empire controls a significant proportion of the map.


These balance changes are intended to improve the difficulty curve of the game, so you may find it somewhat harder than before.

[h2]Combat Balance[/h2]
  • Mech squid and fleshcrackers now have a limited running time. (3 minutes and 4 minutes respectively)
  • Halved mech squid HP.
  • More accurate ballista.
  • 50% faster wurms.
  • Reduced grenade arc gravity.
  • Reduced heavy wooden armour blast damage absorb from 8 back to 6.
  • Increased flamethrower blast damage from 6 to 8.
  • Boosted big wheel carry cap by 20%.
  • Extra 10 degrees of mortar depression.
  • 8 seconds until lightning starts to hit in high storm instead of 4.


[h2]Fixes[/h2]
  • AI no longer hires heroes it can't afford, and fires heroes if money is tight.
  • Prevented buildings with keels and other constructions with the wrong kinds of modules.
  • Landships can drive on constructions (other landships, buildings, airships) now.
  • Fixed direct control crash.
  • Fixed intercept crash.
  • Fixed some causes of desync. Still hunting others.
  • Fixed torpedo bombers having catastrophically bad aim at the start of combats.


[h2]Minor Fixes[/h2]
  • Improved Japanese font rendering.
  • AI fleets consisting of single supply ships no longer attempt to conquer cities.
  • Preloading weather background sound loops to make weather changes go more smoothly.
  • Added missing image for age of madness.
  • Added some new nest icons.
  • Fixed band of brothers text.
  • Fixed missing Targeting Computer string.
  • Fixed damaged inverted large junk sail image.
  • Deduplicated special build options.
  • Prevented the same hero from turning up too often.
  • Turnabout now flips tentacles.
  • Prevented multiple filled nests in the same city at start.
  • Added a border around the map view mode selector in the bottom right.


[h2]Hero Reworks[/h2]
  • Manha Ithkuil: Added Loyalty stat that decreases by 1/month and is increased by combat defeats, certain spy actions, and betraying empires in diplomatic incidents.
  • Palmerston: Removing a monster nest now increases rep by 3. Can now also remove Titan Bladeweeds and Land Anemones. Added Monster Exhibition edict that increases rep, reduces unrest, and produces a bit of science.
  • Sigan Sainik: Gain 3 rep from clearing nests. Maintenance reduced from 10 to 5. Building a Hospital now also grants 5 Idealism.
  • Sigan the Cruel: Local production and unrest bonuses replaced by empire-wide bonus Sigan's Cruelty: +100% production, +20% town and city income, +15 unrest.
  • Lord Sigan: Fame increase from clearing a nest increased from 5 to 10. Local unrest bonus replaced by empire-wide bonus Sigan's Wisdom: -10 unrest, double gentle takeover speed.
  • Igor Nescimus: Once his nemesis is defeated, gains 25 XP per Police Station and Garrison built. Upgrades into a version that doubles unrest reduction from Police Stations and Garrisons.


[h2]Hero Balance Changes[/h2]
  • Professor John Prolix: +5 Research
  • Kantorka: Unlocks Dragonriders
  • Lilith: Reduced upgrade speed by a third, increased Ritual of Praise cost from 500 to 800.
  • Lilith, Saviour of Mankind: Brutal takeovers now only increase Loyalty by 5 instead of 10.
  • Commander Yithrak: Reduced fire rate bonus from 50% to 40%.
  • Vex: Base loyalty increased from 30 to 90, loyalty gain from destroying a non-biological nest increased from 20 to 40, loyalty loss from destroying a biological nest increases from 30 to 60, added -1 loyalty per month.
  • The Magnificent Alexander: Magnificent Party cost reduced from 1000 to 500, and it now also reduces 25 Boredom in Alexander.
  • Captain Bertelli: Fleet crew speed bonus increased from 10% to 25%. +50% Fame gain from winning combats. Fame loss from losing combats reduced from 30 to 25.
  • Akim: Maintenance reduced from 10 to 3.
  • Yitzhak Sutter: Maintenance reduced from 8 to 5.
  • Lacuna Abgott: Spy success chance bonus increased from 20% to 40%.
  • Fatima: Maintenance increased from 8 to 12.
  • Grand Sorceress Fatima: Maintenance increased from 15 to 20. Summoned guardian sprites do 80% less damage.
  • Laura Ali (base): Upgrade cost reduction increased from 30% to 50%. 50% more experience gain.
  • Dame Ali: Maintenance reduced from 16 to 10.
  • Luca van Fruchtenbach: Added $300 one-off hire cost. Replaced 20% local spy defence with 10% empire-wide spy defence.
  • Sa'd Khayyam: Symposium cost reduced from $1000 to $500. Instead of boosting local research by 20%, it now grants a lump sum of research.
  • Sam: Maintenance reduced from $10 to $5. Can no longer build Mech Squid. Doubled XP gain from destroying monster nests.
  • Doctor Violet: Increased maintenance from $15 to $17. Mech squid now have reduced HP and a 3 minute running time before they stop.
  • Izegbe: Reduced maintenance from $12 to $9.


[h2]Starter Hero Balance Changes[/h2]
  • Architect: Doubled XP gain from building town and city upgrades.
  • Disciplinarian: Increased unrest reduction from 25 to 30. Doubled martial law running time to a year.
  • Engineer (upgraded): Fleet accuracy bonus reduced from 30% to 20%.


[h2]Special Event Hero Balance Changes[/h2]
  • Ascended Scholar: Summoned guardian sprites do 80% less damage.
  • Mad Scientist: Instead of providing 5 research, now triples research output at the city she is assigned to. Mech squid now have reduced HP and a 3 minute running time before they stop.

Airships: Conquer the Skies gets a DLC adding in captains and governors

Have you played Airships: Conquer the Skies? It's a game about building fearsome airships and land vehicles to give you the edge in massive aerial battles.

Read the full article here: https://www.gamingonlinux.com/2023/07/airships-conquer-the-skies-gets-a-dlc-adding-in-captains-and-governors