public void SetupCurrentAttraction(AttractionController _attraction) { currentAttraction = _attraction; attractionNameText.text = _attraction.attractionName; UIAttractionStartAnim.SetBool("isOpen", true); }
public AttractionController BuildAttraction(AttractionController _attraction) { if (myAttraction != null) { return(myAttraction); // Wenn bereits eine Attraktion steht, nicht erneut bauen. } buildingSite.SetActive(false); GameObject attraction = (GameObject)Instantiate(_attraction.gameObject); hud.ShowAlert(LocalizationManager.instance != null ? LocalizationManager.instance.GetLocalizedValue("alert_new_attraction") : "Neue Attraktion!"); float spawnHeight = 30f; Vector3 spawnPosition = new Vector3(transform.position.x, transform.position.y + spawnHeight, transform.position.z); attraction.transform.position = spawnPosition; if (transform.position.x > 0) { Vector3 rot = attraction.transform.eulerAngles; attraction.transform.rotation = Quaternion.Euler(rot.x, rot.y + 180, rot.z); } AttractionController ac = attraction.GetComponent <AttractionController>(); myAttraction = ac; attraction.transform.parent = this.transform; //Moved die Attraktion auf Bodenhöhe StartCoroutine(MoveToPosition(attraction.transform, spawnPosition, transform.position, spawnAnimationDuration)); audioSource.PlayOneShot(fallingSound, 0.2f); return(ac); }
public void AddAttraction(AttractionController _attraction) { if (AttractionAlreadyInList(_attraction)) { return; } //Füge Attraktion der Liste hinzu activeAttractions.Add(_attraction); }
void OnTriggerExit(Collider other) { AttractionController attraction = other.GetComponentInParent <AttractionController>(); if (attraction != null) { agent.obstacleAvoidanceType = ObstacleAvoidanceType.HighQualityObstacleAvoidance; CapsuleCollider collider = gameObject.GetComponent <CapsuleCollider>(); collider.enabled = true; } }
private void searchAttraction(object sender, RoutedEventArgs e) { int id = Int32.Parse(idText.Text); Attraction rslt = AttractionController.SearchByID(id); if (rslt != null) { attractionNameText.Text = rslt.AttractionName; AttractionDescriptionText.Text = rslt.AttractionDescription; attractionHowToWorkText.Text = rslt.AttractionHowToWork; AttractionParticipantsText.Text = rslt.AttractionParticipant; AttractionStartDate.Text = rslt.AttractionStartDate.ToString(); } }
public bool AttractionAlreadyInList(AttractionController _attraction) { //Suche ob genau diese Attraction (dieses gameObject) schon in Liste vorhanden ist. if (activeAttractions.Contains(_attraction)) { return(true); } //Gibt es schon eine Attraktion dieser Art? for (int i = 0; i < activeAttractions.Count; i++) { if (activeAttractions[i].id == _attraction.id) { return(true); } } return(false); }
public AttractionControllerTest() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseInMemoryDatabase(); var context = new ApplicationDbContext(optionsBuilder.Options); var mockMapper = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfiles()); }); var mapper = mockMapper.CreateMapper(); _photoRepo = new PhotoRepoFake(context); _appUserRepo = new AppUserRepoFake(context); _repo = new AttractionRepoFake(context); _controller = new AttractionController(_appUserRepo, mapper, null, _repo, _photoRepo, null); }
private void ExecuteButton_Click(object sender, RoutedEventArgs e) { int id = Int32.Parse(idText.Text); if (RideRadioButton.IsChecked == true) { if (RequestRideController.SearchByID(id).RideStatus_.Equals("Accepted For Adding")) { RideController.CreateRide(RequestRideController.SearchByID(id)); } else if (RequestRideController.SearchByID(id).RideStatus_.Equals("Accepted For Updating")) { RideController.UpdateRide(RequestRideController.SearchByID(id)); } else { RideController.deleteRide(RequestRideController.SearchByID(id)); } RequestRideController.FinishRequestRide(id); } else { if (RequestAttractionController.SearchByID(id).AttractionStatus.Equals("Accepted For Adding")) { AttractionController.CreateRide(RequestAttractionController.SearchByID(id)); } else if (RequestAttractionController.SearchByID(id).AttractionStatus.Equals("Accepted For Updating")) { AttractionController.UpdateAttraction(RequestAttractionController.SearchByID(id)); } else { AttractionController.deleteAttraction(RequestAttractionController.SearchByID(id)); } RequestAttractionController.FinishRequestAttraction(id); } }
public void CreateNewAttraction() { //Finde eine Attraktion die noch nicht in der Liste ist Debug.Log("Trying to add new Attraction"); AttractionDatabase db = FindObjectOfType <AttractionDatabase>(); List <AttractionController> attrAvailable = new List <AttractionController>(); for (int i = 0; i < db.attractionPrefabs.Count; i++) { if (!AttractionAlreadyInList(db.attractionPrefabs[i])) { attrAvailable.Add(db.attractionPrefabs[i]); } } if (attrAvailable.Count > 0) { AttractionController attrToBuild = attrAvailable[Random.Range(0, attrAvailable.Count)]; AttractionBuildingSpot[] allBuildingSpots = FindObjectsOfType <AttractionBuildingSpot>(); List <AttractionBuildingSpot> freeBuildingSpots = new List <AttractionBuildingSpot>(); for (int i = 0; i < allBuildingSpots.Length; i++) { if (allBuildingSpots[i].myAttraction == null) { freeBuildingSpots.Add(allBuildingSpots[i]); } } AttractionController createdAttraction = freeBuildingSpots[Random.Range(0, freeBuildingSpots.Count)].BuildAttraction(attrToBuild); AddAttraction(createdAttraction); } else { Debug.Log("no Available Attractions"); } }
void Update() { // If the next update is reached if (Time.time >= nextUpdate) { nextUpdate = Mathf.FloorToInt(Time.time) + 1; UpdateEverySecond(); } // Create new path if (currentStatus == status.IDLE && remainingIdleTime == 0) { // 50:50 Chance calculator // 1 = attraction // 0 = random walkRandom = (Random.value > 0.55f); // Show NPC ShowNPC(); currentStatus = status.WALKING; if (!walkRandom) { ParkManager parkManager = FindObjectOfType <ParkManager>(); if (parkManager) { List <AttractionController> attractions = parkManager.activeAttractions; if (attractions.Count > 0) { int attractionIndex = Random.Range(0, attractions.Count); // Do not move to last attraction again if (!lastVisitedAttraction || lastVisitedAttraction != attractions[attractionIndex]) { destination = attractions[attractionIndex].entrancePosition; lastVisitedAttraction = attractions[attractionIndex]; agent.SetDestination(new Vector3(destination.position.x, transform.position.y, destination.position.z)); anim.SetBool("moving", true); } else { currentStatus = status.IDLE; } } else { currentStatus = status.IDLE; } } else { currentStatus = status.IDLE; } } else { remainingIdleTime = Random.Range(game.idleTimeMin, game.idleTimeMax);; agent.SetDestination(GetRandomLocation()); anim.SetBool("moving", true); } } if (currentStatus == status.WALKING) { if (!agent.pathPending) { if (agent.remainingDistance <= agent.stoppingDistance) { if (!agent.hasPath || agent.velocity.sqrMagnitude == 0f) { if (destination) { anim.SetBool("moving", false); AttractionController attraction = lastVisitedAttraction.GetComponent <AttractionController>(); // Check if target is really an attraction if (attraction) { attraction.AddNPCToQueue(gameObject); remainingIdleTime = 0; HideNPC(); } destination = null; } else if (walkRandom && remainingIdleTime != 0) { currentStatus = status.IDLE; anim.SetBool("moving", false); } } } } } }
public void LeaveAttraction() { currentAttraction = null; attractionNameText.text = ""; UIAttractionStartAnim.SetBool("isOpen", false); }