AttackHand with an EventArg object for a parameter

This commit is contained in:
PrPleGoo
2019-04-05 19:27:39 +02:00
parent ee7a29326d
commit 495315565a
5 changed files with 19 additions and 14 deletions

View File

@@ -41,7 +41,7 @@ namespace Content.Server.GameObjects
base.OnRemove();
}
public bool Attackhand(IEntity user)
public bool AttackHand(AttackHandEventArgs eventArgs)
{
if (_state == DoorState.Open)
{

View File

@@ -2,10 +2,11 @@
using SS14.Server.Interfaces.GameObjects;
using Content.Shared.GameObjects;
using SS14.Shared.Interfaces.GameObjects;
using Content.Server.GameObjects.EntitySystems;
namespace Content.Server.GameObjects
{
public class ItemComponent : StoreableComponent, EntitySystems.IAttackHand
public class ItemComponent : StoreableComponent, IAttackHand
{
public override string Name => "Item";
@@ -26,9 +27,9 @@ namespace Content.Server.GameObjects
}
}
public bool Attackhand(IEntity user)
public bool AttackHand(AttackHandEventArgs eventArgs)
{
var hands = user.GetComponent<IHandsComponent>();
var hands = eventArgs.User.GetComponent<IHandsComponent>();
hands.PutInHand(this, hands.ActiveIndex, fallback: false);
return true;
}

View File

@@ -106,9 +106,9 @@ namespace Content.Server.GameObjects.Components.Power
return net.Lack > 0 ? ApcExternalPowerState.Low : ApcExternalPowerState.Good;
}
bool IAttackHand.Attackhand(IEntity user)
bool IAttackHand.AttackHand(AttackHandEventArgs eventArgs)
{
if (!user.TryGetComponent(out IActorComponent actor))
if (!eventArgs.User.TryGetComponent(out IActorComponent actor))
{
return false;
}

View File

@@ -55,16 +55,16 @@ namespace Content.Server.GameObjects.Components.Power
return InsertBulb(eventArgs.AttackWith);
}
bool IAttackHand.Attackhand(IEntity user)
bool IAttackHand.AttackHand(AttackHandEventArgs eventArgs)
{
if (user.GetComponent<InventoryComponent>().GetSlotItem(EquipmentSlotDefines.Slots.GLOVES) != null)
if (eventArgs.User.GetComponent<InventoryComponent>().GetSlotItem(EquipmentSlotDefines.Slots.GLOVES) != null)
{
EjectBulb(user);
EjectBulb(eventArgs.User);
UpdateLight();
return true;
}
if (!user.TryGetComponent(out DamageableComponent damageableComponent)) return false;
if (!eventArgs.User.TryGetComponent(out DamageableComponent damageableComponent)) return false;
damageableComponent.TakeDamage(DamageType.Heat, 20);
return true;
}

View File

@@ -30,9 +30,8 @@ namespace Content.Server.GameObjects.EntitySystems
bool AttackBy(AttackByEventArgs eventArgs);
}
public class AttackByEventArgs : EventArgs
public class AttackByEventArgs : AttackHandEventArgs
{
public IEntity User { get; set; }
public IEntity AttackWith { get; set; }
}
@@ -46,7 +45,12 @@ namespace Content.Server.GameObjects.EntitySystems
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool Attackhand(IEntity user);
bool AttackHand(AttackHandEventArgs eventArgs);
}
public class AttackHandEventArgs : EventArgs
{
public IEntity User { get; set; }
}
/// <summary>
@@ -301,7 +305,7 @@ namespace Content.Server.GameObjects.EntitySystems
for (var i = 0; i < interactables.Count; i++)
{
if (interactables[i].Attackhand(user)) //If an attackby returns a status completion we finish our attack
if (interactables[i].AttackHand(new AttackHandEventArgs { User = user})) //If an attackby returns a status completion we finish our attack
{
return;
}