public Task LoadData(long version) { if (GetUpdateFromDataFolder(version)) { // Load all GameObjects List<AoABuilding> BuildingsList = new List<AoABuilding>(); List<NdfObject> tunites = _EverythingNdfbin.GetClass("TUniteDescriptor").Instances; foreach (NdfObject obj in tunites) { AoAGameObject gobj = new AoAGameObject(); if (gobj.LoadData(obj, _UniteDic, _TechDic, _IconsPack)) { if (gobj.Type == ObjectType.Building) { AoABuilding building = new AoABuilding(gobj); if (building.LoadData(obj, _UniteDic, _TechDic, _IconsPack)) { BuildingsList.Add(building); } } else { } } } Classify(BuildingsList); } else { throw new Exception("Couldn't load game data, check game folder."); } return null; }
public new bool LoadData(NdfObject dataobject, TradManager dictionary, TradManager techdic, EdataManager iconPackage) { NdfCollection collection; // UNITS if (dataobject.TryGetValueFromQuery<NdfCollection>(PRODUCABLE_UNITS_PATH, out collection)) { List<CollectionItemValueHolder> unitss = collection.InnerList.FindAll(x => x.Value is NdfObjectReference); List<NdfObjectReference> units = new List<NdfObjectReference>(); foreach (CollectionItemValueHolder uni in unitss) { units.Add(uni.Value as NdfObjectReference); } AoAGameObject obj; foreach (NdfObjectReference unit in units) { obj = new AoAGameObject(); if (obj.LoadData(unit.Instance, dictionary, techdic, iconPackage)) if (obj.Type != ObjectType.Building) { AoAUnit aunit = new AoAUnit(obj); if (aunit.LoadData(unit.Instance, dictionary, techdic, iconPackage)) // !!!!! _BuildableUnits.Add(aunit); } } } //Stealth NdfSingle ndfFloat32; IsStealthy = false; if (dataobject.TryGetValueFromQuery<NdfSingle>(STEALTH_PATH, out ndfFloat32)) IsStealthy = ndfFloat32.Value >= 50f; if (dataobject.TryGetValueFromQuery<NdfSingle>(DAMMAGE_PATH, out ndfFloat32)) Health = ndfFloat32.Value; // Armor NdfUInt32 ndfuint32; Armor = 0; if (dataobject.TryGetValueFromQuery<NdfUInt32>(ARMOR_PATH, out ndfuint32)) Armor = (int)ndfuint32.Value; // vIEW RANGE if (dataobject.TryGetValueFromQuery<NdfSingle>(VIEW_RANGE_PATH, out ndfFloat32)) { ViewRange = ndfFloat32.Value; } else { ViewRange = 0; } //Turrets NdfCollection ndfCollection; if (dataobject.TryGetValueFromQuery<NdfCollection>(TURRET_LIST_PATH, out ndfCollection)) { List<CollectionItemValueHolder> turrs = ndfCollection.InnerList.FindAll(x => x.Value is NdfObjectReference); List<NdfObjectReference> turrets = new List<NdfObjectReference>(); foreach (CollectionItemValueHolder turr in turrs) { turrets.Add(turr.Value as NdfObjectReference); } AoATurret turret; int turretNum = 1; foreach (NdfObjectReference turr in turrets) { turret = new AoATurret("T" + turretNum++); if (turret.LoadData(turr.Instance, dictionary, techdic, iconPackage)) Turrets.Add(turret); } } //RESEARCHES if (dataobject.TryGetValueFromQuery<NdfCollection>(AVAILABLE_RESEARCHES_PATH, out collection)) { List<CollectionItemValueHolder> ress = collection.InnerList.FindAll(x => x.Value is NdfObjectReference); List<NdfObjectReference> researches = new List<NdfObjectReference>(); foreach (CollectionItemValueHolder uni in ress) { researches.Add(uni.Value as NdfObjectReference); } AoAResearch aResearch; foreach (NdfObjectReference research in researches) { aResearch = new AoAResearch(); if (aResearch.LoadData(research.Instance, dictionary, techdic, iconPackage)) // tech.dic ! { Researches.Add(aResearch); } } } return true; }
public bool LoadData() { List<AoAGameObject> result = new List<AoAGameObject>(); if (GetLastUpdateFromDataFolder()) { // Load all GameObjects List<AoABuilding> BuildingsList = new List<AoABuilding>(); List<NdfObject> tunites = _EverythingNdfbin.GetClass("TUniteDescriptor").Instances; OnLoadingUpdate(this, "loading buildings and units..."); foreach (NdfObject obj in tunites) { AoAGameObject gobj = new AoAGameObject(); if (gobj.LoadData(obj, _UniteDic, _TechDic,_IconsPack)) { if (gobj.Type == ObjectType.Building) { AoABuilding building = new AoABuilding(gobj); if (building.LoadData(obj, _UniteDic, _TechDic, _IconsPack)) { BuildingsList.Add(building); } } else { } } } OnLoadingUpdate(this, "processing buildings..."); Classify(BuildingsList); return true; } else { return false; } }
public new bool LoadData(NdfObject dataobject, TradManager dictionary, TradManager dictionary2, EdataManager iconPackage) { NdfUInt32 ndfuint32; NdfSingle ndfFloat32; NdfInt32 ndfInt32; NdfObject ndfObject; NdfCollection ndfCollection; // HP if (!dataobject.TryGetValueFromQuery<NdfSingle>(DAMMAGE_PATH, out ndfFloat32)) return false; Health = ndfFloat32.Value; // Armor Armor = 0; if (dataobject.TryGetValueFromQuery<NdfUInt32>(ARMOR_PATH, out ndfuint32)) Armor = (int)ndfuint32.Value; //POW if (dataobject.TryGetValueFromQuery<NdfUInt32>(POW_PATH, out ndfuint32)) nbrPOW = (int)ndfuint32.Value; //AutoReveal if (!dataobject.TryGetValueFromQuery<NdfInt32>(AUTOREVEAL_PATH, out ndfInt32)) return false; AutoReveal = ndfInt32.Value == 2; //Transporter if (dataobject.TryGetValueFromQuery<NdfInt32>(TRANSPORT_PATH, out ndfInt32)) { TransportSlot = ndfInt32.Value; } else { TransportSlot = 0; } //Stealth if (!dataobject.TryGetValueFromQuery<NdfSingle>(STEALTH_PATH, out ndfFloat32)) return false; IsStealthy = ndfFloat32.Value >= 50f; // vIEW RANGE if (dataobject.TryGetValueFromQuery<NdfSingle>(VIEW_RANGE_PATH, out ndfFloat32)) { ViewRange = ndfFloat32.Value; } else { ViewRange = 0; } // Slot Taken if(dataobject.TryGetValueFromQuery<NdfInt32>(TRANSPORTABLE_PATH, out ndfInt32)) { SlotTaken = ndfInt32.Value; } else { SlotTaken = 0; } //Turrets if(dataobject.TryGetValueFromQuery<NdfCollection>(TURRET_LIST_PATH, out ndfCollection)) { List<CollectionItemValueHolder> turrs = ndfCollection.InnerList.FindAll(x => x.Value is NdfObjectReference); List<NdfObjectReference> turrets = new List<NdfObjectReference>(); foreach (CollectionItemValueHolder turr in turrs) { turrets.Add(turr.Value as NdfObjectReference); } AoATurret turret; int turrentNum = 1; foreach(NdfObjectReference turr in turrets) { turret = new AoATurret("T" + turrentNum++); if(turret.LoadData(turr.Instance, dictionary, dictionary2, iconPackage)) Turrets.Add(turret); } }// a tester //Vehicle // Speed if(!dataobject.TryGetValueFromQuery<NdfSingle>(SPEED_PATH, out ndfFloat32)) return false; Speed = ndfFloat32.Value; OnRoadSpeed = Speed; if (dataobject.TryGetValueFromQuery<NdfSingle>(ROAD_BONUS, out ndfFloat32)) OnRoadSpeed *= ndfFloat32.Value ; // Upgrades if (dataobject.TryGetValueFromQuery<NdfCollection>(AVAILABLE_RESEARCHES_PATH, out ndfCollection)) { List<CollectionItemValueHolder> ress = ndfCollection.InnerList.FindAll(x => x.Value is NdfObjectReference); List<NdfObjectReference> researches = new List<NdfObjectReference>(); foreach (CollectionItemValueHolder uni in ress) { researches.Add(uni.Value as NdfObjectReference); } AoAResearch aResearch; foreach (NdfObjectReference research in researches) { aResearch = new AoAResearch(); if (aResearch.LoadData(research.Instance, dictionary, dictionary2, iconPackage)) // tech.dic ! { Upgrades.Add(aResearch); } } } // UnitChildren NdfObjectReference ndfref; if (dataobject.TryGetValueFromQuery<NdfObjectReference>(CHILD_PATH, out ndfref)) { AoAGameObject obj = new AoAGameObject(); obj.LoadData(ndfref.Instance, dictionary, dictionary2, iconPackage); AoAUnit unit = new AoAUnit(obj); unit.LoadData(ndfref.Instance, dictionary, dictionary2, iconPackage); Children.Add(unit); } else { // Regarder dans technoregistrar ? } return true; }