Files
OpenRA/mods/d2k/chrome/ingame-player.yaml
RoosterDragon 2d45e67bca Teach HierarchicalPathFinder about Immovable actors.
By tracking updates on the ActorMap the HierarchicalPathFinder can be aware of actors moving around the map. We track a subset of immovable actors that always block. These actors can be treated as impassable obstacles just like terrain. When a path needs to be found the abstract path will guide the search around this subset of immovable actors just like it can guide the search around impassable terrain. For path searches that were previously imperformant because some immovable actors created a bottleneck that needed to be routed around, these will now be performant instead. Path searches with bottlenecks created by items such as trees, walls and buildings should see a performance improvement. Bottlenecks created by other units will not benefit.

We now maintain two sets of HPFs. One is aware of immovable actors and will be used for path searches that request BlockedByActor.Immovable, BlockedByActor.Stationary and BlockedByActor.All to guide that around the immovable obstacles. The other is aware of terrain only and will be used for searches that request BlockedByActor.None, or if an ignoreActor is provided. A new UI dropdown when using the `/hpf` command will allow switching between the visuals of the two sets.
2022-08-31 23:12:42 +02:00

663 lines
18 KiB
YAML

Container@PLAYER_WIDGETS:
Logic: LoadIngameChatLogic
Children:
Container@CHAT_ROOT:
LogicKeyListener@PLAYER_KEYHANDLER:
Logic: RemoveFromControlGroupHotkeyLogic
RemoveFromControlGroupKey: RemoveFromControlGroup
ControlGroups@CONTROLGROUPS:
SelectGroupKeyPrefix: ControlGroupSelect
CreateGroupKeyPrefix: ControlGroupCreate
AddToGroupKeyPrefix: ControlGroupAddTo
CombineWithGroupKeyPrefix: ControlGroupCombineWith
JumpToGroupKeyPrefix: ControlGroupJumpTo
LogicTicker@SIDEBAR_TICKER:
Container@SUPPORT_POWERS:
Logic: SupportPowerBinLogic
X: 10
Y: 10
Children:
SupportPowers@SUPPORT_PALETTE:
IconSize: 60, 48
IconSpriteOffset: -1, -1
TooltipContainer: TOOLTIP_CONTAINER
ReadyText: READY
HoldText: ON HOLD
HotkeyPrefix: SupportPower
HotkeyCount: 6
Image@COMMAND_BAR_BACKGROUND:
X: 0
Y: WINDOW_BOTTOM - HEIGHT
Width: 416
Height: 43
ImageCollection: commandbar
ImageName: background
Container@COMMAND_BAR:
Logic: CommandBarLogic
X: 24
Y: WINDOW_BOTTOM - HEIGHT - 9
Width: 275
Height: 41
Children:
LogicKeyListener@MODIFIER_OVERRIDES:
Button@ATTACK_MOVE:
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
Key: AttackMove
DisableKeySound: true
TooltipText: Attack Move
TooltipDesc: Selected units will move to the desired location\nand attack any enemies they encounter en route.\n\nHold {(Ctrl)} while targeting to order an Assault Move\nthat attacks any units or structures encountered en route.\n\nLeft-click icon then right-click on target location.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: attack-move
Button@FORCE_MOVE:
X: 35
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
DisableKeySound: true
TooltipText: Force Move
TooltipDesc: Selected units will move to the desired location\n - Default activity for the target is suppressed\n - Vehicles will attempt to crush enemies at the target location\n - Deployed thumpers will undeploy and move to the target location\n\nLeft-click icon then right-click on target.\nHold {(Alt)} to activate temporarily while commanding units.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: force-move
Button@FORCE_ATTACK:
X: 70
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
DisableKeySound: true
TooltipText: Force Attack
TooltipDesc: Selected units will attack the targeted unit or location\n - Default activity for the target is suppressed\n - Allows targeting of own or ally forces\n\nLeft-click icon then right-click on target.\nHold {(Ctrl)} to activate temporarily while commanding units.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: force-attack
Button@GUARD:
X: 105
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
Key: Guard
DisableKeySound: true
TooltipText: Guard
TooltipDesc: Selected units will follow the targeted unit.\n\nLeft-click icon then right-click on target unit.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: guard
Button@DEPLOY:
X: 140
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
Key: Deploy
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Deploy
TooltipDesc: Selected units will perform their default deploy activity\n - MCVs will unpack into a Construction Yard\n - Thumpers will start or stop attracting worms\n - Devastators will become immobilized and explode\n\nActs immediately on selected units.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: deploy
Button@SCATTER:
X: 175
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
Key: Scatter
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Scatter
TooltipDesc: Selected units will stop their current activity\nand move to a nearby location.\n\nActs immediately on selected units.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: scatter
Button@STOP:
X: 210
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
Key: Stop
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Stop
TooltipDesc: Selected units will stop their current activity.\n\nActs immediately on selected units.
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: stop
Button@QUEUE_ORDERS:
X: 245
Width: 34
Height: 41
VisualHeight: 0
Background: command-button
DisableKeySound: true
TooltipText: Waypoint Mode
TooltipDesc: Use Waypoint Mode to give multiple linking commands\nto the selected units. Units will execute the commands\nimmediately upon receiving them.\n\nLeft-click icon then give commands in the game world.\nHold {(Shift)} to activate temporarily while commanding units.
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_WITH_DESC_HIGHLIGHT_TOOLTIP
Children:
Image@ICON:
X: 4
Y: 8
ImageCollection: command-icons
ImageName: queue-orders
Container@STANCE_BAR:
Logic: StanceSelectorLogic
X: 316
Y: WINDOW_BOTTOM - HEIGHT - 11
Width: 138
Height: 26
Children:
Button@STANCE_ATTACKANYTHING:
Width: 29
Height: 26
VisualHeight: 0
Background:
Key: StanceAttackAnything
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Attack Anything Stance
TooltipDesc: Set the selected units to Attack Anything stance:\n - Units will attack enemy units and structures on sight\n - Units will pursue attackers across the battlefield
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 6
Y: 5
ImageCollection: stance-icons
ImageName: attack-anything
Button@STANCE_DEFEND:
X: 29
Width: 29
Height: 26
VisualHeight: 0
Background:
Key: StanceDefend
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Defend Stance
TooltipDesc: Set the selected units to Defend stance:\n - Units will attack enemy units on sight\n - Units will not move or pursue enemies
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 6
Y: 5
ImageCollection: stance-icons
ImageName: defend
Button@STANCE_RETURNFIRE:
X: 58
Width: 29
Height: 26
VisualHeight: 0
Background:
Key: StanceReturnFire
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Return Fire Stance
TooltipDesc: Set the selected units to Return Fire stance:\n - Units will retaliate against enemies that attack them\n - Units will not move or pursue enemies
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 6
Y: 5
ImageCollection: stance-icons
ImageName: return-fire
Button@STANCE_HOLDFIRE:
X: 87
Width: 29
Height: 26
VisualHeight: 0
Background:
Key: StanceHoldFire
DisableKeyRepeat: true
DisableKeySound: true
TooltipText: Hold Fire Stance
TooltipDesc: Set the selected units to Hold Fire stance:\n - Units will not fire upon enemies\n - Units will not move or pursue enemies
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 6
Y: 5
ImageCollection: stance-icons
ImageName: hold-fire
Container@MUTE_INDICATOR:
Logic: MuteIndicatorLogic
X: WINDOW_RIGHT - WIDTH - 231
Y: 5
Width: 200
Height: 25
Children:
Image@ICON:
X: PARENT_RIGHT - WIDTH
Y: 1
Width: 24
Height: 24
ImageCollection: sidebar-bits
ImageName: indicator-muted
Label@LABEL:
Width: PARENT_RIGHT - 30
Height: 25
Align: Right
Text: Audio Muted
Contrast: true
Image@SIDEBAR_BACKGROUND_TOP:
X: WINDOW_RIGHT - 226
Y: 0
Width: 226
Height: 295
ImageCollection: sidebar
ImageName: background-top
ClickThrough: false
Children:
Container@TOP_BUTTONS:
Logic: MenuButtonsChromeLogic
X: 16
Y: 236
Children:
Button@REPAIR_BUTTON:
Logic: RepairOrderButtonLogic
X: 29
Width: 34
Height: 35
Background:
Key: Repair
TooltipText: Repair
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
X: 0
Y: 0
ImageCollection: order-icons
Button@SELL_BUTTON:
Logic: SellOrderButtonLogic
X: 54
Width: 34
Height: 35
Background:
Key: Sell
TooltipText: Sell
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
X: 0
Y: 0
ImageCollection: order-icons
Button@BEACON_BUTTON:
Logic: BeaconOrderButtonLogic
X: 108
Width: 36
Height: 35
Background:
Key: PlaceBeacon
TooltipText: Place Beacon
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
X: 0
Y: 0
ImageCollection: order-icons
Button@POWER_BUTTON:
Logic: PowerdownOrderButtonLogic
X: 133
Width: 36
Height: 35
Background:
Key: PowerDown
TooltipText: Power Down
TooltipContainer: TOOLTIP_CONTAINER
VisualHeight: 0
Children:
Image@ICON:
X: 0
Y: 0
ImageCollection: order-icons
MenuButton@OPTIONS_BUTTON:
Key: escape
X: 78
Y: 1
Width: 40
Height: 38
Background:
TooltipText: Options
TooltipContainer: TOOLTIP_CONTAINER
DisableWorldSounds: true
VisualHeight: 0
Children:
Image@ICON:
X: 0
Y: 0
ImageCollection: order-icons
ImageName: options
Container@RADAR:
Logic: IngameRadarDisplayLogic
Children:
LogicTicker@RADAR_TICKER:
Image@INSIGNIA:
Logic: AddFactionSuffixLogic
X: 63
Y: 88
ImageCollection: radar
ImageName: insignia
ColorBlock@RADAR_FADETOBLACK:
X: 12
Y: 34
Width: 202
Height: 202
Radar@RADAR_MINIMAP:
WorldInteractionController: INTERACTION_CONTROLLER
X: 12
Y: 34
Width: 202
Height: 202
SoundUp: RadarUp
SoundDown: RadarDown
Children:
VideoPlayer@PLAYER:
X: 12
Y: 32
Width: 202
Height: 202
Skippable: false
Container@MINIMAP_OVERLAY:
X: 12
Y: 34
Children:
Image@TOPLEFT:
ImageCollection: minimap-overlay
ImageName: top-left
Image@TOP:
X: 30
ImageCollection: minimap-overlay
ImageName: top
Image@TOPRIGHT:
X: 195
ImageCollection: minimap-overlay
ImageName: top-right
Image@LEFT:
Y: 94
ImageCollection: minimap-overlay
ImageName: left
Image@RIGHT:
X: 197
Y: 94
ImageCollection: minimap-overlay
ImageName: right
Image@BOTTOMLEFT:
Y: 195
ImageCollection: minimap-overlay
ImageName: bottom-left
Image@BOTTOMRIGHT:
X: 195
Y: 195
ImageCollection: minimap-overlay
ImageName: bottom-right
Label@GAME_TIMER:
Logic: GameTimerLogic
X: 10
Y: 4
Width: PARENT_RIGHT
Height: 22
Align: Center
Font: TinyBold
LabelWithTooltip@CASH:
Logic: IngameCashCounterLogic
X: 29
Y: 4
Width: 50
Height: 22
Font: Bold
Text: {0}
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: SIMPLE_TOOLTIP
LabelWithTooltip@POWER:
Logic: IngamePowerCounterLogic
X: PARENT_RIGHT - WIDTH - 30
Y: 4
Width: 50
Height: 22
Align: Right
Font: Bold
Text: {0}
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: SIMPLE_TOOLTIP
Children:
Image@POWER_ICON:
X: PARENT_RIGHT + 0
Y: 3
ImageCollection: power-icons
ImageName: power-normal
Container@SIDEBAR_PRODUCTION:
Logic: ClassicProductionLogic
X: WINDOW_RIGHT - 226
Y: 279
Width: 226
Height: 250
Children:
Container@PALETTE_BACKGROUND:
Children:
Image@ROW_TEMPLATE:
Width: 226
Height: 48
ClickThrough: false
ImageCollection: sidebar
ImageName: background-iconrow
Image@BOTTOM_CAP:
Width: 250
Height: 13
ClickThrough: false
ImageCollection: sidebar
ImageName: background-bottom
LogicTicker@PRODUCTION_TICKER:
ProductionPalette@PRODUCTION_PALETTE:
X: 39
Y: 1
TooltipContainer: TOOLTIP_CONTAINER
ReadyText: READY
HoldText: ON HOLD
IconSize: 58, 48
IconMargin: 2, 0
IconSpriteOffset: 0, 0
MinimumRows: 5
MaximumRows: 6
HotkeyPrefix: Production
HotkeyCount: 24
SelectProductionBuildingHotkey: SelectProductionBuilding
ClickSound: TabClick
Container@PRODUCTION_TYPES:
X: 6
Y: 2
Width: 25
Height: 274
Children:
ProductionTypeButton@BUILDING:
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Buildings
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Building
Key: ProductionTypeBuilding
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
ProductionTypeButton@INFANTRY:
Y: 62
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Infantry
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Infantry
Key: ProductionTypeInfantry
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
ProductionTypeButton@VEHICLE:
Y: 93
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Light Vehicles
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Vehicle
Key: ProductionTypeVehicle
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
ProductionTypeButton@TANKS:
Y: 124
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Heavy Vehicles
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Armor
Key: ProductionTypeTank
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
ProductionTypeButton@AIRCRAFT:
Y: 155
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Aircraft
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Aircraft
Key: ProductionTypeAircraft
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
ProductionTypeButton@STARPORT:
Y: 186
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Starport
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Starport
Key: ProductionTypeMerchant
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
ProductionTypeButton@UPGRADE: # Upgrade is defined after others so it won't be automatically selected after sell or at game start.
Y: 31
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Upgrades
TooltipContainer: TOOLTIP_CONTAINER
ProductionGroup: Upgrade
Key: ProductionTypeUpgrade
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: production-icons
Button@SCROLL_UP_BUTTON:
Y: 217
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Scroll up
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: scrollpanel-decorations
ImageName: up
Button@SCROLL_DOWN_BUTTON:
Y: 248
Width: 25
Height: 25
VisualHeight: 0
Background: sidebar-button
TooltipText: Scroll down
TooltipContainer: TOOLTIP_CONTAINER
Children:
Image@ICON:
X: 5
Y: 5
ImageCollection: scrollpanel-decorations
ImageName: down
Container@HPF_OVERLAY:
Logic: HierarchicalPathFinderOverlayLogic
X: WINDOW_RIGHT - WIDTH - 231
Y: 40
Width: 175
Height: 60
Children:
DropDownButton@HPF_OVERLAY_LOCOMOTOR:
Y: PARENT_TOP
Width: PARENT_RIGHT
Height: 25
Text: Select Locomotor
Font: Regular
DropDownButton@HPF_OVERLAY_CHECK:
Y: PARENT_TOP + 35
Width: PARENT_RIGHT
Height: 25
Text: Select BlockedByActor
Font: Regular