package Ġcom . example . c aves of z ir con . systems Ċ Ċ import Ġcom . example . c aves of z ir con . attributes . types . addItem Ċ import Ġcom . example . c aves of z ir con . extensions . is Player Ċ import Ġcom . example . c aves of z ir con . functions . log Game Event Ċ import Ġcom . example . c aves of z ir con . messages . Pick Item Up Ċ import Ġcom . example . c aves of z ir con . world . Game Context Ċ import Ġorg . hex works . ame th yst . api . Cons umed Ċ import Ġorg . hex works . ame th yst . api . Response Ċ import Ġorg . hex works . ame th yst . api . base . Base Facet Ċ Ċ object ĠItem Picker Ġ: ĠBase Facet < Game Context , ĠPick Item Up >( Pick Item Up :: class ) Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġreceive ( message : ĠPick Item Up ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( context , Ġitem Holder , Ġposition ) Ġ= Ġmessage ĊĠĠĠĠĠĠĠ Ġval Ġworld Ġ= Ġcontext . world ĊĠĠĠĠĠĠĠ Ġworld . find Top Item ( position ). map Ġ{ Ġitem Ġ-> ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Holder . addItem ( item )) Ġ{ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld . remove Entity ( item ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= Ġif Ġ( item Holder . is Player ) Ġ" You " Ġelse Ġ" The Ġ$ item Holder " Ġ// Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverb Ġ= Ġif Ġ( item Holder . is Player ) Ġ" pick Ġup " Ġelse Ġ" p icks Ġup " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Game Event ("$ subject Ġ$ verb Ġthe Ġ$ item .", ĠItem Picker ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠCon su med ĊĠĠĠ Ġ} ĊĊĊ Ċ } Ċ