Exemplo n.º 1
0
            private static GameObject GetEffect(string effectName, string spellId = "", bool isMoveable = false)
            {
                GameObject result;

                if (isMoveable)
                {
                    result = Instances.GetMoveableSpell(spellId, effectName);
                    if (result == null)
                    {
                        Log.Error($"Moveable spell {spellId}.{effectName} not found!");
                    }
                    else
                    {
                        Log.Warning($"Moveable spell {spellId}.{effectName} FOUND!");
                        return(result);
                    }
                }

                string prefabName = Effects.GetIndividualEffectName(EffectParameters.GetEffectNameOnly(effectName));

                Log.Debug($"GetEffect() - prefabName = \"{prefabName}\"");
                if (Prefabs.Has(prefabName))
                {
                    Log.Debug($"Cloning...");
                    result = Prefabs.Clone(effectName);
                }
                else
                {
                    Log.Debug($"CompositeEffect.CreateKnownEffect(\"{effectName}\")");
                    result = CompositeEffect.CreateKnownEffect(effectName);
                }

                PrepareEffect(result);
                return(result);
            }
Exemplo n.º 2
0
            static void ShowHealth(string creatureId, int healthAmount, string effectName)
            {
                CreatureBoardAsset creatureAsset = GetCreatureBoardAsset(creatureId);

                if (creatureAsset == null)
                {
                    Log.Error($"AddHitPoints - creatureId {creatureId} not found.");
                    return;
                }

                GameObject heal = CompositeEffect.CreateKnownEffect(effectName);

                heal.transform.position = creatureAsset.transform.position;
                float scale = creatureAsset.CreatureScale / 2.0f;

                heal.transform.localScale = new Vector3(scale, scale, scale);
                Property.Modify(heal, "ParticlesHeal", "<ParticleSystem>.startSize", 0.4f * creatureAsset.CreatureScale);
                Property.Modify(heal, "ParticlesHealPlus", "<ParticleSystem>.startSize", 0.3f * creatureAsset.CreatureScale);

                float lifetimeSeconds     = Math.Max(5f, Math.Min(healthAmount, 16f));
                float particleFadeOutTime = Math.Max(lifetimeSeconds / 2f, 3f);

                Instances.AddTemporal(heal, lifetimeSeconds, particleFadeOutTime);
            }