Files
Cielonos/Assets/Scripts/MainGame/AttackArea/AttackInfo/AttackInfo.cs

82 lines
2.4 KiB
C#
Raw Normal View History

2025-11-25 08:19:33 -05:00
using System;
2025-12-08 05:27:53 -05:00
using System.Collections.Generic;
using System.Linq;
2026-01-03 18:19:39 -05:00
using Cielonos.MainGame.Characters;
2026-02-13 09:22:11 -05:00
using SLSUtilities.General;
2025-11-25 08:19:33 -05:00
using SLSUtilities.FunctionalAnimation;
using UnityEngine;
namespace Cielonos.MainGame
{
public enum AttackType
{
Energy = 1,
2026-02-13 09:22:11 -05:00
Kinetics = 2,
2025-11-25 08:19:33 -05:00
Explosion = 3,
Magic = 4,
Elemental = 5,
Pure = 6
}
public enum BreakthroughType
{
None = 0,
Weak = 10,
Medium = 20,
Heavy = 30,
2025-12-08 05:27:53 -05:00
Disruption = 40,
Forced = 50,
Unstoppable = 100 // 不可用于攻击,只能用于防御状态,表示无法被打断
}
public static class Breakthrough
{
2026-02-13 09:22:11 -05:00
public static readonly List<BreakthroughType> Types = new List<BreakthroughType>()
2025-12-08 05:27:53 -05:00
{
BreakthroughType.None,
BreakthroughType.Weak,
BreakthroughType.Medium,
BreakthroughType.Heavy,
BreakthroughType.Disruption,
BreakthroughType.Forced,
BreakthroughType.Unstoppable
};
public static List<BreakthroughType> GetLowerTypes(BreakthroughType type)
{
return Types.Where(t => t < type).ToList();
}
public static List<BreakthroughType> GetHigherTypes(BreakthroughType type)
{
return Types.Where(t => t > type).ToList();
}
2025-11-25 08:19:33 -05:00
}
public class AttackValue : ICloneable<AttackValue>
{
2026-01-03 18:19:39 -05:00
public CharacterBase attacker;
2025-11-25 08:19:33 -05:00
public bool isCritical;
public float damage;
public AttackType attackType;
public BreakthroughType breakthroughType;
public DisruptionType disruptionType;
2026-01-03 18:19:39 -05:00
public AttackValue(CharacterBase attacker, bool isCritical, float damage, AttackType attackType,
2025-11-25 08:19:33 -05:00
DisruptionType disruptionType = DisruptionType.None, BreakthroughType breakthroughType = BreakthroughType.None)
{
2026-01-03 18:19:39 -05:00
this.attacker = attacker;
2025-11-25 08:19:33 -05:00
this.isCritical = isCritical;
this.damage = damage;
this.attackType = attackType;
this.disruptionType = disruptionType;
this.breakthroughType = breakthroughType;
}
public AttackValue Clone()
{
2026-01-03 18:19:39 -05:00
return new AttackValue(attacker, isCritical, damage, attackType, disruptionType, breakthroughType);
2025-11-25 08:19:33 -05:00
}
}
}