Exemplo n.º 1
0
        /// <summary>
        /// Computes the base value for placing a tile, that is, before multipliers or modifications.
        /// </summary>
        /// <param name="tileOrWallType">The tile type or wall.</param>
        /// <param name="miningTargetType">Type of tile data, either tile or wall.</param>
        /// <returns>Base value in generic units.</returns>
        public decimal GetBasePlacingValue(ushort tileOrWallType, TileSubTarget miningTargetType, string group)
        {
            var key = new TileKey(tileOrWallType, miningTargetType);

            //check group overrides first
            if (!string.IsNullOrWhiteSpace(group))
            {
                if (GroupPlacingOverrides.TryGetValue(group, out var groupPlacingOverride))
                {
                    if (groupPlacingOverride.TryGetValue(key, out var groupValueOverride))
                    {
                        return(groupValueOverride.Value);
                    }
                }
            }

            if (PlacingOverrides.TryGetValue(key, out var valueOverride))
            {
                return(valueOverride.Value);
            }
            else
            {
                return(DefaultPlacingValue);
            }
        }
Exemplo n.º 2
0
 public TileChangedEventArgs(TSPlayer player, int tileX, int tileY, ushort type, byte wall, TileSubTarget tileSubTarget)
 {
     Player        = player;
     TileX         = tileX;
     TileY         = tileY;
     Type          = type;
     Wall          = wall;
     TileSubTarget = tileSubTarget;
 }
Exemplo n.º 3
0
        public MiningReward(TSPlayer player, ushort tileOrWallId, TileSubTarget tileSubTarget, RewardReason rewardReason = RewardReason.Mining)
        {
            Debug.Assert(rewardReason == RewardReason.Mining || rewardReason == RewardReason.Placing,
                         "RewardReason must be either Mining, or Placing.");

            PlayerName    = player.Name;
            PlayerGroup   = player.Group.Name;
            RewardReason  = rewardReason;
            TileSubTarget = tileSubTarget;
            TileOrWallId  = tileOrWallId;
            //tile.wallFrameNumber();
        }
Exemplo n.º 4
0
        public TileKey(ushort tileOrWallId, TileSubTarget tileSubTarget)
        {
            switch (tileSubTarget)
            {
            case TileSubTarget.Tile:
                Type = tileOrWallId;
                break;

            case TileSubTarget.Wall:
                Wall = (byte)tileOrWallId;
                break;
            }
        }