private void processBuildingHover(Vector2 mousePos) { int buildingId = DayGameEngineImp.getGameEngine().getMapManager().getScreenCollision(mousePos); if (buildingId >= 0) { if ((null != lastHoveredBuildingData) && (lastHoveredBuildingData.getID() != buildingId)) { // remove the hover from the last building lastHoveredBuildingData.setOver(false); lastHoveredBuildingData = null; } // add the hover to the next hover Building b = DayGameEngineImp.getGameEngine().getMapManager().getBuildingByID(buildingId); if (b != null) { lastHoveredBuildingData = b.getBuildingData(); lastHoveredBuildingData.setOver(true); } } else { // removing the hover if (null != lastHoveredBuildingData) { lastHoveredBuildingData.setOver(false); lastHoveredBuildingData = null; } } }
private void OnChangeStateBuilding(BuildingData buildingData) { switch (buildingData.State) { case BuildingState.Normal: PrototypeModel.SetActive(false); BeingBuiltModel.SetActive(false); if (_currentModel != null) _currentModel.SetActive(true); break; case BuildingState.BeingBuilt: PrototypeModel.SetActive(false); if (_currentModel != null) _currentModel.SetActive(false); BeingBuiltModel.SetActive(true); break; case BuildingState.Prototype: if (_currentModel != null) _currentModel.SetActive(false); BeingBuiltModel.SetActive(false); PrototypeModel.SetActive(true); break; default: break; } }
// Use this for initialization void Start () { DB.init (); currentActivePage = Global; status = "global"; if (currentBuilding){ currentBuildingData = currentBuilding.GetComponent<BuildingData>() ; } }
// public static void Unpack public static void Unpack(BuildingData BData, List<string> ChainData) { List<I_DataField> ListData = BData._Building.getDataField(); if (ChainData.Count <= StartIndex) return; for(int i = 0; i < ListData.Count; i++) { ListData[i].Unpack(BData, ChainData[i + StartIndex]); } }
public static String Pack(BuildingData BData) { List<I_DataField> ListData = BData._Building.getDataField(); String TmpData = ""; foreach (I_DataField Data in ListData) { TmpData += Data.Pack(BData) + ";"; } return TmpData; }
public void AddNewBuilding(BuildingData newBuildingData) { string prefabPath = "Building/Building_" + newBuildingData.Type.ToString() + "_" + newBuildingData.Level.ToString("D2"); GameObject prefab = Resources.Load<GameObject>(prefabPath); GameObject newBuildingGO = GameObject.Instantiate(prefab) as GameObject; newBuildingGO.transform.parent = transform; BuildingComp buildingComp = newBuildingGO.GetComponent<BuildingComp>(); buildingComp.Data = newBuildingData; BuildingCompList.Add(buildingComp); RepositionBuilding(buildingComp); }
public void queueBuildingToScavenge(BuildingData data) { //Console.WriteLine("We queued the building " + data.getID()); // keep track of all the buildings that we will be scavenging buildingsToScavenge.Add(data); if (getNumAvailableSurvivorsToScavenge() <= 0) { runSim(); } }
public void update( BuildingData currentBuildingData) { int l = currentBuildingData.likeNum ; int d = currentBuildingData.dislikeNum ; this.gameObject.SetActive(false); if (l == 0 && d == 0 ){ like = true ; likePercentage = 0.5f ; }else{ like = l > d ; likePercentage = (like ? l : d ) / (float)(l+d) ; } this.gameObject.SetActive(true); }
public void displayPopUp(BuildingData data) { tempBuilding = data; menuItems[3].Alive = true; menuItems[4].Alive = true; menuItems[5].Alive = true; menuItems[3].Font = popUpHeader; menuItems[3].Text[0] = data.getBuildingDescription(); menuItems[3].popUpHeader(); menuItems[3].PopUpImg = data.getTexture(); string[] subText = {"Estimated Totals", "Suvivors: " + data.getSurvivors(), "Food: " + data.getFood(), "Ammo: " + data.getAmmo() }; if (data.isSafehouse()) { subText = new string[] { "SafeHouse: No Supplies" }; } menuItems[3].popUpSub(popUpSubText, subText); }
public void Fight() { var query = new AVQuery<AVObject>("Building").WhereEqualTo("UserID", CurMatchUser.ObjectId); query.FindAsync().ContinueWith(t=>{ List<BuildingData> buildingDataList = new List<BuildingData>(); foreach(AVObject buildingObject in (t as Task<IEnumerable<AVObject>>).Result) { BuildingData buildingData = new BuildingData(); buildingData.UserID = buildingObject.Get<string>("UserID"); buildingData.Type = (EBuildingType)buildingObject.Get<int>("Type"); buildingData.Level = buildingObject.Get<int>("Level"); buildingData.Value = buildingObject.Get<int>("Value"); buildingData.SlotID = buildingObject.Get<int>("SlotID"); buildingDataList.Add(buildingData); } GameManager.Instance.LastMatchBuildingDataList = buildingDataList; GameManager.Instance.EventQueue.Queue.Enqueue(new EventItem(){Type = EEventItemType.EnemyBuildingLoaded}); }); }
public int SlotID; // 位置 public static void DB_CreateBuilding(int slotId, EBuildingType type) { AVObject obj = new AVObject("Building"); obj["UserID"] = AVUser.CurrentUser.ObjectId; obj["Type"] = (int)type; obj["Level"] = 1; obj["Value"] = 1; obj["SlotID"] = slotId; obj.SaveAsync().ContinueWith(t => { BuildingData newBuilding = new BuildingData(); newBuilding.UserID = AVUser.CurrentUser.ObjectId; newBuilding.Type = type; newBuilding.Level = 1; newBuilding.Value = 1; newBuilding.SlotID = slotId; GameManager.Instance.LastCreatedBuilding = newBuilding; GameManager.Instance.EventQueue.Queue.Enqueue(new EventItem(){Type = EEventItemType.BuildCommandOK}); }); }
public BuildingData OnBuilding() { if (myPlayer.Money >= 140 && turn <= 17) { UnitInfo unit = myUnits.ElementAt(0); for (int i = 0; i < builtCities.Count; i++) { if (builtCities[i].X == unit.PositionX && builtCities[i].Y == unit.PositionY) return null; } BuildingData cmd = new BuildingData(); cmd.PositionX = unit.PositionX; cmd.PositionY = unit.PositionY; citiesCount++; builtCities.Add(new Position { X=cmd.PositionX, Y=cmd.PositionY }); myPlayer.Money -= 140; return cmd; } return null; }
public BuildingData OnBuilding() { if (myInfo.Money >= 140) { int epito = -1; for (int i = 0; i < myUnits.Count; i++) { bool epithet = true; for (int j = 0; j < myCities.Count; j++) { if (myCities.ElementAt(j).PositionX == myUnits.ElementAt(i).PositionX && myCities.ElementAt(j).PositionY == myUnits.ElementAt(i).PositionY) epithet = false; } for (int j = 0; j < enemyCities.Count; j++) { if (enemyCities.ElementAt(j).PositionX == myUnits.ElementAt(i).PositionX && enemyCities.ElementAt(j).PositionY == myUnits.ElementAt(i).PositionY) epithet = false; } if (epithet) { epito = i; break; } } if (epito == -1) return null; UnitInfo unit = myUnits.ElementAt(epito); BuildingData cmd = new BuildingData(); cmd.PositionX = unit.PositionX; cmd.PositionY = unit.PositionY; myInfo.Money -= 140; myCities.Add(new CityInfo() { PositionX = cmd.PositionX, PositionY = cmd.PositionY, Owner = PlayerName }); return cmd; } return null; }
public BuildingData OnBuilding() { if (playerCount > 2) return null; if (myInfo.Money >= 140) { for (int i = 0; i < myUnits.Count; i++) { if (!isTown(myUnits.ElementAt(i).PositionX, myUnits.ElementAt(i).PositionY)) { BuildingData cmd = new BuildingData(); cmd.PositionX = myUnits.ElementAt(i).PositionX; cmd.PositionY = myUnits.ElementAt(i).PositionY; myInfo.Money -= 140; return cmd; } } } return null; }
// 网络-注册 public void NetDoRegist(string userName, string password, string email) { AVUser user = new AVUser(); user.Username = userName; user.Password = password; user.Email = email; GameManager.Instance.AsyncBeginWait(); user.SignUpAsync().ContinueWith(t => { // TODO 创建玩家的Village GameManager.Instance.AsyncBeginWait(); AVObject obj = new AVObject("Village"); obj["UserID"] = AVUser.CurrentUser.ObjectId; obj["Belief"] = 0; obj["BeliefAll"] = 0; obj.SaveAsync().ContinueWith(t2 => { // 创建玩家神庙 BuildingData newBuilding = new BuildingData(); newBuilding.AVObject = new AVObject("Building"); newBuilding.UserID = AVUser.CurrentUser.ObjectId; newBuilding.Type = EBuildingType.Altar; newBuilding.Level = 1; newBuilding.SlotID = 4; newBuilding.Sibling = 1; newBuilding.AVObject.SaveAsync().ContinueWith(t3=>{ // 进入登录界面 // TODO 将用户名和密码拷贝过去 GameManager.Instance.AsyncEndWait(()=>{ UIManager.Instance.ChangeScreen(EScreen.Login); }); }); }); }); }
protected override void onMessageDeployMCV(Yad.Net.Messaging.GMDeployMCV dmcv) { Player p = players[dmcv.IdPlayer]; UnitMCV mcv = (UnitMCV)p.GetUnit(ObjectID.From(dmcv.McvID.ObjectId, dmcv.McvID.PlayerID)); if (mcv == null) { InfoLog.WriteInfo("No mcv to deploy found.", EPrefix.SimulationInfo); return; } string bName = mcv.MCVData.BuildingCanProduce; short btype = GlobalSettings.Wrapper.namesToIds[bName]; this._map.Units[mcv.Position.X, mcv.Position.Y].Remove(mcv); BuildingData bd = GlobalSettings.Wrapper.buildingsMap[btype]; if (!Building.CheckBuildPosition(bd, mcv.Position, _map, dmcv.McvID.PlayerID)) { this._map.Units[mcv.Position.X, mcv.Position.Y].AddLast(mcv); if (InvalidBuild != null) { InvalidBuild(-1); } return; } this._map.Units[mcv.Position.X, mcv.Position.Y].AddLast(mcv); Building b = AddBuilding(dmcv.McvID.PlayerID, -1, btype, mcv.Position); b.State = Building.BuildingState.normal; UpdatePowerManagement(b); OnBuildingCompleted(b, -1); destroyUnit(mcv); //OnUnitDestroyed(mcv); if (MCVDeployed != null) { MCVDeployed(mcv); } }
internal override void Process() { var ca = this.Device.Player.Avatar; var go = this.Device.Player.GameObjectManager.GetGameObjectByID(BuildingId); if (go != null) { var b = (ConstructionItem)go; if (b.CanUpgrade()) { var bd = b.GetConstructionItemData(); if (ca.HasEnoughResources(bd.GetBuildResource(b.GetUpgradeLevel() + 1), bd.GetBuildCost(b.GetUpgradeLevel() + 1))) { if (this.Device.Player.HasFreeWorkers()) { string name = this.Device.Player.GameObjectManager.GetGameObjectByID(BuildingId).GetData().GetName(); Logger.Write("Building To Upgrade : " + name + " (" + BuildingId + ')'); if (string.Equals(name, "Alliance Castle")) { ca.IncrementAllianceCastleLevel(); Building a = (Building)this.Device.Player.GameObjectManager.GetGameObjectByID(BuildingId); BuildingData al = a.GetBuildingData(); ca.SetAllianceCastleTotalCapacity(al.GetUnitStorageCapacity(ca.GetAllianceCastleLevel())); } else if (string.Equals(name, "Town Hall")) { ca.IncrementTownHallLevel(); } var rd = bd.GetBuildResource(b.GetUpgradeLevel() + 1); ca.SetResourceCount(rd, ca.GetResourceCount(rd) - bd.GetBuildCost(b.GetUpgradeLevel() + 1)); b.StartUpgrading(); } } } } }
public ProxyBuildingData(string id, BuildingDataManager manager, ITownManager crafTownManager) { _manager = manager; _crafTownManager = crafTownManager; _buildingData = new BuildingData(id); var data = manager.Rep.FindById(id); if (data != null) { var i = 0; foreach (var dataTaxData in data.TaxDatas) { _buildingData.TaxDatas[i++] = dataTaxData; if (i >= _buildingData.TaxDatas.Length) { break; } } } _crafTownManager.TownChanged += ManagerOnTownChanged; UpdateTax += OnUpdateTax; ManagerOnTownChanged(crafTownManager); }
void HighlightBuilding() { if (Input.GetMouseButtonDown(0)) { RaycastHit hitted; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hitted, 100f, 1 << LayerMask.NameToLayer("Building"))) { if (!isPlacing) { BuildingData selectedData = hitted.collider.gameObject.GetComponent <BuildingInfo>().buildData; UiManager.UpdateHighlightText(selectedData, UiManager.highlightPanel, hitted.collider.gameObject); if (selectedData.name == "Mine 1") { UiManager.mine = hitted.collider.gameObject; } // highlight //update UI } } } }
async void LoadBuildingsAsync(string bodyID) { var json = Body.GetBuildings(1, account.SessionID, bodyID); var s = new Server(); var response = await s.GetHttpResultAsync(account.Server, Body.url, json); if (response.result != null) { buildingList.Clear(); foreach (var bd in response.result.buildings.OrderBy(x => x.Value.name)) { var b = new BuildingData(); b.BuildingName = bd.Value.name; b.BuildingLevel = bd.Value.level; b.Efficiency = bd.Value.efficiency; b.BuildingID = bd.Key; b.ImageName = bd.Value.image; b.url = "https://raw.githubusercontent.com/plainblack/Lacuna-Assets/master/planet_side/100/" + bd.Value.image + ".png"; b.BuildingURL = bd.Value.url; buildingList.Add(b); } } }
public void Setup(BuildingData _myData) { myData = _myData; for (int y = 0; y < myData.shape.column.Length; y++) { for (int x = 0; x < myData.shape.column[y].row.Length; x++) { if (myData.shape.column[y].row[x]) { //print (x + " - " + y); Position myPos = (new Position(x, y) - BuildingData.center); //print(center); mySprites[x, y] = Instantiate(ItemSpritePrefab, myPos.Vector3(Position.Type.itemPlacementHelper) - Vector3.forward, Quaternion.identity); mySprites[x, y].transform.parent = transform; ItemPlacementSpriteHelper mySprite = mySprites[x, y].GetComponent <ItemPlacementSpriteHelper>(); mySprite.x = myPos.x; mySprite.y = myPos.y; } } } }
private void LoadBuilding() /* load building */ { string roomFileJsonName = fileToLoadName[(int)StctType.Building]; InitReading(roomFileJsonName); JBuilding[] buildings = JsonHelper.FromJson <JBuilding>(jsonString); Debug.Log("Loading Building total:" + buildings.Length); foreach (JBuilding building in buildings) { GameObject emptyobj = new GameObject(structTag[(int)StctType.Building] + building.buildingID); emptyobj.tag = structTag[(int)StctType.Building]; //define position emptyobj.AddComponent <BuildingData>(); BuildingData bdt = emptyobj.GetComponent <BuildingData>(); bdt.buidingID = building.buildingID; bdt.buildingName = building.buildingName; //set position depend on index *1000 } }
public List <BuildingData> getBuildingWithCampus(string campus_code) { List <BuildingData> buildingData = new List <BuildingData>(); ConnectDB db = new ConnectDB(); SqlDataSource oracleObj = db.ConnectionOracle(); oracleObj.SelectCommand = "Select * From BUILDING Where CAMPUS_CODE = '" + campus_code + "' Order By BUILDING_CODE"; DataView allData = (DataView)oracleObj.Select(DataSourceSelectArguments.Empty); foreach (DataRowView rowData in allData) { BuildingData building_data = new BuildingData(); building_data.Building_Code = rowData["BUILDING_CODE"].ToString(); building_data.Campus_Code = rowData["CAMPUS_CODE"].ToString(); building_data.Building_ThaiName = rowData["BUILDING_THAINAME"].ToString(); building_data.Building_EngName = rowData["BUILDING_ENGNAME"].ToString(); building_data.Building_ShortName = rowData["BUILDING_SHORTNAME"].ToString(); buildingData.Add(building_data); } return(buildingData); }
public void ShowCurSlotCenter() { if (curSlot != null) { curSlot.ShowBuildingName(); BuildingData data = mediator.GetDataBySlot(mediator.curSlot); curSlot.level = data.level; curSlot.ShowBuildingLevel(); Vector3 offset = curSlot.cameraOffset; Vector3 pos = new Vector3(curSlot.transform.position.x + offset.x, cameraMove.limitBounds.center.y + cameraMove.limitBounds.extents.y + offset.y, curSlot.transform.position.z - Mathf.Tan(cameraMove.angleXRange.y) * (cameraMove.limitBounds.center.y + cameraMove.limitBounds.extents.y) + offset.z); Vector3 angle = new Vector3(cameraMove.angleXRange.y, 0f, 0f); cameraMove.transform.DOMove(pos, 0.5f).SetEase(Ease.OutCirc); cameraMove.cam.transform.DORotate(angle, 0.5f).SetEase(Ease.OutCirc); targetHighlight = curSlot.modelChild.GetComponent <HighlighterController> (); targetHighlight.Fire2(); ShowBtns(); } }
private SoldierFightUIMgr m_soldierFightUIMgr; // public object[] GetBuildingTipsById(int buildingId, float x, float y) { if (BuildingTipsDic.ContainsKey(buildingId) == true) { return(BuildingTipsDic[buildingId]); } object[] tipsContent = new object[] { "", "", null }; BuildingData data = BuildingData.dataMap[buildingId]; tipsContent[0] = LanguageData.GetContent(data.name); tipsContent[1] = LanguageData.GetContent(170, data.building_consume); if (data.attack > 0)//建筑自身有攻击力 { tipsContent[1] = string.Concat(tipsContent[1], "\n", LanguageData.GetContent(183, data.attack)); } if (data.soldier_id > 0)//有士兵产出 { tipsContent[1] = string.Concat(tipsContent[1], "\n", LanguageData.GetContent(171, data.production_time, LanguageData.GetContent(SoldierData.dataMap[data.soldier_id].name))); SoldierData soldierData = SoldierData.dataMap[data.soldier_id]; string attackObject; if (soldierData.attack_object.Count == 2) { attackObject = string.Concat(LanguageData.GetContent(173), ",", LanguageData.GetContent(174)); } else { attackObject = soldierData.attack_object[0] == 1 ? LanguageData.GetContent(173) : LanguageData.GetContent(174); } tipsContent[1] = string.Concat(tipsContent[1], "\n", LanguageData.GetContent(soldierData.name), "\n", LanguageData.GetContent(172, soldierData.energy, soldierData.attack, soldierData.move), attackObject); } tipsContent[2] = new Vector3(x, y, 0); BuildingTipsDic[buildingId] = tipsContent; return(tipsContent); }
public override void Execute(Level level) { var ca = level.GetPlayerAvatar(); var go = level.GameObjectManager.GetGameObjectByID(BuildingId); if (go != null) { var b = (ConstructionItem)go; if (b.CanUpgrade()) { var bd = b.GetConstructionItemData(); if (ca.HasEnoughResources(bd.GetBuildResource(b.GetUpgradeLevel() + 1), bd.GetBuildCost(b.GetUpgradeLevel() + 1))) { if (level.HasFreeWorkers()) { string name = level.GameObjectManager.GetGameObjectByID(BuildingId).GetData().GetName(); if (string.Equals(name, "Alliance Castle")) { ca.IncrementAllianceCastleLevel(); Building a = (Building)level.GameObjectManager.GetGameObjectByID(BuildingId); BuildingData al = a.GetBuildingData(); ca.SetAllianceCastleTotalCapacity(al.GetUnitStorageCapacity(ca.GetAllianceCastleLevel())); } else if (string.Equals(name, "Town Hall")) { ca.IncrementTownHallLevel(); } var rd = bd.GetBuildResource(b.GetUpgradeLevel() + 1); ca.SetResourceCount(rd, ca.GetResourceCount(rd) - bd.GetBuildCost(b.GetUpgradeLevel() + 1)); b.StartUpgrading(); } } } } }
private static void DrawProducts(BuildingData buildingData) { buildingData.ShowProduction = EditorGUILayout.Foldout(buildingData.ShowProduction, "Items", true); if (buildingData.ShowProduction) { List <ItemData> list = buildingData.produceItems; buildingData.produce = EditorGUILayout.Toggle("Produce Items", buildingData.produce); if (buildingData.produce) { EditorGUILayout.BeginHorizontal(); EditorGUI.indentLevel++; if (buildingData.produceItems.Count < 1) { buildingData.AddProduceItem(); } if (GUILayout.Button("-", GUILayout.MaxWidth(50))) { buildingData.RemoveProduceItem(); } if (GUILayout.Button("+", GUILayout.MaxWidth(50))) { buildingData.AddProduceItem(); } EditorGUILayout.EndHorizontal(); for (int i = 0; i < list.Count; i++) { list[i] = (ItemData)EditorGUILayout.ObjectField(list[i], typeof(ItemData), false); } EditorGUI.indentLevel--; } else { buildingData.produceItems.Clear(); } } }
public void InitializeRequirements() { if (Data.ModuleTypeUnderConstruction != Module.Unspecified) { Data.ResourceCount = new Dictionary <Matter, float>(); BuildingData buildingData = Construction.BuildData[Data.ModuleTypeUnderConstruction]; RequiredProgressSeconds = buildingData.BuildTimeHours * SunOrbit.GameSecondsPerMartianMinute * 60f; ResourceList = new List <ResourceComponent>(); //todo: change to Construction.Requirements[underconstruction].keys when that's a dict of <resource, entry> and not a list RequiredResourceMask = new Matter[buildingData.Requirements.Count]; int i = 0; foreach (IResourceEntry required in buildingData.Requirements) { Data.ResourceCount[required.Type] = 0; RequiredResourceMask[i] = required.Type; i++; } int j = 0; int radius = Construction.BuildRadius(Data.ModuleTypeUnderConstruction); foreach (Transform t in this.transform) { if (j < 4)//poles { t.localPosition = new Vector3(j % 2 == 0 ? -radius: radius, 0f, j < 2 ? -radius : radius); } else //tape { int coeff = j % 2 == 0 ? -1 : 1; t.localPosition = new Vector3(j < 6 ? 0 : radius * coeff, 1f, j > 5 ? 0 : radius * coeff); t.localScale = new Vector3(radius * 2, .2f, .01f); } j++; } } }
public CombatComponent(GameObject GameObject) : base(GameObject) { if (GameObject is Building) { Building Building = (Building)GameObject; BuildingData bd = Building.BuildingData; if (bd.AmmoCount > 0) { this.Ammo = bd.AmmoCount; } if (bd.AltAttackMode) { this.AltAttackMode = true; } if (bd.AimRotateStep > 0) { this.AimRotateStep = true; } } else if (GameObject is Trap) { Trap Trap = (Trap)GameObject; TrapData td = Trap.TrapData; if (td.HasAltMode) { this.AltTrapAttackMode = true; } if (td.DirectionCount > 0) { this.AltDirectionMode = true; } } }
//Loads the sprites, adding them to buildingData. Each buildingData contains a set of sprites organized by name. //Names are decided by the word before the first underscore. //All empty rooms must have "Empty" somewhere in their name. private void loadSpritesList(string location) { List <Sprite> allSprites = new List <Sprite>(); allSprites.AddRange(Resources.LoadAll <Sprite>(location)); foreach (Sprite s in allSprites) { string type = s.name.Split('_')[0]; BuildingData bd = new BuildingData(); bool exists = false; for (int i = 0; i < buildingDataList.Count; i++) { if (buildingDataList[i].getTypeName().Equals(type)) { bd = buildingDataList[i]; exists = true; } } if (exists == false) { bd = new BuildingData(type); buildingDataList.Add(bd); } if (s.name.Contains("Empty")) { bd.addEmpty(s); } else { bd.addFull(s); } } }
public void Load(BuildingData building, BaseManager manager) { baseManager = manager; transform.position = new Vector3(building.positionX, building.positionY, building.positionZ); loadPath = building.loadPath; isBuilt = building.isBuilt; workTime = building.workTime; isWorking = building.isWorking; SetBuildTime(building.buildTime); activeTimer = building.activeTimer; buildingLevel = building.level; baseHealthValue = building.baseHealthValue; maxHealth = building.maxHealth; currentHealth = building.currentHealth; maxWorkingVillagers = building.maxWorkingVillagers; villagerIndexes = building.villagerIndexes; Debug.Log("Villager Indexes: " + villagerIndexes.Count); for (int i = 0; i < villagerIndexes.Count; i++) { workingVillagers.Add(manager.GetVillagerList()[villagerIndexes[i]]); manager.GetVillagerList()[villagerIndexes[i]].SelectWorkArea(this.gameObject); //AddVillagerToWork(manager.villagerList[villagerIndexes[i]], villagerIndexes[i]); } constructor = building.constructor; SetPlacedInWorld(true); InitBuilding(manager, infoPanel); }
/// <summary> /// Extracts fields. /// </summary> /// <param name="content">Content to extract.</param> /// <returns>Extracted field data.</returns> public static BuildingData[] Fields(string content) { var mc = GetMatches(content, "f*"); var data = new BuildingData[mc.Count]; for (int i = 0; i < mc.Count; i++) { int id = mc[i].Groups["id"].Value.AsInt(); int level = mc[i].Groups["level"].Value.AsInt(); BuildingType type = BuildingType.UNKNOWN; string typeStr = mc[i].Groups["type"].Value; switch (typeStr) { case "Orman": type = BuildingType.WOODCUTTER; break; case "Tuğla": type = BuildingType.CLAY_PIT; break; case "Demir": type = BuildingType.IRON_MINE; break; case "Tarla": type = BuildingType.CROPLAND; break; } data[i] = new BuildingData(id, type, level); } return(data); }
public override void Execute(Level level) { ClientAvatar avatar = level.GetPlayerAvatar(); ConstructionItem gameObjectById = (ConstructionItem)level.GameObjectManager.GetGameObjectByID(BuildingId); BuildingData constructionItemData = (BuildingData)gameObjectById.GetConstructionItemData(); if (!avatar.HasEnoughResources(constructionItemData.GetBuildResource(gameObjectById.GetUpgradeLevel()), constructionItemData.GetBuildCost(gameObjectById.GetUpgradeLevel()))) { return; } string name = level.GameObjectManager.GetGameObjectByID(BuildingId).GetData().GetName(); Logger.Write("Unlocking Building: " + name + " (" + BuildingId + ')'); if (string.Equals(name, "Alliance Castle")) { avatar.IncrementAllianceCastleLevel(); BuildingData buildingData = ((Building)level.GameObjectManager.GetGameObjectByID(BuildingId)).GetBuildingData(); avatar.SetAllianceCastleTotalCapacity(buildingData.GetUnitStorageCapacity(avatar.GetAllianceCastleLevel())); } ResourceData buildResource = constructionItemData.GetBuildResource(gameObjectById.GetUpgradeLevel()); avatar.SetResourceCount(buildResource, avatar.GetResourceCount(buildResource) - constructionItemData.GetBuildCost(gameObjectById.GetUpgradeLevel())); gameObjectById.Unlock(); }
public static bool TryGetMax(this BuildingData buildingData, IEnumerable <string> references, tsdZoneArray tSDZoneArray, out int index, out double max) { index = -1; max = double.NaN; if (buildingData == null || references == null || references.Count() == 0) { return(false); } object @object = buildingData.GetPeakZoneGroupGains(new string[] { "Name:" + string.Join(":", references) }, new int[] { (int)tSDZoneArray }); if (@object is object[, ]) { object[,] table = (object[, ])@object; if (table.GetLength(0) == 3) { index = System.Convert.ToInt32(table[2, 0]); max = System.Convert.ToDouble(table[1, 0]); return(true); } } return(false); }
/// <summary> /// Build a building at the location. /// Registers the taken grid location with the Safe Terrain Editor. /// </summary> /// <param name="building">The building to construct.</param> /// <param name="location">The location of the building.</param> public void Build(BuildingData building, Point3 location) { if (Application.isEditor) { var footprint = building.Footprint; var validTerrain = _terrain.Editor.CheckFlatAndFree(location.x, location.z, footprint.GetLength(0), footprint.GetLength(1)); for (int x = 0; x < footprint.GetLength(0); ++x) { for (int z = 0; z < footprint.GetLength(1); ++z) { Assert.IsFalse(footprint[x, z] && !validTerrain[x, z], string.Format("Placing building {0} at an invalid location!!!", building.Name)); } } } _buildings.Add(building); CampusFactory.GenerateBuilding( building, Game.Campus.transform, _terrain.Convert.GridToWorld(location) + new Vector3(0f, 0.01f, 0f) /* Place just above the grass*/, Quaternion.identity); _terrain.Editor.SetAnchoredGrid(location.x, location.z, building.Footprint); }
public string insertBuilding(BuildingData insertData) { string response = ""; ConnectDB db = new ConnectDB(); SqlDataSource oracleObj = db.ConnectionOracle(); string sql = "Insert Into BUILDING(BUILDING_CODE,BUILDING_THAINAME,BUILDING_ENGNAME,BUILDING_SHORTNAME,CAMPUS_CODE) Values('" + insertData.Building_Code + "','" + insertData.Building_ThaiName + "','" + insertData.Building_EngName + "','" + insertData.Building_ShortName + "','" + insertData.Campus_Code + "')"; oracleObj.InsertCommand = sql; try { if (oracleObj.Insert() == 1) { response = "OK"; } } catch (Exception e) { response = e.Message.ToString() + " "; } return(response); }
public string updateBuilding(BuildingData updateData, string old_campus_code) { string response = ""; ConnectDB db = new ConnectDB(); SqlDataSource oracleObj = db.ConnectionOracle(); string sql = "Update BUILDING Set BUILDING_THAINAME='" + updateData.Building_ThaiName + "',BUILDING_ENGNAME='" + updateData.Building_EngName + "',BUILDING_SHORTNAME='" + updateData.Building_ShortName + "',CAMPUS_CODE='" + updateData.Campus_Code + "' Where BUILDING_CODE='" + updateData.Building_Code + "' And CAMPUS_CODE='" + old_campus_code + "'"; oracleObj.UpdateCommand = sql; try { if (oracleObj.Update() == 1) { response = "OK"; } } catch (Exception e) { response = e.Message.ToString() + " "; } return(response); }
public Building create_building(IPositionable position, string type, double angle = 0) { var msg = new CreateBuildingMessage() { Position = position.position, Type = type, Angle = angle }; Building shell = ObjectStorage.Instance.Buildings.CreateShell(); client.RemoteCall(Contracts.CreateBuilding, msg, (ret, error) => { if (error != null) { shell.AssignData(null, error); return(null); } BuildingData data = (BuildingData)ret; ObjectStorage.Instance.Buildings.AddDataToDictionary(data); shell.AssignData(data); return(null); }); return(shell); }
/// <inheritdoc /> public Building(Data Data, Home Home) : base(Data, Home) { this.BuildingData = (BuildingData)Data; if (this.BuildingData.Hitpoints[0] > 0) { this.AddComponent(new HitpointComponent(this, this.BuildingData.Hitpoints[0])); } if (this.BuildingData.GetUnitProduction(0) > 0) { this.AddComponent(new UnitProductionComponent(this)); } if (this.BuildingData.GetUnitStorageCapacity(0) > 0) { int BoatIndex = 0; if (this.BuildingData.GetUnitProduction(0) < 1) { BoatIndex = 0xFF; } else { foreach (Building GameObject in this.Home.GameObjectManager.GameObjects[0]) { if (GameObject.BuildingData.GetUnitStorageCapacity(0) > 1 && GameObject.BuildingData.GetUnitProduction(0) > 0) { ++BoatIndex; } } } this.AddComponent(new UnitStorageComponent(this, this.BuildingData.GetUnitStorageCapacity(0), BoatIndex)); } }
public void Fight() { var query = new AVQuery <AVObject>("Building").WhereEqualTo("UserID", CurMatchUser.ObjectId); query.FindAsync().ContinueWith(t => { List <BuildingData> buildingDataList = new List <BuildingData>(); foreach (AVObject buildingObject in (t as Task <IEnumerable <AVObject> >).Result) { BuildingData buildingData = new BuildingData(); buildingData.UserID = buildingObject.Get <string>("UserID"); buildingData.Type = (EBuildingType)buildingObject.Get <int>("Type"); buildingData.Level = buildingObject.Get <int>("Level"); buildingData.Value = buildingObject.Get <int>("Value"); buildingData.SlotID = buildingObject.Get <int>("SlotID"); buildingDataList.Add(buildingData); } GameManager.Instance.LastMatchBuildingDataList = buildingDataList; GameManager.Instance.EventQueue.Queue.Enqueue(new EventItem() { Type = EEventItemType.EnemyBuildingLoaded }); }); }
/// <summary> /// Inicjalizuje prawy pasek wszystkimi mozliwymi opcjami budowy /// </summary> public void InitRightStripe() { foreach (short id in GlobalSettings.Wrapper.buildingsMap.Keys) { BuildingData bdata = GlobalSettings.Wrapper.buildingsMap[id]; foreach (String bname in bdata.BuildingsCanProduce) { short idb = GlobalSettings.Wrapper.namesToIds[bname]; if (!_rightStripe.Contains((int)idb)) { _rightStripe.Add((int)idb, bname, bname, true); } } foreach (String uname in bdata.UnitsCanProduce) { short idu = GlobalSettings.Wrapper.namesToIds[uname]; if (!_rightStripe.Contains((int)idu)) { _rightStripe.Add((int)idu, uname, uname, false); } } } _rightStripe.HideAll(); }
public void constructBuilding(MessageConstructBuilding msg) { // Create the new building GameObject and set it's team. SpawnInstructions <BuildingBase> instructions = this.map.spawnEntity <BuildingBase>( Registry.getObjectFromRegistry(msg.entityId), new Vector3(msg.position.x, 0, msg.position.z), Quaternion.identity); BuildingBase newBuilding = instructions.getObj(); Team team = Team.getTeamFromId(msg.teamId); newBuilding.setTeam(team); // Remove resources from the builder's team. this.map.reduceResources(team, newBuilding.getData().getCost()); // Set the buildings health and send the builder to build it. BuildingData bd = newBuilding.getData(); if (bd.isInstantBuild()) { newBuilding.setHealth(bd.getMaxHealth()); } else { newBuilding.setHealth(1); UnitBuilder builder = map.findMapObjectFromGuid <UnitBuilder>(msg.builderGuid); builder.setTask(new TaskConstructBuilding(builder, newBuilding)); builder.unitStats.buildingsBuilt.increase(); } if (newBuilding is BuildingBridge) { } instructions.spawn(); }
public override void Execute(Level level) { var ca = level.GetPlayerAvatar(); var go = level.GameObjectManager.GetGameObjectByID(BuildingId); var b = (ConstructionItem)go; var bd = (BuildingData)b.GetConstructionItemData(); if (ca.HasEnoughResources(bd.GetBuildResource(b.GetUpgradeLevel()), bd.GetBuildCost(b.GetUpgradeLevel()))) { string name = level.GameObjectManager.GetGameObjectByID(BuildingId).GetData().GetName(); if (string.Equals(name, "Alliance Castle")) { ca.IncrementAllianceCastleLevel(); Building a = (Building)level.GameObjectManager.GetGameObjectByID(BuildingId); BuildingData al = a.GetBuildingData(); ca.SetAllianceCastleTotalCapacity(al.GetUnitStorageCapacity(ca.GetAllianceCastleLevel())); } var rd = bd.GetBuildResource(b.GetUpgradeLevel()); ca.SetResourceCount(rd, ca.GetResourceCount(rd) - bd.GetBuildCost(b.GetUpgradeLevel())); b.Unlock(); } }
public ActionResult CalculateSnowguards( SnowLoadSnowguards snowLoadSnowguards, BuildingData buildingData) { buildingData.BuildingSite.CalculateExposureCoefficient(); buildingData.SnowLoad.CalculateSnowLoad(); buildingData.Building.CalculateThermalCoefficient(); var roof = snowLoadSnowguards.Snowguards; snowLoadSnowguards.BuildingData = buildingData; roof = new SnowLoads.BuildingTypes.Snowguards( roof.Width, roof.Slope, roof.SnowLoadOnRoofValue); roof.CalculateSnowLoad(); snowLoadSnowguards.Snowguards = roof; return(View("SnowguardsResult", snowLoadSnowguards)); }
public void SetUp(BuildingData data) { buildingName.text = data.buildingName; buildingDescription.text = data.description; for (int i = 0; i < data.cost.Length; i++) { if (data.cost[i].type == RessourceType.fer) { ferCost.text = data.cost[i].value.ToString();; } else if (data.cost[i].type == RessourceType.mer) { merCost.text = data.cost[i].value.ToString();; } if (data.cost[i].type == RessourceType.rubith) { rubithCost.text = data.cost[i].value.ToString();; } } constructionPoints.text = data.constructionPoints.ToString(); healthPoints.text = data.healthPoints.ToString(); }
public void AddNewBuilding(BuildingData buildingData) { BuildingDic.Add(buildingData.SlotID, buildingData); }
public string Pack(BuildingData _BData) { return ((Tree)_BData._Building).Capacity.get().ToString(); }
public void Unpack(BuildingData _BData, string Data) { ((Tree)_BData._Building).Capacity.set(Convert.ToInt32(Data)); }
public static void DB_QueryPlayerVillageData() { AVQuery<AVObject> query=new AVQuery<AVObject>("Village").WhereEqualTo("UserID", AVUser.CurrentUser.ObjectId); query.FirstAsync().ContinueWith(t =>{ AVObject villageObject = (t as Task<AVObject>).Result; VillageData villageData = new VillageData(); villageData.UserID = villageObject.Get<string>("UserID"); villageData.Defence = villageObject.Get<int>("Defence"); villageData.Power = villageObject.Get<int>("Power"); villageData.Trick = villageObject.Get<int>("Trick"); villageData.Belief = villageObject.Get<int>("Belief"); villageData.BeliefAll = villageObject.Get<int>("BeliefAll"); GameManager.Instance.LastGetVillageData = villageData; Debug.LogWarning(villageData.UserID); AVQuery<AVObject> buildingQuery = new AVQuery<AVObject>("Building").WhereEqualTo("UserID", AVUser.CurrentUser.ObjectId); buildingQuery.FindAsync().ContinueWith(t2=>{ List<BuildingData> buildingDataList = new List<BuildingData>(); foreach(AVObject buildingObject in (t2 as Task<IEnumerable<AVObject>>).Result) { BuildingData buildingData = new BuildingData(); buildingData.UserID = buildingObject.Get<string>("UserID"); buildingData.Type = (EBuildingType)buildingObject.Get<int>("Type"); buildingData.Level = buildingObject.Get<int>("Level"); buildingData.Value = buildingObject.Get<int>("Value"); buildingData.SlotID = buildingObject.Get<int>("SlotID"); buildingDataList.Add(buildingData); } GameManager.Instance.LastGetBuildingDataList = buildingDataList; GameManager.Instance.EventQueue.Queue.Enqueue(new EventItem(){Type = EEventItemType.PlayerVillageDataLoaded}); }); }); }
// 获取特定玩家信息 public void NetGetOtherByID(string objectID, Action callback) { GameManager.Instance.AsyncBeginWait(); var query = new AVQuery<AVObject>("Village").WhereEqualTo("UserID", objectID); query.FindAsync().ContinueWith(t=>{ List<AVObject> objList = new List<AVObject>(); objList.AddRange((t as Task<IEnumerable<AVObject>>).Result); if(objList.Count > 0) { AVObject villageObject = objList[0]; VillageData villageData = new VillageData(); villageData.AVObject = villageObject; AVQuery<AVObject> buildingQuery = new AVQuery<AVObject>("Building").WhereEqualTo("UserID", villageData.UserID); buildingQuery.FindAsync().ContinueWith(t2=>{ List<BuildingData> buildingDataList = new List<BuildingData>(); foreach(AVObject buildingObject in (t2 as Task<IEnumerable<AVObject>>).Result) { BuildingData buildingData = new BuildingData(); buildingData.AVObject = buildingObject; buildingDataList.Add(buildingData); } GameManager.Instance.AsyncEndWait(()=>{ OtherVillageData = villageData; OtherVillageData.BuildingDataList = buildingDataList; if(callback != null) callback(); }); }); } }); }
// 网络-收获建筑 public void NetHarvestBuilding(BuildingData buildingData, Action<BuildingData> onFinished=null) { // 计算收获信仰 DateTime now = DateTime.Now; double second = (now - buildingData.CollectTime).TotalSeconds; float totalT = buildingData.Level * 60; totalT = Mathf.Clamp(totalT, 0, 180); StaticBuildingData data = StaticBuilding.GetByTypeLevel(buildingData.Type, buildingData.Level, buildingData.Sibling); float product = (float)(data.Value * second / totalT); // 更新服务器信仰 PlayerVillageData.Belief += (int)product; PlayerVillageData.AVObject.SaveAsync().ContinueWith(t=>{ // 更新服务器收获时间 buildingData.CollectTime = now; GameManager.Instance.AsyncBeginWait(); buildingData.AVObject.SaveAsync().ContinueWith(t2=>{ GameManager.Instance.AsyncEndWait(()=>{ // TODO 播放吸收小太阳的动画 ... }); }); }); }
// 网络-建造 // 祭坛Altar不要从这里建造 public void NetBuildNew(EBuildingType buildingType, Action callback = null) { // 检查是否达到同类上限 int maxSibling = BuildingData.GetMaxSibling(PlayerBuildingDataList, buildingType); int nextSibling = maxSibling + 1; if(nextSibling > StaticBuilding.MAX_SIBLING) { Debug.LogWarning("已经超出同类建筑上限,不可再建造"); return; } BuildingData newBuilding = new BuildingData(); newBuilding.AVObject = new AVObject("Building"); newBuilding.UserID = AVUser.CurrentUser.ObjectId; newBuilding.Type = buildingType; newBuilding.Level = 1; newBuilding.SlotID = PlayerManager.Instance.PlayerVillageData.GetEmptySlot(); newBuilding.Sibling = nextSibling; // ### 在线版 GameManager.Instance.AsyncBeginWait(); newBuilding.AVObject.SaveAsync().ContinueWith(t => { // 释放异步等待 GameManager.Instance.AsyncEndWait(()=>{ PlayerVillageData.AddNewBuilding(newBuilding); SceneManager.Instance.SceneComp_Build.AddNewBuilding(newBuilding); UIManager.Instance.WidgetBuildingPicker.gameObject.SetActive(false); if(callback != null) callback(); }); }); }
// 网络-升级建筑 public void NetUpgradeBuilding(BuildingData buildingData, Action<BuildingData> onFinished=null) { if(buildingData!=null && buildingData.Level <= 2) { buildingData.Level = buildingData.Level + 1; // ### 联网版 GameManager.Instance.AsyncBeginWait(); buildingData.AVObject.SaveAsync().ContinueWith(t=>{ GameManager.Instance.AsyncEndWait(()=>{ SceneManager.Instance.CurSceneComp.RecreateAllBuildings(); }); }); } }
// 网络-获取玩家村落信息 public void NetQueryPlayerVillageData(Action callback = null) { GameManager.Instance.AsyncBeginWait(); AVQuery<AVObject> query=new AVQuery<AVObject>("Village").WhereEqualTo("UserID", AVUser.CurrentUser.ObjectId); query.FirstAsync().ContinueWith(t =>{ AVObject villageObject = (t as Task<AVObject>).Result; VillageData villageData = new VillageData(); villageData.AVObject = villageObject; AVQuery<AVObject> buildingQuery = new AVQuery<AVObject>("Building").WhereEqualTo("UserID", AVUser.CurrentUser.ObjectId); buildingQuery.FindAsync().ContinueWith(t2=>{ List<BuildingData> buildingDataList = new List<BuildingData>(); foreach(AVObject buildingObject in (t2 as Task<IEnumerable<AVObject>>).Result) { BuildingData buildingData = new BuildingData(); buildingData.AVObject = buildingObject; buildingDataList.Add(buildingData); } GameManager.Instance.AsyncEndWait(()=>{ PlayerManager.Instance.PlayerVillageData = villageData; PlayerManager.Instance.PlayerVillageData.BuildingDataList = new List<BuildingData>(); PlayerManager.Instance.PlayerVillageData.BuildingDataList = buildingDataList; if(callback != null) callback(); }); }); }); }
IEnumerator keepUpdateTableStatus() { while (true) { StartCoroutine (DB.syncTableStatus()); yield return new WaitForSeconds (1f) ; GameObject tempB = GameObject.Find( DB.tableSelectBid ); if ( !(status == "global" || status == "infoA") ) continue ; tableStatus = DB.tableStatus ; if (tableStatus == "idle") status = "global" ; if (tempB != null && (currentBuilding != tempB)){ changed = true ; Cam.targetChanged = true ; currentBuilding = tempB ; currentBuildingData = currentBuilding.GetComponent<BuildingData>() ; Cam.target = currentBuilding.transform.transform; audioController.change.Play(); Debug.Log ("currentBuildingData"+currentBuildingData); if (tableStatus == "select") status = "infoA" ; }else if (tempB == null){ Debug.Log("no such building : " + DB.tableSelectBid ); }else if (currentBuilding == tempB) { Debug.Log("same building "+ DB.tableSelectBid +" , ignore status") ; } } }
private void InitializeLoadedData(BuildingData _Building, List<string>ChainData) { int index = 4; _Building._Building.Build_Statistic.Capacity = float.Parse(ChainData[0]); _Building.PlaceToGrid.Col = int.Parse(ChainData[1]); _Building.PlaceToGrid.Row = int.Parse(ChainData[2]); if (Convert.ToBoolean(int.Parse(ChainData[3])) == true) _Building.PlaceToGrid.MirrorScale(); if (ChainData[4].Length > 1) { _Building._Building.InConstruction.span = TimeSpan.Parse(ChainData[4]); _Building._Building.InConstruction.initializeoryginal(); _Building._Building.InConstruction.active = true; } else _Building._Building.InConstruction.active = false; SpecialDataPacker.StartIndex = 5; SpecialDataPacker.Unpack(_Building, ChainData); _Building._Building.Initialize(); //for (int i = 0; i < _Building._UpgradeSystem.Upgrades.Count; i++, index++) //{ // _Building._UpgradeSystem.Upgrades[i].UpgradeLevel = Convert.ToInt32(ChainData[index]); //} //for (int i = 0; i < _Building._UpgradeSystem.PercentUpgrades.Count; i++, index++) //{ // _Building._UpgradeSystem.PercentUpgrades[i].UpgradeLevel = Convert.ToInt32(ChainData[index]); //} }
/** * Create a building from data. Uses a coroutine to ensure view can be synced with data. */ protected virtual IEnumerator DoInit(BuildingTypeData type, BuildingData data) { this.data = data; this.type = type; this.Position = data.position; // Ensure occupant type references are loaded if (data.occupants != null) { foreach (OccupantData o in data.occupants) { o.Type = OccupantManager.GetInstance().GetOccupantTypeData(o.occupantTypeString); OccupantManager.GetInstance().RecruitedOccupant(o); } } // Update view view = gameObject; view.SendMessage ("UI_Init", this); view.SendMessage ("SetPosition", data.position); view.SendMessage ("UI_UpdateState"); // Wait one frame to ensure everything is initialised yield return true; if (data.state == BuildingState.IN_PROGRESS || data.state == BuildingState.READY) { StartCoroutine(BuildActivity(data.startTime)); } else { // Activities if (data.completedActivity != null && data.completedActivity.Type != ActivityType.BUILD && data.completedActivity.Type != ActivityType.NONE) { StartCoroutine(GenericActivity(data.completedActivity.Type, data.completedActivity.StartTime, data.completedActivity.SupportingId)); } else if (data.currentActivity != null && data.currentActivity.Type != ActivityType.BUILD && data.currentActivity.Type != ActivityType.NONE) { StartCoroutine(GenericActivity(data.currentActivity.Type, data.currentActivity.StartTime, data.currentActivity.SupportingId)); } // Auto activities if (!Type.isObstacle) { if (data.autoActivity != null) { System.TimeSpan span = System.DateTime.Now - data.autoActivity.StartTime; int iterations = ((int)span.TotalSeconds) / type.generationTime; int generated = iterations * type.generationAmount; StoredResources = StoredResources + generated; if (StoredResources > type.generationStorage) StoredResources = type.generationStorage; // If storage not full resume activity if (type.generationAmount > 0 && StoredResources < type.generationStorage) { System.DateTime newStartTime = data.autoActivity.StartTime + new System.TimeSpan(0, 0, iterations * type.generationTime); StartAutomaticActivity(newStartTime); } else { AutoActivity = null; } } else if (type.generationAmount > 0 && StoredResources < type.generationStorage) { // Start auto activty if one not saved StartAutomaticActivity(System.DateTime.Now); } // If more than 50% full and no other activity to show then show a store collect indicator if (type.generationAmount > 0 && CompletedActivity == null && CurrentActivity == null && StoredResources >= type.generationStorage * 0.5f) { view.SendMessage ("UI_StoreFull"); } } } }
// 网络-获取随机玩家 public void NetGetRandomOther(Action callback) { GameManager.Instance.AsyncBeginWait(); var query = new AVQuery<AVObject>("Village").WhereNotEqualTo("UserID", AVUser.CurrentUser.ObjectId); Debug.Log("开始查找敌人村落"); query.FindAsync().ContinueWith(t=>{ List<AVObject> objList = new List<AVObject>(); objList.AddRange((t as Task<IEnumerable<AVObject>>).Result); if(objList.Count > 0) { var rand = new System.Random(); int r = rand.Next(objList.Count); AVObject villageObject = objList[r]; VillageData villageData = new VillageData(); villageData.AVObject = villageObject; Debug.Log("开始查找敌人建筑"); AVQuery<AVObject> buildingQuery = new AVQuery<AVObject>("Building").WhereEqualTo("UserID", villageData.UserID); buildingQuery.FindAsync().ContinueWith(t2=>{ List<BuildingData> buildingDataList = new List<BuildingData>(); foreach(AVObject buildingObject in (t2 as Task<IEnumerable<AVObject>>).Result) { BuildingData buildingData = new BuildingData(); buildingData.AVObject = buildingObject; buildingDataList.Add(buildingData); } Debug.Log("找到敌人建筑"); GameManager.Instance.AsyncEndWait(()=>{ OtherVillageData = villageData; OtherVillageData.BuildingDataList = buildingDataList; if(callback != null) callback(); }); }); } }); }
public void Init(BuildingData pBuilding) { m_pSprite.sprite = ToolKit.GetSpriteFromAtlas(pBuilding.m_pAssetsName, "Buildings"); m_pAttachedBuilding = pBuilding; }
private void OnUpgradeBuilding(BuildingData buildingData) { _currentModel = NormalModels[buildingData.Level - 1]; }