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出生地不同)