Example Weapon
using System.Collections.Generic;
using UncomplicatedCustomItems.API.Attributes;
using UncomplicatedCustomItems.API.Features;
using UnityEngine;
using InventorySystem.Items.Firearms.Attachments;
using UncomplicatedCustomItems.API.Features.CustomItemAPI;
using LabApi.Events.Arguments.PlayerEvents;
using CustomPlayerEffects;
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 ExampleCustomWeapon : CustomWeapon
{
/// <inheritdoc/>
public override uint Id { get; set; } = 1;
/// <inheritdoc/>
public override string Name { get; set; } = "Com-19";
/// <inheritdoc/>
public override string Description { get; set; } = ":D";
/// <inheritdoc/>
public override float Weight { get; set; } = 1.5f;
/// <inheritdoc/>
public override ItemType Item { get; set; } = ItemType.GunCOM18;
/// <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 float Damage { get; set; } = 4f;
/// <inheritdoc/>
public override int MaxAmmo { get; set; } = 18;
/// <inheritdoc/>
public override int MaxMagazineAmmo { get; set; } = 18;
/// <inheritdoc/>
public override int MaxBarrelAmmo { get; set; } = 1;
/// <inheritdoc/>
public override float Penetration { get; set; } = 1;
/// <inheritdoc/>
public override float Inaccuracy { get; set; } = 3;
/// <inheritdoc/>
public override float AimingInaccuracy { get; set; } = 1;
/// <inheritdoc/>
public override float DamageFalloffDistance { get; set; } = 100;
/// <inheritdoc/>
public override List<AttachmentName> Attachments { get; set; } = [AttachmentName.Flashlight];
/// <inheritdoc/>
public override bool EnableFriendlyFire { get; set; } = false;
protected override void OnHurt(PlayerHurtEventArgs ev)
{
if (!Check(ev.Attacker.CurrentItem))
return;
ev.Player.EnableEffect<Burned>(3, 6, false);
ev.Player.EnableEffect<Concussed>(3, 8, false);
base.OnHurt(ev);
}
}
}Last updated
Was this helpful?