Fixed an issue with the battle list filter.

More work on the minimap, interface changes, fixed direction controls, fixed reseting, fixed some draw things (needs some more work to finish).
Fixed a bug in the battle list causing Battle.onFollow(creature) to execute when there was no follow.
This commit is contained in:
BeniS
2012-07-09 23:37:47 +12:00
committed by Eduardo Bart
parent c8d9833444
commit 902ce06e88
13 changed files with 135 additions and 38 deletions

View File

@@ -130,13 +130,13 @@ function Battle.doCreatureFitFilters(creature)
local hideSkulls = hideSkullsButton:isChecked()
local hideParty = hidePartyButton:isChecked()
if hidePlayers and not creature:asMonster() and not creature:asNpc() then
if hidePlayers and creature:asPlayer() then
return false
elseif hideNPCs and creature:asNpc() then
return false
elseif hideMonsters and creature:asMonster() then
return false
elseif hideSkulls and creature:getSkull() == SkullNone then
elseif hideSkulls and creature:asPlayer() and creature:getSkull() == SkullNone then
return false
elseif hideParty and creature:getShield() > ShieldWhiteBlue then
return false
@@ -359,6 +359,7 @@ function Battle.checkBattleButton(battleButton)
end
if battleButton.isTarget or battleButton.isFollowed then
-- set new last battle button switched
if lastBattleButtonSwitched and lastBattleButtonSwitched ~= battleButton then
lastBattleButtonSwitched.isTarget = false
lastBattleButtonSwitched.isFollowed = false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -30,9 +30,16 @@ function onMinimapMouseWheel(self, mousePos, direction)
end
end
--[[
Known Issue (TODO):
If you move the minimap compass directions and
you change floor it will not update the minimap.
]]
-- public functions
function Minimap.init()
connect(g_game, { onGameStart = Minimap.reset })
connect(g_game, { onGameStart = Minimap.reset,
onForceWalk = Minimap.center } )
g_keyboard.bindKeyDown('Ctrl+M', Minimap.toggle)
minimapButton = TopMenu.addGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', 'minimap.png', Minimap.toggle)
@@ -70,7 +77,9 @@ function Minimap.init()
end
function Minimap.terminate()
disconnect(g_game, { onGameStart = Minimap.reset })
disconnect(g_game, { onGameStart = Minimap.reset,
onForceWalk = Minimap.center } )
g_keyboard.unbindKeyDown('Ctrl+M')
minimapButton:destroy()
@@ -102,6 +111,12 @@ function Minimap.reset()
minimapWidget:setZoom(DEFAULT_ZOOM)
end
function Minimap.center()
local player = g_game.getLocalPlayer()
if not player then return end
minimapWidget:followCreature(player)
end
function Minimap.isClickInRange(position, fromPosition, toPosition)
return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.x <= toPosition.x and position.y <= toPosition.y)
end
@@ -111,32 +126,23 @@ compassZones.west = {x = 0, y = 30, posx = -1, posy = 0}
compassZones.north = {x = 30, y = 0, posx = 0, posy = -1}
compassZones.south = {x = 30, y = 57, posx = 0, posy = 1}
compassZones.east = {x = 57, y = 30, posx = 1, posy = 0}
compassZones.center = {x = 30, y = 30, posx = 0, posy = 0, center = true}
function Minimap.compassClick(self, mousePos)
local compassPos = self:getRect()
local pos = {x = mousePos.x-compassPos.x, y = mousePos.y-compassPos.y}
local move = {x = 0, y = 0}
local center = false
for i,v in pairs(compassZones) do
local lowPos = {x = v.x-15, y = v.y-15}
local highPos = {x = v.x+15, y = v.y+15}
if Minimap.isClickInRange(pos, lowPos, highPos) then
move.x = move.x + v.posx * minimapWidget:getZoom()/10
move.y = move.y + v.posy * minimapWidget:getZoom()/10
if v.center then center = true end
break
end
end
if center then
local player = g_game.getLocalPlayer()
if not player then return end
minimapWidget:followCreature(player)
else
local cameraPos = minimapWidget:getCameraPosition()
local pos = {x = cameraPos.x + move.x, y = cameraPos.y + move.y, z = cameraPos.z}
minimapWidget:setCameraPosition(pos)
end
local cameraPos = minimapWidget:getCameraPosition()
local pos = {x = cameraPos.x + move.x, y = cameraPos.y + move.y, z = cameraPos.z}
minimapWidget:setCameraPosition(pos)
end
function Minimap.onButtonClick(id)

View File

@@ -1,3 +1,30 @@
MapControl < Button
size: 16 16
$pressed:
image-clip: 0 0 16 16
$hover !pressed:
image-clip: 0 16 16 16
$!pressed !hover:
image-clip: 0 32 16 16
$disabled:
image-color: #ffffff88
FloorUpControl < MapControl
image-source: /game_minimap/floor_up.png
FloorDownControl < MapControl
image-source: /game_minimap/floor_down.png
//ZoomOutControl < MapControl
//image-source: /game_minimap/zoom_out.png
//ZoomInControl < MapControl
//image-source: /game_minimap/zoom_in.png
MiniWindow
id: minimapWindow
!text: tr('Minimap')
@@ -17,46 +44,74 @@ MiniWindow
UIButton
id: compass
image-source: /game_minimap/compass.png
color: #ffffff
anchors.left: minimap.right
anchors.top: minimap.top
size: 60 60
margin-top: 3
margin-left: 5
@onClick: function(...) Minimap.compassClick(...) end
UIButton
id: compassReset
text: Reset
font: verdana-11px-rounded
anchors.left: compass.left
anchors.top: compass.top
margin-top: 25
margin-left: 14
@onClick: function(...) Minimap.center(...) end
$pressed:
color: #eb9f4f88
margin-top: 26
margin-left: 15
$hover !pressed:
color: #eb9f4f
$!pressed !hover:
color: #ffffff
margin-top: 25
margin-left: 14
$disabled:
image-color: #ffffff88
Button
id: zoomOut
text: -
size: 20 20
font: terminus-14px-bold
size: 16 16
anchors.left: minimap.right
anchors.top: compass.bottom
margin-top: 5
margin-left: 15
margin-top: 10
margin-left: 10
enabled: true
@onClick: Minimap.onButtonClick(self:getId())
Button
id: zoomIn
text: +
size: 20 20
size: 16 16
anchors.left: zoomOut.left
anchors.top: zoomOut.bottom
margin-top: 2
margin-top: 4
enabled: true
@onClick: Minimap.onButtonClick(self:getId())
Button
FloorUpControl
id: levelUp
text: /\
size: 20 20
anchors.left: zoomOut.right
anchors.top: zoomOut.top
margin-left: 2
margin-left: 15
enabled: true
@onClick: Minimap.onButtonClick(self:getId())
Button
FloorDownControl
id: levelDown
text: \/
size: 20 20
anchors.left: zoomIn.right
anchors.top: zoomIn.top
margin-left: 2
margin-left: 15
enabled: true
@onClick: Minimap.onButtonClick(self:getId())

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB