@@ -9,13 +9,55 @@ import { soundIds } from '@engine/world/config/sound-ids';
99import { animationIds } from '@engine/world/config/animation-ids' ;
1010import { LandscapeObject } from '@runejs/filestore' ;
1111import { loopingEvent } from '@engine/plugins' ;
12+ import { findItem , ItemDetails } from '@engine/config' ;
1213
1314
14- const logs = [
15+ interface Burnable {
16+ logItem : ItemDetails ;
17+ requiredLevel : number ;
18+ experienceGained : number ;
19+ }
20+
21+ const logs : Burnable [ ] = [
1522 {
16- logId : itemIds . logs ,
23+ logItem : findItem ( 'rs: logs' ) ,
1724 requiredLevel : 1 ,
18- burnExp : 40
25+ experienceGained : 40
26+ } ,
27+ {
28+ logItem : findItem ( 'rs:oak_logs' ) ,
29+ requiredLevel : 15 ,
30+ experienceGained : 60
31+ } ,
32+ {
33+ logItem : findItem ( 'rs:willow_logs' ) ,
34+ requiredLevel : 30 ,
35+ experienceGained : 90
36+ } ,
37+ {
38+ logItem : findItem ( 'rs:teak_logs' ) ,
39+ requiredLevel : 35 ,
40+ experienceGained : 105
41+ } ,
42+ {
43+ logItem : findItem ( 'rs:maple_logs' ) ,
44+ requiredLevel : 45 ,
45+ experienceGained : 135
46+ } ,
47+ {
48+ logItem : findItem ( 'rs:mahogany_logs' ) ,
49+ requiredLevel : 50 ,
50+ experienceGained : 157.5
51+ } ,
52+ {
53+ logItem : findItem ( 'rs:yew_logs' ) ,
54+ requiredLevel : 60 ,
55+ experienceGained : 202.5
56+ } ,
57+ {
58+ logItem : findItem ( 'rs:magic_logs' ) ,
59+ requiredLevel : 75 ,
60+ experienceGained : 303.8
1961 }
2062] ;
2163
@@ -78,7 +120,7 @@ const action: itemOnItemActionHandler = (details) => {
78120
79121 const log = usedItem . itemId !== itemIds . tinderbox ? usedItem : usedWithItem ;
80122 const removeFromSlot = usedItem . itemId !== itemIds . tinderbox ? usedSlot : usedWithSlot ;
81- const skillInfo = logs . find ( l => l . logId === log . itemId ) ;
123+ const skillInfo = logs . find ( l => l . logItem . gameId === log . itemId ) ;
82124 const position = player . position ;
83125
84126 if ( ! skillInfo ) {
@@ -94,7 +136,7 @@ const action: itemOnItemActionHandler = (details) => {
94136
95137 if ( player . metadata [ 'lastFire' ] && Date . now ( ) - player . metadata [ 'lastFire' ] < 1200 &&
96138 canChain ( skillInfo . requiredLevel , player . skills . firemaking . level ) ) {
97- lightFire ( player , position , worldItemLog , skillInfo . burnExp ) ;
139+ lightFire ( player , position , worldItemLog , skillInfo . experienceGained ) ;
98140 } else {
99141 player . sendMessage ( `You attempt to light the logs.` ) ;
100142
@@ -110,7 +152,7 @@ const action: itemOnItemActionHandler = (details) => {
110152 if ( canLightFire ) {
111153 loop . cancel ( ) ;
112154 player . metadata . busy = true ;
113- setTimeout ( ( ) => lightFire ( player , position , worldItemLog , skillInfo . burnExp ) , 1200 ) ;
155+ setTimeout ( ( ) => lightFire ( player , position , worldItemLog , skillInfo . experienceGained ) , 1200 ) ;
114156 return ;
115157 }
116158
@@ -139,7 +181,7 @@ export default {
139181 hooks : [
140182 {
141183 type : 'item_on_item' ,
142- items : logs . map ( log => ( { item1 : itemIds . tinderbox , item2 : log . logId } ) ) ,
184+ items : logs . map ( log => ( { item1 : itemIds . tinderbox , item2 : log . logItem . gameId } ) ) ,
143185 handler : action
144186 }
145187 ]
0 commit comments