Decimation_Mod/Lib/Util/PlayerUtils.cs
FyloZ 01a4ad3dea Added Titanic Paladin Shield
Added Titan Shield
2020-07-20 16:06:07 -04:00

86 lines
2.6 KiB
C#

using System.Linq;
using Decimation.Content;
using Decimation.Lib.Items;
using Terraria;
using Terraria.ModLoader;
namespace Decimation.Lib.Util
{
public static class PlayerUtils
{
public static DecimationPlayer GetModPlayer(this Player player)
{
return player.GetModPlayer<DecimationPlayer>();
}
public static void EquipAccessory(this Player player, DecimationAccessory accessory)
{
player.EquipAccessory(accessory.item);
}
public static void EquipAccessory(this Player player, Item accessory)
{
player.EquipAccessory(accessory.type);
}
public static void EquipAccessory(this Player player, int item)
{
player.GetModPlayer().EquippedAccessories.Add(item);
}
public static bool HasEquippedAccessory(this Player player, int accessoryType)
{
return player.GetModPlayer().EquippedAccessories.Contains(accessoryType);
}
public static bool HasEquippedAccessory(this ModPlayer modPlayer, int accessoryType)
{
return modPlayer.player.HasEquippedAccessory(accessoryType);
}
public static bool HasEquippedAmulet(this Player player, int amuletType)
{
return player.GetModPlayer().AmuletSlotItem.type == amuletType;
}
public static bool HasEquippedShield(this Player player)
{
return ShieldID.Shields.Count(player.HasEquippedAccessory) != 0;
}
public static bool HasEquippedShield(this ModPlayer modPlayer)
{
return modPlayer.player.HasEquippedShield();
}
public static bool TeamHasEquippedAccessory(this Player player, int accessoryType)
{
for (int i = 0; i < Main.player.Length; i++)
{
Player p = Main.player[i];
if (p.active && !p.dead && p.team == player.team && p.HasEquippedAccessory(accessoryType))
{
return true;
}
}
return false;
}
public static bool TeamHasEquippedAccessory(this ModPlayer modPlayer, int accessoryType)
{
return modPlayer.player.TeamHasEquippedAccessory(accessoryType);
}
public static void LeechMana(this Player player, Entity target, int minMana = 5, int maxMana = 15)
{
int manaAmount = Main.rand.Next(minMana, maxMana + 1);
player.ManaEffect(manaAmount);
if (target.GetType() == typeof(Player))
{
((Player) target).ManaEffect(-manaAmount);
}
}
}
}