71 lines
1.8 KiB
Lua
71 lines
1.8 KiB
Lua
local Paint = {}
|
|
|
|
local Memory = require "util.memory"
|
|
local Player = require "util.player"
|
|
local Utils = require "util.utils"
|
|
|
|
local Pokemon = require "storage.pokemon"
|
|
|
|
local RIGHT_EDGE, BOTTOM_EDGE = 158, 135
|
|
|
|
local encounters = 0
|
|
local elapsedTime = Utils.elapsedTime
|
|
local drawText = Utils.drawText
|
|
|
|
function Paint.draw(currentMap)
|
|
local px, py = Player.position()
|
|
drawText(0, 0, elapsedTime())
|
|
drawText(0, 7, currentMap..": "..px.." "..py)
|
|
|
|
if Memory.value("battle", "our_id") > 0 then
|
|
local curr_hp = Pokemon.index(0, "hp")
|
|
local hpStatus
|
|
if curr_hp == 0 then
|
|
hpStatus = "DEAD"
|
|
elseif curr_hp <= math.ceil(Pokemon.index(0, "max_hp") * 0.2) then
|
|
hpStatus = "RED"
|
|
end
|
|
if hpStatus then
|
|
drawText(RIGHT_EDGE, 7, hpStatus, true)
|
|
end
|
|
end
|
|
|
|
local caughtPokemon = {
|
|
{"squirtle"},
|
|
{"nidoran", "nidorino", "nidoking"},
|
|
{"spearow", "pidgey"},
|
|
{"paras", "oddish", "sandshrew", "charmander"},
|
|
}
|
|
local partyY = BOTTOM_EDGE
|
|
for i,pokemonCategory in ipairs(caughtPokemon) do
|
|
local pokemon = Pokemon.inParty(unpack(pokemonCategory))
|
|
if pokemon then
|
|
drawText(RIGHT_EDGE, partyY, Utils.capitalize(pokemon), true)
|
|
partyY = partyY - 7
|
|
end
|
|
end
|
|
|
|
local nidx = Pokemon.indexOf("nidoran", "nidorino", "nidoking")
|
|
if nidx ~= -1 then
|
|
local att = Pokemon.index(nidx, "attack")
|
|
local def = Pokemon.index(nidx, "defense")
|
|
local spd = Pokemon.index(nidx, "speed")
|
|
local scl = Pokemon.index(nidx, "special")
|
|
drawText(RIGHT_EDGE, 0, att.." "..def.." "..spd.." "..scl, true)
|
|
end
|
|
|
|
drawText(0, BOTTOM_EDGE-7, "Repel: "..Memory.value("player", "repel"))
|
|
drawText(0, BOTTOM_EDGE, Utils.pluralize(encounters, "encounter"))
|
|
return true
|
|
end
|
|
|
|
function Paint.wildEncounters(count)
|
|
encounters = count
|
|
end
|
|
|
|
function Paint.reset()
|
|
encounters = 0
|
|
end
|
|
|
|
return Paint
|