Example Armor
using CustomPlayerEffects;
using LabApi.Events.Arguments.PlayerEvents;
using LabApi.Features.Wrappers;
using MEC;
using System.Linq;
using UncomplicatedCustomItems.API.Attributes;
using UncomplicatedCustomItems.API.Features;
using UncomplicatedCustomItems.API.Features.CustomItemAPI;
using UncomplicatedCustomItems.API.ToolGun;
using UnityEngine;
namespace UncomplicatedCustomItems.Examples
{
/// <summary>
/// Example of how to make a <see cref="CustomItem"/> in C#
/// You could also use the <see cref="API.ToolGun.ToolGun"/> as a example.
/// </summary>
[PluginCustomItem]
public class ExampleCustomArmor : CustomArmor
{
/// <inheritdoc/>
public override uint Id { get; set; } = 1;
/// <inheritdoc/>
public override string Name { get; set; } = "Fast Armor";
/// <inheritdoc/>
public override string Description { get; set; } = "This will explode when you die...";
/// <inheritdoc/>
public override float Weight { get; set; } = 1.5f;
/// <inheritdoc/>
public override ItemType Item { get; set; } = ItemType.ArmorLight;
/// <inheritdoc/>
public override Vector3 Scale { get; set; } = new Vector3(1.2f, 1.2f, 1.2f);
/// <inheritdoc/>
public override bool Spawn { get; set; } = false;
/// <inheritdoc/>
public override int HeadProtection { get; set; } = 100;
/// <inheritdoc/>
public override int BodyProtection { get; set; } = 100;
/// <inheritdoc/>
public override float StaminaUseMultiplier { get; set; } = 0.1f;
/// <inheritdoc/>
public override float StaminaRegenMultiplier { get; set; } = 30f;
protected override void OnPickup(PlayerPickedUpItemEventArgs ev)
{
foreach (Item item in ev.Player.Items.ToList())
{
if (Check(item))
ev.Player.EnableEffect<MovementBoost>(20, float.MaxValue, false);
}
base.OnPickup(ev);
}
protected override void OnDropped(PlayerDroppedItemEventArgs ev)
{
foreach (Item item in ev.Player.Items.ToList())
{
if (Check(item))
ev.Player.DisableEffect<MovementBoost>();
}
base.OnDropped(ev);
}
protected override void OnDying(PlayerDyingEventArgs ev)
{
foreach (Item item in ev.Player.Items.ToList())
{
if (Check(item))
{
ev.Player.RemoveItem(item);
ExplosiveGrenadeProjectile grenade = (ExplosiveGrenadeProjectile)TimedGrenadeProjectile.SpawnActive(ev.Player.Position, ItemType.GrenadeHE, ev.Player, 0.1);
grenade.MaxRadius = 20f;
}
}
base.OnDying(ev);
}
}
}Last updated
Was this helpful?