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(); base.OnRemove();
} }
public bool Attackhand(IEntity user) public bool AttackHand(AttackHandEventArgs eventArgs)
{ {
if (_state == DoorState.Open) if (_state == DoorState.Open)
{ {

View File

@@ -2,10 +2,11 @@
using SS14.Server.Interfaces.GameObjects; using SS14.Server.Interfaces.GameObjects;
using Content.Shared.GameObjects; using Content.Shared.GameObjects;
using SS14.Shared.Interfaces.GameObjects; using SS14.Shared.Interfaces.GameObjects;
using Content.Server.GameObjects.EntitySystems;
namespace Content.Server.GameObjects namespace Content.Server.GameObjects
{ {
public class ItemComponent : StoreableComponent, EntitySystems.IAttackHand public class ItemComponent : StoreableComponent, IAttackHand
{ {
public override string Name => "Item"; 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); hands.PutInHand(this, hands.ActiveIndex, fallback: false);
return true; return true;
} }

View File

@@ -106,9 +106,9 @@ namespace Content.Server.GameObjects.Components.Power
return net.Lack > 0 ? ApcExternalPowerState.Low : ApcExternalPowerState.Good; 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; return false;
} }

View File

@@ -55,16 +55,16 @@ namespace Content.Server.GameObjects.Components.Power
return InsertBulb(eventArgs.AttackWith); 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(); UpdateLight();
return true; return true;
} }
if (!user.TryGetComponent(out DamageableComponent damageableComponent)) return false; if (!eventArgs.User.TryGetComponent(out DamageableComponent damageableComponent)) return false;
damageableComponent.TakeDamage(DamageType.Heat, 20); damageableComponent.TakeDamage(DamageType.Heat, 20);
return true; return true;
} }

View File

@@ -30,9 +30,8 @@ namespace Content.Server.GameObjects.EntitySystems
bool AttackBy(AttackByEventArgs eventArgs); bool AttackBy(AttackByEventArgs eventArgs);
} }
public class AttackByEventArgs : EventArgs public class AttackByEventArgs : AttackHandEventArgs
{ {
public IEntity User { get; set; }
public IEntity AttackWith { get; set; } public IEntity AttackWith { get; set; }
} }
@@ -46,7 +45,12 @@ namespace Content.Server.GameObjects.EntitySystems
/// </summary> /// </summary>
/// <param name="user"></param> /// <param name="user"></param>
/// <returns></returns> /// <returns></returns>
bool Attackhand(IEntity user); bool AttackHand(AttackHandEventArgs eventArgs);
}
public class AttackHandEventArgs : EventArgs
{
public IEntity User { get; set; }
} }
/// <summary> /// <summary>
@@ -301,7 +305,7 @@ namespace Content.Server.GameObjects.EntitySystems
for (var i = 0; i < interactables.Count; i++) 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; return;
} }