NPCTypeInfo GetTypeInfo() { NPCTypeInfo typeInfo = new NPCTypeInfo(Element.none, Element.none, Element.none); if (DictionaryHelper.NPC(NPC).ContainsKey(NPC.type)) { typeInfo = DictionaryHelper.NPC(NPC)[NPC.type]; } return(typeInfo); }
public override void SetDefaults(NPC npc) { base.SetDefaults(npc); this.NPC = npc; if (DictionaryHelper.NPC(npc).ContainsKey(npc.type)) { NPCTypeInfo typeInfo = DictionaryHelper.NPC(npc)[npc.type]; AbilityContainer abilityContainer = typeInfo.Container; float chance = ModContent.GetInstance <Config>().HiddenAbilityChancePercent; AbilityID ability = abilityContainer.PrimaryAbility; if (abilityContainer.SecondaryAbility != AbilityID.None) { if (Main.rand.NextDouble() <= 0.5) { ability = abilityContainer.SecondaryAbility; } } if (abilityContainer.HiddenAbility != AbilityID.None) { if (Main.rand.NextDouble() <= (chance * 0.01)) { ability = abilityContainer.HiddenAbility; } } CurrentAbilityID = ability; //Main.NewText( // $"NPC: {NPCID.GetUniqueKey(npc.type)}. " + // $"Possible Abilities: {abilityContainer.PrimaryAbility}, {abilityContainer.SecondaryAbility}, ({abilityContainer.HiddenAbility}). " + // $"Selected Ability: {AbilityID}. "); } }
DataTypes.ModifyTypeParameters GetTypeParameters() { NPCTypeInfo info = GetTypeInfo(); return(new DataTypes.ModifyTypeParameters(info, NPC)); }