View difference between Paste ID: PU6ATezf and fMWE0UVc
SHOW: | | - or go back to the newest paste.
1
mmp.defs.add = function()
2
	local def = gmcp.Char.Defences.Add.name
3-
	if not table.contains(mmp.defs.current, def) then
3+
	if not mmp.defs.current[def] then
4
		mmp.defs.current[def] = true
5
		raiseEvent("mmp got def", def)
6
	end
7
end
8
9
10
mmp.defs.remove = function()
11
	local def = ""
12
	for _, def in ipairs(gmcp.Char.Defences.Remove) do
13
		mmp.defs.current[def] = nil
14
		raiseEvent("mmp lost def", def)
15
	end
16
end
17
18
19
mmp.defs.list = function()
20
  	local newDefs = {}
21
	local addedDefs, lostDefs = {}, {}
22
	for _, v in ipairs(gmcp.Char.Defences.List) do
23
		newDefs[v.name] = true
24
		if not mmp.defs.current[v.name] then
25
			addedDefs[#addedDefs + 1] = v.name
26
		end
27
	end
28
	for def in pairs(mmp.defs.current) do
29
		if not newDefs[def] then
30
			lostDefs[#lostDefs + 1] = def
31
		end
32
	end
33
	mmp.defs.current = newDefs
34
	for def in pairs(lostDefs) do
35
		raiseEvent("mmp lost def", def)
36
	end
37
	for def in pairs(addedDefs) do
38
		raiseEvent("mmp got def", def)
39
	end
40
end
41
42
43
-- EVENT HANDLERS
44
registerAnonymousEventHandler("gmcp.Char.Defences.Add", "mmp.defs.add")
45
registerAnonymousEventHandler("gmcp.Char.Defences.Remove", "mmp.defs.remove")
46
registerAnonymousEventHandler("gmcp.Char.Defences.List", "mmp.defs.list")