//////////////// public static string GetQualifiedName(Entity ent) { if (ent is Item) { return(ItemIdentityHelpers.GetQualifiedName((Item)ent)); } if (ent is NPC) { return(NPCIdentityHelpers.GetQualifiedName((NPC)ent)); } if (ent is Projectile) { return(ProjectileIdentityHelpers.GetQualifiedName((Projectile)ent)); } if (ent is Player) { return(((Player)ent).name); } return("...a " + ent.GetType().Name); }
internal static void DefineItemWeaponGroups1(Action <string, string[], Matcher> addDef) { // Weapon Classes addDef("Any Ranged Weapon", null, (item, grps) => { return(item.ranged); }); addDef("Any Magic Weapon", null, (item, grps) => { return(item.magic); }); addDef("Any Melee Weapon", null, (item, grps) => { return(item.melee); }); addDef("Any Thrown Weapon", null, (item, grps) => { return(item.thrown); }); // Melee Sub Classes addDef("Any Swingable", null, (item, grps) => { return(item.melee && item.useStyle == 1); }); addDef("Any Thrustable", null, (item, grps) => { return(item.melee && item.useStyle == 5); }); addDef("Any Flail", null, (item, grps) => { if (!item.melee || item.useStyle != 5) { return(false); } if (item.type == ItemID.Anchor) { return(true); } if (item.shoot == 0) { return(false); } var projPool = ModHelpersMod.Instance.EntityGroups.GetProjPool(); switch (projPool[item.shoot].aiStyle) { case 15: // Standard case 13: // Chain Knife, Boxing Glove case 69: // Flairon case 75: // Solar Eruption return(true); } return(false); }); addDef("Any Boomerang", null, (item, grps) => { if (!item.melee || item.useStyle != 1) { return(false); } if (item.type == ItemID.FlyingKnife) { return(true); } if (item.shoot == 0) { return(false); } var projPool = ModHelpersMod.Instance.EntityGroups.GetProjPool(); switch (projPool[item.shoot].aiStyle) { case 3: // Boomerangs case 15: // Thorn Chakram return(true); } return(false); }); addDef("Any Yoyo", null, (item, grps) => { return(ItemAttributeHelpers.IsYoyo(item)); }); // Magic Sub Classes addDef("Any Magic Staff Or Scepter Or Wand", null, (item, grps) => { if (!item.magic) { return(false); } string name = ItemIdentityHelpers.GetQualifiedName(item); return(name.Contains("Staff") || name.Contains("Scepter") || name.Contains("Wand")); }); addDef("Any Magic Rod", null, (item, grps) => { if (!item.magic) { return(false); } string name = ItemIdentityHelpers.GetQualifiedName(item); return(name.Contains("Rod")); }); addDef("Any Magic Gun", null, (item, grps) => { if (!item.magic) { return(false); } switch (item.type) { case ItemID.LeafBlower: return(true); } string name = ItemIdentityHelpers.GetQualifiedName(item); return(name.Contains("Gun") || name.Contains("Rifle") || name.Contains("Ray") || name.Contains("Cannon") || name.Contains("Laser")); }); addDef("Any Magic Tome", null, (item, grps) => { if (!item.magic) { return(false); } switch (item.type) { case ItemID.DemonScythe: case ItemID.WaterBolt: case ItemID.LunarFlareBook: case ItemID.MagnetSphere: case ItemID.RazorbladeTyphoon: return(true); } var has = RecipeHelpers.ItemHasIngredients(item.type, new HashSet <int> { ItemID.SpellTome }, 1); if (has) { return(true); } string name = ItemIdentityHelpers.GetQualifiedName(item); return(name.Contains("Book") || name.Contains("Tome")); }); // Ranged Sub Classes addDef("Any Ranger Gun", null, (item, grps) => { if (!item.ranged) { return(false); } return(item.useAmmo == AmmoID.Bullet || item.useAmmo == AmmoID.CandyCorn || item.useAmmo == AmmoID.Coin); }); addDef("Any Ranger Bow", null, (item, grps) => { if (!item.ranged) { return(false); } return(item.useAmmo == AmmoID.Arrow || item.useAmmo == AmmoID.Stake); }); addDef("Any Ranger Launcher", null, (item, grps) => { if (!item.ranged) { return(false); } return(item.useAmmo == AmmoID.Rocket || item.useAmmo == AmmoID.StyngerBolt || item.useAmmo == AmmoID.JackOLantern || item.useAmmo == AmmoID.NailFriendly); }); // Summon Sub Classes addDef("Any Minion Summon Item", null, (item, grps) => { return(item.summon && !item.sentry); }); addDef("Any Sentry Summon Item", null, (item, grps) => { return(item.summon && item.sentry); }); // Vanity Classes addDef("Any Vanity Accessory", null, (item, grps) => { if (!item.vanity) { return(false); } return(item.accessory); }); addDef("Any Vanity Garment", null, (item, grps) => { if (!item.vanity) { return(false); } return(!item.accessory); }); }
private void DefineItemEquipmentGroups2(Action <string, Func <Item, bool> > add_def) { // Equipment Tiers add_def("Any Tiki Equipment", ( Item item ) => { string name = ItemIdentityHelpers.GetQualifiedName(item); if (!name.Contains("Tiki")) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Plain Wood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.Wood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Boreal Wood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.BorealWood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Palm Wood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.PalmWood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Rich Mahogany Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.RichMahogany }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Ebonwood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.Ebonwood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Shadewood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.Shadewood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Pearlwood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.Pearlwood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Dynasty Wood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.DynastyWood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Spooky Wood Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.SpookyWood }, 2); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Tin Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.TinBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Copper Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.CopperBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Iron Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.IronBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Lead Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.LeadBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Silver Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.SilverBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Tungsten Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.TungstenBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Gold Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.GoldBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Platinum Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.PlatinumBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Meteor Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.MeteoriteBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Demonite Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.DemoniteBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Crimtane Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.CrimtaneBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Jungle Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.JungleSpores }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Bee Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.BeeWax }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Bone Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.Bone }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Hellstone Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.HellstoneBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Cobalt Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.CobaltBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Palladium Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.PalladiumBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Mythril Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.MythrilBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Orichalcum Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.OrichalcumBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Adamantite Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.AdamantiteBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Titanium Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.TitaniumBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Frost Core Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.FrostCore }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Forbidden Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.AncientBattleArmorMaterial }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Hallow Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.HallowedBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Chlorophyte Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.ChlorophyteBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Shroomite Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.ShroomiteBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Spectre Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.SpectreBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Shell Equipment", ( Item item ) => { var has1 = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.BeetleShell }, 1); var has2 = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.TurtleShell }, 1); if (!has1 && !has2) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Nebula Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.FragmentNebula }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Vortex Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.FragmentVortex }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Solar Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.FragmentSolar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Stardust Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.FragmentStardust }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); add_def("Any Luminite Ore Equipment", ( Item item ) => { var has = RecipeHelpers.RecipeHelpers.ItemHasIngredients(item, new HashSet <int> { ItemID.LunarBar }, 1); if (!has) { return(false); } return(item.createTile == -1 && item.createWall == -1); }); }