---@class MiniGameMode_PunctureBalloon ---@field IsGameEnd bool ---@field PlayerAddScore table 玩家获取的分数 ---@type MiniGameMode_PunctureBalloon local MiniGameMode_PunctureBalloon = { IsGameEnd = false; bIsInGame = false; -- 给玩家结算添加的得分{[PlayerKey] = AddScore, ...} PlayerAddScore = {}; AllCars = {}; CarIndex = 0; } --- 游戏初始化 function MiniGameMode_PunctureBalloon:Init() self.CarManagerPath = MiniGameConfig.MiniGameInfo[MiniGameConfig.MiniGameType.PunctureBalloon].GameParam.CarManagerPath self.CarManager = UGCSystemLibrary.GetUniqueInstanceFromPath(self.CarManagerPath) self.CarManager:InitCar() UGCEventSystem.AddListener(EventEnum.PierceBalloon, self.PierceBalloon, self) end --- 准备时间结束游戏开始 function MiniGameMode_PunctureBalloon:GameBegin() self.bIsInGame = true self.CarManager:AllPlayerDriverCar() end function MiniGameMode_PunctureBalloon:Update(DeltaTime) -- 判断该玩法是否已结束 if self.IsGameEnd then return end -- Update逻辑 -- Update逻辑 End end --- 设置游戏结束,手动触发会结束该玩法,倒计时结束将自动触发该函数 function MiniGameMode_PunctureBalloon:SetMiniGameModeEnd() if not self.IsGameEnd then self.IsGameEnd = true self:MiniGameEnd() end end --- 获取当前回合游戏结算, ---@return "{[PlayerKey] = AddScore, ...}" function MiniGameMode_PunctureBalloon:GetPlayerAddScore() return self.PlayerAddScore end --- 外层调用,判断该玩法是否已结束 function MiniGameMode_PunctureBalloon:CheckGameFinish() return self.IsGameEnd end --- 结束触发 function MiniGameMode_PunctureBalloon:MiniGameEnd() self.PlayerAddScore = UGCGameSystem.GameState:GetPlayerMiniGameAddScore() UGCEventSystem.RemoveListener(EventEnum.PierceBalloon, self.PierceBalloon, self) self.CarManager:RemoveAllCar() end ------------------------------------------ Player ------------------------------------------ --- 玩家死亡 function MiniGameMode_PunctureBalloon:PlayerDead(VictimKey, CauserKey, WeaponID, DamageType, IsHeadShotDamage, Distance, DamageValue, Assister) end --- 玩家伤害修改 function MiniGameMode_PunctureBalloon:PlayerDamageModify(DamageAmount, VictimPawn, CauserPC) return DamageAmount end --- 玩家受控时 function MiniGameMode_PunctureBalloon:PlayerPossessed(PlayerKey) end --- 玩家BeginPlay触发 function MiniGameMode_PunctureBalloon:PlayerBeginPlay(PlayerPawn) end ---------------------------------------- Player End ---------------------------------------- function MiniGameMode_PunctureBalloon:PierceBalloon(StabPlayer, PuncturedPlayer) -- UGCLogSystem.Log("[MiniGameMode_PunctureBalloon_PierceBalloon] StabPlayer:%s, PuncturedPlayer:%s", tostring(StabPlayer), tostring(PuncturedPlayer)) UGCGameSystem.GameState:PlayerAddMiniGameScore(StabPlayer, 1) UGCGameSystem.GameState:PlayerAddMiniGameScore(PuncturedPlayer, -1) MiniGameConfig.CheckPlayerTask(StabPlayer, MiniGameConfig.MiniGameType.PunctureBalloon, UGCGameSystem.GameState:GetPlayerMiniGameScore(StabPlayer), false) end return MiniGameMode_PunctureBalloon