summaryrefslogtreecommitdiff
path: root/Valheim_r202102_v0.141.2/Valheim/assembly_valheim/SE_Burning.cs
blob: c49db65b64005be48a99b1ccb7d986e514c929b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using UnityEngine;

public class SE_Burning : StatusEffect
{
	[Header("SE_Burning")]
	public float m_damageInterval = 1f;

	private float m_timer;

	private float m_totalDamage;

	private HitData.DamageTypes m_damage;

	public override void Setup(Character character)
	{
		base.Setup(character);
	}

	public override void UpdateStatusEffect(float dt)
	{
		base.UpdateStatusEffect(dt);
		if (m_character.GetSEMan().HaveStatusEffect("Wet"))
		{
			m_time += dt * 5f;
		}
		m_timer -= dt;
		if (m_timer <= 0f)
		{
			m_timer = m_damageInterval;
			HitData hitData = new HitData();
			hitData.m_point = m_character.GetCenterPoint();
			hitData.m_damage = m_damage.Clone();
			m_character.ApplyDamage(hitData, showDamageText: true, triggerEffects: false);
		}
	}

	public void AddFireDamage(float damage)
	{
		m_totalDamage = Mathf.Max(m_totalDamage, damage);
		int num = (int)(m_ttl / m_damageInterval);
		float fire = m_totalDamage / (float)num;
		m_damage.m_fire = fire;
		ResetTime();
	}

	public void AddSpiritDamage(float damage)
	{
		m_totalDamage = Mathf.Max(m_totalDamage, damage);
		int num = (int)(m_ttl / m_damageInterval);
		float spirit = m_totalDamage / (float)num;
		m_damage.m_spirit = spirit;
		ResetTime();
	}
}