tr4wzified / HadesUltrawidePatch

Patches the UI in the game Hades by Super Giant Games to work with 21:9 aspect ratios
2 stars 1 forks source link

Fix the Vignette #1

Open tr4wzified opened 3 years ago

tr4wzified commented 3 years ago

Option 1 (lame): Disable Vignette by commenting CreateVignette() in RoomManager.lua

Option 2: Fix the Vignette & color mapping/tone to work at 21:9. Looking at this

tr4wzified commented 3 years ago

More 960 values that have to be recalculated:

$ grep -R "960" --include=.sjson --include=.lua

Game/Animations/Fx.sjson:      OffsetX = 960
Game/Animations/Fx.sjson:      OriginX = 960
Game/Animations/Fx.sjson:      RandomOffsetX = 960.0
Game/Animations/Fx.sjson:      RandomOffsetX = 960.0
Game/Animations/Fx.sjson:      RandomOffsetX = 960.0
Game/Animations/Fx.sjson:      RandomOffsetX = 960.0
Game/Animations/Fx.sjson:      RandomOffsetX = 960.0
Game/Animations/Fx.sjson:      RandomOffsetX = 960.0
Game/Animations/Fx.sjson:      ScaleRadius = 960.0
Game/Animations/Fx.sjson:      OriginY = 960.0
Game/Animations/Fx.sjson:      OriginY = 960.0
Game/Animations/Fx.sjson:      RandomOffsetX = 960
Game/Animations/Fx.sjson:      ScaleRadius = 960.0
Game/Animations/GUIAnimations.sjson:      RadialOffsetMax = 960
Game/Animations/ObstacleAnimations.sjson:      RandomOffsetX = 960.0
Game/Animations/ObstacleAnimations.sjson:      OffsetX = -960
Game/Animations/ObstacleAnimations.sjson:      OffsetX = 960
Game/Animations/ObstacleAnimations.sjson:      RandomOffsetX = 960.0
Game/GUI/DebugKeyScreen.sjson:      SpacingX = 960
Game/Obstacles/Asphodel.sjson:          { X = 960 Y = -244 }
Game/Obstacles/Tartarus.sjson:        Offset = { X = 0 Y = -960 }
Game/Text/de/_EnemyData.de.sjson:      Id = "ZagreusHome_2960"
Game/Text/de/_NPCData.de.sjson:      Id = "ZagreusHome_1960"
Game/Text/es/_EnemyData.es.sjson:      Id = "ZagreusHome_2960"
Game/Text/es/_NPCData.es.sjson:      Id = "ZagreusHome_1960"
Game/Text/fr/_EnemyData.fr.sjson:      Id = "ZagreusHome_2960"
Game/Text/fr/_NPCData.fr.sjson:      Id = "ZagreusHome_1960"
Game/Text/it/_EnemyData.it.sjson:      Id = "ZagreusHome_2960"
Game/Text/it/_NPCData.it.sjson:      Id = "ZagreusHome_1960"
Game/Text/ja/_EnemyData.ja.sjson:      Id = "ZagreusHome_2960"
Game/Text/ja/_NPCData.ja.sjson:      Id = "ZagreusHome_1960"
Game/Text/ko/_EnemyData.ko.sjson:      Id = "ZagreusHome_2960"
Game/Text/ko/_NPCData.ko.sjson:      Id = "ZagreusHome_1960"
Game/Text/pl/_EnemyData.pl.sjson:      Id = "ZagreusHome_2960"
Game/Text/pl/_NPCData.pl.sjson:      Id = "ZagreusHome_1960"
Game/Text/pt-BR/_EnemyData.pt-BR.sjson:      Id = "ZagreusHome_2960"
Game/Text/pt-BR/_NPCData.pt-BR.sjson:      Id = "ZagreusHome_1960"
Game/Text/ru/_EnemyData.ru.sjson:      Id = "ZagreusHome_2960"
Game/Text/ru/_NPCData.ru.sjson:      Id = "ZagreusHome_1960"
Game/Text/zh-CN/_EnemyData.zh-CN.sjson:      Id = "ZagreusHome_2960"
Game/Text/zh-CN/_NPCData.zh-CN.sjson:      Id = "ZagreusHome_1960"
Scripts/AudioData.lua:  { Cue = "/VO/ZagreusField_0960", RequiredPlayed = { "/VO/ZagreusField_0962" } },
Scripts/AudioData.lua:          { Cue = "/VO/ZagreusField_2960" },
Scripts/ConditionalItemData.lua:                InspectPoint = 424960,
Scripts/DeathLoopData.lua:                      [424960] =
Scripts/EnemyData.lua:                          { Cue = "/VO/ZagreusHome_2960", Portrait = "Portrait_Zag_Defiant_01", Speaker = "CharProtag",
Scripts/NPCData.lua:                                    { Cue = "/VO/ZagreusHome_0960" },
Scripts/NPCData.lua:                            { Cue = "/VO/ZagreusHome_1960", Portrait = "Portrait_Zag_Default_01", Speaker = "CharProtag",
Scripts/NPCData.lua:                                    { Cue = "/VO/ZagreusField_1960" },
Scripts/NPCData.lua:                            AngleTowardTargetId = 546960,
Scripts/RoomDataAsphodel.lua:                   { Cue = "/VO/ZagreusField_3960", RequiredPlayed = { "/VO/ZagreusField_3727" } },
Scripts/RoomDataSurface.lua:                                                    ObstacleIds = { 556524, 556283, 556523, 556957, 556958, 556960 },
Scripts/RoomDataTartarus.lua:                                                           { Id = 410956, OffsetRadius = 10, AngleTowardIdOnStop = 410960, PostArriveWait = 5 },
Scripts/RoomDataTartarus.lua:                           { Cue = "/VO/ZagreusField_4479", RequiredLastLinePlayed = { "/VO/Hades_0960" }, },
Scripts/RoomPresentation.lua:   Teleport({ Id = ScreenAnchors.RunDepthDisplayAnchor, OffsetX = 960, OffsetY = BiomeMapGraphics[currentArea].OffsetY * scaleMap })
Scripts/RoomPresentation.lua:                           X = 960,
Scripts/TraitTrayScripts.lua:                           ScreenAnchors.TraitTrayScreen.BackingDecor = CreateScreenObstacle({ Name = cosmeticData.TraitBackingDecor, Group = "Combat_Menu_TraitTray_Backing", X = 960, Y = 1015 })
Scripts/UIData.lua:                     { Cue = "/VO/Hades_0960", PreLineWait = 0.8, NoTarget = true },
Scripts/WeaponData.lua:                         { OffsetDistance = 960, OffsetScaleY = 0.48, OffsetFromAttacker = true, UseAngleBetween = true },
tr4wzified commented 3 years ago

And for 1920:

$ grep -R "1920" --include=.sjson --include=.lua


Game/GUI/LoadSaveScreen.sjson:      SpacingX = 1920
Game/GUI/MainMenuScreen.sjson:    FreeFormSelectMaxGridDistance = 1920
Game/Obstacles/1_DevObstacles.sjson:          { X = -1920 Y = -1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = -1920 Y = 1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = 1920 Y = 1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = 1920 Y = -1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = -1920 Y = -1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = -1920 Y = 0 }
Game/Obstacles/1_DevObstacles.sjson:          { X = 1920 Y = 0 }
Game/Obstacles/1_DevObstacles.sjson:          { X = 1920 Y = -1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = -1920 Y = 0 }
Game/Obstacles/1_DevObstacles.sjson:          { X = -1920 Y = 1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = 1920 Y = 1080 }
Game/Obstacles/1_DevObstacles.sjson:          { X = 1920 Y = 0 }
Game/Text/de/_NPCData.de.sjson:      Id = "ZagreusHome_1920"
Game/Text/es/_NPCData.es.sjson:      Id = "ZagreusHome_1920"
Game/Text/fr/_NPCData.fr.sjson:      Id = "ZagreusHome_1920"
Game/Text/it/_NPCData.it.sjson:      Id = "ZagreusHome_1920"
Game/Text/ja/_NPCData.ja.sjson:      Id = "ZagreusHome_1920"
Game/Text/ko/_NPCData.ko.sjson:      Id = "ZagreusHome_1920"
Game/Text/pl/_NPCData.pl.sjson:      Id = "ZagreusHome_1920"
Game/Text/pt-BR/_NPCData.pt-BR.sjson:      Id = "ZagreusHome_1920"
Game/Text/ru/_NPCData.ru.sjson:      Id = "ZagreusHome_1920"
Game/Text/zh-CN/_NPCData.zh-CN.sjson:      Id = "ZagreusHome_1920"
Scripts/HeroData.lua:           { Cue = "/VO/ZagreusField_1920", RequiredKillEnemiesFound = true },
Scripts/NPCData.lua:                            { Cue = "/VO/ZagreusHome_1920", Portrait = "Portrait_Zag_Default_01", Speaker = "CharProtag",
tr4wzified commented 3 years ago

More interesting stuff:

$ grep -R "locationX" *

Content/Scripts/MetaUpgrades.lua:       local locationXSpacer = 124
Content/Scripts/MetaUpgrades.lua:       local locationX = -548
Content/Scripts/MetaUpgrades.lua:               CreateTextBox({ Id = components.LocationAlerts.Id, Text = "Location_Tartarus", FontSize = 14, OffsetX = locationX, OffsetY = locationY, Width = 200, Color = Color.White, Font = "AlegreyaSansSCBold", ShadowBlur = 0, ShadowColor = {0,0,0,0}, ShadowOffset={0, 1}, Justification = "Center", VerticalJustification = "Top", TextSymbolScale = 1.0, LuaKey = "TempTextData", LuaValue = { TartarusCleared = tartarusText, AsphodelCleared = asphodelText, ElysiumCleared = elysiumText, StyxCleared = styxText } })
Content/Scripts/MetaUpgrades.lua:       Attach({ Id = components.TartarusClearIndicator.Id, DestinationId = components.LocationAlerts.Id, OffsetX = locationX + checkMarkOffsetX, OffsetY = locationMarkY + checkMarkOffsetY})
Content/Scripts/MetaUpgrades.lua:       locationX = locationX + locationXSpacer
Content/Scripts/MetaUpgrades.lua:               CreateTextBox({ Id = components.LocationAlerts.Id, Text = "Location_Asphodel", FontSize = 14, OffsetX = locationX, OffsetY = locationY, Width = 200, Color = Color.White, Font = "AlegreyaSansSCBold", ShadowBlur = 0, ShadowColor = {0,0,0,0}, ShadowOffset={0, 1}, Justification = "Center", VerticalJustification = "Top", TextSymbolScale = 1.0, LuaKey = "TempTextData", LuaValue = { TartarusCleared = tartarusText, AsphodelCleared = asphodelText, ElysiumCleared = elysiumText, StyxCleared = styxText } })
Content/Scripts/MetaUpgrades.lua:       Attach({ Id = components.AsphodelClearIndicator.Id, DestinationId = components.LocationAlerts.Id, OffsetX = locationX + checkMarkOffsetX, OffsetY = locationMarkY + checkMarkOffsetY})
Content/Scripts/MetaUpgrades.lua:       locationX = locationX + locationXSpacer
Content/Scripts/MetaUpgrades.lua:               CreateTextBox({ Id = components.LocationAlerts.Id, Text = "Location_Elysium", FontSize = 14, OffsetX = locationX,       OffsetY = locationY, Width = 200, Color = Color.White, Font = "AlegreyaSansSCBold", ShadowBlur = 0, ShadowColor = {0,0,0,0}, ShadowOffset={0, 1}, Justification = "Center", VerticalJustification = "Top", TextSymbolScale = 1.0, LuaKey = "TempTextData", LuaValue = { TartarusCleared = tartarusText, AsphodelCleared = asphodelText, ElysiumCleared = elysiumText, StyxCleared = styxText } })
Content/Scripts/MetaUpgrades.lua:       Attach({ Id = components.ElysiumClearIndicator.Id, DestinationId = components.LocationAlerts.Id, OffsetX = locationX + checkMarkOffsetX, OffsetY = locationMarkY + checkMarkOffsetY})
Content/Scripts/MetaUpgrades.lua:       locationX = locationX + locationXSpacer
Content/Scripts/MetaUpgrades.lua:               CreateTextBox({ Id = components.LocationAlerts.Id, Text = "Location_Styx_Short", FontSize = 14, OffsetX = locationX, OffsetY = locationY, Width = 150, Color = Color.White, Font = "AlegreyaSansSCBold", ShadowBlur = 0, ShadowColor = {0,0,0,0}, ShadowOffset={0, 1}, Justification = "Center", VerticalJustification = "Top", TextSymbolScale = 1.0, LuaKey = "TempTextData", LuaValue = { TartarusCleared = tartarusText, AsphodelCleared = asphodelText, ElysiumCleared = elysiumText, StyxCleared = styxText } })
Content/Scripts/MetaUpgrades.lua:       Attach({ Id = components.StyxClearIndicator.Id, DestinationId = components.LocationAlerts.Id, OffsetX = locationX + checkMarkOffsetX, OffsetY = locationMarkY + checkMarkOffsetY})
Content/Scripts/Powers.lua:     local locationX = args.LocationX
Content/Scripts/Powers.lua:             if not locationX or not locationY then
Content/Scripts/Powers.lua:                     locationX = location.X + offset.X
Content/Scripts/Powers.lua:             if locationX and locationY then
Content/Scripts/Powers.lua:                     local dropLocation = SpawnObstacle({ Name = "InvisibleTarget", LocationX = locationX, LocationY = locationY })
Content/Scripts/TraitScripts.lua:function FireAmmoDeathWeapon( args, locationX, locationY )
Content/Scripts/TraitScripts.lua:       local dropLocation = SpawnObstacle({ Name = "InvisibleTarget", LocationX = locationX, LocationY = locationY })
Content/Scripts/UIPresentation.lua:     local locationX = ScreenCenterX
Content/Scripts/UIPresentation.lua:     local locationTextBG = CreateScreenObstacle({ Name = "BlankObstacle", X = locationX, Y = locationY, Group = layer, Scale = args.Scale or 1 })
tr4wzified commented 3 years ago

Different approach. Gonna modify the CreateScreenObstacle method like this:

function CreateScreenObstacle( params )

    if params.Group == nil then
        params.Group = "Events"
    end
    if params.X == nil and params.Y == nil then
        params.X = ScreenCenterX
        params.Y = ScreenCenterY
    end
    if params.Scale == nil then
        params.Scale = 1.0
    end

    -- trawzifieds Ultrawide Patch
    local sideAlignmentThreshold = 280
    local originalInternalWidth = ScreenCenterX * 2
    local newInternalWidth = 2580
    local newCenterX = newInternalWidth / 2
    local maxCenterPosition = originalInternalWidth - sideAlignmentThreshold
    if params.Position == nil then
        if params.X >= sideAlignmentThreshold and params.X <= maxCenterPosition then
            params.X = params.X - ScreenCenterX + newCenterX
        elseif params.X > originalInternalWidth - sideAlignmentThreshold then
            params.X = newInternalWidth + params.X - originalInternalWidth
        end
    elseif params.Position == "Center" then
        params.X = params.X - ScreenCenterX + newCenterX
    elseif params.Position == "Right" then
        params.X = newInternalWidth + params.X - originalInternalWidth
    end

    -- end Ultrawide Patch

    local obstacleId = SpawnObstacle({ Name = params.Name, Group = params.Group, OffsetX = params.X, OffsetY = params.Y, UseScreenLocation = true, SortById = true, TriggerOnSpawn = false })
    if params.Scale ~= 1.0 then
        SetScale({ Id = obstacleId, Fraction = params.Scale })
    end

    return obstacleId

end

And then edit all references to CreateScreenObstacle that are still broken to use Center / Right positional formulas.

$ grep -R "CreateScreenObstacle" *

Scripts/AwardMenuScripts.lua:           ScreenAnchors.AwardMenuScreen.HoverFrame = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_Additive" })
Scripts/AwardMenuScripts.lua:           ScreenAnchors.AwardMenuScreen[frameKey] = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu" })
Scripts/CodexScripts.lua:                               screen.Components[entryName].UnreadStarId = CreateScreenObstacle({ Name = "CodexUnreadStar", X = entryX + 10, Y = startingEntryY + entryY, Group = "Combat_Menu_Overlay" })
Scripts/CodexScripts.lua:               CodexUI.ChapterArrowId = CreateScreenObstacle({ Name = "BlankObstacle", X = -100, Y = -100, Group = "Combat_Menu_Overlay" })
Scripts/CodexScripts.lua:               CodexUI.EntryArrowId = CreateScreenObstacle({ Name = "BlankObstacle", X = -100, Y = -100, Group = "Combat_Menu_Overlay" })
Scripts/Combat.lua:                             local obstacleId = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = 70 + unit.MaxLastStands * 32, Y = ScreenHeight - 95})
Scripts/Combat.lua:                                                     local screenId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", DestinationId = EnemyHealthDisplayAnchors[storeInUnit.ObjectId] })
Scripts/Combat.lua:                                                     local screenId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", DestinationId = ScreenAnchors.HealthBack, X = 10 + offsetX, Y = ScreenHeight - 50 + offsetY })
Scripts/CombatPresentation.lua:                 backingId = CreateScreenObstacle({ Name = "RuptureSmall", Group = "Combat_Menu", DestinationId = EnemyHealthDisplayAnchors[unitId] })
Scripts/CombatPresentation.lua:                 backingId = CreateScreenObstacle({ Name = "PoisonSmall", Group = "Combat_Menu", DestinationId = EnemyHealthDisplayAnchors[unitId] })
Scripts/CombatPresentation.lua:                 backingId = CreateScreenObstacle({ Name = "ChillSmall", Group = "Combat_Menu", DestinationId = EnemyHealthDisplayAnchors[unitId] })
Scripts/CombatPresentation.lua:         EnemyHealthDisplayAnchors[unit.ObjectId.."vulnerabilityIndicator"] = CreateScreenObstacle({ Name = "HealthbarVulnerability", Group = "Combat_Menu", DestinationId = EnemyHealthDisplayAnchors[unit.ObjectId] })
Scripts/CombatPresentation.lua: state.GunReloadDisplayId = CreateScreenObstacle({ Name = "GunReloadIndicator", Group = "Combat_UI", X = startX + GunUI.ReloadingOffsetX, Y = GunUI.StartY + GunUI.ReloadingOffsetY })
Scripts/CombatPresentation.lua: ScreenAnchors.DeathBackground = ScreenAnchors.DeathBackground or CreateScreenObstacle({ Name = "rectangle01", Group = "Combat_UI", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua:         ScreenAnchors.hadesBloodstoneVignetteAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua: ScreenAnchors.PoisonVignetteAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua: ScreenAnchors.LavaVignetteAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua:         local id = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", Y = ScreenHeight - 70, X = 532 + 40 * #ScreenAnchors.AmmoIndicatorUIReloads })
Scripts/CombatPresentation.lua:         local id = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", Y = ScreenHeight - 62 + 35, X = 532 + 40 * #ScreenAnchors.AmmoIndicatorUIReloads })
Scripts/CombatPresentation.lua: ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua: ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua: ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CombatPresentation.lua: ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/CreditsData.lua:                { CreateScreenObstacle = "EndCreditsVignette", X = 0, Y = 540, SkipScreenAnchors = true },
Scripts/CreditsData.lua:                { CreateScreenObstacle = "EndCreditsSupergiantLogo", X = ScreenCenterX - 530, Y = screenTop + 25 },
Scripts/CreditsData.lua:                { CreateScreenObstacle = "EndCreditsVignette", X = 0, Y = 540, SkipScreenAnchors = true },
Scripts/CreditsData.lua:                { CreateScreenObstacle = "EndCreditsVignette", X = 0, Y = 540, SkipScreenAnchors = true },
Scripts/CreditsData.lua:                { CreateScreenObstacle = "EndCreditsVignette", X = 0, Y = 540, SkipScreenAnchors = true },
Scripts/CreditsData.lua:                { CreateScreenObstacle = "EndCreditsVignette", X = 0, Y = 540, SkipScreenAnchors = true },
Scripts/CreditsScripts.lua:             if creditsData.CreateScreenObstacle ~= nil then
Scripts/CreditsScripts.lua:                     creditsData.Id = CreateScreenObstacle({ Name = creditsData.CreateScreenObstacle, Group = "Combat_UI", X = creditsData.X, Y = creditsData.Y })
Scripts/CreditsScripts.lua:                     creditsData.Id = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = offsetX, Y = offsetY })
Scripts/EventPresentation.lua:                  ScreenAnchors.MoneyDeltaMoveTargetId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + MoneyUI.StartSpacer + digitSpacer, Y = ConsumableUI.StartY + ConsumableUI.SpacerY * 0 })
Scripts/EventPresentation.lua:          ScreenAnchors.MoneyDelta = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + MoneyUI.StartSpacer + digitSpacer, Y = ConsumableUI.StartY + ConsumableUI.SpacerY * 0 })
Scripts/EventPresentation.lua:  local backingId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", X = ScreenCenterX , Y = ScreenCenterY + backingStartYOffset })
Scripts/EventPresentation.lua:  ScreenAnchors.DialogueBackgroundId = CreateScreenObstacle({ Name = "DialogueBackground", X = ScreenCenterX, Y = ScreenCenterY, Group = "Combat_Menu" })
Scripts/EventPresentation.lua:  ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Events", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/Narrative.lua:                  screen.PortraitId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX - 490, Y = ScreenCenterY + 105, Group = "Combat_Menu" })
Scripts/Narrative.lua:          anchorId = CreateScreenObstacle({ Name = line.BoxAnimation or "DialogueSpeechBubble", X = ScreenCenterX + (line.BoxOffsetX or narrationBoxOffsetX), Y = ScreenCenterY + (line.BoxOffsetY or 264), Group = "Combat_Menu" })
Scripts/Narrative.lua:          speakerNameId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX - 46, Y = ScreenCenterY + 123, Group = "Combat_Menu" })
Scripts/Narrative.lua:          anchorId = CreateScreenObstacle({ Name = "NarrationBubble", X = ScreenCenterX + (line.BoxOffsetX or narrationBoxOffsetX), Y = ScreenCenterY + (line.BoxOffsetY or 304), Group = "Combat_Menu" })
Scripts/Narrative.lua:  screen.PromptId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX + 390 + narrationBoxOffsetX, Y = ScreenCenterY + promptOffsetY, Group = "Combat_Menu" })
Scripts/Narrative.lua:          choiceBackground = CreateScreenObstacle({ Name = "DialogueChoiceBubble", X = ScreenCenterX + narrationBoxOffsetX + 8, Y = ScreenCenterY + 280, Group = "Combat_Menu" })
Scripts/Narrative.lua:                          local choiceButtonId = CreateScreenObstacle({ Name = "ButtonDialogueChoice", X = choiceLocationX, Y = choiceLocationY, Group = "Combat_Menu" })
Scripts/Objectives.lua:                 ScreenAnchors.Objectives[k] = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI_World", X = 140, Y = startOffsetY })
Scripts/Powers.lua:             local screenId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", DestinationId = ScreenAnchors.HealthBack, X = 10 + offsetX, Y = ScreenHeight - 50 + offsetY })
Scripts/Powers.lua:             local screenId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", DestinationId = ScreenAnchors.HealthBack, X = 10 + offsetX, Y = ScreenHeight - 50 + offsetY })
Scripts/RoomManager.lua:        ScreenAnchors.Vignette = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Vignette" })
Scripts/RoomPresentation.lua:   ScreenAnchors.Transition = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Overlay" })
Scripts/RoomPresentation.lua:   ScreenAnchors.Transition = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Overlay" })
Scripts/RoomPresentation.lua:   ScreenAnchors.Transition = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Combat_Menu_TraitTray" })
Scripts/RoomPresentation.lua:   ScreenAnchors.Transition = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Combat_Menu_TraitTray" })
Scripts/RoomPresentation.lua:   ScreenAnchors.Transition = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Overlay" })
Scripts/RoomPresentation.lua:   ScreenAnchors.Transition = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Overlay" })
Scripts/RoomPresentation.lua:   ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local hadesOverlay = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX - 420, Y = ScreenCenterY, Group = "Events" })
Scripts/RoomPresentation.lua:   ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Scripting", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local hadesOverlay = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX - 420, Y = ScreenCenterY, Group = "Overlay" })
Scripts/RoomPresentation.lua:   ScreenAnchors.DeathBackground = CreateScreenObstacle({ Name = "rectangle01", Group = "Combat_UI", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.DeathBackground = CreateScreenObstacle({ Name = "rectangle01", Group = "Combat_UI", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local blackScreenId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local backgroundId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local promptId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY + 350 })
Scripts/RoomPresentation.lua:   local blackScreenId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local backgroundId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.OverlookText = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Combat_Menu_Overlay" })
Scripts/RoomPresentation.lua:   ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Events", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Events", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Events", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.FullscreenAlertFxAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Events", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.RunDepthDisplayAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Overlay", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.BiomePresentation = CreateScreenObstacle({ Name = "rectangle01", Group = "Combat_UI", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   ScreenAnchors.PortraitDisplayAnchor = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Overlay", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local blackScreenId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:   local portraitId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY, Group = "Overlay" })
Scripts/RoomPresentation.lua:   local blackScreenId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/RoomPresentation.lua:           animationData.Id = CreateScreenObstacle({ Name = "BlankObstacle", X = animationData.X or ScreenCenterX , Y = animationData.Y or ScreenCenterY, Group = animationData.Group or "Events" })
Scripts/RoomPresentation.lua:   local textAnchorId = CreateScreenObstacle({ Name = "BlankObstacle", X = 88, Y = 905, Group = "Overlay" })
Scripts/TraitTrayScripts.lua:           ScreenAnchors.RunDepthId = CreateScreenObstacle({ Name = "BlankObstacle", X = UIData.CurrentRunDepth.X, Y = UIData.CurrentRunDepth.Y, Group = "Combat_Menu_Overlay" })
Scripts/TraitTrayScripts.lua:                   local traitFrameId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_TraitTray"  })
Scripts/TraitTrayScripts.lua:                           ScreenAnchors.TraitTrayScreen.BackingDecor = CreateScreenObstacle({ Name = cosmeticData.TraitBackingDecor, Group = "Combat_Menu_TraitTray_Backing", X = 960, Y = 1015 })
Scripts/TraitTrayScripts.lua:   ScreenAnchors.TraitTrayScreen.PrimaryFrameBacking = CreateScreenObstacle({ Name = obstacleName, Group = "Combat_Menu_TraitTray_Backing", X = CombatUI.TraitUIStart, Y = locationY})
Scripts/TraitTrayScripts.lua:           ScreenAnchors.TraitTrayScreen.BadgeNamePlateId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_Overlay", X = 210, Y = 1052 })
Scripts/TraitTrayScripts.lua:   local attackIcon = CreateScreenObstacle({ Name = "TraitTray_SlotIcon_Attack", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:   local secondaryIcon = CreateScreenObstacle({ Name = "TraitTray_SlotIcon_Secondary", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:   local rangedIcon = CreateScreenObstacle({ Name = "TraitTray_SlotIcon_Ranged", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:   local dashIcon = CreateScreenObstacle({ Name = "TraitTray_SlotIcon_Dash", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:           local wrathIcon = CreateScreenObstacle({ Name = "TraitTray_SlotIcon_Wrath", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:           local frameIcon = CreateScreenObstacle({ Name = "TraitTray_SlotFrame", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:           local frameIcon = CreateScreenObstacle({ Name = "TraitTray_KeepsakeBacking", Group = "Combat_Menu_TraitTray_Backing", X = TraitUI.IconStartX, Y = locationY})
Scripts/TraitTrayScripts.lua:           ScreenAnchors.TraitTrayScreen.HoverFrame = CreateScreenObstacle({ Name = "TraitTray_Highlight", Group = "Combat_Menu_TraitTray_Additive" })
Scripts/UIPresentation.lua:     local locationTextBG = CreateScreenObstacle({ Name = "BlankObstacle", X = locationX, Y = locationY, Group = layer, Scale = args.Scale or 1 })
Scripts/UIPresentation.lua:     local locationTextBG = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY - 420, Group = layer, })
Scripts/UIPresentation.lua:     local iconBackingId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY - 315, Group = layer })
Scripts/UIPresentation.lua:     local iconId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY - 315, Group = layer })
Scripts/UIPresentation.lua:             supertitleTextId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY - 400 + textYOffset + supertitleYOffset, Group = layer, })
Scripts/UIPresentation.lua:             blackScreenId = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY })
Scripts/UIPresentation.lua:             remBG = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY, Group = "Overlay" })
Scripts/UIPresentation.lua:             hadesOverlay = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX - 420, Y = ScreenCenterY, Group = "Overlay" })
Scripts/UIPresentation.lua:                     animationData.Id = CreateScreenObstacle({ Name = "BlankObstacle", X = animationData.X or ScreenCenterX , Y = animationData.Y or ScreenCenterY, Group = animationData.Group or "Events" })
Scripts/UIPresentation.lua:     local promptId = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX , Y = ScreenCenterY + 270, Group = "Overlay" })
Scripts/UIPresentation.lua:     -- local remBG_Overlay = CreateScreenObstacle({ Name = "rectangle01", X = ScreenCenterX, Y = ScreenCenterY + 280, Group = "Overlay" })
Scripts/UIPresentation.lua:     local toastAnchor = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX, Y = 770, Group = "Combat_UI", })
Scripts/UIPresentation.lua:     local toastAnchor = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX + 400, Y = 770 })
Scripts/UIPresentation.lua:     local toastAnchor = CreateScreenObstacle({ Name = "BlankObstacle", X = ScreenCenterX + 400, Y = 770 })
Scripts/UIPresentation.lua:     local target2 = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Overlay" })
Scripts/UIPresentation.lua:     local target = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Overlay" })
Scripts/UIScripts.lua:          local obstacleId = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = 70 + i * 32, Y = ScreenHeight - 95})
Scripts/UIScripts.lua:          ScreenAnchors.Shadow = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI_Backing", X = 0, Y = ScreenHeight })
Scripts/UIScripts.lua:  ScreenAnchors.HealthBack = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = 10 - CombatUI.FadeDistance.Health, Y = ScreenHeight - 50})
Scripts/UIScripts.lua:  ScreenAnchors.HealthRally = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = 10 - CombatUI.FadeDistance.Health, Y = ScreenHeight - 50})
Scripts/UIScripts.lua:  ScreenAnchors.HealthFill = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = 10 - CombatUI.FadeDistance.Health, Y = ScreenHeight - 50})
Scripts/UIScripts.lua:  ScreenAnchors.HealthFlash =  CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = 10 - CombatUI.FadeDistance.Health, Y = ScreenHeight - 50})
Scripts/UIScripts.lua:          ScreenAnchors.BadgeId =  CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = 44, Y = ScreenHeight - 60, Scale = 0.5 })
Scripts/UIScripts.lua:                  local screenId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", DestinationId = ScreenAnchors.HealthBack, X = 10 + offsetX, Y = ScreenHeight - 50 + offsetY })
Scripts/UIScripts.lua:                          local tempObstacleId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + ConsumableUI.SpacerX * 2 , Y = offsetY or 0 })
Scripts/UIScripts.lua:          anchorId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + ConsumableUI.SpacerX * 2  + CombatUI.FadeDistance.ShrinePoint, Y = offsetY or 0 })
Scripts/UIScripts.lua:                  local tempObstacleId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + ConsumableUI.SpacerX * 2 , Y = offsetY or 0 })
Scripts/UIScripts.lua:                  local tempObstacleId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + ConsumableUI.SpacerX * 2 , Y = offsetY or 0 })
Scripts/UIScripts.lua:  ScreenAnchors.Reroll = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + ConsumableUI.SpacerX * 2  + CombatUI.FadeDistance.ShrinePoint, Y = offsetY or 0 })
Scripts/UIScripts.lua:  ScreenAnchors.MoneyIcon = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = ConsumableUI.StartX + CombatUI.FadeDistance.Money, Y = offsetY })
Scripts/UIScripts.lua:          ScreenAnchors.ResourceDeltaIds[resourceName] = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI" })
Scripts/UIScripts.lua:  ScreenAnchors.AmmoIndicatorUI = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = 512, Y = ScreenHeight - 62 })
Scripts/UIScripts.lua:  ScreenAnchors.GunUI = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = GunUI.StartX, Y = GunUI.StartY })
Scripts/UIScripts.lua:  ScreenAnchors.SuperMeterIcon = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = 10 - CombatUI.FadeDistance.Super, Y = ScreenHeight - 10})
Scripts/UIScripts.lua:  ScreenAnchors.SuperMeterCap = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", X = 10 - CombatUI.FadeDistance.Super, Y = ScreenHeight - 10})
Scripts/UIScripts.lua:  ScreenAnchors.SuperMeterHint = CreateScreenObstacle({ Name = "BlankObstacle", X = 10 , Y = ScreenHeight - 10, Group = "Combat_Menu_Additive"})
Scripts/UIScripts.lua:          table.insert( ScreenAnchors.SuperPipBackingIds, CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_UI", X = SuperUI.PipXStart + ( i - 1 ) * pipXSize - CombatUI.FadeDistance.Super, Y = SuperUI.PipY}) )
Scripts/UIScripts.lua:          table.insert( ScreenAnchors.SuperPipIds, CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_Additive", X = SuperUI.PipXStart + ( i - 1 ) * pipXSize - CombatUI.FadeDistance.Super, Y = SuperUI.PipY}) )
Scripts/UIScripts.lua:          local frameIcon = CreateScreenObstacle({ Name = "TraitTray_EmptyBacking", Group = "Combat_UI_Backing",
Scripts/UIScripts.lua:                  local traitFrameId = CreateScreenObstacle({ Name = "BaseBoonFrame", Group = "Combat_UI"  })
Scripts/UIScripts.lua:  trait.TraitInfoCardId = CreateScreenObstacle({ Name = "TraitTray_LevelBacking", Group = layer})
Scripts/UIScripts.lua:          local traitFrameId = CreateScreenObstacle({ Name = "BlankObstacle", Group = groupName })
Scripts/UIScripts.lua:  trait.AnchorId = CreateScreenObstacle({ Name = "BaseBoonIcon", X = offsetX, Y = offsetY, Group = "Combat_UI" })
Scripts/UIScripts.lua:  local traitFrameId = CreateScreenObstacle({ Name = "BaseBoonFrame", Group = "Combat_UI"  })
Scripts/UIScripts.lua:  ScreenAnchors.HealthShroudAnchor = CreateScreenObstacle({Name = "BlankObstacle", X = ScreenCenterX, Y = ScreenCenterY, Group = "Combat_UI_World" })
Scripts/UIScripts.lua:  ScreenAnchors.UsePrompts[objectId] = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu", X = UIData.UsePrompt.X, Y = UIData.UsePrompt.Y })
Scripts/UIScripts.lua:  component.Id = CreateScreenObstacle( params )
Scripts/UIScripts.lua:function CreateScreenObstacle( params )
Scripts/UIScripts.lua:  ScreenAnchors.BossHealthBack = CreateScreenObstacle({Name = "BossHealthBarBack", Group = "Combat_UI_Backing", X = xOffset , Y = 70 + yOffset})
Scripts/UIScripts.lua:  ScreenAnchors.BossHealthFill = CreateScreenObstacle({Name = "BossHealthBarFill", Group = "Combat_UI", X = xOffset , Y = 72 + yOffset})
Scripts/UIScripts.lua:  local fallOffBar = CreateScreenObstacle({Name = "BossHealthBarFillFalloff", Group = "Combat_UI_Backing", X = xOffset , Y = 72 + yOffset})
Scripts/UIScripts.lua:  ScreenAnchors.BossRageTitle = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = ScreenCenterX, Y = 130, Scale = 1.0})
Scripts/UIScripts.lua:  ScreenAnchors.BossRageBack = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = ScreenCenterX, Y = 150, Scale = 0.5})
Scripts/UIScripts.lua:  ScreenAnchors.BossRageFill = CreateScreenObstacle({Name = "BlankObstacle", Group = "Combat_UI", X = ScreenCenterX, Y = 152, Scale = 0.5})
Scripts/UIScripts.lua:          ScreenAnchors.ShrinePointIconId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_TraitTray", X = 26, Y = 54 })
Scripts/UpgradeChoice.lua:              local sacrificeIconId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_Overlay", DestinationId = existingTraitData.AnchorId })
Scripts/UpgradeChoice.lua:              local sacrificeFrameId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_Overlay", DestinationId = existingTraitData.AnchorId })
Scripts/UpgradeChoice.lua:              local traitFrameId = CreateScreenObstacle({ Name = "BlankObstacle", Group = "Combat_Menu_Overlay"  })
tr4wzified commented 3 years ago

Only things left are Prophecy Text, white screen fadeout to Hades boss fight and maybe main menu (probably cannot be scaled, character art is tied to logo and background etc while the animations are not)