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)); }
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()); } } }
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)); }