Changeset View
Changeset View
Standalone View
Standalone View
source/ps/TemplateLoader.cpp
Show First 20 Lines • Show All 478 Lines • ▼ Show 20 Lines | void CTemplateLoader::CopyFoundationSubset(CParamNode& out, const CParamNode& in) | ||||
out.CopyFilteredChildrenOfChild(in, "Entity", permittedComponentTypes); | out.CopyFilteredChildrenOfChild(in, "Entity", permittedComponentTypes); | ||||
// Switch the actor to foundation mode | // Switch the actor to foundation mode | ||||
CParamNode::LoadXMLString(out, "<Entity><VisualActor><Foundation/></VisualActor></Entity>"); | CParamNode::LoadXMLString(out, "<Entity><VisualActor><Foundation/></VisualActor></Entity>"); | ||||
// Add the Foundation component, to deal with the construction process | // Add the Foundation component, to deal with the construction process | ||||
CParamNode::LoadXMLString(out, "<Entity><Foundation/></Entity>"); | CParamNode::LoadXMLString(out, "<Entity><Foundation/></Entity>"); | ||||
// Initialise health to 1 | // Initialise health to 1 and Max health to the initial health of base entity | ||||
CParamNode::LoadXMLString(out, "<Entity><Health><Initial>1</Initial></Health></Entity>"); | CParamNode::LoadXMLString(out, "<Entity><Health><Initial>1</Initial></Health></Entity>"); | ||||
if (in.GetChild("Entity").GetChild("Health").GetChild("Initial").IsOk()) | |||||
CParamNode::LoadXMLString(out, ("<Entity><Health><Max>"+utf8_from_wstring(in.GetChild("Entity").GetChild("Health").GetChild("Initial").ToString())+"</Max></Health></Entity>").c_str()); | |||||
// Foundations shouldn't initially block unit movement | // Foundations shouldn't initially block unit movement | ||||
if (out.GetChild("Entity").GetChild("Obstruction").IsOk()) | if (out.GetChild("Entity").GetChild("Obstruction").IsOk()) | ||||
CParamNode::LoadXMLString(out, "<Entity><Obstruction><DisableBlockMovement>true</DisableBlockMovement><DisableBlockPathfinding>true</DisableBlockPathfinding></Obstruction></Entity>"); | CParamNode::LoadXMLString(out, "<Entity><Obstruction><DisableBlockMovement>true</DisableBlockMovement><DisableBlockPathfinding>true</DisableBlockPathfinding></Obstruction></Entity>"); | ||||
// Don't provide population bonuses yet (but still do take up population cost) | // Don't provide population bonuses yet (but still do take up population cost) | ||||
if (out.GetChild("Entity").GetChild("Cost").IsOk()) | if (out.GetChild("Entity").GetChild("Cost").IsOk()) | ||||
CParamNode::LoadXMLString(out, "<Entity><Cost><PopulationBonus>0</PopulationBonus></Cost></Entity>"); | CParamNode::LoadXMLString(out, "<Entity><Cost><PopulationBonus>0</PopulationBonus></Cost></Entity>"); | ||||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator