Nene character everywhere except week 2, stress pico mix without intro and outro cutscenes

This commit is contained in:
entar 2025-08-31 14:59:58 +07:00
parent 77fa5257c1
commit abf7d1fd9e
23 changed files with 500 additions and 26 deletions

View File

@ -73,12 +73,8 @@
"fps": 24,
"anim": "hairBlow",
"indices": [
0,
1,
2,
3
],
"name": "HairBlow0"
"name": "Idle"
},
{
"loop": false,
@ -89,9 +85,8 @@
"fps": 24,
"anim": "hairFall",
"indices": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
],
"name": "HairBlow0"
"name": "Idle"
}
],
"vocals_file": "",
@ -107,6 +102,8 @@
"_editor_isPlayer": false,
"starter_frame": 1,
"stage_positions": {
"tank": [500, -330]
"tank": [500, -330],
"tankErect": [650, -260],
"philly": [320, 80]
}
}

View File

@ -0,0 +1,59 @@
{
"animations": [
{
"offsets": [0, 0],
"indices": [],
"fps": 24,
"anim": "idle",
"loop": false,
"name": "otis idle"
},
{
"offsets": [0, 13],
"indices": [],
"fps": 24,
"anim": "shoot1",
"loop": false,
"name": "shoot back"
},
{
"offsets": [-35, 21],
"indices": [],
"fps": 24,
"anim": "shoot2",
"loop": false,
"name": "shoot back low"
},
{
"offsets": [238, 96],
"indices": [],
"fps": 24,
"anim": "shoot3",
"loop": false,
"name": "shoot forward"
},
{
"offsets": [260, 23],
"indices": [],
"fps": 24,
"anim": "shoot4",
"loop": false,
"name": "shoot forward low"
}
],
"vocals_file": "",
"no_antialiasing": false,
"image": "sprites/characters/otisSpeaker",
"position": [-40, 110],
"healthicon": "face",
"flip_x": false,
"healthbar_colors": [161, 161, 161],
"camera_position": [-150, 100],
"sing_duration": 6.1,
"scale": 1,
"_editor_isPlayer": false,
"starter_frame": 1,
"stage_positions": {
"tank": [500, -330]
}
}

119
characters/otis-speaker.lua Normal file
View File

@ -0,0 +1,119 @@
---@type engine.module
local module = {}
local abot, sound, rate, channels, bg, eyes, char
local spectrum = {}
local visualizers = {}
require("modules.luafft")
local logging = require("modules.logging")
local function divide(list, factor)
for i, v in ipairs(list) do
list[i] = list[i] / factor
end
end
---@param character engine.character
function module.onAdded(character)
char = character
abot = Atlas("sprites/characters/abot/abotSystem")
abot:PlayAnimation("")
abot.layer = character.sprite.layer - .1
abot.position = character.sprite.position:Add(Vector2(0, 0))
for i = 1, 7 do
local viz = Rect("sprites/characters/abot/aBotViz.png", "sprites/characters/abot/aBotViz.xml")
if i > 1 then
viz.position = abot.position:Add(Vector2(i * 80 + 55, 60))
else
-- don't question my code choices, i really tried.
-- The bugs didn't even make sense atp so yeah.
-- - entar
viz.position = abot.position:Add(Vector2(100000000, 10000000))
end
viz.layer = abot.layer - 0.1
viz:Frame(string.format("viz%s", i), 5)
visualizers[i] = viz
end
bg = Image("sprites/characters/abot/stereoBG.png")
bg.layer = abot.layer - 0.2
bg.position = abot.position:Add(Vector2(153, 43))
eyes = Atlas("sprites/characters/abot/systemEyes")
eyes.layer = abot.layer - 0.1
eyes.position = abot.position:Add(Vector2(45, 250))
eyes:PlayAnimation("a bot eyes lookin")
end
function module.onCreate(song)
local audiopath = string.format("songs/%s/Inst.ogg", song)
print(audiopath)
sound = love.sound.newSoundData(audiopath)
rate = sound:getSampleRate()
channels = sound:getChannels()
end
function module.onBeat(beat)
-- if beat % 2 == 0 then
abot:PlayAnimation()
-- end
end
function module.onUpdate(dt, el)
abot.layer = char.sprite.layer - .1
bg.layer = abot.layer - 0.2
eyes.layer = bg.layer
abot.position = char.sprite.position:Add(Vector2(-80, 320)):Add(char.stagePosition)
bg.position = abot.position:Add(Vector2(153, 43))
eyes.position = abot.position:Add(Vector2(45, 250))
pcall(function ()
local curSample = inst:tell('samples')
local wave = {}
local size = next_possible_size(2048)
if channels == 2 then
for i = curSample, (curSample + (size - 1) / 2) do
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
table.insert(wave, complex.new(sample, 0))
end
else
for i = curSample, curSample + (size - 1) do
local sample = (sound:getSample(i * 2) + sound:getSample(i * 2 + 1)) * 0.5
table.insert(wave, complex.new(sample, 0))
table.insert(wave, complex.new(sound:getSample(i), 0))
end
end
local spec = fft(wave, false)
divide(spec, size / 2)
spectrum = spec
local division = 142.857142857
for i=2, (#spectrum/division) do
local n = spectrum[i]:abs()
visualizers[i]:Frame(string.format("viz%s", i), math.floor(n / 0.06) > 5 and 0 or 5 - math.floor(n / 0.06))
visualizers[i].layer = abot.layer - 0.1
visualizers[i].position = abot.position:Add(Vector2(i * 80 + 55, 60))
end
end)
end
function module.onClose()
end
function module.onEvent(event)
if event.name == "FocusCamera" then
local str = event.vars.char == 1 and "a bot eyes lookin" or "a bot eyes lookin"
eyes:PlayAnimation(str)
end
end
return module

View File

@ -157,7 +157,7 @@
{
"loop": false,
"offsets": [
20,
30,
0
],
"anim": "burpSmile",
@ -198,5 +198,8 @@
"sing_duration": 4,
"scale": 1,
"_editor_isPlayer": true,
"starter_frame": 1
"starter_frame": 1,
"stage_positions": {
"tankErect": [1100, -200]
}
}

View File

@ -62,7 +62,7 @@
],
"loop": false,
"fps": 24,
"anim": "singRIGHT",
"anim": "singLEFT",
"indices": [],
"name": "Pico Note Right"
},
@ -73,7 +73,7 @@
],
"loop": false,
"fps": 24,
"anim": "singLEFT",
"anim": "singRIGHT",
"indices": [],
"name": "Pico NOTE LEFT"
},

View File

@ -0,0 +1,79 @@
{
"animations": [
{
"offsets": [0, 52],
"indices": [],
"fps": 24,
"anim": "idle",
"loop": false,
"name": "Tankman Idle bloody"
},
{
"offsets": [-90, 15],
"indices": [],
"fps": 24,
"anim": "singLEFT",
"loop": false,
"name": "Tankman Right Note bloody"
},
{
"offsets": [-62, -105],
"indices": [],
"fps": 24,
"anim": "singDOWN",
"loop": false,
"name": "Tankman DOWN note bloody"
},
{
"offsets": [-47, 165],
"indices": [],
"fps": 24,
"anim": "singUP",
"loop": false,
"name": "Tankman UP note bloody"
},
{
"offsets": [23, 17],
"indices": [],
"fps": 24,
"anim": "singRIGHT",
"loop": false,
"name": "Tankman Note Left bloody"
},
{
"offsets": [110, 117],
"indices": [],
"fps": 30,
"anim": "redheadsAnim",
"loop": false,
"name": "redheads anim"
},
{
"offsets": [0, 90],
"indices": [],
"fps": 30,
"anim": "hehPrettyGood",
"loop": false,
"name": "pretty good anim"
}
],
"vocals_file": "",
"no_antialiasing": false,
"image": "sprites/characters/tankmanCaptainBloody",
"position": [0, 480],
"healthicon": "tankman-bloody",
"flip_x": true,
"healthbar_colors": [
225,
225,
225
],
"camera_position": [-900, -20],
"sing_duration": 6.1,
"scale": 1,
"_editor_isPlayer": false,
"starter_frame": 1,
"stage_positions": {
"tank": [500, -330]
}
}

View File

@ -7,7 +7,7 @@
"difficulties": ["easy", "normal", "hard"],
"characters": {
"player": "pico-dark",
"girlfriend": "gf-dark",
"girlfriend": "nene-dark",
"opponent": "spooky-dark",
"instrumental": "pico",
"altInstrumentals": []

View File

@ -7,7 +7,7 @@
"difficulties": ["easy", "normal", "hard"],
"characters": {
"player": "pico-dark",
"girlfriend": "gf-dark",
"girlfriend": "nene-dark",
"opponent": "spooky-dark",
"instrumental": "pico",
"altInstrumentals": []

View File

@ -242,6 +242,11 @@
"e": "FocusCamera",
"v": { "x": 0, "duration": 16, "y": 0, "ease": "expoOut", "char": 1 }
},
{
"t": 61980.0112359550,
"e": "Change Character",
"v": { "char": "dad", "force": true, "to": "tankman-bloody" }
},
{
"t": 61980.0112359551,
"e": "PlayAnimation",

View File

@ -10,7 +10,7 @@
"difficulties": ["easy", "normal", "hard"],
"characters": {
"player": "pico-holding-nene",
"girlfriend": "nene",
"girlfriend": "otis-speaker",
"opponent": "tankman",
"instrumental": "pico",
"altInstrumentals": [],

View File

@ -54,7 +54,9 @@ function CharacterClass:PlayAnimation(name)
end
function CharacterClass:Destroy()
self.module.onClose()
if self.module then
self.module.onClose()
end
self.sprite:Destroy()
self = nil
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 KiB

View File

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="tankmanCaptain.png">
<SubTexture name="PRETTY GOOD tankman instance 10000" x="487" y="1180" width="432" height="563" frameX="-99" frameY="-26" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10001" x="0" y="1186" width="432" height="563" frameX="-99" frameY="-26" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10002" x="1473" y="1587" width="403" height="589" frameX="-130" frameY="0" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10003" x="3337" y="1615" width="403" height="589" frameX="-130" frameY="0" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10004" x="1880" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10005" x="1880" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10006" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10007" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10008" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10009" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10010" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10011" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10012" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10013" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10014" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10015" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10016" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10017" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10018" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10019" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10020" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10021" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10022" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10023" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10024" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10025" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10026" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10027" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10028" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10029" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10030" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10031" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10032" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10033" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10034" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10035" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10036" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10037" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10038" x="2288" y="1706" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10039" x="436" y="1747" width="404" height="580" frameX="-129" frameY="-9" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10040" x="1353" y="2180" width="408" height="556" frameX="-120" frameY="-33" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10041" x="3103" y="2208" width="408" height="556" frameX="-120" frameY="-33" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10042" x="999" y="0" width="528" height="561" frameX="0" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10043" x="999" y="0" width="528" height="561" frameX="0" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10044" x="1531" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10045" x="2059" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10046" x="2059" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10047" x="2587" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10048" x="2587" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10049" x="3115" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10050" x="999" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10051" x="999" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10052" x="1527" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10053" x="1527" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10054" x="2055" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10055" x="2055" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10056" x="2583" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10057" x="2583" y="565" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10058" x="2587" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10059" x="2587" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10060" x="2587" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="PRETTY GOOD tankman instance 10061" x="2587" y="0" width="524" height="561" frameX="-5" frameY="-28" frameWidth="533" frameHeight="589" />
<SubTexture name="Tankman DOWN note instance 10000" x="1473" y="1130" width="565" height="453" frameX="-11" frameY="-20" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10001" x="1473" y="1130" width="565" height="453" frameX="-11" frameY="-20" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10002" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10003" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10004" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10005" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10006" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10007" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10008" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman DOWN note instance 10009" x="3111" y="565" width="580" height="469" frameX="0" frameY="0" frameWidth="580" frameHeight="473" />
<SubTexture name="Tankman Idle Dance instance 10000" x="923" y="1676" width="426" height="554" frameX="-1" frameY="-19" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10001" x="923" y="1676" width="426" height="554" frameX="-1" frameY="-19" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10002" x="2905" y="1567" width="428" height="556" frameX="0" frameY="-17" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10003" x="2905" y="1567" width="428" height="556" frameX="0" frameY="-17" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10004" x="3643" y="0" width="425" height="560" frameX="-5" frameY="-13" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10005" x="3643" y="0" width="425" height="560" frameX="-5" frameY="-13" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10006" x="2474" y="1130" width="427" height="572" frameX="-5" frameY="-1" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10007" x="2042" y="1130" width="428" height="572" frameX="-4" frameY="-1" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10008" x="3617" y="1038" width="428" height="573" frameX="-4" frameY="0" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10009" x="3617" y="1038" width="428" height="573" frameX="-4" frameY="0" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10010" x="3617" y="1038" width="428" height="573" frameX="-4" frameY="0" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10011" x="3617" y="1038" width="428" height="573" frameX="-4" frameY="0" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10012" x="3617" y="1038" width="428" height="573" frameX="-4" frameY="0" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Idle Dance instance 10013" x="3617" y="1038" width="428" height="573" frameX="-4" frameY="0" frameWidth="432" frameHeight="573" />
<SubTexture name="Tankman Note Left instance 10000" x="3111" y="1038" width="502" height="525" frameX="0" frameY="-16" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10001" x="3111" y="1038" width="502" height="525" frameX="0" frameY="-16" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10002" x="983" y="1130" width="486" height="542" frameX="-18" frameY="0" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10003" x="983" y="1130" width="486" height="542" frameX="-18" frameY="0" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10004" x="983" y="1130" width="486" height="542" frameX="-18" frameY="0" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10005" x="983" y="1130" width="486" height="542" frameX="-18" frameY="0" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10006" x="983" y="1130" width="486" height="542" frameX="-18" frameY="0" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Note Left instance 10007" x="983" y="1130" width="486" height="542" frameX="-18" frameY="0" frameWidth="504" frameHeight="542" />
<SubTexture name="Tankman Right Note instance 10000" x="0" y="625" width="483" height="557" frameX="-12" frameY="-3" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10001" x="0" y="625" width="483" height="557" frameX="-12" frameY="-3" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10002" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10003" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10004" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10005" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10006" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10007" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10008" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="Tankman Right Note instance 10009" x="496" y="616" width="483" height="560" frameX="0" frameY="0" frameWidth="495" frameHeight="560" />
<SubTexture name="TANKMAN UGH instance 10000" x="844" y="2234" width="391" height="555" frameX="-7" frameY="-9" frameWidth="403" frameHeight="564" />
<SubTexture name="TANKMAN UGH instance 10001" x="844" y="2234" width="391" height="555" frameX="-7" frameY="-9" frameWidth="403" frameHeight="564" />
<SubTexture name="TANKMAN UGH instance 10002" x="3515" y="2208" width="401" height="562" frameX="-1" frameY="-2" frameWidth="403" frameHeight="564" />
<SubTexture name="TANKMAN UGH instance 10003" x="3515" y="2208" width="401" height="562" frameX="-1" frameY="-2" frameWidth="403" frameHeight="564" />
<SubTexture name="TANKMAN UGH instance 10004" x="0" y="1753" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10005" x="0" y="1753" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10006" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10007" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10008" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10009" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10010" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10011" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10012" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10013" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10014" x="2696" y="2127" width="403" height="564" />
<SubTexture name="TANKMAN UGH instance 10015" x="2696" y="2127" width="403" height="564" />
<SubTexture name="Tankman UP note instance 10000" x="0" y="0" width="492" height="621" frameX="0" frameY="0" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10001" x="0" y="0" width="492" height="621" frameX="0" frameY="0" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10002" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10003" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10004" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10005" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10006" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10007" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10008" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
<SubTexture name="Tankman UP note instance 10009" x="496" y="0" width="499" height="612" frameX="-7" frameY="-11" frameWidth="506" frameHeight="623" />
</TextureAtlas>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="tankmanPico.png">
<!-- Created with Adobe Animate version 22.0.5.191 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="tankman ARGH0000" x="0" y="0" width="500" height="574" frameX="0" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0001" x="0" y="0" width="500" height="574" frameX="0" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0002" x="505" y="0" width="497" height="574" frameX="-4" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0003" x="505" y="0" width="497" height="574" frameX="-4" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0004" x="1007" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0005" x="1007" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0006" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0007" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0008" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0009" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0010" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0011" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0012" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0013" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0014" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0015" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0016" x="1509" y="0" width="497" height="574" frameX="-5" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman ARGH0017" x="2011" y="0" width="495" height="574" frameX="-7" frameY="0" frameWidth="502" frameHeight="574"/>
<SubTexture name="tankman beat it0000" x="2511" y="0" width="503" height="552" frameX="0" frameY="-6" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0001" x="2511" y="0" width="503" height="552" frameX="0" frameY="-6" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0002" x="3019" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0003" x="3019" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0004" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0005" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0006" x="0" y="579" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0007" x="493" y="579" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0008" x="493" y="579" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0009" x="986" y="579" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0010" x="986" y="579" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0011" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0012" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0013" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0014" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0015" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman beat it0016" x="3512" y="0" width="488" height="558" frameX="-17" frameY="0" frameWidth="505" frameHeight="558"/>
<SubTexture name="tankman laugh0000" x="1479" y="579" width="388" height="579" frameX="0" frameY="-6" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0001" x="1479" y="579" width="388" height="579" frameX="0" frameY="-6" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0002" x="1872" y="579" width="383" height="585" frameX="0" frameY="0" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0003" x="1872" y="579" width="383" height="585" frameX="0" frameY="0" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0004" x="2260" y="579" width="384" height="582" frameX="0" frameY="-3" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0005" x="2260" y="579" width="384" height="582" frameX="0" frameY="-3" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0006" x="2649" y="579" width="383" height="584" frameX="0" frameY="-1" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0007" x="2649" y="579" width="383" height="584" frameX="0" frameY="-1" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0008" x="3037" y="579" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0009" x="3037" y="579" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0010" x="3426" y="579" width="383" height="585" frameX="0" frameY="0" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0011" x="3426" y="579" width="383" height="585" frameX="0" frameY="0" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0012" x="0" y="1169" width="384" height="578" frameX="0" frameY="-7" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0013" x="0" y="1169" width="384" height="578" frameX="0" frameY="-7" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0014" x="389" y="1169" width="384" height="580" frameX="0" frameY="-5" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0015" x="1872" y="579" width="383" height="585" frameX="0" frameY="0" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0016" x="1872" y="579" width="383" height="585" frameX="0" frameY="0" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0017" x="778" y="1169" width="384" height="582" frameX="0" frameY="-3" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0018" x="778" y="1169" width="384" height="582" frameX="0" frameY="-3" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0019" x="1167" y="1169" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0020" x="1167" y="1169" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0021" x="1167" y="1169" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0022" x="1167" y="1169" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
<SubTexture name="tankman laugh0023" x="1167" y="1169" width="384" height="581" frameX="0" frameY="-4" frameWidth="388" frameHeight="585"/>
</TextureAtlas>

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

View File

@ -11,5 +11,6 @@
"camera_boyfriend": [0, 0],
"camera_opponent": [0, 0],
"camera_girlfriend": [0, 0],
"camera_speed": 1
"camera_speed": 1,
"name": "philly"
}

View File

@ -1,4 +1,4 @@
local play = false
return {
onCreate = function(song)
@ -45,5 +45,5 @@ return {
local lightAbove = Image("images/stage/erect/lightAbove.png")
lights.position = Vector2(804, -117)
lightAbove.layer = 6
end
end,
}

View File

@ -1,6 +1,6 @@
{
"directory": "",
"defaultZoom": 1.2,
"defaultZoom": 1.1,
"isPixelStage": false,
"boyfriend": [1100, 90],
@ -12,5 +12,6 @@
"camera_opponent": [-500, 200],
"camera_girlfriend": [0, 0],
"camera_speed": 1,
"default": true
"default": true,
"name": "tankErect"
}

View File

@ -8,8 +8,13 @@ local secretEVILvariable = false
local sipSippin = love.audio.newSource("sounds/week7/sip.ogg", "stream")
sipSippin:setVolume(1000)
local play = false
return {
onCreate = function(song)
if song == "Stress Pico" then
play = true
end
local bg = Image("images/tank/erect/bg.png")
bg.layer = -10
bg.position = Vector2(-985, -805)
@ -43,7 +48,7 @@ return {
if secretEVILvariable then
sipSippin:play()
end
itIsTimeToDrinkWater = love.math.random(40, 80)
itIsTimeToDrinkWater = love.math.random(20, 30)
else
sniper:PlayAnimation("Tankmanidlebaked instance 1", 24, false)
end
@ -52,5 +57,9 @@ return {
end
guy:PlayAnimation("BLTank2 instance 1", 24, false)
end
end
if play then
sharedVars.characters.gf:PlayAnimation(string.format("shoot%s", math.random(1,4)))
end
end,
}

View File

@ -69,7 +69,6 @@ local covers = {
local function state(songName, songDifficulty, show)
---@type engine.state
local state = {} -- Returns needed functions for the state to work after loading it properly
print(curChar)
local startTime = 0
@ -80,7 +79,6 @@ local function state(songName, songDifficulty, show)
chartString = files.read_file(string.format("charts/%s/%s-chart-%s.json", songName, songName,
Erect and "erect" or curChar))
end
print(chartString)
local metadata
if curChar == "bf" and not Erect then
@ -89,7 +87,6 @@ local function state(songName, songDifficulty, show)
metadata = files.read_file(string.format("charts/%s/%s-metadata-%s.json", songName, songName,
Erect and "erect" or curChar))
end
print(metadata)
metadata = json.parse(metadata)
if not chartString then
@ -738,6 +735,10 @@ local function state(songName, songDifficulty, show)
characters[chars[event.vars.char] or event.vars.char]:Destroy()
characters[chars[event.vars.char] or event.vars.char] = Character(event.vars.to)
if not characters[chars[event.vars.char] or event.vars.char].hasStagePosition then
characters[chars[event.vars.char] or event.vars.char].stagePosition = Vector2(stage.opponent[1], stage.opponent[2])
end
end
for index, module in next, modules do
@ -943,6 +944,7 @@ local function state(songName, songDifficulty, show)
characters.dad.sprite.layer = 1
if not characters.dad.hasStagePosition then
characters.dad.stagePosition = Vector2(stage.opponent[1], stage.opponent[2])
print(stage.opponent[1], stage.opponent[2])
end
local image = love.graphics.newImage(string.format("images/icons/icon-%s.png", characters.dad.icon))