UNPKG

osrs-tools

Version:

A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information

140 lines 4.04 kB
/** * QUICK REFERENCE GUIDE * How to Implement Drops for a New NPC * ========================================== */ import { Npc } from '../Npc'; import { NpcDrop } from '../NpcDrop'; export declare const Rat: Npc; /** * For each NPC, follow these steps: * * 1. RESEARCH * - Open OSRS Wiki page * - Find "Drops" section * - Note all items, quantities, drop rates * - Look for quest-only or conditional drops * * 2. CATEGORIZE * - Is this NPC similar to others? (Dragons, demons, etc.) * - Can we use a template? (createDragonDrops, etc.) * - Or should we write custom drops? * * 3. IMPLEMENT * - Copy pattern that matches your NPC * - Replace itemIds with actual items * - Use DROP_RATES constants for readable fractions * - Add wiki URL to NPC constructor * * 4. TEST * - Run: npm test * - Verify no syntax errors * - Check drop rates make sense * * 5. VALIDATE * - Use validateNPCDrops() to check for errors * - Compare with wiki - do drops match? * - Check for missing items * * 6. COMMIT * - git add source/runescape/model/npc/npcs/YourNPC.ts * - git commit -m "Add drops for YourNPC" * - Push to your branch */ /** * BOSSES (30 NPCs) * - Time per: 10-15 mins (complex research) * - Template: createBossNPCDrops() * - Total est: 5-7.5 hours * - Value: HIGH (players farm these extensively) * * DRAGONS (20 NPCs) * - Time per: 2-3 mins (template does most work) * - Template: createDragonDrops() * - Total est: 40-60 mins * - Value: MEDIUM (Slayer, PvM) * * DEMONS (15 NPCs) * - Time per: 2-3 mins (template does most work) * - Template: createDemonDrops() * - Total est: 30-45 mins * - Value: MEDIUM (Slayer) * * SLAYER CREATURES (30 NPCs) * - Time per: 3-5 mins (simple but varied) * - Template: Custom for each subtype * - Total est: 90-150 mins (1.5-2.5 hours) * - Value: MEDIUM-HIGH (frequent killing) * * ANIMALS (20 NPCs) * - Time per: 1-2 mins (simple, low loot complexity) * - Template: SimpleNpcDrops pattern * - Total est: 20-40 mins * - Value: LOW (rarely killed for loot) * * QUEST NPCS (15 NPCs) * - Time per: 5-10 mins (may have no drops) * - Template: Varies or empty * - Total est: 75-150 mins (1.25-2.5 hours) * - Value: LOW (not used for loot) * * TOTAL ESTIMATE: 8-12.5 hours spread over 1-2 weeks */ /** * Available constants in DROP_RATES: * * ALWAYS = '100%' * COMMON_1_2 = '1/2' * COMMON_1_4 = '1/4' * COMMON_1_8 = '1/8' * FREQUENT_1_16 = '1/16' * FREQUENT_1_32 = '1/32' * UNCOMMON_1_64 = '1/64' * UNCOMMON_1_128 = '1/128' * RARE_1_256 = '1/256' * RARE_1_512 = '1/512' * VERY_RARE_1_1024 = '1/1024' * VERY_RARE_1_2048 = '1/2048' * * Or use custom strings like: * new NpcDrop('Item', 1, '3/512') // Unusual rates */ /** * Before committing each NPC: * * ✓ Wiki URL is included and correct * ✓ Drop rates match wiki (check wiki vs code) * ✓ Item IDs are real items in the system * ✓ Quantities make sense (not 999 of an item) * ✓ No typos in item names * ✓ Drop table is not empty (unless intentional) * ✓ No duplicate item entries in same table * ✓ Build passes: npm run build * ✓ Tests pass: npm test * ✓ Code style matches team standards * ✓ Comment explains non-obvious drops (if any) */ /** * # Build and test * npm run build * npm test * npm test test/unit/npc/NpcDrop.test.ts * * # Check for compile errors in NPC files only * npx tsc source/runescape/model/npc/**\/*.ts --noEmit * * # Check specific NPC * git diff source/runescape/model/npc/npcs/YourNPC.ts * * # Run tests for NPCs only * npm test -- --testPathPattern="npc" */ declare const _default: { SimpleNpcDrops: NpcDrop[]; SlayerCreatureDrops: NpcDrop[]; DragonDrops: NpcDrop[]; DemonDrops: NpcDrop[]; BossDrops: import("../ComplexDropSystems").CompleteDropTable; }; export default _default; //# sourceMappingURL=QUICK_REFERENCE.d.ts.map