1.是否允许Bot
2.伤害逻辑(是否可以造成伤害,譬如队友无伤害)
3.判断胜者
4.回合若有时间限制,在此处理(比如,准备阶段多长时间,游戏时间多长时间等) SetTimer
5.生成bot
6.DefaultTime(游戏进程) 从GameState获取当前回合剩余时间,如果时间到了,判断当前回合的matchstate,根据不同matchstate,决定是开始回合还是结束回合
7.HandleMatchIsWaitingToStart :生成botcontroller,设置gamestate的剩余时间为warmupTime
8.HandleMatchHasStarted:设置gamestate的剩余时间为回合时间,通知playercontroller游戏开始,bot通知开始
9.FinishMatch:结束回合,判断胜者,通知playercontroller游戏结束,设置gamestate的剩余时间为两回合的间隔时间
10.RequestFinishAndExitToMainMenu :退出,通知playercontroller退出
11.DetermineMatchWinner:判断胜者
12.PreLogin:在执行Super::Prelogin时提前判断当前回合是否结束 如果已结束,则不执行Super
12.PostLogin:设置spectatorCamera的location和rotation (游戏有准备时间,一开始进入为自由视角可以到处走动,这里设置初始位置),如果当前玩家是后加入(游戏已经开始),那么直接开始游戏,不需要在等待
13.Killed: 得分的计算
14.ModifyDamage:计算是否可以造成伤害(如果是队友之类的,实际伤害为0,如果是自己打到自己,在此计算伤害,如果都不是,则不做处理)
15.RestartGame
16.StartBots
17.ChoosePlayerStart_Implementation:选择出生点,计算是否该出生点是否允许出生(有的是给bot的 不同team出生地不同)