@@ -10,7 +10,7 @@ import { ObjectActionDetails } from '@server/world/actor/player/action/object-ac
10
10
import { colors } from '@server/util/colors' ;
11
11
import { checkForGemBoost } from '@server/world/skill-util/glory-boost' ;
12
12
import { colorText } from '@server/util/strings' ;
13
- import { rollBirdsNestType , rollGemType } from '@server/world/skill-util/harvest-roll' ;
13
+ import { rollBirdsNestType , rollGemRockResult , rollGemType } from '@server/world/skill-util/harvest-roll' ;
14
14
15
15
export function canInitiateHarvest ( player : Player , target : IHarvestable , skill : Skill ) : undefined | HarvestTool {
16
16
if ( ! target ) {
@@ -19,7 +19,7 @@ export function canInitiateHarvest(player: Player, target: IHarvestable, skill:
19
19
player . sendMessage ( 'There is current no ore available in this rock.' ) ;
20
20
break ;
21
21
default :
22
- player . sendMessage ( colorText ( " HARVEST SKILL ERROR, PLEASE CONTACT DEVELOPERS" , colors . red ) ) ;
22
+ player . sendMessage ( colorText ( ' HARVEST SKILL ERROR, PLEASE CONTACT DEVELOPERS' , colors . red ) ) ;
23
23
break ;
24
24
25
25
@@ -81,7 +81,15 @@ export function canInitiateHarvest(player: Player, target: IHarvestable, skill:
81
81
}
82
82
83
83
export function handleHarvesting ( details : ObjectActionDetails , tool : HarvestTool , target : IHarvestable , skill : Skill ) : void {
84
- let targetName : string = cache . itemDefinitions . get ( target . itemId ) . name . toLowerCase ( ) ;
84
+ let itemToAdd = target . itemId ;
85
+ if ( itemToAdd === 1436 && details . player . skills . hasLevel ( Skill . MINING , 30 ) ) {
86
+ itemToAdd = 7936 ;
87
+ }
88
+ if ( details . object . objectId === 2111 && details . player . skills . hasLevel ( Skill . MINING , 30 ) ) {
89
+ itemToAdd = rollGemRockResult ( ) . itemId ;
90
+ }
91
+ let targetName : string = cache . itemDefinitions . get ( itemToAdd ) . name . toLowerCase ( ) ;
92
+
85
93
switch ( skill ) {
86
94
case Skill . MINING :
87
95
targetName = targetName . replace ( ' ore' , '' ) ;
@@ -113,7 +121,6 @@ export function handleHarvesting(details: ObjectActionDetails, tool: HarvestTool
113
121
toolLevel = 2 ;
114
122
}
115
123
const percentNeeded = target . baseChance + toolLevel + details . player . skills . values [ skill ] . level ;
116
- details . player . sendMessage ( `roll: ${ successChance } , needed: ${ percentNeeded } ` ) ;
117
124
if ( successChance <= percentNeeded ) {
118
125
if ( details . player . inventory . hasSpace ( ) ) {
119
126
let randomLoot = false ;
@@ -123,15 +130,15 @@ export function handleHarvesting(details: ObjectActionDetails, tool: HarvestTool
123
130
roll = randomBetween ( 1 , checkForGemBoost ( details . player ) ) ;
124
131
if ( roll === 1 ) {
125
132
randomLoot = true ;
126
- details . player . sendMessage ( colorText ( " You found a rare gem." , colors . red ) ) ;
133
+ details . player . sendMessage ( colorText ( ' You found a rare gem.' , colors . red ) ) ;
127
134
details . player . giveItem ( rollGemType ( ) ) ;
128
135
}
129
136
break ;
130
137
case Skill . WOODCUTTING :
131
138
roll = randomBetween ( 1 , 256 ) ;
132
139
if ( roll === 1 ) {
133
140
randomLoot = true ;
134
- details . player . sendMessage ( colorText ( " A bird's nest falls out of the tree." , colors . red ) ) ;
141
+ details . player . sendMessage ( colorText ( ' A bird\ 's nest falls out of the tree.' , colors . red ) ) ;
135
142
world . spawnWorldItem ( rollBirdsNestType ( ) , details . player . position , details . player , 300 ) ;
136
143
}
137
144
break ;
@@ -145,7 +152,9 @@ export function handleHarvesting(details: ObjectActionDetails, tool: HarvestTool
145
152
details . player . sendMessage ( `You manage to chop some ${ targetName } .` ) ;
146
153
break ;
147
154
}
148
- details . player . giveItem ( target . itemId ) ;
155
+
156
+ details . player . giveItem ( itemToAdd ) ;
157
+
149
158
}
150
159
details . player . skills . addExp ( skill , target . experience ) ;
151
160
if ( randomBetween ( 0 , 100 ) <= target . break ) {
0 commit comments