HomeWildfire Games

Make units wait a few seconds at waypoints during Patrol.

Description

Make units wait a few seconds at waypoints during Patrol.

This makes 'dancing' impossible with patrol, for both single units and formations.
It further makes the formation and regular patrol code more similar.

The diff harcodes an integer wait time as it relies on timer calls instead of range queries, as that was much simpler to implement.
Animations for the waypoint-waiting is also unimplemented.

Reviewed By: Freagarach

Refs #5106

Differential Revision: https://code.wildfiregames.com/D2913

Event Timeline

Stan raised a concern with this commit.EditedDec 10 2020, 12:40 PM
Stan added a subscriber: Stan.
0 A.D. (0.0.24) Main log (warnings and errors only)

ERROR: RelaxNGValidator: Validation error: gaia/fauna_chicken:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: gaia/fauna_chicken:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: gaia/fauna_chicken:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: Failed to load entity template 'gaia/fauna_chicken'

ERROR: RelaxNGValidator: Validation error: gaia/fauna_deer:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: gaia/fauna_deer:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: gaia/fauna_deer:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: RelaxNGValidator: Validation error: gaia/fauna_boar:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: gaia/fauna_boar:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: gaia/fauna_boar:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'gaia/fauna_boar'

ERROR: Failed to load entity template 'gaia/fauna_boar'

ERROR: Failed to load entity template 'gaia/fauna_boar'

ERROR: Failed to load entity template 'gaia/fauna_boar'

ERROR: Failed to load entity template 'gaia/fauna_boar'

ERROR: RelaxNGValidator: Validation error: gaia/fauna_bear_brown:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: gaia/fauna_bear_brown:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: gaia/fauna_bear_brown:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'gaia/fauna_bear_brown'

ERROR: Failed to load entity template 'gaia/fauna_bear_brown'

ERROR: RelaxNGValidator: Validation error: gaia/fauna_sheep:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: gaia/fauna_sheep:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: gaia/fauna_sheep:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_sheep'

ERROR: Failed to load entity template 'gaia/fauna_bear_brown'

ERROR: RelaxNGValidator: Validation error: gaia/fauna_wolf:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: gaia/fauna_wolf:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: gaia/fauna_wolf:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'gaia/fauna_wolf'

ERROR: Failed to load entity template 'gaia/fauna_wolf'

ERROR: Failed to load entity template 'gaia/fauna_wolf'

ERROR: Failed to load entity template 'gaia/fauna_wolf'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: Failed to load entity template 'gaia/fauna_deer'

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_infantry_melee_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_infantry_melee_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_infantry_melee_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'skirmish/units/default_infantry_melee_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_melee_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_melee_b'

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_infantry_ranged_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_infantry_ranged_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_infantry_ranged_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'skirmish/units/default_infantry_ranged_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_ranged_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_ranged_b'

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_support_female_citizen:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_support_female_citizen:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_support_female_citizen:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_cavalry:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_cavalry:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: skirmish/units/default_cavalry:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'skirmish/units/default_cavalry'

ERROR: Failed to load entity template 'skirmish/units/default_cavalry'

ERROR: RelaxNGValidator: Validation error: skirmish/units/special_starting_unit:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: skirmish/units/special_starting_unit:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: skirmish/units/special_starting_unit:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'skirmish/units/special_starting_unit'

ERROR: Failed to load entity template 'skirmish/units/special_starting_unit'

ERROR: Failed to load entity template 'skirmish/units/special_starting_unit'

ERROR: Failed to load entity template 'skirmish/units/default_cavalry'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_melee_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_melee_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_ranged_b'

ERROR: Failed to load entity template 'skirmish/units/default_infantry_ranged_b'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: Failed to load entity template 'skirmish/units/default_support_female_citizen'

ERROR: RelaxNGValidator: Validation error: units/kush/support_female_citizen:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/kush/support_female_citizen:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/kush/support_female_citizen:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/kush/support_female_citizen'

ERROR: RelaxNGValidator: Validation error: units/kush/infantry_spearman_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/kush/infantry_spearman_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/kush/infantry_spearman_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/kush/infantry_spearman_b'

ERROR: RelaxNGValidator: Validation error: units/kush/infantry_archer_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/kush/infantry_archer_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/kush/infantry_archer_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/kush/infantry_archer_b'

ERROR: RelaxNGValidator: Validation error: units/kush/cavalry_javelineer_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/kush/cavalry_javelineer_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/kush/cavalry_javelineer_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/kush/cavalry_javelineer_b'

ERROR: RelaxNGValidator: Validation error: units/rome/support_female_citizen:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/rome/support_female_citizen:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/rome/support_female_citizen:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/rome/support_female_citizen'

ERROR: RelaxNGValidator: Validation error: units/rome/infantry_swordsman_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/rome/infantry_swordsman_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/rome/infantry_swordsman_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/rome/infantry_swordsman_b'

ERROR: RelaxNGValidator: Validation error: units/rome/infantry_javelineer_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/rome/infantry_javelineer_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/rome/infantry_javelineer_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/rome/infantry_javelineer_b'

ERROR: RelaxNGValidator: Validation error: units/rome/cavalry_spearman_b:1: Expecting an element PatrolWaitTime, got nothing

ERROR: RelaxNGValidator: Validation error: units/rome/cavalry_spearman_b:1: Invalid sequence in interleave

ERROR: RelaxNGValidator: Validation error: units/rome/cavalry_spearman_b:1: Element UnitAI failed to validate content

ERROR: RelaxNGValidator: Validation failed for '(null)'

ERROR: Failed to validate entity template 'units/rome/cavalry_spearman_b'

ERROR: JavaScript error: simulation/helpers/Commands.js line 284 template is undefined train@simulation/helpers/Commands.js:284:7 ProcessCommand@simulation/helpers/Commands.js:48:23

ERROR: Failed to call ProcessCommand() global script function

ERROR: JavaScript error: simulation/helpers/Commands.js line 284 template is undefined train@simulation/helpers/Commands.js:284:7 ProcessCommand@simulation/helpers/Commands.js:48:23

ERROR: Failed to call ProcessCommand() global script function
This commit now has outstanding concerns.Dec 10 2020, 12:40 PM
Stan removed an auditor: Stan.Dec 10 2020, 1:45 PM

I had a mod on, sorry;

This commit no longer requires audit.Dec 10 2020, 1:45 PM