gen 5 cap animations
10
Tupfile.lua
@@ -56,10 +56,12 @@ function twittersprite(input, output)
|
||||
)
|
||||
end
|
||||
|
||||
local files =
|
||||
{"src/canonical/models/front/*", "src/cap/models/front/*",
|
||||
-- TODO: only pick noncanonical that aren't already in models/
|
||||
"src/cap/sprites/gen5/front/*"}
|
||||
-- TODO: nicer API
|
||||
local files = mergededup(
|
||||
glob("src/cap/sprites/gen5/front/*"),
|
||||
glob{"src/canonical/models/front/*", "src/cap/models/front/*"},
|
||||
tup.base
|
||||
)
|
||||
|
||||
fbsprite(files, "build/smogon/fbsprites/xy/%B.png")
|
||||
twittersprite(files, "build/smogon/twittersprites/xy/%B.png")
|
||||
|
||||
30
ps.deploy.js
@@ -5,32 +5,50 @@ transform(toPSSpriteID, () => {
|
||||
"src/canonical/models/front",
|
||||
"src/canonical/models/front-cosmetic",
|
||||
"src/canonical/models/front-misc/Substitute.gif",
|
||||
"src/cap/models/front",
|
||||
"src/cap/sprites/gen5/front"
|
||||
);
|
||||
overwrite(() => {
|
||||
sel(
|
||||
"src/cap/sprites/gen5/front",
|
||||
"src/cap/models/front"
|
||||
);
|
||||
});
|
||||
|
||||
dest("ani-back");
|
||||
sel(
|
||||
"src/canonical/models/back",
|
||||
"src/canonical/models/back-cosmetic",
|
||||
"src/canonical/models/back-misc/Substitute.gif",
|
||||
"src/cap/models/back",
|
||||
"src/cap/sprites/gen5/back"
|
||||
);
|
||||
overwrite(() => {
|
||||
sel(
|
||||
"src/cap/sprites/gen5/back",
|
||||
"src/cap/models/back"
|
||||
);
|
||||
});
|
||||
|
||||
dest("ani-shiny");
|
||||
sel(
|
||||
"src/canonical/models/front-shiny",
|
||||
"src/canonical/models/front-shiny-cosmetic",
|
||||
"src/cap/models/front-shiny",
|
||||
);
|
||||
overwrite(() => {
|
||||
sel(
|
||||
"src/cap/sprites/gen5/front-shiny",
|
||||
"src/cap/models/front-shiny"
|
||||
);
|
||||
});
|
||||
|
||||
dest("ani-back-shiny");
|
||||
sel(
|
||||
"src/canonical/models/back-shiny",
|
||||
"src/canonical/models/back-shiny-cosmetic",
|
||||
"src/cap/models/back-shiny",
|
||||
);
|
||||
overwrite(() => {
|
||||
sel(
|
||||
"src/cap/sprites/gen5/back-shiny",
|
||||
"src/cap/models/back-shiny"
|
||||
);
|
||||
});
|
||||
|
||||
dest("gen5ani");
|
||||
sel(
|
||||
|
||||
BIN
src/cap/sprites/gen5/back-shiny/Aurumoth.gif
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/cap/sprites/gen5/back-shiny/Cawmodore.gif
Normal file
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
BIN
src/cap/sprites/gen5/back-shiny/Mollux.gif
Normal file
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
BIN
src/cap/sprites/gen5/back-shiny/Plasmanta.gif
Executable file
|
After Width: | Height: | Size: 47 KiB |
BIN
src/cap/sprites/gen5/back-shiny/Tomohawk.gif
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
src/cap/sprites/gen5/back-shiny/Volkraken.gif
Executable file
|
After Width: | Height: | Size: 42 KiB |
BIN
src/cap/sprites/gen5/back/Aurumoth.gif
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
src/cap/sprites/gen5/back/Cawmodore.gif
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
src/cap/sprites/gen5/back/Mollux.gif
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/cap/sprites/gen5/back/Plasmanta.gif
Executable file
|
After Width: | Height: | Size: 47 KiB |
BIN
src/cap/sprites/gen5/back/Tomohawk.gif
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
src/cap/sprites/gen5/back/Volkraken.gif
Executable file
|
After Width: | Height: | Size: 42 KiB |
BIN
src/cap/sprites/gen5/front-shiny/Aurumoth.gif
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/cap/sprites/gen5/front-shiny/Cawmodore.gif
Normal file
|
After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
BIN
src/cap/sprites/gen5/front-shiny/Mollux.gif
Normal file
|
After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
BIN
src/cap/sprites/gen5/front-shiny/Plasmanta.gif
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/cap/sprites/gen5/front-shiny/Tomohawk.gif
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
src/cap/sprites/gen5/front-shiny/Volkraken.gif
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/cap/sprites/gen5/front/Aurumoth.gif
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/cap/sprites/gen5/front/Cawmodore.gif
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
src/cap/sprites/gen5/front/Mollux.gif
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
src/cap/sprites/gen5/front/Plasmanta.gif
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/cap/sprites/gen5/front/Tomohawk.gif
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
src/cap/sprites/gen5/front/Volkraken.gif
Executable file
|
After Width: | Height: | Size: 53 KiB |
@@ -51,4 +51,19 @@ function rep(str, vars)
|
||||
end))
|
||||
end
|
||||
|
||||
|
||||
-- Merge, preferring elem2 when f(elem1) == f(elem2)
|
||||
function mergededup(table1, table2, f)
|
||||
local seen = {}
|
||||
for v in iter(table1) do
|
||||
seen[f(v)] = v
|
||||
end
|
||||
for v in iter(table2) do
|
||||
seen[f(v)] = v
|
||||
end
|
||||
local result = {}
|
||||
-- Can't be iter, because non-numeric keys
|
||||
for _, v in pairs(seen) do
|
||||
table.insert(result, v)
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||