public override int GetHashCode() { int hash = 1; if (Id != 0L) { hash ^= Id.GetHashCode(); } if (Type != 0) { hash ^= Type.GetHashCode(); } if (Count != 0) { hash ^= Count.GetHashCode(); } if (RoomLevel != 0) { hash ^= RoomLevel.GetHashCode(); } if (IsGold != false) { hash ^= IsGold.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
//Algorithm of generation room drop... public List <InventoryItem> GenerateRoomDrop(RoomData roomData, RoomLevel roomLevel) { RavenhillResourceService resourceService = engine.GetService <IResourceService>() as RavenhillResourceService; List <InventoryItem> result = new List <InventoryItem>(); List <CollectableData> collectables = resourceService.GetCollectables(roomData.id).FindAll((item) => { return(((int)roomLevel >= (int)item.roomLevel) && (UnityEngine.Random.value < GetCollectableProb(item))); }); result.AddRange(collectables.Select(c => new InventoryItem(c, 1)).ToList()); List <WeaponData> weapons = resourceService.weaponList.FindAll((w) => UnityEngine.Random.value < w.prob); result.AddRange(weapons.Select(w => new InventoryItem(w, 1)).ToList()); List <IngredientData> ingredients = resourceService.GetIngredients(roomData.id).FindAll(item => { return(UnityEngine.Random.value < GetIngredientProb(item)); }); result.AddRange(ingredients.Select(i => new InventoryItem(i, 1)).ToList()); List <ChargerData> chargers = resourceService.chargerList.FindAll(item => UnityEngine.Random.value < item.prob); result.AddRange(chargers.Select(c => new InventoryItem(c, 1)).ToList()); return(result); }
public void SetRoomLevel(RoomLevel newRoomLevel) { RoomLevel oldRoomLevel = roomLevel; roomLevel = newRoomLevel; if (oldRoomLevel != newRoomLevel) { RavenhillEvents.OnRoomLevelChanged(oldRoomLevel, roomLevel, this); } }
/// <summary> /// 获取斗地主房间配置 不满足要求不能进入房间 /// </summary> /// <param name="level"></param> /// <returns></returns> public static RoomConfig GetLandlordsConfig(RoomLevel level) { RoomConfig config = new RoomConfig(); switch (level) { case RoomLevel.Lv100: config.BasePointPerMatch = 100; config.Multiples = 1; config.MinThreshold = 100 * 10; break; } return(config); }
public static Room Create(RoomLevel level) { Room room = EntityFactory.Create <Room>(); room.AddComponent <RoomJoinKeyComponent>(); room.AddComponent <DeckComponent>(); room.AddComponent <DeskCardsCacheComponent>(); room.AddComponent <OrderControllerComponent>(); RoomConfig config = RoomHelper.GetConfig(level); GameControllerComponent gameController = room.AddComponent <GameControllerComponent, RoomConfig>(config); //添加管理,避免被GC释放 Game.Scene.GetComponent <RoomComponent>().Add(room); return(room); }
public Room() { //Default to upper level this.Level = RoomLevel.UPPER; }
public static void OnRoomLevelChanged(RoomLevel prevLevel, RoomLevel newLevel, RoomInfo roomInfo) { RoomLevelChanged?.Invoke(prevLevel, newLevel, roomInfo); }