Example #1
0
 public override void Initialize(XmlElement node, GameDataManager manager)
 {
     ID     = node.GetAttribute("ID");
     Damage = float.Parse(node.GetAttribute("Damage"), CultureInfo.InvariantCulture);
     Mass   = float.Parse(node.GetAttribute("Mass"), CultureInfo.InvariantCulture);
     HP     = float.Parse(node.GetAttribute("HP"), CultureInfo.InvariantCulture);
 }
Example #2
0
 public TurretData(XmlElement node, GameDataManager manager)
 {
     Weapon = manager.Weapons[node.GetAttribute("Weapon")];
     Sprite = manager.Sprites[node.GetAttribute("Sprite")];
     string[] position = node.GetAttribute("Position").Split(',');
     Position  = new Vector2(float.Parse(position[0], CultureInfo.InvariantCulture), float.Parse(position[1], CultureInfo.InvariantCulture));
     MinAngle  = float.Parse(node.GetAttribute("MinAngle"), CultureInfo.InvariantCulture);
     MaxAngle  = float.Parse(node.GetAttribute("MaxAngle"), CultureInfo.InvariantCulture);
     TurnSpeed = float.Parse(node.GetAttribute("TurnSpeed"), CultureInfo.InvariantCulture);
 }
Example #3
0
        public ShieldData(XmlElement node, GameDataManager manager)
        {
            Radius       = float.Parse(node.GetAttribute("Radius"), CultureInfo.InvariantCulture);
            HP           = float.Parse(node.GetAttribute("HP"), CultureInfo.InvariantCulture);
            Regeneration = float.Parse(node.GetAttribute("Regeneration"), CultureInfo.InvariantCulture);

            List <ResourceAmount> resourceUsage = new List <ResourceAmount>();

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                resourceUsage.Add(new ResourceAmount(subnode, manager));
            }
            ResourceUsage = resourceUsage.ToArray();
        }
Example #4
0
        public ThrusterData(XmlElement node, GameDataManager manager)
        {
            Thrust    = float.Parse(node.GetAttribute("Thrust"), CultureInfo.InvariantCulture);
            Direction = float.Parse(node.GetAttribute("Direction"), CultureInfo.InvariantCulture);

            List <ResourceAmount> resourceUsage = new List <ResourceAmount>();

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                ResourceData type   = manager.Resources[subnode.GetAttribute("ID")];
                float        amount = float.Parse(subnode.GetAttribute("Amount"), CultureInfo.InvariantCulture);
                resourceUsage.Add(new ResourceAmount(type, amount));
            }
            ResourceUsage = resourceUsage.ToArray();
        }
Example #5
0
        public ResourceStorageData(XmlElement node, GameDataManager manager)
        {
            Maximum   = float.Parse(node.GetAttribute("Amount"), CultureInfo.InvariantCulture);
            Exclusive = bool.Parse(node.GetAttribute("Exclusive"));

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                ResourceData type = manager.Resources[subnode.GetAttribute("ID")];
                switch (subnode.Name)
                {
                case "Allow": Allowed.Add(type, true); break;

                case "Forbid": Allowed.Add(type, false); break;
                }
            }
        }
Example #6
0
        public override void Initialize(XmlElement node, GameDataManager manager)
        {
            BasicSprite sprite  = manager.Textures[node.GetAttribute("Texture")];
            Texture2D   texture = sprite.Texture;

            string[] offset  = node.GetAttribute("Offset").Split(',');
            int      offsetX = int.Parse(offset[0]);
            int      offsetY = int.Parse(offset[1]);

            string[]  size   = node.GetAttribute("Size").Split(',');
            int       sizeX  = int.Parse(size[0]);
            int       sizeY  = int.Parse(size[1]);
            Rectangle source = new Rectangle(offsetX, offsetY, sizeX, sizeY);

            source.Offset(sprite.Source.Location);
            Base = new BasicSprite(texture, source);
        }
Example #7
0
        public ResourceProductionData(XmlElement node, GameDataManager manager)
        {
            List <ResourceAmount> outputs = new List <ResourceAmount>();
            List <ResourceAmount> inputs  = new List <ResourceAmount>();

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                switch (subnode.Name)
                {
                case "Output": outputs.Add(new ResourceAmount(subnode, manager)); break;

                case "Input": inputs.Add(new ResourceAmount(subnode, manager)); break;
                }
            }
            Outputs = outputs.ToArray();
            Inputs  = inputs.ToArray();
        }
Example #8
0
        public override void Initialize(XmlElement node, GameDataManager manager)
        {
            ID           = node.GetAttribute("ID");
            _Title       = node.GetAttribute("Title");
            _Description = node.GetAttribute("Desc");
            Sprite       = manager.Sprites[node.GetAttribute("Sprite")];
            string[] size = node.GetAttribute("Size").Split(',');
            Width  = int.Parse(size[0]);
            Height = int.Parse(size[1]);
            string attachString = node.GetAttribute("Attach");

            Attach    = new bool[] { attachString.Contains("E"), attachString.Contains("N"), attachString.Contains("W"), attachString.Contains("S") };
            Rotatable = bool.Parse(node.GetAttribute("Rotate"));
            HP        = float.Parse(node.GetAttribute("HP"), CultureInfo.InvariantCulture);
            Mass      = float.Parse(node.GetAttribute("Mass"), CultureInfo.InvariantCulture);
            //MassSquared = Mass * Mass;

            List <ModuleComponentData> components   = new List <ModuleComponentData>();
            List <HitElement>          hitRegions   = new List <HitElement>();
            List <ResourceAmount>      resourceCost = new List <ResourceAmount>();

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                switch (subnode.Name)
                {
                case "ResourceProduction": components.Add(new ResourceProductionData(subnode, manager)); break;

                case "ResourceStorage": components.Add(new ResourceStorageData(subnode, manager)); break;

                case "Thruster": components.Add(new ThrusterData(subnode, manager)); break;

                case "Turret": components.Add(new TurretData(subnode, manager)); break;

                case "Shield": components.Add(new ShieldData(subnode, manager)); break;

                case "ResourceCost": resourceCost.Add(new ResourceAmount(subnode, manager)); break;

                case "HitPolygon":; break;
                }
            }
            Components   = components.ToArray();
            HitRegions   = hitRegions.ToArray();
            ResourceCost = resourceCost.ToArray();
        }
Example #9
0
        public override void Initialize(XmlElement node, GameDataManager manager)
        {
            ID      = node.Attributes.GetNamedItem("ID").Value;
            Title   = node.Attributes.GetNamedItem("Title").Value;
            Attack  = float.Parse(node.GetAttribute("Attack"), CultureInfo.InvariantCulture);
            Defense = float.Parse(node.GetAttribute("Defense"), CultureInfo.InvariantCulture);
            Wage    = float.Parse(node.GetAttribute("Wage"), CultureInfo.InvariantCulture);

            List <WorkAmount> workOutputs = new List <WorkAmount>();

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                switch (subnode.Name)
                {
                case "WorkOutput": workOutputs.Add(new WorkAmount(subnode, manager)); break;
                }
            }
            WorkOutputs = workOutputs.ToArray();
        }
Example #10
0
        public override void Initialize(XmlElement node, GameDataManager manager)
        {
            ID    = node.GetAttribute("ID");
            Title = node.GetAttribute("Title");

            List <ITraitEffectData> effects = new List <ITraitEffectData>();

            foreach (XmlElement subnode in node.ChildNodes.OfType <XmlElement>())
            {
                switch (subnode.Name)
                {
                case "WorkModifier": effects.Add(new WorkModifier(subnode, manager)); break;

                case "CrewAttackModifier": effects.Add(new CrewAttackModifier(subnode)); break;

                case "CrewDefenseModifier": effects.Add(new CrewDefenseModifier(subnode)); break;

                case "CrewWageModifier": effects.Add(new CrewWageModifier(subnode)); break;
                }
            }
            Effects = effects.ToArray();
        }
Example #11
0
        public override void Initialize(XmlElement node, GameDataManager manager)
        {
            ID       = node.GetAttribute("ID");
            Cooldown = float.Parse(node.GetAttribute("Cooldown"), CultureInfo.InvariantCulture);

            XmlNodeList projectileNodes = node.SelectNodes("Projectile");

            Projectiles = new ProjectileLaunchData[projectileNodes.Count];
            for (int i = 0; i < projectileNodes.Count; i++)
            {
                Projectiles[i] = new ProjectileLaunchData((XmlElement)projectileNodes[i], manager);
            }

            XmlElement reload = (XmlElement)node.SelectSingleNode("Reload");

            ReloadTime = float.Parse(reload.GetAttribute("Time"), CultureInfo.InvariantCulture);
            XmlNodeList resourceUsageNodes = reload.SelectNodes("ResourceUsage");

            ReloadCost = new ResourceAmount[resourceUsageNodes.Count];
            for (int i = 0; i < resourceUsageNodes.Count; i++)
            {
                ReloadCost[i] = new ResourceAmount((XmlElement)resourceUsageNodes[i], manager);
            }
        }
Example #12
0
 public WorkModifier(XmlElement node, GameDataManager manager)
 {
     Type  = manager.WorkTypes[node.GetAttribute("ID")];
     Value = float.Parse(node.GetAttribute("Multiplier"), CultureInfo.InvariantCulture);
 }
Example #13
0
 public override void Initialize(XmlElement node, GameDataManager manager)
 {
     ID    = node.GetAttribute("ID");
     Title = node.GetAttribute("Title");
 }
Example #14
0
 public WorkAmount(XmlElement node, GameDataManager manager)
 {
     Type   = manager.WorkTypes[node.GetAttribute("ID")];
     Amount = float.Parse(node.GetAttribute("Amount"), CultureInfo.InvariantCulture);
 }
Example #15
0
 public ProjectileLaunchData(XmlElement node, GameDataManager data)
 {
     ProjectileData projectile = data.Projectiles[node.GetAttribute("ID")];
     float          speed      = float.Parse(node.GetAttribute("Speed"), CultureInfo.InvariantCulture);
     float          precision  = float.Parse(node.GetAttribute("Precision"), CultureInfo.InvariantCulture);
 }
Example #16
0
 public abstract void Initialize(XmlElement node, GameDataManager manager);