using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HaloObjects;

namespace HaloPlugins.Xbox
{
    public class mulg
    {
       public List<MetaNode> Fields = new List<MetaNode>();

       public mulg()
       {
           Fields.AddRange(new MetaNode[] {
           new Reflexive("Universal", 32, new MetaNode[] { 
               new TagReference("Random_Player_names"),
               new TagReference("Team_names"),
               new Reflexive("Team Colors", 12, new MetaNode[] { 
                   new Value("Color Red", typeof(float)),
                   new Value("Color Green", typeof(float)),
                   new Value("Color Blue", typeof(float)),
               }),
               new TagReference("Multiplayer_Text"),
           }),
           new Reflexive("Runtime", 1384, new MetaNode[] { 
               new TagReference("Flag"),
               new TagReference("Ball"),
               new TagReference("Unit"),
               new TagReference("Flag_Shader"),
               new TagReference("Hill_Shader"),
               new TagReference("Head"),
               new TagReference("Juggernaut_Powerup"),
               new TagReference("Bomb"),
               new Unused(40),
               new Reflexive("Weapon", 8, new MetaNode[] { 
                   new TagReference("Weapon"),
               }),
               new Reflexive("Vehicles", 8, new MetaNode[] { 
                   new TagReference("Vehicle"),
               }),
               new Reflexive("Grenades", 8, new MetaNode[] { 
                   new TagReference("Weapon"),
               }),
               new Reflexive("Powerups", 8, new MetaNode[] { 
                   new TagReference("Weapon"),
               }),
               new TagReference("In_Game_Text"),
               new Reflexive("Sounds", 8, new MetaNode[] { 
                   new TagReference("Sound"),
               }),
               new Reflexive("General Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Kill", "Suicide", "Kill_Teammate", "Victory", "Team_Victory", "unused", "unused", "1_Min_To_Win", "Team_1_Min_To_Win", "30_Sec_To_Win", "Team_30_Sec_To_Win", "Player_Quit", "Player_Joined", "Killed_By_Unknown", "30_Minutes_Left", "15_Minutes_Left", "5_Minutes_Left", "1_Minute_Left", "Time_Expired", "Game_Over", "Respawn_Tick", "Last_Respawn_Tick", "Teleporter_Used", "Player_Changed_Team", "Player_Rejoined", "Gained_Lead", "Gained_Team_Lead", "Lost_Lead", "Lost_Team_Lead", "Tied_Leader", "Tied_Team_Leader", "Round_Over", "30_Seconds_Left", "10_Seconds_Left", "Kill_(Falling)", "Kill_(Collision)", "Kill_(Melee)", "Sudden_Death", "Player_Booted_Player", "Kill_(Flag_Carrier)", "Kill_(Bomb_Carrier)", "Kill_(Sticky_Grenade)", "Kill_(Standard_Melee)", "Boarded_Vehicle", "Start_Team_Notice", "Telefrag", "10_Sec_To_Win", "Team_10_Sec_To_Win" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Reflexive("Flavor Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Double_Kill", "Triple_Kill", "Killtacular", "Killing_Spree", "Running_Riot", "Well_Placed_Kill", "Broke_Killing_Spree", "Kill_Frenzy", "Killtrocity", "Killimajaro", "15_In_A_Row", "20_In_A_Row", "25_In_A_Row" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Reflexive("Slayer Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "New_Target" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Reflexive("CTF Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "Flag_Taken", "Flag_Dropped", "Flag_Returned_By_Player", "Flag_Returned_By_Timeout", "Flag_Captured", "Flag_New_Defensive_Team", "Flag_Return_Failure", "Side_Switch_Tick", "Side_Switch_Final_Tick", "Side_Switch_30_Seconds", "Side_Switch_10_Seconds", "Flag_Contested", "Flag_Capture_Failure" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Reflexive("Oddball Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "Ball_Spawned", "Ball_Pickup", "Ball_Dropped", "Ball_Reset", "Ball_Tick" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Unused(8),
               new Reflexive("KOTH Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "Hill_Controlled", "Hill_Contested", "Hill_Tick", "Hill_Move", "Hill_Controlled_Team", "Hill_Contested_Team" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Unused(8),
               new Reflexive("Juggernaut Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "New_Juggernaught", "Juggernaught_Killed" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Reflexive("Territorys Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "Territory_Control_Gained", "Territory_Contest_Lost", "All_Territories_Controled", "Team_Territory_Control_Gained", "Team_Territory_Control_Lost", "Team_All_Territories_Controled" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Reflexive("Assualt Events", 168, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Quantity_Message" }, 32),
                   new HaloObjects.Enum("Event", new string[] { "Game_Start", "Bomb_Taken", "Bomb_Dropped", "Bomb_Returned_By_Player", "Bomb_Returned_By_Timeout", "Bomb_Captured", "Bomb_New_Defensive_Team", "Bomb_Return_Failure", "Side_Switch_Tick", "Side_Switch_Final_Tick", "Side_Switch_30_Seconds", "Side_Switch_10_Seconds", "Bomb_Returned_By_Defusing", "Bomb_Placed_On_Enemy_Post", "Bomb_Arming_Started", "Bomb_Arming_Completed", "Bomb_Contested" }, 16),
                   new HaloObjects.Enum("Audience", new string[] { "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team", "All" }, 16),
                   new Unused(4),
                   new StringID("Display String"),
                   new HaloObjects.Enum("Required Field", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new HaloObjects.Enum("Excluded Audience", new string[] { "None", "Cause_Player", "Cause_Team", "Effect_Player", "Effect_Team" }, 16),
                   new StringID("Primary String"),
                   new Value("Primary String Duration", typeof(float)),
                   new StringID("Pural Display String"),
                   new Unused(28),
                   new Value("Sound Delay (Announcer Only)", typeof(float)),
                   new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                   new TagReference("English_Sound"),
                   new TagReference("Japanese_Sound"),
                   new TagReference("German_Sound"),
                   new TagReference("French_Sound"),
                   new TagReference("Spainish_Sound"),
                   new TagReference("Italinan_Sound"),
                   new TagReference("Korean_Sound"),
                   new TagReference("Chinese_Sound"),
                   new TagReference("Portuguese_Sound"),
                   new Reflexive("Sound Permutations", 80, new MetaNode[] { 
                       new Bitmask("Sound Flags", new string[] { "Announcer_Sound" }, 32),
                       new TagReference("English_Sound"),
                       new TagReference("Japanese_Sound"),
                       new TagReference("German_Sound"),
                       new TagReference("French_Sound"),
                       new TagReference("Spainish_Sound"),
                       new TagReference("Italinan_Sound"),
                       new TagReference("Korean_Sound"),
                       new TagReference("Chinese_Sound"),
                       new TagReference("Portuguese_Sound"),
                       new Value("Probability", typeof(float)),
                   }),
                   new Unused(20),
               }),
               new Unused(32),
               new TagReference("Default_Item_Collection_1"),
               new TagReference("Default_Item_Collection_2"),
               new Value("Default Frag Grenade Count", typeof(float)),
               new Value("Default Plasma Grenade Count", typeof(float)),
               new Unused(40),
               new Value("Dynamic Spawn Zone Upper Height", typeof(float)),
               new Value("Dynamic Spawn Zone Lower Height", typeof(float)),
               new Unused(40),
               new Value("Enemy Inner Radius", typeof(float)),
               new Value("Enemy Outer Radius", typeof(float)),
               new Value("Enemy Weight", typeof(float)),
               new Unused(16),
               new Value("Friend Inner Radius", typeof(float)),
               new Value("Friend Outer Radius", typeof(float)),
               new Value("Friend Weight", typeof(float)),
               new Unused(16),
               new Value("Enemy Vehicle Inner Radius", typeof(float)),
               new Value("Enemy Vehicle Outer Radius", typeof(float)),
               new Value("Enemy Vehicle Weight", typeof(float)),
               new Unused(16),
               new Value("Friendly Vehicle Inner Radius", typeof(float)),
               new Value("Friendly Vehicle Outer Radius", typeof(float)),
               new Value("Friendly Vehicle Weight", typeof(float)),
               new Unused(16),
               new Value("Empty Vehicle Inner Radius", typeof(float)),
               new Value("Empty Vehicle Outer Radius", typeof(float)),
               new Value("Empty Vehicle Weight", typeof(float)),
               new Unused(16),
               new Value("Oddball Inclusion Inner Radius", typeof(float)),
               new Value("Oddball Inclusion Outer Radius", typeof(float)),
               new Value("Oddball Inclusion Weight", typeof(float)),
               new Unused(16),
               new Value("Oddball Exclusion Inner Radius", typeof(float)),
               new Value("Oddball Exclusion Outer Radius", typeof(float)),
               new Value("Oddball Exclusion Weight", typeof(float)),
               new Unused(16),
               new Value("Hill Inclusion Inner Radius", typeof(float)),
               new Value("Hill Inclusion Outer Radius", typeof(float)),
               new Value("Hill Inclusion Weight", typeof(float)),
               new Unused(16),
               new Value("Hill Exclusion Inner Radius", typeof(float)),
               new Value("Hill Exclusion Outer Radius", typeof(float)),
               new Value("Hill Exclusion Weight", typeof(float)),
               new Unused(16),
               new Value("Last Race Flag Inner Radius", typeof(float)),
               new Value("Last Race Flag Outer Radius", typeof(float)),
               new Value("Last Race Flag Weight", typeof(float)),
               new Unused(16),
               new Value("Dead Ally Inner Radius", typeof(float)),
               new Value("Dead Ally Outer Radius", typeof(float)),
               new Value("Dead Ally Weight", typeof(float)),
               new Unused(16),
               new Value("Controlled Territory Inner Radius", typeof(float)),
               new Value("Controlled Territory Outer Radius", typeof(float)),
               new Value("Controlled Territory Weight", typeof(float)),
               new Unused(624),
               new Reflexive("Multiplayer Constants", 352, new MetaNode[] { 
                   new Value("Max Random Spawn Bias", typeof(float)),
                   new Value("Teleporter Recharge Time (Sec)", typeof(float)),
                   new Value("Grenade Danger Weight", typeof(float)),
                   new Value("Grenade Danger Inner Radius", typeof(float)),
                   new Value("Grenade Danger Outer Radius", typeof(float)),
                   new Value("Grenade Danger Lead Time", typeof(float)),
                   new Value("Vehicle Danger Min Speed", typeof(float)),
                   new Value("Vehicle Danger Weight", typeof(float)),
                   new Value("Vehicle Danger Radius", typeof(float)),
                   new Value("Vehicle Danger Lead Time", typeof(float)),
                   new Value("Vehicle Nearby Player Distance", typeof(float)),
                   new Unused(148),
                   new TagReference("Hill_Shader"),
                   new Unused(16),
                   new Value("Flag Reset Stop Distance", typeof(float)),
                   new TagReference("Bomb_Explode_Effect"),
                   new TagReference("Bomb_Explode_Damage_Effect"),
                   new TagReference("Bomb_Explode_Defuse_Effect"),
                   new StringID("Bomb Defusal String"),
                   new StringID("Blocked Teleporter String"),
                   new Unused(100),
               }),
               new Reflexive("State Responses", 28, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "unused" }, 32),
                   new HaloObjects.Enum("State", new string[] { "Waiting_For_Space_To_Clear", "Observing", "Respawing_Soon", "Sitting_Out", "Out_Of_Lives", "Playing_(Winning)", "Playing_(Tied)", "Playing_(Losing)", "Game_Over_(Won)", "Game_Over_(Tied)", "Game_Over_(Lost)", "You_Have_Flag", "Enemy_Has_Flag", "Flag_Not_Home", "Carrying_Oddball", "You_Are_Juggernaught", "You_Control_Hill", "Switching_Sides_Soon", "Player_Recently_Started", "You_Have_Bomb", "Flag_Contested", "Bomb_Contested", "Limited_Lives_Left_(Multiple)", "Limited_Lives_Left_(Single)", "Limited_Lives_Left_(Final)", "Playing_(Winning,_Unlimited)", "Playing_(Tied,_Unlimited)", "Playing_(Losing,_Unlimited)" }, 32),
                   new StringID("FFA Message"),
                   new StringID("Team Message"),
                   new Unused(12),
               }),
               new TagReference("Scorebard_HUD_Definition"),
               new TagReference("Scorebard_Emblem_Shader"),
               new TagReference("Scorebard_Emblem_Bitmap"),
               new TagReference("Scorebard_Dead_Emblem_Shader"),
               new TagReference("Scorebard_Dead_Emblem_Bitmap"),
           }),
           });
       }
    }
}
