public int getRunestoneSkillGroupIndex(string runestoneId) { ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(runestoneId); ConfigPerks.SharedData data2 = ConfigPerks.SHARED_DATA[runestoneData.PerkInstance.Type]; ConfigSkills.SharedData data3 = ConfigSkills.SHARED_DATA[data2.LinkedToSkill]; return(data3.Group); }
public bool ownsAllRunestonesWithRarity(int rarity) { for (int i = 0; i < ConfigRunestones.RUNESTONES.Length; i++) { ConfigRunestones.SharedData data = ConfigRunestones.RUNESTONES[i]; if ((data.Rarity == rarity) && !this.ownsRunestone(data.Id)) { return(false); } } return(true); }
private void reconstructContent() { Player player = GameLogic.Binder.GameState.Player; base.m_contentMenu.refreshTitle("SKILL RUNES", string.Empty, string.Empty); this.cleanupCells(); int num = 0; int rowIdx = 0; Transform parentTm = null; int index = 0; while (index < ConfigRunestones.RUNESTONES.Length) { if (num == 0) { parentTm = this.addGridRowCellToVerticalGroup(rowIdx).GridRoot.transform; this.addSkillTitleCellToGrid(rowIdx, parentTm); rowIdx++; } else { Card.Content content2; ConfigRunestones.SharedData data = ConfigRunestones.RUNESTONES[index]; string id = data.Id; Card.Content content = null; if (player.Runestones.ownsRunestone(id)) { content2 = new Card.Content(); content2.Id = id; content2.Sprite = data.Sprite; content2.Rarity = data.Rarity; content2.Interactable = true; content = content2; } else { content2 = new Card.Content(); content2.Id = id; content2.Sprite = data.Sprite; content2.Rarity = data.Rarity; content2.Interactable = true; content2.Grayscale = true; content = content2; } this.addRunestoneToGrid(content, parentTm); index++; } num = (num + 1) % 4; } }
public void getPerkInstancesOfType(PerkType perkType, IBuffIconProvider iconProvider, ref List <KeyValuePair <PerkInstance, BuffSource> > outPerkInstances) { for (int i = 0; i < this.SelectedRunestones.Count; i++) { if (this.SelectedRunestones[i].Source == RunestoneSelectionSource.Player) { string id = this.SelectedRunestones[i].Id; SkillType skillTypeForRunestone = ConfigRunestones.GetSkillTypeForRunestone(id); if ((skillTypeForRunestone != SkillType.NONE) && this.Player.ActiveCharacter.isSkillActive(skillTypeForRunestone)) { ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(id); if (runestoneData.PerkInstance != null) { runestoneData.PerkInstance.getPerkInstancesOfType(perkType, runestoneData, ref outPerkInstances); } } } } }
public bool hasSkillInvulnerability(SkillType skillType) { for (int i = 0; i < this.SelectedRunestones.Count; i++) { if (this.SelectedRunestones[i].Source == RunestoneSelectionSource.Player) { string id = this.SelectedRunestones[i].Id; SkillType skillTypeForRunestone = ConfigRunestones.GetSkillTypeForRunestone(id); if ((skillTypeForRunestone != SkillType.NONE) && this.Player.ActiveCharacter.isSkillActive(skillTypeForRunestone)) { ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(id); if ((runestoneData.PerkInstance != null) && runestoneData.PerkInstance.hasSkillInvulnerability(skillType)) { return(true); } } } } return(false); }
public float getGenericModifierForPerkType(PerkType perkType) { float num = 0f; for (int i = 0; i < this.SelectedRunestones.Count; i++) { if (this.SelectedRunestones[i].Source == RunestoneSelectionSource.Player) { string id = this.SelectedRunestones[i].Id; SkillType skillTypeForRunestone = ConfigRunestones.GetSkillTypeForRunestone(id); if ((skillTypeForRunestone != SkillType.NONE) && this.Player.ActiveCharacter.isSkillActive(skillTypeForRunestone)) { ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(id); if (runestoneData.PerkInstance != null) { num += runestoneData.PerkInstance.getGenericModifierForPerkType(perkType); } } } } return(num); }
public int getSkillExtraCharges(SkillType skillType) { int num = 0; for (int i = 0; i < this.SelectedRunestones.Count; i++) { if (this.SelectedRunestones[i].Source == RunestoneSelectionSource.Player) { string id = this.SelectedRunestones[i].Id; SkillType skillTypeForRunestone = ConfigRunestones.GetSkillTypeForRunestone(id); if ((skillTypeForRunestone != SkillType.NONE) && this.Player.ActiveCharacter.isSkillActive(skillTypeForRunestone)) { ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(id); if (runestoneData.PerkInstance != null) { PerkInstance perkInstance = runestoneData.PerkInstance; num += perkInstance.getSkillExtraCharges(skillType); } } } } return(num); }
public static CharacterInstance ExecuteStatic(SpawningData data) { CharacterInstance character = GameLogic.Binder.CharacterPool.getObject(); if (data.CharacterInstancePrototype != null) { character.copyFrom(data.CharacterInstancePrototype); } else { character.CharacterId = data.CharacterPrototype.Id; } character.postDeserializeInitialization(); GameLogic.Binder.EventBus.CharacterSpawnStarted(character); if (data.BossPerks != null) { character.BossPerks.PerkInstances.AddRange(data.BossPerks); } if (data.SupportRunestonePerkSnapshotSource != null) { Player supportRunestonePerkSnapshotSource = data.SupportRunestonePerkSnapshotSource; for (int i = 0; i < supportRunestonePerkSnapshotSource.Runestones.SelectedRunestones.Count; i++) { string id = supportRunestonePerkSnapshotSource.Runestones.SelectedRunestones[i].Id; SkillType skillTypeForRunestone = ConfigRunestones.GetSkillTypeForRunestone(id); ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(id); if (((skillTypeForRunestone != SkillType.NONE) && supportRunestonePerkSnapshotSource.ActiveCharacter.isSkillActive(skillTypeForRunestone)) && (runestoneData.PerkInstance != null)) { character.SupportPerks.PerkInstances.Add(runestoneData.PerkInstance); } } } character.Rank = data.Rank; character.OwningPlayer = !data.IsPlayerCharacter ? null : GameLogic.Binder.GameState.Player; character.IsDead = false; character.IsPlayerCharacter = data.IsPlayerCharacter; character.IsSupport = data.IsPlayerSupportCharacter; character.IsPet = data.IsPet; if (character.IsPet) { character.IsSupport = true; } character.IsBoss = data.IsBoss; character.IsEliteBoss = data.IsEliteBoss; if (character.IsEliteBoss) { character.IsBoss = true; } character.IsWildBoss = data.IsWildBoss; if (character.IsWildBoss) { character.IsBoss = true; } character.IsBossClone = data.IsBossClone; if (data.IsBossClone) { character.IsBoss = true; } character.Id = !character.IsPlayerCharacter ? ("Enemy_" + sm_spawnCounter++) : ("Player_" + sm_spawnCounter++); if (data.NormalizedStartingHp > 0f) { character.CurrentHp = character.MaxLife(true) * data.NormalizedStartingHp; } else { character.CurrentHp = character.MaxLife(true); } character.PhysicsBody.name = "CharacterBody_" + character.Id; if (character.IsBoss) { character.PhysicsBody.CharacterController.radius = character.Radius * 1.5f; } else { character.PhysicsBody.CharacterController.radius = character.Radius; } character.PhysicsBody.CharacterController.height = 4f; character.PhysicsBody.CharacterController.enabled = true; character.assignToDefaultLayer(); character.PhysicsBody.transform.position = data.SpawnWorldPos; character.PhysicsBody.transform.rotation = data.SpawnWorlRot; if (character.IsSupport) { character.PhysicsBody.tag = Tags.SUPPORT_CHARACTER; } else if (character.IsPlayerCharacter) { character.PhysicsBody.tag = Tags.HERO_CHARACTER; } else { character.PhysicsBody.tag = Tags.MONSTER_CHARACTER; } if (character.IsSupport) { character.PhysicsBody.Seeker.traversableTags = 0x20000001; } else if (character.IsPlayerCharacter) { character.PhysicsBody.Seeker.traversableTags = -536870911; } else { character.PhysicsBody.Seeker.traversableTags = -1073741823; } character.IsPersistent = data.IsPersistent; if (data.IsPersistent) { GameLogic.Binder.GameState.PersistentCharacters.Add(character); character.PhysicsBody.gameObject.SetActive(false); } else { GameLogic.Binder.GameState.ActiveDungeon.ActiveRoom.ActiveCharacters.Add(character); character.PhysicsBody.gameObject.SetActive(true); } if (data.LimitedLifetimeSeconds > 0f) { character.FutureTimeOfDeath = Time.fixedTime + data.LimitedLifetimeSeconds; } else { character.FutureTimeOfDeath = 0f; } character.Source = data.Source; character.resetAttackTimer(); character.completeAttackTimer(); GameLogic.Binder.EventBus.CharacterSpawned(character); return(character); }
private static void PlayerMigrate_v3_to_v4(Player player) { for (int i = 0; i < player.CumulativeRetiredHeroStats.EncounteredChestTypes.Count; i++) { if (player.CumulativeRetiredHeroStats.EncounteredChestTypes[i] == ChestType.Wooden001.ToString()) { player.CumulativeRetiredHeroStats.EncounteredChestTypes[i] = ChestType.Basic001.ToString(); } } for (int j = 0; j < player.UnclaimedRewards.Count; j++) { if (player.UnclaimedRewards[j].ChestType == ChestType.Wooden001) { player.UnclaimedRewards[j].ChestType = ChestType.Basic001; } } for (int k = 0; k < player.CharacterInstances.Count; k++) { CharacterInstance instance = player.CharacterInstances[k]; for (int num4 = 0; num4 < instance.HeroStats.EncounteredChestTypes.Count; num4++) { if (instance.HeroStats.EncounteredChestTypes[num4] == ChestType.Wooden001.ToString()) { instance.HeroStats.EncounteredChestTypes[num4] = ChestType.Basic001.ToString(); } } } for (int m = 0; m < player.Vendor.Inventory.Count; m++) { if (player.Vendor.Inventory[m].PrerolledChestType == ChestType.Wooden001) { player.Vendor.Inventory[m].PrerolledChestType = ChestType.Basic001; } } if (player.CompletedTutorials.Contains("CTUT001")) { player.SocialData.HeroNamingCount = 1; } int num6 = 0; for (int n = player.Runestones.RunestoneInstances.Count - 1; n >= 0; n--) { RunestoneInstance instance2 = player.Runestones.RunestoneInstances[n]; ConfigRunestones.SharedData runestoneData = ConfigRunestones.GetRunestoneData(instance2.Id); num6 += ConfigRunestones.RUNESTONE_UPDATE_V3_RARITY_TO_V4_GEM_REWARD[runestoneData.Rarity]; if (runestoneData.LinkedToSkill == SkillType.NONE) { player.Runestones.RunestoneInstances.RemoveAt(n); } else { instance2.InspectedByPlayer = false; } } if (num6 > 0) { Reward item = new Reward(); item.ChestType = ChestType.RunestoneUpdateReward; item.addResourceDrop(ResourceType.Diamond, (double)num6); player.UnclaimedUpdateRewards.Add(item); } player.ActiveCharacter.Inventory.FrenzyPotions = player.UnusedFrenzyPotions; player.ActiveCharacter.Inventory.RevivePotions = player.UnusedFreeRevives; }