using PSO2SERVER.Protocol.Packets; using PSO2SERVER.Zone; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PSO2SERVER.Models { // Class to represent PlayerStats public class BattlePlayerStats { public uint MaxHp { get; set; } = 0; public uint Hp { get; set; } = 0; public uint Dex { get; set; } = 0; public uint BaseMelPwr { get; set; } = 0; public uint WeaponMelPwr { get; set; } = 0; public uint BaseRngPwr { get; set; } = 0; public uint WeaponRngPwr { get; set; } = 0; public uint BaseTecPwr { get; set; } = 0; public uint WeaponTecPwr { get; set; } = 0; public uint BaseMelDef { get; set; } = 0; public uint BaseRngDef { get; set; } = 0; public uint BaseTecDef { get; set; } = 0; // Constructor to initialize with default values public BattlePlayerStats() { } } // Class to represent EnemyStats public class BattleEnemyStats { public string Name { get; set; } = string.Empty; public uint Level { get; set; } = 0; public uint Exp { get; set; } = 0; public PSOLocation Pos { get; set; } = new PSOLocation(); public uint MaxHp { get; set; } = 0; public uint Hp { get; set; } = 0; public uint Dex { get; set; } = 0; public uint MaxMelPwr { get; set; } = 0; public uint MinMelPwr { get; set; } = 0; public uint MaxRngPwr { get; set; } = 0; public uint MinRngPwr { get; set; } = 0; public uint MaxTecPwr { get; set; } = 0; public uint MinTecPwr { get; set; } = 0; public uint MelDef { get; set; } = 0; public uint RngDef { get; set; } = 0; public uint TecDef { get; set; } = 0; public List Hitboxes { get; set; } = new List(); // Constructor to initialize with default values public BattleEnemyStats() { } } // Enum to represent the BattleResult type public enum BattleResultType { Damaged, Killed } // Class to represent the BattleResult public class BattleResult { public BattleResultType ResultType { get; set; } public DamageReceivePacket DmgPacket { get; set; } public EnemyKilledPacket KillPacket { get; set; } public uint ExpAmount { get; set; } // Constructor for Damaged result public BattleResult(DamageReceivePacket dmgPacket) { ResultType = BattleResultType.Damaged; DmgPacket = dmgPacket; } // Constructor for Killed result public BattleResult(DamageReceivePacket dmgPacket, EnemyKilledPacket killPacket, uint expAmount) { ResultType = BattleResultType.Killed; DmgPacket = dmgPacket; KillPacket = killPacket; ExpAmount = expAmount; } } }