From fff135c5fe4341614af1a20384862d1cf5a873dd Mon Sep 17 00:00:00 2001 From: Nekololizu Date: Mon, 8 Jun 2020 05:57:16 +0200 Subject: [PATCH] Added fishing stuffs & few other things --- .vs/NekoTweakMod/DesignTimeBuild/.dtbcache.v2 | Bin 28300 -> 28357 bytes .vs/NekoTweakMod/v16/.suo | Bin 56320 -> 56320 bytes Items/AddTooltip.cs | 6 +- Items/Fishing/AddItemToCrate.cs | 37 +++++++++++ Items/Fishing/FishingRods.cs | 24 +++++++ Items/ModifyAccessories.cs | 49 ++++++++++++++ ...etDefaultVanilla.cs => ModifyEquipment.cs} | 6 +- Items/ModifyTooltip.cs | 13 ++-- Items/NoFakeChests.cs | 62 ++++++++++++++++++ ...{SetNameOverride.cs => ReplaceItemName.cs} | 5 +- Items/UpdateAccessories.cs | 36 ---------- NPCs/NPCshops.cs | 22 +++++++ NekoTweakMod.cs | 1 + README.md | 21 ++---- build.txt | 2 +- description.txt | 16 ++--- ...NekoTweakMod.csprojAssemblyReference.cache | Bin 93564 -> 424 bytes 17 files changed, 225 insertions(+), 75 deletions(-) create mode 100644 Items/Fishing/AddItemToCrate.cs create mode 100644 Items/Fishing/FishingRods.cs create mode 100644 Items/ModifyAccessories.cs rename Items/{SetDefaultVanilla.cs => ModifyEquipment.cs} (87%) create mode 100644 Items/NoFakeChests.cs rename Items/{SetNameOverride.cs => ReplaceItemName.cs} (66%) delete mode 100644 Items/UpdateAccessories.cs create mode 100644 NPCs/NPCshops.cs diff --git a/.vs/NekoTweakMod/DesignTimeBuild/.dtbcache.v2 b/.vs/NekoTweakMod/DesignTimeBuild/.dtbcache.v2 index 117469ccbe7be5c7c4c810c463b92465154bd4f2..6c078e6eedb831767974389e259bcd55883b984f 100644 GIT binary patch delta 483 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 aDjj-j-{}41Dvx8*;q$|yX)27YRsREx4{@>p delta 7316 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 LL+^Zp3km-QnN7%w diff --git a/Items/AddTooltip.cs b/Items/AddTooltip.cs index b90d037..313e7ef 100644 --- a/Items/AddTooltip.cs +++ b/Items/AddTooltip.cs @@ -9,13 +9,13 @@ public class AddTooltip : GlobalItem { public override void ModifyTooltips(Item item, List tooltips) // Allows you to modify tooltip properties for items { - if (item.type == ItemID.Shackle) // Specifies what item + if (item.type == ItemID.Shackle) // Specifies what item { TooltipLine newTooltip = new TooltipLine(mod, "Tooltip0", "Enemies are more likely to target you"); // Creates a new TooltipLine for your mod with the name Tooltip0 - //"Tooltip#" - A tooltip line of the item. # will be 0 for the first line, 1 for the second, etc. + // "Tooltip#" - A tooltip line of the item. # will be 0 for the first line, 1 for the second, etc. tooltips.Add(newTooltip); - //Adds the Tooltip to the list + // Adds the Tooltip to the list } { if (item.type == ItemID.TitanGlove) diff --git a/Items/Fishing/AddItemToCrate.cs b/Items/Fishing/AddItemToCrate.cs new file mode 100644 index 0000000..ca8dbf5 --- /dev/null +++ b/Items/Fishing/AddItemToCrate.cs @@ -0,0 +1,37 @@ +using Terraria.ID; +using Terraria; +using Terraria.ModLoader; + +namespace NekoTweakMod.Items.Fishing +{ + public class AddItemToCrate : GlobalItem + { + public string Context; + public bool RandomBool; // still no idea how either string or bool works here, but got errors without using InstancePerEntity & code works fine + + public override bool InstancePerEntity => true; + + public override GlobalItem Clone(Item item, Item itemClone) + { + AddItemToCrate myClone = (AddItemToCrate)base.Clone(item, itemClone); + myClone.Context = Context; + myClone.RandomBool = RandomBool; + return myClone; + } + public override void OpenVanillaBag(string context, Player player, int arg) + { + if (context == "crate" && arg == ItemID.IronCrate) + // if context & arg is = text & item id + // Context has to be one of these examples: "present", "bossBag", "crate", "lockBox", "herbBag", or "goodieBag" + // arg specifies the present/bag/crate itemid + { + // Each item here will roll individually, but it is possible to get multiple of them at once + if (Main.rand.NextBool(33)) player.QuickSpawnItem(ItemID.WoodenSword); // number/100 or "100% if its at 1" chance/rng & also Specifies the item to add to the present/bag/crate + // if (Main.rand.NextBool(25)) player.QuickSpawnItem(ItemID.Meowmere); + // if (Main.rand.NextBool(50)) player.QuickSpawnItem(ItemID.PlanteraBossBag); + // if (Main.rand.NextBool(75)) player.QuickSpawnItem(ItemID.HotlineFishingHook); + + } + } + } +} \ No newline at end of file diff --git a/Items/Fishing/FishingRods.cs b/Items/Fishing/FishingRods.cs new file mode 100644 index 0000000..845dee7 --- /dev/null +++ b/Items/Fishing/FishingRods.cs @@ -0,0 +1,24 @@ +using Terraria.ID; +using Terraria; +using Terraria.ModLoader; + +namespace NekoTweakMod.Items +{ + public class FishingRods : GlobalItem // class name & vanilla hook + { + public override void SetDefaults(Item item) // SetDefaults allows you to set/change properties of items + { // Single line "if" statements as we are only changing 1 property + if (item.type == ItemID.WoodFishingPole) item.fishingPole = 15; // sets fishing power to 15% + if (item.type == ItemID.ReinforcedFishingPole) item.fishingPole = 20; + //if (item.type == ItemID.ScarabFishingRod) item.fishingPole = 30; + //if (item.type == ItemID.ChumCaster) item.fishingPole = 30; + if (item.type == ItemID.FiberglassFishingPole) item.fishingPole = 30; + if (item.type == ItemID.SittingDucksFishingRod) item.fishingPole = 33; + if (item.type == ItemID.FisherofSouls) item.fishingPole = 35; + if (item.type == ItemID.Fleshcatcher) item.fishingPole = 37; + if (item.type == ItemID.MechanicsRod) item.fishingPole = 45; + if (item.type == ItemID.HotlineFishingHook) item.fishingPole = 47; + + } + } +} \ No newline at end of file diff --git a/Items/ModifyAccessories.cs b/Items/ModifyAccessories.cs new file mode 100644 index 0000000..07716ad --- /dev/null +++ b/Items/ModifyAccessories.cs @@ -0,0 +1,49 @@ +using Terraria.ID; +using Terraria; +using Terraria.ModLoader; + +namespace NekoTweakMod.Items +{ + public class ModifyAccessories : GlobalItem + { + public override void UpdateAccessory(Item item, Player player, bool hideVisual) + { + if (item.type == ItemID.FeralClaws) + { + player.meleeSpeed -= 0.12f; // Gives -12% melee speed + player.kbGlove = false; // Sets this item as a knockback glove + if (player.HeldItem.melee || player.HeldItem.summon) // if the player is holding/using either a melee or summoner weapon + // Thanks to Oli for telling me about player.helditem + { + player.releaseUseItem = true; // Makes the accessory give autoReuse/AutoSwing to the players item/weapon + } + + } + { + //single-line "if" statement examples, changing 1 property only for each statement + if (item.type == ItemID.TitanGlove) player.meleeSpeed += 0.12f; // 12% increased melee speed + if (item.type == ItemID.Shackle) player.aggro += 50; // increases players aggro by 50+ + } + { + if (item.type == ItemID.FireGauntlet) + { + player.meleeDamage += 0.02f;// 2% increase + player.meleeSpeed += 0.02f; + if (player.HeldItem.melee || player.HeldItem.summon) player.releaseUseItem = true; + } + } + { + if (item.type == ItemID.MechanicalGlove) + { + if (player.HeldItem.melee || player.HeldItem.summon) player.releaseUseItem = true; + } + } + { + if (item.type == ItemID.PowerGlove) + { + if (player.HeldItem.melee || player.HeldItem.summon) player.releaseUseItem = true; + } + } + } + } +} \ No newline at end of file diff --git a/Items/SetDefaultVanilla.cs b/Items/ModifyEquipment.cs similarity index 87% rename from Items/SetDefaultVanilla.cs rename to Items/ModifyEquipment.cs index abb3b6b..e8bbae9 100644 --- a/Items/SetDefaultVanilla.cs +++ b/Items/ModifyEquipment.cs @@ -4,7 +4,7 @@ namespace NekoTweakMod.Items { - public class SetDefaultVanilla : GlobalItem // class name & vanilla hook + public class ModifyEquipment : GlobalItem // class name & vanilla hook { public override void SetDefaults(Item item) // SetDefaults allows you to set/change properties of items { @@ -15,7 +15,9 @@ public class SetDefaultVanilla : GlobalItem // class name & vanilla hook //item.knockBack = 0; } if (item.type == ItemID.WormScarf) item.defense = 2; // Single line if statement as we are only changing 1 property - if (item.type == ItemID.Muramasa) item.damage = 26; + if (item.type == ItemID.Muramasa) item.damage = 26; + if (item.type == ItemID.MiningShirt) item.shopCustomPrice = 40000; // changes the sale value + if (item.type == ItemID.MiningPants) item.shopCustomPrice = 40000; { if (item.type == ItemID.ReaverShark) { diff --git a/Items/ModifyTooltip.cs b/Items/ModifyTooltip.cs index a9f398c..1dd130a 100644 --- a/Items/ModifyTooltip.cs +++ b/Items/ModifyTooltip.cs @@ -29,14 +29,11 @@ public class ModifyTooltip : GlobalItem } } { - /* if(item.type == ItemID.PowerGlove) // Changing multiple tooltip lines at once - // Tooltip0 will be the first tooltip line & tooltip1 the second, etc - { - TooltipLine line2 = tooltips.FirstOrDefault(x => x.Name == "Tooltip0" && x.mod == "Terraria"); - if (line2 != null) line2.text = "powerglove knockback text"; - TooltipLine line3 = tooltips.FirstOrDefault(x => x.Name == "Tooltip1" && x.mod == "Terraria"); - if (line3 != null) line3.text = "12% increased melee speed"; - } */ + if (item.type == ItemID.FireGauntlet) + { + TooltipLine line2 = tooltips.FirstOrDefault(x => x.Name == "Tooltip1" && x.mod == "Terraria"); + if (line2 != null) line2.text = "12% increased melee damage and speed"; + } } } } diff --git a/Items/NoFakeChests.cs b/Items/NoFakeChests.cs new file mode 100644 index 0000000..d65c13d --- /dev/null +++ b/Items/NoFakeChests.cs @@ -0,0 +1,62 @@ +using Terraria.ID; +using Terraria; +using Terraria.ModLoader; + +namespace NekoTweakMod.Items +{ + public class NoFakeChests : GlobalItem + { + public override void SetDefaults(Item item) + { + } + } // still missing few 1.4 fake chests +} // hopefully this simple code change them to working chests~ +/* + if(item.type == ItemID.Fake_BlueDungeonChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_BoneChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_BorealWoodChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_CactusChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_Chest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_CorruptionChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_CrimsonChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_CrystalChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_DynastyChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_EbonwoodChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_FleshChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_FrozenChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_GlassChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_GoldChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_GoldenChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_GraniteChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_GreenDungeonChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_HallowedChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_HoneyChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_IceChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_IvyChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_JungleChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_LihzahrdChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_LivingWoodChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_MarbleChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_MartianChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_MeteoriteChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_MushroomChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_newchest1) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_newchest2) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_ObsidianChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_PalmWoodChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_PearlwoodChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_PinkDungeonChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_PumpkinChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_RichMahoganyChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_ShadewoodChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_ShadowChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_SkywareChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_SlimeChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_SpookyChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_SteampunkChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_WaterChest) item.CloneDefaults(ItemID.DeadMansChest); + if (item.type == ItemID.Fake_WebCoveredChest) item.CloneDefaults(ItemID.DeadMansChest); + } + } +} +*/ diff --git a/Items/SetNameOverride.cs b/Items/ReplaceItemName.cs similarity index 66% rename from Items/SetNameOverride.cs rename to Items/ReplaceItemName.cs index 44b1db8..9a4f165 100644 --- a/Items/SetNameOverride.cs +++ b/Items/ReplaceItemName.cs @@ -4,14 +4,13 @@ namespace NekoTweakMod.Items { - public class SetNameOverride : GlobalItem // class name & vanilla hook + public class ReplaceItemName : GlobalItem // class name & vanilla hook { public override void SetDefaults(Item item) // SetDefaults allows you to set/change properties of items { if (item.type == ItemID.IvyWhip) item.SetNameOverride("Ivy Hook"); // Ocd fix due to summoners having whip weapons // specifies what item to change - // Set the name of the specified item to "Name" - // seperation between each "if" statement when trying to change another item + // Set the name of the specified item to ("Name") } } } \ No newline at end of file diff --git a/Items/UpdateAccessories.cs b/Items/UpdateAccessories.cs deleted file mode 100644 index 760cba9..0000000 --- a/Items/UpdateAccessories.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Terraria.ID; -using Terraria; -using Terraria.ModLoader; - -namespace NekoTweakMod.Items -{ - public class UpdateAccessories : GlobalItem - { - public override void UpdateAccessory(Item item, Player player, bool hideVisual) - { - if (item.type == ItemID.FeralClaws) - { - player.meleeSpeed -= 0.12f; // Gives -12% melee speed - player.kbGlove = false; // Sets this item as a knockback glove - player.releaseUseItem = true; // Gives the accessory autoReuse/AutoSwing - } - // if(item.noMelee) - // player.releaseUseItem = false; - { - //single-line "if" statement examples, changing 1 property only for each if statement - if (item.type == ItemID.TitanGlove) player.meleeSpeed += 0.12f; // 12% increased melee speed - if (item.type == ItemID.Shackle) player.aggro += 50; // increases players aggro by 50+ - if (item.type == ItemID.PowerGlove) player.releaseUseItem = true; - if (item.type == ItemID.MechanicalGlove) player.releaseUseItem = true; - } - { - if (item.type == ItemID.FireGauntlet) - { - player.releaseUseItem = true; - player.meleeDamage += 0.02f;// 2% increase - player.meleeSpeed += 0.02f; - } - } - } - } -} \ No newline at end of file diff --git a/NPCs/NPCshops.cs b/NPCs/NPCshops.cs new file mode 100644 index 0000000..d6fd369 --- /dev/null +++ b/NPCs/NPCshops.cs @@ -0,0 +1,22 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; + +namespace NekoTweakMod.NPCs +{ + public class NPCshops : GlobalNPC + { + public override void SetupShop(int type, Chest shop, ref int nextSlot) // Allows you to add items to NPC shops + { + if(type == NPCID.Merchant) // Specifies the npc we are changing + { + shop.item[nextSlot].SetDefaults(ItemID.MiningShirt); // Add an item with the itemid to the next available slot in the NPCs shop + shop.item[nextSlot].shopCustomPrice = 40000; // sets the purchase cost, 40000 = 4 gold + nextSlot++; + shop.item[nextSlot].SetDefaults(ItemID.MiningPants); + shop.item[nextSlot].shopCustomPrice = 40000; + nextSlot++; + } + } + } +} \ No newline at end of file diff --git a/NekoTweakMod.cs b/NekoTweakMod.cs index 07c95e7..12faf60 100644 --- a/NekoTweakMod.cs +++ b/NekoTweakMod.cs @@ -4,5 +4,6 @@ namespace NekoTweakMod { public class NekoTweakMod : Mod { + //owo whats this } } \ No newline at end of file diff --git a/README.md b/README.md index 637d833..795aaee 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ - Lyker - [direwolf420](https://forums.terraria.org/index.php?members/direwolf420.123064/) - thegamemagic1234 +- Oli # **Current Features** @@ -22,6 +23,11 @@ - Muramasa damage changed from 21 to 26 (Bit more competetive damage as it can't apply any debuffs, but also not to much due to its fast attack speed) +- A more linear fishing rod progression with buffs/nerfs to all rods, better early rods + +- Living Tree & Pyramid chest loot from fishing crates *still WIP* +(Finch staff & Sandstorm in a Bottle etc) + - Feral claws changed from "12% increased melee speed" to "melee autoswing" (Melee Autoswing also applies to summoner whips) @@ -43,8 +49,7 @@ - Ivy whip renamed to "Ivy hook" to prevent confusions with the summoner whip weapons - - +- Merchant now sell the full mining set so its achievable early on @@ -75,15 +80,6 @@ - Corrupt,Defiled,Crimson & Hematic crates crates now have a chance to give Bloody tear & Chum Caster (Makes it possible to get bloody tears when no blood moons are happening from evil biome fishing) -- Scarab Fishing Rod & Chum Caster fishing power changed from 25% to 27% - -- Fisher of Souls(20%) & Fleshcatcher(22%) fishing powered changed to 30% and 32% respectively -(corruption/crimson difference - -- Sitting Duck's Fishing Pole fishing power changed from 40% to 35% - -- Mechanic's Rod fishing power changed from 30% to 40% - **Weapon/Armor/Accessorie related:** @@ -101,9 +97,6 @@ **NPC related:** -- Merchant now sell Mining Shirt & Mining Pants for 3 & 2 gold respectively -(So its usable early game and not just vanity once you would have farmed for all pieces. Sell price for both of these still stay at 10silver each) - - Dryad now sell opposite evil biome powder in graveyard biomes - Steampunker now sells the opposite evil biome solution in graveyard biomes diff --git a/build.txt b/build.txt index 393a472..863c809 100644 --- a/build.txt +++ b/build.txt @@ -1,5 +1,5 @@ displayName = Neko's Tweak Mod author = Neko -version = 0.1.1.1 +version = 0.1.2.0 homepage = https://forums.terraria.org/index.php?threads/nekos-tweak-mod.93711/ buildIgnore = obj\*, bin\*, *.csproj, .git\*, .gitattributes, .gitignore, .psd, .sln, ..vs\*, LICENSE \ No newline at end of file diff --git a/description.txt b/description.txt index ac0e14d..488a7f2 100644 --- a/description.txt +++ b/description.txt @@ -3,23 +3,23 @@ Adds several vanilla quality of life and balance changes Few example features: -- Placed buff items like bewitching table,ammo box etc now works like campfires giving you the buff while nearby & for 10minutes after going away +- Placed buff items like bewitching table,ammo box etc now work similar to campfires giving you the buff while nearby & also for 10minutes after -- Muramasa damage changed to 26 +- Muramasa has been buffed -- Feral claws now give "melee autoswing" (Melee Autoswing also applies to summoner whips) +- Living Tree & Pyramid chest loot from fishing crates *still WIP* +(Finch staff & Sandstorm in a Bottle etc) -- Titan glove now give "12% increased melee speed" +- Feral claws now give "melee autoswing" (Melee Autoswing also applies to summoner whips) -- Fire gauntlet melee damage & speed increased from 10% to 12% +- Merchant now sell the full mining set so its achievable early on -- Reaver Shark Use time changed from 22 to 19 (Slightly faster) +- A more linear fishing rod progression with buffs/nerfs to all rods, better early rods - Shackle now gives a small amount of aggro when equipped & also have the tooltip "Enemies are more likely to target you" - Ivy whip renamed to "Ivy hook" to prevent confusions with the summoner whip weapons - -Visit the mod's homepage for a full feature list. +Visit the mod's homepage on the Terraria Forums or on GitHub for a full feature list. UwU \ No newline at end of file diff --git a/obj/Debug/net45/NekoTweakMod.csprojAssemblyReference.cache b/obj/Debug/net45/NekoTweakMod.csprojAssemblyReference.cache index d2ce8068c9632b27763333980ddf73baa5a017ee..60a872c3f79ae7657e2935b4414aae931d7fecda 100644 GIT binary patch delta 30 gcmex!i**I_27g8-1LnzrjGlZ9Kp?;dB7uM#0DRyD82|tP literal 93564 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 X$Vk@|&n#q96#*V#z!ZUPy5jyHMKLEH