/// <summary> /// Spawn Enemies in a room. /// </summary> /// <param name="currentFloor">A floor that contains a room</param> /// <param name="rand"> Random used to determine which room to use.</param> void SpawnEnemies(Floor currentFloor, System.Random rand) { int numGroups = rand.Next(6, 10); for (int i = 0; i <= numGroups; i++) { int roomSize = currentFloor.roomList.Count; RoomEntry room = currentFloor.roomList[rand.Next(0, roomSize)]; if (room.type == RoomEntry.RoomType.SAFE) { continue; } // don't spawn ontop of player or entrance if (room.type == RoomEntry.RoomType.ENTRANCE || room.type == RoomEntry.RoomType.EXIT) { i--; continue; } Vector3 roomyPos = room.transform.position; Vector3 enemyPos = new Vector3(roomyPos.x, roomyPos.y + .85f, roomyPos.z); EnemyGroups(currentFloor.floorNumber, enemyPos, rand); } }
public void Foo() { entrys = new IRoomEntry[10]; for (int i = 0; i < entrys.Length; i++) { entrys[i] = new RoomEntry <RoundRoom>(); } }
/// <summary> /// Generates the floor, this works between frames /// </summary> /// <returns></returns> private IEnumerator CoroutineGenerateFloor() { currentFloorParent = Instantiate(floorParentPrefab.gameObject).GetComponent <Floor>(); currentFloorParent.floorNumber = PlayerProgress.currentFloor; if (OnBeginGeneration != null) { OnBeginGeneration(currentFloorParent, _rand); } yield return(GenerateRoomEntries(maxFloorRadius)); // pick a room to be the entrance RoomEntry entrance = GetRandomRoomEntry(); entrance.type = RoomEntry.RoomType.ENTRANCE; entrance.gameObject.name = "Entrance Room Entry"; currentFloorParent.entrance = entrance; // pick a room to be the exit RoomEntry exit = GetRandomRoomEntry(); exit.type = RoomEntry.RoomType.EXIT; exit.gameObject.name = "Exit Room Entry"; currentFloorParent.exit = exit; // place exit stairs FloorExitTrigger fet = Instantiate(exitPrefab, exit.transform).GetComponent <FloorExitTrigger>(); fet.TargetGenerator = this; yield return(CreateRoomPieces()); currentFloorParent.GetComponent <NavMeshSurface>().BuildNavMesh(); if (FloorTheme.IsCurrentlyCave()) { SoundManager.instance.PlayMusic(3); } else if (FloorTheme.IsCurrentlyForest()) { SoundManager.instance.PlayMusic(4); } else if (FloorTheme.IsCurrentlyFire()) { SoundManager.instance.PlayMusic(5); } else { SoundManager.instance.PlayMusic(3); } // trigger event if anything is listening to it if (OnFloorGenerated != null) { OnFloorGenerated(currentFloorParent, _rand); } }
private void ConfirmButton_Click(object sender, RoutedEventArgs e) { error.Content = ""; ClassroomEntry selectedClassroom = (ClassroomEntry)_classroomComboBox.SelectedItem; RoomEntry selectedRoom = (RoomEntry)_roomNameComboBox.SelectedItem; int repetitivity = _regularityComboBox.SelectedIndex; WindowsXamlHost windowsHost = _timePicker; TimePicker timePickerHour = (TimePicker)windowsHost.Child; WindowsXamlHost windowsHost2 = _durationTimePicker; TimePicker durationTimePicker = (TimePicker)windowsHost2.Child; TimeSpan? durationTimeSelected = durationTimePicker.SelectedTime; if (durationTimeSelected == null) { error.Foreground = new SolidColorBrush(Colors.Red); error.Content = "Spécifier une durée"; return; } TimeSpan?hourTimeSelected = timePickerHour.SelectedTime; if (hourTimeSelected == null) { error.Foreground = new SolidColorBrush(Colors.Red); error.Content = "Spécifier une heure."; return; } DateTime?dateSelected = _firstDatePciker.SelectedDate; if (dateSelected == null) { error.Foreground = new SolidColorBrush(Colors.Red); error.Content = "Spécifier une date de première séance"; return; } DateTime dateSelectedNotNull = (DateTime)dateSelected; dateSelectedNotNull = dateSelectedNotNull.AddHours((double)hourTimeSelected?.Hours).AddMinutes((double)hourTimeSelected?.Minutes); int scheduleId = Database.Insert.Schedule.One(selectedClassroom.ID, selectedRoom.ID, repetitivity, dateSelectedNotNull, (TimeSpan)hourTimeSelected); ScheduleOption.ScheduleOptionDisplay scheduleDisplay = new ScheduleOption.ScheduleOptionDisplay() { ID = scheduleId, ClassroomId = selectedClassroom.ID, NextDate = dateSelectedNotNull.ToString("g", GlobalVariable.culture), Duration = durationTimeSelected?.ToString(@"hh\:mm"), Repetitivity = repetitivity == 0 ? "Une fois par semaine" : "Une semaine sur deux", Room = Database.Get.Room.NameFromID(selectedRoom.ID) }; //TODO: Make this work but not mendatory for now //ScheduleOption.scheduleDisplayCollection.Add(scheduleDisplay); error.Foreground = new SolidColorBrush(Colors.Green); error.Content = "Horaire ajouté avec succès"; }
/// <summary> /// Generates a random room entry /// </summary> /// <param name="point">the center point to generate from</param> /// <param name="minDist">the min distance from the center point</param> /// <param name="maxDist">the max distance from the center point</param> /// <returns>A randomly generated room entry</returns> private RoomEntry GenerateRandomRoomEntry(XZCoordinate point, int minDist, int maxDist) { // generate random cord XZCoordinate coord = GenerateRandomCord(point, minDist, maxDist); RoomEntry room = createRoomEntry(coord); return(room); }
private IEnumerator AnimateCatch() { float startTime = Time.time; Quaternion from = controller.transform.rotation; Quaternion to = Quaternion.LookRotation(Vector3.up, controller.transform.right); float initialY = controller.transform.position.y; bool soundPlayed = false; float t = 0.0f; while (t < 1.0f) { t = (Time.time - startTime) / catchAnimationTime; Quaternion rotation = Quaternion.Slerp(from, to, t); controller.transform.rotation = rotation; if ((t > 0.7f) && !soundPlayed) { controller.PlayFallingSound(); soundPlayed = true; } yield return(null); } cameraFading.FadeToBlack(fadeToBlackTime); yield return(new WaitUntil(() => cameraFading.GetState() == FadingManager.State.Faded)); RoomScene room = roomsManager.GetRandomWakeUpRoom(); RoomEntry entry = roomsManager.GetRandomRoomEntry(); room.ClearCollectibles(); entry.AttachRoom(room); entry.SetSpawningEnabled(false); Transform wakeUpPosition = room.GetWakeUpPosition(); controller.transform.position = wakeUpPosition.position; controller.transform.rotation = wakeUpPosition.rotation; Vector3 eulerAngles = controller.transform.eulerAngles; eulerAngles.x = 0.0f; eulerAngles.z = 0.0f; controller.transform.eulerAngles = eulerAngles; Vector3 pos = controller.transform.position; pos.y = initialY; controller.transform.position = pos; yield return(new WaitForSeconds(wakeUpTime)); cameraFading.FadeToNormal(fadeToNormalTime); controller.enabled = true; dispatcher.SendEvent(new EBEvent() { type = EBEventType.ApplyMadnessAfterMonsterCaught }); }
void RoomUpdated(Room room) { if (!Dispatcher.UIThread.CheckAccess()) { Dispatcher.UIThread.InvokeAsync(() => RoomUpdated(room)); return; } RoomEntry entry = Rooms.FirstOrDefault(i => i.Room == room); if (entry != null) { entry.Room = room; } }
void RoomAdded(Room room) { if (!Dispatcher.UIThread.CheckAccess()) { Dispatcher.UIThread.InvokeAsync(() => RoomAdded(room)); return; } RoomEntry entry = new RoomEntry() { Room = room }; entry.RoomJoined += JoinRoom; RoomList.Children.Add(entry); }
private void TranslateRoom() { attachedDoor = roomsManager.GetRandomRoomEntry(); attachedDoor.SetSpawningEnabled(false); GameObject root = roomScene.GetRoot(); Vector3 oldPosition = root.transform.position; Vector3 oldRotation = root.transform.eulerAngles; translationFrame = Time.frameCount + 2; StartCoroutine(TranslateRoomOnNextUpdate(attachedDoor)); dispatcher.SendEvent(new HallMovingTriggerEnteredEvent( translationFrame, oldPosition, oldRotation, attachedDoor.GetRootOffset(), attachedDoor.GetRootRotation() )); }
public AddSchedules() { InitializeComponent(); //Handle classrooms List <ClassroomInfo> allClassroomsList = Database.Get.Classroom.All("new"); foreach (ClassroomInfo classroom in allClassroomsList) { ClassroomEntry classroomEntry = new ClassroomEntry() { ID = classroom.ClassroomId, Name = classroom.Name }; classromsList.Add(classroomEntry); } _classroomComboBox.ItemsSource = classromsList; _classroomComboBox.SelectedIndex = 0; //Handle Rooms List <RoomInfo> allRoomsList = Database.Get.Room.All("new"); foreach (RoomInfo room in allRoomsList) { RoomEntry roomEntry = new RoomEntry() { ID = room.RoomId, Name = room.Name }; roomsList.Add(roomEntry); } _roomNameComboBox.ItemsSource = roomsList; _roomNameComboBox.SelectedIndex = 0; //Handle Repetitivity List <string> allRepetitivity = new List <string>() { "Une fois par semaine", "Une semaine sur deux" }; _regularityComboBox.ItemsSource = allRepetitivity; _regularityComboBox.SelectedIndex = 0; }
public override void OnReceivedBroadcast(string fromAddress, string data) { if (isClient && !rooms.ContainsKey(fromAddress)) { string[] parsed = data.Split('@'); bool locked = int.Parse(parsed [1]) == 1; int maxPlyr = int.Parse(parsed [3]); rooms.Add(fromAddress, new RoomInfo(fromAddress, parsed [0], locked, int.Parse(parsed [2]), maxPlyr)); GameObject curEntry = (GameObject)Instantiate(netMan.roomEntry); RoomEntry entry = curEntry.GetComponent <RoomEntry> (); entry.address = fromAddress; entry.isNetGame = false; entry.SetLock(locked); entry.SetPlayerCount(parsed [2] + "/" + parsed [3]); entry.SetName(parsed [0]); entry.maxPlyr = maxPlyr; curEntry.transform.SetParent(netMan.lanListParent, false); } }
IEnumerator WaitForRoomRefresh() { WWWForm form = new WWWForm(); form.AddField("action", "getrooms"); form.AddField("phppass", secretKey); form.AddField("natcap", natHelper.natCapability); form.AddField("externalip", Network.player.ipAddress); WWW www = new WWW(phpUrl, form); yield return(www); string ret = www.text; Debug.Log(ret); if (!string.IsNullOrEmpty(ret) && ret != "-5") { string[] parsed = ret.Split('#'); foreach (string a in parsed) { string[] parsed2 = a.Split('@'); GameObject curEntry = (GameObject)Instantiate(roomEntry); RoomEntry entry = curEntry.GetComponent <RoomEntry> (); bool locked = int.Parse(parsed2 [2]) == 1; roomsClient.Add(parsed2[0], new NetRoomInfo(parsed2[0], parsed2[1], locked, int.Parse(parsed2[3]), int.Parse(parsed2[4]))); entry.isNetGame = true; entry.gameID = parsed2 [0]; entry.SetName(parsed2 [1]); entry.SetLock(locked); entry.SetPlayerCount(parsed2[3] + "/" + parsed2[4]); entry.SetPlaying(false); // change this later curEntry.transform.SetParent(netListParent, false); } } waitingForRefresh = false; }
/// <summary> /// Creates an array of bool to show wether there is a neighbor. /// Clockwise /// </summary> /// <param name="entry"></param> /// <returns></returns> private bool[] GetNeighborBools(RoomEntry entry, out int numNeigbors) { bool[] n = new bool[4]; int num = 0; XZCoordinate cord = entry.coordinate; if (currentFloorParent.roomDict.ContainsKey(cord.UpCoordinate().ToString())) { num++; n[0] = true; } if (currentFloorParent.roomDict.ContainsKey(cord.RightCoordinate().ToString())) { num++; n[1] = true; } if (currentFloorParent.roomDict.ContainsKey(cord.DownCoordinate().ToString())) { num++; n[2] = true; } if (currentFloorParent.roomDict.ContainsKey(cord.LeftCoordinate().ToString())) { num++; n[3] = true; } numNeigbors = num; return(n); }
/// <summary> /// Creates a room entry. /// </summary> /// <param name="x">x cord</param> /// <param name="z">y cord</param> /// <returns>The created room entry. If room already exist on the cord, null is returned</returns> private RoomEntry createRoomEntry(XZCoordinate coord) { if (currentFloorParent.roomDict.ContainsKey(coord.ToString())) { return(null); } // ini room entry and set cords RoomEntry entry = Instantiate(roomEntryPrefab.gameObject).GetComponent <RoomEntry>(); entry.transform.SetParent(currentFloorParent.transform, false); entry.coordinate = new XZCoordinate(coord); Vector3 pos = coord.ToVector3(); entry.transform.position = pos * roomSize; // add to room collections currentFloorParent.roomList.Add(entry); currentFloorParent.roomDict.Add(entry.coordinate.ToString(), entry); return(entry); }
/// <summary> /// Generates a safezone /// </summary> private IEnumerator GenerateSafeZone() { if (currentFloorParent != null) { Destroy(currentFloorParent.gameObject); currentFloorParent = null; } SoundManager.instance.PlayMusic(2); currentFloorParent = Instantiate(floorParentPrefab.gameObject).GetComponent <Floor>(); currentFloorParent.floorNumber = PlayerProgress.currentFloor; if (OnBeginGeneration != null) { OnBeginGeneration(currentFloorParent, _rand); } RoomEntry entry = createRoomEntry(XZCoordinate.zero); entry.type = RoomEntry.RoomType.SAFE; currentFloorParent.entrance = entry; GameObject safeZone = Instantiate(GetCurrentSet().GetRandomSafeZonePrefab(_rand), entry.transform); safeZone.GetComponentInChildren <FloorExitTrigger>().TargetGenerator = this; yield return(new WaitForEndOfFrame()); currentFloorParent.GetComponent <NavMeshSurface>().BuildNavMesh(); // trigger event if anything is listening to it if (OnFloorGenerated != null) { OnFloorGenerated(currentFloorParent, _rand); } }
private IEnumerator TranslateRoomOnNextUpdate(RoomEntry door) { yield return(new WaitWhile(() => Time.frameCount < translationFrame)); door.AttachRoom(roomScene); }
public void RegisterRoomEntry(RoomEntry door) { roomEntries.Add(door); }
public ProgramReader(ProgramByCSVInputs input) { RoomEntries = new List <RoomEntry>(); RoomQuantity = 0.0; TotalArea = 0.0; var lines = File.ReadAllText(input.Program.LocalFilePath).Split(new char[] { '\n', '\r' }); if (lines.Count() < 2) //Drop the process if only the header row or an empty file exists. { return; } var i = 1; foreach (var line in lines.Skip(1)) //skip assumed header row { var row = new List <string>(line.Trim().Split(',')); //Skip malformed rows or entries with quantities <= zero; if (row.Count() < 8 || !int.TryParse(row.ElementAt(4).ToString(), out int qVal) || qVal <= 0) { continue; } if (!double.TryParse(row.ElementAt(5).ToString(), out double aVal)) { throw new ArgumentException("Area in Row " + i.ToString() + " does not resolve to a double value."); } if (!double.TryParse(row.ElementAt(6).ToString(), out double rVal)) { throw new ArgumentException("Ratio in Row " + i.ToString() + " does not resolve to a double value."); } var height = 0.0; if (double.TryParse(row.ElementAt(7).ToString(), out double hVal)) { height = Math.Abs(hVal); } else { height = 4.0; } var roomEntry = new RoomEntry { suiteName = row.ElementAt(0).Trim(), suiteNumber = row.ElementAt(1).Trim(), department = row.ElementAt(2).Trim(), name = row.ElementAt(3).Trim() }; roomEntry.quantity = Math.Abs(qVal); roomEntry.area = Math.Abs(aVal); roomEntry.height = height; if (input.UseImperialUnits) //Convert from Imperial units if indicated. { roomEntry.area = Math.Round(roomEntry.area *= METRIC_FACTOR, 3); roomEntry.height = Math.Round(roomEntry.height *= METRIC_FACTOR, 3); } roomEntry.ratio = Math.Abs(rVal); RoomEntries.Add(roomEntry); RoomQuantity += roomEntry.quantity; TotalArea += roomEntry.area * roomEntry.quantity; i++; } RoomEntrySequence(input); }
private void Start() { RoomEntry entry = transform.parent.gameObject.GetComponent <RoomEntry>(); id = entry.GetId(); }
private static void WriteRoom(BBData data, RoomInfo ri, StringsChunkBuilder strings) { var re = new RoomEntry { Name = strings.GetOffset(ri.Name), Caption = ri.Caption == null ? 0 : strings.GetOffset(ri.Caption), Size = ri.Size, Speed = ri.Speed, Persistent = ri.IsPersistent ? DwordBool.True : DwordBool.False, Colour = ri.Colour, DrawBackgroundColour = ri.DrawBackgroundColour ? DwordBool.True : DwordBool.False, _unknown = ri._unknown, Flags = 0, World = ri.World, Bounding = ri.Bounding, Gravity = ri.Gravity, MetresPerPixel = ri.MetresPerPixel }; if (ri.EnableViews) { re.Flags |= RoomEntryFlags.EnableViews; } if (ri.ShowColour) { re.Flags |= RoomEntryFlags.ShowColour; } if (ri.ClearDisplayBuffer) { re.Flags |= RoomEntryFlags.ClearDisplayBuffer; } if (ri.UnknownFlag) { re.Flags |= RoomEntryFlags.Unknown; } var bgOffsetOffset = (int)Marshal.OffsetOf(typeof(RoomEntry), "BgOffset"); var viewOffsetOffset = (int)Marshal.OffsetOf(typeof(RoomEntry), "ViewOffset"); var objOffsetOffset = (int)Marshal.OffsetOf(typeof(RoomEntry), "ObjOffset"); var tileOffsetOffset = (int)Marshal.OffsetOf(typeof(RoomEntry), "TileOffset"); int objInstOffsetOffset = (int)Marshal.OffsetOf(typeof(RoomEntry), "MetresPerPixel") + 4; data.Buffer.Write(re); data.OffsetOffsets = new int[] { bgOffsetOffset, viewOffsetOffset, objOffsetOffset, tileOffsetOffset }; if (ri.ObjInst != null) { data.Buffer.Write(0); data.OffsetOffsets = data.OffsetOffsets.Concat(new int[] { objInstOffsetOffset }).ToArray(); } data.Buffer.Position = bgOffsetOffset; data.Buffer.Write(data.Buffer.Size); data.Buffer.Position = data.Buffer.Size; WriteList(data, ri.Backgrounds, WriteRoomBg); data.Buffer.Position = viewOffsetOffset; data.Buffer.Write(data.Buffer.Size); data.Buffer.Position = data.Buffer.Size; WriteList(data, ri.Views, WriteRoomView); data.Buffer.Position = objOffsetOffset; data.Buffer.Write(data.Buffer.Size); data.Buffer.Position = data.Buffer.Size; WriteList(data, ri.Objects, WriteRoomObj); data.Buffer.Position = tileOffsetOffset; data.Buffer.Write(data.Buffer.Size); data.Buffer.Position = data.Buffer.Size; WriteList(data, ri.Tiles, WriteRoomTile); if (ri.ObjInst != null) { data.Buffer.Position = objInstOffsetOffset; data.Buffer.Write(data.Buffer.Size); data.Buffer.Position = data.Buffer.Size; WriteList(data, ri.ObjInst, WriteRoomObjInst, strings); } // Unknown stuff for 2.0 //for (int i = 0; i < 8; i++) // data.Buffer.Write(0x3F3F3F3F); }