From 71db52c5443a7bf82d9a23a770994a42b043be04 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Thu, 27 Jul 2023 22:11:31 +0100 Subject: Initial commit --- code/entity/DroppedWeapon.cs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 code/entity/DroppedWeapon.cs (limited to 'code/entity') diff --git a/code/entity/DroppedWeapon.cs b/code/entity/DroppedWeapon.cs new file mode 100644 index 0000000..f0cad67 --- /dev/null +++ b/code/entity/DroppedWeapon.cs @@ -0,0 +1,39 @@ +using MurderGame; +using Sandbox; +using System; + +public partial class DroppedWeapon : AnimatedEntity +{ + public int Ammo { get; set; } + public Type WeaponType { get; set; } + + public DroppedWeapon(Weapon weapon) : this() + { + Ammo = weapon.Ammo; + WeaponType = weapon.GetType(); + } + + public DroppedWeapon() + { + Tags.Add("droppedweapon"); + PhysicsEnabled = true; + UsePhysicsCollision = true; + EnableSelfCollisions = true; + EnableSolidCollisions = true; + } + + public override void StartTouch( Entity other ) + { + if ( !Game.IsServer ) return; + if ( !other.Tags.Has( "livingplayer" ) ) return; + + MurderGame.Player player = (MurderGame.Player)other; + + if ( player.Inventory == null || player.Inventory.PrimaryWeapon != null || !player.Inventory.AllowPickup) return; + + Weapon instance = TypeLibrary.Create( WeaponType ); + instance.Ammo = Ammo; + player.Inventory.SetPrimaryWeapon( instance ); + Delete(); + } +} -- cgit v1.2.3-70-g09d2