D:\ValheimDev\Dumps\Old\assembly_valheim\SE_Burning.cs D:\ValheimDev\Dumps\Latest\assembly_valheim\SE_Burning.cs
using System; using System;
using UnityEngine; using UnityEngine;
   
public class SE_Burning : StatusEffect public class SE_Burning : StatusEffect
{ {
    public override void Setup(Character character)     public override void Setup(Character character)
    {     {
        base.Setup(character);         base.Setup(character);
    }     }
   
    public override void UpdateStatusEffect(float dt)     public override void UpdateStatusEffect(float dt)
    {     {
        base.UpdateStatusEffect(dt);         base.UpdateStatusEffect(dt);
.        if (this.m_fireDamageLeft > 0f && this.m_character.GetSEMan().HaveStatusEffect("Wet"))         if (this.m_fireDamageLeft > 0f && this.m_character.GetSEMan().HaveStatusEffect(SEMan.s_statusEffectWet))
        {         {
            this.m_time += dt * 5f;             this.m_time += dt * 5f;
        }         }
        this.m_timer -= dt;         this.m_timer -= dt;
        if (this.m_timer <= 0f)         if (this.m_timer <= 0f)
        {         {
            this.m_timer = this.m_damageInterval;             this.m_timer = this.m_damageInterval;
            HitData hitData = new HitData();             HitData hitData = new HitData();
            hitData.m_point = this.m_character.GetCenterPoint();             hitData.m_point = this.m_character.GetCenterPoint();
            hitData.m_damage.m_fire = this.m_fireDamagePerHit;             hitData.m_damage.m_fire = this.m_fireDamagePerHit;
            hitData.m_damage.m_spirit = this.m_spiritDamagePerHit;             hitData.m_damage.m_spirit = this.m_spiritDamagePerHit;
            hitData.m_hitType = HitData.HitType.Burning;             hitData.m_hitType = HitData.HitType.Burning;
            this.m_fireDamageLeft = Mathf.Max(0f, this.m_fireDamageLeft - this.m_fireDamagePerHit);             this.m_fireDamageLeft = Mathf.Max(0f, this.m_fireDamageLeft - this.m_fireDamagePerHit);
            this.m_spiritDamageLeft = Mathf.Max(0f, this.m_spiritDamageLeft - this.m_spiritDamagePerHit);             this.m_spiritDamageLeft = Mathf.Max(0f, this.m_spiritDamageLeft - this.m_spiritDamagePerHit);
            this.m_character.ApplyDamage(hitData, true, false, HitData.DamageModifier.Normal);             this.m_character.ApplyDamage(hitData, true, false, HitData.DamageModifier.Normal);
.              this.m_tickEffect.Create(this.m_character.transform.position, this.m_character.transform.rotation, null, 1f, -1);
        }         }
    }     }
   
    public bool AddFireDamage(float damage)     public bool AddFireDamage(float damage)
    {     {
        int num = (int)(this.m_ttl / this.m_damageInterval);         int num = (int)(this.m_ttl / this.m_damageInterval);
        if (damage / (float)num < 0.2f && this.m_fireDamageLeft == 0f)         if (damage / (float)num < 0.2f && this.m_fireDamageLeft == 0f)
        {         {
            return false;             return false;
        }         }
        this.m_fireDamageLeft += damage;         this.m_fireDamageLeft += damage;
        this.m_fireDamagePerHit = this.m_fireDamageLeft / (float)num;         this.m_fireDamagePerHit = this.m_fireDamageLeft / (float)num;
        this.ResetTime();         this.ResetTime();
        return true;         return true;
    }     }
   
    public bool AddSpiritDamage(float damage)     public bool AddSpiritDamage(float damage)
    {     {
        int num = (int)(this.m_ttl / this.m_damageInterval);         int num = (int)(this.m_ttl / this.m_damageInterval);
        if (damage / (float)num < 0.2f && this.m_spiritDamageLeft == 0f)         if (damage / (float)num < 0.2f && this.m_spiritDamageLeft == 0f)
        {         {
            return false;             return false;
        }         }
        this.m_spiritDamageLeft += damage;         this.m_spiritDamageLeft += damage;
        this.m_spiritDamagePerHit = this.m_spiritDamageLeft / (float)num;         this.m_spiritDamagePerHit = this.m_spiritDamageLeft / (float)num;
        this.ResetTime();         this.ResetTime();
        return true;         return true;
    }     }
   
    [Header("SE_Burning")]     [Header("SE_Burning")]
    public float m_damageInterval = 1f;     public float m_damageInterval = 1f;
   
    private float m_timer;     private float m_timer;
   
    private float m_fireDamageLeft;     private float m_fireDamageLeft;
   
    private float m_fireDamagePerHit;     private float m_fireDamagePerHit;
   
    private float m_spiritDamageLeft;     private float m_spiritDamageLeft;
   
    private float m_spiritDamagePerHit;     private float m_spiritDamagePerHit;
.   
      public EffectList m_tickEffect = new EffectList();
   
    private const float m_minimumDamageTick = 0.2f;     private const float m_minimumDamageTick = 0.2f;
} }