package Ġcom . abb ise a . c aves . systems Ċ Ċ import Ġcom . abb ise a . c aves . functions . log Game Event Ċ import Ġcom . abb ise a . c aves . messages . Destroy Ċ import Ġcom . abb ise a . c aves . messages . Entity Destroyed Ċ import Ġcom . abb ise a . c aves . 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 ĠDest ruct ible Ġ: ĠBase Facet < Game Context , ĠDestroy >( Destroy :: class ) Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġreceive ( message : ĠDestroy ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( context , Ġdestroy er , Ġtarget , Ġcause ) Ġ= Ġmessage ĊĠĠĠĠĠĠĠ Ġcontext . world . remove Entity ( target ) ĊĠĠĠĠĠĠĠ Ġdestroy er . receive Message ( Entity Destroyed ( context , Ġtarget , Ġdestroy er )) ĊĠĠĠĠĠĠĠ Ġlog Game Event ("$ target Ġdies Ġafter Ġreceiving Ġ$ cause .", ĠDest ruct ible ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCon su med ĊĠĠĠ Ġ} Ċ }