private void Disconnected(UnturnedPlayer player) { var found = RunningRobberies.SingleOrDefault(c => c.Robber.channel.owner.playerID.steamID == player.CSteamID); if (found == null) { return; } Fail(found); }
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); }
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); } }
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); }
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)); }