示例#1
0
        public static void InvokeCheckRoundEnd(ref bool force, ref bool allow, ref RoundSummary.LeadingTeam team, ref bool teamChanged)
        {
            CheckRoundEnd checkRoundEnd = CheckRoundEndEvent;

            if (checkRoundEnd == null)
            {
                return;
            }

            CheckRoundEndEvent ev = new CheckRoundEndEvent
            {
                LeadingTeam = team,
                ForceEnd    = force,
                Allow       = allow
            };

            checkRoundEnd.Invoke(ref ev);
            if (team != ev.LeadingTeam)
            {
                teamChanged = true;
            }
            team  = ev.LeadingTeam;
            allow = ev.Allow;
            force = ev.ForceEnd;
        }
示例#2
0
        internal void InvokeRoundCheckEvent(ref bool allow, ref RoundSummary.LeadingTeam leadingTeam)
        {
            var ev = new RoundCheckEventArgs
            {
                Team     = leadingTeam,
                EndRound = allow,
            };

            RoundCheckEvent?.Invoke(ev);

            allow       = ev.EndRound;
            leadingTeam = ev.Team;
        }
示例#3
0
        public RoundEndEvent(RoundSummary.SumInfo_ClassList list_start, RoundSummary.SumInfo_ClassList list_finish, RoundSummary.LeadingTeam leadingTeam, int e_ds, int e_sc, int scp_kills, int round_cd, string Roundtime)
        {
            SCP = new SCPs {
                SCP_Kills = scp_kills, Starting_SCPs = list_start.scps_except_zombies, Ending_SCPs = list_finish.scps_except_zombies, Terminated_SCPs = list_start.scps_except_zombies - list_finish.scps_except_zombies
            };
            Class_D = new ClassD {
                Starting_ClassD = list_start.class_ds, Escaped_ClassD = e_ds
            };
            Scientist = new Scientists {
                Starting_Scientists = list_start.scientists, Escaped_Scientists = e_sc
            };

            TimeSpan tspan = TimeSpan.FromSeconds(list_finish.time - list_start.time);

            Roundtime   = string.Format("{0} minutes and {1} seconds", (int)tspan.TotalMinutes, tspan.Seconds);
            LeadingTeam = leadingTeam;
        }
示例#4
0
        public static void InvokeCheckRoundEnd(ref bool forceEnd, ref bool allow, ref RoundSummary.LeadingTeam team,
                                               ref bool teamChanged)
        {
            var ev = new CheckRoundEndEvent
            {
                Allow       = allow,
                ForceEnd    = forceEnd,
                LeadingTeam = team
            };

            CheckRoundEndEvent?.Invoke(ev);

            teamChanged = team != ev.LeadingTeam;
            team        = ev.LeadingTeam;
            allow       = ev.Allow;
            forceEnd    = ev.ForceEnd;
        }
示例#5
0
        public static void InvokeCheckRoundEnd(ref bool forceEnd, ref bool allow, ref RoundSummary.LeadingTeam leadingTeam, ref bool teamChanged)
        {
            if (CheckRoundEndEvent == null)
            {
                return;
            }

            CheckRoundEndEvent ev = new CheckRoundEndEvent
            {
                LeadingTeam = leadingTeam,
                ForceEnd    = forceEnd,
                Allow       = allow
            };

            CheckRoundEndEvent.Invoke(ref ev);

            teamChanged = leadingTeam != ev.LeadingTeam;
            leadingTeam = ev.LeadingTeam;
            allow       = ev.Allow;
            forceEnd    = ev.ForceEnd;
        }
示例#6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RoundEndedEventArgs"/> class.
 /// </summary>
 /// <param name="leadingTeam"><inheritdoc cref="LeadingTeam"/></param>
 /// <param name="classList"><inheritdoc cref="ClassList"/></param>
 /// <param name="timeToRestart"><inheritdoc cref="TimeToRestart"/></param>
 public RoundEndedEventArgs(RoundSummary.LeadingTeam leadingTeam, RoundSummary.SumInfo_ClassList classList, int timeToRestart)
 {
     LeadingTeam   = leadingTeam;
     ClassList     = classList;
     TimeToRestart = timeToRestart;
 }
 void ILabModRoundEnd.Event(RoundSummary sum, RoundSummary.SumInfo_ClassList list_start, RoundSummary.SumInfo_ClassList list_finish, RoundSummary.LeadingTeam leadingTeam, int e_ds, int e_sc, int scp_kills, int round_cd)
 {
 }
示例#8
0
        public void RpcShowRoundSummary(RoundSummary.SumInfo_ClassList list_start, RoundSummary.SumInfo_ClassList list_finish, RoundSummary.LeadingTeam leadingTeam, int e_ds, int e_sc, int scp_kills, int round_cd)
        {
            TimeSpan tspan = TimeSpan.FromSeconds(list_finish.time - list_start.time);

            Base.roundStartTime = null;

            try
            {
                Base.Debug("Triggering RoundEndEvent");
                PluginManager.TriggerEvent <IEventHandlerRoundEnd>(new RoundEndEvent(list_start, list_finish, leadingTeam, e_ds, e_sc, scp_kills, round_cd, string.Format("{0} minutes and {1} seconds", (int)tspan.TotalMinutes, tspan.Seconds)));
            }
            catch (Exception e)
            {
                Base.Error($"Error triggering RoundEndEvent: {e.InnerException.ToString()}");
            }

            orig_RpcShowRoundSummary(list_start, list_finish, leadingTeam, e_ds, e_sc, scp_kills, round_cd);
        }
示例#9
0
 public extern void orig_RpcShowRoundSummary(RoundSummary.SumInfo_ClassList list_start, RoundSummary.SumInfo_ClassList list_finish, RoundSummary.LeadingTeam leadingTeam, int e_ds, int e_sc, int scp_kills, int round_cd);
示例#10
0
 public static void TriggerEvent(RoundSummary sum, RoundSummary.SumInfo_ClassList list_start, RoundSummary.SumInfo_ClassList list_finish, RoundSummary.LeadingTeam leadingTeam, int e_ds, int e_sc, int scp_kills, int round_cd)
 {
     //bool shouldstop = false;
     foreach (var type in types_update)
     {
         if (LabMod.GetObjectOfType(type) == null)
         {
             continue;
         }
         ((ILabModRoundEnd)LabMod.GetObjectOfType(type)).Event(sum, list_start, list_finish, leadingTeam, e_ds, e_sc, scp_kills, round_cd);
     }
     //stop = shouldstop;
 }
 public static void EndGame(RoundSummary.LeadingTeam winningTeam) => eventHandler.ManualEndGame.EndGame(winningTeam);
示例#12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EndingRoundEventArgs"/> class.
 /// </summary>
 /// <param name="leadingTeam"><inheritdoc cref="LeadingTeam"/></param>
 /// <param name="isRoundEnded"><inheritdoc cref="IsRoundEnded"/></param>
 /// <param name="isAllowed"><inheritdoc cref="IsAllowed"/></param>
 public EndingRoundEventArgs(RoundSummary.LeadingTeam leadingTeam, bool isRoundEnded, bool isAllowed = true)
 {
     LeadingTeam  = leadingTeam;
     IsRoundEnded = isRoundEnded;
     IsAllowed    = isAllowed;
 }