Пример #1
0
 public void grantSpurtBuff(CharacterInstance c)
 {
     if ((ConfigGameplay.SPURTING_ENABLED && !GameLogic.Binder.GameState.ActiveDungeon.isTutorialDungeon()) && (this.getNumberOfBuffsWithId(c, ConfigGameplay.SPURT_BUFF_ID) < ConfigGameplay.SPURTING_MAX_NUM_BUFFS))
     {
         Buff buff2 = new Buff();
         buff2.Id              = ConfigGameplay.SPURT_BUFF_ID;
         buff2.BaseStat1       = BaseStatProperty.MovementSpeed;
         buff2.DurationSeconds = ConfigGameplay.SPURTING_BUFF_DURATION_SECONDS;
         buff2.Modifier        = ConfigGameplay.SPURTING_BUFF_MOVEMENT_BONUS;
         Buff buff = buff2;
         this.startBuff(c, buff);
         if (c.IsPrimaryPlayerCharacter)
         {
             PetInstance instance = c.OwningPlayer.Pets.getSelectedPetInstance();
             if ((instance != null) && (instance.SpawnedCharacterInstance != null))
             {
                 buff2                 = new Buff();
                 buff2.BaseStat1       = BaseStatProperty.MovementSpeed;
                 buff2.DurationSeconds = ConfigGameplay.SPURTING_BUFF_DURATION_SECONDS;
                 buff2.Modifier        = ConfigGameplay.SPURTING_BUFF_MOVEMENT_BONUS;
                 buff = buff2;
                 this.startBuff(instance.SpawnedCharacterInstance, buff);
             }
         }
     }
 }
        public void refreshPetSummons(Player player)
        {
            ActiveDungeon activeDungeon = GameLogic.Binder.GameState.ActiveDungeon;

            if (((activeDungeon != null) && (activeDungeon.ActiveRoom != null)) && (((activeDungeon.CurrentGameplayState != GameplayState.ROOM_COMPLETION) && (activeDungeon.CurrentGameplayState != GameplayState.ENDED)) && (activeDungeon.CurrentGameplayState != GameplayState.END_CEREMONY)))
            {
                PetInstance instance = player.Pets.getSelectedPetInstance();
                if ((instance != null) && !App.Binder.ConfigMeta.GetPetConfig(instance.CharacterId).Enabled)
                {
                    CmdSelectPet.ExecuteStatic(player, null);
                }
                else if ((instance != null) && (instance.SpawnedCharacterInstance == null))
                {
                    CharacterInstance activeCharacter = player.ActiveCharacter;
                    Vector3           worldPt         = Vector3Extensions.ToXzVector3(activeCharacter.PhysicsBody.Transform.position) + ((Vector3)(activeCharacter.PhysicsBody.Transform.forward * 3f));
                    worldPt.x += UnityEngine.Random.Range((float)-1.5f, (float)1.5f);
                    worldPt.z += UnityEngine.Random.Range((float)-1.5f, (float)1.5f);
                    worldPt    = activeDungeon.ActiveRoom.calculateNearestEmptySpot(worldPt, activeCharacter.PhysicsBody.Transform.position - worldPt, 1f, 1f, 6f, null);
                    Character character = instance.Character;
                    CmdSpawnCharacter.SpawningData data2 = new CmdSpawnCharacter.SpawningData();
                    data2.CharacterPrototype = character;
                    data2.Rank                     = instance.Level;
                    data2.SpawnWorldPos            = worldPt;
                    data2.SpawnWorlRot             = activeCharacter.PhysicsBody.Transform.rotation;
                    data2.IsPlayerCharacter        = true;
                    data2.IsPlayerSupportCharacter = true;
                    data2.IsPet                    = true;
                    CmdSpawnCharacter.SpawningData data = data2;
                    instance.SpawnedCharacterInstance = CmdSpawnCharacter.ExecuteStatic(data);
                }
            }
        }
Пример #3
0
 public int getPetIndex(PetInstance pet)
 {
     for (int i = 0; i < this.Instances.Count; i++)
     {
         if (this.Instances[i] == pet)
         {
             return(i);
         }
     }
     return(-1);
 }
Пример #4
0
 public bool doNotify()
 {
     for (int i = 0; i < this.Instances.Count; i++)
     {
         PetInstance instance = this.Instances[i];
         if ((!instance.InspectedByPlayer && (instance.Level > 0)) && App.Binder.ConfigMeta.IsActivePetId(instance.CharacterId))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #5
0
 public void activateFrenzy()
 {
     if (!this.isFrenzyActive())
     {
         this.m_frenzyActive = true;
         Player            player          = GameLogic.Binder.GameState.Player;
         CharacterInstance activeCharacter = player.ActiveCharacter;
         this.m_frenzyTimer.set(this.getDuration(activeCharacter));
         Buff buff2 = new Buff();
         buff2.BaseStat1       = BaseStatProperty.AttacksPerSecond;
         buff2.Modifier        = App.Binder.ConfigMeta.FRENZY_HERO_BUFF_ATK_SPEED_MODIFIER;
         buff2.DurationSeconds = 1f;
         Buff item = buff2;
         this.m_activeFrenzyBuffs.Add(item);
         GameLogic.Binder.BuffSystem.startBuff(activeCharacter, item);
         buff2                 = new Buff();
         buff2.BaseStat1       = BaseStatProperty.DamagePerHit;
         buff2.Modifier        = App.Binder.ConfigMeta.FRENZY_HERO_BUFF_DPH_MODIFIER;
         buff2.DurationSeconds = 1f;
         item = buff2;
         this.m_activeFrenzyBuffs.Add(item);
         GameLogic.Binder.BuffSystem.startBuff(activeCharacter, item);
         buff2                 = new Buff();
         buff2.BaseStat1       = BaseStatProperty.Life;
         buff2.Modifier        = App.Binder.ConfigMeta.FRENZY_HERO_BUFF_LIFE_MODIFIER;
         buff2.DurationSeconds = 1f;
         item = buff2;
         this.m_activeFrenzyBuffs.Add(item);
         GameLogic.Binder.BuffSystem.startBuff(activeCharacter, item);
         buff2                 = new Buff();
         buff2.BaseStat1       = BaseStatProperty.SkillDamage;
         buff2.Modifier        = App.Binder.ConfigMeta.FRENZY_HERO_BUFF_SKILLDMG_MODIFIER;
         buff2.DurationSeconds = 1f;
         item = buff2;
         this.m_activeFrenzyBuffs.Add(item);
         GameLogic.Binder.BuffSystem.startBuff(activeCharacter, item);
         PetInstance instance2 = player.Pets.getSelectedPetInstance();
         if ((instance2 != null) && (instance2.SpawnedCharacterInstance != null))
         {
             buff2                 = new Buff();
             buff2.BaseStat1       = BaseStatProperty.AttacksPerSecond;
             buff2.Modifier        = App.Binder.ConfigMeta.FRENZY_HERO_BUFF_ATK_SPEED_MODIFIER;
             buff2.DurationSeconds = 1f;
             item = buff2;
             this.m_activeFrenzyBuffs.Add(item);
             GameLogic.Binder.BuffSystem.startBuff(instance2.SpawnedCharacterInstance, item);
         }
         activeCharacter.HeroStats.FrenzyActivations++;
         GameLogic.Binder.EventBus.FrenzyActivated();
     }
 }
Пример #6
0
 private static void PlayerMigrate_v6_to_v7(Player player)
 {
     if (player.HasPurchasedStarterBundle)
     {
         PetInstance item = new PetInstance();
         item.CharacterId = "Pet001";
         item.Level       = 1;
         player.Pets.Instances.Add(item);
     }
     for (int i = 0; i < player.Runestones.SelectedRunestoneIds.Count; i++)
     {
         RunestoneSelection selection = new RunestoneSelection();
         selection.Id     = player.Runestones.SelectedRunestoneIds[i];
         selection.Source = RunestoneSelectionSource.Player;
         player.Runestones.SelectedRunestones.Add(selection);
     }
     player.Runestones.SelectedRunestoneIds.Clear();
 }
Пример #7
0
 private void onPetSelected(Player player, PetInstance pet)
 {
     player.Runestones.refreshRunestoneSelections();
 }
Пример #8
0
        public static Player CreateProtoPlayer()
        {
            Player player = CreateNew();

            player.Version = ConfigApp.InternalClientVersion;
            player.Rank    = 50;
            player.Resources[ResourceType.Diamond.ToString()] = 25.0;
            foreach (KeyValuePair <string, ConfigAchievements.SharedData> pair in ConfigAchievements.SHARED_DATA)
            {
                player.Achievements.Notified.Add(pair.Key, 1);
                player.Achievements.Claimed.Add(pair.Key, 1);
            }
            for (int i = 1; i <= 15; i++)
            {
                PetInstance instance3 = new PetInstance();
                instance3.CharacterId       = "Pet" + i.ToString("000");
                instance3.Level             = 1;
                instance3.InspectedByPlayer = true;
                PetInstance item = instance3;
                player.Pets.Instances.Add(item);
            }
            player.CumulativeRetiredHeroStats.HighestFloor  = 0x3e8;
            player.CumulativeRetiredHeroStats.HeroesRetired = 3;
            player.CumulativeRetiredHeroStats.HighestTokenGainWithRetirement = 1000.0;
            player.ActiveCharacter.Inventory.RevivePotions = 2;
            player.ActiveCharacter.Inventory.BossPotions   = 0;
            player.ActiveCharacter.Inventory.FrenzyPotions = 1;
            IEnumerator enumerator = Enum.GetValues(typeof(ChestType)).GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    player.CumulativeRetiredHeroStats.EncounteredChestTypes.Add(((ChestType)((int)enumerator.Current)).ToString());
                }
            }
            finally
            {
                IDisposable disposable = enumerator as IDisposable;
                if (disposable == null)
                {
                }
                disposable.Dispose();
            }
            player.UnlockedSkills.Clear();
            player.ActiveCharacter.SkillInstances.Clear();
            player.ActiveCharacter.ActiveSkillTypes.Clear();
            for (int j = 0; j < ConfigSkills.ALL_HERO_SKILLS.Count; j++)
            {
                SkillType type2 = ConfigSkills.ALL_HERO_SKILLS[j];
                if (player.Rank >= ConfigSkills.SHARED_DATA[type2].UnlockRank)
                {
                    player.UnlockedSkills.Add(type2);
                    SkillInstance instance4 = new SkillInstance();
                    instance4.SkillType         = type2;
                    instance4.Rank              = 1;
                    instance4.InspectedByPlayer = true;
                    player.ActiveCharacter.SkillInstances.Add(instance4);
                }
            }
            player.ActiveCharacter.ActiveSkillTypes.Add(SkillType.Slam);
            player.ActiveCharacter.ActiveSkillTypes.Add(SkillType.Leap);
            player.ActiveCharacter.ActiveSkillTypes.Add(SkillType.Clone);
            player.Runestones.RunestoneInstances.Clear();
            for (int k = 0; k < ConfigRunestones.RUNESTONES.Length; k++)
            {
                if (player.Rank >= ConfigRunestones.RUNESTONES[k].UnlockRank)
                {
                    RunestoneInstance instance5 = new RunestoneInstance();
                    instance5.Id                = ConfigRunestones.RUNESTONES[k].Id;
                    instance5.Level             = 1;
                    instance5.Unlocked          = true;
                    instance5.InspectedByPlayer = true;
                    RunestoneInstance instance2 = instance5;
                    player.Runestones.RunestoneInstances.Add(instance2);
                }
            }
            ConfigTutorials.CheatCompleteAllFtueTutorials(player);
            ConfigTutorials.CheatCompleteAllContextTutorials(player);
            return(player);
        }
Пример #9
0
        private void refreshAuraBuffs()
        {
            ActiveDungeon     activeDungeon   = GameLogic.Binder.GameState.ActiveDungeon;
            Room              activeRoom      = activeDungeon.ActiveRoom;
            Player            player          = GameLogic.Binder.GameState.Player;
            CharacterInstance activeCharacter = player.ActiveCharacter;
            List <KeyValuePair <PerkInstance, BuffSource> > perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraIce);

            if (perkInstancesOfType.Count > 0)
            {
                List <CharacterInstance> list2 = activeDungeon.ActiveRoom.getEnemyCharactersWithinRadius(activeCharacter.PhysicsBody.Transform.position, ConfigPerks.AuraIce.AuraRadius, activeCharacter);
                for (int num2 = 0; num2 < list2.Count; num2++)
                {
                    CharacterInstance c = list2[num2];
                    for (int num3 = 0; num3 < perkInstancesOfType.Count; num3++)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair  = perkInstancesOfType[num3];
                        KeyValuePair <PerkInstance, BuffSource> pair2 = perkInstancesOfType[num3];
                        this.startOrRefreshBuffFromPerk(c, PerkType.AuraIce, 1f, (double)pair.Key.Modifier, pair2.Value, null);
                    }
                }
            }
            perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraDamageBonus);
            if (perkInstancesOfType.Count > 0)
            {
                List <CharacterInstance> list3 = activeDungeon.ActiveRoom.getEnemyCharactersWithinRadius(activeCharacter.PhysicsBody.Transform.position, ConfigPerks.AuraDamageBonus.AuraRadius, activeCharacter);
                if (list3.Count > 0)
                {
                    for (int num4 = 0; num4 < perkInstancesOfType.Count; num4++)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair3 = perkInstancesOfType[num4];
                        KeyValuePair <PerkInstance, BuffSource> pair4 = perkInstancesOfType[num4];
                        this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraDamageBonus, 1f, (double)(pair3.Key.Modifier * list3.Count), pair4.Value, null);
                    }
                }
            }
            if (activeCharacter.CurrentHpNormalized <= ConfigPerks.SHARED_DATA[PerkType.AuraLowHpArmor].Threshold)
            {
                perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraLowHpArmor);
                for (int num5 = 0; num5 < perkInstancesOfType.Count; num5++)
                {
                    KeyValuePair <PerkInstance, BuffSource> pair5 = perkInstancesOfType[num5];
                    KeyValuePair <PerkInstance, BuffSource> pair6 = perkInstancesOfType[num5];
                    this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraLowHpArmor, 1f, (double)pair5.Key.Modifier, pair6.Value, null);
                }
            }
            if (activeCharacter.CurrentHpNormalized <= ConfigPerks.SHARED_DATA[PerkType.AuraLowHpAttackSpeed].Threshold)
            {
                perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraLowHpAttackSpeed);
                for (int num6 = 0; num6 < perkInstancesOfType.Count; num6++)
                {
                    KeyValuePair <PerkInstance, BuffSource> pair7 = perkInstancesOfType[num6];
                    KeyValuePair <PerkInstance, BuffSource> pair8 = perkInstancesOfType[num6];
                    this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraLowHpAttackSpeed, 1f, (double)pair7.Key.Modifier, pair8.Value, null);
                }
            }
            if (activeCharacter.CurrentHpNormalized <= ConfigPerks.SHARED_DATA[PerkType.AuraLowHpDamage].Threshold)
            {
                perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraLowHpDamage);
                for (int num7 = 0; num7 < perkInstancesOfType.Count; num7++)
                {
                    KeyValuePair <PerkInstance, BuffSource> pair9  = perkInstancesOfType[num7];
                    KeyValuePair <PerkInstance, BuffSource> pair10 = perkInstancesOfType[num7];
                    this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraLowHpDamage, 1f, (double)pair9.Key.Modifier, pair10.Value, null);
                }
            }
            if (activeCharacter.CurrentHpNormalized <= ConfigPerks.SHARED_DATA[PerkType.AuraLowHpDodge].Threshold)
            {
                perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraLowHpDodge);
                for (int num8 = 0; num8 < perkInstancesOfType.Count; num8++)
                {
                    KeyValuePair <PerkInstance, BuffSource> pair11 = perkInstancesOfType[num8];
                    KeyValuePair <PerkInstance, BuffSource> pair12 = perkInstancesOfType[num8];
                    this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraLowHpDodge, 1f, (double)pair11.Key.Modifier, pair12.Value, null);
                }
            }
            if (activeCharacter.CurrentHpNormalized == 1f)
            {
                perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AuraFullHpDamage);
                for (int num9 = 0; num9 < perkInstancesOfType.Count; num9++)
                {
                    KeyValuePair <PerkInstance, BuffSource> pair13 = perkInstancesOfType[num9];
                    KeyValuePair <PerkInstance, BuffSource> pair14 = perkInstancesOfType[num9];
                    this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraFullHpDamage, 1f, (double)pair13.Key.Modifier, pair14.Value, null);
                }
            }
            perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AllyBonusAttacksPerSecond);
            for (int i = 0; i < perkInstancesOfType.Count; i++)
            {
                for (int num11 = 0; num11 < activeDungeon.ActiveRoom.ActiveCharacters.Count; num11++)
                {
                    CharacterInstance instance3 = activeDungeon.ActiveRoom.ActiveCharacters[num11];
                    if (instance3.IsSupport && !instance3.IsDead)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair15 = perkInstancesOfType[i];
                        KeyValuePair <PerkInstance, BuffSource> pair16 = perkInstancesOfType[i];
                        this.startOrRefreshBuffFromPerk(instance3, PerkType.AllyBonusAttacksPerSecond, 1f, (double)pair15.Key.Modifier, pair16.Value, null);
                    }
                }
            }
            perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AllyBonusDamage);
            for (int j = 0; j < perkInstancesOfType.Count; j++)
            {
                for (int num13 = 0; num13 < activeDungeon.ActiveRoom.ActiveCharacters.Count; num13++)
                {
                    CharacterInstance instance4 = activeDungeon.ActiveRoom.ActiveCharacters[num13];
                    if (instance4.IsSupport && !instance4.IsDead)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair17 = perkInstancesOfType[j];
                        KeyValuePair <PerkInstance, BuffSource> pair18 = perkInstancesOfType[j];
                        this.startOrRefreshBuffFromPerk(instance4, PerkType.AllyBonusDamage, 1f, (double)pair17.Key.Modifier, pair18.Value, null);
                    }
                }
            }
            perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.AllyBonusSpeed);
            for (int k = 0; k < perkInstancesOfType.Count; k++)
            {
                for (int num15 = 0; num15 < activeDungeon.ActiveRoom.ActiveCharacters.Count; num15++)
                {
                    CharacterInstance instance5 = activeDungeon.ActiveRoom.ActiveCharacters[num15];
                    if (instance5.IsSupport && !instance5.IsDead)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair19 = perkInstancesOfType[k];
                        KeyValuePair <PerkInstance, BuffSource> pair20 = perkInstancesOfType[k];
                        this.startOrRefreshBuffFromPerk(instance5, PerkType.AllyBonusSpeed, 1f, (double)pair19.Key.Modifier, pair20.Value, null);
                    }
                }
            }
            perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(activeCharacter, PerkType.PetBonusDamage);
            for (int m = 0; m < perkInstancesOfType.Count; m++)
            {
                for (int num17 = 0; num17 < activeDungeon.ActiveRoom.ActiveCharacters.Count; num17++)
                {
                    CharacterInstance instance6 = activeDungeon.ActiveRoom.ActiveCharacters[num17];
                    if (instance6.IsPet && !instance6.IsDead)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair21 = perkInstancesOfType[m];
                        KeyValuePair <PerkInstance, BuffSource> pair22 = perkInstancesOfType[m];
                        this.startOrRefreshBuffFromPerk(instance6, PerkType.PetBonusDamage, 1f, (double)pair21.Key.Modifier, pair22.Value, null);
                    }
                }
            }
            for (int n = 0; n < activeRoom.ActiveCharacters.Count; n++)
            {
                CharacterInstance source = activeRoom.ActiveCharacters[n];
                if (!source.IsDead && (source.IsBoss && (Vector3.Distance(Vector3Extensions.ToXzVector3(source.PhysicsBody.Transform.position), Vector3Extensions.ToXzVector3(activeCharacter.PhysicsBody.Transform.position)) <= ((ConfigPerks.BossAuras.Radius + activeCharacter.Radius) + source.Radius))))
                {
                    perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(source, PerkType.BossAuraIce);
                    for (int num19 = 0; num19 < perkInstancesOfType.Count; num19++)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair23 = perkInstancesOfType[num19];
                        KeyValuePair <PerkInstance, BuffSource> pair24 = perkInstancesOfType[num19];
                        this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.BossAuraIce, 1f, (double)pair23.Key.Modifier, pair24.Value, source);
                    }
                    perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(source, PerkType.BossAuraCooldownSlow);
                    for (int num20 = 0; num20 < perkInstancesOfType.Count; num20++)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair25 = perkInstancesOfType[num20];
                        KeyValuePair <PerkInstance, BuffSource> pair26 = perkInstancesOfType[num20];
                        this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.BossAuraCooldownSlow, 1f, (double)pair25.Key.Modifier, pair26.Value, source);
                    }
                    perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(source, PerkType.BossAuraDamageOverTime);
                    for (int num21 = 0; num21 < perkInstancesOfType.Count; num21++)
                    {
                        KeyValuePair <PerkInstance, BuffSource> pair27 = perkInstancesOfType[num21];
                        KeyValuePair <PerkInstance, BuffSource> pair28 = perkInstancesOfType[num21];
                        this.startOrRefreshBuffFromPerk(source, PerkType.BossAuraDamageOverTime, 1f, (double)pair27.Key.Modifier, pair28.Value, source);
                    }
                }
            }
            sm_tempCandidateList.Clear();
            PetInstance instance8 = player.Pets.getSelectedPetInstance();

            if (((instance8 != null) && (instance8.SpawnedCharacterInstance != null)) && !instance8.SpawnedCharacterInstance.IsDead)
            {
                sm_tempCandidateList.Add(instance8.SpawnedCharacterInstance);
            }
            for (int num22 = 0; num22 < sm_tempCandidateList.Count; num22++)
            {
                CharacterInstance instance9 = sm_tempCandidateList[num22];
                perkInstancesOfType = CharacterStatModifierUtil.GetPerkInstancesOfType(instance9, PerkType.AuraDamageBonus);
                for (int num23 = 0; num23 < perkInstancesOfType.Count; num23++)
                {
                    KeyValuePair <PerkInstance, BuffSource> pair29 = perkInstancesOfType[num23];
                    KeyValuePair <PerkInstance, BuffSource> pair30 = perkInstancesOfType[num23];
                    this.startOrRefreshBuffFromPerk(instance9, PerkType.AuraDamageBonus, 1f, (double)pair29.Key.Modifier, pair30.Value, null);
                    KeyValuePair <PerkInstance, BuffSource> pair31 = perkInstancesOfType[num23];
                    KeyValuePair <PerkInstance, BuffSource> pair32 = perkInstancesOfType[num23];
                    this.startOrRefreshBuffFromPerk(activeCharacter, PerkType.AuraDamageBonus, 1f, (double)pair31.Key.Modifier, pair32.Value, null);
                }
            }
        }
Пример #10
0
        public void refreshRunestoneSelections()
        {
            PetInstance instance = this.Player.Pets.getSelectedPetInstance();

            if (instance == null)
            {
                for (int i = this.SelectedRunestones.Count - 1; i >= 0; i--)
                {
                    if (this.SelectedRunestones[i].Source == RunestoneSelectionSource.Pet)
                    {
                        this.SelectedRunestones.RemoveAt(i);
                    }
                }
            }
            else
            {
                GatedPerkContainer fixedPerks = GameLogic.Binder.CharacterResources.getResource(instance.CharacterId).FixedPerks;
                for (int j = 0; j < ConfigSkills.ACTIVE_HERO_SKILLS.Count; j++)
                {
                    SkillType skillType         = ConfigSkills.ACTIVE_HERO_SKILLS[j];
                    string    runestoneId       = this.getSelectedRunestoneId(skillType, RunestoneSelectionSource.Pet);
                    string    linkedToRunestone = null;
                    for (int m = 0; m < fixedPerks.Entries.Count; m++)
                    {
                        if (fixedPerks.isPerkUnlocked(instance.Level, m))
                        {
                            PerkType type = fixedPerks.getPerkInstanceAtIndex(m).Type;
                            ConfigPerks.SharedData data = ConfigPerks.SHARED_DATA[type];
                            if ((data.LinkedToSkill == skillType) && (data.LinkedToRunestone != null))
                            {
                                linkedToRunestone = data.LinkedToRunestone;
                                break;
                            }
                        }
                    }
                    if (runestoneId != linkedToRunestone)
                    {
                        this.SelectedRunestones.Remove(this.getRunestoneSelection(runestoneId));
                        if (linkedToRunestone != null)
                        {
                            RunestoneSelection item = new RunestoneSelection();
                            item.Id     = linkedToRunestone;
                            item.Source = RunestoneSelectionSource.Pet;
                            this.SelectedRunestones.Add(item);
                        }
                    }
                }
                for (int k = 0; k < ConfigSkills.ACTIVE_HERO_SKILLS.Count; k++)
                {
                    SkillType type3 = ConfigSkills.ACTIVE_HERO_SKILLS[k];
                    string    str3  = this.getSelectedRunestoneId(type3, RunestoneSelectionSource.Player);
                    if (str3 != null)
                    {
                        string str4 = this.getSelectedRunestoneId(type3, RunestoneSelectionSource.Pet);
                        if (str3 == str4)
                        {
                            RunestoneSelection selection         = this.getRunestoneSelection(str3);
                            int runestoneOrderNumberForSkillType = ConfigRunestones.GetRunestoneOrderNumberForSkillType(str3, type3);
                            selection.Id = ConfigRunestones.GetRunestoneId(type3, runestoneOrderNumberForSkillType + 1);
                        }
                    }
                }
            }
        }
 private void onPetSelected(Player player, PetInstance pet)
 {
     this.refreshPetSummons(player);
 }