Compare commits

...

88 Commits

Author SHA1 Message Date
FyloZ
66e8daedec Updated the Mind. 2020-07-20 16:39:39 -04:00
FyloZ
a2935f61ce Added Soul of Spite to underworld drops with 20% chance (36% expert) after Plantera 2020-07-20 16:16:28 -04:00
FyloZ
2fb91f2390 Added Soul of Spite to underworld drops with 20% chance (36% expert) 2020-07-20 16:15:47 -04:00
FyloZ
01a4ad3dea Added Titanic Paladin Shield
Added Titan Shield
2020-07-20 16:06:07 -04:00
FyloZ
82f501db45 Renamed the Titanic Pike. 2020-07-20 11:47:02 -04:00
FyloZ
9a527a0973 Updated souls sprites. 2020-07-20 11:43:44 -04:00
FyloZ
923c05a70a Fixed possible Timekeeper crash if the sibling projectile doesn't exists anymore. 2020-07-19 22:51:57 -04:00
FyloZ
f188eb2757 Fixed Timekeeper crash? 2020-07-19 22:40:17 -04:00
FyloZ
847841c181 Updated The Scythe 2020-07-19 19:17:47 -04:00
FyloZ
a14c036ffb Fixed Timekeeper crash. 2020-07-19 19:10:21 -04:00
FyloZ
3eeb1c8ff2 Fixed Timekeeper crash. 2020-07-19 19:08:36 -04:00
FyloZ
8091c18e7d Added trinity items to Trinity recipe. 2020-07-19 19:06:10 -04:00
FyloZ
56de9e29e1 Added new axes. 2020-07-19 19:05:58 -04:00
FyloZ
391f089c93 Added Trinity's recipe. 2020-07-15 12:06:05 -04:00
FyloZ
acc592b251 Updated souls.
Added all Concentrated Souls.
2020-07-15 12:01:13 -04:00
FyloZ
0cf76d5270 Organized projectiles.
Updated The Mind trinity item.
2020-07-14 22:31:26 -04:00
FyloZ
df5b7c2b43 Added The Trinity. 2020-07-13 15:22:20 -04:00
FyloZ
e61040d1e5 Added Trinity items drop.
Prevent Prefix on Trinity items.
2020-07-13 14:59:58 -04:00
FyloZ
8ea2e21eb6 Added The Mind trinity item. 2020-07-13 14:43:31 -04:00
FyloZ
4636e76d76 Added minion damages to The Soul. 2020-07-13 12:30:51 -04:00
FyloZ
803bda060b Added The Soul trinity item. 2020-07-13 12:27:29 -04:00
FyloZ
3e441699c9 Fixed The Body not ricocheting projectiles. 2020-07-13 11:29:12 -04:00
FyloZ
326f22714f Added The Body trinity item. 2020-07-13 00:13:28 -04:00
FyloZ
b3585374fe Finished Skeleton NPC.
Finished Necro Caster.
2020-07-11 13:50:40 -04:00
FyloZ
ccf993c077 Updated Skeleton Town NPC. 2020-07-11 13:23:16 -04:00
FyloZ
e4efb00c5c Updated Slimer sound. 2020-07-11 12:08:37 -04:00
FyloZ
44e51d8629 Fixed Shrine Altar not generating anymore. 2020-07-11 12:00:13 -04:00
FyloZ
a08caa0d16 Updated Shrine Door's sprite 2020-07-11 11:56:35 -04:00
FyloZ
e4ba4d4277 Updated Talonian Pillar's sprite.
Updated Hour Glass.
2020-07-11 11:49:24 -04:00
FyloZ
4c08d18a6f Fixed Red Hot Spikes tile sprite. 2020-07-11 11:33:34 -04:00
FyloZ
ff1ffcdfbe Updated Magma Ball sprites. 2020-07-09 21:57:29 -04:00
FyloZ
6dcf23b6c8 Updated Hour Glass sprite's. (Animation broken when holding out) 2020-07-09 19:59:07 -04:00
FyloZ
6db71f1c36 Updated Necro Caster's sprite.
Fixed the Bone projectile hurt the Necro Caster's.
2020-07-09 19:53:29 -04:00
FyloZ
e14436efd7 Updated the Sling. 2020-07-09 19:49:02 -04:00
FyloZ
70f3ccf445 Updated Titan Forge's item. 2020-07-09 19:46:40 -04:00
FyloZ
e1ceffac89 Updated Wooden Slingshot. 2020-07-09 19:38:24 -04:00
FyloZ
3852419581 Updated Multigrain Sword. 2020-07-09 19:34:11 -04:00
FyloZ
266a82b74a Updated Greatwood Sword. 2020-07-09 19:30:05 -04:00
FyloZ
3626b5fa07 Updated Multigrain Hammer. 2020-07-09 19:26:57 -04:00
FyloZ
67b3937c75 Updated Greatwood Hammer. 2020-07-09 19:25:56 -04:00
FyloZ
eeabb41dd6 Updated Glided Sickle. 2020-07-09 19:19:13 -04:00
FyloZ
884e67c5e2 Updated some potions's sprite.
Changed buy price to sell price.
2020-07-09 18:03:44 -04:00
FyloZ
dd5726acf5 Updated Antidote's sprite. 2020-07-09 17:41:36 -04:00
FyloZ
2033aa88a9 Updated Wasp Necklace's sprite. 2020-07-09 17:37:10 -04:00
FyloZ
1879d58994 Updated some debuff's sprites 2020-07-09 17:35:34 -04:00
FyloZ
782e6a6582 Fixed tiles dropped a lot of items.
Updated enchanted anvil.
2020-07-09 17:08:49 -04:00
FyloZ
e2f2c82ada Updated Red Hot Spikes. (Sprite need fixes) 2020-07-09 16:06:59 -04:00
FyloZ
57423952bf Fixed items were always consumed.
Added possibility to add light to tiles.
Updated Shrine Altar's sprite.
2020-07-09 15:47:54 -04:00
FyloZ
f106ab2738 Updated Shrine Bricks. 2020-07-09 14:33:18 -04:00
FyloZ
71430b610f Updated Talonian Pillar's tile sprite. (Sprite need small fixes) 2020-07-08 22:36:54 -04:00
FyloZ
a66c4e48ac Updated Titan Forge. 2020-07-08 22:24:00 -04:00
FyloZ
2f32c4d775 Updated Titanite Bar's sprite. 2020-07-08 20:54:53 -04:00
FyloZ
5b23355b93 Finished the Hour Hand. 2020-07-06 21:22:34 -04:00
FyloZ
c6ec7a0208 Updated the Hour Hand. 2020-07-06 20:53:39 -04:00
FyloZ
c8b07494c3 Rewrote AI of the Core Spider (wall). 2020-07-06 15:18:38 -04:00
FyloZ
aa893193de Rewrote AI of the Core Spider (ground). 2020-07-06 14:11:49 -04:00
FyloZ
ccf33456d9 Updated Living Magma's sprite.
Added new Living Magma behavior.
Added the Tiny Living Magma.
2020-07-05 15:20:24 -04:00
FyloZ
3a9de1cc98 Fixed the core spider didn't shoot in the right direction. 2020-07-05 11:13:51 -04:00
FyloZ
543a683b6c Updated Core Spider's sprite. 2020-07-01 20:47:20 -04:00
FyloZ
317b3759c8 Finished the Sundial.
Added tooltips to the Staff of Shifting Sands and the Timekeeper.
2020-07-01 12:02:21 -04:00
FyloZ
4b1af70d9b Updated Dead Earth's sprite. 2020-06-30 16:06:00 -04:00
FyloZ
27cc2cee02 Updated Bloodied Essence's sprite. 2020-06-30 16:04:34 -04:00
FyloZ
33fe5a6189 Updated Denzium Ore's sprite. 2020-06-30 16:01:02 -04:00
FyloZ
2f91c6da96 Updated Denzium Bar's sprite. 2020-06-30 15:59:57 -04:00
FyloZ
fff5416b23 Updated Denzium Ore's tile sprite. 2020-06-30 15:59:12 -04:00
FyloZ
c622092092 Updated Titanic Repeater's sprite. 2020-06-30 15:55:26 -04:00
FyloZ
60af568958 Updated Titanic Pike's sprite. 2020-06-30 15:54:17 -04:00
FyloZ
7c760fc0f5 Updated Titanic Longsword's sprite. 2020-06-30 15:49:00 -04:00
FyloZ
aa77486a6a Updated Chlorophyte Anvil's sprite. 2020-06-30 15:47:49 -04:00
FyloZ
186e69d9a5 Updated Molten Key's sprite. 2020-06-30 15:44:34 -04:00
FyloZ
689c73d0bd Updated Slimer's sprite. 2020-06-30 15:43:41 -04:00
FyloZ
448c5f5ca5 Updated Lightning Sphere's sprite to the correct sprite. 2020-06-30 15:42:47 -04:00
FyloZ
8bc27709da Updated Lightning Sphere's sprite. 2020-06-30 15:41:35 -04:00
FyloZ
4f0ec9b01a Updated Lightning Sphere's sprite. 2020-06-30 15:40:13 -04:00
FyloZ
dec2f677ef Updated Titanic Gatli Stynger's sprite. 2020-06-30 15:38:04 -04:00
FyloZ
1341f6f2bd Updated Chain Stynger's sprite. 2020-06-30 15:35:49 -04:00
FyloZ
306ebea396 Updated Blood Stream's sprite. 2020-06-30 15:25:24 -04:00
FyloZ
dc5a91f713 Updated Bloodshot Eye Treasure Bag's sprite. 2020-06-30 15:22:54 -04:00
FyloZ
8724b50406 Updated Rod of Lightning's sprite. 2020-06-30 15:21:32 -04:00
FyloZ
86d1d4d944 Updated Bloodied Maw's sprite. 2020-06-30 15:18:50 -04:00
FyloZ
428d11a55d Updated Umbra's sprite. 2020-06-30 15:16:44 -04:00
FyloZ
6d6c996162 Updated Siphon Arrow's sprite. 2020-06-30 15:12:16 -04:00
FyloZ
9dd0986d18 Updated Necrosis Stone's sprite. 2020-06-30 15:08:49 -04:00
FyloZ
430163f6a1 Added Staff of Shifting Sands recipe and value.
Added Sundial's value.
2020-06-30 15:03:15 -04:00
FyloZ
175b91bdbb Added Staff of Shifting Sands recipe and value. 2020-06-30 14:53:13 -04:00
FyloZ
4f10fb0226 Added Sundial, Staff of Shifting Sands and Timekeeper to Dune Wyrm's expert drops. 2020-06-30 14:40:28 -04:00
FyloZ
e2e8537a01 Added the Timekeeper (WIP).
- The double helix pattern is broken at some rotation.
 - The bullet sometimes get killed for no reason.
2020-06-30 14:11:05 -04:00
FyloZ
340d245cbd Updated the Hour Hand 2020-06-23 14:28:18 -04:00
305 changed files with 3345 additions and 1004 deletions

View File

@ -1,4 +1,5 @@
using Decimation.Content.Projectiles;
using Decimation.Content.Projectiles.Item.Weapon;
using Decimation.Lib.Buffs;
using Microsoft.Xna.Framework;
using Terraria;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 575 B

View File

@ -1,7 +1,5 @@
using System;
using Decimation.Lib.Buffs;
using Decimation.Lib.Buffs;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Buffs.Debuffs
@ -9,7 +7,10 @@ namespace Decimation.Content.Buffs.Debuffs
internal class Hyperthermic : DecimationBuff
{
protected override string DisplayName => "Hyperthermic!";
protected override string Description => "Water, water everywhere but not a drop to drink... \nBlock mana potions use \nLowers defense by 10% \nLowers speed by 5%";
protected override string Description =>
"Water, water everywhere but not a drop to drink... \nBlock mana potions use \nLowers defense by 10% \nLowers speed by 5%";
public override bool Debuff => true;
protected override void Init()
@ -21,13 +22,13 @@ namespace Decimation.Content.Buffs.Debuffs
public override void Update(Player player, ref int buffIndex)
{
player.statDefense = (int)(player.statDefense * 0.90f);
player.statDefense = (int) (player.statDefense * 0.90f);
player.moveSpeed *= 0.95f;
}
public override void Update(NPC npc, ref int buffIndex)
{
npc.defense = (int)(npc.defense * 0.90f);
npc.defense = (int) (npc.defense * 0.90f);
npc.velocity *= 0.95f;
}
}
@ -36,7 +37,8 @@ namespace Decimation.Content.Buffs.Debuffs
{
public override bool CanUseItem(Item item, Player player)
{
return !(player.HasBuff(ModContent.BuffType<Hyperthermic>()) && item.healMana > 0);
if (player.HasBuff(ModContent.BuffType<Hyperthermic>()) && item.healMana > 0) return false;
return base.CanUseItem(item, player);
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

After

Width:  |  Height:  |  Size: 485 B

View File

@ -41,7 +41,7 @@ namespace Decimation.Content.Buffs.Debuffs
{
return !(item.UseSound != null && item.useStyle == 2);
}
return true;
return base.CanUseItem(item, player);
}
}
}

View File

@ -42,7 +42,7 @@ namespace Decimation.Content.Buffs.Debuffs
{
return !(item.UseSound != null && item.useStyle == 2);
}
return true;
return base.CanUseItem(item, player);
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 577 B

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using Decimation.Content.Items.Tools.Axes;
using Decimation.Content.NPCs.Arachnus;
using Decimation.Content.NPCs.DuneWyrm;
using Decimation.Content.NPCs.DuneWyrm.AncientTombCrawler;
@ -9,6 +10,7 @@ using Decimation.Lib.Util;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.Localization;
using Terraria.ModLoader;
using Terraria.UI;
@ -105,14 +107,32 @@ namespace Decimation.Content
public override void AddRecipeGroups()
{
RecipeGroup gems = new RecipeGroup(() => Lang.misc[37] + " Gem", ItemID.Amethyst, ItemID.Topaz,
ItemID.Emerald, ItemID.Sapphire, ItemID.Ruby, ItemID.Diamond);
RecipeGroup gems = new RecipeGroup(() => Language.GetTextValue("LegacyMisc.37") + " Gem",
ItemID.Amethyst,
ItemID.Topaz,
ItemID.Emerald,
ItemID.Sapphire,
ItemID.Ruby,
ItemID.Diamond);
RecipeGroup.RegisterGroup(DecimationRecipeGroupID.AnyGem, gems);
RecipeGroup threads = new RecipeGroup(() => Lang.misc[37] + " Thread", ItemID.BlackThread,
ItemID.GreenThread, ItemID.PinkThread);
RecipeGroup threads = new RecipeGroup(() => Language.GetTextValue("LegacyMisc.37") + " Thread",
ItemID.BlackThread,
ItemID.GreenThread,
ItemID.PinkThread);
RecipeGroup.RegisterGroup(DecimationRecipeGroupID.AnyThread, threads);
RecipeGroup.RegisterGroup("AnyGem", gems);
RecipeGroup.RegisterGroup("AnyThread", threads);
RecipeGroup corruptedWoodAxes = new RecipeGroup(
() => Language.GetTextValue("LegacyMisc.37") + " Corrupted Wood Axe",
ModContent.ItemType<ShadewoodAxe>(),
ModContent.ItemType<EbonwoodAxe>());
RecipeGroup.RegisterGroup(DecimationRecipeGroupID.CorruptedWoodAxes, corruptedWoodAxes);
RecipeGroup corruptedWoodHammers = new RecipeGroup(
() => Language.GetTextValue("LegacyMisc.37") + " Corrupted Wood Hammer",
ItemID.ShadewoodHammer,
ItemID.EbonwoodHammer);
RecipeGroup.RegisterGroup(DecimationRecipeGroupID.CorruptedWoodHammers, corruptedWoodHammers);
}
public override void HandlePacket(BinaryReader reader, int whoAmI)

View File

@ -69,7 +69,7 @@ namespace Decimation.Content
public bool wasJumping = false;
public ICollection<int> EquippedAccessories { get; } = new List<int>();
public bool HasShield { get; set; }
public bool NextHitCrit { get; set; }
public Item AmuletSlotItem
{
@ -100,8 +100,6 @@ namespace Decimation.Content
tideTurnerEquipped = false;
vampire = false;
HasShield = false;
hasCursedAccessory = false;
player.statManaMax2 += hyperStars * HyperStar.ManaHealAmount;
@ -403,14 +401,60 @@ namespace Decimation.Content
}
}
public override void ModifyHitNPC(Item item, NPC target, ref int damage, ref float knockback, ref bool crit)
{
if (NextHitCrit)
{
crit = true;
NextHitCrit = false;
}
}
public override void ModifyHitNPCWithProj(Projectile proj, NPC target, ref int damage, ref float knockback,
ref bool crit,
ref int hitDirection)
{
if (NextHitCrit)
{
crit = true;
NextHitCrit = false;
}
}
public override void ModifyHitPvp(Item item, Player target, ref int damage, ref bool crit)
{
if (NextHitCrit)
{
crit = true;
NextHitCrit = false;
}
if (target.TeamHasEquippedAccessory(ModContent.ItemType<TitanShield>())) damage -= (int) (damage * 0.35f);
}
public override void ModifyHitPvpWithProj(Projectile proj, Player target, ref int damage, ref bool crit)
{
if (NextHitCrit)
{
crit = true;
NextHitCrit = false;
}
}
public override void ModifyHitByNPC(NPC npc, ref int damage, ref bool crit)
{
_amuletSlotAmulet?.Synergy.OnPlayerHit(this, ref damage);
if (this.TeamHasEquippedAccessory(ModContent.ItemType<TitanShield>())) damage -= (int) (damage * 0.35f);
else if (this.TeamHasEquippedAccessory(ModContent.ItemType<TitanicPaladinShield>())) damage -= (int) (damage * 0.30f);
}
public override void ModifyHitByProjectile(Projectile proj, ref int damage, ref bool crit)
{
_amuletSlotAmulet?.Synergy.OnPlayerHit(this, ref damage);
if (this.TeamHasEquippedAccessory(ModContent.ItemType<TitanShield>())) damage -= (int) (damage * 0.35f);
else if (this.TeamHasEquippedAccessory(ModContent.ItemType<TitanicPaladinShield>())) damage -= (int) (damage * 0.30f);
}
private void SpawnWaspNecklaceWasps()
@ -857,14 +901,4 @@ namespace Decimation.Content
}
}
}
public class PlayerPropertiesUpdater : GlobalItem
{
public override void UpdateAccessory(Item item, Player player, bool hideVisual)
{
DecimationPlayer modPlayer = player.GetModPlayer<DecimationPlayer>();
if (item.type == ItemID.CobaltShield || item.type == ItemID.AnkhShield ||
item.type == ItemID.PaladinsShield || item.type == ItemID.ObsidianShield) modPlayer.HasShield = true;
}
}
}

View File

@ -0,0 +1,11 @@
namespace Decimation.Content
{
public class DecimationRecipeGroupID
{
public const string AnyGem = "AnyGem";
public const string AnyThread = "AnyThread";
public const string CorruptedWoodAxes = "CorruptedAxes";
public const string CorruptedWoodHammers = "CorruptedHammers";
public const string CorruptedWoodPickaxes = "CorruptedPickaxes";
}
}

View File

@ -1,14 +1,12 @@
using System.IO;
using System.Collections.Generic;
using Terraria;
using Terraria.ModLoader;
using Terraria.World.Generation;
using Terraria.GameContent.Generation;
using Terraria.ModLoader.IO;
using System.IO;
using Decimation.Content.Projectiles.Boss.DuneWyrm;
using Decimation.Content.Structures;
using Microsoft.Xna.Framework;
using System;
using Terraria.ID;
using Terraria;
using Terraria.GameContent.Generation;
using Terraria.ModLoader;
using Terraria.ModLoader.IO;
using Terraria.World.Generation;
namespace Decimation.Content
{
@ -45,6 +43,8 @@ namespace Decimation.Content
downedDuneWyrm = downed.Contains("downedDuneWyrm");
downedArachnus = downed.Contains("downedArachnus");
downedWyvern = downed.Contains("downedWyvern");
Sundial.Reset();
}
public override void NetSend(BinaryWriter writer)
{
@ -69,19 +69,19 @@ namespace Decimation.Content
if (loadVersion == 1)
{
byte flags = reader.ReadByte();
DecimationWorld.downedBloodshotEye = ((flags & 1) != 0);
DecimationWorld.downedDuneWyrm = ((flags & 2) != 0); //double flag numbers with each new boss
DecimationWorld.downedArachnus = ((flags & 4) != 0);
DecimationWorld.downedWyvern = ((flags & 8) != 0);
downedBloodshotEye = ((flags & 1) != 0);
downedDuneWyrm = ((flags & 2) != 0); //double flag numbers with each new boss
downedArachnus = ((flags & 4) != 0);
downedWyvern = ((flags & 8) != 0);
}
else if (loadVersion == 2)
{
byte flags = reader.ReadByte();
byte flags2 = reader.ReadByte();
DecimationWorld.downedBloodshotEye = ((flags & 1) != 0);
DecimationWorld.downedDuneWyrm = ((flags & 2) != 0);
DecimationWorld.downedArachnus = ((flags & 4) != 0);
DecimationWorld.downedWyvern = ((flags & 8) != 0);
downedBloodshotEye = ((flags & 1) != 0);
downedDuneWyrm = ((flags & 2) != 0);
downedArachnus = ((flags & 4) != 0);
downedWyvern = ((flags & 8) != 0);
}
}

View File

@ -23,7 +23,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 46;
item.height = 62;
item.rare = Rarity.LightPurple.GetRarityValue();
this.item.value = Item.buyPrice(0, 4);
this.item.value = Item.sellPrice(0, 4);
}
public override void UpdateAccessory(Player player, bool hideVisual)

View File

@ -26,7 +26,7 @@ namespace Decimation.Content.Items.Accessories
item.height = 62;
item.rare = Rarity.LightPurple.GetRarityValue();
this.item.value = Item.buyPrice(0, 4);
this.item.value = Item.sellPrice(0, 4);
}
public override void UpdateAccessory(Player player, bool hideVisual)

View File

@ -18,7 +18,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 35;
item.height = 22;
item.rare = Rarity.Green.GetRarityValue();
item.value = Item.buyPrice(0, 0, 0, 10);
item.value = Item.sellPrice(0, 0, 0, 10);
item.defense = 2;
}

View File

@ -22,7 +22,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 30;
item.height = 30;
item.rare = Rarity.Red.GetRarityValue();
this.item.value = Item.buyPrice(0, 15);
this.item.value = Item.sellPrice(0, 15);
}
protected override List<ModRecipe> GetRecipes()

View File

@ -21,7 +21,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 46;
item.height = 62;
item.rare = Rarity.LightPurple.GetRarityValue();
this.item.value = Item.buyPrice(0, 4);
this.item.value = Item.sellPrice(0, 4);
}
public override void UpdateAccessory(Player player, bool hideVisual)

View File

@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 62;
item.height = 46;
item.rare = Rarity.Green.GetRarityValue();
this.item.value = Item.buyPrice(0, 0, 0, 10);
this.item.value = Item.sellPrice(0, 0, 0, 10);
}
protected override List<ModRecipe> GetRecipes()

View File

@ -21,7 +21,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 24;
item.height = 32;
item.rare = Rarity.Lime.GetRarityValue();
this.item.value = Item.buyPrice(0, 50);
this.item.value = Item.sellPrice(0, 50);
}
public override void UpdateAccessory(Player player, bool hideVisual)

View File

@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 62;
item.height = 46;
item.rare = Rarity.Green.GetRarityValue();
this.item.value = Item.buyPrice(0, 0, 0, 10);
this.item.value = Item.sellPrice(0, 0, 0, 10);
}
protected override List<ModRecipe> GetRecipes()

View File

@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 54;
item.height = 46;
item.rare = Rarity.Green.GetRarityValue();
this.item.value = Item.buyPrice(0, 0, 0, 10);
this.item.value = Item.sellPrice(0, 0, 0, 10);
}
protected override List<ModRecipe> GetRecipes()

View File

@ -13,11 +13,11 @@ namespace Decimation.Content.Items.Accessories
protected override void InitAccessory()
{
item.width = 20;
item.height = 20;
item.width = 32;
item.height = 32;
item.rare = Rarity.Rainbow.GetRarityValue();
this.item.value = Item.buyPrice(0, 5);
this.item.expert = true;
item.value = Item.sellPrice(gold: 5);
item.expert = true;
}
public override void UpdateAccessory(Player player, bool hideVisual)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 471 B

View File

@ -19,7 +19,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 32;
item.height = 32;
item.rare = Rarity.Green.GetRarityValue();
this.item.value = Item.buyPrice(0, 0, 0, 10);
this.item.value = Item.sellPrice(0, 0, 0, 10);
}
protected override List<ModRecipe> GetRecipes()

View File

@ -18,7 +18,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 24;
item.height = 24;
item.rare = Rarity.Green.GetRarityValue();
item.value = Item.buyPrice(0, 0, 2);
item.value = Item.sellPrice(0, 0, 2);
item.defense = 1;
}

View File

@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 30;
item.height = 28;
item.rare = Rarity.Rainbow.GetRarityValue();
this.item.value = Item.buyPrice(0, 45);
this.item.value = Item.sellPrice(0, 45);
this.item.expert = true;
}

View File

@ -18,7 +18,7 @@ namespace Decimation.Content.Items.Accessories
item.height = 24;
item.rare = Rarity.Green.GetRarityValue();
this.item.value = Item.buyPrice(0, 0, 0, 10);
this.item.value = Item.sellPrice(0, 0, 0, 10);
}
protected override List<ModRecipe> GetRecipes()

View File

@ -23,7 +23,7 @@ namespace Decimation.Content.Items.Accessories
item.width = 46;
item.height = 36;
item.rare = Rarity.Rainbow.GetRarityValue();
item.value = Item.buyPrice(0, 3);
item.value = Item.sellPrice(0, 3);
item.defense = 3;
item.shieldSlot = 5;
item.expert = true;

View File

@ -0,0 +1,56 @@
using Decimation.Content.Items.Misc.Souls;
using Decimation.Content.Items.Ores;
using Decimation.Content.Tiles;
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Decimation.Lib.Util.Builder;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Accessories
{
public class TitanShield : DecimationAccessory
{
protected override string ItemName => "Titan Shield";
protected override string ItemTooltip => "This is ridiculously heavy\n" +
"Increases defense by 10\n" +
"Increases all damages by 8%\n" +
"Increases knockback by 8%\n" +
"Increases all critical hit chances by 8%\n" +
"Absords 35% of damage taken by members of your team";
protected override void InitAccessory()
{
item.width = 34;
item.height = 40;
item.defense = 10;
item.value = Item.sellPrice(gold: 87, silver: 66);
item.rare = Rarity.Cyan.GetRarityValue();
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.allDamage *= 1.08f;
player.meleeCrit = (int) (player.meleeCrit * 1.08f);
player.rangedCrit = (int) (player.rangedCrit * 1.08f);
player.magicCrit = (int) (player.magicCrit * 1.08f);
player.thrownCrit = (int) (player.thrownCrit * 1.08f);
player.EquipAccessory(ModContent.ItemType<TitanicPaladinShield>());
}
protected override ModRecipe GetRecipe()
{
return new RecipeBuilder(this)
.WithIngredient(ModContent.ItemType<TitanicPaladinShield>())
.WithIngredient(ModContent.ItemType<TitaniteBar>(), 15)
.WithIngredient(ItemID.Ectoplasm, 50)
.WithIngredient(ModContent.ItemType<SoulofSpite>(), 20)
.WithIngredient(ModContent.ItemType<DenziumBar>(), 15)
.WithStation(ModContent.TileType<TitanForge>())
.Build();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

View File

@ -0,0 +1,75 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Decimation.Content.Tiles;
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Decimation.Lib.Util.Builder;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Accessories
{
public class TitanicPaladinShield : DecimationAccessory
{
protected override string ItemName => "Titanic Paladin Shield";
protected override string ItemTooltip => "Increases defense by 8\n" +
"Increases all damage by 5%\n" +
"Increases knockback by 50%\n" +
"Enables auto-swing on all melee weapons\n" +
"Absords 30% of damage taken by members of your team";
protected override void InitAccessory()
{
item.width = 34;
item.height = 42;
item.defense = 8;
item.value = Item.sellPrice(gold: 20, silver: 60);
item.rare = Rarity.Yellow.GetRarityValue();
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.allDamage *= 1.05f;
}
protected override ModRecipe GetRecipe()
{
return new RecipeBuilder(this)
.WithIngredient(ItemID.PaladinsShield)
.WithIngredient(ItemID.TitanGlove)
.WithIngredient(ItemID.SoulofNight, 15)
.WithIngredient(ItemID.SoulofLight, 15)
.WithIngredient(ItemID.SoulofMight, 15)
.WithStation(ModContent.TileType<ChlorophyteAnvil>())
.Build();
}
}
class TitanicPaladinShieldItemEffect : GlobalItem
{
private static readonly Dictionary<int, bool> OriginalAutoswingState = new Dictionary<int, bool>();
public override void SetDefaults(Item item)
{
OriginalAutoswingState[item.type] = item.autoReuse;
}
public override void GetWeaponKnockback(Item item, Player player, ref float knockback)
{
if (player.HasEquippedAccessory(ModContent.ItemType<TitanicPaladinShield>()))
{
knockback *= 1.5f;
if (item.melee && !OriginalAutoswingState[item.type])
item.autoReuse = true;
}
else
{
if (item.autoReuse && !OriginalAutoswingState[item.type])
item.autoReuse = false;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

View File

@ -0,0 +1,76 @@
using System.Collections.Generic;
using Decimation.Lib.Util;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ModLoader;
using Terraria.UI.Chat;
namespace Decimation.Content.Items.Accessories.Trinity
{
public class Body : TrinityAccessory
{
protected override string ItemName => "The Body";
protected override string ItemTooltip => "I feel all...\n" +
"Increases maximum life by 50\n" +
"Increases melee damage by 10%\n" +
"Increases melee critical hit chances by 10%\n" +
"Hostile projectiles have 10% chance to ricochet off you\nand target your enemies with 50% increased damage";
protected override void InitAccessory()
{
item.width = 10;
item.height = 16;
item.expert = true;
item.expertOnly = true;
item.rare = Rarity.Rainbow.GetRarityValue();
item.value = Item.sellPrice(gold: 5);
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.statLifeMax2 += 50;
player.meleeDamage *= 1.10f;
player.meleeCrit = (int) (player.meleeCrit * 1.10f);
base.UpdateAccessory(player, hideVisual);
}
public override void ModifyTooltips(List<TooltipLine> tooltips)
{
tooltips.Add(new TooltipLine(mod, "trinity", "Trinity")
{
overrideColor = ChatManager.WaveColor(Color.Red)
});
}
public static bool BodyEffect(Projectile projectile, Player player, bool fromPlayer, ref int damage)
{
if (Main.expertMode && Main.rand.NextBool(10) &&
(player.GetModPlayer().HasEquippedAccessory(ModContent.ItemType<Body>()) ||
player.GetModPlayer().HasEquippedAccessory(ModContent.ItemType<Trinity>())))
{
return projectile.Richochet(player, fromPlayer, ref damage);
}
return false;
}
}
class BodyProjectileEffects : GlobalProjectile
{
public override void ModifyHitPvp(Projectile projectile, Player target, ref int damage, ref bool crit)
{
Body.BodyEffect(projectile, target, true, ref damage);
}
public override void ModifyHitPlayer(Projectile projectile, Player target, ref int damage, ref bool crit)
{
if (Body.BodyEffect(projectile, target, false, ref damage))
{
projectile.hostile = false;
projectile.friendly = true;
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

View File

@ -0,0 +1,108 @@
using System.Collections.Generic;
using System.IO;
using Decimation.Content.Projectiles.Item.Accessory.Trinity;
using Decimation.Lib.Util;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ModLoader;
using Terraria.UI.Chat;
namespace Decimation.Content.Items.Accessories.Trinity
{
public class Mind : TrinityAccessory
{
private static readonly float TrinityBeamSpeed = 8f;
private static readonly int TrinityBeamDamage = 35;
protected override string ItemName => "The Mind";
protected override string ItemTooltip => "I know all...\n" +
"Increases block placement and mining speed by 10%\n" +
"Increases ranged and thrown damage by 10%\n" +
"Increases ranged and thrown critical hit chances by 10%\n" +
"Increases view range\n" +
"Each second, there is 4% chance to fire a Trinity Beam toward a near enemy";
private int _trinityBeamCounter;
protected override void InitAccessory()
{
item.width = 10;
item.height = 16;
item.expert = true;
item.rare = Rarity.Rainbow.GetRarityValue();
item.value = Item.sellPrice(gold: 5);
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.pickSpeed *= 1.10f;
player.tileSpeed *= 1.10f;
player.rangedDamage *= 1.10f;
player.rangedCrit = (int) (player.rangedCrit * 1.10f);
player.thrownDamage *= 1.10f;
player.thrownCrit = (int) (player.thrownCrit * 1.10f);
player.scope = true;
if (_trinityBeamCounter >= 60)
{
MindEffect(player);
_trinityBeamCounter = 0;
}
_trinityBeamCounter++;
base.UpdateAccessory(player, hideVisual);
}
public override void ModifyTooltips(List<TooltipLine> tooltips)
{
tooltips.Add(new TooltipLine(mod, "trinity", "Trinity")
{
overrideColor = ChatManager.WaveColor(Color.Yellow)
});
}
public override void NetSend(BinaryWriter writer)
{
writer.Write(_trinityBeamCounter);
}
public override void NetRecieve(BinaryReader reader)
{
_trinityBeamCounter = reader.ReadInt32();
}
public static void MindEffect(Player player)
{
if (Main.rand.NextBool(25))
{
NPC target = null;
float lastDistance = float.MaxValue;
for (int n = 0; n < Main.npc.Length; n++)
{
NPC npcTarget = Main.npc[n];
if (npcTarget != null)
{
float distance = npcTarget.Distance(player.position);
if (npcTarget.active && !npcTarget.friendly && distance < 1000f && distance < lastDistance)
{
target = npcTarget;
lastDistance = distance;
}
}
}
if (target != null)
{
Vector2 velocity = target.Center - player.Center;
velocity.Normalize();
velocity *= TrinityBeamSpeed;
Projectile.NewProjectile(player.Center, velocity, ModContent.ProjectileType<TrinityBeam>(),
TrinityBeamDamage, 2f,
player.whoAmI);
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

View File

@ -0,0 +1,111 @@
using System.Collections.Generic;
using Decimation.Lib.Util;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ModLoader;
using Terraria.UI.Chat;
namespace Decimation.Content.Items.Accessories.Trinity
{
public class Soul : TrinityAccessory
{
protected override string ItemName => "The Soul";
protected override string ItemTooltip => "I am all...\n" +
"Increases maximum mana by 50\n" +
"Increases magic and minion damage by 10%\n" +
"Increases magic critical hit chances by 10%\n" +
"Increases minions knockback by 10%" +
"Criticals hits leech mana\n" +
"Hostile projectiles have 10% chance to phase through you,\nnegating all damage and causing your next attack to be a critical hit";
protected override void InitAccessory()
{
item.width = 10;
item.height = 16;
item.expert = true;
item.rare = Rarity.Rainbow.GetRarityValue();
item.value = Item.sellPrice(gold: 5);
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.statManaMax2 += 50;
player.magicDamage *= 1.10f;
player.magicCrit *= (int) (player.magicCrit * 1.10f);
player.minionDamage *= 1.10f;
player.minionKB *= 1.10f;
base.UpdateAccessory(player, hideVisual);
}
public override void ModifyTooltips(List<TooltipLine> tooltips)
{
tooltips.Add(new TooltipLine(mod, "trinity", "Trinity")
{
overrideColor = ChatManager.WaveColor(Color.Blue)
});
}
public static void SoulHitEffect(Player target, ref int damage)
{
DecimationPlayer targetModPlayer = target.GetModPlayer();
if (Main.rand.NextBool(10) && (targetModPlayer.HasEquippedAccessory(ModContent.ItemType<Soul>()) || targetModPlayer.HasEquippedAccessory(ModContent.ItemType<Trinity>())))
{
damage = 0;
targetModPlayer.NextHitCrit = true;
}
}
public static void SoulEffect(Player player, Entity target, bool crit)
{
if (crit && player.GetModPlayer().HasEquippedAccessory(ModContent.ItemType<Soul>()))
{
player.LeechMana(target);
}
}
}
class SoulItemEffects : GlobalItem
{
public override void OnHitNPC(Item item, Player player, NPC target, int damage, float knockBack, bool crit)
{
Soul.SoulEffect(player, target, crit);
}
public override void OnHitPvp(Item item, Player player, Player target, int damage, bool crit)
{
Soul.SoulEffect(player, target, crit);
}
}
class SoulProjectileEffects : GlobalProjectile
{
public override void OnHitNPC(Projectile projectile, NPC target, int damage, float knockback, bool crit)
{
Player owner = Main.player[projectile.owner];
if (owner != null && owner.active && !owner.dead)
{
Soul.SoulEffect(owner, target, crit);
}
}
public override void OnHitPvp(Projectile projectile, Player target, int damage, bool crit)
{
Player owner = Main.player[projectile.owner];
if (owner != null && owner.active && !owner.dead)
{
Soul.SoulEffect(owner, target, crit);
}
}
public override void ModifyHitPvp(Projectile projectile, Player target, ref int damage, ref bool crit)
{
Soul.SoulHitEffect(target, ref damage);
}
public override void ModifyHitPlayer(Projectile projectile, Player target, ref int damage, ref bool crit)
{
Soul.SoulHitEffect(target, ref damage);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

View File

@ -0,0 +1,115 @@
using System.Collections.Generic;
using System.IO;
using Decimation.Content.Items.Misc.ConcentratedSouls;
using Decimation.Content.Tiles;
using Decimation.Lib.Util;
using Decimation.Lib.Util.Builder;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.UI.Chat;
namespace Decimation.Content.Items.Accessories.Trinity
{
public class Trinity : TrinityAccessory
{
protected override string ItemName => "The Trinity";
protected override string ItemTooltip => "True Equilibrium...\n" +
"Increases maximum life by 50\n" +
"Increases maximum mana by 50\n" +
"Increases all damage by 10%\n" +
"Increases all critical hit chances by 10%\n" +
"Increases minions knockback by 10%\n" +
"Increases view range\n" +
"Each second, there is 4% chance to fire a Trinity Beam toward a near enemy\n" +
"Criticals hits leech mana\n" +
"Hostile projectiles have 10% chance to phase through you,\nnegating all damage and causing your next attack to be a critical hit\n" +
"Hostile projectiles have 10% chance to ricochet off you\nand target your enemies with 50% increased damage";
private int _trinityBeamCounter;
protected override void InitAccessory()
{
item.width = 34;
item.height = 28;
item.expert = true;
item.value = Item.sellPrice(gold: 15);
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
// Soul
player.statManaMax2 += 50;
player.magicDamage *= 1.10f;
player.magicCrit *= (int) (player.magicCrit * 1.10f);
player.minionDamage *= 1.10f;
player.minionKB *= 1.10f;
// Body
player.statLifeMax2 += 50;
player.meleeDamage *= 1.10f;
player.meleeCrit = (int) (player.meleeCrit * 1.10f);
// Mind
player.pickSpeed *= 1.10f;
player.tileSpeed *= 1.10f;
player.rangedDamage *= 1.10f;
player.rangedCrit = (int) (player.rangedCrit * 1.10f);
player.thrownDamage *= 1.10f;
player.thrownCrit = (int) (player.thrownCrit * 1.10f);
player.scope = true;
if (_trinityBeamCounter >= 60)
{
Mind.MindEffect(player);
_trinityBeamCounter = 0;
}
_trinityBeamCounter++;
player.EquipAccessory(ModContent.ItemType<Body>());
player.EquipAccessory(ModContent.ItemType<Soul>());
player.EquipAccessory(ModContent.ItemType<Mind>());
base.UpdateAccessory(player, hideVisual);
}
public override void ModifyTooltips(List<TooltipLine> tooltips)
{
tooltips.Add(new TooltipLine(mod, "trinity", "Trinity")
{
overrideColor = ChatManager.WaveColor(Color.Orange)
});
}
public override void NetSend(BinaryWriter writer)
{
writer.Write(_trinityBeamCounter);
}
public override void NetRecieve(BinaryReader reader)
{
_trinityBeamCounter = reader.ReadInt32();
}
protected override ModRecipe GetRecipe()
{
return new RecipeBuilder(this)
.WithIngredient(ModContent.ItemType<Body>())
.WithIngredient(ModContent.ItemType<Soul>())
.WithIngredient(ModContent.ItemType<Mind>())
.WithIngredient(ModContent.ItemType<ConcentratedFlight>())
.WithIngredient(ModContent.ItemType<ConcentratedMight>())
.WithIngredient(ModContent.ItemType<ConcentratedSight>())
.WithIngredient(ModContent.ItemType<ConcentratedFright>())
.WithIngredient(ModContent.ItemType<ConcentratedLife>())
.WithIngredient(ModContent.ItemType<ConcentratedTime>())
.WithIngredient(ModContent.ItemType<ConcentratedNight>())
.WithIngredient(ModContent.ItemType<ConcentratedLight>())
.WithIngredient(ItemID.HallowedBar, 10)
.WithStation(ModContent.TileType<ChlorophyteAnvil>())
.Build();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

View File

@ -0,0 +1,47 @@
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.Utilities;
namespace Decimation.Content.Items.Accessories.Trinity
{
public abstract class TrinityAccessory : DecimationAccessory
{
public override bool CanEquipAccessory(Player player, int slot)
{
return !player.HasEquippedAccessory(ModContent.ItemType<Body>()) &&
!player.HasEquippedAccessory(ModContent.ItemType<Soul>()) &&
!player.HasEquippedAccessory(ModContent.ItemType<Mind>()) &&
!player.HasEquippedAccessory(ModContent.ItemType<Trinity>());
}
public override bool? PrefixChance(int pre, UnifiedRandom rand)
{
return false;
}
}
class TrinityBossBagEffects : GlobalItem
{
public override void OpenVanillaBag(string context, Player player, int arg)
{
if (context == "bossBag")
{
switch (arg)
{
case ItemID.TwinsBossBag:
player.QuickSpawnItem(ModContent.ItemType<Mind>());
break;
case ItemID.DestroyerBossBag:
player.QuickSpawnItem(ModContent.ItemType<Body>());
break;
case ItemID.SkeletronPrimeBossBag:
player.QuickSpawnItem(ModContent.ItemType<Soul>());
break;
}
}
}
}
}

View File

@ -20,7 +20,7 @@ namespace Decimation.Content.Items.Accessories
{
item.width = 26;
item.height = 32;
item.value = Item.buyPrice(gold: 19, silver: 70);
item.value = Item.sellPrice(gold: 19, silver: 70);
item.rare = Rarity.LightPurple.GetRarityValue();
}

View File

@ -16,9 +16,9 @@ namespace Decimation.Content.Items.Accessories
protected override void InitAccessory()
{
item.width = 30;
item.width = 32;
item.height = 32;
item.value = Item.buyPrice(gold: 1, silver: 70);
item.value = Item.sellPrice(gold: 1, silver: 70);
item.rare = Rarity.Green.GetRarityValue();
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

After

Width:  |  Height:  |  Size: 471 B

View File

@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
{
item.width = 32;
item.height = 30;
item.value = Item.buyPrice(silver: 10);
item.value = Item.sellPrice(silver: 10);
item.rare = Rarity.Blue.GetRarityValue();
}

View File

@ -1,7 +1,7 @@
using System.Collections.Generic;
using Decimation.Content.Items.Misc.CondensedSouls;
using Decimation.Content.Items.Misc.ConcentratedSouls;
using Decimation.Content.Items.Ores;
using Decimation.Content.Projectiles;
using Decimation.Content.Projectiles.Item.Accessory;
using Decimation.Content.Tiles;
using Decimation.Lib.Items;
using Decimation.Lib.Util;
@ -24,16 +24,16 @@ namespace Decimation.Content.Items.Accessories.Wings
item.height = 26;
item.rare = Rarity.Red.GetRarityValue();
this.item.value = Item.buyPrice(0, 5);
this.item.value = Item.sellPrice(0, 5);
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.wingTimeMax = 240;
Lighting.AddLight((int)(player.position.X + player.width / 2f) / 16,
(int)(player.position.Y + player.height / 2f) / 16, 1.05f, 0.95f, 0.55f);
Lighting.AddLight((int) (player.position.X + player.width / 2f) / 16,
(int) (player.position.Y + player.height / 2f) / 16, 1.05f, 0.95f, 0.55f);
if ((int)player.wingTime % 2 == 1)
if ((int) player.wingTime % 2 == 1)
Projectile.NewProjectile(player.Center, new Vector2(0, 0), ModContent.ProjectileType<Ember>(), 25, 5,
player.whoAmI);
}
@ -56,14 +56,14 @@ namespace Decimation.Content.Items.Accessories.Wings
protected override List<ModRecipe> GetRecipes()
{
ModRecipe recipe = GetNewModRecipe(this, 1, new List<int> { ModContent.TileType<TitanForge>() });
ModRecipe recipe = GetNewModRecipe(this, 1, new List<int> {ModContent.TileType<TitanForge>()});
recipe.AddIngredient(ItemID.BeetleWings);
recipe.AddIngredient(ItemID.WingsSolar);
recipe.AddIngredient(ModContent.ItemType<CondensedSpite>(), 2);
recipe.AddIngredient(ModContent.ItemType<ConcentratedSpite>(), 2);
recipe.AddIngredient(ModContent.ItemType<DenziumBar>(), 5);
return new List<ModRecipe> { recipe };
return new List<ModRecipe> {recipe};
}
}
}

View File

@ -24,7 +24,7 @@ namespace Decimation.Content.Items.Ammo
item.height = 8;
item.knockBack = 1;
item.rare = Rarity.Orange.GetRarityValue();
item.value = Item.buyPrice(0, 0, 10);
item.value = Item.sellPrice(0, 0, 10);
item.consumable = true;
this.item.shootSpeed = 2f;

View File

@ -11,9 +11,9 @@ using Terraria.ModLoader;
namespace Decimation.Content.Items.Ammo
{
internal class TitanicStyngerBolt : DecimationAmmo
internal class ScytheStyngerBolt : DecimationAmmo
{
protected override string ItemName => "Titanic Stynger Bolt";
protected override string ItemName => "The Scythe Stynger Bolt";
protected override string ItemTooltip => "Explodes into deadly shrapnel.";
protected override string Projectile => "TitanicStyngerBolt";
protected override int Ammo => AmmoID.StyngerBolt;
@ -25,7 +25,7 @@ namespace Decimation.Content.Items.Ammo
item.rare = Rarity.Orange.GetRarityValue();
item.width = 8;
item.height = 8;
item.value = Item.buyPrice(0, 0, 10);
item.value = Item.sellPrice(0, 0, 10);
item.consumable = true;
this.item.shootSpeed = 2f;

View File

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 318 B

View File

@ -20,7 +20,7 @@ namespace Decimation.Content.Items.Ammo
item.knockBack = 2;
item.width = 14;
item.height = 32;
item.value = Item.buyPrice(0, 0, 0, 55);
item.value = Item.sellPrice(0, 0, 0, 55);
this.item.shootSpeed = 2.5f;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 343 B

View File

@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Boss.Arachnus
{
item.width = 32;
item.height = 32;
item.value = Item.buyPrice(0, 45);
item.value = Item.sellPrice(0, 45);
item.rare = Rarity.Red.GetRarityValue();
item.consumable = true;
item.useStyle = 4;

View File

@ -14,12 +14,11 @@ namespace Decimation.Content.Items.Boss.Arachnus
protected override void Init()
{
item.width = 20;
item.height = 20;
item.height = 36;
item.consumable = true;
item.value = Item.buyPrice(0, 45);
item.value = Item.sellPrice(0, 45);
item.rare = Rarity.Red.GetRarityValue();
this.item.maxStack = 1;
item.maxStack = 1;
}
public class DropFromMoonLord : GlobalNPC

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

After

Width:  |  Height:  |  Size: 469 B

View File

@ -14,14 +14,13 @@ namespace Decimation.Content.Items.Boss.Bloodshot
protected override void Init()
{
item.width = 20;
item.height = 24;
item.width = 22;
item.height = 26;
item.consumable = true;
item.useStyle = 4;
item.useAnimation = 30;
item.useTime = 30;
this.item.maxStack = 1;
item.maxStack = 1;
}
public override bool CanUseItem(Player player)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 561 B

View File

@ -16,7 +16,7 @@ namespace Decimation.Content.Items.Boss.DuneWyrm
{
item.width = 32;
item.height = 32;
item.value = Item.buyPrice(0, 0, 13);
item.value = Item.sellPrice(0, 0, 13);
item.useStyle = 4;
item.useAnimation = 30;
item.useTime = 30;

View File

@ -2,6 +2,7 @@ using Decimation.Content.Items.Misc.Souls;
using Decimation.Content.Items.Placeable.DuneWyrm;
using Decimation.Content.Items.Tools;
using Decimation.Content.Items.Vanity.DuneWyrm;
using Decimation.Content.Items.Weapons.DuneWyrm;
using Decimation.Lib.Items;
using Terraria;
using Terraria.ID;
@ -18,10 +19,24 @@ namespace Decimation.Content.Items.Boss.DuneWyrm
player.QuickSpawnItem(ModContent.ItemType<SoulofTime>(), Main.rand.Next(20, 35));
player.QuickSpawnItem(ItemID.FossilOre, Main.rand.Next(10, 15));
player.QuickSpawnItem(ModContent.ItemType<TheHourGlass>());
if (Main.rand.NextBool(7))
player.QuickSpawnItem(ModContent.ItemType<DuneWyrmMask>());
if (Main.rand.NextBool(13))
player.QuickSpawnItem(ModContent.ItemType<DuneWyrmTrophy>());
switch (Main.rand.Next(3))
{
case 0:
player.QuickSpawnItem(ModContent.ItemType<Sundial>());
break;
case 1:
player.QuickSpawnItem(ModContent.ItemType<StaffofShiftingSands>());
break;
case 2:
player.QuickSpawnItem(ModContent.ItemType<Timekeeper>());
break;
}
}
}
}

View File

@ -142,14 +142,17 @@ namespace Decimation.Content.Items
CursedNPC.DamageBonus = 7;
}
}
base.UpdateAccessory(item, player, hideVisual);
}
public override bool CanEquipAccessory(Item item, Player player, int slot)
{
// Maximize to one cursed item at once
DecimationPlayer modPlayer = player.GetModPlayer<DecimationPlayer>();
return !modPlayer.hasCursedAccessory ||
modPlayer.hasCursedAccessory && !item.GetGlobalItem<CursedItem>().Cursed;
if (!modPlayer.hasCursedAccessory ||
modPlayer.hasCursedAccessory && !item.GetGlobalItem<CursedItem>().Cursed) return true;
return base.CanEquipAccessory(item, player, slot);
}
public override void NetSend(Item item, BinaryWriter writer)
@ -272,12 +275,7 @@ namespace Decimation.Content.Items
}
}
return false;
}
public override bool ConsumeItem(Item item, Player player)
{
return true;
return base.UseItem(item, player);
}
}
}

View File

@ -9,11 +9,9 @@ namespace Decimation.Content.Items.Misc
protected override void Init()
{
item.width = 16;
item.height = 16;
item.width = 20;
item.height = 20;
item.value = 100;
this.item.maxStack = 999;
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 279 B

View File

@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Misc
item.width = 30;
item.height = 40;
item.rare = Rarity.Green.GetRarityValue();
item.value = Item.buyPrice(gold: 5);
item.value = Item.sellPrice(gold: 5);
item.useStyle = 1;
item.useTime = 20;
item.useAnimation = 20;

View File

@ -0,0 +1,10 @@
using Terraria.ID;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedFlight : ConcentratedSoul
{
protected override string ItemName => "Concentrated Flight";
public override int Soul => ItemID.SoulofFlight;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

View File

@ -0,0 +1,10 @@
using Terraria.ID;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedFright : ConcentratedSoul
{
protected override string ItemName => "Concentrated Fright";
public override int Soul => ItemID.SoulofFright;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

View File

@ -0,0 +1,11 @@
using Decimation.Content.Items.Misc.Souls;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedLife : ConcentratedSoul
{
protected override string ItemName => "Concentrated Life";
public override int Soul => ModContent.ItemType<SoulofLife>();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

View File

@ -0,0 +1,10 @@
using Terraria.ID;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedLight : ConcentratedSoul
{
protected override string ItemName => "Concentrated Light";
public override int Soul => ItemID.SoulofLight;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

View File

@ -0,0 +1,10 @@
using Terraria.ID;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedMight : ConcentratedSoul
{
protected override string ItemName => "Concentrated Might";
public override int Soul => ItemID.SoulofMight;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

View File

@ -0,0 +1,10 @@
using Terraria.ID;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedNight : ConcentratedSoul
{
protected override string ItemName => "Concentrated Night";
public override int Soul => ItemID.SoulofNight;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

View File

@ -0,0 +1,10 @@
using Terraria.ID;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedSight : ConcentratedSoul
{
protected override string ItemName => "Concentrated Sight";
public override int Soul => ItemID.SoulofSight;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

View File

@ -0,0 +1,31 @@
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Decimation.Lib.Util.Builder;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public abstract class ConcentratedSoul : DecimationItem
{
public abstract int Soul { get; }
protected override void Init()
{
item.width = 38;
item.height = 50;
item.value = Item.sellPrice(gold: 1, silver: 50);
item.rare = Rarity.Pink.GetRarityValue();
item.maxStack = 99;
}
protected override ModRecipe GetRecipe()
{
return new RecipeBuilder(this)
.WithIngredient(Soul, 50)
.WithStation(TileID.AlchemyTable)
.Build();
}
}
}

View File

@ -0,0 +1,12 @@
using Decimation.Content.Items.Misc.Souls;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
internal class ConcentratedSpite : ConcentratedSoul
{
protected override string ItemName => "Condensed Spite";
protected override string ItemTooltip => "His soul emanates a primal sense of hatred";
public override int Soul => ModContent.ItemType<SoulofSpite>();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

View File

@ -0,0 +1,11 @@
using Decimation.Content.Items.Misc.Souls;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Misc.ConcentratedSouls
{
public class ConcentratedTime : ConcentratedSoul
{
protected override string ItemName => "Concentrated Time";
public override int Soul => ModContent.ItemType<SoulofTime>();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

View File

@ -1,41 +0,0 @@
using Decimation.Content.Items.Misc.Souls;
using Decimation.Content.Tiles;
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Terraria;
using Terraria.DataStructures;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Misc.CondensedSouls
{
internal class CondensedSpite : DecimationItem
{
protected override string ItemName => "Condensed Spite";
protected override string ItemTooltip => "his soul emanates a primal sense of hatred";
protected override DrawAnimation Animation => new DrawAnimationVertical(5, 4);
protected override void Init()
{
this.item.CloneDefaults(ItemID.SoulofSight);
item.width = 44;
item.height = 44;
item.value = Item.buyPrice(0, 50);
item.rare = Rarity.Red.GetRarityValue();
ItemID.Sets.AnimatesAsSoul[this.item.type] = true;
ItemID.Sets.ItemIconPulse[this.item.type] = true;
ItemID.Sets.ItemNoGravity[this.item.type] = true;
}
protected override ModRecipe GetRecipe()
{
ModRecipe recipe = GetNewModRecipe(this, 1, ModContent.TileType<ChlorophyteAnvil>());
recipe.AddIngredient(ModContent.ItemType<SoulofSpite>(), 50);
return recipe;
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

View File

@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Misc
item.width = 30;
item.height = 40;
item.consumable = true;
item.value = Item.buyPrice(gold: 2, silver: 50);
item.value = Item.sellPrice(gold: 2, silver: 50);
item.rare = Rarity.Green.GetRarityValue();
item.useStyle = 1;
item.useTime = 20;

View File

@ -16,7 +16,7 @@ namespace Decimation.Content.Items.Misc
item.width = 28;
item.height = 20;
item.rare = Rarity.Gray.GetRarityValue();
item.value = Item.buyPrice(0, 2);
item.value = Item.sellPrice(0, 2);
this.item.maxStack = 99;
}

View File

@ -1,4 +1,5 @@
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Terraria;
using Terraria.DataStructures;
using Terraria.ID;
@ -14,19 +15,15 @@ namespace Decimation.Content.Items.Misc.Souls
protected override void Init()
{
Item refItem = new Item();
refItem.SetDefaults(ItemID.SoulofSight);
item.width = 22;
item.height = 22;
item.maxStack = 999;
item.value = Item.sellPrice(silver: 3);
item.rare = Rarity.Pink.GetRarityValue();
item.width = refItem.width;
item.height = refItem.height;
item.width = 20;
item.height = 20;
this.item.maxStack = 999;
ItemID.Sets.AnimatesAsSoul[this.item.type] = true;
ItemID.Sets.ItemIconPulse[this.item.type] = true;
ItemID.Sets.ItemNoGravity[this.item.type] = true;
ItemID.Sets.AnimatesAsSoul[item.type] = true;
ItemID.Sets.ItemIconPulse[item.type] = true;
ItemID.Sets.ItemNoGravity[item.type] = true;
}
public class SoulGlobalNPC : GlobalNPC

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1008 B

View File

@ -1,7 +1,9 @@
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Terraria;
using Terraria.DataStructures;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Misc.Souls
{
@ -13,29 +15,26 @@ namespace Decimation.Content.Items.Misc.Souls
protected override void Init()
{
Item refItem = new Item();
refItem.SetDefaults(ItemID.SoulofSight);
item.width = 22;
item.height = 22;
item.maxStack = 999;
item.value = Item.sellPrice(silver: 3);
item.rare = Rarity.Pink.GetRarityValue();
item.width = refItem.width;
item.height = refItem.height;
this.item.maxStack = 999;
item.value = 50000;
ItemID.Sets.AnimatesAsSoul[this.item.type] = true;
ItemID.Sets.ItemIconPulse[this.item.type] = true;
ItemID.Sets.ItemNoGravity[this.item.type] = true;
ItemID.Sets.AnimatesAsSoul[item.type] = true;
ItemID.Sets.ItemIconPulse[item.type] = true;
ItemID.Sets.ItemNoGravity[item.type] = true;
}
}
// Uncomment when Slime Prince will be done
/**public class SoulGlobalNPC : GlobalNPC
internal class SoulofSpiteNpcEffect : GlobalNPC
{
public override void NPCLoot(NPC npc)
{
public override void NPCLoot(NPC npc)
{
if (npc.type == mod.NPCType<SlimePrince>())
{
Item.NewItem((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, ModContent.ItemType<SoulofSpite>(), Main.rand.Next(12, 25));
}
}
}**/
if (NPC.downedPlantBoss && Main.LocalPlayer.ZoneUnderworldHeight &&
(!Main.expertMode && Main.rand.NextBool(5) || Main.expertMode && Main.rand.NextBool(9, 26)))
Item.NewItem((int) npc.position.X, (int) npc.position.Y, npc.width, npc.height,
ModContent.ItemType<SoulofSpite>());
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1020 B

After

Width:  |  Height:  |  Size: 867 B

View File

@ -10,18 +10,18 @@ namespace Decimation.Content.Items.Misc.Souls
{
protected override string ItemName => "Soul of Time";
protected override string ItemTooltip => "The essence of fate.";
protected override DrawAnimation Animation => new DrawAnimationVertical(5, 4);
protected override DrawAnimation Animation => new DrawAnimationVertical(5, 8);
protected override void Init()
{
item.width = 22;
item.height = 24;
item.value = Item.buyPrice(0, 0, 1);
item.rare = Rarity.Orange.GetRarityValue();
item.height = 22;
item.maxStack = 999;
item.value = Item.sellPrice(silver: 3);
item.rare = Rarity.Pink.GetRarityValue();
this.item.maxStack = 999;
ItemID.Sets.ItemNoGravity[this.item.type] = true;
ItemID.Sets.ItemIconPulse[item.type] = true;
ItemID.Sets.ItemNoGravity[item.type] = true;
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Misc
{
item.width = 26;
item.height = 36;
item.value = Item.buyPrice(silver: 50);
item.value = Item.sellPrice(silver: 50);
item.rare = Rarity.Yellow.GetRarityValue();
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 409 B

View File

@ -13,9 +13,9 @@ namespace Decimation.Content.Items.Placeable
protected override void InitPlaceable()
{
item.width = 20;
item.height = 20;
this.item.maxStack = 1;
item.width = 32;
item.height = 18;
item.maxStack = 1;
}
protected override ModRecipe GetRecipe()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 381 B

Some files were not shown because too many files have changed in this diff Show More