1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-07 13:49:33 -05:00

HUD: add round chalk images from MOTD to all maps

This commit is contained in:
Jbleezy 2024-06-11 00:36:36 -07:00
parent 5b7fb02463
commit eab380b174
4 changed files with 520 additions and 2 deletions

View File

@ -186,6 +186,7 @@
* Moved keyboard & mouse dpad icons to the same position as controller dpad icons
* Grenade icons no longer fade based on how many the player currently has
* Ammo counter no longer shows while scoped on all maps
* Added round chalk images from Mob of the Dead to all maps
* Added proper game mode and map name to scoreboard
* Added icons on scoreboard when player is downed, bled out, in Who's Who mode, in afterlife, or has the meat
* Increased waypoint offset from top of screen

View File

@ -40,6 +40,11 @@ init()
precacheshader("white_waypoint_grab");
precacheshader("white_waypoint_kill");
precacheshader("white_waypoint_escort");
precacheshader("chalkmarks_hellcatraz_1");
precacheshader("chalkmarks_hellcatraz_2");
precacheshader("chalkmarks_hellcatraz_3");
precacheshader("chalkmarks_hellcatraz_4");
precacheshader("chalkmarks_hellcatraz_5");
level._effect["human_disappears"] = loadfx("maps/zombie/fx_zmb_returned_spawn_puff");
@ -286,10 +291,10 @@ grief_score_hud_set_player_count(team, num = get_number_of_valid_players_team(te
level.grief_score_hud[team1].player_count[team].alpha = 1;
offset = (4 - num) * (level.grief_score_hud[team1].player_count[team].width / 9);
offset = (4 - num) * (level.grief_score_hud[team1].player_count[team].width / 8);
level.grief_score_hud[team1].player_count[team].x = level.grief_score_hud[team1].player_count[team].og_x + offset;
level.grief_score_hud[team1].player_count[team] setShader("hud_chalk_" + num, level.grief_score_hud[team1].player_count[team].width, level.grief_score_hud[team1].player_count[team].height);
level.grief_score_hud[team1].player_count[team] setShader("chalkmarks_hellcatraz_" + num, level.grief_score_hud[team1].player_count[team].width, level.grief_score_hud[team1].player_count[team].height);
}
}

View File

@ -0,0 +1,501 @@
CoD.RoundStatus = {}
CoD.RoundStatus.FactionIconLeftOffset = 7
CoD.RoundStatus.FactionIconSize = 91
CoD.RoundStatus.RoundIconLeftOffset = 0
CoD.RoundStatus.TextLeftOffset = 7
CoD.RoundStatus.LeftOffset = 0
CoD.RoundStatus.ChalkTop = -96
CoD.RoundStatus.ChalkSize = 96
CoD.RoundStatus.SpecialLeftOffset = 3
CoD.RoundStatus.SpecialRoundIconSize = 85
CoD.RoundStatus.RoundCenterHeight = 80
CoD.RoundStatus.Chalks = {}
CoD.RoundStatus.FirstRoundDuration = 1000
CoD.RoundStatus.FirstRoundIdleDuration = 3000
CoD.RoundStatus.FirstRoundFallDuration = 2000
CoD.RoundStatus.RoundPulseDuration = 500
CoD.RoundStatus.RoundPulseTimes = 2
CoD.RoundStatus.RoundPulseTimesDelta = 5
CoD.RoundStatus.RoundPulseTimesMin = 2
CoD.RoundStatus.RoundMax = 100
CoD.RoundStatus.ChalkFontName = "Morris"
LUI.createMenu.RoundStatus = function(LocalClientIndex)
local RoundStatusWidget = CoD.Menu.NewSafeAreaFromState("RoundStatus", LocalClientIndex)
CoD.RoundStatus.DefaultColor = {
r = 0.21,
g = 0,
b = 0,
}
CoD.RoundStatus.AlternatePulseColor = {
r = 1,
g = 1,
b = 1,
}
CoD.RoundStatus.Chalks[1] = RegisterMaterial("chalkmarks_hellcatraz_1")
CoD.RoundStatus.Chalks[2] = RegisterMaterial("chalkmarks_hellcatraz_2")
CoD.RoundStatus.Chalks[3] = RegisterMaterial("chalkmarks_hellcatraz_3")
CoD.RoundStatus.Chalks[4] = RegisterMaterial("chalkmarks_hellcatraz_4")
CoD.RoundStatus.Chalks[5] = RegisterMaterial("chalkmarks_hellcatraz_5")
RoundStatusWidget.gameTypeGroup = UIExpression.DvarString(nil, "ui_zm_gamemodegroup")
RoundStatusWidget.gameType = UIExpression.DvarString(nil, "ui_gametype")
RoundStatusWidget.startRound = Engine.GetGametypeSetting("startRound")
if RoundStatusWidget.gameTypeGroup == CoD.Zombie.GAMETYPEGROUP_ZENCOUNTER then
CoD.RoundStatus.LeftOffset = CoD.RoundStatus.FactionIconLeftOffset
else
CoD.RoundStatus.LeftOffset = CoD.RoundStatus.RoundIconLeftOffset
end
RoundStatusWidget.scaleContainer = CoD.SplitscreenScaler.new(nil, CoD.Zombie.SplitscreenMultiplier)
RoundStatusWidget.scaleContainer:setLeftRight(true, false, 0, 0)
RoundStatusWidget.scaleContainer:setTopBottom(false, true, 0, 0)
RoundStatusWidget:addElement(RoundStatusWidget.scaleContainer)
local f1_local1, f1_local2, f1_local3, f1_local4 = Engine.GetUserSafeAreaForController(LocalClientIndex)
RoundStatusWidget.safeAreaWidth = (f1_local3 - f1_local1) / RoundStatusWidget.scaleContainer.scale
RoundStatusWidget.safeAreaHeight = (f1_local4 - f1_local2) / RoundStatusWidget.scaleContainer.scale
RoundStatusWidget.chalkCenterTop = -RoundStatusWidget.safeAreaHeight * 0.5 - CoD.RoundStatus.ChalkSize * 1.5
RoundStatusWidget.roundContainer = LUI.UIElement.new()
RoundStatusWidget.roundContainer:setLeftRight(true, false, 0, 0)
RoundStatusWidget.roundContainer:setTopBottom(false, true, 0, 0)
RoundStatusWidget.scaleContainer:addElement(RoundStatusWidget.roundContainer)
RoundStatusWidget.roundIconContainer = LUI.UIElement.new()
RoundStatusWidget.roundIconContainer:setLeftRight(true, false, 0, 0)
RoundStatusWidget.roundIconContainer:setTopBottom(false, true, 0, 0)
RoundStatusWidget.scaleContainer:addElement(RoundStatusWidget.roundIconContainer)
local f1_local5 = RoundStatusWidget.safeAreaWidth * 0.5
RoundStatusWidget.roundTextCenter = LUI.UIText.new()
RoundStatusWidget.roundTextCenter:setLeftRight(true, false, f1_local5 * 0.5 + CoD.RoundStatus.ChalkSize * -0.5, f1_local5 * 0.5 + CoD.RoundStatus.ChalkSize * 0.5)
RoundStatusWidget.roundTextCenter:setTopBottom(false, true, RoundStatusWidget.chalkCenterTop, RoundStatusWidget.chalkCenterTop + CoD.RoundStatus.RoundCenterHeight)
RoundStatusWidget.roundTextCenter:setFont(CoD.fonts[CoD.RoundStatus.ChalkFontName])
RoundStatusWidget.roundTextCenter:setAlignment(LUI.Alignment.Center)
RoundStatusWidget.roundTextCenter:setAlpha(0)
RoundStatusWidget.roundTextCenter:registerEventHandler("transition_complete_first_round", CoD.RoundStatus.ShowFirstRoundFinish)
RoundStatusWidget.roundTextCenter:registerEventHandler("transition_complete_idle", CoD.RoundStatus.ShowFirstRoundTextCenterIdleFinish)
RoundStatusWidget.roundContainer:addElement(RoundStatusWidget.roundTextCenter)
RoundStatusWidget.roundText = LUI.UIText.new()
RoundStatusWidget.roundText:setLeftRight(true, false, CoD.RoundStatus.TextLeftOffset, CoD.RoundStatus.TextLeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundText:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundText:setFont(CoD.fonts[CoD.RoundStatus.ChalkFontName])
RoundStatusWidget.roundText:setAlpha(0)
RoundStatusWidget.roundText:registerEventHandler("transition_complete_first_round", CoD.RoundStatus.ShowFirstRoundFinish)
RoundStatusWidget.roundText:registerEventHandler("transition_complete_idle", CoD.RoundStatus.ShowFirstRoundTextIdleFinish)
RoundStatusWidget.roundText:registerEventHandler("transition_complete_round_switch_show", CoD.RoundStatus.RoundSwitchShowFinish)
RoundStatusWidget.roundText:registerEventHandler("transition_complete_round_switch_hide", CoD.RoundStatus.RoundSwitchHideFinish)
RoundStatusWidget.roundContainer:addElement(RoundStatusWidget.roundText)
RoundStatusWidget.roundChalk1 = LUI.UIImage.new()
RoundStatusWidget.roundChalk1:setLeftRight(true, false, CoD.RoundStatus.LeftOffset, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk1:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[1])
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk1:registerEventHandler("transition_complete_first_round", CoD.RoundStatus.ShowFirstRoundFinish)
RoundStatusWidget.roundChalk1:registerEventHandler("transition_complete_idle", CoD.RoundStatus.ShowFirstRoundChalk1IdleFinish)
RoundStatusWidget.roundChalk1:registerEventHandler("transition_complete_round_switch_show", CoD.RoundStatus.RoundSwitchShowFinish)
RoundStatusWidget.roundChalk1:registerEventHandler("transition_complete_round_switch_hide", CoD.RoundStatus.RoundSwitchHideFinish)
RoundStatusWidget.roundContainer:addElement(RoundStatusWidget.roundChalk1)
RoundStatusWidget.roundChalk2 = LUI.UIImage.new()
RoundStatusWidget.roundChalk2:setLeftRight(true, false, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget.roundChalk2:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk2:setImage(CoD.RoundStatus.Chalks[1])
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundChalk2:registerEventHandler("transition_complete_first_round", CoD.RoundStatus.ShowFirstRoundFinish)
RoundStatusWidget.roundChalk2:registerEventHandler("transition_complete_idle", CoD.RoundStatus.ShowFirstRoundChalk2IdleFinish)
RoundStatusWidget.roundChalk2:registerEventHandler("transition_complete_round_switch_show", CoD.RoundStatus.RoundSwitchShowFinish)
RoundStatusWidget.roundChalk2:registerEventHandler("transition_complete_round_switch_hide", CoD.RoundStatus.RoundSwitchHideFinish)
RoundStatusWidget.roundContainer:addElement(RoundStatusWidget.roundChalk2)
RoundStatusWidget.factionIcon = LUI.UIImage.new()
RoundStatusWidget.factionIcon:setLeftRight(true, false, CoD.RoundStatus.FactionIconLeftOffset, CoD.RoundStatus.FactionIconLeftOffset + CoD.RoundStatus.FactionIconSize)
RoundStatusWidget.factionIcon:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.FactionIconSize)
RoundStatusWidget.factionIcon:setAlpha(0)
RoundStatusWidget.scaleContainer:addElement(RoundStatusWidget.factionIcon)
RoundStatusWidget:registerEventHandler("hud_update_refresh", CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_HUD_VISIBLE, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_IS_PLAYER_IN_AFTERLIFE, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_EMP_ACTIVE, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_UI_ACTIVE, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_SPECTATING_CLIENT, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_SCOREBOARD_OPEN, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_IN_VEHICLE, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_IN_GUIDED_MISSILE, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_IN_REMOTE_KILLSTREAK_STATIC, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_IS_SCOPED, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_IS_FLASH_BANGED, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_DEMO_CAMERA_MODE_MOVIECAM, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_bit_" .. CoD.BIT_DEMO_ALL_GAME_HUD_HIDDEN, CoD.RoundStatus.UpdateVisibility)
RoundStatusWidget:registerEventHandler("hud_update_rounds_played", CoD.RoundStatus.UpdateRoundsPlayed)
RoundStatusWidget:registerEventHandler("hud_update_team_change", CoD.RoundStatus.UpdateTeamChange)
RoundStatusWidget:registerEventHandler("sq_tpo_special_round_active", CoD.RoundStatus.UpdateSpecialRound)
RoundStatusWidget.timebombOverride = false
if CoD.Zombie.IsDLCMap(CoD.Zombie.DLC3Maps) then
RoundStatusWidget:registerEventHandler("time_bomb_lua_override", CoD.RoundStatus.TimeBombRoundAnimationOverride)
end
RoundStatusWidget.visible = true
return RoundStatusWidget
end
CoD.RoundStatus.UpdateVisibility = function(RoundStatusWidget, ClientInstance)
local f2_local0 = ClientInstance.controller
if UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_HUD_VISIBLE) == 1 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IS_PLAYER_IN_AFTERLIFE) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_EMP_ACTIVE) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_DEMO_CAMERA_MODE_MOVIECAM) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_DEMO_ALL_GAME_HUD_HIDDEN) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_UI_ACTIVE) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IN_KILLCAM) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_SCOREBOARD_OPEN) == 0 and (not CoD.IsShoutcaster(f2_local0) or CoD.ExeProfileVarBool(f2_local0, "shoutcaster_teamscore")) and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IN_GUIDED_MISSILE) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IN_REMOTE_KILLSTREAK_STATIC) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IS_SCOPED) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IN_VEHICLE) == 0 and UIExpression.IsVisibilityBitSet(f2_local0, CoD.BIT_IS_FLASH_BANGED) == 0 then
if not RoundStatusWidget.visible then
RoundStatusWidget:setAlpha(1)
RoundStatusWidget.visible = true
end
elseif RoundStatusWidget.visible then
RoundStatusWidget:setAlpha(0)
RoundStatusWidget.visible = nil
end
end
CoD.RoundStatus.UpdateRoundsPlayed = function(RoundStatusWidget, ClientInstance)
if RoundStatusWidget.gameType == CoD.Zombie.GAMETYPE_ZCLASSIC or RoundStatusWidget.gameType == CoD.Zombie.GAMETYPE_ZSTANDARD or RoundStatusWidget.gameType == CoD.Zombie.GAMETYPE_ZGRIEF then
CoD.RoundStatus.RoundPulseTimes = math.ceil(CoD.RoundStatus.RoundPulseTimesMin + (1 - math.min(ClientInstance.roundsPlayed, CoD.RoundStatus.RoundMax) / CoD.RoundStatus.RoundMax) * CoD.RoundStatus.RoundPulseTimesDelta)
if RoundStatusWidget.startRound == ClientInstance.roundsPlayed then
if ClientInstance.wasDemoJump == false and RoundStatusWidget.timebombOverride == false and CoD.Zombie.AllowRoundAnimation == 1 then
CoD.RoundStatus.ShowFirstRound(RoundStatusWidget, ClientInstance.roundsPlayed)
else
RoundStatusWidget.roundChalk1:setLeftRight(true, false, CoD.RoundStatus.LeftOffset, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk1:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
if not ClientInstance.wasDemoJump then
ClientInstance.wasDemoJump = RoundStatusWidget.timebombOverride == true
end
CoD.RoundStatus.StartNewRound(RoundStatusWidget, ClientInstance.roundsPlayed, ClientInstance.wasDemoJump)
end
elseif RoundStatusWidget.startRound < ClientInstance.roundsPlayed then
RoundStatusWidget.roundChalk1:setLeftRight(true, false, CoD.RoundStatus.LeftOffset, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk1:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk2:setLeftRight(true, false, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget.roundChalk2:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundText:setLeftRight(true, false, CoD.RoundStatus.TextLeftOffset, CoD.RoundStatus.TextLeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundText:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
if not ClientInstance.wasDemoJump then
ClientInstance.wasDemoJump = RoundStatusWidget.timebombOverride == true
end
CoD.RoundStatus.StartNewRound(RoundStatusWidget, ClientInstance.roundsPlayed, ClientInstance.wasDemoJump)
else
CoD.RoundStatus.HideAllRoundIcons(RoundStatusWidget, ClientInstance)
end
else
CoD.RoundStatus.HideAllRoundIcons(RoundStatusWidget, ClientInstance)
end
end
CoD.RoundStatus.ShowFirstRound = function(RoundStatusWidget, FirstRoundValue)
local f4_local0 = Engine.Localize("ZOMBIE_ROUND")
local f4_local1_1, f4_local1_2, f4_local1_3, f4_local1_4 = GetTextDimensions(f4_local0, CoD.fonts[CoD.RoundStatus.ChalkFontName], CoD.RoundStatus.ChalkSize)
local f4_local2 = f4_local1_3
local f4_local3 = RoundStatusWidget.safeAreaWidth * 0.5
local f4_local4 = RoundStatusWidget.chalkCenterTop
RoundStatusWidget.roundTextCenter:setLeftRight(false, true, f4_local3 + CoD.RoundStatus.ChalkSize * -0.5 - f4_local2, f4_local3 + CoD.RoundStatus.ChalkSize * 0.5 + f4_local2)
RoundStatusWidget.roundTextCenter:setText(f4_local0)
RoundStatusWidget.roundTextCenter:setAlpha(1)
RoundStatusWidget.roundTextCenter:beginAnimation("first_round", CoD.RoundStatus.FirstRoundDuration)
RoundStatusWidget.roundTextCenter:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
if FirstRoundValue <= 5 then
if FirstRoundValue == 1 then
local f4_local5 = f4_local3 - 15
RoundStatusWidget.roundChalk1:setLeftRight(true, false, f4_local5, f4_local5 + CoD.RoundStatus.ChalkSize)
else
RoundStatusWidget.roundChalk1:setLeftRight(true, false, f4_local3 + CoD.RoundStatus.ChalkSize * -0.5, f4_local3 + CoD.RoundStatus.ChalkSize * 0.5)
end
RoundStatusWidget.roundChalk1:setTopBottom(false, true, f4_local4 + CoD.RoundStatus.ChalkSize, f4_local4 + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[FirstRoundValue])
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk1:beginAnimation("first_round", CoD.RoundStatus.FirstRoundDuration)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk2:completeAnimation()
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundText:completeAnimation()
RoundStatusWidget.roundText:setAlpha(0)
elseif FirstRoundValue <= 10 then
RoundStatusWidget.roundChalk1:setLeftRight(true, false, f4_local3 - CoD.RoundStatus.ChalkSize, f4_local3)
RoundStatusWidget.roundChalk1:setTopBottom(false, true, f4_local4 + CoD.RoundStatus.ChalkSize, f4_local4 + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[5])
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk1:beginAnimation("first_round", CoD.RoundStatus.FirstRoundDuration)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk2:setLeftRight(true, false, f4_local3, f4_local3 + CoD.RoundStatus.ChalkSize)
RoundStatusWidget.roundChalk2:setTopBottom(false, true, f4_local4 + CoD.RoundStatus.ChalkSize, f4_local4 + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget.roundChalk2:setImage(CoD.RoundStatus.Chalks[FirstRoundValue - 5])
RoundStatusWidget.roundChalk2:setAlpha(1)
RoundStatusWidget.roundChalk2:beginAnimation("first_round", CoD.RoundStatus.FirstRoundDuration)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
else
local f4_local5_1, f4_local5_2, f4_local5_3, f4_local5_4 = GetTextDimensions(FirstRoundValue, CoD.fonts[CoD.RoundStatus.ChalkFontName], CoD.RoundStatus.ChalkSize)
local f4_local6 = f4_local5_3
RoundStatusWidget.roundText:setLeftRight(true, false, f4_local3 + CoD.RoundStatus.ChalkSize * -0.5 - f4_local6, f4_local3 + CoD.RoundStatus.ChalkSize * 0.5 + f4_local6)
RoundStatusWidget.roundText:setTopBottom(false, true, f4_local4 + CoD.RoundStatus.ChalkSize, f4_local4 + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget.roundText:setText(FirstRoundValue)
RoundStatusWidget.roundText:setAlignment(LUI.Alignment.Center)
RoundStatusWidget.roundText:setAlpha(1)
RoundStatusWidget.roundText:beginAnimation("first_round", CoD.RoundStatus.FirstRoundDuration)
RoundStatusWidget.roundText:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
end
end
CoD.RoundStatus.ShowFirstRoundFinish = function(RoundStatusWidget, ClientInstance)
if ClientInstance.interrupted ~= true then
RoundStatusWidget:beginAnimation("idle", CoD.RoundStatus.FirstRoundIdleDuration)
end
end
CoD.RoundStatus.ShowFirstRoundTextCenterIdleFinish = function(RoundStatusWidget, ClientInstance)
if ClientInstance.interrupted ~= true then
RoundStatusWidget:beginAnimation("fade_out", CoD.RoundStatus.FirstRoundDuration)
RoundStatusWidget:setAlpha(0)
end
end
CoD.RoundStatus.ShowFirstRoundTextIdleFinish = function(RoundStatusWidget, ClientInstance)
if ClientInstance.interrupted ~= true then
RoundStatusWidget:beginAnimation("fall_down", CoD.RoundStatus.FirstRoundFallDuration)
RoundStatusWidget:setLeftRight(true, false, CoD.RoundStatus.LeftOffset, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
end
end
CoD.RoundStatus.ShowFirstRoundChalk1IdleFinish = function(RoundStatusWidget, ClientInstance)
if ClientInstance.interrupted ~= true then
RoundStatusWidget:beginAnimation("fall_down", CoD.RoundStatus.FirstRoundFallDuration)
RoundStatusWidget:setLeftRight(true, false, CoD.RoundStatus.LeftOffset, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize)
RoundStatusWidget:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
end
end
CoD.RoundStatus.ShowFirstRoundChalk2IdleFinish = function(RoundStatusWidget, ClientInstance)
if ClientInstance.interrupted ~= true then
RoundStatusWidget:beginAnimation("fall_down", CoD.RoundStatus.FirstRoundFallDuration)
RoundStatusWidget:setLeftRight(true, false, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize, CoD.RoundStatus.LeftOffset + CoD.RoundStatus.ChalkSize * 2)
RoundStatusWidget:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.ChalkSize)
end
end
CoD.RoundStatus.StartNewRound = function(RoundStatusWidget, RoundsPlayed, WasDemoJump)
if RoundsPlayed <= 5 then
RoundStatusWidget.roundChalk1:setAlpha(1)
if WasDemoJump == true then
RoundStatusWidget.roundChalk1:completeAnimation()
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[RoundsPlayed])
else
if RoundsPlayed > 1 then
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[RoundsPlayed - 1])
end
RoundStatusWidget.roundChalk1.pulseTimes = 0
RoundStatusWidget.roundChalk1.material = CoD.RoundStatus.Chalks[RoundsPlayed]
RoundStatusWidget.roundChalk1.showInLastPulse = true
RoundStatusWidget.roundChalk1.showInPreviousPulses = true
RoundStatusWidget.roundChalk1:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
end
RoundStatusWidget.roundChalk2:completeAnimation()
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundText:completeAnimation()
RoundStatusWidget.roundText:setAlpha(0)
elseif RoundsPlayed == 6 then
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[5])
if WasDemoJump == true then
RoundStatusWidget.roundChalk2:setAlpha(1)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk2:setImage(CoD.RoundStatus.Chalks[1])
else
RoundStatusWidget.roundChalk1.pulseTimes = 0
RoundStatusWidget.roundChalk1.material = CoD.RoundStatus.Chalks[5]
RoundStatusWidget.roundChalk1.showInLastPulse = true
RoundStatusWidget.roundChalk1.showInPreviousPulses = true
RoundStatusWidget.roundChalk1:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
RoundStatusWidget.roundChalk2.pulseTimes = 0
RoundStatusWidget.roundChalk2.material = CoD.RoundStatus.Chalks[RoundsPlayed - 5]
RoundStatusWidget.roundChalk2.showInLastPulse = true
RoundStatusWidget.roundChalk2.showInPreviousPulses = false
RoundStatusWidget.roundChalk2:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
end
RoundStatusWidget.roundText:completeAnimation()
RoundStatusWidget.roundText:setAlpha(0)
elseif RoundsPlayed <= 10 then
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[5])
RoundStatusWidget.roundChalk2:setAlpha(1)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk2:setImage(CoD.RoundStatus.Chalks[RoundsPlayed - 5 - 1])
if WasDemoJump == true then
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk2:setAlpha(1)
RoundStatusWidget.roundChalk2:setImage(CoD.RoundStatus.Chalks[RoundsPlayed - 5])
else
RoundStatusWidget.roundChalk1.pulseTimes = 0
RoundStatusWidget.roundChalk1.material = CoD.RoundStatus.Chalks[5]
RoundStatusWidget.roundChalk1.showInLastPulse = true
RoundStatusWidget.roundChalk1.showInPreviousPulses = true
RoundStatusWidget.roundChalk1:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
RoundStatusWidget.roundChalk2.pulseTimes = 0
RoundStatusWidget.roundChalk2.material = CoD.RoundStatus.Chalks[RoundsPlayed - 5]
RoundStatusWidget.roundChalk2.showInLastPulse = true
RoundStatusWidget.roundChalk2.showInPreviousPulses = true
RoundStatusWidget.roundChalk2:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
end
RoundStatusWidget.roundText:completeAnimation()
RoundStatusWidget.roundText:setAlpha(0)
elseif RoundsPlayed == 11 then
RoundStatusWidget.roundChalk1:setAlpha(1)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk1:setImage(CoD.RoundStatus.Chalks[5])
RoundStatusWidget.roundChalk2:setAlpha(1)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundChalk2:setImage(CoD.RoundStatus.Chalks[5])
if WasDemoJump == true then
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundText:setAlpha(1)
RoundStatusWidget.roundText:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundText:setText(RoundsPlayed)
else
RoundStatusWidget.roundChalk1.pulseTimes = 0
RoundStatusWidget.roundChalk1.material = CoD.RoundStatus.Chalks[5]
RoundStatusWidget.roundChalk1.showInLastPulse = false
RoundStatusWidget.roundChalk1.showInPreviousPulses = true
RoundStatusWidget.roundChalk1:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk1:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
RoundStatusWidget.roundChalk2.pulseTimes = 0
RoundStatusWidget.roundChalk2.material = CoD.RoundStatus.Chalks[5]
RoundStatusWidget.roundChalk2.showInLastPulse = false
RoundStatusWidget.roundChalk2.showInPreviousPulses = true
RoundStatusWidget.roundChalk2:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundChalk2:setAlpha(0)
RoundStatusWidget.roundChalk2:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
RoundStatusWidget.roundText.pulseTimes = 0
RoundStatusWidget.roundText.material = RoundsPlayed
RoundStatusWidget.roundText.showInLastPulse = true
RoundStatusWidget.roundText.showInPreviousPulses = false
RoundStatusWidget.roundText:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundText:setAlpha(0)
RoundStatusWidget.roundText:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
end
else
RoundStatusWidget.roundText:setAlpha(1)
RoundStatusWidget.roundText:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
RoundStatusWidget.roundText:setText(RoundsPlayed - 1)
if WasDemoJump == true then
RoundStatusWidget.roundText:setText(RoundsPlayed)
else
RoundStatusWidget.roundText.pulseTimes = 0
RoundStatusWidget.roundText.material = RoundsPlayed
RoundStatusWidget.roundText.showInLastPulse = true
RoundStatusWidget.roundText.showInPreviousPulses = true
RoundStatusWidget.roundText:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
RoundStatusWidget.roundText:setAlpha(0)
RoundStatusWidget.roundText:setRGB(CoD.RoundStatus.AlternatePulseColor.r, CoD.RoundStatus.AlternatePulseColor.g, CoD.RoundStatus.AlternatePulseColor.b)
end
RoundStatusWidget.roundChalk1:completeAnimation()
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk2:completeAnimation()
RoundStatusWidget.roundChalk2:setAlpha(0)
end
end
CoD.RoundStatus.RoundSwitchShowFinish = function(RoundText, ClientInstance)
if ClientInstance.interrupted ~= true then
RoundText.pulseTimes = RoundText.pulseTimes + 1
if RoundText.pulseTimes <= CoD.RoundStatus.RoundPulseTimes then
if RoundText.pulseTimes > CoD.RoundStatus.RoundPulseTimes - 1 then
RoundText:beginAnimation("round_switch_hide", CoD.RoundStatus.FirstRoundDuration)
RoundText:setRGB(CoD.RoundStatus.DefaultColor.r, CoD.RoundStatus.DefaultColor.g, CoD.RoundStatus.DefaultColor.b)
else
RoundText:beginAnimation("round_switch_hide", CoD.RoundStatus.RoundPulseDuration)
end
RoundText:setAlpha(0)
end
end
end
CoD.RoundStatus.RoundSwitchHideFinish = function(RoundText, ClientInstance)
if ClientInstance.interrupted ~= true then
local RoundNumberIsVisible = 1
if RoundText.pulseTimes > CoD.RoundStatus.RoundPulseTimes - 1 then
if type(RoundText.material) == "number" then
RoundText:setText(RoundText.material)
else
RoundText:setImage(RoundText.material)
end
if RoundText.showInLastPulse == false then
RoundNumberIsVisible = 0
end
RoundText:beginAnimation("round_switch_show", CoD.RoundStatus.FirstRoundDuration)
else
if RoundText.showInPreviousPulses == false then
RoundNumberIsVisible = 0
end
RoundText:beginAnimation("round_switch_show", CoD.RoundStatus.RoundPulseDuration)
end
RoundText:setAlpha(RoundNumberIsVisible)
end
end
CoD.RoundStatus.UpdateTeamChange = function(RoundStatusWidget, ClientInstance)
if RoundStatusWidget.team ~= ClientInstance.team and type(ClientInstance.team) == "number" and ClientInstance.team < CoD.TEAM_SPECTATOR then
RoundStatusWidget.team = ClientInstance.team
if RoundStatusWidget.team ~= CoD.TEAM_FREE then
local FactionTeam = Engine.GetFactionForTeam(ClientInstance.team)
if FactionTeam ~= "" and RoundStatusWidget.gameTypeGroup == CoD.Zombie.GAMETYPEGROUP_ZENCOUNTER then
if CoD.Zombie.GAMETYPE_ZCLEANSED == Dvar.ui_gametype:get() and RoundStatusWidget.team == CoD.TEAM_AXIS then
FactionTeam = "zombie"
elseif CoD.Zombie.GAMETYPE_ZMEAT == Dvar.ui_gametype:get() and RoundStatusWidget.team == CoD.TEAM_AXIS then
FactionTeam = "cia"
end
RoundStatusWidget.factionIcon:setImage(RegisterMaterial("faction_" .. FactionTeam))
RoundStatusWidget.factionIcon:setAlpha(1)
else
RoundStatusWidget.factionIcon:setAlpha(0)
end
else
RoundStatusWidget.factionIcon:setAlpha(0)
end
end
end
CoD.RoundStatus.HideAllRoundIcons = function(RoundStatusWidget, ClientInstance)
RoundStatusWidget.roundTextCenter:setAlpha(0)
RoundStatusWidget.roundText:setAlpha(0)
RoundStatusWidget.roundChalk1:setAlpha(0)
RoundStatusWidget.roundChalk2:setAlpha(0)
end
CoD.RoundStatus.UpdateSpecialRound = function(RoundStatusWidget, ClientInstance)
if ClientInstance.newValue == 1 then
if not RoundStatusWidget.specialRoundIcon then
RoundStatusWidget.specialRoundIcon = LUI.UIImage.new()
RoundStatusWidget.specialRoundIcon:setLeftRight(true, false, CoD.RoundStatus.SpecialLeftOffset, CoD.RoundStatus.SpecialLeftOffset + CoD.RoundStatus.SpecialRoundIconSize)
RoundStatusWidget.specialRoundIcon:setTopBottom(false, true, CoD.RoundStatus.ChalkTop, CoD.RoundStatus.ChalkTop + CoD.RoundStatus.SpecialRoundIconSize / 2)
RoundStatusWidget.specialRoundIcon:setImage(RegisterMaterial("hud_zm_chalk_infinity"))
RoundStatusWidget.specialRoundIcon:setAlpha(0)
RoundStatusWidget.roundIconContainer:addElement(RoundStatusWidget.specialRoundIcon)
end
RoundStatusWidget.specialRoundIcon:beginAnimation("fade_in", 1000)
RoundStatusWidget.specialRoundIcon:setAlpha(1)
RoundStatusWidget.roundContainer:beginAnimation("fade_out", 500)
RoundStatusWidget.roundContainer:setAlpha(0)
else
RoundStatusWidget.specialRoundIcon:beginAnimation("fade_out", 500)
RoundStatusWidget.specialRoundIcon:setAlpha(0)
RoundStatusWidget.roundContainer:beginAnimation("fade_in", 1000)
RoundStatusWidget.roundContainer:setAlpha(1)
end
end
CoD.RoundStatus.TimeBombRoundAnimationOverride = function(RoundStatusWidget, ClientInstance)
if ClientInstance.newValue == 1 then
RoundStatusWidget.timebombOverride = true
else
RoundStatusWidget.timebombOverride = false
end
end

View File

@ -4,6 +4,17 @@
include,includes/mapents/so_zencounter_zm_prison
image,chalkmarks_hellcatraz_1
material,chalkmarks_hellcatraz_1
image,chalkmarks_hellcatraz_2
material,chalkmarks_hellcatraz_2
image,chalkmarks_hellcatraz_3
material,chalkmarks_hellcatraz_3
image,chalkmarks_hellcatraz_4
material,chalkmarks_hellcatraz_4
image,chalkmarks_hellcatraz_5
material,chalkmarks_hellcatraz_5
weapon,knife_zm_alcatraz
weapon,spoon_zm_alcatraz
weapon,spork_zm_alcatraz