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 bool PlaceBuildingOnHexagon(Hexagon hexagon, EBuildingType buildingType) { if (buildingType == EBuildingType.Caserne && hexagon.GetComponent <Infos>().type == Infos.buildingType.None) { GameObject building = GameObject.Instantiate(caserne); building.transform.parent = hexagon.transform; building.transform.localPosition = offset; hexagon.GetComponent <Infos>().model = building; hexagon.GetComponent <Infos>().type = Infos.buildingType.Caserne; return(true); } if (buildingType == EBuildingType.Hospital && hexagon.GetComponent <Infos>().type == Infos.buildingType.None) { GameObject building = GameObject.Instantiate(hospital); building.transform.parent = hexagon.transform; building.transform.localPosition = offset; hexagon.GetComponent <Infos>().model = building; hexagon.GetComponent <Infos>().type = Infos.buildingType.Hospital; return(true); } if (buildingType == EBuildingType.Stopper && hexagon.GetComponent <Infos>().type == Infos.buildingType.None) { GameObject building = GameObject.Instantiate(stopper); building.transform.parent = hexagon.transform; building.transform.localPosition = offset; hexagon.GetComponent <Infos>().model = building; hexagon.GetComponent <Infos>().type = Infos.buildingType.Stopper; return(true); } return(false); }
public BuildingStateData(int _id, EBuildingType _type, ETeam _teamId, Vector2 _position, int _hp) { id = _id; type = _type; teamId = _teamId; position = _position; hp = _hp; }
public BuildingStateData(Packet _packet) { id = _packet.ReadInt(); type = (EBuildingType)_packet.ReadInt(); position = _packet.ReadVector2(); teamId = (ETeam)_packet.ReadInt(); hp = _packet.ReadInt(); }
public IEnumerator ShowBuildingShade(EBuildingType eBuildingType) { m_bDraggingBuildingShade = true; for (int i = 0; i < m_pBuildingShadesPrefabs.Count; i++) { if (m_pBuildingShadesPrefabs[i].m_eType == eBuildingType) { m_pCurrentBuildingShade = Instantiate<BuildingShade>(m_pBuildingShadesPrefabs[i]); m_pCurrentBuildingShade.transform.SetParent(transform, false); break; } } if (m_pCurrentBuildingShade == null) { Debug.LogError("BuildingShade not found: " + eBuildingType); yield break; } RaycastHit tHit; do { if (m_pCurrentBuildingShade == null) yield break; Ray tRay = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(tRay, out tHit, 100.0f, LayersManager.Instance.GetLayer("Ground"), QueryTriggerInteraction.Ignore)) { m_pCurrentBuildingShade.gameObject.SetActive(true); m_pCurrentBuildingShade.transform.position = tHit.point; } else { m_pCurrentBuildingShade.gameObject.SetActive(false); } yield return false; } while (!Input.GetButtonDown("Submit") || !m_pCurrentBuildingShade.CanBePlaced); DestroyCurrentShade(); for (int i = 0; i < m_pBuildingsPrefabs.Count; i++) { if (m_pBuildingsPrefabs[i].m_eBuildingType == eBuildingType) { Building pNewBuilding = Instantiate<Building>(m_pBuildingsPrefabs[i]); pNewBuilding.transform.SetParent(transform, false); pNewBuilding.transform.position = tHit.point; break; } } m_bDraggingBuildingShade = false; }
private void ShowBuildingData(EBuildingType buildingType) { foreach (var building in _allBuildingsDatabase.BuildingsDatabase.Where(building => building.BuildingType == buildingType)) { _currentBuilding = building; break; } _view.SetCost(_currentBuilding.ShowCost()); _view.SetName(buildingType.ToString()); }
private void BuyBuilding(EBuildingType buildingType) { if (_currentBuilding == null) { return; } if (!_purchaseBuildingsHandler.TryPurchaseBuilding(_cityDatabase.Model, _currentBuilding.CostResources)) { return; } var build = MonoBehaviour.Instantiate(_currentBuilding.View); _buildingsStacker.StartPlacingBuilding(build); }
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 void MakeSlot(Vector2 pos, Texture2D image, string text, EBuildingType tileType) { GameObject go = new GameObject(); CSpriteRenderer sr = new CSpriteRenderer("Slot"); Texture2D texture1 = SpriteContainer.Instance.Sprite["Slot"]; Texture2D texture2 = SpriteContainer.Instance.Sprite["Slot"]; GUIButton btn = new GUIButton(sr, texture1, texture2, Color.White, Color.YellowGreen); go.AddComponent <CSpriteRenderer>(sr); go.AddComponent <GUIButton>(btn); sr.LayerDepth = 0.12f; go.MyParent = mainGameObject; go.SetMyParent(mainGameObject); go.Transform.Scale = new Vector2(0.5f, 0.5f) * GraphicsSetting.Instance.ScreenScale; go.Transform.Position = pos * GraphicsSetting.Instance.ScreenScale + go.MyParent.Transform.Position; SlotShowBar(new Vector2(sr.Sprite.Width / 2, sr.Sprite.Height) * go.Transform.Scale, go, text); ImageInSlot(new Vector2(sr.Sprite.Width, sr.Sprite.Height) * go.Transform.Scale, go, image); myScene.Instantiate(go); btn.OnClick += () => { placeTile.PickTile(tileType); }; }
public void Build(int slog, EBuildingType type) { }
public static bool HasGreatorLevel(EBuildingType type, int sibling, int curLevel) { return DataList.Exists(d=>d.Type == type && d.Sibling == sibling && d.Level > curLevel); }
public void SetBuildingType(EBuildingType type) { _buildingType = type; }
public void Init(BuildingData pData) { m_eBuildingType = pData.m_eBuildingType; }
public static StaticBuildingData GetByTypeLevel(EBuildingType type, int level, int sibling) { return DataList.Find(d=>d.Type == type && d.Level == level && d.Sibling == sibling); }
public BuildingData() : base(EEntityType.BUILDING) { m_eBuildingType = EBuildingType.NONE; }
public BuildingData(EBuildingType eBuildingType, string pPublicName, string pAssetsName, float fHealth) : base(EEntityType.BUILDING, pPublicName, pAssetsName, fHealth) { m_eBuildingType = eBuildingType; }
public BuildingObject(EBuildingType _buildingType, int _hp, int _regen, ETeam _teamId, Vector2 _position) : base(_hp, _regen, _teamId, _position) { buildingType = _buildingType; }
// 网络-建造 // 祭坛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 GameObject Create(string type, EFaction faction, ETeam team) { EBuildingType buildingType = (EBuildingType)Enum.Parse(typeof(EBuildingType), type); GameObject go = new GameObject(); CSpriteRenderer sr = new CSpriteRenderer(SpriteContainer.Instance.SpriteSheet["GrayTent"]); CBuilding building = new CBuilding(buildingType, faction, team); CStats stats = new CStats(); sr.LayerDepth = 0.3f; sr.OriginPositionEnum = EOriginPosition.TopLeft; sr.OffSet = new Vector2(-1 * 128 / 2, -3 * 128 / 2); go.Transform.Scale *= 0.5f; go.AddComponent <CSpriteRenderer>(sr); go.AddComponent <CBuilding>(building); go.AddComponent <CStats>(stats); switch (buildingType) { case EBuildingType.TownHall: break; case EBuildingType.ArcheryRange: break; case EBuildingType.Blacksmith: break; case EBuildingType.Tower: break; case EBuildingType.Barracks: break; case EBuildingType.GatheringStation: break; case EBuildingType.Field: sr.OffSet = new Vector2(0 * 128 / 2, 0 * 128 / 2); sr.SetSprite(SpriteContainer.Instance.TileSprite.Wheatfield); break; default: break; } if (buildingType != EBuildingType.Field) { switch (team) { case ETeam.Team01: sr.Color = Color.Red; break; case ETeam.Team02: sr.Color = Color.Blue; break; case ETeam.Team03: sr.Color = Color.Green; break; case ETeam.Team04: sr.Color = Color.Yellow; break; case ETeam.Team05: break; case ETeam.Team06: break; case ETeam.Team07: break; case ETeam.Team08: break; default: break; } } return(go); }
private void InteractWith(EBuildingType type) { if (Globals.Instance.MTaskManager.GoToTalk(_mProperty.LogicID, delegate(){ if (type == EBuildingType.DEFENCE_FACILITY || type == EBuildingType.MARINE_BOARD) { Globals.Instance.MTeachManager.NewBuildingClickedEvent(_mProperty.Name); } })) { return; } Globals.Instance.MTeachManager.NewBuildingClickedEvent(_mProperty.Name); switch (type) { case EBuildingType.TTRN: { break; } case EBuildingType.DEFENCE_FACILITY: { break; } case EBuildingType.MATERIALS_CENTRE: { int seaID = Globals.Instance.MGameDataManager.MCurrentSeaAreaData.SeaAreaID; NetSender.Instance.RequestShopInfo(seaID, 0); break; } case EBuildingType.DIRECTORATE: { int seaID = Globals.Instance.MGameDataManager.MCurrentSeaAreaData.SeaAreaID; NetSender.Instance.RequestGeneralGetHarborGeneral(seaID); break; } case EBuildingType.PLAYER_PORT: { NetSender.Instance.RequestPlayerDockInfo(); break; } case EBuildingType.MARINE_BOARD: { string prompt = Globals.Instance.MDataTableManager.GetWordText(11030062); Globals.Instance.MNpcManager.ShowBuildingTips(this, prompt); break; } case EBuildingType.SHIPYARD: { int seaID = Globals.Instance.MGameDataManager.MCurrentSeaAreaData.SeaAreaID; NetSender.Instance.RequestShipBlueprintEngineerGetCdTime(seaID); break; } case EBuildingType.TECHNOLOGY: { long actorID = Globals.Instance.MGameDataManager.MActorData.PlayerID; // NetSender.Instance.RequestGirlInfoList(actorID); NetSender.Instance.RequestGetTechnology(); break; } case EBuildingType.OIL_REFINERY: { string sFormat = Globals.Instance.MDataTableManager.GetWordText(11030059); string prompt = string.Format(sFormat, Globals.Instance.MGameDataManager.MCurrentPortData.UserInvestData.Contribution); sFormat = Globals.Instance.MDataTableManager.GetWordText(11030060); prompt += "\n"; prompt += GUIFontColor.White255255255 + string.Format(sFormat, Globals.Instance.MGameDataManager.MCurrentPortData.UserInvestData.OilOutput); Globals.Instance.MNpcManager.ShowBuildingTips(this, prompt); break; } case EBuildingType.STATUE: { break; } } }