using System.Xml; using System.Xml.Linq; using UnityEngine; // // // Dummy class to preserve backwards compatibility public class MinEventActionSpawnBabySDX : MinEventActionSpawnEntitySDX { } public class MinEventActionAddBuffToPrimaryPlayer : MinEventActionAddBuff { public override void Execute(MinEventParams _params) { if (SingletonMonoBehaviour.Instance.IsServer) return; EntityPlayer primaryPlayer = GameManager.Instance.World.GetPrimaryPlayer(); if (primaryPlayer == null) return; foreach (var name in this.buffNames) { primaryPlayer.Buffs.AddBuff(name); } } } public class MinEventActionSpawnEntitySDX : MinEventActionRemoveBuff { private string strCvar = "Mother"; private string strSpawnGroup = ""; public override void Execute(MinEventParams _params) { if (!SingletonMonoBehaviour.Instance.IsServer) return; for (var j = 0; j < targets.Count; j++) { var entity = targets[j]; if (entity) { var EntityID = entity.entityClass; // If the group is set, then use it. if (!string.IsNullOrEmpty(strSpawnGroup)) { var ClassID = 0; EntityID = EntityGroups.GetRandomFromGroup(strSpawnGroup, ref ClassID); } GameManager.Instance.World.GetRandomSpawnPositionMinMaxToPosition(entity.position, 2, 6, 2, false, out var transformPos); if (transformPos == Vector3.zero) transformPos = entity.position + Vector3.back; var NewEntity = EntityFactory.CreateEntity(EntityID, transformPos, entity.rotation) as EntityAlive; if (NewEntity) { var entityCreationData = new EntityCreationData(NewEntity); entityCreationData.id = -1; GameManager.Instance.RequestToSpawnEntityServer(entityCreationData); NewEntity.OnEntityUnload(); } else { Debug.Log(" Could not Spawn baby for: " + entity.name + " : " + entity.entityId); } } else { Debug.Log("SpawnBabySDX(): Not an EntityAlive"); } } } public override bool ParseXmlAttribute(XAttribute _attribute) { var flag = base.ParseXmlAttribute(_attribute); if (!flag) { var name = _attribute.Name; if (name != null) { if (name == "SpawnGroup") { strSpawnGroup = _attribute.Value; return true; } if (name == "Cvar") { strCvar = _attribute.Value; return true; } } } return flag; } }