// ---------------------------------------------------------------- // Gizmos // ---------------------------------------------------------------- // private void OnDrawGizmos() { // if (myButtons==null) { return; } // Gizmos.color = Color.Lerp(Color.white, bodyColor, 0.5f); // foreach (GateButton button in myButtons) { // if (button==null) { continue; } // Gizmos.DrawLine(this.transform.position, button.transform.position); // } // } // ---------------------------------------------------------------- // Initialize // ---------------------------------------------------------------- public void Initialize(Room _myRoom, GateData data) { base.BaseGroundInitialize(_myRoom, data); channelID = data.channelID; bodyColor = MyChannel.Color; SetIsOn(!MyChannel.IsUnlocked); }
public void Add(int MapIdx, GateData _Gate) { if (!this.m_dGateList.ContainsKey(MapIdx)) { this.m_dGateList.Add(MapIdx, new List <GateData>()); } this.m_dGateList[MapIdx].Add(_Gate); }
// ---------------------------------------------------------------- // Serializing // ---------------------------------------------------------------- override public PropData ToData() { GateData data = new GateData { pos = pos, size = Size(), mayPlayerEat = MayPlayerEatHere, isPlayerRespawn = IsPlayerRespawn, channelID = channelID, travelMind = new TravelMindData(travelMind), }; return(data); }
// Constructor public GateSet(CircuitProject store) { ITableSnapshot table = store.Table("Gate"); if (table != null) { Debug.Assert(store.IsFrozen, "The store should be frozen"); this.Table = (TableSnapshot <GateData>)table; } else { Debug.Assert(!store.IsFrozen, "In order to create table, the store should not be frozen"); this.Table = GateData.CreateTable(store); } this.InitializeGateSet(); }
public void MakeMapLink() { ICollection mapInfo_Col = NrTSingleton <NrBaseTableManager> .Instance.GetMapInfo_Col(); foreach (MAP_INFO mAP_INFO in mapInfo_Col) { Map map = new Map(); Map.Record record = new Map.Record(mAP_INFO.MAP_INDEX); map.SetRecord(record); GATE_INFO[] gateInfo = mAP_INFO.GetGateInfo(); GATE_INFO[] array = gateInfo; for (int i = 0; i < array.Length; i++) { GATE_INFO gATE_INFO = array[i]; map.InsertLinkMapUnique(gATE_INFO.DST_MAP_IDX); GateData gate = new GateData(gATE_INFO.DST_MAP_IDX, new Vector2(gATE_INFO.SRC_POSX, gATE_INFO.SRC_POSZ)); this.m_kGateMgr.Add(mAP_INFO.MAP_INDEX, gate); } this.AddMap(map); } }
// Creates Gate wrapper private Gate CreateItem( // Fields of Gate table Guid GateId // Fields of Circuit table ) { TableSnapshot <CircuitData> tableCircuit = (TableSnapshot <CircuitData>) this.CircuitProject.Table("Circuit"); CircuitData dataCircuit = new CircuitData() { CircuitId = GateId }; RowId rowIdCircuit = tableCircuit.Insert(ref dataCircuit); GateData dataGate = new GateData() { GateId = GateId, }; return(this.Create(this.Table.Insert(ref dataGate), rowIdCircuit)); }
private static void ValidateGateData(GateData data) { Assert.Equal(90f, MathF.RadToDeg(data.AngleMax)); Assert.Equal(0f, MathF.RadToDeg(data.AngleMin)); Assert.Equal(769f, data.Center.X); Assert.Equal(1019f, data.Center.Y); Assert.Equal(0.92958f, data.Damping); Assert.Equal(0.1348f, data.Elasticity); Assert.Equal(0.1983f, data.Friction); Assert.Equal(GateType.GatePlate, data.GateType); Assert.Equal(0.2198f, data.GravityFactor); Assert.Equal(123.42f, data.Height); Assert.Equal(true, data.IsCollidable); Assert.Equal(true, data.IsReflectionEnabled); Assert.Equal(true, data.IsVisible); Assert.Equal(40.12f, data.Length); Assert.Equal("Red", data.Material); Assert.Equal(-72.212f, data.Rotation); Assert.Equal(true, data.ShowBracket); Assert.Equal("", data.Surface); Assert.Equal(true, data.TwoWay); }
public void Show(Transform parentTransform = null) { CPDataEntityCollection cPDataEntityCollection = Service.Get <CPDataEntityCollection>(); if (!cPDataEntityCollection.TryGetComponent(cPDataEntityCollection.LocalPlayerHandle, out gateData)) { gateData = cPDataEntityCollection.AddComponent <GateData>(cPDataEntityCollection.LocalPlayerHandle); gateData.GateStatus = new Dictionary <Type, bool>(); } bool value = false; gateData.GateStatus.TryGetValue(GetType(), out value); this.parentTransform = parentTransform; if (value) { Continue(); } else { initializePopup(GateContentKey); } }
private static void ValidateGateData(GateData data) { MathF.RadToDeg(data.AngleMax).Should().Be(90f); MathF.RadToDeg(data.AngleMin).Should().Be(0f); data.Center.X.Should().Be(769f); data.Center.Y.Should().Be(1019f); data.Damping.Should().Be(0.92958f); data.Elasticity.Should().Be(0.1348f); data.Friction.Should().Be(0.1983f); data.GateType.Should().Be(GateType.GatePlate); data.GravityFactor.Should().Be(0.2198f); data.Height.Should().Be(123.42f); data.IsCollidable.Should().Be(true); data.IsReflectionEnabled.Should().Be(true); data.IsVisible.Should().Be(true); data.Length.Should().Be(40.12f); data.Material.Should().Be("Red"); data.Rotation.Should().Be(-72.212f); data.ShowBracket.Should().Be(true); data.Surface.Should().Be(""); data.TwoWay.Should().Be(true); }
protected void OnBroadcastEntryGateNumOfPlayerData(Message msg) { //这里其实可以不需要消息内容,只需要和PlayerData中维护的入口数据同步即可 entryNum = playerData.playerZoo.numEntryGate; var entryGateLists = playerData.GetEntryDateDataIDIndexOfDataIdx().entryGateList; for (int i = 0; i < entryGateLists.Count; i++) { GateData entryGateData = entryGateLists[i]; EntryGate entryGate = null; if (!entryGates.TryGetValue(entryGateData.entryID, out entryGate)) { var cell = Config.ticketConfig.getInstace().getCell(entryGateData.entryID); int checkInCDVal = GetCheckinCDValMs(entryGateData.entryID, 1); entryGate = new EntryGate(entryGateData.entryID, 1, checkInCDVal, cell.touristwalkinto, cell.maxnumofperqueue, playerData.playerZoo.currSceneID); this.entryGates.Add(entryGateData.entryID, entryGate); } } // 需要 设置对应的售票口的显隐 var _msg = msg as SetValueOfPlayerData; int subscript = GetPresentSceneTicketCell(_msg.deltaVal); HideEntryGateForbidGameObject(subscript); }
/// <summary> /// 根据用户数据获取任务进度 /// </summary> /// <param name="taskId"></param> /// <returns></returns> public int ResolveTaskProgress(int taskId) { Config.missionCell missionCell = GetTaskCell(taskId); if (missionCell == null) { return(0); } TaskType taskType = missionCell.ParseTaskType(); if (taskType == TaskType.AdWatch || taskType == TaskType.LittleZooVisit) { return(0); } if (taskType == TaskType.LittleZooLevelup) { int litzooId = missionCell.GetLittleZooId(); LittleZooModuleDataMSS litzooData = null; try { litzooData = playerData.GetLittleZooModuleData(litzooId); } catch (Exception e) { string.Format("动物栏[{0}]还未开启", litzooId); } if (litzooData != null) { LittleZooProperty zooProp = missionCell.ParseLittleZooProperty(); if (zooProp == LittleZooProperty.TicketPrice) { return(litzooData.littleZooTicketsLevel); } else if (zooProp == LittleZooProperty.Capacity) { return(litzooData.littleZooVisitorSeatLevel); } else if (zooProp == LittleZooProperty.VisitSpeed) { return(litzooData.littleZooEnterVisitorSpawnLevel); } } return(0); } else if (taskType == TaskType.ParkingLevelup) { ParkingProperty parkProp = missionCell.ParseParkingProperty(); if (parkProp == ParkingProperty.Revenue) { return(playerData.GetParkingCenterDataIDIndexOfDataIdx().parkingProfitLevel); } else if (parkProp == ParkingProperty.Capacity) { return(playerData.GetParkingCenterDataIDIndexOfDataIdx().parkingSpaceLevel); } else if (parkProp == ParkingProperty.VisitorFlowSpeed) { return(playerData.GetParkingCenterDataIDIndexOfDataIdx().parkingEnterCarSpawnLevel); } } else if (taskType == TaskType.EntryGateLevelup) { EntryGateProperty entryProp = missionCell.ParseEntryGateProperty(); if (entryProp == EntryGateProperty.TicketPrice) { return(playerData.GetEntryDateDataIDIndexOfDataIdx().entryTicketsLevel); } else if (entryProp == EntryGateProperty.Entrance) { GateData entryData = null; int entryId = missionCell.GetEntryGateId(); try { entryData = playerData.GetEntryGateIDIndexOfDataIdx(entryId); } catch (Exception e) { string.Format("售票口[{0}]还未开启", entryId); } return(entryData != null ? entryData.level : 0); } } return(0); }
/// <summary> /// 设置入口数量 /// </summary> /// <param name="msg"></param> protected void OnSetEntryGateNumOfPlayerData(Message msg) { var _msg = msg as SetValueOfPlayerData; //var sortGateIDs = GlobalDataManager.GetInstance().playerData.playerZoo.GetSortTicketConfigGateIDs(); //int sceneID = GlobalDataManager.GetInstance().playerData.playerZoo.currSceneID; var entryGateList = playerData.GetEntryDateDataIDIndexOfDataIdx().entryGateList; int number = entryGateList.Count - 1; int currLastEntryID = entryGateList[number].entryID; int idx = sortGateIDs.IndexOf(currLastEntryID); #if UNITY_EDITOR if (idx < 0) { //string e = string.Format("设置入口开启异常! 原来{0} 增加 {1}", playerData.playerZoo.numEntryGate, _msg.deltaVal); //throw new System.Exception(e); } #endif //已经开完了。 if (idx == sortGateIDs.Count - 1) { return; } int entryID = 0; for (int i = idx + 1; i < idx + 1 + _msg.deltaVal; i++) { int subscript = this.playerData.GetSceneIDGoToEntryDataListSubscript(); var entryGateData = new GateData { entryID = sortGateIDs[i], level = 1 }; entryID = sortGateIDs[i]; this.playerData.playerZoo.entryGateList_MS[subscript].entryGateList.Add(entryGateData); } this.playerData.playerZoo.numEntryGate += _msg.deltaVal; //开启扣钱 var parce = Config.ticketConfig.getInstace().getCell(idx).number; BigInteger bigDelta = BigInteger.Parse(parce); //bool retCode = VaryDataCoin(bigDelta); //if (!retCode) //{ // string e = string.Format("售票口开启扣钱失败"); // throw new System.Exception(e); // return; //} ////广播金钱变化 //BroadcastValueOfPlayerData.Send((int)GameMessageDefine.BroadcastCoinOfPlayerData, //0, 0, BigInteger.Parse(GlobalDataManager.GetInstance().playerData.playerZoo.coin), bigDelta); if (!playerData.playerZoo.playerCoin.WarpAddCoin(playerData, -bigDelta)) { return; } //广播新开启了几个入口 SetValueOfPlayerData.Send((int)GameMessageDefine.BroadcastEntryGateNumOfPlayerData, entryID, 0, _msg.channelID); }
/// <summary> /// Creates the data for the specified row. /// </summary> /// <param name="Row">The row.</param> internal Data Create(Row Row) { Data Data; switch (this.Index) { case 1: { Data = new LocaleData(Row, this); break; } case 2: { Data = new GlobalData(Row, this); break; } case 3: { Data = new BillingPackageData(Row, this); break; } case 4: { Data = new AchievementData(Row, this); break; } case 5: { Data = new Data(Row, this); break; } case 6: { Data = new SoundData(Row, this); break; } case 7: { Data = new EffectData(Row, this); break; } case 8: { Data = new ParticleEmitterData(Row, this); break; } case 9: { Data = new ResourceData(Row, this); break; } case 10: { Data = new PuzzleData(Row, this); break; } case 11: { Data = new BlockData(Row, this); break; } case 12: { Data = new MonsterData(Row, this); break; } case 14: { Data = new LevelData(Row, this); break; } case 15: { Data = new TutorialData(Row, this); break; } case 16: { Data = new HeroData(Row, this); break; } case 17: { Data = new BoostData(Row, this); break; } case 18: { Data = new AttackTypeData(Row, this); break; } case 19: { Data = new SpecialMoveData(Row, this); break; } case 20: { Data = new PlaylistData(Row, this); break; } case 21: { Data = new ProjectileData(Row, this); break; } case 22: { Data = new MatchPatternData(Row, this); break; } case 23: { Data = new FacebookErrorData(Row, this); break; } case 24: { Data = new GateData(Row, this); break; } default: { Data = new Data(Row, this); break; } } return(Data); }
// ---------------------------------------------------------------- // Initialize // ---------------------------------------------------------------- public void Initialize(Level myLevel, GateData data) { BaseInitialize(myLevel, data); Size = data.size; channelID = data.channelID; }
// // ---------------------------------------------------------------- // // Gizmos // // ---------------------------------------------------------------- // private void OnDrawGizmos() { // if (myButtons==null) { return; } //// Gizmos.color = Color.Lerp(Color.white, BodyColor, 0.5f); // foreach (GateButton button in myButtons) { // if (button==null) { continue; } // Gizmos.DrawLine(this.transform.position, button.transform.position); // } // } // ---------------------------------------------------------------- // Serialize // ---------------------------------------------------------------- new public GateData SerializeAsData() { GateData data = new GateData(pos, Size, channelID); return(data); }