Skip to content

Instantly share code, notes, and snippets.

@wilbefast
Created June 1, 2014 11:18
Show Gist options
  • Save wilbefast/017388a31925a664fca8 to your computer and use it in GitHub Desktop.
Save wilbefast/017388a31925a664fca8 to your computer and use it in GitHub Desktop.
File which defines all the resources to load into Soul Harvest
--[[------------------------------------------------------------
IMPORTS
--]]------------------------------------------------------------
local Animation = require("unrequited/Animation")
--[[------------------------------------------------------------
ALL RESOURCES
--]]------------------------------------------------------------
local Resources = {}
Resources.load = function()
-- Team specific
Resources.team = {}
for i, c in ipairs({ "red", "blue" }) do
Resources.team[i] =
{
avatar =
{
idle = Animation(love.graphics.newImage("assets/gfx/avatar_1_"..c.."_idle.png"), 64, 64, 8),
spellcast = Animation(love.graphics.newImage("assets/gfx/avatar_1_"..c.."_build.png"), 64, 64, 10),
spellselect = Animation(love.graphics.newImage("assets/gfx/avatar_1_"..c.."_spellcast.png"), 64, 64, 8),
order = Animation(love.graphics.newImage("assets/gfx/avatar_1_"..c.."_order.png"), 64, 64, 8)
},
soul = love.graphics.newImage("assets/gfx/unit_"..c.."_soul.png"),
-- buildings
city =
{
image = love.graphics.newImage("assets/gfx/building_"..c.."_citadel.png"),
qsprite = love.graphics.newQuad(0, 0, 85, 96, 170, 96),
qglow = love.graphics.newQuad(85, 0, 85, 96, 170, 96)
},
tower =
{
image = love.graphics.newImage("assets/gfx/building_"..c.."_tower.png"),
qsprite = love.graphics.newQuad(0, 0, 48, 80, 336, 80),
qorbs =
{
love.graphics.newQuad(48, 0, 48, 80, 336, 80),
love.graphics.newQuad(96, 0, 48, 80, 336, 80),
love.graphics.newQuad(144, 0, 48, 80, 336, 80)
},
qcharge =
{
love.graphics.newQuad(192, 0, 48, 80, 336, 80),
love.graphics.newQuad(240, 0, 48, 80, 336, 80),
love.graphics.newQuad(288, 0, 48, 80, 336, 80)
}
},
barracks =
{
image = love.graphics.newImage("assets/gfx/building_"..c.."_barracks.png"),
qsprite = love.graphics.newQuad(0, 0, 64, 64, 320, 64),
qeyes =
{
love.graphics.newQuad(128, 0, 64, 64, 320, 64),
love.graphics.newQuad(192, 0, 64, 64, 320, 64),
love.graphics.newQuad(64, 0, 64, 64, 320, 64)
},
qmouth = love.graphics.newQuad(256, 0, 64, 64, 320, 64)
},
mine =
{
image = love.graphics.newImage("assets/gfx/building_"..c.."_harvester.png"),
qsprite = love.graphics.newQuad(0, 0, 63, 57, 126, 57),
qglow = love.graphics.newQuad(63, 0, 63, 57, 126, 57)
},
-- units
grunt =
{
idle = Animation(love.graphics.newImage("assets/gfx/unit_"..c.."_imp_idle.png"), 32, 32, 2),
move = Animation(love.graphics.newImage("assets/gfx/unit_"..c.."_imp_move.png"), 32, 32, 10),
attack = Animation(love.graphics.newImage("assets/gfx/unit_"..c.."_imp_attack.png"), 32, 32, 5)
},
-- menu
radialMenu =
{
buildings =
{
image = love.graphics.newImage("assets/gfx/ui_"..c.."_building.png"),
imagegrey = love.graphics.newImage("assets/gfx/ui_"..c.."_building_false.png"),
quads = {} -- filled out with a for loop later
},
buildingOptions =
{
image = love.graphics.newImage("assets/gfx/ui_"..c.."_building_options.png"),
imagegrey = love.graphics.newImage("assets/gfx/ui_"..c.."_building_options_false.png"),
quads = {} -- filled out with a for loop later
},
spells =
{
image = love.graphics.newImage("assets/gfx/ui_"..c.."_spell.png"),
imagegrey = love.graphics.newImage("assets/gfx/ui_"..c.."_spell_false.png"),
quads = {}
},
orders =
{
image = love.graphics.newImage("assets/gfx/ui_"..c.."_unit.png"),
quads = {}
}
}
}
-- building icons for radial menus
for j, name in ipairs({ "barracks", "city", "mine", "tower" }) do
Resources.team[i].radialMenu.buildings.quads[name]
= love.graphics.newQuad((2*j - 2)*105, 0, 105, 105, 840, 105)
Resources.team[i].radialMenu.buildings.quads[name .. "Selected"]
= love.graphics.newQuad((2*j - 1)*105, 0, 105, 105, 840, 105)
Resources.team[i].radialMenu.buildings.quads[name .. "Unavailable"]
= love.graphics.newQuad((j-1)*105, 0, 105, 105, 420, 105)
end
-- building option icons for radial menus
for j, name in ipairs({ "stop", "sell", "go" }) do
Resources.team[i].radialMenu.buildingOptions.quads[name]
= love.graphics.newQuad((2*j - 2)*105, 0, 105, 105, 630, 105)
Resources.team[i].radialMenu.buildingOptions.quads[name .. "Selected"]
= love.graphics.newQuad((2*j - 1)*105, 0, 105, 105, 630, 105)
Resources.team[i].radialMenu.buildingOptions.quads[name .. "Unavailable"]
= love.graphics.newQuad((j-1)*105, 0, 105, 105, 210, 105)
end
-- spell icons for radial menus
for j, name in ipairs({ "buff", "bomb" }) do
Resources.team[i].radialMenu.spells.quads[name]
= love.graphics.newQuad((2*j - 2)*105, 0, 105, 105, 420, 105)
Resources.team[i].radialMenu.spells.quads[name .. "Selected"]
= love.graphics.newQuad((2*j - 1)*105, 0, 105, 105, 420, 105)
Resources.team[i].radialMenu.spells.quads[name .. "Unavailable"]
= love.graphics.newQuad((j-1)*105, 0, 105, 105, 210, 105)
end
-- unit order icons for radial menus
for j, name in ipairs({ "move", "disperse" }) do
Resources.team[i].radialMenu.orders.quads[name]
= love.graphics.newQuad((2*j - 2)*105, 0, 105, 105, 420, 105)
Resources.team[i].radialMenu.orders.quads[name .. "Selected"]
= love.graphics.newQuad((2*j - 1)*105, 0, 105, 105, 420, 105)
end
end
-- Neutral
Resources.citySlot =
{
image = love.graphics.newImage("assets/gfx/building_citadel_base.png"),
qfront = love.graphics.newQuad(0, 0, 96, 42, 288, 42),
qfrontfull = love.graphics.newQuad(96, 0, 96, 42, 288, 42),
qback = love.graphics.newQuad(192, 0, 96, 42, 288, 42)
}
Resources.districtSlot =
{
image = love.graphics.newImage("assets/gfx/building_base.png"),
qfront = love.graphics.newQuad(0, 0, 89, 42, 356, 42),
qback = love.graphics.newQuad(89, 0, 89, 42, 356, 42),
qglow =
{
love.graphics.newQuad(178, 0, 89, 42, 356, 42),
love.graphics.newQuad(267, 0, 89, 42, 356, 42)
}
}
Resources.cloud = Animation(love.graphics.newImage("assets/gfx/particles_smoke.png"), 32, 32, 8)
Resources.buff = Animation(love.graphics.newImage("assets/gfx/effect_unitbuff.png"), 32, 32, 12)
Resources.splatter = Animation(love.graphics.newImage("assets/gfx/effect_splatter.png"), 32, 32, 6)
Resources.ember = Animation(love.graphics.newImage("assets/gfx/effect_fire.png"), 32, 32, 6)
Resources.explosion = Animation(love.graphics.newImage("assets/gfx/effect_explosion.png"), 32, 32, 8)
Resources.puddle = love.graphics.newImage("assets/gfx/effect_bloodsplatter_grayscale.png")
Resources.shadow = love.graphics.newImage("assets/gfx/shadow_small.png")
Resources.tile = love.graphics.newImage("assets/gfx/tiles_floor.png")
-- GUI elements
Resources.title = love.graphics.newImage("assets/gfx/logo.png")
end
--[[------------------------------------------------------------
EXPORT
--]]------------------------------------------------------------
return Resources
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment