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 CharacterSkills { get; } ConcurrentDictionary SkillsSp { get; set; } ConcurrentDictionary 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 PartnerInventory { get; set; } List NosMates { get; set; } HashSet CompletedTimeSpaces { get; set; } List PartnerWarehouse { get; set; } List Bonus { get; set; } List StaticBuffs { get; set; } List Quicklist { get; set; } List LearnedSkills { get; set; } List Titles { get; set; } List CompletedScripts { get; set; } List CompletedQuests { get; set; } List CompletedPeriodicQuests { get; set; } List ActiveQuests { get; set; } List MinilandObjects { get; set; } List Inventory { get; set; } List 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 bonuses); IReadOnlyList GetStaticBonuses(); CharacterStaticBonusDto GetStaticBonus(Predicate predicate); int GetCp(); int GetDignityIco(); List GetExtraPortal(); void SetSession(IClientSession clientSession); int HealthHpLoad(); int HealthMpLoad(); bool HasBuff(BuffVnums buffVnum); void SetFaction(FactionType faction); }