internal static bool InitializeMiniAsEffect(CreatureBoardAsset creatureAsset, string effectName = null, string newCreatureName = null) { //Log.Indent($"InitializeMiniAsEffect({creatureAsset.CreatureId}, \"{effectName}\", \"{newCreatureName}\")"); try { if (effectName == null) { effectName = "R1.WaterWallSegment1"; } IOldPersistentEffect persistentEffect = creatureAsset.GetPersistentEffect(); if (persistentEffect == null) { Log.Error($"Error - persistentEffect == null (not found by call to GetPersistentEffect() on \"{creatureAsset.GetOnlyCreatureName()}\")."); persistentEffect = new SuperPersistentEffect(); if (persistentEffect is SuperPersistentEffect superPersistentEffect) { superPersistentEffect.EffectProperties.Add(new EffectProperties() { EffectName = effectName }); } } return(InitializeMiniFromPersistentEffect(creatureAsset, persistentEffect, newCreatureName)); } finally { //Log.Unindent(); } }
private static void TransferPropertiesToPersistentEffect(CompositeEffect compositeEffect, SuperPersistentEffect superPersistentEffect) { if (compositeEffect == null) { return; } superPersistentEffect.VisibilityMatchesBase = compositeEffect.VisibilityMatchesBase; if (compositeEffect.Scripts != null) { Log.Warning($"Found a composite effect with scripts!"); foreach (string script in compositeEffect.Scripts) { if (!superPersistentEffect.ScriptData.ContainsKey(script)) { Log.Warning($"Adding Script \"{script}\" with empty Data!!!"); superPersistentEffect.ScriptData[script] = ""; } } } }