package Ġcom . ort . last w olf . domain . service . day change Ċ Ċ import Ġcom . ort . db fl ute . all common . C Def Ċ import Ġcom . ort . last w olf . domain . model . day change . Day Change Ċ import Ġcom . ort . last w olf . domain . model . v illage . V illage Ċ import Ġcom . ort . last w olf . domain . service . camp . Camp Domain Service Ċ import Ġcom . ort . last w olf . fw . Last w olf Date Util Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠE pi logue Domain Service ( ĊĠĠĠ Ġprivate Ġval Ġcamp Domain Service : ĠCamp Domain Service Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġtransition To Draw E pi logue ( day Change : ĠDay Change ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġæ ± º çĿĢ ãģĮ ãģ¤ ãģĦ ãģŁ ĊĠĠĠĠĠĠĠ Ġreturn Ġe pi logue V illage ( day Change , Ġtrue ). setIs Change ( day Change ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtransition To E pi logue IfNeeded ( day Change : ĠDay Change ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ãģ¾ ãģł æ±º çĿĢ ãģĮ ãģ¤ ãģĦ ãģ¦ãģĦ ãģªãģĦ ĊĠĠĠĠĠĠĠ Ġif Ġ(! day Change . v illage . isSet tled ()) Ġreturn Ġday Change ĊĠĠĠĠĠĠĠ Ġ// Ġæ ± º çĿĢ ãģĮ ãģ¤ ãģĦ ãģŁ ĊĠĠĠĠĠĠĠ Ġreturn Ġe pi logue V illage ( day Change , Ġfalse ). setIs Change ( day Change ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Day IfNeeded ( day Change : ĠDay Change ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ æĹ¥ ä»ĺ æĽ´æĸ° ãģ® å¿ħè¦ģ ãģĮ ãģª ãģĭ ãģ£ãģŁ ãĤī çµĤ äºĨ ĊĠĠĠĠĠĠĠ Ġif Ġ(! should Forward ( day Change . v illage )) Ġreturn Ġday Change ĊĠĠĠĠĠĠĠ Ġ// Ġ æĹ¥ ä»ĺ è¿½åĬł ĊĠĠĠĠĠĠĠ Ġreturn Ġadd New Day ( day Change ). setIs Change ( day Change ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Finished ( day Change : ĠDay Change ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ãĤ¹ãĥĨ ãĥ¼ãĤ¿ ãĤ¹ å¤īæĽ´ ĊĠĠĠĠĠĠĠ Ġval Ġv illage Ġ= Ġday Change . v illage . change Status ( C Def . V illage Status . çµĤ äºĨ ) ĊĠĠĠĠĠĠĠ Ġreturn Ġday Change . copy ( v illage Ġ= Ġv illage ). setIs Change ( day Change ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ================================================================= ================== ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAss ist ĠLogic ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ============ ĊĠĠĠ Ġprivate Ġfun Ġe pi logue V illage ( before Day Change : ĠDay Change , Ġis Draw : ĠBoolean ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ãĤ¹ãĥĨ ãĥ¼ãĤ¿ ãĤ¹ å¤īæĽ´ ãĢģ åĭ Ŀ åĪ© éĻ £ åĸ ¶ è¨Ńå®ļ ãĢģ åĭ Ŀ æķ Ĺ è¨Ńå®ļ ĊĠĠĠĠĠĠĠ Ġvar Ġday Change Ġ= Ġto E pi logue V illage ( before Day Change , Ġis Draw ) ĊĠĠĠĠĠĠĠ Ġ// ĠãĤ¨ ãĥĶ ãĥŃ ãĥ¼ãĤ ° éģ · ç§» ãĥ¡ ãĥĥãĤ»ãĥ¼ãĤ¸ ãĢģ åıĤ åĬł èĢħ ä¸Ģ è¦§ ãĥ¡ ãĥĥãĤ»ãĥ¼ãĤ¸ çĻ»éĮ² ĊĠĠĠĠĠĠĠ Ġday Change Ġ= Ġadd Message To E pi logue ( day Change ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġday Change . setIs Change ( before Day Change ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto E pi logue V illage ( day Change : ĠDay Change , Ġis Draw : ĠBoolean ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġday Change . copy ( v illage Ġ= Ġday Change . v illage . to E pi logue ( is Draw )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Message To E pi logue ( day Change : ĠDay Change ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlatest Day Id Ġ= Ġday Change . v illage . days . latest Day (). id ĊĠĠĠĠĠĠĠ Ġreturn Ġday Change . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessages Ġ= Ġday Change . messages ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠãĤ¨ ãĥĶ ãĥŃ ãĥ¼ãĤ ° éģ · ç§» ãĥ¡ ãĥĥãĤ»ãĥ¼ãĤ¸ çĻ»éĮ² ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( camp Domain Service . create Win Camp Message ( day Change . v illage . win Camp ?. to C def (), Ġlatest Day Id )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ æĹ¥ ä»ĺ ãĤĴ éĢ² ãĤģ ãĤĭ å¿ħè¦ģ ãģĮãģĤãĤĭ ãģĭ ĊĠĠĠ Ġprivate Ġfun Ġshould Forward ( v illage : ĠV illage ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠæĽ´æĸ° æĹ¥ æĻĤ ãĤĴ éģİ ãģ İ ãģ¦ãģĦãĤĭ ĊĠĠĠĠĠĠĠ Ġreturn Ġ! Last w olf Date Util . current LocalDateTime (). is Before ( v illage . days . latest Day (). endDate time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ æĹ¥ ä»ĺ è¿½åĬł ĊĠĠĠ Ġprivate Ġfun Ġadd New Day ( day Change : ĠDay Change ): ĠDay Change Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġday Change . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv illage Ġ= Ġday Change . v illage . add New Day () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }