package Ġground War . fog Of War Ċ Ċ import Ġground War .* Ċ Ċ /* Ċ Map Ġfor Ġeach Ġnode Ġand Ġarc Ġin Ġa Ġworld .... in Ġfact Ġ, Ġone Ġdoes Ġnot Ġneed Ġto Ġkeep Ġtrack Ġor Ġarc Ġvisibility , Ċ as Ġthis Ġis Ġdefined Ġby Ġvisibility Ġto Ġeither Ġof Ġthe Ġterminal Ġnodes ! Ċ Ġ*/ Ċ data Ġclass ĠH istoric Visibility ( val Ġnodes : ĠMap < Int , ĠPair < Int , ĠDouble >>) Ġ: ĠMap < Int , ĠPair < Int , ĠDouble >> Ġby Ġnodes Ġ{ ĊĊĠĠĠ Ġfun Ġlast Visible ( node : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnodes . get OrDefault ( node , ĠPair (- 1 , Ġ 0 . 0 )). first ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlast Known Force ( node : ĠInt ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnodes . get OrDefault ( node , ĠPair (- 1 , Ġ 0 . 0 )). second ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Node ( node : ĠInt , Ġtime : ĠInt , Ġsize : ĠDouble ): ĠH istoric Visibility Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠH istoric Visibility ( nodes Ġ+ ĠPair ( node , ĠPair ( time , Ġsize ))) ĊĠĠĠ Ġ} Ċ }