Added Wasp Necklace
This commit is contained in:
parent
cd01d40d54
commit
0510b2f3c9
@ -1,9 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Decimation.Content.Buffs.Buffs;
|
using Decimation.Content.Buffs.Buffs;
|
||||||
|
using Decimation.Content.Items.Accessories;
|
||||||
using Decimation.Content.Items.Amulets;
|
using Decimation.Content.Items.Amulets;
|
||||||
using Decimation.Content.Items.Misc;
|
using Decimation.Content.Items.Misc;
|
||||||
using Decimation.Lib;
|
|
||||||
using Decimation.Lib.Amulets;
|
using Decimation.Lib.Amulets;
|
||||||
using Decimation.Lib.Collections;
|
using Decimation.Lib.Collections;
|
||||||
using Decimation.Lib.Util;
|
using Decimation.Lib.Util;
|
||||||
@ -90,7 +90,7 @@ namespace Decimation.Content
|
|||||||
public override void ResetEffects()
|
public override void ResetEffects()
|
||||||
{
|
{
|
||||||
EquippedAccessories.Clear();
|
EquippedAccessories.Clear();
|
||||||
|
|
||||||
closeToEnchantedAnvil = false;
|
closeToEnchantedAnvil = false;
|
||||||
jestersQuiverEquiped = false;
|
jestersQuiverEquiped = false;
|
||||||
deadeyesQuiverEquipped = false;
|
deadeyesQuiverEquipped = false;
|
||||||
@ -268,7 +268,7 @@ namespace Decimation.Content
|
|||||||
|
|
||||||
if (AmuletSlotItem.type == ModContent.ItemType<CrystalAmulet>())
|
if (AmuletSlotItem.type == ModContent.ItemType<CrystalAmulet>())
|
||||||
CrystalAmuletEffect();
|
CrystalAmuletEffect();
|
||||||
|
|
||||||
_amuletSlotAmulet?.Synergy.OnHitPlayer(this, target, item, ref damage, ref crit);
|
_amuletSlotAmulet?.Synergy.OnHitPlayer(this, target, item, ref damage, ref crit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ namespace Decimation.Content
|
|||||||
AmuletSlotItem.type != ModContent.ItemType<MarbleAmulet>())
|
AmuletSlotItem.type != ModContent.ItemType<MarbleAmulet>())
|
||||||
if (Main.rand.Next(amuletsBuffChances, 100) < amuletsBuffChances)
|
if (Main.rand.Next(amuletsBuffChances, 100) < amuletsBuffChances)
|
||||||
target.AddBuff(amuletsBuff, amuletsBuffTime);
|
target.AddBuff(amuletsBuff, amuletsBuffTime);
|
||||||
|
|
||||||
_amuletSlotAmulet?.Synergy.OnHitNPC(this, target, item, ref damage, ref crit);
|
_amuletSlotAmulet?.Synergy.OnHitNPC(this, target, item, ref damage, ref crit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,6 +345,29 @@ namespace Decimation.Content
|
|||||||
|
|
||||||
if (AmuletSlotItem.type == ModContent.ItemType<CrystalAmulet>() && Main.rand.NextBool(25))
|
if (AmuletSlotItem.type == ModContent.ItemType<CrystalAmulet>() && Main.rand.NextBool(25))
|
||||||
CrystalAmuletEffect();
|
CrystalAmuletEffect();
|
||||||
|
|
||||||
|
if (this.HasEquippedAccessory(ModContent.ItemType<WaspNecklace>()))
|
||||||
|
{
|
||||||
|
player.AddBuff(BuffID.Panic, 300);
|
||||||
|
|
||||||
|
// Wasps
|
||||||
|
int waspsCount = 1;
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
if (Main.rand.NextBool(3))
|
||||||
|
waspsCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 position = player.position;
|
||||||
|
Vector2 speed = new Vector2(Main.rand.Next(-35, 36) * 0.02f, Main.rand.Next(-35, 36) * 0.02f);
|
||||||
|
int damages = 10 + Main.rand.Next(1, 4);
|
||||||
|
const float kb = 0.5f;
|
||||||
|
|
||||||
|
for (int i = 0; i < waspsCount; i++)
|
||||||
|
{
|
||||||
|
Projectile.NewProjectile(position, speed, ProjectileID.Wasp, damages, kb, player.whoAmI);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnHitByProjectile(Projectile proj, int damage, bool crit)
|
public override void OnHitByProjectile(Projectile proj, int damage, bool crit)
|
||||||
|
|||||||
47
Content/Items/Accessories/WaspNecklace.cs
Normal file
47
Content/Items/Accessories/WaspNecklace.cs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
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 WaspNecklace : DecimationAccessory
|
||||||
|
{
|
||||||
|
protected override string ItemName => "Wasp Necklace";
|
||||||
|
|
||||||
|
protected override string ItemTooltip => "Releases wasps after taking damage\n" +
|
||||||
|
"Increases movement speed after taking damage\n" +
|
||||||
|
"Attackers have 20% chances to be poisoned";
|
||||||
|
|
||||||
|
protected override void InitAccessory()
|
||||||
|
{
|
||||||
|
item.width = 30;
|
||||||
|
item.height = 32;
|
||||||
|
item.value = Item.buyPrice(gold: 1, silver: 70);
|
||||||
|
item.rare = Rarity.Green.GetRarityValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override ModRecipe GetRecipe()
|
||||||
|
{
|
||||||
|
return new RecipeBuilder(this)
|
||||||
|
.WithIngredient(ItemID.SweetheartNecklace)
|
||||||
|
.WithIngredient(ModContent.ItemType<WaspNest>())
|
||||||
|
.WithStation(TileID.TinkerersWorkbench)
|
||||||
|
.Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class WaspNecklacePoisonEffect : GlobalNPC
|
||||||
|
{
|
||||||
|
public override void OnHitPlayer(NPC npc, Player target, int damage, bool crit)
|
||||||
|
{
|
||||||
|
if (target.HasEquippedAccessory(ModContent.ItemType<WaspNecklace>()) && Main.rand.NextBool(5))
|
||||||
|
npc.AddBuff(BuffID.Poisoned, 300);
|
||||||
|
|
||||||
|
base.OnHitPlayer(npc, target, damage, crit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
BIN
Content/Items/Accessories/WaspNecklace.png
Normal file
BIN
Content/Items/Accessories/WaspNecklace.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 594 B |
@ -10,7 +10,9 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
public class WaspNest : DecimationAccessory
|
public class WaspNest : DecimationAccessory
|
||||||
{
|
{
|
||||||
protected override string ItemName => "Wasp Nest";
|
protected override string ItemName => "Wasp Nest";
|
||||||
|
protected override string ItemTooltip => "Attackers also take damage\n" +
|
||||||
|
"Attackers have 50% chances to be poisoned";
|
||||||
|
|
||||||
protected override void InitAccessory()
|
protected override void InitAccessory()
|
||||||
{
|
{
|
||||||
item.width = 32;
|
item.width = 32;
|
||||||
@ -45,4 +47,5 @@ namespace Decimation.Content.Items.Accessories
|
|||||||
npc.AddBuff(BuffID.Poisoned, 600);
|
npc.AddBuff(BuffID.Poisoned, 600);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
using Decimation.Content;
|
using Decimation.Content;
|
||||||
using Decimation.Lib.Items;
|
using Decimation.Lib.Items;
|
||||||
using Terraria;
|
using Terraria;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
|
||||||
namespace Decimation.Lib.Util
|
namespace Decimation.Lib.Util
|
||||||
{
|
{
|
||||||
@ -21,6 +22,11 @@ namespace Decimation.Lib.Util
|
|||||||
return player.GetModPlayer().EquippedAccessories.Contains(accessoryType);
|
return player.GetModPlayer().EquippedAccessories.Contains(accessoryType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool HasEquippedAccessory(this ModPlayer modPlayer, int accessoryType)
|
||||||
|
{
|
||||||
|
return modPlayer.player.GetModPlayer().EquippedAccessories.Contains(accessoryType);
|
||||||
|
}
|
||||||
|
|
||||||
public static bool HasEquippedAmulet(this Player player, int amuletType)
|
public static bool HasEquippedAmulet(this Player player, int amuletType)
|
||||||
{
|
{
|
||||||
return player.GetModPlayer().AmuletSlotItem.type == amuletType;
|
return player.GetModPlayer().AmuletSlotItem.type == amuletType;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user