# @c3d.gg/mwi-types

TypeScript types and constants for Milky Way Idle game data.

## Installation

```bash
pnpm add @c3d.gg/mwi-types
```

## Import Patterns

### Types Only (~0KB runtime)

```typescript
import type { Item, ItemHrid } from '@c3d.gg/mwi-types/items'
import type { Recipe, RecipeHrid } from '@c3d.gg/mwi-types/recipes'
import type { Action, ActionHrid } from '@c3d.gg/mwi-types/actions'
import type { Player } from '@c3d.gg/mwi-types/player'
```

### Types + Constants (HRID arrays for validation)

```typescript
import { ITEM_HRIDS, ITEMS_BY_CATEGORY } from '@c3d.gg/mwi-types/items'
import {
	RECIPE_HRIDS,
	RECIPES_BY_SKILL,
	RECIPES_BY_TYPE,
} from '@c3d.gg/mwi-types/recipes'
import {
	ACTION_HRIDS,
	ACTIONS_BY_SKILL,
	ACTION_CATEGORY_HRIDS,
} from '@c3d.gg/mwi-types/actions'
import { LEVEL_EXPERIENCE_TABLE } from '@c3d.gg/mwi-types/level'
```

### Main Entry Point

Everything re-exported from root:

```typescript
import {
	ITEM_HRIDS,
	SKILL_HRIDS,
	type Item,
	type Skill,
} from '@c3d.gg/mwi-types'
```

## File Structure

```
src/
├── index.ts                  # Re-exports all domains
└── domains/
    ├── abilities/
    │   ├── index.ts          # Barrel export
    │   ├── types.ts          # Type definitions
    │   └── constants.ts      # HRID arrays
    ├── actions/
    ├── avatar/
    ├── buffs/
    ├── ...
    └── tasks/
```

Each domain follows the same pattern: `types.ts` for type definitions, `constants.ts` for HRID arrays and lookup maps, `index.ts` to re-export both.

## Available Domains

| Domain         | Types                                                                                                                                                                                                                                                                        | Constants                                                                                                                                                     |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/abilities`   | `Ability`, `AbilityEffect`, `AbilityEffectHrid`, `AbilityHrid`                                                                                                                                                                                                               | `ABILITY_HRIDS`, `ABILITY_EFFECT_HRIDS`                                                                                                                       |
| `/actions`     | `Action`, `ActionCategory`, `ActionCategoryHrid`, `ActionFunctionHrid`, `ActionHrid`, `ActionType`, `ActionTypeHrid`, `CombatZone`, `Spawn`, `SpawnMap`                                                                                                                      | `ACTION_HRIDS`, `ACTION_CATEGORY_HRIDS`, `ACTION_FUNCTION_HRIDS`, `ACTION_TYPES_HRID`, `ACTIONS_BY_SKILL`                                                     |
| `/avatar`      | `Avatar`, `AvatarHrid`, `AvatarOutfit`, `AvatarOutfitHrid`                                                                                                                                                                                                                   | `AVATAR_HRIDS`, `AVATAR_OUTFIT_HRIDS`                                                                                                                         |
| `/buffs`       | `Buff`, `BuffType`, `BuffTypeHrid`, `BuffUniqueHrid`, `CommunityBuffType`, `CommunityBuffTypeHrid`                                                                                                                                                                           | `BUFF_TYPES_HRIDS`, `BUFF_UNIQUES_HRIDS`, `COMMUNITY_BUFF_TYPES_HRIDS`                                                                                        |
| `/chat`        | `ChatChannelType`, `ChatChannelTypeHrid`, `ChatIcon`, `ChatIconHrid`                                                                                                                                                                                                         | `CHAT_CHANNEL_TYPES_HRIDS`, `CHAT_ICONS_HRIDS`                                                                                                                |
| `/combat`      | `CombatDetails`, `CombatStats`, `CombatStyle`, `CombatStyleHrid`, `CombatTriggerComparator`, `CombatTriggerComparatorHrid`, `CombatTriggerCondition`, `CombatTriggerConditionHrid`, `CombatTriggerDependency`, `CombatTriggerDependencyHrid`, `DamageType`, `DamageTypeHrid` | `COMBAT_STYLE_HRIDS`, `COMBAT_TRIGGER_COMPARATOR_HRIDS`, `COMBAT_TRIGGER_CONDITION_HRIDS`, `COMBAT_TRIGGER_DEPENDENCY_HRIDS`, `DAMAGE_TYPE_HRIDS`             |
| `/game-mode`   | `GameMode`, `GameModeHrid`, `SubsetGameModeHrid`                                                                                                                                                                                                                             | `GAME_MODE_HRIDS`, `SUBSET_GAME_MODES_HRID`                                                                                                                   |
| `/guild`       | `GuildCharacterRole`, `GuildCharacterRoleHrid`                                                                                                                                                                                                                               | `GUILD_CHARACTER_ROLE_HRIDS`                                                                                                                                  |
| `/house`       | `HouseRoom`, `HouseRoomHrid`                                                                                                                                                                                                                                                 | `HOUSE_ROOM_HRIDS`, `HOUSE_ROOMS_BY_SKILL`                                                                                                                    |
| `/items`       | `Item`, `ItemHrid`, `ItemCategory`, `ItemCategoryHrid`, `EquipmentType`, `EquipmentTypeHrid`, `ItemLocation`, `ItemLocationHrid`, `ItemLocationTypeHrid`, `ItemCombatStats`, `ItemNoncombatStats`, `CombatEnhancementBonuses`, `NoncombatEnhancementBonuses`                 | `ITEM_HRIDS`, `ITEM_CATEGORY_HRIDS`, `ITEMS_BY_CATEGORY`, `EQUIPMENT_TYPES_HRIDS`, `ITEM_LOCATION_HRIDS`, `ITEM_LOCATION_TYPE_HRIDS`, `PROTECTION_ITEM_HRIDS` |
| `/leaderboard` | `Leaderboard`, `LeaderboardCategory`, `LeaderboardCategoryHrid`, `LeaderboardTypeHrid`                                                                                                                                                                                       | `LEADERBOARD_CATEGORY_HRIDS`, `LEADERBOARD_TYPE_HRIDS`                                                                                                        |
| `/level`       | —                                                                                                                                                                                                                                                                            | `LEVEL_EXPERIENCE_TABLE`                                                                                                                                      |
| `/monsters`    | `Monster`, `MonsterAbilities`, `MonsterHrid`                                                                                                                                                                                                                                 | `MONSTER_HRIDS`                                                                                                                                               |
| `/name`        | `NameColor`, `NameColorHrid`                                                                                                                                                                                                                                                 | `NAME_COLOR_HRIDS`                                                                                                                                            |
| `/player`      | `Player`, `Character`, `CharacterAbility`, `CharacterAction`, `CharacterItem`, `CharacterLoadout`, `CharacterSkill`, `CombatUnit`, `Guild`, `MarketListing`, + more                                                                                                          | —                                                                                                                                                             |
| `/recipes`     | `Recipe`, `RecipeHrid`, `RecipeItem`, `RecipeTreeNode`, `RecipeTreeStats`, `TimeModifiers`                                                                                                                                                                                   | `RECIPE_HRIDS`, `RECIPES_BY_OUTPUT`, `RECIPES_BY_SKILL`, `RECIPES_BY_TYPE`                                                                                    |
| `/shared`      | `DropTable`, `ExperienceGain`, `ItemCost`, `LevelRequirement`, `OpenableLootDrop`, `OpenableLootDropHrid`                                                                                                                                                                    | `OPENABLE_LOOT_DROP_HRIDS`                                                                                                                                    |
| `/shop`        | `ShopItem`, `ShopItemHrid`, `ShopCategory`, `ShopCategoryHrid`, `PurchaseBundle`, `PurchaseBundleHrid`, `BuyableUpgrade`, `BuyableUpgradeHrid`, `ItemInput`                                                                                                                  | `SHOP_ITEMS_HRIDS`, `SHOP_CATEGORIES_HRIDS`, `PURCHASE_BUNDLES_HRIDS`, `BUYABLE_UPGRADES_HRIDS`                                                               |
| `/skills`      | `Skill`, `SkillHrid`                                                                                                                                                                                                                                                         | `SKILL_HRIDS`, `SKILL_FOR_ACTION_TYPE`                                                                                                                        |
| `/tasks`       | `RandomTaskType`, `RandomTaskTypeHrid`, `TaskShopItem`, `TaskShopItemHrid`                                                                                                                                                                                                   | `RANDOM_TASK_TYPE_HRIDS`, `TASK_SHOP_ITEMS_HRIDS`                                                                                                             |

## License

MIT
