/** * Player Object * * Extracted from `init_character_data.json` from the game. */ import type { AbilityHrid } from '../abilities/types.ts'; import type { AchievementHrid } from '../achievements/types.ts'; import type { ActionHrid, ActionTypeHrid } from '../actions/types.ts'; import type { AvatarHrid, AvatarOutfitHrid } from '../avatar/types.ts'; import type { Buff, CommunityBuffType } from '../buffs/types.ts'; import type { ChatChannelTypeHrid, ChatIconHrid, ChatMessage } from '../chat/types.ts'; import type { CombatDetails, CombatTriggerComparatorHrid, CombatTriggerConditionHrid, CombatTriggerDependencyHrid } from '../combat/types.ts'; import type { GameModeHrid } from '../game-mode/types.ts'; import type { GuildCharacterRoleHrid } from '../guild/types.ts'; import type { HouseRoomHrid } from '../house/types.ts'; import type { ItemHrid, ItemLocationHrid } from '../items/types.ts'; import type { LabyrinthRoomData } from '../labyrinth/types.ts'; import type { MonsterHrid } from '../monsters/types.ts'; import type { NameColorHrid } from '../name/types.ts'; import type { BuyableUpgradeHrid } from '../shop/types.ts'; import type { SkillHrid } from '../skills/types.ts'; import type { RandomTaskTypeHrid } from '../tasks/types.ts'; export type ConsumableSlotTypeHrid = '/consumable_slot_types/drink' | '/consumable_slot_types/food'; export interface User { id: number; isGuest: boolean; isAdmin: boolean; isCco: boolean; isCommunityManager: boolean; isSuperModerator: boolean; isModerator: boolean; isMuted: boolean; muteStartTime: string; muteExpireTime: string; muteReason: string; isBanned: boolean; banStartTime: string; banExpireTime: string; banReason: string; isDeleted: boolean; createdAt: string; updatedAt: string; isSM: boolean; } export interface UserInfo { userID: number; supporterPoints: number; lifetimeSupporterPoints: number; referralCount: number; cowbellMarketRestrictionExpireTime: string; mooPassExpireTime: string; nexusCreatorCode: string; nexusCreatorName: string; nexusCreatorCodeExpireTime: string; } export interface UserReferralBonus { id: number; referrerUserID: number; referrerClaimCharacterID: number; referredUserID: number; referredCharacterID: number; type: 'first_level' | 'second_level'; cowbellQuantity: number; status: 'pending' | 'granted' | 'claimed'; createdAt: string; updatedAt: string; } export interface Character { id: number; userID: number; gameMode: GameModeHrid; name: string; previousName: string; specialChatIconHrid: ChatIconHrid | ''; chatIconHrid: ChatIconHrid | ''; nameColorHrid: NameColorHrid | ''; avatarHrid: AvatarHrid | ''; avatarOutfitHrid: AvatarOutfitHrid | ''; isOnline: boolean; lastOfflineTime: string; inactiveTime: string; isDeleted: boolean; createdAt: string; updatedAt: string; } export type FriendCharacter = Omit & { hasMooPass: boolean; actionType: ActionTypeHrid | ''; hideOnlineStatus: boolean; }; export interface CharacterUpgrade { characterID: number; upgradeHrid: BuyableUpgradeHrid; count: number; } export interface CharacterInfo { characterID: number; offlineHourCap: number; actionQueueCap: number; loadoutSlotCap: number; marketListingCap: number; taskSlotCap: number; isTutorialCompleted: boolean; taskCooldownHours: number; lastTaskTimestamp: string; unreadTaskCount: number; totalTaskPoints: number; redeemedTaskPoints: number; isCombatTaskBlockUnlocked: boolean; labyrinthPathCap: number; labyrinthTorchCap: number; labyrinthShroudCap: number; labyrinthBeaconCap: number; labyrinthCooldownHours: number; labyrinthFullAutoLevel: number; lastLabyrinthTimestamp: string; labyrinthEntries: number; labyrinthPoints: number; labyrinthHighestFloor: number; labyrinthHighestFloorRooms: number; collectionPoints: number; claimedCollectionPoints: number; bestiaryPoints: number; claimedBestiaryPoints: number; famePoints: number; fameLeaderboardOptOut: boolean; isFreeMooPassClaimed: boolean; mooPassExpireTime: string; } export interface CharacterSetting { characterID: number; newsReadTime: string; patchNotesReadTime: string; whisperReadTime: string; hideGeneralChatTip: boolean; hideTradeChatTip: boolean; hideRecruitChatTip: boolean; hideBeginnerChatTip: boolean; hideWhisperChatTip: boolean; insertToFrontOnStartNow: boolean; showGeneralChat: boolean; isLanguageChannelSet: boolean; languageChannelHrid: ChatChannelTypeHrid | ''; showIroncowChat: boolean; showTradeChat: boolean; showRecruitChat: boolean; showBeginnerChat: boolean; minCommunityBuffMessage: number; disableProfanityFilter: boolean; disableChatURLWarning: boolean; onlineStatusPreference: 'public' | 'friend' | 'private'; hideProfileEquipment: boolean; hasAcceptedTradingRules: boolean; labyrinthTorchHrid: ItemHrid; labyrinthShroudHrid: ItemHrid; labyrinthBeaconHrid: ItemHrid; labyrinthTeaCrateHrid: ItemHrid; labyrinthCoffeeCrateHrid: ItemHrid; labyrinthFoodCrateHrid: ItemHrid; labyrinthLoadoutMilking: number; labyrinthLoadoutForaging: number; labyrinthLoadoutWoodcutting: number; labyrinthLoadoutCheesesmithing: number; labyrinthLoadoutCrafting: number; labyrinthLoadoutTailoring: number; labyrinthLoadoutCooking: number; labyrinthLoadoutBrewing: number; labyrinthLoadoutAlchemy: number; labyrinthLoadoutEnhancing: number; labyrinthLoadoutShadowArcher: number; labyrinthLoadoutPyreHunter: number; labyrinthLoadoutFrostSniper: number; labyrinthLoadoutSiren: number; labyrinthLoadoutSalamander: number; labyrinthLoadoutDryad: number; labyrinthLoadoutGiantScorpion: number; labyrinthLoadoutGiantMantis: number; labyrinthLoadoutCyclops: number; labyrinthLoadoutMimic: number; labyrinthSkipMilking: number; labyrinthSkipForaging: number; labyrinthSkipWoodcutting: number; labyrinthSkipCheesesmithing: number; labyrinthSkipCrafting: number; labyrinthSkipTailoring: number; labyrinthSkipCooking: number; labyrinthSkipBrewing: number; labyrinthSkipAlchemy: number; labyrinthSkipEnhancing: number; labyrinthSkipShadowArcher: number; labyrinthSkipPyreHunter: number; labyrinthSkipFrostSniper: number; labyrinthSkipSiren: number; labyrinthSkipSalamander: number; labyrinthSkipDryad: number; labyrinthSkipGiantScorpion: number; labyrinthSkipGiantMantis: number; labyrinthSkipCyclops: number; labyrinthSkipMimic: number; labyrinthMaxAttemptsPerRoom: number; labyrinthFullAutoFloor: number; labyrinthShroudAutoUse: 'never' | 'when_stuck'; } export interface CharacterAction { id: number; characterID: number; partyID: number; actionHrid: ActionHrid; difficultyTier: number; hasMaxCount: boolean; maxCount: number; currentCount: number; wave: number; primaryItemHash: string; secondaryItemHash: string; enhancingMaxLevel: number; enhancingProtectionMinLevel: number; characterLoadoutID: number; ordinal: number; isDone: boolean; createdAt: string; updatedAt: string; } export interface CharacterQuest { id: number; characterID: number; category: string; tutorialQuestHrid: string; type: string; actionHrid: ActionHrid; monsterHrid: MonsterHrid; goalCount: number; currentCount: number; itemRewardsJSON: string; status: string; coinRerollCount: number; cowbellRerollCount: number; mooPassRerollCount: number; createdAt: string; updatedAt: string; } export interface CharacterSkill { characterID: number; skillHrid: SkillHrid; experience: number; level: number; offlineExperience: number; createdAt: string; updatedAt: string; } export interface CharacterAbility { characterID: number; abilityHrid: AbilityHrid; experience: number; level: number; slotNumber: number; createdAt: string; updatedAt: string; } export interface CharacterItem { id: number; characterID: number; itemLocationHrid: ItemLocationHrid; itemHrid: ItemHrid; enhancementLevel: number; count: number; offlineCount: number; hash: string; createdAt: string; updatedAt: string; } export interface OfflineItem { itemHrid: ItemHrid; count: number; enhancementLevel: number; } export interface OfflineSkill { skillHrid: SkillHrid; experience: number; } export interface CharacterCombatTrigger { dependencyHrid: CombatTriggerDependencyHrid; conditionHrid: CombatTriggerConditionHrid; comparatorHrid: CombatTriggerComparatorHrid; value: number; } export interface CharacterActionTypeSlot { characterID: number; actionTypeHrid: ActionTypeHrid; consumableSlotTypeHrid: ConsumableSlotTypeHrid; slotIndex: number; itemHrid: ItemHrid; isActive: boolean; duration: number; } export interface CharacterLoadout { id: number; characterID: number; actionTypeHrid: ActionTypeHrid; name: string; isDefault: boolean; suppressValidation: boolean; useExactEnhancement: boolean; wearableMap: Record; foodItemHrids: Array; drinkItemHrids: Array; abilityMap: Record<'1' | '2' | '3' | '4' | '5', AbilityHrid>; consumableCombatTriggersMap: Record> | object; abilityCombatTriggersMap: Record> | object; } export interface CombatUnit { isActive: boolean; isPlayer: boolean; character: Character; hrid: string; experience: number; difficultyTier: number; isEnraged: boolean; enrageTimerDuration: number; spawnTime: string; name: string; currentHitpoints: number; maxHitpoints: number; currentManapoints: number; maxManapoints: number; deathCount: number; respawnTime: string; combatAbilities: CombatAbility[]; combatConsumables: CombatConsumable[]; combatBuffMap: Record; totalAbilityExperienceMap: Record; totalSkillExperienceMap: Record; totalLootMap: Record; isBlinded: boolean; isSilenced: boolean; isStunned: boolean; attackAttemptCounter: number; isPreparingAutoAttack: boolean; attackOrCastInterval: number; damageSplatCounter: number; criticalDamageSplatCounter: number; combatDetails: CombatDetails; preparingAbilityHrid: AbilityHrid | ''; } export interface CombatAbility { abilityHrid: AbilityHrid; level: number; experience: number; availableTime: string; } export interface CombatConsumable { itemHash: string; itemHrid: ItemHrid; enhancementLevel: number; count: number; availableTime: string; } export interface CharacterNonCombatStats { skillingSpeed: number; milkingSpeed: number; foragingSpeed: number; woodcuttingSpeed: number; cheesesmithingSpeed: number; craftingSpeed: number; tailoringSpeed: number; cookingSpeed: number; brewingSpeed: number; alchemySpeed: number; taskSpeed: number; skillingEfficiency: number; enhancingSuccess: number; gatheringQuantity: number; drinkConcentration: number; skillingEssenceFind: number; skillingRareFind: number; milkingRareFind: number; foragingRareFind: number; woodcuttingRareFind: number; cheesesmithingRareFind: number; craftingRareFind: number; tailoringRareFind: number; cookingRareFind: number; brewingRareFind: number; alchemyRareFind: number; enhancingRareFind: number; skillingExperience: number; milkingExperience: number; foragingExperience: number; woodcuttingExperience: number; cheesesmithingExperience: number; craftingExperience: number; tailoringExperience: number; cookingExperience: number; brewingExperience: number; alchemyExperience: number; enhancingExperience: number; milkingEfficiency: number; foragingEfficiency: number; woodcuttingEfficiency: number; cheesesmithingEfficiency: number; craftingEfficiency: number; tailoringEfficiency: number; cookingEfficiency: number; brewingEfficiency: number; alchemyEfficiency: number; } export interface CharacterMarketListing { id: number; characterID: number; status: '/market_listing_status/expired' | '/market_listing_status/active' | '/market_listing_status/filled'; isSell: boolean; itemHrid: ItemHrid; enhancementLevel: number; orderQuantity: number; filledQuantity: number; price: number; coinsAvailable: number; taxTaken: number; unclaimedItemCount: number; unclaimedCoinCount: number; createdTimestamp: string; expirationTimestamp: string; } export interface CharacterTaskTypeBlock { characterID: number; slotIndex: number; randomTaskTypeHrid: RandomTaskTypeHrid; } export interface CharacterHouseRoom { characterID: number; houseRoomHrid: HouseRoomHrid; level: number; createdAt: string; updatedAt: string; } export interface CharacterAchievement { characterID: number; achievementHrid: AchievementHrid; progress: number; isCompleted: boolean; isSteamGranted: boolean; } export interface CharacterChatIcon { userID: number; chatIconHrid: ChatIconHrid; unlockedTime: string; } export interface CharacterChatNameColor { userID: number; nameColorHrid: NameColorHrid; unlockedTime: string; } export interface CharacterAvatar { userID: number; avatarHrid: AvatarHrid; unlockedTime: string; } export interface CharacterAvatarOutfit { userID: number; avatarOutfitHrid: AvatarOutfitHrid; unlockedTime: string; } export interface Guild { id: number; name: string; experience: number; level: number; noticeMessage: string; isDisbanded: boolean; createdAt: string; updatedAt: string; } export interface GuildCharacter { guildID: number; characterID: number; inviterCharacterID: number; role: GuildCharacterRoleHrid; status: string; guildExperience: number; joinTime: string; leaveTime: string; } export type GuildShareableCharacter = Omit & { hasMooPass: boolean; actionType: ActionTypeHrid | ''; hideOnlineStatus: boolean; }; export interface PartyInfo { id: number; name: string; leaderID: number; memberIDs: number[]; maxMembers: number; createdAt: string; } export interface PlayerLabyrinth { characterID: number; isActive: boolean; currentFloor: number; roomData: LabyrinthRoomData[][]; pathData: string; torchItemHrid: ItemHrid; torchCount: number; shroudItemHrid: ItemHrid; shroudCount: number; beaconItemHrid: ItemHrid; beaconCount: number; teaCrateItemHrid: ItemHrid; coffeeCrateItemHrid: ItemHrid; foodCrateItemHrid: ItemHrid; lootedItemsData: string; startedAt: string; updatedAt: string; totalTreasureRooms: number; remainingTreasureRooms: number; } export interface Player { user: User; email: string; kongregateUserId: string; steamUserId: string; guestPassword: string; userInfo: UserInfo; userReferralBonuses: Array; character: Character; characterInfo: CharacterInfo; characterSetting: CharacterSetting; characterActions: Array; characterQuests: Array; characterSkills: Array; characterAbilities: Array; characterItems: Array; offlineItems: Array; offlineSkills: Array; consumableCombatTriggersMap: Record>; abilityCombatTriggersMap: Record>; actionTypeFoodSlotsMap: Record>; actionTypeDrinkSlotsMap: Record>; characterLoadoutMap: Record; combatUnit: CombatUnit | null; noncombatStats: CharacterNonCombatStats | null; myMarketListings: Array; characterTaskTypeBlocks: Array; characterHouseRoomMap: Record; characterAchievements: Array; chatMinLevel: number; generalChatMinLevel: number; generalChatMinExp: number; enableAutomod: boolean; enableNewPlayerAutomod: boolean; serverSetting: Record | null; chatHistoryByChannelMap: Record>; guildChatHistory: Array; partyChatHistory: Array; whisperChatHistory: Array; moderatorChatHistory: Array; friendCharacterMap: Record; characterUpgradeMap: Record; blockedCharacterMap: Record; userChatIconMap: Record; userNameColorMap: Record; userAvatarMap: Record; userAvatarOutfitMap: Record; mooPassBuffs: Array; mooPassActionTypeBuffsMap: Record>; communityBuffs: Array; communityActionTypeBuffsMap: Record>; houseActionTypeBuffsMap: Record>; achievementActionTypeBuffsMap: Record>; consumableActionTypeBuffsMap: Record>; equipmentActionTypeBuffsMap: Record>; equipmentTaskActionBuffs: Array; guild: Guild | null; guildCharacterMap: Record | object; guildSharableCharacterMap: Record | object; guildInviteMap: Record | object; guildInviterSharableCharacterMap: Record | object; guildInviteGuildNameMap: Record | object; partyInfo: PartyInfo | null; labyrinth: PlayerLabyrinth | null; characterBuffs: Array; personalActionTypeBuffsMap: Record>; announcementMessage: string; announcementTimestamp: string; } //# sourceMappingURL=types.d.ts.map