@quenty/deathreport 10.44.0 → 10.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [10.45.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/deathreport@10.44.1...@quenty/deathreport@10.45.0) (2026-06-24)
7
+
8
+ ### Features
9
+
10
+ - **deathreport:** convert package to --!strict ([#719](https://github.com/Quenty/NevermoreEngine/issues/719)) ([238945a](https://github.com/Quenty/NevermoreEngine/commit/238945acb31670a95a3f7b01657066179968baf4))
11
+
12
+ ## [10.44.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/deathreport@10.44.0...@quenty/deathreport@10.44.1) (2026-05-30)
13
+
14
+ **Note:** Version bump only for package @quenty/deathreport
15
+
6
16
  # [10.44.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/deathreport@10.43.0...@quenty/deathreport@10.44.0) (2026-05-29)
7
17
 
8
18
  **Note:** Version bump only for package @quenty/deathreport
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/deathreport",
3
- "version": "10.44.0",
3
+ "version": "10.45.0",
4
4
  "description": "Death report service which will track the deaths of players",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -33,20 +33,20 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@quenty/baseobject": "10.13.0",
36
- "@quenty/binder": "14.36.0",
37
- "@quenty/characterutils": "12.32.0",
36
+ "@quenty/binder": "14.36.1",
37
+ "@quenty/characterutils": "12.32.1",
38
38
  "@quenty/humanoidkillerutils": "2.3.5",
39
39
  "@quenty/loader": "10.11.0",
40
40
  "@quenty/maid": "3.9.0",
41
41
  "@quenty/nevermore-test-runner": "1.4.0",
42
- "@quenty/playerhumanoidbinder": "14.37.0",
43
- "@quenty/remoting": "12.32.0",
44
- "@quenty/rx": "13.28.2",
45
- "@quenty/rxbinderutils": "14.36.0",
46
- "@quenty/servicebag": "11.18.0",
47
- "@quenty/signal": "7.13.0",
42
+ "@quenty/playerhumanoidbinder": "14.37.1",
43
+ "@quenty/remoting": "12.32.1",
44
+ "@quenty/rx": "13.28.3",
45
+ "@quenty/rxbinderutils": "14.36.1",
46
+ "@quenty/servicebag": "11.18.1",
47
+ "@quenty/signal": "7.13.1",
48
48
  "@quenty/table": "3.9.2",
49
49
  "@quentystudios/jest-lua": "3.10.0-quenty.2"
50
50
  },
51
- "gitHead": "f4a374a0a294ee8900aa5cb68ab138b0acf3e0ae"
51
+ "gitHead": "d81b1c01ac4d0bdbd90045e6c7c4aafb5ff5fe92"
52
52
  }
@@ -7,11 +7,14 @@ local require = require(script.Parent.loader).load(script)
7
7
 
8
8
  local Binder = require("Binder")
9
9
  local BinderProvider = require("BinderProvider")
10
+ local PlayerDeathTrackerClient = require("PlayerDeathTrackerClient")
11
+ local PlayerKillTrackerClient = require("PlayerKillTrackerClient")
10
12
  local ServiceBag = require("ServiceBag")
13
+ local TeamKillTrackerClient = require("TeamKillTrackerClient")
11
14
 
12
15
  return BinderProvider.new(script.Name, function(self, serviceBag: ServiceBag.ServiceBag)
13
16
  -- Stats
14
- self:Add(Binder.new("TeamKillTracker", require("TeamKillTrackerClient"), serviceBag))
15
- self:Add(Binder.new("PlayerKillTracker", require("PlayerKillTrackerClient"), serviceBag))
16
- self:Add(Binder.new("PlayerDeathTracker", require("PlayerDeathTrackerClient"), serviceBag))
17
+ self:Add(Binder.new("TeamKillTracker", TeamKillTrackerClient :: any, serviceBag))
18
+ self:Add(Binder.new("PlayerKillTracker", PlayerKillTrackerClient :: any, serviceBag))
19
+ self:Add(Binder.new("PlayerDeathTracker", PlayerDeathTrackerClient :: any, serviceBag))
17
20
  end)
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  Centralized death reporting service which can be used to track
4
4
  deaths.
@@ -105,7 +105,7 @@ end
105
105
  @param character Model
106
106
  @return Observable<DeathReport>
107
107
  ]=]
108
- function DeathReportServiceClient:ObserveCharacterKillerReports(character)
108
+ function DeathReportServiceClient:ObserveCharacterKillerReports(character: Model)
109
109
  assert(typeof(character) == "Instance" and character:IsA("Model"), "Bad character")
110
110
 
111
111
  return self._reportProcessor:ObserveCharacterKillerReports(character)
@@ -117,7 +117,7 @@ end
117
117
  @param character Model
118
118
  @return Observable<DeathReport>
119
119
  ]=]
120
- function DeathReportServiceClient:ObserveCharacterDeathReports(character)
120
+ function DeathReportServiceClient:ObserveCharacterDeathReports(character: Model)
121
121
  assert(typeof(character) == "Instance" and character:IsA("Model"), "Bad character")
122
122
 
123
123
  return self._reportProcessor:ObserveCharacterDeathReports(character)
@@ -131,7 +131,7 @@ function DeathReportServiceClient:GetLastDeathReports()
131
131
  return self._lastDeathReports
132
132
  end
133
133
 
134
- function DeathReportServiceClient:_handleClientEvent(deathReport)
134
+ function DeathReportServiceClient:_handleClientEvent(deathReport: DeathReportUtils.DeathReport)
135
135
  assert(DeathReportUtils.isDeathReport(deathReport), "Bad deathreport")
136
136
 
137
137
  if typeof(deathReport.adornee) ~= "Instance" then
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class PlayerDeathTrackerClient
4
4
  ]=]
@@ -12,26 +12,36 @@ local PlayerDeathTrackerClient = setmetatable({}, BaseObject)
12
12
  PlayerDeathTrackerClient.ClassName = "PlayerDeathTrackerClient"
13
13
  PlayerDeathTrackerClient.__index = PlayerDeathTrackerClient
14
14
 
15
- function PlayerDeathTrackerClient.new(tracker, serviceBag: ServiceBag.ServiceBag)
16
- local self = setmetatable(BaseObject.new(tracker), PlayerDeathTrackerClient)
15
+ export type PlayerDeathTrackerClient =
16
+ typeof(setmetatable(
17
+ {} :: {
18
+ _serviceBag: ServiceBag.ServiceBag,
19
+ DeathsChanged: RBXScriptSignal,
20
+ },
21
+ {} :: typeof({ __index = PlayerDeathTrackerClient })
22
+ ))
23
+ & BaseObject.BaseObject
24
+
25
+ function PlayerDeathTrackerClient.new(tracker: IntValue, serviceBag: ServiceBag.ServiceBag): PlayerDeathTrackerClient
26
+ local self: PlayerDeathTrackerClient = setmetatable(BaseObject.new(tracker) :: any, PlayerDeathTrackerClient)
17
27
 
18
28
  self._serviceBag = assert(serviceBag, "No serviceBag")
19
29
 
20
- self.DeathsChanged = self._obj.Changed
30
+ self.DeathsChanged = (self._obj :: IntValue).Changed
21
31
 
22
32
  return self
23
33
  end
24
34
 
25
- function PlayerDeathTrackerClient:GetDeathValue()
26
- return self._obj
35
+ function PlayerDeathTrackerClient.GetDeathValue(self: PlayerDeathTrackerClient): IntValue
36
+ return self._obj :: IntValue
27
37
  end
28
38
 
29
- function PlayerDeathTrackerClient:GetPlayer()
30
- return self._obj.Parent
39
+ function PlayerDeathTrackerClient.GetPlayer(self: PlayerDeathTrackerClient): Instance?
40
+ return (self._obj :: IntValue).Parent
31
41
  end
32
42
 
33
- function PlayerDeathTrackerClient:GetKills()
34
- return self._obj.Value
43
+ function PlayerDeathTrackerClient.GetKills(self: PlayerDeathTrackerClient): number
44
+ return (self._obj :: IntValue).Value
35
45
  end
36
46
 
37
47
  return PlayerDeathTrackerClient
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class PlayerKillTrackerClient
4
4
  ]=]
@@ -12,8 +12,19 @@ local PlayerKillTrackerClient = setmetatable({}, BaseObject)
12
12
  PlayerKillTrackerClient.ClassName = "PlayerKillTrackerClient"
13
13
  PlayerKillTrackerClient.__index = PlayerKillTrackerClient
14
14
 
15
- function PlayerKillTrackerClient.new(tracker, serviceBag: ServiceBag.ServiceBag)
16
- local self = setmetatable(BaseObject.new(tracker), PlayerKillTrackerClient)
15
+ export type PlayerKillTrackerClient =
16
+ typeof(setmetatable(
17
+ {} :: {
18
+ _obj: IntValue,
19
+ _serviceBag: ServiceBag.ServiceBag,
20
+ KillsChanged: RBXScriptSignal,
21
+ },
22
+ {} :: typeof({ __index = PlayerKillTrackerClient })
23
+ ))
24
+ & BaseObject.BaseObject
25
+
26
+ function PlayerKillTrackerClient.new(tracker: IntValue, serviceBag: ServiceBag.ServiceBag): PlayerKillTrackerClient
27
+ local self: PlayerKillTrackerClient = setmetatable(BaseObject.new(tracker) :: any, PlayerKillTrackerClient)
17
28
 
18
29
  self._serviceBag = assert(serviceBag, "No serviceBag")
19
30
 
@@ -22,15 +33,15 @@ function PlayerKillTrackerClient.new(tracker, serviceBag: ServiceBag.ServiceBag)
22
33
  return self
23
34
  end
24
35
 
25
- function PlayerKillTrackerClient:GetKillValue()
36
+ function PlayerKillTrackerClient.GetKillValue(self: PlayerKillTrackerClient): IntValue
26
37
  return self._obj
27
38
  end
28
39
 
29
- function PlayerKillTrackerClient:GetPlayer()
40
+ function PlayerKillTrackerClient.GetPlayer(self: PlayerKillTrackerClient): Instance?
30
41
  return self._obj.Parent
31
42
  end
32
43
 
33
- function PlayerKillTrackerClient:GetKills()
44
+ function PlayerKillTrackerClient.GetKills(self: PlayerKillTrackerClient): number
34
45
  return self._obj.Value
35
46
  end
36
47
 
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class TeamKillTrackerClient
4
4
  ]=]
@@ -11,24 +11,33 @@ local TeamKillTrackerClient = setmetatable({}, BaseObject)
11
11
  TeamKillTrackerClient.ClassName = "TeamKillTrackerClient"
12
12
  TeamKillTrackerClient.__index = TeamKillTrackerClient
13
13
 
14
- function TeamKillTrackerClient.new(tracker)
15
- local self = setmetatable(BaseObject.new(tracker), TeamKillTrackerClient)
14
+ export type TeamKillTrackerClient =
15
+ typeof(setmetatable(
16
+ {} :: {
17
+ KillsChanged: RBXScriptSignal,
18
+ },
19
+ {} :: typeof({ __index = TeamKillTrackerClient })
20
+ ))
21
+ & BaseObject.BaseObject
16
22
 
17
- self.KillsChanged = self._obj.Changed
23
+ function TeamKillTrackerClient.new(tracker: IntValue): TeamKillTrackerClient
24
+ local self: TeamKillTrackerClient = setmetatable(BaseObject.new(tracker) :: any, TeamKillTrackerClient)
25
+
26
+ self.KillsChanged = self:GetKillValue().Changed
18
27
 
19
28
  return self
20
29
  end
21
30
 
22
- function TeamKillTrackerClient:GetKillValue()
23
- return self._obj
31
+ function TeamKillTrackerClient.GetKillValue(self: TeamKillTrackerClient): IntValue
32
+ return self._obj :: IntValue
24
33
  end
25
34
 
26
- function TeamKillTrackerClient:GetTeam()
27
- return self._obj.Parent
35
+ function TeamKillTrackerClient.GetTeam(self: TeamKillTrackerClient): Instance?
36
+ return self:GetKillValue().Parent
28
37
  end
29
38
 
30
- function TeamKillTrackerClient:GetKills()
31
- return self._obj.Value
39
+ function TeamKillTrackerClient.GetKills(self: TeamKillTrackerClient): number
40
+ return self:GetKillValue().Value
32
41
  end
33
42
 
34
43
  return TeamKillTrackerClient
@@ -7,11 +7,14 @@ local require = require(script.Parent.loader).load(script)
7
7
 
8
8
  local Binder = require("Binder")
9
9
  local BinderProvider = require("BinderProvider")
10
+ local PlayerDeathTracker = require("PlayerDeathTracker")
11
+ local PlayerKillTracker = require("PlayerKillTracker")
10
12
  local ServiceBag = require("ServiceBag")
13
+ local TeamKillTracker = require("TeamKillTracker")
11
14
 
12
15
  return BinderProvider.new(script.Name, function(self, serviceBag: ServiceBag.ServiceBag)
13
16
  -- Stats
14
- self:Add(Binder.new("TeamKillTracker", require("TeamKillTracker"), serviceBag))
15
- self:Add(Binder.new("PlayerKillTracker", require("PlayerKillTracker"), serviceBag))
16
- self:Add(Binder.new("PlayerDeathTracker", require("PlayerDeathTracker"), serviceBag))
17
+ self:Add(Binder.new("TeamKillTracker", TeamKillTracker :: any, serviceBag))
18
+ self:Add(Binder.new("PlayerKillTracker", PlayerKillTracker :: any, serviceBag))
19
+ self:Add(Binder.new("PlayerDeathTracker", PlayerDeathTracker :: any, serviceBag))
17
20
  end)
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class DeathTrackedHumanoid
4
4
  ]=]
@@ -14,11 +14,22 @@ local DeathTrackedHumanoid = setmetatable({}, BaseObject)
14
14
  DeathTrackedHumanoid.ClassName = "DeathTrackedHumanoid"
15
15
  DeathTrackedHumanoid.__index = DeathTrackedHumanoid
16
16
 
17
- function DeathTrackedHumanoid.new(humanoid: Humanoid, serviceBag: ServiceBag.ServiceBag)
18
- local self = setmetatable(BaseObject.new(humanoid), DeathTrackedHumanoid)
17
+ export type DeathTrackedHumanoid =
18
+ typeof(setmetatable(
19
+ {} :: {
20
+ _obj: Humanoid,
21
+ _serviceBag: ServiceBag.ServiceBag,
22
+ _deathReportService: DeathReportService.DeathReportService,
23
+ },
24
+ {} :: typeof({ __index = DeathTrackedHumanoid })
25
+ ))
26
+ & BaseObject.BaseObject
27
+
28
+ function DeathTrackedHumanoid.new(humanoid: Humanoid, serviceBag: ServiceBag.ServiceBag): DeathTrackedHumanoid
29
+ local self: DeathTrackedHumanoid = setmetatable(BaseObject.new(humanoid) :: any, DeathTrackedHumanoid)
19
30
 
20
31
  self._serviceBag = assert(serviceBag, "No serviceBag")
21
- self._deathReportService = self._serviceBag:GetService(DeathReportService)
32
+ self._deathReportService = self._serviceBag:GetService(DeathReportService) :: any
22
33
 
23
34
  self._maid._diedEvent = self._obj:GetPropertyChangedSignal("Health"):Connect(function()
24
35
  self:_handleDeath()
@@ -27,7 +38,7 @@ function DeathTrackedHumanoid.new(humanoid: Humanoid, serviceBag: ServiceBag.Ser
27
38
  return self
28
39
  end
29
40
 
30
- function DeathTrackedHumanoid:_handleDeath()
41
+ function DeathTrackedHumanoid._handleDeath(self: DeathTrackedHumanoid)
31
42
  -- make sure we haven't already reported and this is a deferred event.
32
43
  if not self._maid._diedEvent then
33
44
  return
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class PlayerDeathTracker
4
4
  ]=]
@@ -13,15 +13,27 @@ local PlayerDeathTracker = setmetatable({}, BaseObject)
13
13
  PlayerDeathTracker.ClassName = "PlayerDeathTracker"
14
14
  PlayerDeathTracker.__index = PlayerDeathTracker
15
15
 
16
- function PlayerDeathTracker.new(scoreObject, serviceBag: ServiceBag.ServiceBag)
17
- local self = setmetatable(BaseObject.new(scoreObject), PlayerDeathTracker)
16
+ export type PlayerDeathTracker =
17
+ typeof(setmetatable(
18
+ {} :: {
19
+ _obj: IntValue,
20
+ _serviceBag: ServiceBag.ServiceBag,
21
+ _deathReportService: DeathReportService.DeathReportService,
22
+ _player: Player,
23
+ },
24
+ {} :: typeof({ __index = PlayerDeathTracker })
25
+ ))
26
+ & BaseObject.BaseObject
27
+
28
+ function PlayerDeathTracker.new(scoreObject: IntValue, serviceBag: ServiceBag.ServiceBag): PlayerDeathTracker
29
+ local self: PlayerDeathTracker = setmetatable(BaseObject.new(scoreObject) :: any, PlayerDeathTracker)
18
30
 
19
31
  self._serviceBag = assert(serviceBag, "No serviceBag")
20
- self._deathReportService = self._serviceBag:GetService(DeathReportService)
32
+ self._deathReportService = self._serviceBag:GetService(DeathReportService) :: any
21
33
 
22
- self._player = self._obj.Parent
23
-
24
- assert(self._player and self._player:IsA("Player"), "Bad player")
34
+ local player = self._obj.Parent
35
+ assert(player and player:IsA("Player"), "Bad player")
36
+ self._player = player
25
37
 
26
38
  self._maid:GiveTask(self._deathReportService:ObservePlayerDeathReports(self._player):Subscribe(function(deathReport)
27
39
  assert(deathReport.player == self._player, "Bad player")
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class PlayerKillTracker
4
4
  ]=]
@@ -16,22 +16,24 @@ PlayerKillTracker.__index = PlayerKillTracker
16
16
  export type PlayerKillTracker =
17
17
  typeof(setmetatable(
18
18
  {} :: {
19
+ _obj: IntValue,
19
20
  _serviceBag: ServiceBag.ServiceBag,
20
- _deathReportService: any,
21
+ _deathReportService: DeathReportService.DeathReportService,
21
22
  _player: Player,
22
23
  },
23
24
  {} :: typeof({ __index = PlayerKillTracker })
24
25
  ))
25
26
  & BaseObject.BaseObject
26
27
 
27
- function PlayerKillTracker.new(scoreObject, serviceBag: ServiceBag.ServiceBag): PlayerKillTracker
28
+ function PlayerKillTracker.new(scoreObject: IntValue, serviceBag: ServiceBag.ServiceBag): PlayerKillTracker
28
29
  local self: PlayerKillTracker = setmetatable(BaseObject.new(scoreObject) :: any, PlayerKillTracker)
29
30
 
30
31
  self._serviceBag = assert(serviceBag, "No serviceBag")
31
- self._deathReportService = self._serviceBag:GetService(DeathReportService)
32
+ self._deathReportService = self._serviceBag:GetService(DeathReportService) :: any
32
33
 
33
- self._player = self._obj.Parent
34
- assert(self._player and self._player:IsA("Player"), "Bad player")
34
+ local player = self._obj.Parent
35
+ assert(player and player:IsA("Player"), "Bad player")
36
+ self._player = player
35
37
 
36
38
  self._maid:GiveTask(
37
39
  self._deathReportService:ObservePlayerKillerReports(self._player):Subscribe(function(deathReport)
@@ -43,15 +45,15 @@ function PlayerKillTracker.new(scoreObject, serviceBag: ServiceBag.ServiceBag):
43
45
  return self
44
46
  end
45
47
 
46
- function PlayerKillTracker:GetKillValue()
48
+ function PlayerKillTracker.GetKillValue(self: PlayerKillTracker): IntValue
47
49
  return self._obj
48
50
  end
49
51
 
50
- function PlayerKillTracker:GetPlayer(): Player
51
- return self._obj.Parent
52
+ function PlayerKillTracker.GetPlayer(self: PlayerKillTracker): Player
53
+ return self._player
52
54
  end
53
55
 
54
- function PlayerKillTracker:GetKills(): number
56
+ function PlayerKillTracker.GetKills(self: PlayerKillTracker): number
55
57
  return self._obj.Value
56
58
  end
57
59
 
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class TeamKillTracker
4
4
  ]=]
@@ -7,42 +7,56 @@ local require = require(script.Parent.loader).load(script)
7
7
 
8
8
  local BaseObject = require("BaseObject")
9
9
  local DeathReportService = require("DeathReportService")
10
+ local DeathReportUtils = require("DeathReportUtils")
10
11
  local ServiceBag = require("ServiceBag")
11
12
 
12
13
  local TeamKillTracker = setmetatable({}, BaseObject)
13
14
  TeamKillTracker.ClassName = "TeamKillTracker"
14
15
  TeamKillTracker.__index = TeamKillTracker
15
16
 
16
- function TeamKillTracker.new(scoreObject, serviceBag: ServiceBag.ServiceBag)
17
- local self = setmetatable(BaseObject.new(scoreObject), TeamKillTracker)
17
+ export type TeamKillTracker =
18
+ typeof(setmetatable(
19
+ {} :: {
20
+ _serviceBag: ServiceBag.ServiceBag,
21
+ _deathReportService: DeathReportService.DeathReportService,
22
+ _team: Team,
23
+ },
24
+ {} :: typeof({ __index = TeamKillTracker })
25
+ ))
26
+ & BaseObject.BaseObject
27
+
28
+ function TeamKillTracker.new(scoreObject: IntValue, serviceBag: ServiceBag.ServiceBag): TeamKillTracker
29
+ local self: TeamKillTracker = setmetatable(BaseObject.new(scoreObject) :: any, TeamKillTracker)
18
30
 
19
31
  self._serviceBag = assert(serviceBag, "No serviceBag")
20
- self._deathReportService = self._serviceBag:GetService(DeathReportService)
32
+ self._deathReportService = self._serviceBag:GetService(DeathReportService) :: any
21
33
 
22
34
  -- Hm.... this is suppose to be generic, but this is not....
23
35
  self._maid:GiveTask(self._deathReportService.NewDeathReport:Connect(function(deathReport)
24
36
  self:_handleDeathReport(deathReport)
25
37
  end))
26
38
 
27
- self._team = self._obj.Parent
28
- assert(self._team and self._team:IsA("Team"), "Bad team")
39
+ local team = (self._obj :: IntValue).Parent
40
+ assert(team and team:IsA("Team"), "Bad team")
41
+ self._team = team
29
42
 
30
43
  return self
31
44
  end
32
45
 
33
- function TeamKillTracker:GetTeam()
34
- return self._obj.Parent
46
+ function TeamKillTracker.GetTeam(self: TeamKillTracker): Instance?
47
+ return (self._obj :: IntValue).Parent
35
48
  end
36
49
 
37
- function TeamKillTracker:GetKills()
38
- return self._obj.Value
50
+ function TeamKillTracker.GetKills(self: TeamKillTracker): number
51
+ return (self._obj :: IntValue).Value
39
52
  end
40
53
 
41
- function TeamKillTracker:_handleDeathReport(deathReport)
54
+ function TeamKillTracker._handleDeathReport(self: TeamKillTracker, deathReport: DeathReportUtils.DeathReport)
42
55
  if deathReport.killerPlayer then
43
56
  if deathReport.killerPlayer.Team == self._team then
44
57
  -- increment kills
45
- self._obj.Value = self._obj.Value + 1
58
+ local obj = self._obj :: IntValue
59
+ obj.Value = obj.Value + 1
46
60
  end
47
61
  end
48
62
  end
@@ -1,4 +1,4 @@
1
- --!nonstrict
1
+ --!strict
2
2
  --[=[
3
3
  @class DeathReportUtils
4
4
  ]=]
@@ -19,11 +19,11 @@ local DeathReportUtils = {}
19
19
  @param weaponData WeaponData
20
20
  @return DeathReport
21
21
  ]=]
22
- function DeathReportUtils.fromDeceasedHumanoid(humanoid: Humanoid, weaponData: WeaponData?)
22
+ function DeathReportUtils.fromDeceasedHumanoid(humanoid: Humanoid, weaponData: WeaponData?): DeathReport
23
23
  assert(DeathReportUtils.isWeaponData(weaponData) or weaponData == nil, "Bad weaponData")
24
24
 
25
25
  local killerHumanoid = HumanoidKillerUtils.getKillerHumanoidOfHumanoid(humanoid)
26
- local character = humanoid.Parent
26
+ local character = assert(humanoid.Parent, "No character for humanoid")
27
27
  return DeathReportUtils.create(character, killerHumanoid, weaponData)
28
28
  end
29
29
 
@@ -44,7 +44,7 @@ export type DeathReport = {
44
44
  function DeathReportUtils.create(adornee: Instance, killerAdornee: Instance?, weaponData: WeaponData?): DeathReport
45
45
  assert(typeof(adornee) == "Instance", "Bad adornee")
46
46
 
47
- local humanoid
47
+ local humanoid: Humanoid?
48
48
  if adornee:IsA("Humanoid") then
49
49
  humanoid = adornee
50
50
  else
@@ -79,7 +79,7 @@ end
79
79
  @param weaponData any
80
80
  @return boolean
81
81
  ]=]
82
- function DeathReportUtils.isWeaponData(weaponData): boolean
82
+ function DeathReportUtils.isWeaponData(weaponData: any): boolean
83
83
  return type(weaponData) == "table"
84
84
  and (typeof(weaponData.weaponInstance) == "Instance" or weaponData.weaponInstance == nil)
85
85
  end