public ScenarioUnitFactory() { ScenarioUnits = new List<ScenarioUnit>(); Uri uri = new Uri(Constants.Scenario_UnitDataPath, UriKind.Relative); XElement applicationXml; StreamResourceInfo xmlStream = Application.GetResourceStream(uri); applicationXml = XElement.Load(xmlStream.Stream); var data = from wz in applicationXml.Descendants("Scenario_Unit") select wz; ScenarioUnit scenarioUnit = null; foreach (var d in data) { scenarioUnit = new ScenarioUnit(); scenarioUnit.ScenarioUnitId = (Int32)d.Element("ScenarioUnitId"); scenarioUnit.ScenarioId = (Int32)d.Element("ScenarioId"); scenarioUnit.StartingScenarioTileId = (Int32)d.Element("StartingScenarioTileId"); scenarioUnit.EquipmentId = (Int32)d.Element("EquipmentId"); scenarioUnit.TransportId = (Int32)d.Element("TransportId"); scenarioUnit.SideId = (Int32)d.Element("SideId"); scenarioUnit.NationId = (Int32)d.Element("FlagId"); scenarioUnit.Strength = (Int32)d.Element("Strength"); scenarioUnit.Experience = (Int32)d.Element("Experience"); scenarioUnit.Entrenchment = (Int32)d.Element("Entrenchment"); scenarioUnit.CordInd = !(Boolean)d.Element("AuxiliaryInd"); ScenarioUnits.Add(scenarioUnit); } }
public AirCombatUnit CreateAirCombatUnit(int unitId, ScenarioUnit scenarioUnit) { AirCombatUnit unit = new AirCombatUnit(); unit.UnitId = unitId; unit.Equipment = EquipmentFactory.GetEquipment(scenarioUnit.EquipmentId); unit.UnitName = String.Format("{0} {1}", unitId, unit.Equipment.EquipmentDescription); unit.CoreIndicator = scenarioUnit.CordInd; unit.CurrentExperience = scenarioUnit.Experience; unit.CurrentStrength = scenarioUnit.Strength; unit.CurrentAttackPoints = scenarioUnit.Strength; unit.Nation = Game.NationFactory.GetNation(scenarioUnit.NationId); unit.CoreIndicator = scenarioUnit.CordInd; unit.CurrentAmmo = unit.Equipment.MaxAmmo; unit.CurrentFuel = unit.Equipment.MaxFuel; unit.CanMove = true; unit.CanAttack = true; unit.CurrentTileId = scenarioUnit.StartingScenarioTileId; return unit; }
public IUnit CreateUnit(int unitId, ScenarioUnit scenarioUnit) { Equipment equipment = EquipmentFactory.GetEquipment(scenarioUnit.EquipmentId); switch(equipment.EquipmentGroupEnum) { case EquipmentGroupEnum.Land: if (equipment.MovementType.IsMotorized) { MotorizedLandCombatUnit motorizedLandCombatUnit = CreateMotorizedLandCombatUnit(unitId, scenarioUnit); if (scenarioUnit.TransportId != 0) { LandTransportUnit landTransportUnit = CreateLandTransport(unitId, scenarioUnit.TransportId, motorizedLandCombatUnit.Nation, motorizedLandCombatUnit.CoreIndicator,scenarioUnit.StartingScenarioTileId); landTransportUnit.LandCombatUnit = motorizedLandCombatUnit; motorizedLandCombatUnit.TransportUnit = landTransportUnit; } return motorizedLandCombatUnit; } else { LandCombatUnit landCombatUnit = CreateLandCombatUnit(unitId, scenarioUnit); if (scenarioUnit.TransportId != 0) { LandTransportUnit landTransportUnit = CreateLandTransport(unitId, scenarioUnit.TransportId, landCombatUnit.Nation, landCombatUnit.CoreIndicator, scenarioUnit.StartingScenarioTileId); landTransportUnit.LandCombatUnit = landCombatUnit; landCombatUnit.TransportUnit = landTransportUnit; } return landCombatUnit; } case EquipmentGroupEnum.Air: return CreateAirCombatUnit(unitId, scenarioUnit); case EquipmentGroupEnum.Sea: return CreateSeaCombatUnit(unitId, scenarioUnit); } return null; }
public IUnit CreateDefaultUnit(int unitId, Int32 equipmentId, Int32 transportEquipmentId, Int32 nationId) { ScenarioUnit scenarioUnit = new ScenarioUnit(); scenarioUnit.EquipmentId = equipmentId; scenarioUnit.TransportId = transportEquipmentId; scenarioUnit.NationId = nationId; scenarioUnit.Strength = 10; return CreateUnit(unitId, scenarioUnit); }