Commit graph

48 commits

Author SHA1 Message Date
Angen
083a5947e6 Do not create range query with no enemies
Do not create range query with no enemies as that triggers warning in
range manager.
This situation occurs when player has no enemies so empty list is
returned.

Fixing CCmpRangeManager: No owners in query for entity 0 warning

refs 38b2e37a61

Differential Revision: https://code.wildfiregames.com/D2601
Fixes: #5666
Reviewed by: @Freagarach
This was SVN commit r23467.
2020-01-30 21:13:42 +00:00
Angen
ed54ad3486 Do not face point after movement for formation walk
After formation member ends walking, he tries to face target point.
However that eliminates rotation set by SetInPosition from formation
component. Partly fixed in 9d0b4db973 with setting correct rotation in
idle state, but one could still notice that there is glitch when unit
does quick turn to target point and then back. However that solution
would be still required if logic in SetInPosition would not be changed
to always set correct rotation. Another alternative would be to unset
unit at position with every walking order but that would have the same
effect and this is just more performance friendly to not splice member
from position every time.

Notice that information from inPosition is currently not used, so that
change in it is not braking anything.

This was SVN commit r23346.
2020-01-08 21:37:19 +00:00
wraitii
16b452cf91 Generalise Attack effects. All attacks, including death damage and splash, can deal any number of attack effects (damaging, capture, giving status effects.)
This moves most of what was in the Damage system component to a helper,
and renames that component DelayedDamage.
It also introduces a new global script with all possible attack effects.

Comments Taken From: Freagarach, Stan, bb

Differential Revision: https://code.wildfiregames.com/D2092
This was SVN commit r22754.
2019-08-22 18:00:33 +00:00
wraitii
e1bde4c337 Fix tests following 945d1ba2e6
945d1ba2e6 broke formation regression tests because there now needs to
be a timer call after the units become idle for behaviour to trigger.

Differential Revision: https://code.wildfiregames.com/D2077
This was SVN commit r22477.
2019-07-14 14:57:38 +00:00
wraitii
27b686215a Remove "MoveStarted" messages
"MoveStarted" messages were sent by UnitMotion when the unit started
moving (sort of) or failed to do so. This was used by formations and
guarding but was not really necessary as this can be done in "enter" or
in a timer.

Differential Revision: https://code.wildfiregames.com/D1885
This was SVN commit r22350.
2019-06-08 12:53:28 +00:00
wraitii
c219ee54b2 Move "IsInRange" family of functions to the Obstruction Manager and make the commutative.
These functions were placed in UnitMotion, which had nothing to do with
range checks and made them available only to moving entities for no
particular reason.

This patch also adds support for square-square range checks and
shape-shape distance checks.

Modified from a patch by bb on top of work from wraitii.

Differential Revision: https://code.wildfiregames.com/D981
This was SVN commit r22345.
2019-06-06 19:37:23 +00:00
wraitii
0c20afdfda Unit Motion: MoveTo family of function no longer returns false if the move is un-necessary, instead unitAI checks explicitly.
This also moves the actual "moving" code to states instead of orders,
making states more self-contained and removing the change of errors when
cleaning up a state.

Differential Revision: https://code.wildfiregames.com/D1865
This was SVN commit r22313.
2019-05-28 11:38:18 +00:00
wraitii
859d96fba5 UnitMotion - improve variable names and reuse a duplicated function (cleanup def47cb7ae)
This:
 - cleans up a code duplication and clarifies the intent.
 - reorders things around for clarity
 - improves variable names.

Commented By: elexis
Differential Revision: https://code.wildfiregames.com/D1840
This was SVN commit r22277.
2019-05-13 16:47:51 +00:00
wraitii
def47cb7ae Change Run Speed into a Run multiplier.
This changes running speed into a running multiplier (of walk speed).

The advantage is that it simplifies code since you can setup a default
run multiplier at the template level and it'll work for all subsequent
templates, and technologies cannot forget to change it. It makes
specialised unit templates easier to maintain, too.

Formations have a 100 run multiplier which effectively sets their
maximal walking speed at 100

Reviewed By: bb, O2 JS Simulation
Differential Revision: https://code.wildfiregames.com/D438
This was SVN commit r22197.
2019-04-19 10:04:50 +00:00
temple
3071d82a33 Remove formation minimum range and stop formation when in member state
Differential Revision: https://code.wildfiregames.com/D1423
Reviewed by: elexis
This was SVN commit r21701.
2018-04-12 00:27:03 +00:00
leper
a85c532f8f Move formations/ templates to special/formations/.
This should help with simplifying the (un)placeable filtering again.

Reviewed By: fatherbushido
Differential Revision: https://code.wildfiregames.com/D933
This was SVN commit r20241.
2017-09-30 06:51:56 +00:00
Itms
83a2e810da Remove all occurrences of for each in JS scripts.
This will allow us to use some linters that would otherwise crash on
this non-standard SpiderMonkey feature. Refs #4419.

Special thanks to elexis for thoroughly checking and testing all the
changes!
Reviewed By: leper, elexis
Differential Revision: https://code.wildfiregames.com/D40
This was SVN commit r19191.
2017-01-30 12:47:08 +00:00
elexis
7702908a52 Remove an unused variable following 1b20ac7671 and fix some missing and some redundant semicolons found with jshint.
This was SVN commit r19011.
2016-11-28 14:47:13 +00:00
leper
fe8d096364 Add GetPlayersByDiplomacy to cmpPlayer.
This is in turn used by GetEnemies and the new GetAllies and
GetMutualAllies.
Use these in a few places as those are common queries.

Fixes #4161.
Reviewed by: fatherbushido
This was SVN commit r18649.
2016-08-27 15:28:02 +00:00
elexis
4b5f8dfca6 Remove trailing whitespace and simplify some length checks. Refs #252.
This was SVN commit r18214.
2016-05-21 16:20:27 +00:00
mimo
025e28be83 fix test broken in 34fd23e920, fix #3614
This was SVN commit r17266.
2015-11-15 17:48:25 +00:00
mimo
ef4a1e261c fix standGround units not attacking, patch by karamel, fixes #3284
This was SVN commit r17109.
2015-10-08 20:48:05 +00:00
Itms
b77ad821c2 Reenable formations and fix/improve the communication between UnitAI and UnitMotion. With the new pathfinder some path requests can be completed instantaneously, so UnitAI has to handle MoveStarted messages even in the IDLE state.
Please note that this commit makes #3410 really visible. Formation
members might pass through buildings.

Refs #3410, #3337.

This was SVN commit r17028.
2015-09-17 16:31:23 +00:00
Itms
128a603287 Use the terrain-only grid for terrain edges in the short pathfinder algorithm. This grid is updated on each terrain change, whereas the passability grid is updated once a turn. This caused OOS on rejoin, fixes #3292.
However, using the terrain-only grid reveals one discrepancy between the
short pathfinder (which uses unit radii) and the long one (which uses
unit clearances). So I implemented the change proposed by sanderd17 in
#3294, which is removing unit radius and using only the pathfinder
clearance. Refs #3294
Now some tweaking has to be done in the templates, so that units get a
passability class suited to their apparent size. In the meantime the
unit motion is quite bugged.

This was SVN commit r16867.
2015-07-18 08:37:49 +00:00
sanderd17
5e5799a45a Fix tests
This was SVN commit r16592.
2015-04-28 12:16:33 +00:00
sanderd17
a8c44d947c Fix tests
This was SVN commit r16551.
2015-04-20 07:47:07 +00:00
sanderd17
e2aa24fc9a Clean up the turret interface a bit + fix serialisation for turrets
This was SVN commit r15250.
2014-05-31 11:35:07 +00:00
sanderd17
01777a7ade fix tests
This was SVN commit r15188.
2014-05-21 12:28:39 +00:00
sanderd17
b7f6c00c2b Mark all components as global variables and allow to re-register existing components to update their schema and/or message receiving methods.
This allows for components to be extended in other files, so mods don't
have to overwrite entire components.
Fixes #2517. Thanks to Rada for helping on this
(also fix some tests broken in the previous commit)

This was SVN commit r15150.
2014-05-18 08:20:02 +00:00
leper
3e03c9d08a Return something valid in a mock function to fix a warning while running tests.
This was SVN commit r14893.
2014-04-02 23:10:07 +00:00
sanderd17
c751500907 Refactor some formation code to let it make use of the prototypes
This was SVN commit r14693.
2014-01-27 12:34:59 +00:00
sanderd17
32844e9a16 Fix tests + improve behaviour of attacking when not in formation
This was SVN commit r14634.
2014-01-22 15:13:07 +00:00
sanderd17
96448bfa4e * add a (currently useless) attack state to formations
* add a formation attack component that will be used in the future to
coordinate formation attacks
* clean up some related methods, and move some to more appropriate
places

This was SVN commit r14569.
2014-01-11 12:19:43 +00:00
sanderd17
b1e0f1b62a Clean up the mess of different ways to note the formations (capitalised, with spaces, with underscores, concatenated ...) by always referring to the template name.
This was SVN commit r14534.
2014-01-07 13:33:08 +00:00
sanderd17
94907897a7 Fix tests + fix classes Ashoka. Fixes #2362
This was SVN commit r14533.
2014-01-07 09:23:59 +00:00
sanderd17
5b2cb0e72f small code fix
This was SVN commit r14477.
2014-01-02 08:40:51 +00:00
sanderd17
66770feed6 include gaia range query of UnitAI in general range query. Fixes #2156. Patch by dumbo
This was SVN commit r14473.
2014-01-01 18:59:16 +00:00
sanderd17
3afd8e9d9e better formation place assignments (units run around less)
This was SVN commit r14281.
2013-12-04 13:14:31 +00:00
sanderd17
379a7b208f Implement the js side of auras. Refs #2048. Patch with the help of Alpha123. Only the temple aura is added as example, all other aura components are removed from the templates to be created from scratch again.
This was SVN commit r13998.
2013-10-14 15:51:21 +00:00
leper
5800be1334 Formation order queueing. Fixes #592, #593 and #1716.
Allow changing the formation, while under attack. Fixes #1624. Patch by
Simikolon.

This was SVN commit r12911.
2012-12-02 01:52:27 +00:00
leper
ddd8c36d6f Fix tests.
This was SVN commit r12910.
2012-12-01 23:04:49 +00:00
leper
d4347a8466 Add Preferred and RestrictedClasses, based on patch by Zsol. Fixes #1144.
This was SVN commit r11710.
2012-05-01 22:20:08 +00:00
leper
2f5b81a37e Fix broken test.
This was SVN commit r11695.
2012-04-29 17:39:16 +00:00
leper
c56f96040e Implement healing. Fixes #999.
This was SVN commit r11536.
2012-04-17 20:22:13 +00:00
historic_bruno
eb5b3bba10 Fixes broken UnitAI test.
This was SVN commit r10775.
2011-12-19 23:09:38 +00:00
historic_bruno
2a44e8202e Fixes tests after recent GuiInterface and UnitAI changes.
This was SVN commit r10603.
2011-11-26 01:58:39 +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
151539a92b Fix #882 (test failure)
This was SVN commit r9714.
2011-06-28 18:25:38 +00:00
Ykkrosh
15e4500a01 Fix tests
This was SVN commit r9460.
2011-05-06 17:04:32 +00:00
Ykkrosh
16a654ccae Fix script tests.
Fixes #827.

This was SVN commit r9416.
2011-05-03 23:16:16 +00:00
Ykkrosh
e6ebfa2ab9 Fix tests
This was SVN commit r9016.
2011-03-04 23:22:09 +00:00
Ykkrosh
ab186c2b16 Update UnitMotion logic, to partially simplify it.
Do all pathfinding asynchronously.
Recalculate paths when the target has moved.
Fix vertex pathfinder start point heuristic, to avoid finding
zero-length paths.
When units fail to reach a resource to gather, look for another resource
of the same type.

This was SVN commit r8751.
2010-11-30 12:31:54 +00:00
Ykkrosh
f378a63d94 Add some tests for UnitAI.
Fix said tests for UnitAI.
Hopefully fix #647 too.
Document HFSM interface a bit.
Add Engine.DumpSimState() console command for debugging.

This was SVN commit r8681.
2010-11-22 20:12:04 +00:00