Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        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);
        }