| using System; |
| using System; |
| using UnityEngine; |
| using UnityEngine; |
| |
| |
| public class SE_Frost : StatusEffect |
| public class SE_Frost : StatusEffect |
| { |
| { |
| public override void UpdateStatusEffect(float dt) |
| public override void UpdateStatusEffect(float dt) |
| { |
| { |
| base.UpdateStatusEffect(dt); |
| base.UpdateStatusEffect(dt); |
| } |
| } |
| |
| |
| public void AddDamage(float damage) |
| public void AddDamage(float damage) |
| { |
| { |
| float num = (this.m_character.IsPlayer() ? this.m_freezeTimePlayer : this.m_freezeTimeEnemy); |
| float num = (this.m_character.IsPlayer() ? this.m_freezeTimePlayer : this.m_freezeTimeEnemy); |
| float num2 = Mathf.Clamp01(damage / this.m_character.GetMaxHealth()) * num; |
| float num2 = Mathf.Clamp01(damage / this.m_character.GetMaxHealth()) * num; |
| float num3 = this.m_ttl - this.m_time; |
| float num3 = this.m_ttl - this.m_time; |
| if (num2 > num3) |
| if (num2 > num3) |
| { |
| { |
| this.m_ttl = num2; |
| this.m_ttl = num2; |
| this.ResetTime(); |
| this.ResetTime(); |
| base.TriggerStartEffects(); |
| base.TriggerStartEffects(); |
| } |
| } |
| } |
| } |
| |
| |
| . | public override void ModifySpeed(float baseSpeed, ref float speed) |
| public override void ModifySpeed(float baseSpeed, ref float speed, Character character, Vector3 dir) |
| { |
| { |
| . | |
| HitData.DamageModifiers damageModifiers = character.GetDamageModifiers(null); |
| |
| if (damageModifiers.m_frost == HitData.DamageModifier.Resistant || damageModifiers.m_frost == HitData.DamageModifier.VeryResistant || damageModifiers.m_frost == HitData.DamageModifier.Immune) |
| |
| { |
| |
| return; |
| |
| } |
| float num = Mathf.Clamp01(this.m_time / this.m_ttl); |
| float num = Mathf.Clamp01(this.m_time / this.m_ttl); |
| num = Mathf.Pow(num, 2f); |
| num = Mathf.Pow(num, 2f); |
| speed -= baseSpeed * Mathf.Lerp(1f - this.m_minSpeedFactor, 0f, num); |
| speed -= baseSpeed * Mathf.Lerp(1f - this.m_minSpeedFactor, 0f, num); |
| if (speed < 0f) |
| if (speed < 0f) |
| { |
| { |
| speed = 0f; |
| speed = 0f; |
| } |
| } |
| } |
| } |
| |
| |
| [Header("SE_Frost")] |
| [Header("SE_Frost")] |
| public float m_freezeTimeEnemy = 10f; |
| public float m_freezeTimeEnemy = 10f; |
| |
| |
| public float m_freezeTimePlayer = 10f; |
| public float m_freezeTimePlayer = 10f; |
| |
| |
| public float m_minSpeedFactor = 0.1f; |
| public float m_minSpeedFactor = 0.1f; |
| } |
| } |
| |
| |