public override void LoadXml(XElement node)
        {
            XElement maxNode = node.Element("Max");

            if (maxNode != null)
            {
                maxHealth = maxNode.GetValue <float>();
            }

            StartHealth = node.TryAttribute <float>("startValue", MaxHealth);

            XElement meterNode = node.Element("Meter");

            if (meterNode != null)
            {
                var meterInfo = HandlerXmlReader.LoadMeter(meterNode, Game.CurrentGame.BasePath);
                meter          = HealthMeter.Create(meterInfo, true);
                meter.MaxValue = maxHealth;
                meter.IsPlayer = (Parent.Name == "Player");
            }

            XElement flashNode = node.Element("Flash");

            if (flashNode != null)
            {
                flashtime = flashNode.TryValue <int>();
            }
        }
        public override void LoadXml(XElement node)
        {
            foreach (XElement weapon in node.Elements("Weapon"))
            {
                string name = weapon.RequireAttribute("name").Value;

                string entity = weapon.RequireAttribute("entity").Value;

                int ammo = weapon.TryAttribute <int>("ammo", -1);

                int usage = weapon.TryAttribute <int>("usage", 1);

                int?palette = weapon.TryAttribute <int?>("palette");

                HealthMeter meter     = null;
                XElement    meterNode = weapon.Element("Meter");
                if (meterNode != null)
                {
                    var meterInfo = HandlerXmlReader.LoadMeter(meterNode, Game.CurrentGame.BasePath);
                    meter = HealthMeter.Create(meterInfo, true);

                    meter.MaxValue = ammo;
                    meter.Reset();
                }

                AddWeapon(name, entity, ammo, usage, meter, palette);
            }
        }
Example #3
0
        public static HealthMeter Create(MeterInfo info, bool inGamePlay)
        {
            var meter = new HealthMeter();

            meter.LoadInfo(info);
            meter.inGamePlay = inGamePlay;
            if (inGamePlay)
            {
                allMeters.Add(meter);
            }
            return(meter);
        }
        public void LoadInfo(HealthComponentInfo info)
        {
            maxHealth   = info.Max;
            StartHealth = info.StartValue ?? info.Max;
            flashtime   = info.FlashFrames;

            if (info.Meter != null)
            {
                meter          = HealthMeter.Create(info.Meter, true);
                meter.MaxValue = maxHealth;
                meter.IsPlayer = (Parent.Name == "Player");
            }
        }
Example #5
0
        public void LoadInfo(WeaponComponentInfo info)
        {
            foreach (var weapon in info.Weapons)
            {
                HealthMeter meter = null;
                if (weapon.Meter != null)
                {
                    meter = HealthMeter.Create(weapon.Meter, true);
                }

                AddWeapon(weapon.Name, weapon.EntityName, weapon.Ammo ?? -1, weapon.Usage ?? 1, meter, weapon.Palette);
            }
        }
Example #6
0
 public void Unload()
 {
     Engine.Instance.Stop();
     _stateMachine.StopAllHandlers();
     _entitySource.Unload();
     Engine.Instance.UnloadAudio();
     FontSystem.Unload();
     HealthMeter.Unload();
     Scene.Unload();
     Menu.Unload();
     PaletteSystem.Unload();
     EffectParser.Unload();
     CurrentGame = null;
 }
        public void AddWeapon(string name, string entity, int ammo, int usage, HealthMeter meter, int? palette)
        {
            if (weapons.Any(info => info.Name == name))
            {
                return;
            }
            WeaponInfo weapon = new WeaponInfo
            {
                Name = name,
                Entity = entity,
                Ammo = ammo,
                Max = ammo,
                Usage = usage,
                Meter = meter,
                Palette = palette,
                Index = weapons.Count
            };

            weapons.Add(weapon);
        }
        public void AddWeapon(string name, string entity, int ammo, int usage, HealthMeter meter, int?palette)
        {
            if (weapons.Any(info => info.Name == name))
            {
                return;
            }
            WeaponInfo weapon = new WeaponInfo
            {
                Name    = name,
                Entity  = entity,
                Ammo    = ammo,
                Max     = ammo,
                Usage   = usage,
                Meter   = meter,
                Palette = palette,
                Index   = weapons.Count
            };

            weapons.Add(weapon);
        }
Example #9
0
        private void AddCommand(SceneAddCommandInfo command)
        {
            var obj = Info.Objects[command.Object];

            IHandlerObject handler = null;

            if (obj is HandlerSpriteInfo)
            {
                handler = new HandlerSprite(((HandlerSpriteInfo)obj).Sprite, new Point(command.X, command.Y));
            }
            else if (obj is MeterInfo)
            {
                handler = new HandlerMeter(HealthMeter.Create((MeterInfo)obj, false), this);
            }
            handler.Start();
            var name = command.Name ?? Guid.NewGuid().ToString();

            if (!objects.ContainsKey(name))
            {
                objects.Add(name, handler);
            }
        }
Example #10
0
        public override void LoadXml(XElement node)
        {
            XElement maxNode = node.Element("Max");
            if (maxNode != null)
            {
                maxHealth = maxNode.GetValue<float>();
            }

            StartHealth = node.TryAttribute<float>("startValue", MaxHealth);

            XElement meterNode = node.Element("Meter");
            if (meterNode != null)
            {
                var meterInfo = HandlerXmlReader.LoadMeter(meterNode, Game.CurrentGame.BasePath);
                meter = HealthMeter.Create(meterInfo, true);
                meter.MaxValue = maxHealth;
                meter.IsPlayer = (Parent.Name == "Player");
            }

            XElement flashNode = node.Element("Flash");
            if (flashNode != null)
            {
                flashtime = flashNode.TryValue<int>();
            }
        }
 public HandlerMeter(HealthMeter meter, IGameplayContainer container)
 {
     this.Meter = meter;
     this.container = container;
 }
Example #12
0
 public static HealthMeter Create(MeterInfo info, bool inGamePlay)
 {
     var meter = new HealthMeter();
     meter.LoadInfo(info);
     meter.inGamePlay = inGamePlay;
     if (inGamePlay) allMeters.Add(meter);
     return meter;
 }
Example #13
0
 public HandlerMeter(HealthMeter meter, IGameplayContainer container)
 {
     this.Meter     = meter;
     this.container = container;
 }