public override void HandleExtendedParameters(XElement extendedParameters)
        {
            foreach (XElement itemcapability in extendedParameters.Descendants("ItemCapability"))
            {
                IEnumerable <XElement> Verbs      = itemcapability.Descendants("ItemCapabilityVerb");
                IEnumerable <XElement> Parameters = itemcapability.Descendants("ItemCapabilityParameter");
                ItemCapability         cap        = null;
                switch (itemcapability.Attribute("name").Value)
                {
                case "MeleeWeaponCapability":
                    cap = new MeleeWeaponCapability();
                    break;

                case "ToolCapability":
                    cap = new ToolCapability();
                    break;

                case "GunCapability":
                    cap = new GunCapability();
                    break;

                case "MedicalCapability":
                    cap = new MedicalCapability();
                    break;

                case "HealthScanCapability":
                    cap = new HealthScanCapability();
                    break;

                case "BreatherCapability":
                    cap = new BreatherCapability();
                    break;
                }

                if (cap == null)
                {
                    return;
                }
                foreach (XElement verb in Verbs)
                {
                    cap.AddVerb(int.Parse(verb.Attribute("priority").Value),
                                (ItemCapabilityVerb)
                                Enum.Parse(typeof(ItemCapabilityVerb), verb.Attribute("name").Value));
                }
                foreach (XElement parameter in Parameters)
                {
                    string name  = parameter.Attribute("name").Value;
                    Type   type  = EntityTemplate.TranslateType(parameter.Attribute("type").Value);
                    object value = Convert.ChangeType(parameter.Attribute("value").Value, type);

                    var cparam = new ComponentParameter(name, value);
                    cap.SetParameter(cparam);
                }
                AddCapability(cap);
            }
        }
Esempio n. 2
0
        public override void HandleExtendedParameters(XElement extendedParameters)
        {
            foreach (XElement itemcapability in extendedParameters.Descendants("ItemCapability"))
            {
                IEnumerable<XElement> Verbs = itemcapability.Descendants("ItemCapabilityVerb");
                IEnumerable<XElement> Parameters = itemcapability.Descendants("ItemCapabilityParameter");
                ItemCapability cap = null;
                switch (itemcapability.Attribute("name").Value)
                {
                    case "MeleeWeaponCapability":
                        cap = new MeleeWeaponCapability();
                        break;
                    case "ToolCapability":
                        cap = new ToolCapability();
                        break;
                    case "GunCapability":
                        cap = new GunCapability();
                        break;
                    case "MedicalCapability":
                        cap = new MedicalCapability();
                        break;
                    case "HealthScanCapability":
                        cap = new HealthScanCapability();
                        break;
                    case "BreatherCapability":
                        cap = new BreatherCapability();
                        break;
                }

                if (cap == null)
                    return;
                foreach (XElement verb in Verbs)
                {
                    cap.AddVerb(int.Parse(verb.Attribute("priority").Value),
                                (ItemCapabilityVerb)
                                Enum.Parse(typeof (ItemCapabilityVerb), verb.Attribute("name").Value));
                }
                foreach (XElement parameter in Parameters)
                {
                    string name = parameter.Attribute("name").Value;
                    Type type = EntityTemplate.TranslateType(parameter.Attribute("type").Value);
                    object value = Convert.ChangeType(parameter.Attribute("value").Value, type);

                    var cparam = new ComponentParameter(name, value);
                    cap.SetParameter(cparam);
                }
                AddCapability(cap);
            }
        }