cirnogodot/Scripts/Resources/DamageResistance.cs

40 lines
985 B
C#
Raw Permalink Normal View History

2025-03-12 22:01:45 +01:00
using System;
using Cirno.Scripts.Enums;
using Godot;
namespace Cirno.Scripts.Resources;
[GlobalClass]
[Tool]
2025-03-12 22:01:45 +01:00
public partial class DamageResistance : Resource
{
[Export]
public DamageType DamageType { get; set; } = DamageType.Neutral;
[Export]
public DamageAttribute Attribute { get; set; } = DamageAttribute.Neutral;
public float CalculateDamage(float damage, DamageType incomingDamageType)
{
if (DamageType != incomingDamageType) return 1;
switch (Attribute)
{
case DamageAttribute.Neutral:
return 1;
break;
case DamageAttribute.Resist:
return 0.5f;
break;
case DamageAttribute.Weak:
return 2;
break;
case DamageAttribute.Immune:
return 0;
break;
2025-03-18 14:36:28 +01:00
case DamageAttribute.Skip:
return 0;
2025-03-12 22:01:45 +01:00
}
return 1;
}
}