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