public void CompleteTask(TaskToComplete task) { if (completedCount == 0) { Locator.Get <Timer>().Countdown(); } completedCount++; House targetHouse = null; foreach (var house in houses) { if (house.id == task.targetId) { targetHouse = house; break; } } if (targetHouse) { Instantiate(_receiveSpeechBubble[Random.Range(0, _receiveSpeechBubble.Length)], targetHouse.transform.position + Vector3.up, Quaternion.identity); } hate += hateIncrement; Locator.Get <Resources>().AddCoins(task.coinsReward); Locator.Get <Timer>().Bounce(); droppedTasks.Remove(task); Destroy(task.gameObject); ResetParticles(); Locator.Get <Game>().AddTime(); }
public void Run() { StartedOn = DateTime.Now; OnStartedTask?.Invoke(this, new ThreadTaskEventArgs()); try { TaskToComplete.Invoke(); } catch (Exception e) { IsError = true; Exception = e; OnErrorTask?.Invoke(this, new ThreadTaskEventArgs(e)); } CompletedOn = DateTime.Now; OnCompletedTask?.Invoke(this, new ThreadTaskEventArgs()); }
// Update is called once per frame void Update() { var player = Locator.Get <PlayerMomentumMovement>(); if (player == null) { return; } if (availableTask != null && Vector3.Distance(player.transform.position, availableTask.transform.position) < completeAtDistance) { if (availableTask != null && Locator.Get <TaskManager>().activeTask == null) { Locator.Get <TaskManager>().PickupTask(availableTask); availableTask = null; } } }
public void GiveTask(TaskToComplete task) { this.availableTask = task; }
public void PickupTask(TaskToComplete task) { //Create Speechbubble int hateLevel = 0; for (int i = 0; i < _hateThresholds.Length; i++) { if (_hateThresholds[i] > hate) { hateLevel = i; break; } } RequestSpeechBubbles speechbubbles = null; foreach (RequestSpeechBubbles item in _requestSpeechBubbles) { if (item._id == task.targetId) { speechbubbles = item; break; } } if (speechbubbles != null) { Instantiate(_requestSpeechBubblePrefab, task.transform.position - new Vector3(1, 0, 0), Quaternion.identity). GetComponentInChildren <SpriteRenderer>().sprite = speechbubbles._speechBubbles[Mathf.Min(hateLevel, speechbubbles._speechBubbles.Length)]; } activeTasks.Add(task); var last = activeTasks.LastOrDefault(); var pos = new Vector3(); if (taskListContainer.transform.childCount > 0) { pos.y = taskListContainer.transform.GetChild(taskListContainer.transform.childCount - 1) .transform.localPosition.y - .7f; } //if(last != null) // pos.y = last.transform.position.y - 20; //task.transform.SetParent(taskListContainer.transform); //task.transform.DOLocalMove(pos, .5f).SetEase(Ease.InOutSine); var p = Locator.Get <PlayerMovement>(); p.ConnectItem(task.GetComponent <Joint2D>()); task.transform.position = p.transform.position; task.transform.localScale *= .6f; task.PickedUp(); var otherHouse = houses.Find(t => t.id == task.targetId); if (completedCount == 0) { otherHouse.LightUp(); } _audioSource.PlayOneShot(_pickUpLetterClips[Random.Range(0, _pickUpLetterClips.Length)]); }
public Tasks(GameObject gameObject, TaskToComplete taskToComplete, bool complete) { interactingWith = gameObject; task = taskToComplete; Complete = complete; }