internal override void Process() { var go = this.Device.Player.GameObjectManager.GetBuilderVillageGameObjectByID(this.BuildingID); if (go != null) { Builder_Building b = (Builder_Building)go; Unit_Storage_V2_Componenent c = b.GetUnitStorageV2Component(); c?.AddUnit(this.Unit); } }
public override void Process() { var go = Device.Player.GameObjectManager.GetGameObjectByID(BuildingID, true); if (go != null) { Builder_Building b = (Builder_Building)go; Unit_Storage_V2_Componenent c = b.GetUnitStorageV2Component(); c?.AddUnit(Unit); } }
public override void Process() { Device.Player.Avatar.Wall_Group_ID++; foreach (var WallXY in WallXYs) { var bd = (Buildings)CSV.Tables.Get(Gamefile.Buildings).GetDataWithID(WallID); if (!Device.Player.Avatar.Variables.IsBuilderVillage) { var b = new Building(bd, Device.Player); if (Device.Player.Avatar.HasEnoughResources(bd.GetBuildResource(0).GetGlobalId(), bd.GetBuildCost(0))) { if (Device.Player.HasFreeVillageWorkers) { var rd = bd.GetBuildResource(0); Device.Player.Avatar.Resources.Minus(rd.GetGlobalId(), bd.GetBuildCost(0)); var a = (Combat_Component)b.GetComponent(1, false); a.WallI = Device.Player.Avatar.Wall_Group_ID; b.StartConstructing(WallXY, Device.Player.Avatar.Variables.IsBuilderVillage); Device.Player.GameObjectManager.AddGameObject(b); } } } else { var b = new Builder_Building(bd, Device.Player); if (Device.Player.Avatar.HasEnoughResources(bd.GetBuildResource(0).GetGlobalId(), bd.GetBuildCost(0))) { if (Device.Player.HasFreeBuilderWorkers) { var rd = bd.GetBuildResource(0); Device.Player.Avatar.Resources.Minus(rd.GetGlobalId(), bd.GetBuildCost(0)); var a = (Combat_Component)b.GetComponent(1, false); a.WallI = Device.Player.Avatar.Wall_Group_ID; b.StartConstructing(WallXY, Device.Player.Avatar.Variables.IsBuilderVillage); Device.Player.GameObjectManager.AddGameObject(b); } } } } }
internal override void Process() { var ca = this.Device.Player.Avatar; var bd = (Buildings)CSV.Tables.Get(Gamefile.Buildings).GetDataWithID(BuildingId); if (!ca.Variables.IsBuilderVillage) { var b = new Building(bd, this.Device.Player); if (ca.HasEnoughResources(bd.GetBuildResource(0).GetGlobalID(), bd.GetBuildCost(0))) { if (bd.IsWorkerBuilding()) { if (this.Device.Player.VillageWorkerManager.WorkerCount > 0) { int Cost = 0; var row = CSV.Tables.Get(Gamefile.Globals); if (this.Device.Player.VillageWorkerManager.WorkerCount == 1) { Cost = ((Globals)row.GetData("WORKER_COST_2ND")).NumberValue; } else if (this.Device.Player.VillageWorkerManager.WorkerCount == 2) { Cost = ((Globals)row.GetData("WORKER_COST_3RD")).NumberValue; } else if (this.Device.Player.VillageWorkerManager.WorkerCount == 3) { Cost = ((Globals)row.GetData("WORKER_COST_4TH")).NumberValue; } else if (this.Device.Player.VillageWorkerManager.WorkerCount >= 4) { Cost = ((Globals)row.GetData("WORKER_COST_5TH")).NumberValue; } var rd = bd.GetBuildResource(0); ca.Resources.Minus(rd.GetGlobalID(), Cost); } b.StartConstructing(this.Vector, false); this.Device.Player.GameObjectManager.AddGameObject(b); return; } if (this.Device.Player.HasFreeVillageWorkers) { var rd = bd.GetBuildResource(0); ca.Resources.Minus(rd.GetGlobalID(), bd.GetBuildCost(0)); b.StartConstructing(this.Vector, this.Device.Player.Avatar.Variables.IsBuilderVillage); this.Device.Player.GameObjectManager.AddGameObject(b); } } } else { var b = new Builder_Building(bd, this.Device.Player); if (ca.HasEnoughResources(bd.GetBuildResource(0).GetGlobalID(), bd.GetBuildCost(0))) { if (bd.IsWorker2Building()) { b.StartConstructing(this.Vector, true); this.Device.Player.GameObjectManager.AddGameObject(b); return; } if (this.Device.Player.HasFreeBuilderVillageWorkers) { var rd = bd.GetBuildResource(0); ca.Resources.Minus(rd.GetGlobalID(), bd.GetBuildCost(0)); b.StartConstructing(this.Vector, true); this.Device.Player.GameObjectManager.AddGameObject(b); } } } }
public void Load(JObject jsonObject) { var jsonBuildings = (JArray) jsonObject["buildings"]; foreach (JObject jsonBuilding in jsonBuildings) { var bd = CSV.Tables.Get(Gamefile.Buildings) .GetDataWithID(jsonBuilding["data"].ToObject<int>()) as Buildings; var b = new Building(bd, Level); AddGameObject(b); b.Load(jsonBuilding); } var jsonObstacles = (JArray) jsonObject["obstacles"]; foreach (JObject jsonObstacle in jsonObstacles) { var dd = CSV.Tables.Get(Gamefile.Obstacles).GetDataWithID(jsonObstacle["data"].ToObject<int>()) as Obstacles; var d = new Obstacle(dd, Level); AddGameObject(d); d.Load(jsonObstacle); } var jsonTraps = (JArray) jsonObject["traps"]; foreach (JObject jsonTrap in jsonTraps) { var td = CSV.Tables.Get(Gamefile.Traps).GetDataWithID(jsonTrap["data"].ToObject<int>()) as Traps; var t = new Trap(td, Level); AddGameObject(t); t.Load(jsonTrap); } var jsonDecos = (JArray) jsonObject["decos"]; foreach (JObject jsonDeco in jsonDecos) { var dd = CSV.Tables.GetWithGlobalID(jsonDeco["data"].ToObject<int>()) as Decos; var d = new Deco(dd, Level); AddGameObject(d); d.Load(jsonDeco); } var villageObjects = (JArray) jsonObject["vobjs"]; foreach (JObject villageObject in villageObjects) { var dd = CSV.Tables.GetWithGlobalID(villageObject["data"].ToObject<int>()) as Village_Objects; var d = new Village_Object(dd, Level); AddGameObject(d); d.Load(villageObject); } var jsonBuildings2 = (JArray) jsonObject["buildings2"]; foreach (JObject jsonBuilding2 in jsonBuildings2) { var bd = CSV.Tables.Get(Gamefile.Buildings) .GetDataWithID(jsonBuilding2["data"].ToObject<int>()) as Buildings; var b = new Builder_Building(bd, Level); AddGameObject(b); b.Load(jsonBuilding2); } var jsonObstacles2 = (JArray) jsonObject["obstacles2"]; foreach (JObject jsonObstacle2 in jsonObstacles2) { var dd = CSV.Tables.Get(Gamefile.Obstacles) .GetDataWithID(jsonObstacle2["data"].ToObject<int>()) as Obstacles; var d = new Builder_Obstacle(dd, Level); AddGameObject(d); d.Load(jsonObstacle2); } var jsonTraps2 = (JArray) jsonObject["traps2"]; foreach (JObject jsonTrap2 in jsonTraps2) { var td = CSV.Tables.Get(Gamefile.Traps).GetDataWithID(jsonTrap2["data"].ToObject<int>()) as Traps; var t = new Builder_Trap(td, Level); AddGameObject(t); t.Load(jsonTrap2); } var jsonDecos2 = (JArray) jsonObject["decos2"]; foreach (JObject jsonDeco2 in jsonDecos2) { var dd = CSV.Tables.GetWithGlobalID(jsonDeco2["data"].ToObject<int>()) as Decos; var d = new Builder_Deco(dd, Level); AddGameObject(d); d.Load(jsonDeco2); } var jsonObjects2 = (JArray) jsonObject["vobjs2"]; foreach (JObject jsonObject2 in jsonObjects2) { var dd = CSV.Tables.GetWithGlobalID(jsonObject2["data"].ToObject<int>()) as Village_Objects; var d = new Builder_Village_Object(dd, Level); AddGameObject(d); d.Load(jsonObject2); } }
internal override void Process() { var ca = this.Device.Player.Avatar; var go = this.Device.Player.Avatar.Variables.IsBuilderVillage ? this.Device.Player.GameObjectManager.GetBuilderVillageGameObjectByID(BuildingId) : this.Device.Player.GameObjectManager.GetGameObjectByID(BuildingId); if (go != null) { var b = (ConstructionItem)go; if (b.CanUpgrade()) { if (b.ClassId == 0 || b.ClassId == 7) { var bd = (Buildings)b.GetConstructionItemData(); Files.CSV_Logic.Resource rd = IsAltResource ? bd.GetAltBuildResource(b.GetUpgradeLevel() + 1) : bd.GetBuildResource(b.GetUpgradeLevel() + 1); if (ca.HasEnoughResources(rd.GetGlobalID(), bd.GetBuildCost(b.GetUpgradeLevel()))) { if (this.Device.Player.Avatar.Variables.IsBuilderVillage ? this.Device.Player.HasFreeBuilderVillageWorkers : this.Device.Player.HasFreeVillageWorkers) { var name = go.GetData().Row.Name; #if DEBUG Loggers.Log(b.ClassId == 0 ? "Building" + $" : Upgrading {name} with ID {BuildingId}" : "Builder Building" + $" : Upgrading {name} with ID {BuildingId}", true); #endif if (bd.IsTownHall2()) { if (ca.Builder_TownHall_Level == 0) { Parallel.ForEach(this.Device.Player.GameObjectManager.GetGameObjects(7), Object => { Builder_Building b2 = (Builder_Building)Object; var bd2 = b2.GetBuildingData; if (b2.Locked) { if (bd2.Locked) { return; } #if DEBUG Loggers.Log( $"Builder Building: Unlocking {bd2.Name} with ID {Object.GlobalId}", true); #endif b2.Unlock(); } }); } ca.Builder_TownHall_Level++; } if (bd.IsAllianceCastle()) { var a = (Building)go; var al = a.GetBuildingData; ca.Castle_Level++; ca.Castle_Total = al.GetUnitStorageCapacity(ca.Castle_Level); ca.Castle_Total_SP = al.GetAltUnitStorageCapacity(ca.Castle_Level); } else if (bd.IsTownHall()) { ca.TownHall_Level++; } ca.Resources.Minus(rd.GetGlobalID(), bd.GetBuildCost(b.GetUpgradeLevel())); b.StartUpgrading(this.Device.Player.Avatar.Variables.IsBuilderVillage); } } } else if (b.ClassId == 4 || b.ClassId == 11) { var bd = (Traps)b.GetConstructionItemData(); if (ca.HasEnoughResources(bd.GetBuildResource(b.GetUpgradeLevel()).GetGlobalID(), bd.GetBuildCost(b.GetUpgradeLevel()))) { if (this.Device.Player.Avatar.Variables.IsBuilderVillage ? this.Device.Player.HasFreeBuilderVillageWorkers : this.Device.Player.HasFreeVillageWorkers) { var name = go.GetData().Row.Name; #if DEBUG Loggers.Log($"Trap: Upgrading {name} with ID {BuildingId}", true); #endif var rd = bd.GetBuildResource(b.GetUpgradeLevel() + 1); ca.Resources.Minus(rd.GetGlobalID(), bd.GetBuildCost(b.GetUpgradeLevel())); b.StartUpgrading(this.Device.Player.Avatar.Variables.IsBuilderVillage); } } } else if (b.ClassId == 8 || b.ClassId == 15) { var bd = (Village_Objects)b.GetConstructionItemData(); if (ca.HasEnoughResources(bd.GetBuildResource(b.GetUpgradeLevel()).GetGlobalID(), bd.GetBuildCost(b.GetUpgradeLevel()))) { if (this.Device.Player.Avatar.Variables.IsBuilderVillage ? this.Device.Player.HasFreeBuilderVillageWorkers : this.Device.Player.HasFreeVillageWorkers) { var name = go.GetData().Row.Name; #if DEBUG Loggers.Log($"Village Object: Upgrading {name} with ID {BuildingId}", true); #endif var rd = bd.GetBuildResource(b.GetUpgradeLevel() + 1); ca.Resources.Minus(rd.GetGlobalID(), bd.GetBuildCost(b.GetUpgradeLevel())); b.StartUpgrading(this.Device.Player.Avatar.Variables.IsBuilderVillage); } } } } } }
public override void Process() { var ca = Device.Player.Avatar; var bd = (Buildings)CSV.Tables.Get(Gamefile.Buildings).GetDataWithID(BuildingId); if (bd != null) { if (!ca.Variables.IsBuilderVillage) { var b = new Building(bd, Device.Player); if (ca.HasEnoughResources(bd.GetBuildResource(0).GetGlobalId(), bd.GetBuildCost(0))) { if (bd.IsWorkerBuilding()) { if (Device.Player.VillageWorkerManager.GetFreeWorkers() > 0) { var Cost = 0; var row = CSV.Tables.Get(Gamefile.Globals); if (Device.Player.VillageWorkerManager.GetTotalWorkers() == 1) { Cost = ((Globals)row.GetData("WORKER_COST_2ND")).NumberValue; } else if (Device.Player.VillageWorkerManager.GetTotalWorkers() == 2) { Cost = ((Globals)row.GetData("WORKER_COST_3RD")).NumberValue; } else if (Device.Player.VillageWorkerManager.GetTotalWorkers() == 3) { Cost = ((Globals)row.GetData("WORKER_COST_4TH")).NumberValue; } else if (Device.Player.VillageWorkerManager.GetTotalWorkers() >= 4) { Cost = ((Globals)row.GetData("WORKER_COST_5TH")).NumberValue; } var rd = bd.GetBuildResource(0); ca.Resources.Minus(rd.GetGlobalId(), Cost); } b.StartConstructing(XY, false); Device.Player.GameObjectManager.AddGameObject(b); return; } if (Device.Player.HasFreeVillageWorkers) { var rd = bd.GetBuildResource(0); ca.Resources.Minus(rd.GetGlobalId(), bd.GetBuildCost(0)); b.StartConstructing(XY, false); Device.Player.GameObjectManager.AddGameObject(b); } } } else { var b = new Builder_Building(bd, Device.Player); if (ca.HasEnoughResources(bd.GetBuildResource(0).GetGlobalId(), bd.GetBuildCost(0))) { if (bd.IsWorker2Building()) { b.StartConstructing(XY, true); Device.Player.GameObjectManager.AddGameObject(b); return; } if (Device.Player.HasFreeBuilderWorkers) { var rd = bd.GetBuildResource(0); ca.Resources.Minus(rd.GetGlobalId(), bd.GetBuildCost(0)); b.StartConstructing(XY, true); Device.Player.GameObjectManager.AddGameObject(b); } } } } else { new Out_Of_Sync(this.Device).Send(); } }