server-master/srcs/WingsAPI.Game/Characters/IPlayerEntity.cs
2026-02-10 18:21:30 +01:00

250 lines
No EOL
9.7 KiB
C#

using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using WingsAPI.Data.Character;
using WingsAPI.Data.Miniland;
using WingsEmu.DTOs.Account;
using WingsEmu.DTOs.Bonus;
using WingsEmu.DTOs.Buffs;
using WingsEmu.DTOs.Inventory;
using WingsEmu.DTOs.Mates;
using WingsEmu.DTOs.Quests;
using WingsEmu.DTOs.Quicklist;
using WingsEmu.DTOs.Skills;
using WingsEmu.DTOs.Titles;
using WingsEmu.Game._enum;
using WingsEmu.Game.Buffs;
using WingsEmu.Game.Cheats;
using WingsEmu.Game.Entities;
using WingsEmu.Game.EntityStatistics;
using WingsEmu.Game.Exchange;
using WingsEmu.Game.Families;
using WingsEmu.Game.Groups;
using WingsEmu.Game.Inventory;
using WingsEmu.Game.Mails;
using WingsEmu.Game.Managers;
using WingsEmu.Game.Maps;
using WingsEmu.Game.Mates;
using WingsEmu.Game.Networking;
using WingsEmu.Game.Quests;
using WingsEmu.Game.Quicklist;
using WingsEmu.Game.Raids;
using WingsEmu.Game.RainbowBattle;
using WingsEmu.Game.Relations;
using WingsEmu.Game.RespawnReturn;
using WingsEmu.Game.Revival;
using WingsEmu.Game.Shops;
using WingsEmu.Game.Skills;
using WingsEmu.Game.SnackFood;
using WingsEmu.Game.Specialists;
using WingsEmu.Game.TimeSpaces;
using WingsEmu.Packets.Enums;
using WingsEmu.Packets.Enums.Character;
namespace WingsEmu.Game.Characters;
public interface IPlayerEntity : IBattleEntity, IEquipmentOptionContainer, IQuestContainer, ICharacterRevivalComponent, IFamilyComponent, IComboSkillComponent, ISkillCooldownComponent,
IAngelElementBuffComponent, IScoutComponent, IRelationComponent, IGroupComponent, IInventoryComponent, IExchangeComponent, IBubbleComponent, IPartnerInventoryComponent,
IRaidComponent, IFoodSnackComponent
{
int AdditionalHp { get; set; }
int AdditionalMp { get; set; }
bool TriggerAmbush { get; set; }
DateTime LastMapChange { get; set; }
DateTime? LastSkillCombo { get; set; }
AuthorityType Authority { get; set; }
int CurrentMinigame { get; set; }
int SecondDamageMinimum { get; }
int SecondDamageMaximum { get; }
int HitRate { get; }
int HitCriticalChance { get; }
int HitCriticalDamage { get; }
int SecondHitRate { get; }
int SecondHitCriticalChance { get; }
int SecondHitCriticalDamage { get; }
int MeleeDefence { get; }
int RangedDefence { get; }
int MagicDefence { get; }
int MeleeDodge { get; }
int RangedDodge { get; }
int SpecialistElementRate { get; }
DateTime GameStartDate { get; set; }
bool HasShopOpened { get; set; }
bool Invisible { get; }
bool IsCustomSpeed { get; set; }
bool IsShopping { get; set; }
bool IsSitting { get; set; }
bool IsOnVehicle { get; set; }
bool IsMorphed { get; set; }
(VisualType, long) LastEntity { get; set; }
LastWalk LastWalk { get; set; }
int LastNRunId { get; set; }
int LastPulse { get; set; }
DateTime LastPulseTick { get; set; }
DateTime LastDefence { get; set; }
DateTime LastItemUpgrade { get; set; }
DateTime LastDeath { get; set; }
DateTime LastEffect { get; set; }
DateTime LastEffectMinigame { get; set; }
DateTime LastHealth { get; set; }
DateTime LastPortal { get; set; }
DateTime LastPotion { get; set; }
DateTime LastSnack { get; set; }
DateTime LastFood { get; set; }
DateTime LastSkillUse { get; set; }
DateTime LastSpeedChange { get; set; }
DateTime LastTransform { get; set; }
DateTime LastDayNight { get; set; }
DateTime? SpCooldownEnd { get; set; }
DateTime Bubble { get; set; }
DateTime SpyOutStart { get; set; }
DateTime ItemsToRemove { get; set; }
DateTime BonusesToRemove { get; set; }
DateTime? RandomMapTeleport { get; set; }
DateTime LastMove { get; set; }
DateTime LastPutItem { get; set; }
DateTime LastSentNote { get; set; }
DateTime? CheckWeedingBuff { get; set; }
DateTime LastPvPAttack { get; set; }
DateTime LastRainbowArrowEffect { get; set; }
DateTime LastRainbowEffects { get; set; }
Guid MapInstanceId { get; set; }
IMapInstance Miniland { get; set; }
int Morph { get; set; }
int MorphUpgrade { get; set; }
int MorphUpgrade2 { get; set; }
IClientSession Session { get; }
ConcurrentDictionary<int, CharacterSkill> CharacterSkills { get; }
ConcurrentDictionary<int, CharacterSkill> SkillsSp { get; set; }
ConcurrentDictionary<long, int> HitsByMonsters { get; }
bool UseSp { get; set; }
byte VehicleSpeed { get; set; }
byte VehicleMapSpeed { get; set; }
int WareHouseSize { get; set; }
DateTime LastBuySearchBazaarRefresh { get; set; }
DateTime LastBuyBazaarRefresh { get; set; }
DateTime LastListItemBazaar { get; set; }
DateTime LastAdministrationBazaarRefresh { get; set; }
DateTime LastMonsterCaught { get; set; }
bool IsSeal { get; set; }
bool IsRemovingSpecialistPoints { get; set; }
bool IsWarehouseOpen { get; set; }
bool IsPartnerWarehouseOpen { get; set; }
bool IsCraftingItem { get; set; }
bool IsBankOpen { get; set; }
DateTime LastUnfreezedPlayer { get; set; }
DateTime LastSpPacketSent { get; set; }
DateTime LastSpRemovingProcess { get; set; }
DateTime LastAttack { get; set; }
bool InitialScpPacketSent { get; set; }
long AccountId { get; set; }
int Act4Dead { get; set; }
int Act4Kill { get; set; }
int Act4Points { get; set; }
int ArenaWinner { get; set; }
string Biography { get; set; }
bool BuffBlocked { get; set; }
bool ShowRaidDeathInfo { get; set; }
ClassType Class { get; set; }
short Compliment { get; set; }
float Dignity { get; set; }
bool EmoticonsBlocked { get; set; }
bool ExchangeBlocked { get; set; }
bool FamilyRequestBlocked { get; set; }
bool FriendRequestBlocked { get; set; }
GenderType Gender { get; set; }
long Gold { get; set; }
bool GroupRequestBlocked { get; set; }
HairColorType HairColor { get; set; }
HairStyleType HairStyle { get; set; }
bool HeroChatBlocked { get; set; }
byte HeroLevel { get; set; }
long HeroXp { get; set; }
bool HpBlocked { get; set; }
bool IsPetAutoRelive { get; set; }
bool IsPartnerAutoRelive { get; set; }
byte JobLevel { get; set; }
long JobLevelXp { get; set; }
long LevelXp { get; set; }
int MapId { get; set; }
short MapX { get; set; }
short MapY { get; set; }
int MasterPoints { get; set; }
int MasterTicket { get; set; }
byte MaxPetCount { get; set; }
byte MaxPartnerCount { get; set; }
bool MinilandInviteBlocked { get; set; }
string MinilandMessage { get; set; }
short MinilandPoint { get; set; }
MinilandState MinilandState { get; set; }
bool MouseAimLock { get; set; }
string Name { get; set; }
bool QuickGetUp { get; set; }
bool HideHat { get; set; }
bool UiBlocked { get; set; }
long Reput { get; set; }
byte Slot { get; set; }
int SpPointsBonus { get; set; }
int SpPointsBasic { get; set; }
int TalentLose { get; set; }
int TalentSurrender { get; set; }
int TalentWin { get; set; }
bool WhisperBlocked { get; set; }
int? LastMinilandProducedItem { get; set; }
bool IsGettingLosingReputation { get; set; }
byte DeathsOnAct4 { get; set; }
long ArenaKills { get; set; }
long ArenaDeaths { get; set; }
TimeSpan? MuteRemainingTime { get; set; }
DateTime LastMuteTick { get; set; }
DateTime LastSitting { get; set; }
DateTime? LastChatMuteMessage { get; set; }
DateTime LastInventorySort { get; set; }
DateTime? ArenaImmunity { get; set; }
List<CharacterPartnerInventoryItemDto> PartnerInventory { get; set; }
List<MateDTO> NosMates { get; set; }
HashSet<long> CompletedTimeSpaces { get; set; }
List<PartnerWarehouseItemDto> PartnerWarehouse { get; set; }
List<CharacterStaticBonusDto> Bonus { get; set; }
List<CharacterStaticBuffDto> StaticBuffs { get; set; }
List<CharacterQuicklistEntryDto> Quicklist { get; set; }
List<CharacterSkillDTO> LearnedSkills { get; set; }
List<CharacterTitleDto> Titles { get; set; }
List<CompletedScriptsDto> CompletedScripts { get; set; }
List<CharacterQuestDto> CompletedQuests { get; set; }
List<CharacterQuestDto> CompletedPeriodicQuests { get; set; }
List<CharacterQuestDto> ActiveQuests { get; set; }
List<CharacterMinilandObjectDto> MinilandObjects { get; set; }
List<CharacterInventoryItemDto> Inventory { get; set; }
List<CharacterInventoryItemDto> EquippedStuffs { get; set; }
CharacterLifetimeStatsDto LifetimeStats { get; set; }
CharacterRaidRestrictionDto RaidRestrictionDto { get; set; }
RainbowBattleLeaverBusterDto RainbowBattleLeaverBusterDto { get; set; }
IQuicklistComponent QuicklistComponent { get; }
IMateComponent MateComponent { get; }
IHomeComponent HomeComponent { get; }
ISkillComponent SkillComponent { get; }
ICheatComponent CheatComponent { get; }
ISpecialistStatsComponent SpecialistComponent { get; }
IPlayerStatisticsComponent StatisticsComponent { get; }
ITimeSpaceComponent TimeSpaceComponent { get; }
IShopComponent ShopComponent { get; }
IMailNoteComponent MailNoteComponent { get; }
IRainbowBattleComponent RainbowBattleComponent { get; }
void RefreshCharacterStats(bool refreshHpMp = true);
void AddStaticBonus(CharacterStaticBonusDto bonus);
void AddStaticBonuses(IEnumerable<CharacterStaticBonusDto> bonuses);
IReadOnlyList<CharacterStaticBonusDto> GetStaticBonuses();
CharacterStaticBonusDto GetStaticBonus(Predicate<CharacterStaticBonusDto> predicate);
int GetCp();
int GetDignityIco();
List<IPortalEntity> GetExtraPortal();
void SetSession(IClientSession clientSession);
int HealthHpLoad();
int HealthMpLoad();
bool HasBuff(BuffVnums buffVnum);
void SetFaction(FactionType faction);
}