public static void GameOver(Enemy enemy) { Player player = Player.Instance; Analytics.CustomEvent("death.floor." + Instance.floor); /* * Analytics.CustomEvent ("GameOver", new Dictionary<string, object> { * { "floor", Instance.floor }, * { "coins", player.coins }, * { "weapon", player.weapon.name }, * { "shield", player.shield.name }, * { "health", player.health }, * { "maxHealth", player.maxHealth }, * { "enemy", enemy.name } * }); */ Analytics.FlushEvents(); GameAnalytics.NewProgressionEvent(GAProgressionStatus.Fail, "floor " + Instance.floor, enemy.name); SceneManager.LoadScene("GameOver", LoadSceneMode.Additive); }
private void OnDestroy() { Analytics.FlushEvents(); }
public void FlushEvents() { Analytics.FlushEvents(); }
private void Start() { Analytics.FlushEvents(); GameAnalytics.Instance.LevelStart(); }
void OnCollisionEnter(Collision col) { if (!col.gameObject.activeSelf) { // A very important check to make sure no duplicate collisions occur! return; } switch (col.gameObject.tag) { case "Battery": GameAnalytics.Instance.UpgradeBattery(); Achievements.Instance.Gain(Achievements.Achievement.FirstBattery); _light.UpgradeBattery(); col.gameObject.DeleteSafely(); break; case "Key": GetComponent <Inventory>().AddDoorKey(); GameAnalytics.Instance.CollectKey(); col.gameObject.DeleteSafely(); break; case "Enemy": if (_light.LightIntensity > 0) { Achievements.Instance.GetHit(); GameAnalytics.Instance.HitByEnemy(); } _light.DoDamage(10f); break; } switch (col.gameObject.name) { case "Bullet(Clone)": if (col.gameObject.GetComponent <Bullet>().TryFirstHit()) { Achievements.Instance.GetHit(); var velocityMagnitude = col.gameObject.GetComponent <Rigidbody>().velocity.magnitude; GameAnalytics.Instance.HitByBullet(velocityMagnitude); _light.DoDamage(velocityMagnitude); } break; case "KeyEntrance": if (GetComponent <Inventory>().UseDoorKey()) { GameAnalytics.Instance.UsedKeyOnDoor(); col.gameObject.DeleteSafely(); } else { KeyUi.Instance.ShowRequiredKey(); } break; case "WinEntrance": if (_gameWon) { return; } var receivedHit = Achievements.Instance.Win(); GameAnalytics.Instance.GameOver(GetComponent <Inventory>().keyList); Analytics.FlushEvents(); _gameWon = true; transform.localScale = new Vector3(3, 3, 3); var offset = new Vector3(0, 1, -2); var followPlayer = GameObject.Find("Main Camera").GetComponent <FollowPlayer>(); followPlayer.zoomSpeed = 0.008f; followPlayer.ZoomIn( p => 0, offset, stopZoom => { GameObject.Find("FadeInOut") .GetComponent <FadeInOut>() .FadeOut(() => { // Game over HUD.Instance.SetGameWon(receivedHit); }); }, true ); break; } }
async UniTaskVoid Loop() { await UniTask.WaitUntil(() => Services.isInited); cardIconQueue.CreateQueue(); heads.GetComponent <EnemyHead> ().UpdateHead(getRandomHead()); Services.assets.PlaySound("start_game").Forget(); while (true) { await tutorial.CheckCurrentTutor(); await UniTask.WaitUntil(() => state == GameLoopState.IDLE); int currentChoise = -1; cardItem = cardIconQueue.GetFirstItem(); tutorial.ChangeCard(cardItem); var t1 = cardIconQueue.Shift(); var t2 = SwipeCard(); await UniTask.WhenAll(t1, t2); Swipe swipe = cardSwipe[currentViewIndex].GetComponent <Swipe> (); currentChoise = swipe.currentChoise; int timestamp = GameTime.GetTime(); ChoiceData chMeta = null; if (cardItem.me == true) { chMeta = currentChoise == Swipe.LEFT_CHOICE ? cardItem.data.left : cardItem.data.right; } else { chMeta = currentChoise == Swipe.LEFT_CHOICE ? cardItem.data.eLeft : cardItem.data.eRight; } lock (this) { Services.player.Execute(cardItem.data, currentChoise, chMeta, cardItem.me, timestamp, Services.enemy); } Services.data.swipeCount++; Services.assets.PlaySound("card_move").Forget(); //check global state if (!CheckGlobalState(timestamp)) { state = GameLoopState.DIABLED; EndTurnCanvas?.SetActive(true); bool isWin = Services.data.isWin(timestamp); if (isWin == true) { Services.assets.PlaySound("win").Forget(); } else { Services.assets.PlaySound("lose").Forget(); } Analytics.CustomEvent("gameOver", new Dictionary <string, object> { { "isWin", isWin } }); Analytics.FlushEvents(); } else if (chMeta.reward.Exists(r => r.category == GameDataManager.ACTION_ID && r.id == 1)) { Services.assets.PlaySound("attack").Forget(); } else if (chMeta.reward.Exists(r => r.category == GameDataManager.RESOURCE_ID && r.id == 1)) { Services.assets.PlaySound("heal").Forget(); } //await UniTask.Delay(100); //shift /*for (int i = 1; i < queue.Count; i++) { * queue[i - 1] = queue[i]; * } * queue[queue.Count - 1] = currentItem; * * await cardIconQueue.Shift (); */ } }
private void Quit() { AnalyticsResult data = Analytics.CustomEvent("GameOver"); Analytics.FlushEvents(); }