package Ġgg . r sm od . plugins . content . skills . th ie ving . pick po cket Ċ Ċ import Ġgg . r sm od . plugins . content . com bat . is Attack ing Ċ import Ġgg . r sm od . plugins . content . com bat . is Being Attack ed Ċ Ċ private Ġval ĠP ICK PO CKET _ ANIM ATION Ġ= Ġ 8 8 1 Ċ private Ġval ĠG LO V ES _ OF _ SIL ENCE _ B ON US Ġ= Ġ 5 Ċ Ċ Pick po cket Npc . values . forEach Ġ{ Ġpick po cket Npc Ġ-> ĊĠĠĠ Ġpick po cket Npc . npc Ids . forEach Ġ{ Ġnpc Id Ġ-> Ċ // ĠĠĠĠĠĠĠ Ġon _ npc _ option ( npc Ġ= Ġnpc Id , Ġoption Ġ= Ġ" pick po cket ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . queue Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpick po cket ( npc Id , Ġpick po cket Npc ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun ĠQueue Task . pick po cket ( npc Id : ĠInt , Ġnpc : ĠPick po cket Npc ) Ġ{ ĊĠĠĠ Ġval Ġplayer Th ie ving L vl Ġ= Ġplayer . get Skills (). getCurrent Level ( Skills . TH IE V ING ) ĊĠĠĠ Ġval Ġnpc Name Ġ= Ġnpc . npc Name Ġ?: Ġworld . definitions . get ( Npc Def :: class . java , Ġnpc Id ). name ĊĠĠĠ Ġif Ġ( player Th ie ving L vl Ġ< Ġnpc . req Level ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . message (" You Ġneed Ġlevel Ġ${ npc . req Level } Ġth ie ving Ġto Ġpick Ġthe Ġ$ npc Name 's Ġp ocket .") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( player . is Attack ing () Ġ|| Ġplayer . is Being Attack ed ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . message (" You Ġcan 't Ġpick po cket Ġwhile Ġin Ġcom bat !") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(! player . inventory . has Space ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . message (" You Ġdon 't Ġhave Ġenough Ġinventory Ġspace Ġto Ġpick po cket !") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// pick po cket ing Ġanimation Ġand Ġstarting Ġmessage ĊĠĠĠ Ġplayer . animate ( P ICK PO CKET _ ANIM ATION ) ĊĠĠĠ Ġplayer . message (" You Ġattempt Ġto Ġpick po cket Ġthe Ġ$ npc Name ...") ĊĊĠĠĠ Ġ// wait Ġ 3 Ġgame Ġcycles ĊĠĠĠ Ġplayer . lock Ġ= ĠLock State . FULL _ WITH _ ITEM _ INTER ACTION ĊĠĠĠ Ġwait ( 3 ) ĊĠĠĠ Ġplayer . lock Ġ= ĠLock State . NONE ĊĊĠĠĠ Ġif Ġ( get Pick po cket Success ( player Th ie ving L vl , Ġnpc , Ġplayer )) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġplayer . message (" ... and Ġyou Ġsucceed !") ĊĠĠĠĠĠĠĠ Ġval Ġreward Ġ= Ġnpc . reward Set . getRandom () ĊĠĠĠĠĠĠĠ Ġplayer . inventory . add ( reward ) ĊĠĠĠĠĠĠĠ Ġplayer . add Xp ( Skills . TH IE V ING , Ġnpc . experience ) ĊĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ// if Ġfailed , Ġsends Ġrelevant Ġmessages ĊĠĠĠĠĠĠĠ Ġplayer . message (" ... and Ġyou Ġhave Ġfailed .") ĊĊĠĠĠĠĠĠĠ Ġ// damage s Ġplayer Ġfor Ġa Ġvalue Ġin Ġthe Ġnpc 's Ġdamage Ġrange ĊĠĠĠĠĠĠĠ Ġplayer . hit ( npc . damage . random ()) ĊĊĠĠĠĠĠĠĠ Ġ// st uns Ġthe Ġplayer Ġthen Ġwaits Ġtil Ġthe Ġst un Ġis Ġdone Ġto Ġcontinue ĊĠĠĠĠĠĠĠ Ġplayer . st un ( npc . st un Ticks ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġget Pick po cket Success ( player Th ie ving L vl : ĠInt , Ġnpc : ĠPick po cket Npc , Ġplayer : ĠPlayer ): ĠBoolean { ĊĊĠĠĠ Ġ// gets Ġwhether Ġthe Ġplayer Ġhas ĠG lo ves Ġof ĠSil ence Ġequ ipped , Ġand Ġgives Ġthe Ġ 5 % Ġbonus Ġif Ġthey Ġdo ĊĠĠĠ Ġval Ġbonus Ġ= Ġif Ġ( player . has Equ ipped ( Equipment Type . G LO V ES , ĠItems . G LO V ES _ OF _ SIL ENCE )) ĠG LO V ES _ OF _ SIL ENCE _ B ON US Ġelse Ġ 0 ĊĊĠĠĠ Ġ// app lies Ġthe Ġinterpolate Ġfunction . Ġselects Ġa Ġchance Ġfrom Ġ 5 5 % Ġto Ġ 9 5 % Ġbased Ġon Ġth ie ving Ġlevel ĊĠĠĠ Ġreturn Ġplayer Th ie ving L vl . interpolate ( 5 5 , Ġ 9 5 , Ġnpc . req Level , Ġ 9 9 , Ġ 1 0 0 Ġ- Ġbonus ) Ċ }