Esempio n. 1
0
        private string IdentifyMultipleEffectsFilename(SoundFxDefinition fxDefinition, string cmdText)
        {
            var available = new List <string>();

            fxDefinition.Files.ToList().ForEach(a => { if (!MultipleFileTriggers[cmdText].Contains(a))
                                                       {
                                                           available.Add(a);
                                                       }
                                                });
            var random  = new Random().Next(0, available.Count - 1);
            var theFile = available.Skip(random).First();

            MultipleFileTriggers[cmdText].Add(theFile);
            return(theFile);
        }
Esempio n. 2
0
        private DateTime CalculateMultipleFileCooldownTime(SoundFxDefinition cmd, string cmdTrigger)
        {
            if (!SoundCooldowns.ContainsKey(cmdTrigger))
            {
                MultipleFileTriggers.Add(cmdTrigger, new List <string>());
                return(DateTime.Now);
            }

            if (MultipleFileTriggers[cmdTrigger].Count < cmd.Files.Length)
            {
                return(SoundCooldowns[cmdTrigger]);
            }

            return(DateTime.Now);
        }
Esempio n. 3
0
        private bool CheckMultipleFilesCooldown(SoundFxDefinition cmd, string cmdText, out TimeSpan cooldownRemaining)
        {
            var cooldown = TimeSpan.FromSeconds(Effects[cmdText].Cooldown);

            cooldownRemaining = TimeSpan.Zero;

            if (SoundCooldowns.ContainsKey(cmdText))
            {
                if (SoundCooldowns[cmdText].Add(cooldown) < DateTime.Now)
                {
                    SoundCooldowns[cmdText] = DateTime.Now;
                    MultipleFileTriggers[cmdText].Clear();
                    return(true);
                }
                else
                {
                    cooldownRemaining = SoundCooldowns[cmdText].Add(cooldown).Subtract(DateTime.Now);
                    return(MultipleFileTriggers[cmdText].Count != cmd.Files.Length);
                }
            }
            return(true);
        }