package Ġch . lead rian . samp . k amp . core . api . service Ċ Ċ import Ġch . lead rian . samp . k amp . core . api . constants . Player Markers Mode Ċ import Ġch . lead rian . samp . k amp . core . api . constants . SAMP Constants Ċ import Ġch . lead rian . samp . k amp . core . api . constants . Weapon Model Ċ import Ġch . lead rian . samp . k amp . core . api . entity . Player Ċ import Ġch . lead rian . samp . k amp . core . api . entity . id . Player Id Ċ import Ġch . lead rian . samp . k amp . core . api . exception . NoSuch Entity Exception Ċ import Ġch . lead rian . samp . k amp . core . runtime . SAMP Native Function Executor Ċ import Ġch . lead rian . samp . k amp . core . runtime . entity . registry . Player Registry Ċ import Ġch . lead rian . samp . k amp . core . runtime . entity . registry . Player Search Index Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Assertions . catch Throwable Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Enum Source Ċ Ċ internal Ġclass ĠPlayer Service Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġplayer Service : ĠPlayer Service ĊĊĠĠĠ Ġprivate Ġval Ġplayer Registry Ġ= Ġmock k < Player Registry >() ĊĠĠĠ Ġprivate Ġval Ġplayer Search Index Ġ= Ġmock k < Player Search Index >() ĊĠĠĠ Ġprivate Ġval Ġnative Function Executor Ġ= Ġmock k < SAMP Native Function Executor >() ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer Service Ġ= ĠPlayer Service ( player Registry , Ġplayer Search Index , Ġnative Function Executor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠIs Player Connected Tests Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġgiven No Player For Player Id It Should Return False () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Id Ġ= ĠPlayer Id . valueOf ( 6 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Registry [ player Id ] Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠisValid Ġ= Ġplayer Service . is Player Connected ( player Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( isValid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġgiven Player For Player Id Exists It Should Return True () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Id Ġ= ĠPlayer Id . valueOf ( 6 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Registry [ player Id ] Ġ} Ġreturns Ġplayer ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠisValid Ġ= Ġplayer Service . is Player Connected ( player Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( isValid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠGet Player Tests Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġgiven Player Id IsValid It Should Return Player () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Id Ġ= ĠPlayer Id . valueOf ( 1 3 3 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Player Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Registry [ player Id ] Ġ} Ġreturns Ġexpected Player ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġplayer Service . getPlayer ( player Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġgiven Invalid Player Id It Should Throw Exception () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Id Ġ= ĠPlayer Id . valueOf ( 1 3 3 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Registry [ player Id ] Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcaught Throwable Ġ= Ġcatch Throwable Ġ{ Ġplayer Service . getPlayer ( player Id ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( caught Throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isInstanceOf ( NoSuch Entity Exception :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. has Message (" No Ġplayer Ġwith ĠID Ġ 1 3 3 7 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return All Players () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer 1 Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠ Ġval Ġplayer 2 Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Registry . getAll () Ġ} Ġreturns ĠlistOf ( player 1 , Ġplayer 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġplayers Ġ= Ġplayer Service . getAll Players () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( players ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( player 1 , Ġplayer 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Enable St unt Bonus ForAll () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . enable St unt Bonus ForAll ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . enable St unt Bonus ForAll () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . enable St unt Bonus ForAll ( true ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Disable St unt Bonus ForAll () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . enable St unt Bonus ForAll ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . disable St unt Bonus ForAll () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . enable St unt Bonus ForAll ( false ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Max Players () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . getMax Players () Ġ} Ġreturns Ġ 6 9 ĊĊĠĠĠĠĠĠĠ Ġval Ġmax Players Ġ= Ġplayer Service . getMax Players () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( max Players ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 6 9 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return PoolSize () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . getPlayer PoolSize () Ġ} Ġreturns Ġ 6 9 ĊĊĠĠĠĠĠĠĠ Ġval Ġpool Size Ġ= Ġplayer Service . get PoolSize () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( pool Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 6 9 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Name Tags () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . show Name Tags ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . show Name Tags () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . show Name Tags ( true ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Hide Name Tags () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . show Name Tags ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . hide Name Tags () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . show Name Tags ( false ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġ@ Enum Source ( Player Markers Mode :: class ) ĊĠĠĠ Ġfun Ġshould Show Markers ( mode : ĠPlayer Markers Mode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . show Player Markers ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . show Markers ( mode ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . show Player Markers ( mode . value ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Allow Interior We apons () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . allow Interior We apons ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . allow Interior We apons () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . allow Interior We apons ( true ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould For bid Interior We apons () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . allow Interior We apons ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . for bid Interior We apons () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . allow Interior We apons ( false ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Set Death Drop Amount () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . set Death Drop Amount ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . set Death Drop Amount ( 5 0 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . set Death Drop Amount ( 5 0 0 0 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Enable Zone Names () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . enable Zone Names ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . enable Zone Names () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . enable Zone Names ( true ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Disable Zone Names () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . enable Zone Names ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . disable Zone Names () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . enable Zone Names ( false ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Use Player Ped Animations () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . use Player Ped Anim s () Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . use Player Ped Animations () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . use Player Ped Anim s () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould SetName Tag Draw Distance () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . setName Tag Draw Distance ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . setName Tag Draw Distance ( 1 3 . 3 7 f ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . setName Tag Draw Distance ( 1 3 . 3 7 f ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Disable Name Tag Line Of S ight () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . disable Name Tag LO S () Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . disable Name Tag Line Of S ight () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . disable Name Tag LO S () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Limit Global Chat Radius () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . limit Global Chat Radius ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . limit Global Chat Radius ( 1 8 7 f ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . limit Global Chat Radius ( 1 8 7 f ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Limit Player Marker Radius () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . limit Player Marker Radius ( any ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠ Ġplayer Service . limit Player Marker Radius ( 1 8 7 f ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnative Function Executor . limit Player Marker Radius ( 1 8 7 f ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Get Player ByName () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" h ans . w ur st " ĊĠĠĠĠĠĠĠ Ġval Ġexpected Player Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Search Index . getPlayer ( any ()) Ġ} Ġreturns Ġexpected Player ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġplayer Service . getPlayer ByName ( name ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Player ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Find Players ByName () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer 1 Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠ Ġval Ġplayer 2 Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" h ans . w ur st " ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġplayer Search Index . find Players ( name ) Ġ} Ġreturns ĠlistOf ( player 1 , Ġplayer 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġplayers Ġ= Ġplayer Service . find Players ByName ( name ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( players ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( player 1 , Ġplayer 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠSend Death Message Tests Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv ictim Ġ= Ġmock k < Player >() ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġv ictim Id Ġ= ĠPlayer Id . valueOf ( 5 0 ) ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġv ictim . id Ġ} Ġreturns Ġv ictim Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġshould Death Message With K iller () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkill er Id Ġ= ĠPlayer Id . valueOf ( 7 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkill er Ġ= Ġmock k < Player > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġid Ġ} Ġreturns Ġkill er Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . send Death Message ( any (), Ġany (), Ġany ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Service . send Death Message ( v ictim Ġ= Ġv ictim , Ġweapon Ġ= ĠWeapon Model . AK 4 7 , Ġkill er Ġ= Ġkill er ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnative Function Executor . send Death Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkill er Ġ= Ġkill er Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweapon Ġ= ĠWeapon Model . AK 4 7 . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk il lee Ġ= Ġv ictim Id . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġshould Death Message Without K iller () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnative Function Executor . send Death Message ( any (), Ġany (), Ġany ()) Ġ} Ġreturns Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Service . send Death Message ( v ictim Ġ= Ġv ictim , Ġweapon Ġ= ĠWeapon Model . AK 4 7 , Ġkill er Ġ= Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnative Function Executor . send Death Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkill er Ġ= ĠS AMP Constants . INVALID _ PLAYER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweapon Ġ= ĠWeapon Model . AK 4 7 . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk il lee Ġ= Ġv ictim Id . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }