public void Hack(MapTile tile) { if (tile.Modifier is Node) { WriteConsoleMessage("Node hacked"); tile.Modifier = new HackedNode(); tile.Discovered = true; BitCoin++; } else { WriteConsoleMessage("Error! No Node detected."); Penalties.Add(TracePenalty.HackError); tile.Modifier = new Corrupted(); ResolveTile(tile); } }
public Penalty AddPenalty(Guid penaltyId, Decimal amount, String description) { if (amount < 0) { throw new ArgumentOutOfRangeException(nameof(amount), $"Positive number required, current value: {amount}"); } var penalty = Penalties.FirstOrDefault(_ => _.Id == Id); if (penalty == null) { penalty = new Penalty(penaltyId, this.Id, amount, description?.Trim()); Penalties.Add(penalty); return(penalty); } if (penalty.Amount == amount && penalty.Description == description) { return(penalty); } throw new PenaltyAlreadyExistsException(penalty); }