D:\ValheimDev\Dumps\Old\assembly_valheim\SE_Frost.cs D:\ValheimDev\Dumps\Latest\assembly_valheim\SE_Frost.cs
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;
} }