Compare commits

...

37 Commits

Author SHA1 Message Date
Justus Avramenko
cb051cbfba Revert "[UI] [Maps] Update the "New Maps" campaign with the A27 new skirmish maps"
This reverts commit cfa2de25ad.
2024-09-12 01:44:29 +02:00
Justus Avramenko
b80f87d668 [UI] [Maps] Update the "New Maps" campaign with the A27 new skirmish maps
https://code.wildfiregames.com/D5289
2024-09-12 01:44:29 +02:00
Justus Avramenko
b626bb7eae [Fix] Code inconsistency in Attack.js for range accuracy
The proper schema is:

Attack/Ranged/Projectile/Spread

Fixes this oversight in Attack.js and adjusts the relevant technologies and trigger.
2024-09-12 01:44:29 +02:00
ea4b580527
Simplify JSON parsing 2024-09-11 17:52:10 +02:00
0e84957979
Simplify XML parsing by iterating only once
This simplifies the XML parsing, by iterating over the DOM tree only
once. Curiously this doesn't result in significant performance gains.

As the keywords are now found in the order they appear in the
document instead of the order they are mentioned in messages.json, the
order of a few strings in the PO-templates changes caused by the changes
in this commit.
2024-09-11 17:52:10 +02:00
eeb502c115
Simplify code by making use of early returns 2024-09-11 17:52:10 +02:00
f4c40b740c
Remove unnecessary extractors package
This simplifies the code structure, by removing the extractors package,
which only contained a single module, the extractors module. This module
is now located in the i18n_helper package.
2024-09-11 17:52:09 +02:00
20ab96a0f4
Make some attribute names PEP 8 compatible 2024-09-11 17:52:09 +02:00
ac48b72550
Move imports to the top of the file 2024-09-11 17:52:09 +02:00
4d3be23bac
Remove broken and unused ini-file extractor
The ini-file extractor has been broken since the transition to Python 3
and nobody noticed, because it isn't used nowadays. Therefore, let's
remove it.
2024-09-11 17:52:09 +02:00
f856a7663f
Add a cache for mask patterns
This increases the performance of updating the PO-templates
significantly by adding a cache for the building of mask patterns. In
non-representative tests it increased the performance of updating the
PO-templates by >25%.
2024-09-11 17:52:09 +02:00
7575dfe3c8
Remove unnecessary use of codecs module 2024-09-11 17:52:08 +02:00
e86fd58524
Simplify and speed up finding of messages.json 2024-09-11 17:51:58 +02:00
04aa01a39b
Speed up fetching of translations from Transifex
This increases the number of workers to use when fetching translations
from Transifex from 5 (the default) to 12. While the Transifex CLI
allows up to 20 workers, using more workers results in frequent request
throttling, which hurts performance more than it improves it.
2024-09-10 07:34:48 +02:00
ccb1d747f0
Use PEP 8 naming conventions for templatesanalyzer 2024-09-10 07:29:33 +02:00
5bea0a0f97 Add the large address aware flag to the nightly build. 2024-09-09 11:46:31 +03:00
26994b156b Split source package downloads
Instead of fetching the whole svn repo containing all current
dependencies into source, fetch them individually into subdirectories of
source.

Adds a wrapper script to each package to place the build output where
it's currently expected.

This allows adding and removing dependencies as well as changing origin
of those packages on a case by case basis.

It's recommended to run "git clean -dxf libraries/source" to free up
extra space and remove untracked files no longer covered by changes in
.gitignore.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 22:17:08 +02:00
2b5ecd02a7 build-source-libs.sh: drop Perl dependency
Instead of using Perl to get the absolute path due to readlink -f
implementations differing behaviour use realpath. Since the inclusion
into coreutils this should be a valid alternative.

Also check for [[:space:]] instead of only \s as if that one is an issue
the others are as well.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 17:51:16 +02:00
bf82871ca8 build-source-libs.sh: remove --source-libs-dir
During the migration it apparently looked possibly useful at some point,
in the end it remained unused.

Further the clean-source-libs.sh doesn't handle the case where
build-source-libs.sh was invoked with --source-libs-dir.

Finally, when switching to support individual package this becomes very
complex to support.

For all the above reason remove the option.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 17:51:16 +02:00
33134af6c3 Stop using the source-libs repository on Windows
All prebuilt files for Windows libraries are now stored in the
windows-libs SVN repository for the foreseeable future.
2024-09-08 17:51:15 +02:00
966d859050 Add yamllint to pre-commit
Adding a hook to pre-commit to enforce a consistent style and remove the
hook check-yaml which only checks if a document is parsable and so
become redundant.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 13:08:11 +02:00
87f667732c Format yaml files
The schema at https://json.schemastore.org/gitea-issue-forms.json
doesn't like empty titles, so just remove the key to the same effect as
a zero length string.

Add document start markers where they are missing.

Use a max line length of 100 as discussed with Dunedan.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 13:08:11 +02:00
10e7513bba
Revert changes in check_diff.py in batches
This is to avoid running into errors caused by the limited length of
command line input when reverting lots of files.
2024-09-08 11:39:08 +02:00
fce48ca4be Include names of unit actions before descriptions in tooltips
Respecting the format of the tooltips of the other panels, include
a short name in bold on the first line of the tooltip to facilitate
a quick understanding of the action, and below, in normal font, a
description with relevant details.

The description of the patrol action is rewritten to make it more
understandable.

Fixes #7016
2024-09-08 10:25:59 +02:00
34a209b680
Update glad to 2.0.7
Release: https://github.com/Dav1dde/glad/releases/tag/v2.0.7
2024-09-08 09:31:14 +02:00
0f87124b98
Some glad improvements
- Silence a MSVC warning in vulkan.cpp, refs #6987
- Document the patching of gl.h for macOS, from r26094
- Fix shellcheck warnings in the generation script
2024-09-08 09:26:46 +02:00
35d998694f
Move glad from source-libs to source/third_party
Improve definition of the gladwrapper project in premake.
2024-09-08 09:18:45 +02:00
09f55a1afc Revising the loading screen tips and adding new ones 2024-09-06 14:53:35 +02:00
afa9f212f4 Add yaml setting to editorconfig
Currently all files adhere to the same formatting, let's codify it so it
stays like this in the future.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-04 19:45:50 +02:00
8d0af4b184
Unify Windows scripts for getting nightly binaries
The new script merges existing scripts for downloading translations and
SPIR-V shaders, and also exports game binaries from the latest nightly
build into the git repo.

This allows contributors, especially artists, to obtain a working build
of the game without learning how to build the game for Windows, refs #1814.
2024-09-04 17:20:50 +02:00
eb499b4c5c
Fix a regression introduced with 4a049c5f3a 2024-09-04 15:03:21 +02:00
19e7d14506
Use PEP 8 naming conventions for fontbuilder2 2024-09-03 14:01:47 +02:00
4a049c5f3a
Use PEP 8 naming conventions for i18n tools 2024-09-03 13:51:27 +02:00
80f808df4a
Markdown format for fontbuilder2 README
The fontbuilder2 README file was already partially formatted with
Markdown, but didn't indicate that via its file extension. This commit
changes that and improves the formatting of the README itself.
2024-09-03 13:39:28 +02:00
9fd05e38a4 Update libraries to fix some build errors on recent macOS.
Fixes #6797
Fixes #6902
Refs #6915
Fixes #6916
Refs #4362
2024-09-03 11:17:12 +02:00
f7630b155c Do not hardcode JOBS in CI pipelines
This build environment variable is now set agent-wide and corresponds to
the number of CPUs of each agent.
2024-09-02 21:47:08 +02:00
670f68c1c5 Fix remnant from old Jenkins configuration 2024-09-02 21:47:08 +02:00
155 changed files with 18197 additions and 1261 deletions

View File

@ -10,5 +10,9 @@ indent_style = tab
function_next_line = true
switch_case_indent = true
[*.{yaml,yml}]
indent_style = space
indent_size = 2
[build/premake/premake5/**]
ignore = true

View File

@ -1,19 +1,24 @@
---
name: Defect
about: Report an issue with the game. Errors, crashes, unexpected behaviour should be reported this way.
title: ""
about: >
Report an issue with the game. Errors, crashes, unexpected behaviour should be reported this way.
labels:
- "Type/Defect"
- "Priority/3: Should Have"
body:
- type: markdown
attributes:
value: |
**Please select a Theme label that corresponds best to your issue. You can also adjust the Priority label.**
value: >
**Please select a Theme label that corresponds best to your issue. You can also adjust the
Priority label.**
- type: checkboxes
attributes:
label: Reporting Errors
description: For crashes and errors, you must read the [ReportingErrors](wiki/ReportingErrors) page. In particular, if you are reporting a crash, you must upload crashlog files in the Description field below.
description: >
For crashes and errors, you must read the [ReportingErrors](wiki/ReportingErrors) page. In
particular, if you are reporting a crash, you must upload crashlog files in the Description
field below.
options:
- label: I have read the ReportingErrors wiki page.
required: true
@ -29,6 +34,8 @@ body:
- type: input
attributes:
label: Version
description: Type the version of the game you are running (displayed at the bottom of the main menu, or the Alpha version, or "nightly-build").
description: >
Type the version of the game you are running (displayed at the bottom of the main menu, or
the Alpha version, or "nightly-build").
validations:
required: true

View File

@ -1,14 +1,15 @@
---
name: Enhancement
about: Ask us for an improvement you wish to see in the game.
title: ""
labels:
- "Type/Enhancement"
- "Priority/3: Should Have"
body:
- type: markdown
attributes:
value: |
**Please select a Theme label that corresponds best to your issue. You can also adjust the Priority label.**
value: >
**Please select a Theme label that corresponds best to your issue. You can also adjust the
Priority label.**
- type: textarea
attributes:
@ -18,7 +19,9 @@ body:
- type: markdown
attributes:
value: |
**Important Note:** Gameplay and balance changes require preliminary discussion, and consensus must be reached with the Balancing team.<br>
If this is a gameplay change, please add the *Needs Design Input* label, and open a forum topic for discussing your proposal.<br>
value: >
**Important Note:** Gameplay and balance changes require preliminary discussion, and
consensus must be reached with the Balancing team.<br>
If this is a gameplay change, please add the *Needs Design Input* label, and open a forum
topic for discussing your proposal.<br>
You should link that forum topic in the ticket Description above.

View File

@ -13,7 +13,9 @@ jobs:
run: pip3 install lxml
- name: Workaround for authentication problem with LFS
# https://gitea.com/gitea/act_runner/issues/164
run: git config --local http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/.extraheader ''
run: >
git config --local
http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/.extraheader ''
- name: Download necessary LFS assets
run: git lfs pull -I binaries/data/mods/public/maps
- name: Check for missing references

11
.gitignore vendored
View File

@ -1,7 +1,6 @@
# Built and prebuilt binaries
binaries/system/*
!binaries/system/Atlas.bat
!binaries/system/Quickstart.bat
!binaries/system/*.bat
!binaries/system/readme.txt
# Workspaces
@ -15,9 +14,15 @@ build/workspaces/vs2017
# Libraries
libraries/macos
libraries/source
libraries/win32
libraries/source/cxxtest-4.4/*
libraries/source/fcollada/*
libraries/source/nvtt/*
libraries/source/spidermonkey/*
!libraries/source/**/build.sh
!libraries/source/**/patches/
# premake5 build files, adapted from upstream
build/premake/premake5/**/.gitignore
build/premake/premake5/**/.travis.yml

View File

@ -20,7 +20,6 @@ repos:
^binaries/data/mods/_test.sim/simulation/templates.illformed.xml|
^binaries/data/mods/public/maps/.*\.xml
)
- id: check-yaml
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.1
hooks:
@ -57,8 +56,8 @@ repos:
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
- id: shellcheck
exclude: ^build/premake/premake5/
- id: shellcheck
exclude: ^build/premake/premake5/
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.41.0
hooks:
@ -69,3 +68,10 @@ repos:
^build/premake/|
^source/third_party/
)
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
args:
- --strict
exclude: ^build/premake/premake5/

8
.yamllint.yaml Normal file
View File

@ -0,0 +1,8 @@
---
# https://yamllint.readthedocs.io/en/stable/index.html
extends: default
rules:
line-length:
max: 100
truthy:
check-keys: false

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1363,7 +1363,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.unload") +
translate("Unload All."),
translate("Unload All") + "\n" +
bodyFont(translate("Order all units to leave the selected entities.")),
"icon": "garrison-out.png",
"count": count,
"enabled": true
@ -1398,7 +1399,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.unloadturrets") +
translate("Unload Turrets."),
translate("Unload Turrets") + "\n" +
bodyFont(translate("Order all units to leave the selected turret points.")),
"icon": "garrison-out.png",
"count": count,
"enabled": true
@ -1418,10 +1420,12 @@ var g_EntityCommands =
{
"tooltip":
colorizeHotkey("%(hotkey)s" + " ", "session.kill") +
translate("Destroy the selected units or structures.") + "\n" +
colorizeHotkey(
translate("Use %(hotkey)s to avoid the confirmation dialog."),
"session.noconfirmation"
translate("Self-Destruct") + "\n" +
bodyFont(translate("Destroy the selected entities.") + "\n" +
colorizeHotkey(
translate("Use %(hotkey)s to avoid the confirmation dialog."),
"session.noconfirmation"
)
),
"icon": "kill_small.png",
"enabled": true
@ -1470,7 +1474,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.stop") +
translate("Abort the current order."),
translate("Abort") + "\n" +
bodyFont(translate("Cancel the current orders for the selected units.")),
"icon": "stop.png",
"enabled": true
};
@ -1491,7 +1496,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.calltoarms") +
translate("Send the selected units on attack move to the specified location after dropping resources."),
translate("Attack") + "\n" +
bodyFont(translate("Send the selected units on attack move to the specified location after dropping resources.")),
"icon": "call-to-arms.png",
"enabled": true
};
@ -1513,7 +1519,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.garrison") +
translate("Order the selected units to garrison in a structure or unit."),
translate("Garrison") + "\n" +
bodyFont(translate("Order the selected units to garrison in a structure or another unit.")),
"icon": "garrison.png",
"enabled": true
};
@ -1535,7 +1542,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.occupyturret") +
translate("Order the selected units to occupy a turret point."),
translate("Occupy Turret") + "\n" +
bodyFont(translate("Order the selected units to occupy a turret point.")),
"icon": "occupy-turret.png",
"enabled": true
};
@ -1557,7 +1565,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": translate("Unload"),
"tooltip": translate("Unload") + "\n" +
bodyFont(translate("Order the selected units to leave their turret points.")),
"icon": "leave-turret.png",
"enabled": true
};
@ -1577,7 +1586,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.repair") +
translate("Order the selected units to repair a structure, ship, or siege engine."),
translate("Repair") + "\n" +
bodyFont(translate("Order the selected units to repair a structure, ship, or siege engine.")),
"icon": "repair.png",
"enabled": true
};
@ -1598,7 +1608,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "camera.rallypointfocus") +
translate("Focus on Rally Point."),
translate("Focus on Rally Point") + "\n" +
bodyFont(translate("Center the view on the selected rally point.")),
"icon": "focus-rally.png",
"enabled": true
};
@ -1635,7 +1646,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.backtowork") +
translate("Back to Work"),
translate("Back to Work") + "\n" +
bodyFont(translate("Order the selected units to resume their work.")),
"icon": "back-to-work.png",
"enabled": true
};
@ -1656,7 +1668,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.guard") +
translate("Order the selected units to guard a structure or unit."),
translate("Guard") + "\n" +
bodyFont(translate("Order the selected units to guard a structure or unit.")),
"icon": "add-guard.png",
"enabled": true
};
@ -1676,7 +1689,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": translate("Remove guard"),
"tooltip": translate("Abort Guard") + "\n" +
bodyFont(translate("Order the selected units to stop guarding.")),
"icon": "remove-guard.png",
"enabled": true
};
@ -1695,7 +1709,9 @@ var g_EntityCommands =
return false;
return {
"tooltip": translate("Barter & Trade"),
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.gui.barter.toggle") +
translate("Barter & Trade") + "\n" +
bodyFont(translate("Open the dialog for managing resource trading and bartering.")),
"icon": "economics.png",
"enabled": true
};
@ -1715,8 +1731,8 @@ var g_EntityCommands =
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.patrol") +
translate("Patrol") + "\n" +
translate("Attack all encountered enemy units while avoiding structures."),
translate("Patrol") + "\n" +
bodyFont(translate("Order to repeatedly go to a point and come back, attacking all enemies along the way.")),
"icon": "patrol.png",
"enabled": true
};
@ -1744,12 +1760,14 @@ var g_EntityCommands =
return sharableEntities.some(entState => !entState.resourceDropsite.shared) ?
{
"tooltip": translate("Press to allow allies to use this dropsite"),
"tooltip": translate("Share Dropsite") + "\n" +
bodyFont(translate("Allow allies to use this dropsite, now locked.")),
"icon": "locked_small.png",
"enabled": true
} :
{
"tooltip": translate("Press to prevent allies from using this dropsite"),
"tooltip": translate("Lock Dropsite") + "\n" +
bodyFont(translate("Prevent allies from using this dropsite, now shared.")),
"icon": "unlocked_small.png",
"enabled": true
};
@ -1784,14 +1802,16 @@ var g_EntityCommands =
if (!shareableEntities.every(entState => entState.resourceDropsite.shared))
return {
"tooltip": translate("The use of this dropsite is prohibited"),
"tooltip": translate("Locked Dropsite") + "\n" +
bodyFont(translate("The use of this dropsite is prohibited.")),
"icon": "locked_small.png",
"enabled": false
};
return {
"tooltip": g_IsObserver ? translate("Allies are allowed to use this dropsite.") :
translate("You are allowed to use this dropsite"),
"tooltip": translate("Shared Dropsite") + "\n" +
bodyFont(g_IsObserver ? translate("Allies are allowed to use this dropsite.") :
translate("You are allowed to use this dropsite.")),
"icon": "unlocked_small.png",
"enabled": false
};
@ -1810,7 +1830,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.queueunit.autoqueueon") +
translate("Activate auto-queue for selected structures."),
translate("Activate Auto-Queue") + "\n" +
bodyFont(translate("Activate the production auto-queue for the selected structures.")),
"icon": "autoqueue-on.png",
"enabled": true
};
@ -1830,7 +1851,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.queueunit.autoqueueoff") +
translate("Deactivate auto-queue for selected structures."),
translate("Deactivate Auto-Queue") + "\n" +
bodyFont(translate("Deactivate the production auto-queue for the selected structures.")),
"icon": "autoqueue-off.png",
"enabled": true
};

View File

@ -1,4 +1,5 @@
ROMAN ARMY CAMP
Buildable in neutral or enemy territory. Good for building a secret base behind enemy lines or to consolidate gains within enemy territory.
Construct rams and train citizen soldiers.
Garrison units to slowly heal them and protect the army camp from attacks and decay.
Buildable in neutral or enemy territory. Good for setting up a secret base behind enemy lines or to consolidate gains within enemy territory.
Constructs Rams and trains high-rank Citizen Soldiers.
Fires arrows at any enemies in sight.
Garrison units inside for protection and additional arrows.

View File

@ -1,5 +1,5 @@
ARROW SHIPS
The basic Warship for most factions.
Transport up to 30 troops across the water.
The basic Warship for most civilizations.
Transports up to 30 troops across the water.
Good against melee Warships, such as Ramming Ships and Fire Ships.
Countered by Siege Ships and other Arrow Ships.

View File

@ -1,5 +1,5 @@
BARRACKS
Train all citizen soldiers. Some civilizations can unlock the training of champions as well.
Units gain experience while garrisoned inside the building.
Build one early to train citizen soldiers while you phase up your settlement.
Build in a forward base to resupply your assault with fresh troops.
Trains all Citizen Infantry. Some civilizations can unlock the training of Champions in it as well.
Units gain experience while garrisoned inside.
Build one early to train Citizen Soldiers while you phase up your settlement.
Build near the front lines to resupply your assault with fresh troops.

View File

@ -0,0 +1,3 @@
BARTER
At the Market structure, a player can exchange a resource for another of a different type.
Rates are affected globally by all players. Turn this into an advantage by checking prices regularly.

View File

@ -1,3 +1,3 @@
BIOMES
Biomes can be used on some random maps and determine which region of the world the map represents.
They influence the appearence of the maps and also the amount of resources that are available.
Biomes can be used on some random maps to determine which region of the world the map represents.
They influence the appearence of the maps and also the available amount of different resources.

View File

@ -1,4 +1,5 @@
WAR DOG
A dog that the Britons can train at the cavalry stable.
A unique dog unit that the Britons can train at the Cavalry Stable.
Has low health, but is fast and will fearlessly attack enemies.
Cannot capture or destroy structures.
Use them as support in your army or for quick raids.

View File

@ -1,4 +1,4 @@
CARTHAGINIAN SACRED BAND
Champion Spearmen and Champion Cavalry Spearmen for Carthage.
Both are trainable from the Temple, instead of the Fortress like most other champions.
Use the Spearmen as heavy infantry against cavalry. Use the Cavalry as heavy shock against siege weapons and skirmishers.
Champion Spearmen and Champion Cavalry Spearmen for the Carthaginians.
Trainable from the Temple, unlike most other Champions.
Use the Spearmen to counter enemy Cavalry. Use the Cavalry as heavy shock against Siege Weapons and Ranged Infantry.

View File

@ -1,4 +1,4 @@
CARTHAGINIAN NAVAL SHIPYARD
Special dock of the Carthaginians to construct warships.
Garrison ships inside to slowly repair them.
Much stronger than other docks, but also more expensive.
Special Dock of the Carthaginians to construct Warships.
Garrison Ships inside to slowly repair them.
Much stronger than other Docks, but also more expensive.

View File

@ -1,4 +1,4 @@
CATAPULTS
Ranged siege engines that are good against structures.
Expensive and slow.
Long-ranged Siege Engines.
Devastating against structures, but also expensive and slow.
Pack up into carts for movement, and unpack into stationary engines for attack!

View File

@ -1,3 +1,3 @@
CAVALRY STABLE
Trains cavalry units and lets you research cavalry specific technologies.
Trains Cavalry Units and lets you research cavalry-specific technologies.
Units gain experience while garrisoned inside the structure.

View File

@ -1,4 +1,4 @@
CELTIC HEAVY ARROW SHIP
The main warship for the Britons, Gauls, and Iberians.
The main Warship for the Britons, Gauls, and Iberians.
Can transport up to 40 units.
Can be improved with greater health and garrison capacity.
Research special technologies to improve them with greater health and garrison capacity.

View File

@ -1,4 +1,4 @@
CITY WALLS
Strong stone walls that help you protect your city.
When your ranged infantry units are occupying the turrets, they have additional armor and can shoot at the enemy.
Vulnerable to siege weapons like catapults, rams and war elephants.
Occupy the turrets with Ranged Infantry for increased defense and greater vision range.
Knock them down with Siege Engines like Catapults, Battering Rams, or War Elephants.

View File

@ -0,0 +1,4 @@
CIVIC CENTER
The foundation of your new colony.
Claim large tracts of land by building them in previously unclaimed territory.
Trains all Citizens: Female Citizens, Citizen Infantry, and Citizen Cavalry.

View File

@ -1,5 +0,0 @@
CIVIC CENTERS
The foundation of your new colony.
Claim large tracts of territory.
Can be built in friendly and neutral territory.
Train citizens: female citizens, infantry citizen-soldiers, and cavalry citizen-soldiers.

View File

@ -0,0 +1,4 @@
CONTROL GROUPS
Save your current selection to a hotkey by pressing CTRL + a number from 0 to 9 (by default) simultaneously.
After the control group has been created, quickly select them again by pressing the assigned number.
A double click additionally centers the camera to the selection.

View File

@ -1,4 +1,4 @@
DEFAULT FORMATION
Right-click an icon to set the default formation: units that are ordered to walk or patrol will automatically use it.
Can be de-activated by choosing “no formation” as the default.
Can be deactivated by choosing “no formation” as the default.
The “Formation control” option lets you choose whether formations disband for orders other than walking or patrolling.

View File

@ -0,0 +1,4 @@
DEFENSE TOWER
Defend a vulnerable position by building these strong watchtowers.
Has a large vision range and shoots arrows at any enemy in sight.
Garrison Infantry inside to increase its firepower.

View File

@ -1,5 +0,0 @@
DEFENSE TOWERS
Strong watchtowers, which help you defend your position.
They have a large vision range and will shoot arrows at the enemy in sight.
You can garrison more infantry inside them to increase the number of arrows they shoot.

View File

@ -0,0 +1,5 @@
DOCK
Buildable in neutral and allied territory.
Constructs various Ships for economic and military needs.
Also serves as a resource dropsite.
Can be set up as a trade point for both naval and land Traders.

View File

@ -1,3 +1,3 @@
ELEPHANT STABLE
The structure is available to some civilizations to train elephant units.
Units gain experience while garrisoned inside the building.
Available to some civilizations to train Elephants.
Units gain experience while garrisoned inside.

View File

@ -1,3 +1,3 @@
EMBASSIES AND MERCENARY CAMPS
Special structures allowing you to hire mercenaries for your army.
Mercenaries will not gather resources and cost only metal, but they are experienced and strong.
Special structures allowing you to hire Mercenaries for your army.
Mercenaries cannot gather resources, but only cost metal, are trained quickly, and start at Advanced rank.

View File

@ -0,0 +1,5 @@
FIRESHIP
Available to the Britons, Gauls, and Iberians.
Causes fire damage to nearby Ships, but gradually loses health over time as well.
Construct a few, move them to the enemy fleet, then ignite them to set them ablaze.
Very good against Siege Ships.

View File

@ -1,5 +1,4 @@
FISHING
Fish the seas for a bountiful harvest.
Fishing boats carry a large amount of food per trip.
Fishing is faster than gathering food on fields.
Fishing boats can carry a large amount of food and gather faster than Workers on fields.
Careful! Fish are not an infinite resource! Although they do slowly repopulate when left alone.

View File

@ -1,3 +1,3 @@
FORGE
Research structure for all factions.
Research weapon and armor upgrades for your units.
Research structure for all civilizations.
Provides valuable weapon and armor upgrades for your units.

View File

@ -1,3 +1,3 @@
FORTRESS
Usually the strongest structure of a civilization and the place where you can train Heroes.
Usually the strongest structure of a civilization.
Garrison soldiers inside to add more firepower to its defense.

View File

@ -1,4 +1,4 @@
FREEHAND POSITION
Gain an advantage on the battleground by tactically positioning your units!
Therefore select some units, press and hold the right mouse button, draw any line, then release the button.
To do it, select some units, press and hold the right mouse button, draw any line, then release the button.
Your units will now spread out on this line.

View File

@ -1,6 +1,5 @@
RESOURCE GATHERING
Use citizen-soldiers and female citizens to gather resources.
Female citizens gather vegetable resources faster.
Infantry citizen-soldiers are faster gathering minerals.
Cavalry citizen-soldiers are faster gathering meat.
The higher the level of a citizen-soldier (advanced, elite), the better he fights, but the less efficient he is at gathering resources.
Use Citizens to gather resources.
Female citizens are best at gathering fruit and grain.
Citizen Infantry excel at gathering wood, stone, and metal.
Citizen Cavalry can only gather meat, but do so very quickly.

View File

@ -1,5 +0,0 @@
FIRESHIPS
Available to the Britons, Gauls, and Iberians.
Construct them, move them near enemy ships, then ignite them to set them ablaze.
They cause Fire damage to nearby enemy ships and themselves start to lose health.
Very good against Siege Ships.

View File

@ -1,2 +1,3 @@
LIGHTHOUSE
Special Ptolemaic structures to increase your vision range when built on the shore.
Special structure solely available to the Ptolemies.
Increases your vision range when built on the shore.

View File

@ -0,0 +1,2 @@
LOOT
When you kill units or destroy structures, you will gain a certain number of resources, plus what they are carrying.

View File

@ -1,4 +1,3 @@
MAP FLARE
Use this feature to let your team know where on the map something important happens.
They will see the flare on their minimap.
They will also see the flare on their minimap.

View File

@ -0,0 +1,4 @@
MAURYAN WORKER ELEPHANT
Exclusively available to the Mauryas, right from the Village Phase.
Serves as a mobile dropsite, enabling you to efficiently gather resources outside of your territory.
Can also build structures.

View File

@ -1,4 +1,4 @@
PYRAMIDS OF MEROË
Special structures available for the Kushites.
The small pyramids improve the gathering rate of the workers around them.
Special structures available to the Kushites.
The small pyramids improve the gathering rate of workers around them.
The large pyramids increase the military capabilities of soldiers around them.

View File

@ -0,0 +1,5 @@
NOMAD MODE
Only available for the "Random" map type.
Players will be randomly dropped on the map without a Civic Center.
Requires the "Medium" starting resource setting in order for players to be able to build their first one.
Don't immediately start building the Civic Center, scout for a good location for your base first.

View File

@ -0,0 +1,2 @@
ORDER ONE UNIT
When right-clicking While holding the “Order one unit” hotkey (by default ALT), only one random unit from the current selection will perform the assigned task.

View File

@ -1,4 +1,4 @@
OUTPOSTS
Build in neutral or own territory.
Cheap and quickly built, but weak.
Garrison infantry for extensive vision, and to prevent losing control of the outpost due to territory decay.
Build in neutral or own territory to monitor large areas of the map.
Cheap and quickly built, but weak and easily captured.
Garrison Infantry to extend the vision range, and to prevent losing control over it due to territory decay.

View File

@ -1,3 +1,3 @@
PALISADE WALLS
A quick, cheap wooden wall available to all factions.
Most factions have access to them in Village Phase.
A quick, cheap wooden wall for moderate defense.
Available to most civilizations in Village Phase.

View File

@ -1,5 +1,4 @@
ACHAEMENID ARCHITECTURE
Special technology for the Persians.
Structures +25% health.
Build time lengthened by +20% as a consequence.
Persians also have access to a great number of structural and defensive technologies.
Special technology exclusive to the Persians.
Structures gain +25% health, but their build time lengthened by +20% as a consequence.
Persians also have access to a great number of other structural and defensive technologies.

View File

@ -1,4 +1,4 @@
PIKEMEN
Heavily armored and slow. Low attack.
Used against cavalry or against other melee infantry to pin them in place.
Available to: Kushites, Macedonians, Ptolemies, and Seleucids.
Available to the Kushites, Macedonians, Ptolemies, and Seleucids.
Heavily armored, but low attack damage.
Use against Cavalry or against other Melee Infantry to pin them in place.

View File

@ -0,0 +1,4 @@
QUEUE ORDERS
While holding the “Queue order” hotkey (by default SHIFT), queue multiple tasks for units by right-clicking.
Once a task is done they will automatically execute their next task.
The queue will be reset if the unit receives a manual order.

View File

@ -1,4 +0,0 @@
SIEGE WARSHIP
The heaviest standard warship. Available to: Carthaginians, Ptolemies, Romans, Seleucids, and Han Chinese.
Strong crush damage and long range make them good against Arrow Ships and Buildings near the shore.
Countered by melee ships, such as Ramming Ships and Fire Ships, and other Siege Ships.

View File

@ -0,0 +1,5 @@
RAMMING SHIP
Strong and fast melee ship available to Mediterranean civilizations.
Transports up to 30 troops swiftly across the water.
Good against Siege Ships due to its speed and strong ramming attack.
Countered by Arrow Ships and Defense Towers.

View File

@ -1,5 +0,0 @@
RAMMING SHIPS
A strong and fast melee ship available to Mediterranean civilizations.
Transport up to 30 troops swiftly across the water.
Good against Siege Ships due to speed and strong ramming attack.
Countered by Arrow Ships and Defense Towers.

View File

@ -1,3 +1,4 @@
RESOURCE COUNTER
The resource counter panel shows you how much of each resources you have at the moment.
The number below it shows you how many citizens are currently gathering them.
Located in the top left corner of the screen.
Keep tabs on how much of each resource you've stockpiled in your treasury and how many units are currently gathering them.
Keep an eye on it while playing to avoid running out in crucial moments.

View File

@ -2,4 +2,4 @@ SAVANNA BIOME
Generally flat, with a few watering holes and rocky outcrops.
Chock full of herd animals for plentiful hunting.
Rich in all types of mining.
Wood tends to be sparse, but consists of high-yield Baobab trees.
Trees tend to be sparse, but include high-yield Baobab trees.

View File

@ -0,0 +1,3 @@
SELECT WOUNDED UNITS
While holding the “Select only wounded units” hotkey (by default 0), you can select wounded units.
Customize the threshold in Settings > Game Session.

View File

@ -0,0 +1,4 @@
SIEGE WARSHIP
The heaviest standard warship. Available to the Carthaginians, Ptolemies, Romans, Seleucids, and Han Chinese.
Strong crush damage and long range make it good against Arrow Ships and structures near the shore.
Countered by melee ships, such as Ramming Ships and Fire Ships, and other Siege Ships.

View File

@ -1,4 +1,3 @@
SNAPPING
Structures can be aligned by keeping the snap hotkey pressed during placement.
Aligning structures allows to conserve space for future construction.
Tightly packed groups of structures can also be used for obstructing raiding enemies.
Align structures by keeping the snap hotkey pressed during placement.
Conserves space for future construction, and comes in useful for obstructing raiding enemies.

View File

@ -1,4 +1,4 @@
SPARTIATES
Strongest infantry unit in the game.
Champion Infantry available to the Spartans.
Use them to slaughter enemy cavalry or as a shock force to support your regular infantry.
Champion Infantry Spearmen available to the Spartans.
One of the strongest units in the game.
Use them to slaughter enemy Cavalry or as a shock force to support your regular Infantry.

View File

@ -1,5 +1,5 @@
SPEARMEN
The basic melee infantry for every faction in the game.
Used against cavalry for an attack bonus.
Decent hack attack make them good front line troops.
They are countered by ranged units and swordsmen, so support your spearmen with slingers or cavalry.
The basic Melee Infantry available to every civilization in the game.
Use against Cavalry for an attack bonus.
Decent melee hack damage makes them good front line troops.
Countered by ranged units and Swordsmen, so support your Spearmen with those or Cavalry yourself.

View File

@ -0,0 +1,3 @@
STOREHOUSE
A cheap dropsite for non-food resources (wood, stone, and metal).
Research technologies to improve the gathering rates of your Citizens.

View File

@ -1,3 +0,0 @@
STOREHOUSES
A cheap dropsite for non-food resources (Wood, Stone, Metal).
Research technologies to improve the gathering capabilities of your citizens.

View File

@ -0,0 +1,4 @@
SYNTAGMA
A unique historical formation formed by Macedonian Pikemen.
Forms the men into tight ranks and deep files, allowing a wall of forward-thrusting pikes to pierce any enemy soldier foolish enough launch a frontal assault.
Support them with more flexible units to prevent encirclement.

View File

@ -0,0 +1,6 @@
TEMPLE
Town Phase structure available to all civilizations.
Trains Healers to heal your troops on the battlefield.
Offers a series of helpful healing technologies.
Its aura heals nearby units.
Garrison wounded units inside for even quicker healing.

View File

@ -1,6 +0,0 @@
TEMPLES
Town Phase structure.
Recruit Healers to heal your troops on the battlefield.
Research healing technologies.
Its aura heals nearby units.
Garrison wounded units inside for quicker healing.

View File

@ -1,4 +1,4 @@
TERRITORY DECAY
Decay happens when structures are not connected to an allied Civil Center.
The decay process can be slowed down or reversed by garrisoning some units in the structure.
When the decay is completed, the structure will be given to the most influential neighbor.
Structures too far off an allied territory root (usually a Civic Center) gradually lose capture points.
Slow down or reverse the decay process by garrisoning some units in the structure.
When the decay is completed, the structure will be given to the player owning the closest territory root or Gaia.

View File

@ -0,0 +1,4 @@
TRADING
Train Traders for trading on land at the Market and Merchantmen for seaborne trade at the Dock.
Create a trade route by selecting a Trader or Merchantman and right-clicking on two trade points (Dock or Market). Longer distances yield more profits!
Open the "Barter & Trade" dialog next to the menu in the top right corner to set how much of each resource type you want to trade for.

View File

@ -1,3 +1,3 @@
TREASURES
Collectible chests and bare resources on land and shipwrecks on the shore.
Provide you with a resource boost, so keep an eye out for them as you explore.
Collectible chests, bare resources on land, and shipwrecks on the shore.
Provide you with an instant resource boost, so keep an eye out for them as you explore.

View File

@ -1,4 +1,5 @@
WAR ELEPHANTS
Available to the Carthaginians, Kushites, Mauryas, Persians, Ptolemies, and Seleucids.
Huge beasts from Africa and India, trained for war.
High Food and Metal cost, but very powerful.
Available to: Carthaginians, Kushites, Mauryas, Persians, Ptolemies, and Seleucids.
Attack individual units, but also deal splash damage to others nearby. Use them to break apart tight formations.

View File

@ -1,5 +1,4 @@
WHALES
An oceanic resource.
2000 Food.
An oceanic resource providing 2000 food.
Gatherable by Fishing Boats after the whale is killed.
Roam around the oceans of the game and flee when attacked.

View File

@ -356,7 +356,7 @@ Trigger.prototype.RemoveSpread = function()
{
let cmpModifiersManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ModifiersManager);
cmpModifiersManager.AddModifiers("no_promotion", {
"Attack/Ranged/Spread": [{ "affects": ["Unit"], "replace": 0 }],
"Attack/Ranged/Projectile/Spread": [{ "affects": ["Unit"], "replace": 0 }],
}, 4); // player 2 is ent 4
};

View File

@ -674,7 +674,7 @@ Attack.prototype.PerformAttack = function(type, target)
let predictedHeight = cmpTargetPosition.GetHeightAt(predictedPosition.x, predictedPosition.z);
// Add inaccuracy based on spread.
let distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/" + type + "/Spread", +this.template[type].Projectile.Spread, this.entity) *
const distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/" + type + "/Projectile/Spread", +this.template[type].Projectile.Spread, this.entity) *
predictedPosition.horizDistanceTo(selfPosition) / 100;
let randNorm = randomNormal2D();

View File

@ -20,7 +20,7 @@
"researchTime": 40,
"tooltip": "Archers −20% ranged attack spread.",
"modifications": [
{ "value": "Attack/Ranged/Spread", "multiply": 0.8 }
{ "value": "Attack/Ranged/Projectile/Spread", "multiply": 0.8 }
],
"affects": ["Archer"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"

View File

@ -22,7 +22,7 @@
"researchTime": 40,
"tooltip": "Bolt Shooters −20% ranged attack spread.",
"modifications": [
{ "value": "Attack/Ranged/Spread", "multiply": 0.8 }
{ "value": "Attack/Ranged/Projectile/Spread", "multiply": 0.8 }
],
"affects": ["BoltShooter"],
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"

View File

@ -7,7 +7,7 @@
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2, "affects": "Melee" },
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2, "affects": "Melee" },
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2, "affects": "Melee" },
{ "value": "Attack/Ranged/Spread", "multiply": 0.8, "affects": "Ranged" },
{ "value": "Attack/Ranged/Projectile/Spread", "multiply": 0.8, "affects": "Ranged" },
{ "value": "Cost/BuildTime", "multiply": 1.2 },
{ "value": "Health/Max", "multiply": 1.25 },
{ "value": "Heal/Range", "add": 3, "affects": "Healer" },

View File

@ -7,7 +7,7 @@
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2, "affects": "Melee" },
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2, "affects": "Melee" },
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2, "affects": "Melee" },
{ "value": "Attack/Ranged/Spread", "multiply": 0.8, "affects": "Ranged" },
{ "value": "Attack/Ranged/Projectile/Spread", "multiply": 0.8, "affects": "Ranged" },
{ "value": "Cost/BuildTime", "multiply": 1.2 },
{ "value": "Health/Max", "multiply": 1.25 },
{ "value": "Heal/Range", "add": 3, "affects": "Healer" },

View File

@ -0,0 +1,34 @@
rem **Download from the latest nightly build:**
rem ** - translations**
rem ** - SPIR-V shaders**
rem ** - game built files for Windows**
rem **This will overwrite any uncommitted changes to:**
rem ** - messages.json in i18n folders**
rem ** - readme.txt and helper scripts in this directory**
where svn || (
@echo.
@echo The "svn" executable was not found in your PATH. Make sure you installed TortoiseSVN
@echo and that you selected "command line client tools" during the installation.
@echo.
@pause
@exit
)
set "repourl=https://svn.wildfiregames.com/nightly-build/trunk"
rem **Translations**
svn export --force --depth files %repourl%/binaries/data/l10n ..\data\l10n
for %%m in (mod public) do (
svn export --force --depth files %repourl%/binaries/data/mods/%%m/l10n ..\data\mods\%%m\l10n
)
svn export --force %repourl%/binaries/data/mods/public/gui/credits/texts/translators.json ..\data\mods\public\gui\credits\texts\translators.json
rem **SPIR-V shaders**
for %%m in (mod public) do (
svn export --force %repourl%/binaries/data/mods/%%m/shaders/spirv ..\data\mods\%%m\shaders\spirv
)
rem **Game built files**
svn export --force %repourl%/binaries/system .

View File

@ -42,8 +42,8 @@ pipeline {
sh "git lfs pull -I binaries/data/tests"
sh "git lfs pull -I \"binaries/data/mods/_test.*\""
sh "libraries/build-source-libs.sh -j2 2> freebsd-prebuild-errors.log"
sh "build/workspaces/update-workspaces.sh -j2 --jenkins-tests 2>> freebsd-prebuild-errors.log"
sh "libraries/build-source-libs.sh 2> freebsd-prebuild-errors.log"
sh "build/workspaces/update-workspaces.sh --jenkins-tests 2>> freebsd-prebuild-errors.log"
}
post {
failure {
@ -56,7 +56,7 @@ pipeline {
steps {
retry (2) {
script {
try { sh "cd build/workspaces/gcc/ && gmake -j2 config=release" }
try { sh "cd build/workspaces/gcc/ && gmake config=release" }
catch(e) {
sh "cd build/workspaces/gcc/ && gmake clean config=release"
throw e

View File

@ -65,13 +65,13 @@ pipeline {
sh "git lfs pull -I binaries/data/tests"
sh "git lfs pull -I \"binaries/data/mods/_test.*\""
sh "libraries/build-source-libs.sh -j1 2> ${JENKINS_COMPILER}-prebuild-errors.log"
sh "libraries/build-source-libs.sh 2> ${JENKINS_COMPILER}-prebuild-errors.log"
script {
if (env.JENKINS_PCH == "no-pch") {
sh "build/workspaces/update-workspaces.sh -j1 --jenkins-tests --without-pch 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
sh "build/workspaces/update-workspaces.sh --jenkins-tests --without-pch 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
} else {
sh "build/workspaces/update-workspaces.sh -j1 --jenkins-tests 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
sh "build/workspaces/update-workspaces.sh --jenkins-tests 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
}
}
}
@ -86,7 +86,7 @@ pipeline {
steps {
retry(2) {
script {
try { sh "cd build/workspaces/gcc/ && make -j1 config=debug" }
try { sh "cd build/workspaces/gcc/ && make config=debug" }
catch(e) {
sh "cd build/workspaces/gcc/ && make clean config=debug"
throw e
@ -108,7 +108,7 @@ pipeline {
steps {
retry(2) {
script {
try { sh "cd build/workspaces/gcc/ && make -j1 config=release" }
try { sh "cd build/workspaces/gcc/ && make config=release" }
catch(e) {
sh "cd build/workspaces/gcc/ && make clean config=release"
throw e
@ -130,7 +130,7 @@ pipeline {
post {
always {
node('LinuxSlave') { ws('workspace/linux') {
node('LinuxAgent') { ws('workspace/linux') {
recordIssues enabledForFailure: true, qualityGates: [[threshold: 1, type: 'NEW']], tools: [clang(), gcc()]
}}
}

View File

@ -36,8 +36,8 @@ pipeline {
sh "git lfs pull -I binaries/data/tests"
sh "git lfs pull -I \"binaries/data/mods/_test.*\""
sh "libraries/build-macos-libs.sh -j4 2> macos-prebuild-errors.log"
sh "build/workspaces/update-workspaces.sh -j4 --jenkins-tests 2>> macos-prebuild-errors.log"
sh "libraries/build-macos-libs.sh 2> macos-prebuild-errors.log"
sh "build/workspaces/update-workspaces.sh --jenkins-tests 2>> macos-prebuild-errors.log"
}
post {
failure {
@ -50,7 +50,7 @@ pipeline {
steps {
retry(2) {
script {
try { sh "cd build/workspaces/gcc/ && make -j4 config=debug" }
try { sh "cd build/workspaces/gcc/ && make config=debug" }
catch(e) {
sh "cd build/workspaces/gcc/ && make clean config=debug"
throw e
@ -72,7 +72,7 @@ pipeline {
steps {
retry(2) {
script {
try { sh "cd build/workspaces/gcc/ && make -j4 config=release" }
try { sh "cd build/workspaces/gcc/ && make config=release" }
catch(e) {
sh "cd build/workspaces/gcc/ && make clean config=release"
throw e

View File

@ -65,7 +65,7 @@ pipeline {
bat "cd libraries && get-windows-libs.bat"
bat "(robocopy C:\\wxwidgets3.2.5\\lib libraries\\win32\\wxwidgets\\lib /MIR /NDL /NJH /NJS /NP /NS /NC) ^& IF %ERRORLEVEL% LEQ 1 exit 0"
bat "(robocopy C:\\wxwidgets3.2.5\\include libraries\\win32\\wxwidgets\\include /MIR /NDL /NJH /NJS /NP /NS /NC) ^& IF %ERRORLEVEL% LEQ 1 exit 0"
bat "cd build\\workspaces && update-workspaces.bat --atlas --without-pch --without-tests"
bat "cd build\\workspaces && update-workspaces.bat --atlas --without-pch --large-address-aware --without-tests"
}
}
@ -133,16 +133,16 @@ pipeline {
stage("Update translations") {
steps {
ws("workspace/nightly-svn") {
bat "cd source\\tools\\i18n && python updateTemplates.py"
bat "cd source\\tools\\i18n && python update_templates.py"
withCredentials([string(credentialsId: 'TX_TOKEN', variable: 'TX_TOKEN')]) {
bat "cd source\\tools\\i18n && python pullTranslations.py"
bat "cd source\\tools\\i18n && python pull_translations.py"
}
bat "cd source\\tools\\i18n && python generateDebugTranslation.py --long"
bat "cd source\\tools\\i18n && python cleanTranslationFiles.py"
bat "cd source\\tools\\i18n && python generate_debug_translation.py --long"
bat "cd source\\tools\\i18n && python clean_translation_files.py"
script { if (!params.NEW_REPO) {
bat "python source\\tools\\i18n\\checkDiff.py --verbose"
bat "python source\\tools\\i18n\\check_diff.py --verbose"
}}
bat "cd source\\tools\\i18n && python creditTranslators.py"
bat "cd source\\tools\\i18n && python credit_translators.py"
}
}
}

View File

@ -55,7 +55,7 @@ pipeline {
stage("Template Analyzer") {
steps {
ws("/zpool0/entity-docs"){
sh "cd source/tools/templatesanalyzer/ && python3 unitTables.py"
sh "cd source/tools/templatesanalyzer/ && python3 unit_tables.py"
}
}
}

View File

@ -18,7 +18,7 @@
// This pipeline builds the game on Windows (which uses the MSVC 15.0 compiler from Visual Studio 2017) and runs tests.
def visualStudioPath = "\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\MSBuild\\15.0\\Bin\\MSBuild.exe\""
def buildOptions = "/p:PlatformToolset=v141_xp /p:XPDeprecationWarning=false /t:pyrogenesis /t:AtlasUI /t:test /m:2 /nologo -clp:NoSummary"
def buildOptions = "/p:PlatformToolset=v141_xp /p:XPDeprecationWarning=false /t:pyrogenesis /t:AtlasUI /t:test /nologo -clp:NoSummary"
pipeline {
// Stop previous build in pull requests, but not in branches

View File

@ -14,7 +14,11 @@ else
-- No Unix-specific libs yet (use source directory instead!)
end
-- directory for shared, bundled libraries
libraries_source_dir = rootdir.."/libraries/source/"
if os.istarget("windows") then
libraries_source_dir = rootdir.."/libraries/win32/"
else
libraries_source_dir = rootdir.."/libraries/source/"
end
third_party_source_dir = rootdir.."/source/third_party/"
local function add_default_lib_paths(extern_lib)
@ -361,7 +365,7 @@ extern_lib_defs = {
end,
},
glad = {
add_source_include_paths("glad")
add_third_party_include_paths("glad")
},
gloox = {
compile_settings = function()

Some files were not shown because too many files have changed in this diff Show More