Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f561ed512 |
@ -1,5 +1,4 @@
|
|||||||
using Decimation.Content.Projectiles;
|
using Decimation.Content.Projectiles;
|
||||||
using Decimation.Content.Projectiles.Item.Weapon;
|
|
||||||
using Decimation.Lib.Buffs;
|
using Decimation.Lib.Buffs;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Terraria;
|
using Terraria;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 495 B |
|
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 402 B |
@ -1,5 +1,7 @@
|
|||||||
using Decimation.Lib.Buffs;
|
using System;
|
||||||
|
using Decimation.Lib.Buffs;
|
||||||
using Terraria;
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
using Terraria.ModLoader;
|
using Terraria.ModLoader;
|
||||||
|
|
||||||
namespace Decimation.Content.Buffs.Debuffs
|
namespace Decimation.Content.Buffs.Debuffs
|
||||||
@ -7,10 +9,7 @@ namespace Decimation.Content.Buffs.Debuffs
|
|||||||
internal class Hyperthermic : DecimationBuff
|
internal class Hyperthermic : DecimationBuff
|
||||||
{
|
{
|
||||||
protected override string DisplayName => "Hyperthermic!";
|
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;
|
public override bool Debuff => true;
|
||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
@ -22,13 +21,13 @@ namespace Decimation.Content.Buffs.Debuffs
|
|||||||
|
|
||||||
public override void Update(Player player, ref int buffIndex)
|
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;
|
player.moveSpeed *= 0.95f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Update(NPC npc, ref int buffIndex)
|
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;
|
npc.velocity *= 0.95f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -37,8 +36,7 @@ namespace Decimation.Content.Buffs.Debuffs
|
|||||||
{
|
{
|
||||||
public override bool CanUseItem(Item item, Player player)
|
public override bool CanUseItem(Item item, Player player)
|
||||||
{
|
{
|
||||||
if (player.HasBuff(ModContent.BuffType<Hyperthermic>()) && item.healMana > 0) return false;
|
return !(player.HasBuff(ModContent.BuffType<Hyperthermic>()) && item.healMana > 0);
|
||||||
return base.CanUseItem(item, player);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 396 B |
@ -41,7 +41,7 @@ namespace Decimation.Content.Buffs.Debuffs
|
|||||||
{
|
{
|
||||||
return !(item.UseSound != null && item.useStyle == 2);
|
return !(item.UseSound != null && item.useStyle == 2);
|
||||||
}
|
}
|
||||||
return base.CanUseItem(item, player);
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ namespace Decimation.Content.Buffs.Debuffs
|
|||||||
{
|
{
|
||||||
return !(item.UseSound != null && item.useStyle == 2);
|
return !(item.UseSound != null && item.useStyle == 2);
|
||||||
}
|
}
|
||||||
return base.CanUseItem(item, player);
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 577 B After Width: | Height: | Size: 352 B |
@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Decimation.Content.Items.Tools.Axes;
|
|
||||||
using Decimation.Content.NPCs.Arachnus;
|
using Decimation.Content.NPCs.Arachnus;
|
||||||
using Decimation.Content.NPCs.DuneWyrm;
|
using Decimation.Content.NPCs.DuneWyrm;
|
||||||
using Decimation.Content.NPCs.DuneWyrm.AncientTombCrawler;
|
using Decimation.Content.NPCs.DuneWyrm.AncientTombCrawler;
|
||||||
@ -10,7 +9,6 @@ using Decimation.Lib.Util;
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Terraria;
|
using Terraria;
|
||||||
using Terraria.ID;
|
using Terraria.ID;
|
||||||
using Terraria.Localization;
|
|
||||||
using Terraria.ModLoader;
|
using Terraria.ModLoader;
|
||||||
using Terraria.UI;
|
using Terraria.UI;
|
||||||
|
|
||||||
@ -107,32 +105,14 @@ namespace Decimation.Content
|
|||||||
|
|
||||||
public override void AddRecipeGroups()
|
public override void AddRecipeGroups()
|
||||||
{
|
{
|
||||||
RecipeGroup gems = new RecipeGroup(() => Language.GetTextValue("LegacyMisc.37") + " Gem",
|
RecipeGroup gems = new RecipeGroup(() => Lang.misc[37] + " Gem", ItemID.Amethyst, ItemID.Topaz,
|
||||||
ItemID.Amethyst,
|
ItemID.Emerald, ItemID.Sapphire, ItemID.Ruby, ItemID.Diamond);
|
||||||
ItemID.Topaz,
|
|
||||||
ItemID.Emerald,
|
|
||||||
ItemID.Sapphire,
|
|
||||||
ItemID.Ruby,
|
|
||||||
ItemID.Diamond);
|
|
||||||
RecipeGroup.RegisterGroup(DecimationRecipeGroupID.AnyGem, gems);
|
|
||||||
|
|
||||||
RecipeGroup threads = new RecipeGroup(() => Language.GetTextValue("LegacyMisc.37") + " Thread",
|
RecipeGroup threads = new RecipeGroup(() => Lang.misc[37] + " Thread", ItemID.BlackThread,
|
||||||
ItemID.BlackThread,
|
ItemID.GreenThread, ItemID.PinkThread);
|
||||||
ItemID.GreenThread,
|
|
||||||
ItemID.PinkThread);
|
|
||||||
RecipeGroup.RegisterGroup(DecimationRecipeGroupID.AnyThread, threads);
|
|
||||||
|
|
||||||
RecipeGroup corruptedWoodAxes = new RecipeGroup(
|
RecipeGroup.RegisterGroup("AnyGem", gems);
|
||||||
() => Language.GetTextValue("LegacyMisc.37") + " Corrupted Wood Axe",
|
RecipeGroup.RegisterGroup("AnyThread", threads);
|
||||||
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)
|
public override void HandlePacket(BinaryReader reader, int whoAmI)
|
||||||
|
|||||||
@ -69,7 +69,7 @@ namespace Decimation.Content
|
|||||||
public bool wasJumping = false;
|
public bool wasJumping = false;
|
||||||
|
|
||||||
public ICollection<int> EquippedAccessories { get; } = new List<int>();
|
public ICollection<int> EquippedAccessories { get; } = new List<int>();
|
||||||
public bool NextHitCrit { get; set; }
|
public bool HasShield { get; set; }
|
||||||
|
|
||||||
public Item AmuletSlotItem
|
public Item AmuletSlotItem
|
||||||
{
|
{
|
||||||
@ -100,6 +100,8 @@ namespace Decimation.Content
|
|||||||
tideTurnerEquipped = false;
|
tideTurnerEquipped = false;
|
||||||
vampire = false;
|
vampire = false;
|
||||||
|
|
||||||
|
HasShield = false;
|
||||||
|
|
||||||
hasCursedAccessory = false;
|
hasCursedAccessory = false;
|
||||||
|
|
||||||
player.statManaMax2 += hyperStars * HyperStar.ManaHealAmount;
|
player.statManaMax2 += hyperStars * HyperStar.ManaHealAmount;
|
||||||
@ -401,60 +403,14 @@ 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)
|
public override void ModifyHitByNPC(NPC npc, ref int damage, ref bool crit)
|
||||||
{
|
{
|
||||||
_amuletSlotAmulet?.Synergy.OnPlayerHit(this, ref damage);
|
_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)
|
public override void ModifyHitByProjectile(Projectile proj, ref int damage, ref bool crit)
|
||||||
{
|
{
|
||||||
_amuletSlotAmulet?.Synergy.OnPlayerHit(this, ref damage);
|
_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()
|
private void SpawnWaspNecklaceWasps()
|
||||||
@ -901,4 +857,14 @@ 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,11 +0,0 @@
|
|||||||
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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +1,14 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Decimation.Content.Projectiles.Boss.DuneWyrm;
|
using System.Collections.Generic;
|
||||||
using Decimation.Content.Structures;
|
|
||||||
using Terraria;
|
using Terraria;
|
||||||
using Terraria.GameContent.Generation;
|
|
||||||
using Terraria.ModLoader;
|
using Terraria.ModLoader;
|
||||||
using Terraria.ModLoader.IO;
|
|
||||||
using Terraria.World.Generation;
|
using Terraria.World.Generation;
|
||||||
|
using Terraria.GameContent.Generation;
|
||||||
|
using Terraria.ModLoader.IO;
|
||||||
|
using Decimation.Content.Structures;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using Terraria.ID;
|
||||||
|
|
||||||
namespace Decimation.Content
|
namespace Decimation.Content
|
||||||
{
|
{
|
||||||
@ -43,8 +45,6 @@ namespace Decimation.Content
|
|||||||
downedDuneWyrm = downed.Contains("downedDuneWyrm");
|
downedDuneWyrm = downed.Contains("downedDuneWyrm");
|
||||||
downedArachnus = downed.Contains("downedArachnus");
|
downedArachnus = downed.Contains("downedArachnus");
|
||||||
downedWyvern = downed.Contains("downedWyvern");
|
downedWyvern = downed.Contains("downedWyvern");
|
||||||
|
|
||||||
Sundial.Reset();
|
|
||||||
}
|
}
|
||||||
public override void NetSend(BinaryWriter writer)
|
public override void NetSend(BinaryWriter writer)
|
||||||
{
|
{
|
||||||
@ -69,19 +69,19 @@ namespace Decimation.Content
|
|||||||
if (loadVersion == 1)
|
if (loadVersion == 1)
|
||||||
{
|
{
|
||||||
byte flags = reader.ReadByte();
|
byte flags = reader.ReadByte();
|
||||||
downedBloodshotEye = ((flags & 1) != 0);
|
DecimationWorld.downedBloodshotEye = ((flags & 1) != 0);
|
||||||
downedDuneWyrm = ((flags & 2) != 0); //double flag numbers with each new boss
|
DecimationWorld.downedDuneWyrm = ((flags & 2) != 0); //double flag numbers with each new boss
|
||||||
downedArachnus = ((flags & 4) != 0);
|
DecimationWorld.downedArachnus = ((flags & 4) != 0);
|
||||||
downedWyvern = ((flags & 8) != 0);
|
DecimationWorld.downedWyvern = ((flags & 8) != 0);
|
||||||
}
|
}
|
||||||
else if (loadVersion == 2)
|
else if (loadVersion == 2)
|
||||||
{
|
{
|
||||||
byte flags = reader.ReadByte();
|
byte flags = reader.ReadByte();
|
||||||
byte flags2 = reader.ReadByte();
|
byte flags2 = reader.ReadByte();
|
||||||
downedBloodshotEye = ((flags & 1) != 0);
|
DecimationWorld.downedBloodshotEye = ((flags & 1) != 0);
|
||||||
downedDuneWyrm = ((flags & 2) != 0);
|
DecimationWorld.downedDuneWyrm = ((flags & 2) != 0);
|
||||||
downedArachnus = ((flags & 4) != 0);
|
DecimationWorld.downedArachnus = ((flags & 4) != 0);
|
||||||
downedWyvern = ((flags & 8) != 0);
|
DecimationWorld.downedWyvern = ((flags & 8) != 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 46;
|
item.width = 46;
|
||||||
item.height = 62;
|
item.height = 62;
|
||||||
item.rare = Rarity.LightPurple.GetRarityValue();
|
item.rare = Rarity.LightPurple.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 4);
|
this.item.value = Item.buyPrice(0, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAccessory(Player player, bool hideVisual)
|
public override void UpdateAccessory(Player player, bool hideVisual)
|
||||||
|
|||||||
@ -26,7 +26,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.height = 62;
|
item.height = 62;
|
||||||
item.rare = Rarity.LightPurple.GetRarityValue();
|
item.rare = Rarity.LightPurple.GetRarityValue();
|
||||||
|
|
||||||
this.item.value = Item.sellPrice(0, 4);
|
this.item.value = Item.buyPrice(0, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAccessory(Player player, bool hideVisual)
|
public override void UpdateAccessory(Player player, bool hideVisual)
|
||||||
|
|||||||
@ -18,7 +18,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 35;
|
item.width = 35;
|
||||||
item.height = 22;
|
item.height = 22;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
item.value = Item.sellPrice(0, 0, 0, 10);
|
item.value = Item.buyPrice(0, 0, 0, 10);
|
||||||
item.defense = 2;
|
item.defense = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 30;
|
item.width = 30;
|
||||||
item.height = 30;
|
item.height = 30;
|
||||||
item.rare = Rarity.Red.GetRarityValue();
|
item.rare = Rarity.Red.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 15);
|
this.item.value = Item.buyPrice(0, 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
protected override List<ModRecipe> GetRecipes()
|
||||||
|
|||||||
@ -21,7 +21,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 46;
|
item.width = 46;
|
||||||
item.height = 62;
|
item.height = 62;
|
||||||
item.rare = Rarity.LightPurple.GetRarityValue();
|
item.rare = Rarity.LightPurple.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 4);
|
this.item.value = Item.buyPrice(0, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAccessory(Player player, bool hideVisual)
|
public override void UpdateAccessory(Player player, bool hideVisual)
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 62;
|
item.width = 62;
|
||||||
item.height = 46;
|
item.height = 46;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 0, 0, 10);
|
this.item.value = Item.buyPrice(0, 0, 0, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
protected override List<ModRecipe> GetRecipes()
|
||||||
|
|||||||
@ -21,7 +21,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 24;
|
item.width = 24;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.rare = Rarity.Lime.GetRarityValue();
|
item.rare = Rarity.Lime.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 50);
|
this.item.value = Item.buyPrice(0, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAccessory(Player player, bool hideVisual)
|
public override void UpdateAccessory(Player player, bool hideVisual)
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 62;
|
item.width = 62;
|
||||||
item.height = 46;
|
item.height = 46;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 0, 0, 10);
|
this.item.value = Item.buyPrice(0, 0, 0, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
protected override List<ModRecipe> GetRecipes()
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 54;
|
item.width = 54;
|
||||||
item.height = 46;
|
item.height = 46;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 0, 0, 10);
|
this.item.value = Item.buyPrice(0, 0, 0, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
protected override List<ModRecipe> GetRecipes()
|
||||||
|
|||||||
@ -13,11 +13,11 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
|
|
||||||
protected override void InitAccessory()
|
protected override void InitAccessory()
|
||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 20;
|
||||||
item.height = 32;
|
item.height = 20;
|
||||||
item.rare = Rarity.Rainbow.GetRarityValue();
|
item.rare = Rarity.Rainbow.GetRarityValue();
|
||||||
item.value = Item.sellPrice(gold: 5);
|
this.item.value = Item.buyPrice(0, 5);
|
||||||
item.expert = true;
|
this.item.expert = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAccessory(Player player, bool hideVisual)
|
public override void UpdateAccessory(Player player, bool hideVisual)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 407 B |
@ -19,7 +19,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 32;
|
item.width = 32;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 0, 0, 10);
|
this.item.value = Item.buyPrice(0, 0, 0, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
protected override List<ModRecipe> GetRecipes()
|
||||||
|
|||||||
@ -18,7 +18,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 24;
|
item.width = 24;
|
||||||
item.height = 24;
|
item.height = 24;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
item.value = Item.sellPrice(0, 0, 2);
|
item.value = Item.buyPrice(0, 0, 2);
|
||||||
item.defense = 1;
|
item.defense = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 30;
|
item.width = 30;
|
||||||
item.height = 28;
|
item.height = 28;
|
||||||
item.rare = Rarity.Rainbow.GetRarityValue();
|
item.rare = Rarity.Rainbow.GetRarityValue();
|
||||||
this.item.value = Item.sellPrice(0, 45);
|
this.item.value = Item.buyPrice(0, 45);
|
||||||
this.item.expert = true;
|
this.item.expert = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.height = 24;
|
item.height = 24;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
|
|
||||||
this.item.value = Item.sellPrice(0, 0, 0, 10);
|
this.item.value = Item.buyPrice(0, 0, 0, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
protected override List<ModRecipe> GetRecipes()
|
||||||
|
|||||||
@ -23,7 +23,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
item.width = 46;
|
item.width = 46;
|
||||||
item.height = 36;
|
item.height = 36;
|
||||||
item.rare = Rarity.Rainbow.GetRarityValue();
|
item.rare = Rarity.Rainbow.GetRarityValue();
|
||||||
item.value = Item.sellPrice(0, 3);
|
item.value = Item.buyPrice(0, 3);
|
||||||
item.defense = 3;
|
item.defense = 3;
|
||||||
item.shieldSlot = 5;
|
item.shieldSlot = 5;
|
||||||
item.expert = true;
|
item.expert = true;
|
||||||
|
|||||||
@ -1,56 +0,0 @@
|
|||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 589 B |
@ -1,75 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 822 B |
@ -1,76 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 201 B |
@ -1,108 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 204 B |
@ -1,111 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 201 B |
@ -1,115 +0,0 @@
|
|||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 504 B |
@ -1,47 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -20,7 +20,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
{
|
{
|
||||||
item.width = 26;
|
item.width = 26;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.value = Item.sellPrice(gold: 19, silver: 70);
|
item.value = Item.buyPrice(gold: 19, silver: 70);
|
||||||
item.rare = Rarity.LightPurple.GetRarityValue();
|
item.rare = Rarity.LightPurple.GetRarityValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,9 +16,9 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
|
|
||||||
protected override void InitAccessory()
|
protected override void InitAccessory()
|
||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 30;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.value = Item.sellPrice(gold: 1, silver: 70);
|
item.value = Item.buyPrice(gold: 1, silver: 70);
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 594 B |
@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 32;
|
||||||
item.height = 30;
|
item.height = 30;
|
||||||
item.value = Item.sellPrice(silver: 10);
|
item.value = Item.buyPrice(silver: 10);
|
||||||
item.rare = Rarity.Blue.GetRarityValue();
|
item.rare = Rarity.Blue.GetRarityValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Decimation.Content.Items.Misc.ConcentratedSouls;
|
using Decimation.Content.Items.Misc.CondensedSouls;
|
||||||
using Decimation.Content.Items.Ores;
|
using Decimation.Content.Items.Ores;
|
||||||
using Decimation.Content.Projectiles.Item.Accessory;
|
using Decimation.Content.Projectiles;
|
||||||
using Decimation.Content.Tiles;
|
using Decimation.Content.Tiles;
|
||||||
using Decimation.Lib.Items;
|
using Decimation.Lib.Items;
|
||||||
using Decimation.Lib.Util;
|
using Decimation.Lib.Util;
|
||||||
@ -24,16 +24,16 @@ namespace Decimation.Content.Items.Accessories.Wings
|
|||||||
item.height = 26;
|
item.height = 26;
|
||||||
item.rare = Rarity.Red.GetRarityValue();
|
item.rare = Rarity.Red.GetRarityValue();
|
||||||
|
|
||||||
this.item.value = Item.sellPrice(0, 5);
|
this.item.value = Item.buyPrice(0, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAccessory(Player player, bool hideVisual)
|
public override void UpdateAccessory(Player player, bool hideVisual)
|
||||||
{
|
{
|
||||||
player.wingTimeMax = 240;
|
player.wingTimeMax = 240;
|
||||||
Lighting.AddLight((int) (player.position.X + player.width / 2f) / 16,
|
Lighting.AddLight((int)(player.position.X + player.width / 2f) / 16,
|
||||||
(int) (player.position.Y + player.height / 2f) / 16, 1.05f, 0.95f, 0.55f);
|
(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,
|
Projectile.NewProjectile(player.Center, new Vector2(0, 0), ModContent.ProjectileType<Ember>(), 25, 5,
|
||||||
player.whoAmI);
|
player.whoAmI);
|
||||||
}
|
}
|
||||||
@ -56,14 +56,14 @@ namespace Decimation.Content.Items.Accessories.Wings
|
|||||||
|
|
||||||
protected override List<ModRecipe> GetRecipes()
|
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.BeetleWings);
|
||||||
recipe.AddIngredient(ItemID.WingsSolar);
|
recipe.AddIngredient(ItemID.WingsSolar);
|
||||||
recipe.AddIngredient(ModContent.ItemType<ConcentratedSpite>(), 2);
|
recipe.AddIngredient(ModContent.ItemType<CondensedSpite>(), 2);
|
||||||
recipe.AddIngredient(ModContent.ItemType<DenziumBar>(), 5);
|
recipe.AddIngredient(ModContent.ItemType<DenziumBar>(), 5);
|
||||||
|
|
||||||
return new List<ModRecipe> {recipe};
|
return new List<ModRecipe> { recipe };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -24,7 +24,7 @@ namespace Decimation.Content.Items.Ammo
|
|||||||
item.height = 8;
|
item.height = 8;
|
||||||
item.knockBack = 1;
|
item.knockBack = 1;
|
||||||
item.rare = Rarity.Orange.GetRarityValue();
|
item.rare = Rarity.Orange.GetRarityValue();
|
||||||
item.value = Item.sellPrice(0, 0, 10);
|
item.value = Item.buyPrice(0, 0, 10);
|
||||||
item.consumable = true;
|
item.consumable = true;
|
||||||
|
|
||||||
this.item.shootSpeed = 2f;
|
this.item.shootSpeed = 2f;
|
||||||
|
|||||||
@ -20,7 +20,7 @@ namespace Decimation.Content.Items.Ammo
|
|||||||
item.knockBack = 2;
|
item.knockBack = 2;
|
||||||
item.width = 14;
|
item.width = 14;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.value = Item.sellPrice(0, 0, 0, 55);
|
item.value = Item.buyPrice(0, 0, 0, 55);
|
||||||
|
|
||||||
this.item.shootSpeed = 2.5f;
|
this.item.shootSpeed = 2.5f;
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 375 B |
@ -11,9 +11,9 @@ using Terraria.ModLoader;
|
|||||||
|
|
||||||
namespace Decimation.Content.Items.Ammo
|
namespace Decimation.Content.Items.Ammo
|
||||||
{
|
{
|
||||||
internal class ScytheStyngerBolt : DecimationAmmo
|
internal class TitanicStyngerBolt : DecimationAmmo
|
||||||
{
|
{
|
||||||
protected override string ItemName => "The Scythe Stynger Bolt";
|
protected override string ItemName => "Titanic Stynger Bolt";
|
||||||
protected override string ItemTooltip => "Explodes into deadly shrapnel.";
|
protected override string ItemTooltip => "Explodes into deadly shrapnel.";
|
||||||
protected override string Projectile => "TitanicStyngerBolt";
|
protected override string Projectile => "TitanicStyngerBolt";
|
||||||
protected override int Ammo => AmmoID.StyngerBolt;
|
protected override int Ammo => AmmoID.StyngerBolt;
|
||||||
@ -25,7 +25,7 @@ namespace Decimation.Content.Items.Ammo
|
|||||||
item.rare = Rarity.Orange.GetRarityValue();
|
item.rare = Rarity.Orange.GetRarityValue();
|
||||||
item.width = 8;
|
item.width = 8;
|
||||||
item.height = 8;
|
item.height = 8;
|
||||||
item.value = Item.sellPrice(0, 0, 10);
|
item.value = Item.buyPrice(0, 0, 10);
|
||||||
item.consumable = true;
|
item.consumable = true;
|
||||||
|
|
||||||
this.item.shootSpeed = 2f;
|
this.item.shootSpeed = 2f;
|
||||||
|
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 318 B |
@ -17,7 +17,7 @@ namespace Decimation.Content.Items.Boss.Arachnus
|
|||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 32;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.value = Item.sellPrice(0, 45);
|
item.value = Item.buyPrice(0, 45);
|
||||||
item.rare = Rarity.Red.GetRarityValue();
|
item.rare = Rarity.Red.GetRarityValue();
|
||||||
item.consumable = true;
|
item.consumable = true;
|
||||||
item.useStyle = 4;
|
item.useStyle = 4;
|
||||||
|
|||||||
@ -14,11 +14,12 @@ namespace Decimation.Content.Items.Boss.Arachnus
|
|||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
item.width = 20;
|
item.width = 20;
|
||||||
item.height = 36;
|
item.height = 20;
|
||||||
item.consumable = true;
|
item.consumable = true;
|
||||||
item.value = Item.sellPrice(0, 45);
|
item.value = Item.buyPrice(0, 45);
|
||||||
item.rare = Rarity.Red.GetRarityValue();
|
item.rare = Rarity.Red.GetRarityValue();
|
||||||
item.maxStack = 1;
|
|
||||||
|
this.item.maxStack = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DropFromMoonLord : GlobalNPC
|
public class DropFromMoonLord : GlobalNPC
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 417 B |
@ -14,13 +14,14 @@ namespace Decimation.Content.Items.Boss.Bloodshot
|
|||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
item.width = 22;
|
item.width = 20;
|
||||||
item.height = 26;
|
item.height = 24;
|
||||||
item.consumable = true;
|
item.consumable = true;
|
||||||
item.useStyle = 4;
|
item.useStyle = 4;
|
||||||
item.useAnimation = 30;
|
item.useAnimation = 30;
|
||||||
item.useTime = 30;
|
item.useTime = 30;
|
||||||
item.maxStack = 1;
|
|
||||||
|
this.item.maxStack = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanUseItem(Player player)
|
public override bool CanUseItem(Player player)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 459 B After Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 561 B After Width: | Height: | Size: 506 B |
@ -16,7 +16,7 @@ namespace Decimation.Content.Items.Boss.DuneWyrm
|
|||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 32;
|
||||||
item.height = 32;
|
item.height = 32;
|
||||||
item.value = Item.sellPrice(0, 0, 13);
|
item.value = Item.buyPrice(0, 0, 13);
|
||||||
item.useStyle = 4;
|
item.useStyle = 4;
|
||||||
item.useAnimation = 30;
|
item.useAnimation = 30;
|
||||||
item.useTime = 30;
|
item.useTime = 30;
|
||||||
|
|||||||
@ -2,7 +2,6 @@ using Decimation.Content.Items.Misc.Souls;
|
|||||||
using Decimation.Content.Items.Placeable.DuneWyrm;
|
using Decimation.Content.Items.Placeable.DuneWyrm;
|
||||||
using Decimation.Content.Items.Tools;
|
using Decimation.Content.Items.Tools;
|
||||||
using Decimation.Content.Items.Vanity.DuneWyrm;
|
using Decimation.Content.Items.Vanity.DuneWyrm;
|
||||||
using Decimation.Content.Items.Weapons.DuneWyrm;
|
|
||||||
using Decimation.Lib.Items;
|
using Decimation.Lib.Items;
|
||||||
using Terraria;
|
using Terraria;
|
||||||
using Terraria.ID;
|
using Terraria.ID;
|
||||||
@ -19,24 +18,10 @@ namespace Decimation.Content.Items.Boss.DuneWyrm
|
|||||||
player.QuickSpawnItem(ModContent.ItemType<SoulofTime>(), Main.rand.Next(20, 35));
|
player.QuickSpawnItem(ModContent.ItemType<SoulofTime>(), Main.rand.Next(20, 35));
|
||||||
player.QuickSpawnItem(ItemID.FossilOre, Main.rand.Next(10, 15));
|
player.QuickSpawnItem(ItemID.FossilOre, Main.rand.Next(10, 15));
|
||||||
player.QuickSpawnItem(ModContent.ItemType<TheHourGlass>());
|
player.QuickSpawnItem(ModContent.ItemType<TheHourGlass>());
|
||||||
|
|
||||||
if (Main.rand.NextBool(7))
|
if (Main.rand.NextBool(7))
|
||||||
player.QuickSpawnItem(ModContent.ItemType<DuneWyrmMask>());
|
player.QuickSpawnItem(ModContent.ItemType<DuneWyrmMask>());
|
||||||
if (Main.rand.NextBool(13))
|
if (Main.rand.NextBool(13))
|
||||||
player.QuickSpawnItem(ModContent.ItemType<DuneWyrmTrophy>());
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,17 +142,14 @@ namespace Decimation.Content.Items
|
|||||||
CursedNPC.DamageBonus = 7;
|
CursedNPC.DamageBonus = 7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
base.UpdateAccessory(item, player, hideVisual);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanEquipAccessory(Item item, Player player, int slot)
|
public override bool CanEquipAccessory(Item item, Player player, int slot)
|
||||||
{
|
{
|
||||||
// Maximize to one cursed item at once
|
// Maximize to one cursed item at once
|
||||||
DecimationPlayer modPlayer = player.GetModPlayer<DecimationPlayer>();
|
DecimationPlayer modPlayer = player.GetModPlayer<DecimationPlayer>();
|
||||||
if (!modPlayer.hasCursedAccessory ||
|
return !modPlayer.hasCursedAccessory ||
|
||||||
modPlayer.hasCursedAccessory && !item.GetGlobalItem<CursedItem>().Cursed) return true;
|
modPlayer.hasCursedAccessory && !item.GetGlobalItem<CursedItem>().Cursed;
|
||||||
return base.CanEquipAccessory(item, player, slot);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void NetSend(Item item, BinaryWriter writer)
|
public override void NetSend(Item item, BinaryWriter writer)
|
||||||
@ -275,7 +272,12 @@ namespace Decimation.Content.Items
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.UseItem(item, player);
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool ConsumeItem(Item item, Player player)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -9,9 +9,11 @@ namespace Decimation.Content.Items.Misc
|
|||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
item.width = 20;
|
item.width = 16;
|
||||||
item.height = 20;
|
item.height = 16;
|
||||||
item.value = 100;
|
item.value = 100;
|
||||||
|
|
||||||
|
this.item.maxStack = 999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 257 B |
@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Misc
|
|||||||
item.width = 30;
|
item.width = 30;
|
||||||
item.height = 40;
|
item.height = 40;
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
item.value = Item.sellPrice(gold: 5);
|
item.value = Item.buyPrice(gold: 5);
|
||||||
item.useStyle = 1;
|
item.useStyle = 1;
|
||||||
item.useTime = 20;
|
item.useTime = 20;
|
||||||
item.useAnimation = 20;
|
item.useAnimation = 20;
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 663 B |
@ -1,10 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 653 B |
@ -1,11 +0,0 @@
|
|||||||
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>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 664 B |
@ -1,10 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 658 B |
@ -1,10 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 652 B |
@ -1,10 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 683 B |
@ -1,10 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 659 B |
@ -1,31 +0,0 @@
|
|||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
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>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 725 B |
@ -1,11 +0,0 @@
|
|||||||
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>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 709 B |
41
Content/Items/Misc/CondensedSouls/CondensedSpite.cs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
Content/Items/Misc/CondensedSouls/CondensedSpite.gif
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
Content/Items/Misc/CondensedSouls/CondensedSpite.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
Content/Items/Misc/CondensedSouls/CondensedSpiteWiki.png
Normal file
|
After Width: | Height: | Size: 789 B |
@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Misc
|
|||||||
item.width = 30;
|
item.width = 30;
|
||||||
item.height = 40;
|
item.height = 40;
|
||||||
item.consumable = true;
|
item.consumable = true;
|
||||||
item.value = Item.sellPrice(gold: 2, silver: 50);
|
item.value = Item.buyPrice(gold: 2, silver: 50);
|
||||||
item.rare = Rarity.Green.GetRarityValue();
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
item.useStyle = 1;
|
item.useStyle = 1;
|
||||||
item.useTime = 20;
|
item.useTime = 20;
|
||||||
|
|||||||
@ -16,7 +16,7 @@ namespace Decimation.Content.Items.Misc
|
|||||||
item.width = 28;
|
item.width = 28;
|
||||||
item.height = 20;
|
item.height = 20;
|
||||||
item.rare = Rarity.Gray.GetRarityValue();
|
item.rare = Rarity.Gray.GetRarityValue();
|
||||||
item.value = Item.sellPrice(0, 2);
|
item.value = Item.buyPrice(0, 2);
|
||||||
|
|
||||||
this.item.maxStack = 99;
|
this.item.maxStack = 99;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using Decimation.Lib.Items;
|
using Decimation.Lib.Items;
|
||||||
using Decimation.Lib.Util;
|
|
||||||
using Terraria;
|
using Terraria;
|
||||||
using Terraria.DataStructures;
|
using Terraria.DataStructures;
|
||||||
using Terraria.ID;
|
using Terraria.ID;
|
||||||
@ -15,15 +14,19 @@ namespace Decimation.Content.Items.Misc.Souls
|
|||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
item.width = 22;
|
Item refItem = new Item();
|
||||||
item.height = 22;
|
refItem.SetDefaults(ItemID.SoulofSight);
|
||||||
item.maxStack = 999;
|
|
||||||
item.value = Item.sellPrice(silver: 3);
|
|
||||||
item.rare = Rarity.Pink.GetRarityValue();
|
|
||||||
|
|
||||||
ItemID.Sets.AnimatesAsSoul[item.type] = true;
|
item.width = refItem.width;
|
||||||
ItemID.Sets.ItemIconPulse[item.type] = true;
|
item.height = refItem.height;
|
||||||
ItemID.Sets.ItemNoGravity[item.type] = true;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SoulGlobalNPC : GlobalNPC
|
public class SoulGlobalNPC : GlobalNPC
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1008 B After Width: | Height: | Size: 1.0 KiB |
@ -1,9 +1,7 @@
|
|||||||
using Decimation.Lib.Items;
|
using Decimation.Lib.Items;
|
||||||
using Decimation.Lib.Util;
|
|
||||||
using Terraria;
|
using Terraria;
|
||||||
using Terraria.DataStructures;
|
using Terraria.DataStructures;
|
||||||
using Terraria.ID;
|
using Terraria.ID;
|
||||||
using Terraria.ModLoader;
|
|
||||||
|
|
||||||
namespace Decimation.Content.Items.Misc.Souls
|
namespace Decimation.Content.Items.Misc.Souls
|
||||||
{
|
{
|
||||||
@ -15,26 +13,29 @@ namespace Decimation.Content.Items.Misc.Souls
|
|||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
item.width = 22;
|
Item refItem = new Item();
|
||||||
item.height = 22;
|
refItem.SetDefaults(ItemID.SoulofSight);
|
||||||
item.maxStack = 999;
|
|
||||||
item.value = Item.sellPrice(silver: 3);
|
|
||||||
item.rare = Rarity.Pink.GetRarityValue();
|
|
||||||
|
|
||||||
ItemID.Sets.AnimatesAsSoul[item.type] = true;
|
item.width = refItem.width;
|
||||||
ItemID.Sets.ItemIconPulse[item.type] = true;
|
item.height = refItem.height;
|
||||||
ItemID.Sets.ItemNoGravity[item.type] = true;
|
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;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
internal class SoulofSpiteNpcEffect : GlobalNPC
|
// Uncomment when Slime Prince will be done
|
||||||
{
|
/**public class SoulGlobalNPC : GlobalNPC
|
||||||
public override void NPCLoot(NPC npc)
|
|
||||||
{
|
{
|
||||||
if (NPC.downedPlantBoss && Main.LocalPlayer.ZoneUnderworldHeight &&
|
public override void NPCLoot(NPC npc)
|
||||||
(!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,
|
if (npc.type == mod.NPCType<SlimePrince>())
|
||||||
ModContent.ItemType<SoulofSpite>());
|
{
|
||||||
}
|
Item.NewItem((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, ModContent.ItemType<SoulofSpite>(), Main.rand.Next(12, 25));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}**/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 867 B After Width: | Height: | Size: 1020 B |
@ -10,18 +10,18 @@ namespace Decimation.Content.Items.Misc.Souls
|
|||||||
{
|
{
|
||||||
protected override string ItemName => "Soul of Time";
|
protected override string ItemName => "Soul of Time";
|
||||||
protected override string ItemTooltip => "The essence of fate.";
|
protected override string ItemTooltip => "The essence of fate.";
|
||||||
protected override DrawAnimation Animation => new DrawAnimationVertical(5, 8);
|
protected override DrawAnimation Animation => new DrawAnimationVertical(5, 4);
|
||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
item.width = 22;
|
item.width = 22;
|
||||||
item.height = 22;
|
item.height = 24;
|
||||||
item.maxStack = 999;
|
item.value = Item.buyPrice(0, 0, 1);
|
||||||
item.value = Item.sellPrice(silver: 3);
|
item.rare = Rarity.Orange.GetRarityValue();
|
||||||
item.rare = Rarity.Pink.GetRarityValue();
|
|
||||||
|
|
||||||
ItemID.Sets.ItemIconPulse[item.type] = true;
|
this.item.maxStack = 999;
|
||||||
ItemID.Sets.ItemNoGravity[item.type] = true;
|
|
||||||
|
ItemID.Sets.ItemNoGravity[this.item.type] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -14,7 +14,7 @@ namespace Decimation.Content.Items.Misc
|
|||||||
{
|
{
|
||||||
item.width = 26;
|
item.width = 26;
|
||||||
item.height = 36;
|
item.height = 36;
|
||||||
item.value = Item.sellPrice(silver: 50);
|
item.value = Item.buyPrice(silver: 50);
|
||||||
item.rare = Rarity.Yellow.GetRarityValue();
|
item.rare = Rarity.Yellow.GetRarityValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 384 B After Width: | Height: | Size: 662 B |
|
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 361 B |
@ -13,9 +13,9 @@ namespace Decimation.Content.Items.Placeable
|
|||||||
|
|
||||||
protected override void InitPlaceable()
|
protected override void InitPlaceable()
|
||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 20;
|
||||||
item.height = 18;
|
item.height = 20;
|
||||||
item.maxStack = 1;
|
this.item.maxStack = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override ModRecipe GetRecipe()
|
protected override ModRecipe GetRecipe()
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 336 B |