public void Clear()
 {
     DestroyAll();
     m_objectsCount     = 0;
     m_parent           = null;
     m_effectDefinition = null;
 }
 public IEnumerator Launch(IObjectWithCounterEffects parent, FloatingCounterEffect effect, int count)
 {
     m_parent           = parent;
     m_effectDefinition = effect;
     m_objectsCount     = count;
     return(SpawnCoroutine());
 }
        private IEnumerator SpawnCoroutine()
        {
            FloatingCounterEffect effectDefinition = m_effectDefinition;
            float radius = effectDefinition.radius;
            float height = effectDefinition.height;
            FloatingCounterFloatingObject floatingObject = effectDefinition.floatingObject;
            float   startingAnimationDuration            = effectDefinition.startingAnimationDuration;
            float   num      = MathF.PI * 2f / (float)m_objectsCount;
            Vector3 position = default(Vector3);

            position._002Ector(0f, 0f, 0f);
            Reposition();
            for (int i = m_floatingObjects.Count; i < m_objectsCount; i++)
            {
                float num2 = num * (float)i;
                position.x = Mathf.Cos(num2) * radius;
                position.z = Mathf.Sin(num2) * radius;
                position.y = height;
                FloatingCounterFloatingObject floatingCounterFloatingObject = Object.Instantiate <FloatingCounterFloatingObject>(floatingObject, this.get_transform());
                m_floatingObjects.Add(floatingCounterFloatingObject);
                floatingCounterFloatingObject.Spawn(position, startingAnimationDuration, num2, radius);
            }
            Object.Instantiate <VisualEffect>(effectDefinition.spawnFX, this.get_transform().get_position() + effectDefinition.spawnFXOffset, Quaternion.get_identity());
            effectDefinition.PlaySound(this.get_transform());
            yield return((object)new WaitForTime(startingAnimationDuration));
        }
Ejemplo n.º 4
0
        public IEnumerator ChangeFloatingCounterEffect(FloatingCounterEffect floatingCounterEffect)
        {
            if (m_currentFloatingCounterFeedback != null && m_currentFloatingCounterFeedback.effect != floatingCounterEffect)
            {
                int count = m_currentFloatingCounterFeedback.objectsCount;
                yield return(RemoveFloatingCounterEffect());

                yield return(InitializeFloatingCounterEffect(floatingCounterEffect, count));
            }
        }
 public void ChangeVisual(FloatingCounterEffect effect)
 {
     if (!(effect == m_effectDefinition))
     {
         m_effectDefinition = effect;
         if (m_objectsCount > 0)
         {
             DestroyAll();
             this.StartCoroutine(SpawnCoroutine());
         }
     }
 }
Ejemplo n.º 6
0
        public IEnumerator InitializeFloatingCounterEffect(FloatingCounterEffect floatingCounterEffect, int value)
        {
            if (null != m_currentFloatingCounterFeedback)
            {
                Log.Warning("InitializeFloatingCounterEffect called on " + base.GetType().Name + " named " + this.get_name() + " but a floating counter feedback is already attached.", 662, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Maps\\Objects\\CharacterObject.cs");
            }
            FloatingCounterFeedback floatingCounterFeedback = FightSpellEffectFactory.InstantiateFloatingCounterFeedback(m_attachableEffectsContainer);

            if (!(null == floatingCounterFeedback))
            {
                m_currentFloatingCounterFeedback = floatingCounterFeedback;
                yield return(floatingCounterFeedback.Launch(this, floatingCounterEffect, value));
            }
        }
 public static bool TryGetFloatingCounterEffect(CaracId counterId, PropertyId?propertyId, out FloatingCounterEffect floatingEffectCounter)
 {
     if (counterId == CaracId.FloatingCounterSight && propertyId.HasValue)
     {
         return(s_sightEffectCache.TryGetValue(propertyId.Value, out floatingEffectCounter));
     }
     return(s_floatingCounterEffectCache.TryGetValue(counterId, out floatingEffectCounter));
 }