View difference between Paste ID: B0zMzyAa and dG91UWrr
SHOW: | | - or go back to the newest paste.
1
local character = require "characters.character"
2
local sprite = require "sprite"
3
4
local resistance = {}
5
6
function resistance.HandleButtons(event, group, self)
7
	local button = event.target
8
	if event.phase == "ended" and button.type == "move" then
9
		resistance.ToggleMenu(group, self)
10-
		local function selectMove(...)
10+
		Runtime:addEventListener("tap", self)
11-
			Runtime:removeEventListener('tap', selectMove)
11+
12-
			return resistance.Move(self, ...)
12+
13-
		end
13+
14-
		Runtime:addEventListener("tap", selectMove)
14+
15
end
16
17
function resistance.ToggleMenu(group, self)
18
	group.isVisible = not group.isVisible
19
	if group.isVisible then
20
		self:Animate("Selected")
21
	else
22
		self:Animate("Stationary")
23
	end
24
end
25
26
function resistance.Move(self, event)
27
	self:Move(math.ceil(event.x / 30), math.floor((event.y + 10) / 30))
28
	Runtime:removeEventListener('tap', self)
29
	return true
30
end
31
32
function resistance.Create(level, name, size, health, move, attack, defense, xTile, yTile)
33
	local group = display.newGroup()
34
	local self = character.Create(level, name, size, health, move, attack, defense, xTile, yTile)
35
		self:addEventListener("tap", function() resistance.ToggleMenu(group, self) end)
36
		self.tap = resistance.Move
37
	local block = display.newRect(0, 0, display.contentWidth, display.contentHeight)
38
		group:insert(block)
39
		block:setFillColor(0, 0)
40
		block:addEventListener("tap", function() return true end)
41
	local background = display.newImage(group, "visuals/resistance_background.png", 0, 0)
42
		background:setReferencePoint(display.CenterReferencePoint)
43
		background.x, background.y = display.contentWidth / 2, display.contentHeight / 2
44
	local icon = display.newImage(group, ("visuals/character_" .. name .. "icon.png"), 145, 128)
45
	local buttonSheet = sprite.newSpriteSheet("visuals/button_resistance.png", 60, 20)
46
	local buttonMove = button.New(sprite.newSprite(sprite.newSpriteSet(buttonSheet, 1, 2)))
47
		group:insert(buttonMove)
48
		buttonMove:setReferencePoint(display.TopLeftReferencePoint)
49
		buttonMove.x, buttonMove.y = 145, 173
50
		buttonMove.type = "move"
51
		buttonMove:addEventListener("Button", function(event) resistance.HandleButtons(event, group, self) end)
52
	local buttonAttack = button.New(sprite.newSprite(sprite.newSpriteSet(buttonSheet, 3, 2)))
53
		group:insert(buttonAttack)
54
		buttonAttack:setReferencePoint(display.TopLeftReferencePoint)
55
		buttonAttack.x, buttonAttack.y = 210, 173
56
		buttonAttack.type = "attack"
57
		buttonAttack:addEventListener("Button", function(event) resistance.HandleButtons(event, group, self) end)
58
	local buttonDone = button.New(sprite.newSprite(sprite.newSpriteSet(buttonSheet, 5, 2)))
59
		group:insert(buttonDone)
60
		buttonDone:setReferencePoint(display.TopLeftReferencePoint)
61
		buttonDone.x, buttonDone.y = 275, 173
62
		buttonDone.type = "done"
63
		buttonDone:addEventListener("Button", function(event) resistance.HandleButtons(event, group, self) end)
64
	group.isVisible = false
65
	return self
66
end
67
68
return resistance