public LimbParams(XElement element, RagdollParams ragdoll) : base(element, ragdoll) { var spriteElement = element.Element("sprite"); if (spriteElement != null) { normalSpriteParams = new SpriteParams(spriteElement, ragdoll); SubParams.Add(normalSpriteParams); } var damagedElement = element.Element("damagedsprite"); if (damagedElement != null) { damagedSpriteParams = new SpriteParams(damagedElement, ragdoll); // Hide the damaged sprite params in the editor for now. //SubParams.Add(damagedSpriteParams); } var deformElement = element.Element("deformablesprite"); if (deformElement != null) { deformSpriteParams = new SpriteParams(deformElement, ragdoll); SubParams.Add(deformSpriteParams); } }
public InventoryParams(XElement element, CharacterParams character) : base(element, character) { foreach (var itemElement in element.GetChildElements("item")) { var item = new InventoryItem(itemElement, character); SubParams.Add(item); Items.Add(item); } }
public void AddItem(string identifier = null) { identifier = identifier ?? ""; var element = new XElement("item", new XAttribute("identifier", identifier)); Element.Add(element); var item = new InventoryItem(element, Character); SubParams.Add(item); Items.Add(item); }
private bool TryAddTarget(XElement targetElement, out TargetParams target) { string tag = targetElement.GetAttributeString("tag", null); if (HasTag(tag)) { target = null; DebugConsole.ThrowError($"Multiple targets with the same tag ('{tag}') defined! Only the first will be used!"); return(false); } else { target = new TargetParams(targetElement, Character); targets.Add(target); SubParams.Add(target); return(true); } }