package Ġgg . r sm od . plugins . content . skills . cook ing . action Ċ Ċ import Ġgg . r sm od . game . fs . Definition Set Ċ import Ġgg . r sm od . game . fs . def . Item Def Ċ import Ġgg . r sm od . game . model . queue . Queue Task Ċ import Ġgg . r sm od . plugins . api . Equipment Type Ċ import Ġgg . r sm od . plugins . api . Skills Ċ import Ġgg . r sm od . plugins . api . cfg . Items Ċ import Ġgg . r sm od . plugins . api . ext .* Ċ import Ġgg . r sm od . plugins . content . skills . cook ing . data . Me at Type Ċ Ċ class ĠCook Action ( private Ġval Ġdefs : ĠDefinition Set ) Ġ{ ĊĊĊĠĠĠ Ġprivate Ġval Ġme at Name Ġ= ĠMe at Type . values . associate Ġ{ Ġit . cook ed Ġto Ġ Ġdefs . get ( Item Def :: class . java , Ġit . cook ed ). name . toLowerCase () Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandles Ġthe Ġcook ing Ġof Ġa Ġme at ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtask ĠĠĠĠĠ ĠThe Ġqueued Ġaction Ġtask ĊĠĠĠĠ Ġ* Ġ@ param Ġraw Me at ĠĠĠĠĠĠ ĠThe Ġme at Ġdefinition ĊĠĠĠĠ Ġ* Ġ@ param Ġamount ĠĠĠ ĠThe Ġamount Ġthe Ġplayer Ġis Ġtrying Ġto Ġcook ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġcook ( task : ĠQueue Task , Ġraw Me at : ĠMe at Type , Ġamount : ĠInt , Ġcook Anim Ġ: ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! can Cook ( task , Ġraw Me at )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtask . player ĊĠĠĠĠĠĠĠ Ġval Ġinventory Ġ= Ġplayer . inventory ĊĊĠĠĠĠĠĠĠ Ġval Ġraw Me at Count Ġ= Ġinventory . getItem Count ( raw Me at . raw ) ĊĠĠĠĠĠĠĠ Ġval Ġmax Count Ġ= ĠMath . min ( amount , Ġraw Me at Count ) ĊĠĠĠĠĠĠĠ Ġval Ġme at Name Ġ= Ġplayer . world . definitions . get ( Item Def :: class . java , Ġraw Me at . cook ed ). name ĊĊĠĠĠĠĠĠĠ Ġrepeat ( max Count ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . animate ( cook Anim ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . wait ( ANIM ATION _ CYCLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . lock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . wait ( ANIM ATION _ CYCLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! can Cook ( task , Ġraw Me at )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . animate (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremove Raw Ġ= Ġinventory . remove ( item Ġ= Ġraw Me at . raw ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( remove Raw . has Succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( successful A te empt ( task , Ġraw Me at )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . filter able Message (" You Ġsuccessfully Ġcook Ġsome Ġ${ me at Name . plural Suffix ( 2 ). toLowerCase ()}. ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinventory . add ( raw Me at . cook ed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . add Xp ( Skills . CO OK ING , Ġraw Me at . xp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . filter able Message (" You Ġaccidentally Ġburn Ġthe Ġ${ me at Name . plural Suffix ( 2 ). toLowerCase ()}. ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinventory . add ( raw Me at . burn t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . unlock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . wait ( WAIT _ CYCLE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCal cu ate Ġsuccessful Ġcook ing Ġchance Ġif Ġn ob urn Level Ġis Ġnot Ġmet ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġsuccessful A te empt ( task : ĠQueue Task , Ġraw Me at : ĠMe at Type ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġtask . player ĊĠĠĠĠĠĠĠ Ġval Ġboost ed Skill Ġ= Ġp . get Skills (). getCurrent Level ( Skills . CO OK ING )+ getC ook ing Boost ( task ) ĊĠĠĠĠĠĠĠ Ġif ( boost ed Skill Ġ>= Ġraw Me at . nob urn Level ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSk ills . is Success ( boost ed Skill , Ġraw Me at . level Required ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCal cu ate Ġplayer Ġcook ing Ġboost Ġbonus ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun ĠgetC ook ing Boost ( task : ĠQueue Task ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( task . player . has Equ ipped ( Equipment Type . G LO V ES , ĠItems . CO OK ING _ GA UNT LE TS )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 3 ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġplayer Ġcan Ġcook Ġraw Me at ĠType ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġcan Cook ( task : ĠQueue Task , Ġraw Me at : ĠMe at Type ) Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġtask . player ĊĠĠĠĠĠĠĠ Ġval Ġinventory Ġ= Ġp . inventory ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! inventory . contains ( raw Me at . raw )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . message Box (" You Ġdon 't Ġhave Ġany Ġ Ġ${ me at Name [ raw Me at . cook ed ]} Ġto Ġcook .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( p . get Skills (). getCurrent Level ( Skills . CO OK ING ) Ġ< Ġraw Me at . level Required ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . message Box (" You Ġneed Ġa Ġ${ Skills . get Skill Name ( p . world , ĠSk ills . CO OK ING )} Ġlevel Ġof Ġat Ġleast Ġ${ raw Me at . level Required } Ġto Ġcook Ġ${ me at Name [ raw Me at . cook ed ]?. prefix An ()}. ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġanimation Ġplayed Ġwhen Ġcook ing Ġme at Ġwhile Ġstand ing ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠST AND ING _ CO OK ING _ ANIM Ġ= Ġ 8 9 6 ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġanimation Ġplayed Ġwhen Ġcook ing Ġme at Ġon Ġa Ġground Ġlevel Ġfire ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC RO UCH ING _ CO OK ING _ ANIM Ġ= Ġ 8 9 7 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġsound Ġplayed Ġwhen Ġs mel ting Ġa Ġbar ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCO OK ING _ SOUND Ġ= Ġ 2 7 2 5 Ġ// C ANT ĠF IND ĠY ET ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġnumber Ġof Ġticks Ġbetween Ġstarting Ġthe Ġanimation , Ġand Ġlocking Ġthe Ġplayer Ġto Ġthe Ġaction ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAN IM ATION _ CYCLE Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġnumber Ġof Ġticks Ġbefore Ġautomatically Ġcontinuing Ġthe Ġproduce Ġthe Ġnext Ġbar ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWAIT _ CYCLE Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ }