Пример #1
0
            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();
                }
            }
Пример #2
0
            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] = "";
                        }
                    }
                }
            }