public static bool AddNewMukya(Mukya.MukyaRace race, float position) { string raceString = race.ToString(); ProfileManager.Instance.Mukyas.Add(new ProfileManager.MukyaData(raceString, 100f, 100f, 100f)); return AddNewMukya(raceString, 100f, 100f, 100f, position); }
public void Idle(Mukya mukya) { OnMoveDone -= Idle; _Animator.Play("idle"); StartCoroutine(Wait()); }
public bool AddResident(Mukya mukya) { if (_Residents.Count < MAX_RESIDENT) { mukya.None(); _Residents.Add(mukya); return true; } return false; }
public static void ShowMukyaInformation(Mukya mukya) { if (s_Instance == null) return; s_Instance._CurrentMukya = mukya; s_Instance.MukyaInformation.SetActive(true); string curr_name = "alien" + mukya._Race + "_badge1"; s_Instance.MukyaMini.SetSprite(curr_name); }
public static bool AddNewMukya(Mukya.MukyaRace race) { if (s_Instance == null) return false; return AddNewMukya(race, s_Instance._BuildingCityHall.Position()); }
// Update is called once per frame void Update() { //Pause if (Utilities.IS_PAUSED) return; /* if (_SelectedMukya != null) { Debug.Log(_SelectedMukya.Position() + " " + _SelectedMukya._Race.ToString() + " " + _SelectedMukya.Destination()); } */ bool checkInput = false; if (Input.touchCount > 0) { foreach(Touch t in Input.touches) { if (!_IsTouched) { if (t.phase == TouchPhase.Began) { _TouchOrigin = t.position; _TouchTime = 0f; } else if (t.phase == TouchPhase.Stationary) { if (!_IsTouchedMove) { _TouchTime += Time.deltaTime; if (_TouchTime >= _TouchDetectTime) { _IsTouched = true; checkInput = true; break; } } } else if (t.phase == TouchPhase.Moved) { if (!_IsTouchedMove && Vector2.Distance(_TouchOrigin, t.position) > 10f) _IsTouchedMove = true; } else if (t.phase == TouchPhase.Ended) { if (!_IsTouchedMove) checkInput = true; _IsTouched = false; _IsTouchedMove = false; } } else { if (t.phase == TouchPhase.Ended) { _IsTouched = false; _IsTouchedMove = false; } } } } else { checkInput = Input.GetMouseButtonUp(0) && !_CameraDrag.IsMoving(); } //When released if (checkInput) { //Translate to screen space Vector3 pos = _Camera.ScreenToWorldPoint(Input.mousePosition); Vector2 pos2D = new Vector2(pos.x, pos.y); Diamond touchedDiamond = GetSelectedDiamond(pos2D); if (touchedDiamond != null) { int index = (int)touchedDiamond._Type; SetDiamond(index, _PlayerDiamonds[index] + 1); UnSpawnDiamond(touchedDiamond); //Begin analytics List<Parameter> parameters = new List<Parameter>(); parameters.Add(new Parameter("Feature", "Touching Crystal")); Reta.Instance.Record("Game Feature Consumed", parameters); //End analytics SoundManager.PlaySoundEffectOneShot("touched_crystal"); return; } //Touching mukyas? Mukya touchedMukya = GetSelectedMukya(pos2D); //Check other if (touchedMukya == null) { //Touching building? Building touchedBuilding = GetSelectedBuilding(pos); if (touchedBuilding != null && HUD.CanIdleClick()) { //Make mukya go to building if selected before if (_SelectedMukya != null) { //Only if it's these buildings of course if (touchedBuilding._Type == Building.BuildingType.Bar || touchedBuilding._Type == Building.BuildingType.House || touchedBuilding._Type == Building.BuildingType.Shop || touchedBuilding._Type == Building.BuildingType.OuterWorld) { //Cancel if already moving if (_OngoingResidents.ContainsKey(_SelectedMukya)) { _SelectedMukya.OnMoveDone -= AddOngoingResident; _OngoingResidents.Remove(_SelectedMukya); } bool moving = _SelectedMukya.Move(touchedBuilding.Position()); if (moving) { _SelectedMukya.StopAllCoroutines(); _SelectedMukya.OnMoveDone += AddOngoingResident; _OngoingResidents.Add(_SelectedMukya, touchedBuilding); /* Debug.Log(_SelectedMukya.Position() + " " + _SelectedMukya._Race.ToString() + " " + touchedBuilding.Position() + " " + touchedBuilding._Type.ToString()); */ //Begin analytics List<Parameter> parameters = new List<Parameter>(); parameters.Add(new Parameter("Feature", "Moving Resident In")); Reta.Instance.Record("Game Feature Consumed", parameters); //End analytics SoundManager.PlaySoundEffectOneShot("meow2"); } } else { //Enable HUD ShowBuildingUI(touchedBuilding); } } else { //Just touching the building, enable HUD ShowBuildingUI(touchedBuilding); } } } //Continue _SelectedMukya = touchedMukya; if (_SelectedMukya != null) { HUD.ShowMukyaInformation(_SelectedMukya); SoundManager.PlaySoundEffectOneShot("meow"); } else HUD.HideMukyaInformation(); } }
IEnumerator RemoveMukyaCoroutine(Mukya mukya) { yield return new WaitForSeconds(0.1f); if (mukya == _SelectedMukya) { _SelectedMukya = null; HUD.HideMukyaInformation(); } _Mukyas.Remove(mukya); MainSceneController.SaveGame(); DestroyObject(mukya.gameObject); }
private void AddOngoingResident(Mukya mukya) { mukya.OnMoveDone -= AddOngoingResident; if (mukya == _SelectedMukya) { _SelectedMukya = null; HUD.HideMukyaInformation(); } Building building = (Building)_OngoingResidents[mukya]; if (building.CanResidenGo()) building.AddResident(mukya); else mukya.Idle(mukya); _OngoingResidents.Remove(mukya); }
public static void RemoveMukya(Mukya mukya) { if (s_Instance == null) return; if (mukya == null) return; else s_Instance.StartCoroutine(s_Instance.RemoveMukyaCoroutine(mukya)); }