====== Hooked Dagger Item - Code References ====== The **Hooked Dagger** is a Lua-scripted melee weapon item in Remixed Dungeon. It is a dagger-type weapon that causes bleeding on hit. ===== Java Classes ===== This entity is implemented entirely in Lua. No Java class exists for this item. The item uses the common Lua item framework: * `scripts/lib/commonClasses.lua` - Common RPD Lua classes * `scripts/lib/item.lua` - Base item implementation for Lua items ===== JSON Configuration ===== This entity does not have a separate JSON configuration file. Item properties are defined in the Lua script. Item properties from Lua script: * **Image index:** 3 (from items/daggers.png sprite sheet) * **Image file:** items/daggers.png * **Name string key:** HookedDagger_Name * **Info string key:** HookedDagger_Info * **Price:** 17 gold * **Equipment slot:** Weapon slot (RPD.Slots.weapon) * **Required STR:** 9 * **Attack delay factor:** 1.0 * **Accuracy factor:** 1.0 * **Damage roll:** level * 1 to level * 2 (scales with item level) ===== String Resources ===== [Name] [Description] Note: Actual string values should be verified in the game's string resource files: * English: `RemixedDungeon/src/main/res/values/strings_all.xml` * Russian: `RemixedDungeon/src/main/res/values-ru/strings_all.xml` * Other languages in their respective values-XX directories ===== Lua Scripts ===== **Main Script:** [[https://github.com/NYRDS/remixed-dungeon/blob/master/scripts/items/HookedDagger.lua|HookedDagger.lua]] **Key Functions:** -- Item description desc = function() return { image = 3, imageFile = "items/daggers.png", name = "HookedDagger_Name", info = "HookedDagger_Info", price = 17, equipable = RPD.Slots.weapon } end -- Melee weapon flag goodForMelee = function() return true end -- Visual name (returns "Wand" - may be a placeholder) getVisualName = function() return "Wand" end -- Attack animation class getAttackAnimationClass = function() return "staff" end -- Damage calculation (scales with item level) damageRoll = function(item, user) local lvl = item:level() return math.random(lvl, lvl*2) end -- Attack proc: applies Bleeding buff for 3 turns attackProc = function(item, attacker, defender, damage) RPD.affectBuff(defender, "Bleeding", 3) return damage end -- Required strength typicalSTR = function() return 9 end **Special Abilities:** * **Bleeding Proc:** On hit, applies the Bleeding buff to the target for 3 turns * **Level Scaling:** Damage scales with item level (1-2 damage per level) * **Dual-wielding:** Can be equipped in main weapon slot, blocks left hand slot ===== Related Entities ===== **Buffs:** * [[mr:bleeding_buff|Bleeding Buff]] - Applied on hit **Similar Items:** * Other daggers in the `scripts/items/` directory * Melee weapons that apply status effects ===== Code References ===== * Lua: [[https://github.com/NYRDS/remixed-dungeon/blob/master/scripts/items/HookedDagger.lua|HookedDagger.lua]] * Lua Library: [[https://github.com/NYRDS/remixed-dungeon/blob/master/scripts/lib/commonClasses.lua|commonClasses.lua]] * Lua Library: [[https://github.com/NYRDS/remixed-dungeon/blob/master/scripts/lib/item.lua|item.lua]] {{tag> mr code reference item weapon lua melee dagger}}