Commit graph

103 commits

Author SHA1 Message Date
Vantha
2728c65a49
Remove some unused getters from components
Since __________, a bunch of getter on various components are now
unused. This patch removes three of them:
- `Identity.prototype.GetRankTechName`, because it is kinda redundant since
  there's also `Identity.prototype.GetRank`.
- `Auras.prototype.GetDescriptions` and `Upgrade.prototype.GetUpgrades`
  because they are long and perform additional logic (only duplicating
  some lines from globalscripts/Templates.js).

All of the other getters are simple and kept for now because they are
useful to have in general and might be handy in the future or for mods.
2026-08-14 12:47:18 +02:00
wowgetoffyourcellphone
5268cb62a6 Persians -> Achaemenids
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
Persians -> Achaemenids
Pers -> Achae

Addressing Checkrefs

Internal Achaemenid and Persian references

Reported by @Stan`

Update unit_tables.py
2026-05-02 02:50:39 +02:00
Vantha
7032293207 Add context and comment attributes where useful
Add context and comment attributes to all translated XML elements in the
simulation that can specify any string -- unlike "Rank", which has to be
"Basic", "Advanced", or "Elite".
Most of them aren't used right now, but they can be in the
future and by mods, without touching the schemas again.

Fixes #8540
2025-11-18 11:34:10 +01:00
wowgetoffyourcellphone
3592814aa8 Gendered Civilians
Adds a randomly male and female Civilian unit which replaces the old "Female Citizen" for each civ.
New actors, new portraits, some new body textures, but the same stats as the old Female Citizen.
Updates maps, technologies, skirmish templates, et al. including the Tutorials.

Co-Authored By: Itms
Reviewed By: Vantha
2025-09-02 10:23:44 +02:00
Langbart
1f32412e8d docs: update entity classes and categories
checked for missing, redundant and duplicates classes, Removed 'Fire' no tech uses it and classification value is zero
2025-07-02 07:23:03 +02:00
Ralph Sennhauser
40f1340e60
Fix eslint rule 'space-before-function-paren'
eslint --no-config-lookup --fix --rule '"space-before-function-paren": ["warn", "never"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 15:21:57 +02:00
Ralph Sennhauser
fd27f39c20
Fix eslint rule 'prefer-const' in components/[H-P]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[H-P]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 19:24:03 +02:00
Ralph Sennhauser
b6df170303
Fix eslint indent rule
eslint --no-config-lookup --fix --rule 'indent:  ["warn", "tab", { "outerIIFEBody": 0, }]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 09:39:58 +02:00
Lancelot de Ferrière
e15ffd70b7 Fix Identity serialization following 533429e800
Failed to notice that name and controllable were sometimes changed.
2024-12-31 10:08:52 +01:00
Lancelot de Ferrière
533429e800 Handle phenotype in Transform, tweak SetPhenotype logic 2024-11-30 19:12:11 +01:00
Stan
c278da73d9 Fix issues with the component documentation.
Reported by: @Langbart
Fixes: #6792

Differential Revision: https://code.wildfiregames.com/D4985
This was SVN commit r27638.
2023-05-10 15:55:51 +00:00
Freagarach
9bb9ff8b16 Add Requirements helper.
Allows more flexibility in e.g. the Identity requirements and unifies
the checking of requirements.
One can use the script at https://code.wildfiregames.com/P265 to fix
templates.

Differential revision: https://code.wildfiregames.com/D4514
Comments by: @elexis, @Stan
Fixes #6421

This was SVN commit r27245.
2022-11-24 11:20:11 +00:00
Freagarach
ef1d1dbed8 Make Icon non-optional.
Requested by @bb in D4476.
Differential revision: https://code.wildfiregames.com/D4484
Reviewed by: @bb
This was SVN commit r26458.
2022-02-21 07:20:26 +00:00
Angen
0a3fab87da Display rank action in tooltip
Patch by: @nwtour
Differential revision: D4340
Reviewed by: @Silier
The patch adds a description from the technology file to tooltip when
hovering over rank icon.

This was SVN commit r26300.
2022-02-05 12:12:58 +00:00
Freagarach
ea72437739 Move GenericName, History and Icon from the civ-JSON to cmpIdentity.
Since the players/civs already have cmpIdentity, use it.
This forces civs to have corresponding XML in the `special/players/`
folder.

Also moves the files from `special/player/` to `special/players/`
consistent with other folders. And moves the generic `player.xml` one
level up.

Differential revision: https://code.wildfiregames.com/D4473
Help and comments by: @Stan, @wraitii
This was SVN commit r26298.
2022-02-05 06:24:45 +00:00
Freagarach
8926f5a94c Move the allowed formations from cmpIdentity to cmpUnitAI.
One needs UnitAI to be able to use a formation, so include the spec
therein (to keep information close to where it is used).
Modders can change their templates with the following script:
https://code.wildfiregames.com/P261.

Differential revision: https://code.wildfiregames.com/D4443
Comments by: @Stan
Idea accepted by: @wraitii
Fixes: #6399

This was SVN commit r26235.
2022-01-23 07:23:44 +00:00
Stan
2bda444435 Fix foundation and corpses phenotypes being different than the source entity.
Reported by: @wowgetoffyourcellphone
This was SVN commit r25832.
2021-07-20 22:04:19 +00:00
wraitii
28bd4f0092 Introduce a 'Builder' class for entities that can build structures.
- Increases moddability
- Increases the clarity of visible classes (gatherer & builder vs
Worker)
- Introduce an 'Idle builder' hotkey.

Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3290
This was SVN commit r25174.
2021-04-01 07:26:59 +00:00
Freagarach
a4a7ef983e Move Mirage information to respective components.
Moves the functions that define the properties/functions to mirage to
their respective components, making it easier for modders to know their
existence and to modify.

Closes: #5985
Differential revision: D3695
Comments by: @wraitii
This was SVN commit r25089.
2021-03-20 16:01:11 +00:00
wraitii
171afdc7a6 Make foundations not ConquestCritical
Foundations were originally made conquest critical in 722578fdcd.
However, it remains rather frustrating that a player can evade defeat by
placing an unbuilt, uncommitted foundation. While allies can revive a
player with only a foundation, that cannot happen in 1v1, where it is
simply undue frustration, and the inconvenience seems greater than the
feature.
This thus removes them again from the conquest critical list.

Patch By: nephele
Differential Revision: https://code.wildfiregames.com/D2674
This was SVN commit r24624.
2021-01-15 10:02:31 +00:00
Stan
f06733f305 [gameplay A24] Enable gaul assembly
Refs: https://code.wildfiregames.com/D3320

Patch by: @Nescio
Reviewed by: @borg-
Differential Revision: https://code.wildfiregames.com/D3344
This was SVN commit r24597.
2021-01-13 15:59:58 +00:00
Freagarach
a0288b9c9b Rename Gaul Theater to Assembly.
Its function is different. Meaningful values remain unchanged.

Patch by: @Nescio
Differential revision: D3331
This was SVN commit r24566.
2021-01-12 19:25:35 +00:00
Freagarach
1449ddf439 Correct technology tooltips and formatting.
Also puts resources on a new line and purges entries with `0`.
Moves the Immortal class visible since it is used by a technology (and
thus should be known to a player).

Patch by: @Nescio
Differential revision: D3338
This was SVN commit r24564.
2021-01-12 18:52:12 +00:00
s0600204
0bf18827d9 Restore civ-specific buildings to the civinfo page
Adds a new class `CivSpecific` which, when combined with the `Structure`
class,
is then used by the `civinfo` page to identify buildable structures
specific to
a selected civilisation. (The `SpecialBuilding` class previously used
was
removed from templates over half a year ago.)

This should resolve the main concern raised on 190d6e7cf5.

The `civinfo` captions have also been updated to match.

Patch by: @Nescio
Accepted by: @s0600204
Differential Revision: https://code.wildfiregames.com/D2733
This was SVN commit r24535.
2021-01-11 00:09:17 +00:00
Freagarach
58d98c9a5f Fix oversights in recent commits.
- Sounds of macemen (2847eb2a20, 85f46d6d66).
- Kushite healer start unit on (most) skirmish maps (2452e3fb97).
- Fortress tooltips (014c2922f2 and c4eeb82d83).
- Rome siege wall foundations (934025b2fb).
- Removed IshtarGate visible class.
- Move Ishtar Gate of Babylon from Persians (it is Neo-Babylonian)
(1a6f155780).
- Rename `barracks.png` -> `military.png` (c4eeb82d83) and
`ishtar_gate.png` -> `bull.png` icons (refs D2551).
- Insert placeholder icons for free and autoresearched technologies
(D3262#145001).
- Update balancing credits (de3ed2cd19).

Patch by: @Nesio
Differential revision: D3292
This was SVN commit r24515.
2021-01-06 06:45:33 +00:00
Freagarach
2dd223af29 Rename nuba -> noba.
Also renames clubman to maceman.

Patch by: @Nescio
Differential Revision: D3018
This was SVN commit r24207.
2020-11-18 20:13:30 +00:00
Freagarach
b97d251322 Move the controllability of an entity to cmpIdentity.
Where controllability is defined as the ability to receive _any_ order
from the player.
Fixes the concern not raised at a1dc9cadd8#42637.

Differential Revision: D1960
Reviewed By: @wraitii
Comments by: @bb, @Stan.
This was SVN commit r24148.
2020-11-09 08:38:09 +00:00
Freagarach
66bae4b169 Split "template_gaia_flora*".
Into:
- template_gaia_fruit*
- template_gaia_tree*
to have a template per resource subtype for consistency.
Removed also "Dead " and " Tree" from specific names and purged the
unused "ForestPlant"-class.

Patch by: @Nescio.
Differential Revision: D2990
This was SVN commit r24043.
2020-09-16 15:14:39 +00:00
Freagarach
d6449bf3f0 Rename blacksmith -> forge.
A blacksmith is a person, a forge is the blacksmith's workshop.
This renames templates and corrects simulation and sound files.

Patch by: @Nescio.
Differential Revision: D2971
Approved by @genava55, @Gallaecio, @wraitii.

This was SVN commit r23998.
2020-08-26 15:00:00 +00:00
Angen
d503363e83 Rename italiote to italic
Differential Revision: D2796
Patch by: Nescio
Reviewed by: Angen, Stan
0 A.D. currently uses the term "Italiote" [sic]. It's best to use
precise language:

Italic refers to a branch of Indo-European and the peoples that speak it
(cf. Celtic).
Italian refers to the modern language, descendant from Latin, the people
that speak it, and their country (cf. Romanian).
Italiot (from Ἰταλιώτης) refers to Greeks living in Italy (cf. Cypriot).
From the context it's clear what 0 A.D. actually means (Samnites etc.)
is Italic.

This patch therefore:

Corrects the art file names.
Also renames the other embassy icons for consistency (cf. D2551).
Corrects the embassy template file name.
Adjusts the affected templates, AI, and map file.
Deletes the unused Celt, Iberian, Italian classes.
Updates the embassy template tooltips (cf. D2578) and cart.json civ file
entries.
Orders the <Identity> node in the templates as specified in Identity.js.

This was SVN commit r23949.
2020-08-08 11:23:34 +00:00
Freagarach
bbeeaae768 Rename workshop to arsenal.
A workshop is a more generic place of doing work whilst an arsenal is a
place where artillery is handled, which is the purpose of the structure
in 0 A.D..

Patch by: @Nescio.
Differential Revision: D2756
This was SVN commit r23935.
2020-08-05 18:47:17 +00:00
wraitii
164af0742a Use new FastMoving class instead of Cavalry in AI/petra.
This class is an AI hint that such units are to be treated as moving
fast, e.g. war dogs, or cavalry.
This makes it easier to introduce camels and chariots correctly.

Further work is required to make the AI unit choices less hardcoded.

Patch by: Nescio
Reviewed By: Angen, wraitii
Differential Revision: https://code.wildfiregames.com/D2251
This was SVN commit r23916.
2020-08-01 10:35:44 +00:00
Freagarach
663eb0eba0 Javelinist -> Javelineer.
Changes user facing Javelinist (athlete) to Javelineer (soldier).

Differential Revision: D2591
Patch by: @Nescio.
Reviewed by: @Freagarach, @Gallaecio, @wraitii.
This was SVN commit r23876.
2020-07-23 16:50:49 +00:00
bb
8dca7f221c Add all (visible) classes found by P217 in Identity.js
Remove a useless class from palisade_fort (already a visible class)

This was SVN commit r23869.
2020-07-22 14:26:17 +00:00
bb
2ef3fd7a77 Clean up market classes:
template_structure_economic_market.xml → Market
template_structure_military_dock.xml → Dock
<Market/TradeType> node → Trade
requirement for bartering: BarterMarket → Barter

Change Petra accordingly


Also changing:
    Renamed the Gates class to Gate, LongWall to WallLong (cf.
WallTower), and StoneWall to Wall, to match their template file names.
Adjusted AI code, technologies, and templates accordingly.
    Entity build restrictions:
        renamed Apadana to Palace;
        replaced UniqueStructure with IshtarGate and TempleOfVesta.
        added Council to the (unbuildable) spart_gerousia.xml, since
it's functionally identical to athen_prytaneion.xml.
    Introduced the following classes:
        Council, IshtarGate, Library, TempleOfVesta, and Theater, to
match their build restrictions.
        WallMedium and WallShort, to complement the already existing
WallLong and WallTower classes.
        Stoa, TempleOfMars, and TriumphalArch, for completeness.
    Made the ArmyCamp, Colony, Gate, Lighthouse, Naval, Palace,
Palisade, SiegeWall, and StoneWall classes visible.
    Deleted the now unused Apadana, Kennel, SpecialBuilding classes.
    Removed the Village class from outposts and palisades, because those
are not supposed to count towards the phase technology requirements.
        Slightly rephrased the phase technology requirements tooltips.
    Corrected the <GenericName> of the various palisade files.
    Updated Structure tooltips from D2578 that have not already been
committed elsewhere.

Patch By: Nescio
Differenital Revision: D2892

This was SVN commit r23865.
2020-07-21 19:45:30 +00:00
Angen
e07f12bea6 Clean up tower classes and related changes.
Classes:
The Defensive class is made visible (cf. Civic, Economic, Military).
The Fortress class is made visible (because of build restrictions).
The Tower class defined in template_structure_defensive_tower.xml is now
visible.
The unused GarrisonTower class is removed.
The DefenseTower class is deprecated in favour of one unique class in
each of the *_tower.xml children templates:
*_artillery.xml → ArtilleryTower
*_bolt.xml → BoltTower
*_sentry.xml → SentryTower
*_stone.xml → StoneTower
template_structure_defensive_wall_tower.xml does not inherit from
*_tower and therefore has a WallTower class instead of a Tower class.
Updated the Identity.js file accordingly.
Updated the Petra AI files accordingly (DefenseTower → Tower).
Tower build restrictions are changed to simply Tower.
Technologies:
tower_armour.json affects all towers, but not outposts (unchanged).
tower_decay.json and tower_vision.json affect only outposts (unchanged).
tower_crenellations.json, tower_murderholes.json, tower_range.json, and
tower_watch.json affect now only the Sentry and Stone towers, instead of
all towers. This alters gameplay for the Artillery and Bolt tower, but
those shouldn't have been benefitting from arrow tower technologies
anyway.
Standardized the tooltips per the style guide.
Updated the <Identity/Tooltip> in the tower templates.
Inserted <BatchTimeModifier>1.0</BatchTimeModifier> in
template_structure.xml, where the <ProductionQueue> is defined, and
removed the <BatchTimeModifier> from templates that can't train any
units.

Patch by: Nescio
Reviewed by: Angen
Differential Revision: https://code.wildfiregames.com/D2549
This was SVN commit r23853.
2020-07-19 11:45:00 +00:00
Stan
d4b567ca85 Fix broken templates following 33042ad23d while retaining the same functionnality
Patch by: @Nescio
Differential Revision: https://code.wildfiregames.com/D2864
This was SVN commit r23810.
2020-07-08 11:21:10 +00:00
Angen
9c2e9d7893 Enforce formation required member count
Disband formation with less memebers than required.
Do not allow one member in formation.
Show only formations entities actually are allowed to form. (do not show
wedge for infantry)

Differential Revision: https://code.wildfiregames.com/D1462
Fixes: #5119
Comments by: elexis, bb, temple, Stan, Freagarach
This was SVN commit r23450.
2020-01-27 17:49:06 +00:00
wraitii
705266ceb2 Match unit classes with templates names
Remove Spear class from pikemen templates.
Give Macedonian Gastraphetes Crossbowman class, as it is a special unit.
Give Kushite Clubman the Clubman class, again a special unit.
Make FishingBoat a visible class.
Introduce Bireme, Trireme and Quinquereme visible classes.
Remove Melee class from Maurya Trireme.
Move Organic to template_unit as most units have it, remove it in
appropriate children templates.
List VisibleClasses directly after Classes.
Rename:
  - Axe -> Axeman
  - Javelin -> Javelinist
  - Pike -> Pikeman
  - Sling -> Slinger
  - Spear -> Spearman
  - Sword -> Swordsman
  - Catapult -> StoneThrower
Correct other simulation files accordingly.

Patch By: Nescio
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D1815
This was SVN commit r22824.
2019-09-01 14:08:07 +00:00
wraitii
055935fa0e Remove Mechanical class in favour or using Siege and Ship.
Mechanical was a union of Siege and Ship and not very used.
The '_mechanical' part of template names was removed in d3a73f0611.

Replace its usage with Ship and/or Siege where relevant.

Reviewed By: wraitii
Patch By: Nescio
Differential Revision: https://code.wildfiregames.com/D2201
This was SVN commit r22810.
2019-08-31 12:44:48 +00:00
wraitii
eab4f9fdde Replace {gender} by {phenotype} and support this tag in VisualActor.
A random phenotype can be chosen by giving multiple tokens to the
template.
This allows giving different looks to the same template.

Comments By: stan, vladislav, elexis
Patch By: Freagarach
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D1955
This was SVN commit r22586.
2019-08-01 19:14:40 +00:00
bb
658a5a8dd1 Rename Stables class to Stable since we use the singular forms.
Fixes 964934cf4e

Patch By: Angen
Reviewed By: Nescio
Differential Revision: https://code.wildfiregames.com/D1890
This was SVN commit r22328.
2019-05-31 20:47:57 +00:00
Itms
807468482a Correct Mauryans into Mauryas.
The name of the faction is the dynasty name "Maurya". The plural should
be "Maurya" as well, but "Mauryas" is commonly accepted and less likely
to confuse people. On the other hand, "Mauryan" is the adjective, and
cannot get a plural mark in English.
All instances of "Mauryans" were removed, including in file names and
paths.

Patch By: Nescio
Differential Revision: https://code.wildfiregames.com/D1342
This was SVN commit r22005.
2019-01-02 14:56:31 +00:00
Stan
ef8582a7fd Update docs.
Patch by: The person asked not to be credited.
Refs: #5160
Differential Revision: ​https://code.wildfiregames.com/D1505
This was SVN commit r21885.
2018-09-11 16:33:22 +00:00
bb
350c4580f8 Create a parent template for the maceman and add a maceman identity class.
Macemans and swordsman are different, and more civs than just maur might
get them (maybe in mods), so a parent template for them is good to have.
Updating the tech so it keeps affecting the same (but notice it doesn't
do anything with macemans).

Patch By: Nescio
Differential Revision: https://code.wildfiregames.com/D1036
This was SVN commit r20682.
2017-12-24 16:04:10 +00:00
bb
9faf90a4b1 Move undeletable tag to identity component, preparation for allowing units without health component.
Also fix a missing init from D750/7e1646afd5

Patch By: temple
Differential Revision: https://code.wildfiregames.com/D341
This was SVN commit r20573.
2017-12-03 20:54:53 +00:00
mimo
bff1f33bfd template organization: elephant stables
Patch by: Nescio
Reviewed By: mimo
Differential Revision: https://code.wildfiregames.com/D1001
This was SVN commit r20398.
2017-11-02 15:58:19 +00:00
fatherbushido
e960b0ef61 Add Identity component unit tests. Some code cleanup. Patch by Stan. Commented and reviewed by bb.
Differential Revision: https://code.wildfiregames.com/D98
This was SVN commit r19439.
2017-04-20 19:51:10 +00:00
elexis
35377c51a7 Capture The Relic gamemode.
Patch By: Sandarac
Differential Revision: https://code.wildfiregames.com/D152
This was SVN commit r19345.
2017-03-25 07:01:07 +00:00
elexis
c279283d82 Large passability class for hero elephants.
Elephant now a VisibleClass so that players know which of the heroes the
elephant one is.

Differential Revision: https://code.wildfiregames.com/D251
Reviewed By: fatherbushido
This was SVN commit r19333.
2017-03-23 22:14:38 +00:00