private bool CreatePanicTaskIfStillOnFire() { if (isOnFire) { debugHolder.Log("Create next wave of panic", eDebugImportance.Unimportant); WanderTask wanderTask = new WanderTask("Panic", TaskScope.Personal, currentRoom.GetRandomSpotInsideRoom, () => isOnFire, 10, 0, false, 2, 4, eAnimationType.Panic, CreatePanicTaskIfStillOnFire); AddNewTask(wanderTask); return(true); } return(false); }
private void CreateRunFromFireTask() { debugHolder.Log("Started creating fire task", eDebugImportance.Unimportant); RoomInformation selectedRoom = roomGraph.FindRoomFromStartMatching((x) => x >= 3, currentRoom.ID); if (selectedRoom != null) { hasCreatedFireTask = true; WalkTask walkTask = new WalkTask("Walk-RunFromFire", TaskScope.Personal, selectedRoom.GetRandomSpotInsideRoom, 10, 0, false, 2, () => { hasCreatedFireTask = false; debugHolder.Log("I am done running", eDebugImportance.Important); return(true); }); personalTasks.AddTask(walkTask); debugHolder.Log("Created Fire Task", eDebugImportance.Unimportant); isOnFire = false; } else { debugHolder.Log("Could not find a room to create the fire task", eDebugImportance.Error); WanderTask wanderTask = new WanderTask("Panic", TaskScope.Personal, currentRoom.GetRandomSpotInsideRoom, () => isOnFire, 10, 0, false, 2, 4, eAnimationType.Panic, CreatePanicTaskIfStillOnFire); AddNewTask(wanderTask); isOnFire = true; } }