Exemple #1
0
        private void Disconnected(UnturnedPlayer player)
        {
            var found = RunningRobberies.SingleOrDefault(c => c.Robber.channel.owner.playerID.steamID == player.CSteamID);

            if (found == null)
            {
                return;
            }
            Fail(found);
        }
Exemple #2
0
        private void Death(UnturnedPlayer player, EDeathCause cause, ELimb limb, CSteamID murderer)
        {
            var found = RunningRobberies.SingleOrDefault(c => c.Robber.channel.owner.playerID.steamID == player.CSteamID);

            if (found == null)
            {
                return;
            }
            Fail(found);
        }
Exemple #3
0
        internal void FixedUpdate()
        {
            var completed = RunningRobberies.Where(c => c.IsCompleted).ToArray();

            foreach (var item in completed)
            {
                item.IssueReward();
                Cooldowns.Add(item.Region.RegionId, DateTime.UtcNow.AddSeconds(item.Region.RobbingInterval));
                RunningRobberies.Remove(item);
            }
        }
Exemple #4
0
        public bool Rob(Player robber, BankRobberyRegionConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (RunningRobberies.Any(c => c.Region.RegionId == configuration.RegionId))
            {
                throw new Exception($"Robbery already running on region: {configuration.RegionId}");
            }

            var robbery = new RunningRobbery(robber, configuration);

            RunningRobberies.Add(robbery);
            UnturnedChat.Say(Plugin.Instance.Translate("robbing", robber.channel.owner.playerID.characterName, configuration.RegionId), Color.yellow);

            return(true);
        }
Exemple #5
0
 public void Fail(RunningRobbery robbery)
 {
     UnturnedChat.Say(Plugin.Instance.Translate("ended", robbery.Robber.channel.owner.playerID.characterName, robbery.Region.RegionId));
     RunningRobberies.Remove(robbery);
     Cooldowns.Add(robbery.Region.RegionId, DateTime.UtcNow.AddSeconds(robbery.Region.RobbingInterval));
 }