@@ -39,29 +39,29 @@ export interface SkillDetail {
39
39
}
40
40
41
41
export const skillDetails : SkillDetail [ ] = [
42
- { name : 'Attack' , advancementWidgetId : 158 } ,
43
- { name : 'Defence' , advancementWidgetId : 161 } ,
44
- { name : 'Strength' , advancementWidgetId : 175 } ,
45
- { name : 'Hitpoints' , advancementWidgetId : 167 } ,
46
- { name : 'Ranged' , advancementWidgetId : 171 } ,
47
- { name : 'Prayer' , advancementWidgetId : 170 } ,
48
- { name : 'Magic' , advancementWidgetId : 168 } ,
49
- { name : 'Cooking' , advancementWidgetId : 159 } ,
50
- { name : 'Woodcutting' , advancementWidgetId : 177 } ,
51
- { name : 'Fletching' , advancementWidgetId : 165 } ,
52
- { name : 'Fishing' , advancementWidgetId : 164 } ,
53
- { name : 'Firemaking' , advancementWidgetId : 163 } ,
54
- { name : 'Crafting' , advancementWidgetId : 160 } ,
55
- { name : 'Smithing' , advancementWidgetId : 174 } ,
56
- { name : 'Mining' , advancementWidgetId : 169 } ,
57
- { name : 'Herblore' , advancementWidgetId : 166 } ,
58
- { name : 'Agility' , advancementWidgetId : 157 } ,
59
- { name : 'Thieving' , advancementWidgetId : 176 } ,
60
- { name : 'Slayer' , advancementWidgetId : 173 } ,
61
- { name : 'Farming' , advancementWidgetId : 162 } ,
62
- { name : 'Runecrafting' , advancementWidgetId : 172 } ,
42
+ { name : 'Attack' , advancementWidgetId : 158 } ,
43
+ { name : 'Defence' , advancementWidgetId : 161 } ,
44
+ { name : 'Strength' , advancementWidgetId : 175 } ,
45
+ { name : 'Hitpoints' , advancementWidgetId : 167 } ,
46
+ { name : 'Ranged' , advancementWidgetId : 171 } ,
47
+ { name : 'Prayer' , advancementWidgetId : 170 } ,
48
+ { name : 'Magic' , advancementWidgetId : 168 } ,
49
+ { name : 'Cooking' , advancementWidgetId : 159 } ,
50
+ { name : 'Woodcutting' , advancementWidgetId : 177 } ,
51
+ { name : 'Fletching' , advancementWidgetId : 165 } ,
52
+ { name : 'Fishing' , advancementWidgetId : 164 } ,
53
+ { name : 'Firemaking' , advancementWidgetId : 163 } ,
54
+ { name : 'Crafting' , advancementWidgetId : 160 } ,
55
+ { name : 'Smithing' , advancementWidgetId : 174 } ,
56
+ { name : 'Mining' , advancementWidgetId : 169 } ,
57
+ { name : 'Herblore' , advancementWidgetId : 166 } ,
58
+ { name : 'Agility' , advancementWidgetId : 157 } ,
59
+ { name : 'Thieving' , advancementWidgetId : 176 } ,
60
+ { name : 'Slayer' , advancementWidgetId : 173 } ,
61
+ { name : 'Farming' , advancementWidgetId : 162 } ,
62
+ { name : 'Runecrafting' , advancementWidgetId : 172 } ,
63
63
null ,
64
- { name : 'Construction' }
64
+ { name : 'Construction' }
65
65
] ;
66
66
67
67
export interface SkillValue {
@@ -135,7 +135,7 @@ export class Skills extends SkillShortcuts {
135
135
this [ skillName ] = new SkillShortcut ( this , skillName as SkillName )
136
136
) ;
137
137
138
- if ( values ) {
138
+ if ( values ) {
139
139
this . _values = values ;
140
140
} else {
141
141
this . _values = this . defaultValues ( ) ;
@@ -148,18 +148,17 @@ export class Skills extends SkillShortcuts {
148
148
}
149
149
150
150
public hasLevel ( skill : number | SkillName , level : number , ignoreLevelModifications : boolean = false ) : boolean {
151
- const s = this . get ( skill ) ;
152
- return ( ignoreLevelModifications ? s . level : s . modifiedLevel ) >= level ;
151
+ return this . getLevel ( skill , ignoreLevelModifications ) >= level ;
153
152
}
154
153
155
154
public getLevelForExp ( exp : number ) : number {
156
155
let points = 0 ;
157
156
let output = 0 ;
158
157
159
- for ( let i = 1 ; i <= 99 ; i ++ ) {
158
+ for ( let i = 1 ; i <= 99 ; i ++ ) {
160
159
points += Math . floor ( i + 300 * Math . pow ( 2 , i / 7 ) ) ;
161
160
output = Math . floor ( points / 4 ) ;
162
- if ( output >= exp ) {
161
+ if ( output >= exp ) {
163
162
return i ;
164
163
}
165
164
}
@@ -171,44 +170,44 @@ export class Skills extends SkillShortcuts {
171
170
const currentExp = this . get ( skill ) . exp ;
172
171
const currentLevel = this . getLevelForExp ( currentExp ) ;
173
172
let finalExp = currentExp + ( exp * serverConfig . expRate ) ;
174
- if ( finalExp > 200000000 ) {
173
+ if ( finalExp > 200000000 ) {
175
174
finalExp = 200000000 ;
176
175
}
177
176
178
177
const finalLevel = this . getLevelForExp ( finalExp ) ;
179
178
180
179
this . setExp ( skill , finalExp ) ;
181
180
182
- if ( this . actor instanceof Player ) {
181
+ if ( this . actor instanceof Player ) {
183
182
this . actor . outgoingPackets . updateSkill ( this . getSkillId ( skill ) , finalLevel , finalExp ) ;
184
183
}
185
184
186
- if ( currentLevel !== finalLevel ) {
185
+ if ( currentLevel !== finalLevel ) {
187
186
this . setLevel ( skill , finalLevel ) ;
188
187
189
- if ( this . actor instanceof Player ) {
188
+ if ( this . actor instanceof Player ) {
190
189
const achievementDetails = skillDetails [ this . getSkillId ( skill ) ] ;
191
- if ( ! achievementDetails ) {
190
+ if ( ! achievementDetails ) {
192
191
return ;
193
192
}
194
193
195
194
this . actor . sendMessage ( `Congratulations, you just advanced a ` +
196
- `${ achievementDetails . name . toLowerCase ( ) } level.` ) ;
195
+ `${ achievementDetails . name . toLowerCase ( ) } level.` ) ;
197
196
this . showLevelUpDialogue ( skill , finalLevel ) ;
198
197
}
199
198
}
200
199
}
201
200
202
201
public showLevelUpDialogue ( skill : number | SkillName , level : number ) : void {
203
- if ( ! ( this . actor instanceof Player ) ) {
202
+ if ( ! ( this . actor instanceof Player ) ) {
204
203
return ;
205
204
}
206
205
207
206
const player = this . actor as Player ;
208
207
const achievementDetails = skillDetails [ this . getSkillId ( skill ) ] ;
209
208
const widgetId = achievementDetails . advancementWidgetId ;
210
209
211
- if ( ! widgetId ) {
210
+ if ( ! widgetId ) {
212
211
return ;
213
212
}
214
213
@@ -219,21 +218,25 @@ export class Skills extends SkillShortcuts {
219
218
type : 'CHAT' ,
220
219
closeOnWalk : true ,
221
220
beforeOpened : ( ) => {
222
- player . modifyWidget ( widgetId , { childId : 0 ,
223
- text : `<col=000080>Congratulations, you just advanced ${ startsWithVowel ( skillName ) ? 'an' : 'a' } ` +
224
- `${ skillName } level.</col>` } ) ;
225
- player . modifyWidget ( widgetId , { childId : 1 ,
226
- text : `Your ${ skillName } level is now ${ level } .` } ) ;
221
+ player . modifyWidget ( widgetId , {
222
+ childId : 0 ,
223
+ text : `<col=000080>Congratulations, you just advanced ${ startsWithVowel ( skillName ) ? 'an' : 'a' } ` +
224
+ `${ skillName } level.</col>`
225
+ } ) ;
226
+ player . modifyWidget ( widgetId , {
227
+ childId : 1 ,
228
+ text : `Your ${ skillName } level is now ${ level } .`
229
+ } ) ;
227
230
} ,
228
231
afterOpened : ( ) => {
229
- player . playGraphics ( { id : gfxIds . levelUpFireworks , delay : 0 , height : 125 } ) ;
232
+ player . playGraphics ( { id : gfxIds . levelUpFireworks , delay : 0 , height : 125 } ) ;
230
233
// @TODO sounds
231
234
}
232
235
} ) ;
233
236
}
234
237
235
- public getSkillId ( skill : number | SkillName ) : number {
236
- if ( typeof skill === 'number' ) {
238
+ public getSkillId ( skill : number | SkillName ) : number {
239
+ if ( typeof skill === 'number' ) {
237
240
return skill ;
238
241
} else {
239
242
const skillName = skill . toString ( ) . toUpperCase ( ) ;
@@ -242,7 +245,7 @@ export class Skills extends SkillShortcuts {
242
245
}
243
246
244
247
public get ( skill : number | SkillName ) : SkillValue {
245
- if ( typeof skill === 'number' ) {
248
+ if ( typeof skill === 'number' ) {
246
249
return this . _values [ skill ] ;
247
250
} else {
248
251
const skillName = skill . toString ( ) . toUpperCase ( ) ;
@@ -252,8 +255,8 @@ export class Skills extends SkillShortcuts {
252
255
253
256
private defaultValues ( ) : SkillValue [ ] {
254
257
const values : SkillValue [ ] = [ ] ;
255
- skillDetails . forEach ( s => values . push ( { exp : 0 , level : 1 } ) ) ;
256
- values [ Skill . HITPOINTS ] = { exp : 1154 , level : 10 } ;
258
+ skillDetails . forEach ( s => values . push ( { exp : 0 , level : 1 } ) ) ;
259
+ values [ Skill . HITPOINTS ] = { exp : 1154 , level : 10 } ;
257
260
return values ;
258
261
}
259
262
0 commit comments