Files
7d2dXG/Mods/zzz_REBIRTH__Utils/Scripts/MinEvents/MinEventActionInstantiateParticleEffectRebirth.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

116 lines
4.3 KiB
C#

using Audio;
using System.Xml.Linq;
public class MinEventActionInstantiateParticleEffectRebirth : MinEventActionTargetedBase
{
public override void Execute(MinEventParams _params)
{
RebirthUtilities.InstantiateParticleEffect(particleName, impactPosition, soundName, _params.Self, _params.Position);
/*Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute START");
if (particleName == "")
{
return;
}
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute particleName: " + particleName);
bool isPositionAoE = false;
if (impactPosition != "")
{
isPositionAoE = true;
}
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute isPositionAoE: " + isPositionAoE);
var entityAlive = _params.Self as EntityAlive;
if (entityAlive == null && !isPositionAoE)
{
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute 1");
return;
}
float lightBrightness = 0;
Vector3 position = entityAlive.position;
if (entityAlive != null && !isPositionAoE)
{
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute 2");
position = entityAlive.position;
}
else if (isPositionAoE)
{
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute 3");
position = _params.Position;
}
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute position: " + position);
lightBrightness = entityAlive.world.GetLightBrightness(new Vector3i(position.x, position.y, position.z));
bool isAvailable = ParticleEffect.IsAvailable(particleName);
if (!isAvailable)
{
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute 4");
ParticleEffect.LoadAsset(particleName);
}
ParticleEffect particleEffect = new ParticleEffect(particleName, position, lightBrightness, Color.white, null, null, false);
particleEffect.ParticleId = ParticleEffect.ToId(particleName);
if (soundName != "")
{
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute soundName: " + soundName);
Manager.BroadcastPlayByLocalPlayer(position, soundName);
}
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute particleName: " + particleName + " / id: " + particleName.GetHashCode());
Log.Out("MinEventActionInstantiateParticleEffectRebirth-Execute _params.Self.entityId: " + _params.Self.entityId);
entityAlive.world.GetGameManager().SpawnParticleEffectServer(particleEffect, _params.Self.entityId, false, true);*/
}
public override bool ParseXmlAttribute(XAttribute _attribute)
{
//Log.Out("MinEventActionInstantiateParticleEffectRebirth-ParseXmlAttribute START");
bool flag = base.ParseXmlAttribute(_attribute);
if (!flag)
{
string localName = _attribute.Name.LocalName;
if (localName == "particleName")
{
particleName = _attribute.Value;
//Log.Out("MinEventActionInstantiateParticleEffectRebirth-ParseXmlAttribute particleName: " + particleName);
return true;
}
if (localName == "soundName")
{
soundName = _attribute.Value;
//Log.Out("MinEventActionInstantiateParticleEffectRebirth-ParseXmlAttribute soundName: " + soundName);
return true;
}
if (localName == "impactPosition")
{
impactPosition = _attribute.Value;
//Log.Out("MinEventActionInstantiateParticleEffectRebirth-ParseXmlAttribute soundName: " + soundName);
return true;
}
if (localName == "buffName")
{
buffName = _attribute.Value;
//Log.Out("MinEventActionInstantiateParticleEffectRebirth-ParseXmlAttribute soundName: " + soundName);
return true;
}
}
return flag;
}
protected string particleName = "";
protected string soundName = "";
protected string impactPosition = "";
protected string buffName = "";
}