package Ġworld . player . skill . f let ch ing . attach Arrow Ċ Ċ import Ġapi . pre def .* Ċ import Ġio . l una . game . event . impl . Item On Item Event Ċ import Ġio . l una . game . model . mob . Player Ċ import Ġio . l una . game . model . mob . dialog ue . Make Item Dialog ue Interface Ċ Ċ /** Ċ Ġ* ĠOpen s Ġa Ġ[ Make Item Dialog ue Interface ] Ġfor Ġmaking Ġarrows . Ċ Ġ*/ Ċ fun Ġopen Interface ( msg : ĠItem On Item Event , Ġarrow : ĠArrow ?) Ġ{ ĊĠĠĠ Ġif Ġ( arrow Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterfaces Ġ= Ġmsg . pl r . interfaces ĊĠĠĠĠĠĠĠ Ġinterfaces . open ( object Ġ: ĠMake Item Dialog ue Interface ( arrow . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmake Item ( pl r : ĠPlayer , Ġid : ĠInt , Ġindex : ĠInt , Ġfor Amount : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpl r . submit Action ( Make Arrow Action ( pl r , Ġarrow , Ġfor Amount )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠInter cept Ġitem Ġon Ġitem Ġevent Ġto Ġopen Ġinterface . Ċ Ġ*/ Ċ on ( Item On Item Event :: class ) Ġ{ ĊĠĠĠ Ġwhen Ġ( Arrow . HEAD LESS ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget Id Ġ-> Ġopen Interface ( this , ĠArrow . TIP _ TO _ ARROW [ used Id ]) ĊĠĠĠĠĠĠĠ Ġused Id Ġ-> Ġopen Interface ( this , ĠArrow . TIP _ TO _ ARROW [ target Id ]) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠInter cept Ġeven Ġspecifically Ġfor Ġ[ Arrow . HEAD LESS _ ARROW ], Ġbecause Ġit Ġdiffers Ġfrom Ġothers . Ċ Ġ*/ Ċ Arrow . HEAD LESS _ ARROW . apply Ġ{ ĊĠĠĠ Ġon ( Item On Item Event :: class ) ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġmatches ( tip , Ġwith ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. then Ġ{ Ġopen Interface ( this , Ġthis @ apply ) Ġ} Ċ }