Decimation_Mod/Content/Synergies/FireAmuletSynergy.cs
FyloZ 0cf76d5270 Organized projectiles.
Updated The Mind trinity item.
2020-07-14 22:31:26 -04:00

74 lines
2.8 KiB
C#

using Decimation.Content.Buffs.Debuffs;
using Decimation.Content.Items.Amulets;
using Decimation.Content.Projectiles;
using Decimation.Content.Projectiles.Boss.Arachnus;
using Decimation.Lib.Amulets.Synergy;
using Decimation.Lib.Util;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Synergies
{
internal class FireAmuletSynergy : AmuletSynergyAdapter
{
private const int AddedLavaTime = 500;
public override void Update(DecimationPlayer modPlayer)
{
if (modPlayer.player.lavaMax > 0) modPlayer.player.lavaMax += AddedLavaTime;
}
public override void OnHitNPC(DecimationPlayer modPlayer, NPC target, Item weapon, ref int damages,
ref bool crit)
{
if (weapon.type.IsFireWeapon()) target.AddBuff(ModContent.BuffType<Singed>(), 500);
}
public override void OnHitPlayer(DecimationPlayer modPlayer, Player target, Item weapon, ref int damages,
ref bool crit)
{
if (weapon.type.IsFireWeapon()) target.AddBuff(ModContent.BuffType<Singed>(), 500);
}
private class FireAmuletSynergyFieryGreatswordEffect : GlobalItem
{
public override bool UseItem(Item item, Player player)
{
if (item.type == ItemID.FieryGreatsword &&
player.HasEquippedAmulet(ModContent.ItemType<FireAmulet>()))
{
int proj = Projectile.NewProjectile(player.Center + player.Directions * new Vector2(24, -16),
player.Directions * new Vector2(6, 0), ModContent.ProjectileType<ArachnusFireball>(), 30,
5f, player.whoAmI);
Main.projectile[proj].hostile = false;
Main.projectile[proj].friendly = true;
}
return base.UseItem(item, player);
}
}
private class FireAmuletSynergyFlamarangEffect : GlobalProjectile
{
public override void OnHitNPC(Projectile projectile, NPC target, int damage, float knockback, bool crit)
{
if (projectile.type.IsFireMeleeProjectile() &&
Main.LocalPlayer.HasEquippedAmulet(ModContent.ItemType<FireAmulet>()))
{
target.AddBuff(ModContent.BuffType<Singed>(), 500);
}
}
public override void OnHitPlayer(Projectile projectile, Player target, int damage, bool crit)
{
if (projectile.type.IsFireMeleeProjectile() &&
Main.LocalPlayer.HasEquippedAmulet(ModContent.ItemType<FireAmulet>()))
{
target.AddBuff(ModContent.BuffType<Singed>(), 500);
}
}
}
}
}