Skip to content

Commit 77cfb6d

Browse files
committed
Remove hit-reacts when shooting friendly target
1 parent 6a64dec commit 77cfb6d

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

Assets/BossRoom/Scripts/Client/Game/Action/FXProjectileTargetedActionFX.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,16 @@ private NetworkObject GetTarget()
102102
return null;
103103
}
104104

105-
NetworkObject obj;
106-
if (NetworkSpawnManager.SpawnedObjects.TryGetValue(Data.TargetIds[0], out obj) && obj != null)
105+
if (NetworkSpawnManager.SpawnedObjects.TryGetValue(Data.TargetIds[0], out NetworkObject targetObject) && targetObject != null)
107106
{
108-
return obj;
107+
// make sure this isn't a friend (or if it is, make sure this is a friendly-fire action)
108+
var targetable = targetObject.GetComponent<ITargetable>();
109+
if (targetable != null && targetable.IsNpc == (Description.IsFriendly ^ IsParentAnNPC()))
110+
{
111+
// not a valid target
112+
return null;
113+
}
114+
return targetObject;
109115
}
110116
else
111117
{
@@ -115,6 +121,16 @@ private NetworkObject GetTarget()
115121
}
116122
}
117123

124+
/// <summary>
125+
/// Determines if the character playing this Action is an NPC (as opposed to a player)
126+
/// </summary>
127+
private bool IsParentAnNPC()
128+
{
129+
var targetable = m_Parent.Parent.GetComponent<ITargetable>();
130+
return targetable.IsNpc;
131+
}
132+
133+
118134
private FXProjectile SpawnAndInitializeProjectile()
119135
{
120136
GameObject projectileGO = Object.Instantiate(Description.Projectiles[0].ProjectilePrefab, m_Parent.transform.position, m_Parent.transform.rotation, null);

0 commit comments

Comments
 (0)