Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_BayonetEffectComponent.c
Go to the documentation of this file.
1class SCR_BayonetEffectComponentClass : SCR_ImpactEffectComponentClass
2{
3}
4
5class SCR_BayonetEffectComponent : SCR_ImpactEffectComponent
6{
7 //------------------------------------------------------------------------------------------------
8 override void OnImpact(notnull IEntity other, float impulse, vector impactPosition, vector impactNormal, GameMaterial mat, vector velocityBefore = vector.Zero, vector velocityAfter = vector.Zero)
9 {
10 vector transform[4];
11 Math3D.MatrixFromUpVec(impactNormal, transform);
12 transform[3] = impactPosition;
13
14 GameMaterial material = mat;
15 HitEffectInfo effectInfo = material.GetHitEffectInfo();
16 ResourceName resourceName = effectInfo.GetBayonetHitParticleEffect();
17
18 if (resourceName.IsEmpty())
20
21 EmitParticles(transform, resourceName);
22 Rpc(RPC_OnImpactParticlesBroadcast, impactPosition, impactNormal, 0);
23 }
24
25 //------------------------------------------------------------------------------------------------
26 [RplRpc(RplChannel.Unreliable, RplRcver.Broadcast)]
27 override protected void RPC_OnImpactParticlesBroadcast(vector contactPos, vector contactNormal, int magnitude)
28 {
29 vector transform[4];
30 Math3D.MatrixFromUpVec(contactNormal, transform);
31 transform[3] = contactPos;
32
33 TraceParam trace = new TraceParam();
34 trace.Start = contactPos + contactNormal;
35 trace.End = contactPos - contactNormal;
36 trace.Flags = TraceFlags.WORLD | TraceFlags.ENTS;
37
38 GetOwner().GetWorld().TraceMove(trace, TraceFilter);
39
40 GameMaterial contactMat = trace.SurfaceProps;
41 HitEffectInfo effectInfo = contactMat.GetHitEffectInfo();
42 ResourceName resourceName = effectInfo.GetBayonetHitParticleEffect();
43
44 if (resourceName.IsEmpty())
45 resourceName = GetDefaultParticles()[magnitude];
46
47 EmitParticles(transform, resourceName);
48 }
49}
50
ResourceName resourceName
Definition SCR_AIGroup.c:66
void RPC_OnImpactParticlesBroadcast(vector contactPos, vector contactNormal, int magnitude)
SCR_DestructibleTreeV2Class impulse
bool TraceFilter(notnull IEntity e)
void Rpc(func method, void p0=NULL, void p1=NULL, void p2=NULL, void p3=NULL, void p4=NULL, void p5=NULL, void p6=NULL, void p7=NULL)
proto external BaseWorld GetWorld()
array< ResourceName > GetDefaultParticles()
void EmitParticles(vector transform[4], ResourceName particleResource)
void OnImpact(notnull IEntity other, float impulse, vector impactPosition, vector impactNormal, GameMaterial mat, vector velocityBefore=vector.Zero, vector velocityAfter=vector.Zero)
void RPC_OnImpactParticlesBroadcast(vector contactPos, vector contactNormal, int magnitude)
proto external GenericEntity GetOwner()
Get owner entity.
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
Definition EnNetwork.c:95
RplRcver
Definition RplRcver.c:59
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.
Definition RplChannel.c:14
TraceFlags
Definition TraceFlags.c:13