47 Commits

Author SHA1 Message Date
Ralph Sennhauser b80c222b96 Fix eslint rule 'prefer-const' in components/[C-F]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/C* \
    binaries/data/mods/public/simulation/components/D* \
    binaries/data/mods/public/simulation/components/E* \
    binaries/data/mods/public/simulation/components/F*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 14:27:12 +02:00
Freagarach c917c39a0d Pull Diplomacy out of cmpPlayer.
Who says only players should be able to conduct diplomacy?
Also separation of concerns, more maintainable files.

Differential revision: https://code.wildfiregames.com/D4921
Comments by: @elexis, @Stan
Refs. #5894

This was SVN commit r27722.
2023-06-19 06:33:33 +00:00
Freagarach 966727b52e Make the player state an enum.
So we don't need to hassle with strings all over the place.

Differential revision: D4504
Comments by: @Silier
This was SVN commit r27242.
2022-11-22 07:54:11 +00:00
Freagarach c3da0cdd0f Fix cosmetic ESLint warnings in JS components (and their tests).
Which were autofixable, with slight modifications.
Not done are the slightly more complex changes.

Refs. #5524
Patch by: @Krinkle
Differential revision: D2279
Comments by: @elexis, @Stan
Reviewed by: @wraitii
This was SVN commit r25087.
2021-03-20 09:02:22 +00:00
Angen 25e8b38ba8 Fix message on allied victory with no active players
When starting a game with exactly one player that instantly wins the
game (consequest victory) and after that ceasefire running out will
trigger first the correct victory chat message, then a broken and
undefined have won the game chat message, initiated from the
ceasefiremanager.

Check for allies emptyness and do not send it if no players are active,
what means they all have been defeated or won.

Differential Revision: https://code.wildfiregames.com/D2891
Fixes: #5675

This was SVN commit r23857.
2020-07-20 17:10:08 +00:00
elexis a74352b100 Spawn proportionately less gaia attackers when players become defeated.
This also reduces the attackercount slightly, because gaia is now
excluded when counting players.
PlayerManager.GetActivePlayers helper function.

This was SVN commit r21730.
2018-04-15 16:47:51 +00:00
bb 6d54ab4c1f Implement combine victory conditions
Excluding the changes to scenario and skirmisch maps
Transform gameType string to victoryCondition array in load/replaymenu
Adapt the gamesetup to use checkboxes for every victory condition and an
array for storing them
Allow multiple queries in conquestCommon
Remove conquest from regicide, wonder and capture the relic
Move the endless gamedescription from settings to gamedescription
Fixing wrong tabulation from a8a29271ce

This commit will break all scenario and skirmisch maps, their "Gametype"
string needs to be transformed in a "VictoryCondition" array as is done
in the tutorial map (counting endless as an empty array). This counts
for mods too!
Old svn replays and savegame will throw warnings/errors as they are
incompatible after this commit. So svn users will need to delete all
those.

Comments on ai and autostart games By: mimo
Comments on Atlas By: Vladislav
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D1240
fixes: #4014

This was SVN commit r21474.
2018-03-09 21:51:18 +00:00
bb d86148defc Create winning teams for relic and wonder victory instead of letting all allies of a player win.
Create a getNonGaia function
Reset counters on playerDefeat
MarkPlayersAsWon function
Rename MarkPlayerAsWon to MarkPlayerAndAlliesAsWon
Stop letting winningplayers in relic depend on PlayerID

Comments By and Discussion With: elexis
Reviewed By: temple
Differential Revision: https://code.wildfiregames.com/D972
fixes #4648

This was SVN commit r21441.
2018-03-05 18:02:27 +00:00
bb dfa66fbc12 Cleanup getNumPlayers() calls
Do not check for system components,
Do not inline in loops for performance
Use QueryPlayerIDInterface instead of querying the playerEnt

Patch By: temple
Differential Revision: https://code.wildfiregames.com/D1137
This was SVN commit r20652.
2017-12-13 20:41:41 +00:00
bb e534f59e01 Cleanup endGameManager win/defeat messages code
Patch By: temple
Differential Revision: https://code.wildfiregames.com/D1115
This was SVN commit r20650.
2017-12-12 22:30:20 +00:00
elexis 97e1d002f1 Add two missing checks in the EndgameManager for players who already had won or were defeated in d2d43ab46f as reported by fatherbushido, refs #4382.
Add a warning if a Trigger script (like the one on Treasure Islands,
refs #4507) tries to marks a player as won who had already won or lost.
Merge a duplicate call in the Player component.

This was SVN commit r20156.
2017-09-10 15:30:53 +00:00
elexis d2d43ab46f Victory and defeat reason strings.
Clarify the victory / defeat reason by using a custom string for each
defeat and victory reason.
Group chat notifications instead of posting one for each player.
This also slightly improves lobby performance upon win.

Differential Revision: https://code.wildfiregames.com/D762
Fixes #4382
Based on patch by: Angen
This was SVN commit r19955.
2017-08-08 11:32:00 +00:00
leper dedbdc384c Stop marking the player as won on endless games. Patch by Vladislav. Fixes #4323.
This was SVN commit r19105.
2017-01-03 23:12:52 +00:00
elexis 30598bd451 Remove an unused function that is redundant with GetGameType from the EndGameManager.
This was SVN commit r18995.
2016-11-24 19:37:38 +00:00
elexis 6149dd3841 Actually remove trailing whitespace for non-header files as well.
This was SVN commit r18989.
2016-11-23 13:02:58 +00:00
mimo f352e2c725 AI diplomacy support for lastManStanding, patch by Sandarac, tests reviewed by elexis, fixes #4143
This was SVN commit r18945.
2016-11-15 18:48:20 +00:00
elexis 9f796068f8 Win and defeat cleanup, fixes #4013.
Add a new simulation message and chat notification for players who won.
Avoid duplicate playerstate messages in the sim and GUI by triggering
changes with a function instead of a message.
Reveal the map on defeat/win exclusively in the player component
(instead of having a silly GUI proxy and doing it also in the
EndGameManager sometimes).
Remove the skipAlliedVictory argument from the player component, since
that shouldn't contain references to the EndGameManager, refs #3970.

Show a proper message box on win/loss and add the hint for hosts
disconnecting other players.
Do defeat/win procedure in the GUI when such a message arrives, instead
of checking onTick for playerstate changes.
Thus don't show that confirmation again on every rejoin.
Don't show a pointless message box if IsAtlasRunning.

Explain that the session.js variable is needed to avoid an
order-of-execution bug.
Select "observer" item when rejoining as a defeated player.
Remove an unneeded call to updateTopPanel.

This was SVN commit r18441.
2016-06-26 04:40:50 +00:00
elexis 989df9cb3b Fix lineendings of JS simulation components.
This was SVN commit r18432.
2016-06-24 12:23:39 +00:00
elexis f4b818bec4 Wonder mode cleanup.
Remove unused, seemingly unusable wonder duration multiplier, refs
#3234.
Replace wonderDuration of the EndGameManager with gameTypeSettings,
since the component should be agnostic about victory condition logic.
Remove an unused cmpEndGameManager.
Inline a variable, few newlines, let intsead of var.

This was SVN commit r18398.
2016-06-17 14:24:30 +00:00
elexis 0ce02441ee Simulation cleanup
Use QueryPlayerIDInterface to remove duplication as suggested by leper.
Remove its duplicate GetPlayerComponent.
Add IsOwnedByHelper and IsOwnedByEntityHelper to remove duplicated ally
check functions.
Remove unused function GetPlayerFilter from 17c473f2f3.
Remove unused variables and access to undefined ones identified using
jshint.
Rename cmpPlayerMan.

This was SVN commit r18382.
2016-06-15 16:13:08 +00:00
elexis 949f22b67d Victory check cleanup.
Use let instead of var.
Add newlines and a missing semicolon.
Remove an excess semicolon.

This was SVN commit r18374.
2016-06-14 11:18:28 +00:00
elexis cd3c52c53f Last Man Standing mode. Based on patch by Sandarac, fixes #3970.
Also fix a simulation bug (check for allied victory on game start).
The mode is not a victory condition as it applies to all victoriy
conditions.

This was SVN commit r18342.
2016-06-08 11:03:16 +00:00
elexis b2fdfeba53 New gamesetup option enabling the host to vary the time required to win the wonder-gamemode. Patch by svott, fixes #3234.
This was SVN commit r18075.
2016-04-20 21:01:58 +00:00
elexis e0a1e2beb1 Session cleanup.
Don't send the simstate as an argument of reportGame().
Eliminate a for-each loop.
Remove some superfluous comments.

This was SVN commit r17604.
2016-01-05 03:02:59 +00:00
mimo 14aaa7c640 add some missing semicolon
This was SVN commit r17059.
2015-09-21 21:08:58 +00:00
mimo 0b86bbd424 another bunch of cleanup (mainly missing semicolon) signaled by jshint
This was SVN commit r17045.
2015-09-19 12:50:48 +00:00
trompetin17 20877632ce Fix 1vs1 Game, Fix Resign double message
This was SVN commit r16648.
2015-05-10 16:12:55 +00:00
trompetin17 e4a5d5b4dd Added Conquest Strutures and Conquest Units in victory modes, fixes #2976, refs #1649
This was SVN commit r16634.
2015-05-08 03:06:14 +00:00
historic_bruno 7b15b526ac Fixes tests.
Changes direct access of EndGameManager.gameType to getter function, by
convention

This was SVN commit r15525.
2014-07-13 19:45:44 +00:00
sanderd17 8915037631 Turn victory conditions into trigger scripts. Gui needs to be updated to allow combining of different victory conditions + to allow different lists per map. So there are no specific missions yet.
This was SVN commit r15427.
2014-06-23 17:37:27 +00:00
sanderd17 7ff5fbda2b Allow system components to be registered on the scripting side (so mods can make their own system components).
This was SVN commit r15157.
2014-05-18 13:44:08 +00:00
wraitii a7cafe75aa "Reveal all player" id back to -1, add some "ensure" to catch invalid player ids and be safer.
This was SVN commit r14465.
2013-12-31 21:30:48 +00:00
wraitii fe2a97b0c9 Change some useless std::map into std::vector for LOS. Player "0" now reveals the LOS for all.
This was SVN commit r14463.
2013-12-31 16:38:11 +00:00
sanderd17 10e8fb9105 remove debug message
This was SVN commit r14427.
2013-12-29 10:09:58 +00:00
sanderd17 cd125a94e2 fix tests + code style cleanup
This was SVN commit r14426.
2013-12-29 10:01:39 +00:00
sanderd17 bf58f04511 add wonder victory condition. Refs #1649
This was SVN commit r14418.
2013-12-28 13:40:39 +00:00
sanderd17 2d2853dd6f Fix problems with EndGameManager in Atlas by waiting for the first turn
This was SVN commit r14118.
2013-11-09 10:09:28 +00:00
sanderd17 9ffe235b2f Clean up EndGameManager. Fixes #2130
This was SVN commit r14087.
2013-11-05 19:40:50 +00:00
leper d57926fa5b Adjust diplomacy according to irc discussion. Refs #7.
This was SVN commit r12828.
2012-11-05 20:16:35 +00:00
leper 9930500661 Diplomacy is now mutual. Refs #7.
This was SVN commit r12810.
2012-11-02 13:44:35 +00:00
leper ca4dedbc3e Improve neutral and ally combat handling. Refs #7.
This was SVN commit r12780.
2012-10-23 23:13:39 +00:00
historic_bruno 3f3b5ee3e5 Adds player ID to PlayerDefeated message for AI usage.
This was SVN commit r10358.
2011-10-01 17:38:43 +00:00
historic_bruno 4d188452f8 Adds ownership checks to UI selections.
Adds ownership and diplomacy checks to Commands.js (fixes #880).
Adds control all units setting to Player component (network synced).
Adds helpers for diplomacy checks - use these instead of directly
accessing diplomacy array.
Fixes tests according to these changes.

This was SVN commit r9726.
2011-07-02 00:06:39 +00:00
Ykkrosh 996a32125c Add per-player LOS-reveal flag.
Reveal LOS for Gaia and AI players (fixes #879).
Use player_id_t slightly more consistently in interfaces.

This was SVN commit r9720.
2011-06-28 23:24:42 +00:00
WhiteTreePaladin 4261983c9d Fix reveal map checkbox after winning
This was SVN commit r9040.
2011-03-06 02:29:07 +00:00
historic_bruno e7b859b8a5 Add allied victory condition to EndGameManager, defaults to true for now because we can't change teams, but later it can be changed during setup
This was SVN commit r8674.
2010-11-21 00:35:08 +00:00
Ykkrosh fcedcae052 # Add victory/defeat conditions, based on patch from fcxSanya.
Fixes #565.

This was SVN commit r8234.
2010-10-01 20:51:21 +00:00