示例#1
0
 private void onRewardConsumed(Player player, Reward reward)
 {
     if (reward.Pets.Count > 0)
     {
         TrackingEvent e = new TrackingEvent("petbox_opened");
         if (reward.Pets.Count > 1)
         {
             e.Payload.Add("box_type", "mega_pet");
         }
         else
         {
             e.Payload.Add("box_type", "pet");
         }
         for (int i = 0; i < reward.Pets.Count; i++)
         {
             e.Payload.Add("reward_" + (i + 1), reward.Pets[i].PetId);
             e.Payload.Add("reward_" + (i + 1) + "_amount", reward.Pets[i].Amount);
         }
         for (int j = 0; j < player.Pets.Instances.Count; j++)
         {
             PetInstance instance = player.Pets.Instances[j];
             e.Payload.Add("pet_" + (j + 1), instance.CharacterId);
             e.Payload.Add("pet_" + (j + 1) + "_state", instance.Level);
         }
         this.injectStandardPayload(player, e);
         Service.Binder.TrackingService.AddEvent(e);
     }
 }
        public void attachSupportPerk(PerkType perkType)
        {
            PetInstance instance = base.Character.OwningPlayer.Pets.getPetInstance(base.Character.Character);

            if ((instance != null) && instance.Character.FixedPerks.hasUnlockedPerkOfType(instance.Level, perkType))
            {
                PerkInstance item = new PerkInstance();
                item.Type     = perkType;
                item.Modifier = ConfigPerks.GetBestModifier(perkType);
                base.Character.SupportPerks.PerkInstances.Add(item);
            }
        }
示例#3
0
        private void sendPlayerProgressEvent(Player player)
        {
            TrackingEvent e = new TrackingEvent("player_progress");

            e.Payload.Add("tokens_earned", player.TrackingData.TokensEarned);
            e.Payload.Add("diamonds_earned", player.TrackingData.DiamondsEarned);
            e.Payload.Add("coins_earned_active", player.TrackingData.CoinsEarnedActive);
            e.Payload.Add("coins_earned_passive", player.TrackingData.CoinsEarnedPassive);
            e.Payload.Add("items_gained", player.TrackingData.ItemsGained);
            e.Payload.Add("weapon_levelups", player.TrackingData.WeaponLevelups);
            e.Payload.Add("armor_levelups", player.TrackingData.ArmorLevelups);
            e.Payload.Add("cloak_levelups", player.TrackingData.CloakLevelups);
            e.Payload.Add("killed_by_minions", player.TrackingData.KilledByMinions);
            e.Payload.Add("boss_fights_lost", player.TrackingData.BossFightsLost);
            e.Payload.Add("active_floor_completions", player.TrackingData.ActiveFloorCompletions);
            e.Payload.Add("passive_floor_completions", player.TrackingData.PassiveFloorCompletions);
            e.Payload.Add("free_revives_used", player.TrackingData.FreeRevivesUsed);
            PetInstance instance = player.Pets.getSelectedPetInstance();

            if (instance != null)
            {
                e.Payload.Add("active_pet", instance.CharacterId);
                e.Payload.Add("active_pet_level", instance.Level);
            }
            e.Payload.Add("boss_auto_summon_enabled", player.Preferences.AutoSummonBosses);
            e.Payload.Add("combat_stats_enabled", player.Preferences.CombatStatsEnabled);
            e.Payload.Add("main_menu_opens_top", player.TrackingData.NumMainMenuOpensTopButton);
            e.Payload.Add("main_menu_opens_arrow", player.TrackingData.NumMainMenuOpensArrowButton);
            e.Payload.Add("main_menu_opens_swipe", player.TrackingData.NumMainMenuOpensSwipe);
            for (int i = 0; i < ConfigSkills.SkillGroupCount; i++)
            {
                string        str3;
                string        key       = "skill_" + (i + 1);
                SkillInstance instance2 = player.ActiveCharacter.getActiveSkillInstanceForGroup(i);
                if (instance2 == null)
                {
                    goto Label_03DE;
                }
                string    str2      = string.Empty;
                SkillType skillType = instance2.SkillType;
                switch (skillType)
                {
                case SkillType.Omnislash:
                    str2 = "slash";
                    goto Label_036F;

                case SkillType.Slam:
                    str2 = "slam";
                    goto Label_036F;

                case SkillType.Implosion:
                    str2 = "void";
                    goto Label_036F;

                case SkillType.Clone:
                    str2 = "clone";
                    goto Label_036F;

                default:
                    if (skillType != SkillType.Leap)
                    {
                        if (skillType != SkillType.Whirlwind)
                        {
                            break;
                        }
                        str2 = "whirl";
                    }
                    else
                    {
                        str2 = "leap";
                    }
                    goto Label_036F;
                }
                str2 = "changeme";
                Debug.LogError("Unsupported skill type: " + instance2.SkillType);
Label_036F:
                str3 = player.Runestones.getSelectedRunestoneId(instance2.SkillType, RunestoneSelectionSource.Player);
                if (str3 != null)
                {
                    int num2 = ConfigRunestones.GetRunestoneOrderNumberForSkillType(str3, instance2.SkillType) + 2;
                    e.Payload.Add(key, str2 + "_" + num2);
                }
                else
                {
                    e.Payload.Add(key, str2 + "_1");
                }
                continue;
Label_03DE:
                e.Payload.Add(key, string.Empty);
            }
            if ((player.TrackingData.FpsTotalFrames >= 5L) && (player.TrackingData.FpsTotalSeconds >= 5f))
            {
                e.Payload.Add("fps", (int)(player.TrackingData.FpsTotalFrames / ((long)player.TrackingData.FpsTotalSeconds)));
            }
            else
            {
                e.Payload.Add("fps", 0);
            }
            this.injectStandardPayload(player, e);
            Service.Binder.TrackingService.AddEvent(e);
            player.TrackingData.clearPlayerProgressFields();
        }