diff --git a/CSGSI/Nodes/BombNode.cs b/CSGSI/Nodes/BombNode.cs index eccad6a..16c096a 100644 --- a/CSGSI/Nodes/BombNode.cs +++ b/CSGSI/Nodes/BombNode.cs @@ -20,6 +20,11 @@ public class BombNode : NodeBase /// public float Countdown { get; set; } + /// + /// The SteamID of the owner of the C4. + /// + public int Owner { get; set; } + /// /// Initializes a new from the given JSON string. /// @@ -30,6 +35,7 @@ public BombNode(string json) State = GetEnum("state"); Position = GetVector3("position"); Countdown = GetFloat("countdown"); + Owner = GetInt32("player"); } } diff --git a/CSGSI/Nodes/MapTeamNode.cs b/CSGSI/Nodes/MapTeamNode.cs index d35a794..a4cd548 100644 --- a/CSGSI/Nodes/MapTeamNode.cs +++ b/CSGSI/Nodes/MapTeamNode.cs @@ -16,12 +16,22 @@ public class MapTeamNode : NodeBase public int TimeoutsRemaining { get; set; } /// - /// Unknown. + /// The number of matches clinched in the current series (used for BO3, BO5, etc.). /// public int MatchesWonThisSeries { get; set; } /// - /// Name of the team (e.g. Clan name if all players have the same tag or FACEIT teams). + /// The number of rounds lost consecutively by this team (drawed rounds count as lost ones). + /// + public int ConsecutiveRoundLosses { get; set; } + + /// + /// The abbreviation of the region of the team. + /// + public string Flag { get; set; } + + /// + /// The name of the team. /// public string Name { get; set; } @@ -31,6 +41,8 @@ internal MapTeamNode(string json) Score = GetInt32("score"); TimeoutsRemaining = GetInt32("timeouts_remaining"); MatchesWonThisSeries = GetInt32("matches_won_this_series"); + ConsecutiveRoundLosses = GetInt32("consecutive_round_losses"); + Flag = GetString("flag"); Name = GetString("name"); } } diff --git a/CSGSI/Nodes/NodeBase.cs b/CSGSI/Nodes/NodeBase.cs index 3d2b495..cc271d9 100644 --- a/CSGSI/Nodes/NodeBase.cs +++ b/CSGSI/Nodes/NodeBase.cs @@ -12,7 +12,7 @@ public class NodeBase /// /// The data that was passed via JSON. /// - protected JObject _data; + protected readonly JObject _data; /// /// The raw JSON string that was used to construct this node. @@ -22,7 +22,7 @@ public class NodeBase /// /// Whether or not this node contains data (i.e. JSON string is not empty) /// - public bool HasData => !string.IsNullOrWhiteSpace(JSON); + public bool HasData { get; private set; } internal NodeBase(string json) { @@ -31,6 +31,7 @@ internal NodeBase(string json) if (json.Equals("") || json.Equals("true", StringComparison.InvariantCultureIgnoreCase)) { json = "{}"; + HasData = false; } _data = JObject.Parse(json); JSON = json; diff --git a/CSGSI/Nodes/WeaponNode.cs b/CSGSI/Nodes/WeaponNode.cs index 5e4b150..1dc9f13 100644 --- a/CSGSI/Nodes/WeaponNode.cs +++ b/CSGSI/Nodes/WeaponNode.cs @@ -131,7 +131,12 @@ public enum WeaponType /// /// Melee weapons (such as hammer/wrench) in Danger Zone. /// - Melee + Melee, + + /// + /// Bump mine in Danger Zone. + /// + BumpMine } ///