Add more stuff from the OG game and more PART 1 (#228)
* senpai fucking dies * final flash fadeout * made cutscene not play on restart * winter horrorland + fixes * fix for pixel perfect shader * trail + fixes * better + shaking last update about it, i swear * never fucking mind + repacks + accuracy * more fixes + chromatic aberration * i hate how pixel shader fucks everything up * aberration in the cutscene & its cool twitch * camera beats when twitching * tank stuff pt1 now the cutscenes look 99% like og (still gotta freeze the stage animated sprites n stuff) PS: Deleting the lipSycn function in ugh and guns cutscenes cause its not needed + sometimes breaks the animations so lets just leave it in stress only like it was in og * week 5 completed + retrocompatibility with altanim now chrima parents work * philly train * gameplay shaders option better adding it now * tank stuff pt2 * blue balled text (death counter) * winter horrorland better rework WIP colored vignette usable by everyone (you can change its color, amount and strength) wip cuz i wanna edit the amount/strength based on the zoom, i'll do later, now i dont have time gotta do christmas irl stuff yay * winter horrorland better rework completed * seen cutscene variable finally * even better cutscenes * oops * tank stuff pt3 * tank stuff pt4 WIP running tanks Co-Authored-By: Ne_Eo <NeeEoo@users.noreply.github.com> * tankstuff pt4.5 imma check tmr why do some tankmen spawn too much up * tank stuff pt4.75 * dumb * tank stuff pt 4.9 * type on xml sprite type fix and more Co-Authored-By: Ne_Eo <NeeEoo@users.noreply.github.com> --------- Co-authored-by: Ne_Eo <NeeEoo@users.noreply.github.com> Co-authored-by: lunarcleint <88809950+lunarcleint@users.noreply.github.com>
@@ -4,9 +4,7 @@
|
||||
### Mods created with alpha versions of Codename may not be compatible with the release version
|
||||
Known issues in the alpha:
|
||||
- Some options are missing
|
||||
- Week 5 has no monster animation
|
||||
- Week 6 still has no dialogue
|
||||
- Week 7 has no running tankman
|
||||
- Week 6 still have no dialogue
|
||||
|
||||
Build instructions are below. Press TAB on the main menu to switch mods.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE codename-engine-character>
|
||||
<character isPlayer="true" flipX="true" x="0" y="350" icon="bf">
|
||||
<character isPlayer="true" flipX="true" x="0" y="350" icon="bf" camy="55">
|
||||
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
|
||||
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
|
||||
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
|
||||
|
||||
@@ -9,5 +9,5 @@
|
||||
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="7"/>
|
||||
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-41" y="23"/>
|
||||
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-10" y="-10"/>
|
||||
<anim name="bfCatch" anim="BF catches GF" fps="24" loop="false" x="0" y="0"/>
|
||||
<anim name="bfCatch" anim="BF catches GF" fps="24" loop="false" x="6" y="88"/>
|
||||
</character>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE codename-engine-character>
|
||||
<character isPlayer="true" flipX="true" x="200" y="570" antialiasing="false" scale="6" camx="-200" camy="-20" gameOverChar="bf-pixel-dead">
|
||||
<character isPlayer="true" flipX="true" x="200" y="570" antialiasing="false" scale="6" gameOverChar="bf-pixel-dead">
|
||||
<anim name="idle" anim="BF IDLE" fps="24" loop="false" x="0" y="0" />
|
||||
|
||||
<!-- Offsets are actually multiplied by scale -->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE codename-engine-character>
|
||||
<character isPlayer="false" flipX="false" icon="pico" x="-50" y="-120" camx="195" camy="365">
|
||||
<character isPlayer="false" flipX="false" icon="pico" x="115" y="-85" camx="195" camy="360">
|
||||
<!-- Left Animations -->
|
||||
<anim name="shoot1" anim="Pico shoot 1" fps="24" loop="false" indices="0,1,2,3" />
|
||||
<anim name="idle1" anim="Pico shoot 1" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" />
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
<!DOCTYPE codename-engine-character>
|
||||
<character sprite="senpai" isPlayer="false" flipX="false" x="150" y="360" antialiasing="false" scale="6" icon="senpai" camx="100">
|
||||
<anim name="idle" anim="Angry Senpai Idle" fps="24" loop="false" x="0" y="0" />
|
||||
|
||||
<!-- Offsets are actually multiplied by scale -->
|
||||
<anim name="singLEFT" anim="Angry Senpai LEFT NOTE" fps="24" loop="false" x="7" y="0" />
|
||||
<anim name="singDOWN" anim="Angry Senpai DOWN NOTE" fps="24" loop="false" x="2" y="0" />
|
||||
<anim name="singUP" anim="Angry Senpai UP NOTE" fps="24" loop="false" x="1" y="6" />
|
||||
<anim name="singRIGHT" anim="Angry Senpai RIGHT NOTE" fps="24" loop="false" x="0" y="0" />
|
||||
</character>
|
||||
<character x="150" icon="senpai" camx="100" y="360" isGF="false" scale="6" camy="87" isPlayer="false" antialiasing="false" sprite="senpai">
|
||||
<anim x="0" loop="false" y="0" fps="24" anim="Angry Senpai Idle" name="idle"/>
|
||||
<anim x="4" loop="false" y="1" fps="24" anim="Angry Senpai LEFT NOTE" name="singLEFT"/>
|
||||
<anim x="2" loop="false" y="0" fps="24" anim="Angry Senpai DOWN NOTE" name="singDOWN"/>
|
||||
<anim x="1" loop="false" y="6" fps="24" anim="Angry Senpai UP NOTE" name="singUP"/>
|
||||
<anim x="0" loop="false" y="0" fps="24" anim="Angry Senpai RIGHT NOTE" name="singRIGHT"/>
|
||||
</character>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE codename-engine-character>
|
||||
<character isPlayer="false" flipX="false" x="150" y="360" antialiasing="false" scale="6" camx="100">
|
||||
<character isPlayer="false" flipX="false" x="150" y="360" antialiasing="false" scale="6" camx="100" camy="87">
|
||||
<anim name="idle" anim="Senpai Idle" fps="12" loop="false" x="0" y="0" />
|
||||
|
||||
<!-- Offsets are actually multiplied by scale -->
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import flixel.addons.effects.FlxTrail;
|
||||
|
||||
var self = this;
|
||||
var trail:FlxTrail;
|
||||
function postCreate() {
|
||||
trail = new FlxTrail(self, null, 4, 24, 0.3, 0.069);
|
||||
}
|
||||
|
||||
var toAdd:Bool = true; // Using this just to make sure
|
||||
function update(elpased) {
|
||||
if(toAdd) {
|
||||
toAdd = false;
|
||||
PlayState.instance.insert(PlayState.instance.members.indexOf(self), trail);
|
||||
disableScript();
|
||||
}
|
||||
}
|
||||
@@ -7,23 +7,23 @@
|
||||
<!-- ONLY FOR INSTANCES WITH LOW MEMORY MODE DISABLED -->
|
||||
<high-memory>
|
||||
<!-- DANCERS !-->
|
||||
<sprite name="dancer1" x="130" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
|
||||
<sprite name="dancer1" x="130" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55" type="onbeat">
|
||||
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
|
||||
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
|
||||
</sprite>
|
||||
<sprite name="dancer2" x="500" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
|
||||
<sprite name="dancer2" x="500" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55" type="onbeat">
|
||||
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
|
||||
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
|
||||
</sprite>
|
||||
<sprite name="dancer3" x="870" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
|
||||
<sprite name="dancer3" x="870" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55" type="onbeat">
|
||||
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
|
||||
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
|
||||
</sprite>
|
||||
<sprite name="dancer4" x="1240" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
|
||||
<sprite name="dancer4" x="1240" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55" type="onbeat">
|
||||
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
|
||||
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
|
||||
</sprite>
|
||||
<sprite name="dancer5" x="1610" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
|
||||
<sprite name="dancer5" x="1610" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55" type="onbeat">
|
||||
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
|
||||
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
|
||||
</sprite>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
var idk:CustomShader = null;
|
||||
function create() {
|
||||
if(!Options.gameplayShaders) {
|
||||
disableScript();
|
||||
return;
|
||||
}
|
||||
|
||||
idk = new CustomShader('coloredVignette');
|
||||
idk.color = [1, 0, 0];
|
||||
camGame.addShader(idk);
|
||||
}
|
||||
|
||||
var adder:Int = 0;
|
||||
function postUpdate(elapsed:Float) { // Doing it like this so at least the red bump doesnt look too much instant
|
||||
var toAdd:Int = lerp(adder, 0, elapsed);
|
||||
idk.amount = camGame.zoom * camHUD.zoom + toAdd;
|
||||
idk.strength = (camGame.zoom - camHUD.zoom + toAdd) * 5;
|
||||
if(adder > 0) adder -= 0.0001 * camZoomingStrength;
|
||||
}
|
||||
|
||||
function beatHit() {
|
||||
if(Options.camZoomOnBeat && camZooming && FlxG.camera.zoom < maxCamZoom && curBeat % camZoomingInterval == 0)
|
||||
adder = 0.05 * camZoomingStrength;
|
||||
}
|
||||
@@ -3,17 +3,18 @@
|
||||
<sprite name="bg" x="-1000" y="-500" sprite="bgWalls" scroll="0.2"/>
|
||||
|
||||
<high-memory>
|
||||
<sprite name="upperBoppers" x="-240" y="-90" sprite="upperBop" scroll="0.2" />
|
||||
<sprite name="upperBoppers" x="-240" y="-90" sprite="upperBop" scroll="0.2" type="onbeat"/>
|
||||
</high-memory>
|
||||
<sprite name="bgEscalator" x="-1100" y="-600" sprite="bgEscalator" scroll="0.3" scale="0.9" updateHitbox="true"/>
|
||||
<sprite name="tree" x="370" y="-250" sprite="christmasTree" scroll="0.4"/>
|
||||
<sprite name="bottomBoppers" x="-300" y="140" sprite="bottomBop" scroll="0.9"/>
|
||||
<sprite name="bottomBoppers" x="-300" y="140" sprite="bottomBop" scroll="0.9" type="onbeat" />
|
||||
<sprite name="fgSnow" x="-600" y="700" sprite="fgSnow"/>
|
||||
|
||||
<high-memory>
|
||||
<sprite name="santa" x="-840" y="150" sprite="santa"/>
|
||||
<sprite name="santa" x="-840" y="150" sprite="santa" type="onbeat"/>
|
||||
</high-memory>
|
||||
|
||||
|
||||
<girlfriend />
|
||||
<dad />
|
||||
<boyfriend x="870" camyoffset="-200"/>
|
||||
|
||||
@@ -19,6 +19,7 @@ var trainCooldown:Int = 0;
|
||||
|
||||
function create() {
|
||||
// defaultCamZoom = 0.5;
|
||||
phillyTrain.moves = true; // Def value false in funkinsprite
|
||||
light.color = colors[curColor];
|
||||
trainSound = FlxG.sound.load(Paths.sound("train_passes"));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
function create() {
|
||||
importScript("data/scripts/pixel");
|
||||
isSpooky = true;
|
||||
|
||||
// Make transition work between school types
|
||||
if(PlayState.smoothTransitionData?.stage == "school") PlayState.smoothTransitionData.stage = curStage;
|
||||
|
||||
disableScript();
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE codename-engine-stage>
|
||||
<stage zoom="1" folder="stages/school/" >
|
||||
<stage zoom="1" folder="stages/school/">
|
||||
<sprite name="bgSky" x="-12" y="0" sprite="weebSky"
|
||||
antialiasing="false" scale="6" scroll="0.1" updateHitbox="true"/>
|
||||
|
||||
@@ -11,10 +11,12 @@
|
||||
|
||||
|
||||
<sprite name="fgTrees" x="-30" y="130" sprite="weebTreesBack"
|
||||
antialiasing="false" scale="4.8" scroll="0.9" updateHitbox="true" type="loop"/>
|
||||
antialiasing="false" scale="4.797" scroll="0.9" updateHitbox="true" type="loop"/>
|
||||
|
||||
<sprite name="bgTrees" x="-1180" y="-1600" sprite="weebTrees"
|
||||
antialiasing="false" scale="8.4" scroll="0.85" updateHitbox="true" type="loop"/>
|
||||
<sprite name="bgTrees" x="-590" y="-800" sprite="weebTrees" antialiasing="false" scale="5.102" scroll="0.85" updateHitbox="true" type="loop">
|
||||
<!-- Frame 19 isnt used in og -->
|
||||
<anim name="trees" anim="trees" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19" fps="12" loop="true"/>
|
||||
</sprite>
|
||||
|
||||
<high-memory>
|
||||
<sprite name="treeLeaves" x="-200" y="-40" sprite="petals"
|
||||
|
||||
@@ -6,4 +6,11 @@ function update(elapsed:Float) {
|
||||
tankRolling.angle = tankAngle - 90 + 15;
|
||||
tankRolling.x = 400 + (1500 * Math.cos(Math.PI / 180 * (1 * tankAngle + 180)));
|
||||
tankRolling.y = 1300 + (1100 * Math.sin(Math.PI / 180 * (1 * tankAngle + 180)));
|
||||
}
|
||||
|
||||
function onPostCountdown(event) {
|
||||
if(!playCutscenes || event.sprite == null) return;
|
||||
var lastIndex:Int = members.indexOf(event.sprite);
|
||||
remove(event.sprite);
|
||||
insert(lastIndex + 4, event.sprite);
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
<high-memory>
|
||||
<sprite name="smokeLeft" x="-200" y="-100" sprite="smokeLeft" scroll="0.4" zoomfactor="0.6"/>
|
||||
<sprite name="smokeRight" x="1100" y="-100" sprite="smokeRight" scroll="0.4" zoomfactor="0.6"/>
|
||||
<sprite name="tankWatchtower" x="100" y="50" sprite="tankWatchtower" scroll="0.5" onBeat="true" zoomfactor="0.7"/>
|
||||
<sprite name="tankWatchtower" x="100" y="50" sprite="tankWatchtower" scroll="0.5" type="onbeat" beatInterval="2" zoomfactor="0.7"/>
|
||||
</high-memory>
|
||||
<sprite name="tankRolling" x="300" y="300" sprite="tankRolling" scroll="0.5" zoomfactor="0.8" type="loop"/>
|
||||
<sprite name="tankGround" x="-420" y="-150" sprite="tankGround" scale="1.15" updateHitbox="true" zoomfactor="1.0"/>
|
||||
@@ -28,11 +28,11 @@
|
||||
<!-- FOREGROUND TANKMANS -->
|
||||
|
||||
<high-memory>
|
||||
<sprite name="tank0" x="-500" y="650" sprite="tank0" scrollx="1.7" scrolly="1.5" onBeat="true" zoomfactor="1.25"/>
|
||||
<sprite name="tank1" x="-300" y="750" sprite="tank1" scrollx="2" scrolly="0.2" onBeat="true" zoomfactor="1.25"/>
|
||||
<sprite name="tank2" x="450" y="940" sprite="tank2" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
|
||||
<sprite name="tank4" x="1300" y="900" sprite="tank4" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
|
||||
<sprite name="tank5" x="1620" y="700" sprite="tank5" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
|
||||
<sprite name="tank3" x="1300" y="1200" sprite="tank3" scrollx="3.5" scrolly="2.5" onBeat="true" zoomfactor="1.25"/>
|
||||
<sprite name="tank0" x="-500" y="650" sprite="tank0" scrollx="1.7" scrolly="1.5" type="onbeat" beatInterval="2" zoomfactor="1.25"/>
|
||||
<sprite name="tank1" x="-300" y="750" sprite="tank1" scrollx="2" scrolly="0.2" type="onbeat" beatInterval="2" zoomfactor="1.25"/>
|
||||
<sprite name="tank2" x="450" y="940" sprite="tank2" scroll="1.5" type="onbeat" beatInterval="2" zoomfactor="1.25"/>
|
||||
<sprite name="tank4" x="1300" y="900" sprite="tank4" scroll="1.5" type="onbeat" beatInterval="2" zoomfactor="1.25"/>
|
||||
<sprite name="tank5" x="1620" y="700" sprite="tank5" scroll="1.5" type="onbeat" beatInterval="2" zoomfactor="1.25"/>
|
||||
<sprite name="tank3" x="1300" y="1200" sprite="tank3" scrollx="3.5" scrolly="2.5" type="onbeat" beatInterval="2" zoomfactor="1.25"/>
|
||||
</high-memory>
|
||||
</stage>
|
||||
@@ -2,5 +2,5 @@
|
||||
<week name="RED SNOW" chars="parents-christmas,bf,gf" sprite="week5">
|
||||
<song>Cocoa</song>
|
||||
<song>Eggnog</song>
|
||||
<song>Winter Horrorland</song>
|
||||
<song hide="true">Winter Horrorland</song>
|
||||
</week>
|
||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Created with Funkin Packer v0.1.3 https://neeeoo.github.io/funkin-packer/
|
||||
-->
|
||||
<TextureAtlas imagePath="senpaiCrazy.png" width="294" height="443">
|
||||
<SubTexture name="Senpai Pre Explosion instance 10000" x="157" y="110" width="67" height="115" frameX="-48" frameY="-32" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10001" x="120" y="228" width="69" height="112" frameX="-48" frameY="-36" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10002" x="120" y="228" width="69" height="112" frameX="-48" frameY="-36" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10003" x="227" y="108" width="62" height="120" frameX="-50" frameY="-27" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10004" x="227" y="108" width="62" height="120" frameX="-50" frameY="-27" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10005" x="227" y="108" width="62" height="120" frameX="-50" frameY="-27" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10006" x="58" y="216" width="59" height="122" frameX="-51" frameY="-24" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10007" x="58" y="216" width="59" height="122" frameX="-51" frameY="-24" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10008" x="1" y="216" width="54" height="125" frameX="-52" frameY="-24" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10009" x="192" y="231" width="50" height="97" frameX="-53" frameY="-51" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10010" x="192" y="231" width="50" height="97" frameX="-53" frameY="-51" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10011" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10012" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10013" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10014" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10015" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10016" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10017" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10018" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10019" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10020" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10021" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10022" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10023" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10024" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10025" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10026" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10027" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10028" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10029" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10030" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10031" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10032" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10033" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10034" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10035" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10036" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10037" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10038" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10039" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10040" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10041" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10042" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10043" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10044" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10045" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10046" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10047" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10048" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10049" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10050" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10051" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10052" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10053" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10054" x="245" y="231" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10055" x="192" y="331" width="48" height="97" frameX="-55" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10056" x="1" y="344" width="48" height="98" frameX="-54" frameY="-50" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10057" x="58" y="341" width="58" height="100" frameX="-43" frameY="-52" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10058" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10059" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10060" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10061" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10062" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10063" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10064" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10065" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10066" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10067" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10068" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10069" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10070" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10071" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10072" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10073" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10074" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10075" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10076" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10077" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10078" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10079" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10080" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10081" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10082" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10083" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10084" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10085" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10086" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10087" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10088" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10089" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10090" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10091" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10092" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10093" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10094" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10095" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10096" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10097" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10098" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10099" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10100" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10101" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10102" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10103" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10104" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10105" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10106" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10107" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10108" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10109" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10110" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10111" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10112" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10113" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10114" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10115" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10116" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10117" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10118" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10119" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10120" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10121" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10122" x="1" y="1" width="172" height="106" frameX="-6" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10123" x="176" y="1" width="113" height="104" frameX="-8" frameY="-48" frameWidth="252" frameHeight="168"/>
|
||||
<SubTexture name="Senpai Pre Explosion instance 10124" x="1" y="110" width="153" height="103" frameX="-6" frameY="-49" frameWidth="252" frameHeight="168"/>
|
||||
</TextureAtlas>
|
||||
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 305 KiB |
@@ -1,45 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="animatedEvilSchool.png">
|
||||
<!-- Created with Adobe Animate version 20.0.0.17400 -->
|
||||
<!-- http://www.adobe.com/products/animate.html -->
|
||||
<SubTexture name="background 2 instance 10000" x="0" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10001" x="523" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10002" x="1046" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10003" x="1569" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10004" x="2092" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10005" x="2615" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10006" x="3138" y="0" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10007" x="0" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10008" x="523" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10009" x="1046" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10010" x="1569" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10011" x="2092" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10012" x="2615" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10013" x="3138" y="522" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10014" x="0" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10015" x="523" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10016" x="1046" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10017" x="1569" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10018" x="2092" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10019" x="2615" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10020" x="3138" y="1044" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10021" x="0" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10022" x="523" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10023" x="1046" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10024" x="1569" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10025" x="2092" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10026" x="2615" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10027" x="3138" y="1566" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10028" x="0" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10029" x="523" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10030" x="1046" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10031" x="1569" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10032" x="2092" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10033" x="2615" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10034" x="3138" y="2088" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10035" x="0" y="2610" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10036" x="523" y="2610" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10037" x="1046" y="2610" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10038" x="1569" y="2610" width="513" height="512"/>
|
||||
<SubTexture name="background 2 instance 10039" x="2092" y="2610" width="513" height="512"/>
|
||||
</TextureAtlas>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Created with Funkin Packer v0.1.3 https://neeeoo.github.io/funkin-packer/
|
||||
-->
|
||||
<TextureAtlas imagePath="animatedEvilSchool.png" width="1579" height="1319">
|
||||
<SubTexture name="background 2 instance 10000" x="1" y="1" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10001" x="1" y="166" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10002" x="317" y="1" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10003" x="317" y="166" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10004" x="1" y="331" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10005" x="317" y="331" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10006" x="1" y="496" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10007" x="317" y="496" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10008" x="633" y="1" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10009" x="633" y="166" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10010" x="633" y="331" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10011" x="633" y="496" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10012" x="1" y="661" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10013" x="317" y="661" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10014" x="633" y="661" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10015" x="1" y="826" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10016" x="317" y="826" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10017" x="633" y="826" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10018" x="949" y="1" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10019" x="949" y="166" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10020" x="949" y="331" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10021" x="949" y="496" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10022" x="949" y="661" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10023" x="949" y="826" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10024" x="1" y="991" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10025" x="317" y="991" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10026" x="633" y="991" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10027" x="949" y="991" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10028" x="1" y="1156" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10029" x="317" y="1156" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10030" x="633" y="1156" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10031" x="949" y="1156" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10032" x="1265" y="1" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10033" x="1265" y="166" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10034" x="1265" y="331" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10035" x="1265" y="496" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10036" x="1265" y="661" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10037" x="1265" y="826" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10038" x="1265" y="991" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
<SubTexture name="background 2 instance 10039" x="1265" y="1156" width="313" height="162" frameX="-100" frameY="-174" frameWidth="513" frameHeight="512"/>
|
||||
</TextureAtlas>
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 92 KiB |
@@ -1,65 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="bgFreaks.png">
|
||||
<!-- Created with Adobe Animate version 20.0.0.17400 -->
|
||||
<!-- http://www.adobe.com/products/animate.html -->
|
||||
<SubTexture name="BG fangirls dissuaded0000" x="0" y="0" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0001" x="0" y="0" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0002" x="461" y="0" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0003" x="461" y="0" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0004" x="461" y="0" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0005" x="461" y="0" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0006" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0007" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0008" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0009" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0010" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0011" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0012" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0013" x="0" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0014" x="461" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0015" x="461" y="106" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0016" x="0" y="212" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0017" x="0" y="212" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0018" x="461" y="212" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0019" x="461" y="212" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0020" x="0" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0021" x="0" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0022" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0023" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0024" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0025" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0026" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0027" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0028" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0029" x="461" y="318" width="451" height="96"/>
|
||||
<SubTexture name="BG girls group0000" x="0" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0001" x="0" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0002" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0003" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0004" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0005" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0006" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0007" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0008" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0009" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0010" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0011" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0012" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0013" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0014" x="460" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0015" x="460" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0016" x="0" y="636" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0017" x="0" y="636" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0018" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0019" x="0" y="530" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0020" x="460" y="636" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0021" x="460" y="636" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0022" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0023" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0024" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0025" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0026" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0027" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0028" x="460" y="424" width="450" height="96"/>
|
||||
<SubTexture name="BG girls group0029" x="460" y="424" width="450" height="96"/>
|
||||
</TextureAtlas>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Created with Funkin Packer v0.1.3 https://neeeoo.github.io/funkin-packer/
|
||||
-->
|
||||
<TextureAtlas imagePath="bgFreaks.png" width="873" height="590">
|
||||
<SubTexture name="BG fangirls dissuaded0000" x="1" y="1" width="435" height="82" frameX="-8" frameY="-9" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0001" x="1" y="1" width="435" height="82" frameX="-8" frameY="-9" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0002" x="1" y="341" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0003" x="1" y="341" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0004" x="1" y="341" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0005" x="1" y="341" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0006" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0007" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0008" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0009" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0010" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0011" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0012" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0013" x="1" y="425" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0014" x="1" y="86" width="434" height="82" frameX="-8" frameY="-9" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0015" x="1" y="86" width="434" height="82" frameX="-8" frameY="-9" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0016" x="437" y="256" width="434" height="81" frameX="-7" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0017" x="437" y="256" width="434" height="81" frameX="-7" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0018" x="438" y="340" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0019" x="438" y="340" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0020" x="1" y="509" width="434" height="79" frameX="-8" frameY="-12" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0021" x="1" y="509" width="434" height="79" frameX="-8" frameY="-12" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0022" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0023" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0024" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0025" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0026" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0027" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0028" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG fangirls dissuaded0029" x="438" y="424" width="434" height="81" frameX="-8" frameY="-10" frameWidth="451" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0000" x="1" y="171" width="434" height="82" frameX="-9" frameY="-10" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0001" x="1" y="171" width="434" height="82" frameX="-9" frameY="-10" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0002" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0003" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0004" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0005" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0006" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0007" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0008" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0009" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0010" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0011" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0012" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0013" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0014" x="438" y="170" width="433" height="81" frameX="-8" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0015" x="438" y="170" width="433" height="81" frameX="-8" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0016" x="1" y="256" width="433" height="82" frameX="-9" frameY="-10" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0017" x="1" y="256" width="433" height="82" frameX="-9" frameY="-10" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0018" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0019" x="439" y="1" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0020" x="438" y="508" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0021" x="438" y="508" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0022" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0023" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0024" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0025" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0026" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0027" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0028" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
<SubTexture name="BG girls group0029" x="438" y="86" width="433" height="81" frameX="-9" frameY="-11" frameWidth="450" frameHeight="96"/>
|
||||
</TextureAtlas>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 19 KiB |
@@ -1,61 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="petals.png">
|
||||
<!-- Created with Adobe Animate version 20.0.0.17400 -->
|
||||
<!-- http://www.adobe.com/products/animate.html -->
|
||||
<SubTexture name="PETALS ALL0000" x="0" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0001" x="0" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0002" x="313" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0003" x="313" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0004" x="626" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0005" x="939" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0006" x="1252" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0007" x="1252" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0008" x="1565" y="0" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0009" x="0" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0010" x="313" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0011" x="626" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0012" x="939" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0013" x="1252" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0014" x="1252" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0015" x="1565" y="163" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0016" x="0" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0017" x="313" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0018" x="313" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0019" x="626" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0020" x="939" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0021" x="1252" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0022" x="1252" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0023" x="1565" y="326" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0024" x="0" y="489" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0025" x="313" y="489" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0026" x="626" y="489" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0027" x="939" y="489" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0028" x="1252" y="489" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0029" x="1565" y="489" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0030" x="0" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0031" x="313" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0032" x="626" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0033" x="939" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0034" x="1252" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0035" x="1252" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0036" x="1565" y="652" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0037" x="0" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0038" x="313" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0039" x="313" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0040" x="626" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0041" x="939" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0042" x="939" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0043" x="1252" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0044" x="1565" y="815" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0045" x="0" y="978" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0046" x="313" y="978" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0047" x="626" y="978" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0048" x="939" y="978" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0049" x="1252" y="978" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0050" x="1565" y="978" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0051" x="0" y="1141" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0052" x="313" y="1141" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0053" x="313" y="1141" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0054" x="626" y="1141" width="311" height="161"/>
|
||||
<SubTexture name="PETALS ALL0055" x="0" y="0" width="311" height="161"/>
|
||||
</TextureAtlas>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Created with Funkin Packer v0.1.3 https://neeeoo.github.io/funkin-packer/
|
||||
-->
|
||||
<TextureAtlas imagePath="petals.png" width="921" height="821">
|
||||
<SubTexture name="PETALS ALL0000" x="405" y="522" width="125" height="50" frameX="-107" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0001" x="405" y="522" width="125" height="50" frameX="-107" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0002" x="400" y="684" width="123" height="56" frameX="-109" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0003" x="400" y="684" width="123" height="56" frameX="-109" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0004" x="248" y="749" width="118" height="56" frameX="-109" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0005" x="523" y="749" width="118" height="56" frameX="-109" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0006" x="1" y="757" width="121" height="63" frameX="-106" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0007" x="1" y="757" width="121" height="63" frameX="-106" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0008" x="644" y="749" width="113" height="63" frameX="-106" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0009" x="807" y="1" width="113" height="58" frameX="-106" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0010" x="125" y="757" width="120" height="63" frameX="-99" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0011" x="400" y="743" width="120" height="63" frameX="-99" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0012" x="807" y="62" width="111" height="63" frameX="-99" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0013" x="526" y="684" width="123" height="62" frameX="-87" frameY="-25" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0014" x="526" y="684" width="123" height="62" frameX="-87" frameY="-25" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0015" x="652" y="637" width="123" height="62" frameX="-87" frameY="-25" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0016" x="1" y="684" width="130" height="70" frameX="-71" frameY="-25" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0017" x="134" y="684" width="130" height="62" frameX="-71" frameY="-33" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0018" x="134" y="684" width="130" height="62" frameX="-71" frameY="-33" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0019" x="267" y="684" width="130" height="62" frameX="-71" frameY="-33" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0020" x="622" y="225" width="149" height="98" frameX="-67" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0021" x="612" y="326" width="149" height="98" frameX="-67" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0022" x="612" y="326" width="149" height="98" frameX="-67" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0023" x="612" y="427" width="149" height="98" frameX="-67" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0024" x="553" y="528" width="139" height="106" frameX="-64" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0025" x="1" y="575" width="181" height="106" frameX="-22" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0026" x="185" y="575" width="181" height="106" frameX="-22" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0027" x="369" y="575" width="181" height="106" frameX="-22" frameY="-5" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0028" x="623" y="1" width="181" height="109" frameX="-22" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0029" x="623" y="113" width="180" height="109" frameX="-18" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0030" x="414" y="320" width="195" height="109" frameX="-18" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0031" x="405" y="432" width="195" height="87" frameX="-18" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0032" x="414" y="239" width="199" height="78" frameX="-18" frameY="-17" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0033" x="1" y="207" width="205" height="91" frameX="-12" frameY="-17" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0034" x="210" y="1" width="205" height="89" frameX="-12" frameY="-19" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0035" x="210" y="1" width="205" height="89" frameX="-12" frameY="-19" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0036" x="207" y="343" width="199" height="85" frameX="-12" frameY="-23" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0037" x="1" y="1" width="206" height="100" frameX="-5" frameY="-23" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0038" x="1" y="104" width="206" height="100" frameX="-5" frameY="-23" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0039" x="1" y="104" width="206" height="100" frameX="-5" frameY="-23" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0040" x="418" y="131" width="201" height="105" frameX="-5" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0041" x="210" y="93" width="205" height="117" frameX="-1" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0042" x="210" y="93" width="205" height="117" frameX="-1" frameY="-18" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0043" x="209" y="213" width="202" height="127" frameX="-1" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0044" x="418" y="1" width="202" height="127" frameX="-1" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0045" x="1" y="301" width="203" height="133" frameX="-0" frameY="-8" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0046" x="1" y="437" width="199" height="135" frameX="-0" frameY="-6" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0047" x="203" y="437" width="199" height="135" frameX="-0" frameY="-6" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0048" x="760" y="702" width="104" height="108" frameX="-95" frameY="-6" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0049" x="806" y="128" width="104" height="89" frameX="-95" frameY="-25" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0050" x="764" y="428" width="97" height="89" frameX="-95" frameY="-25" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0051" x="788" y="326" width="97" height="99" frameX="-95" frameY="-15" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0052" x="695" y="528" width="90" height="103" frameX="-102" frameY="-15" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0053" x="695" y="528" width="90" height="103" frameX="-102" frameY="-15" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0054" x="806" y="220" width="79" height="103" frameX="-102" frameY="-15" frameWidth="311" frameHeight="161"/>
|
||||
<SubTexture name="PETALS ALL0055" x="405" y="522" width="125" height="50" frameX="-107" frameY="-13" frameWidth="311" frameHeight="161"/>
|
||||
</TextureAtlas>
|
||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 61 KiB |
@@ -1,20 +0,0 @@
|
||||
trees_0 = 0 0 512 512
|
||||
trees_1 = 513 0 512 512
|
||||
trees_2 = 1539 1026 512 512
|
||||
trees_3 = 2052 513 512 512
|
||||
trees_4 = 2565 0 512 512
|
||||
trees_5 = 3078 0 512 512
|
||||
trees_6 = 2565 513 512 512
|
||||
trees_7 = 2052 1026 512 512
|
||||
trees_8 = 2565 1026 512 512
|
||||
trees_9 = 3078 513 512 512
|
||||
trees_10 = 1026 0 512 512
|
||||
trees_11 = 0 513 512 512
|
||||
trees_12 = 513 513 512 512
|
||||
trees_13 = 0 1026 512 512
|
||||
trees_14 = 513 1026 512 512
|
||||
trees_15 = 1026 513 512 512
|
||||
trees_16 = 1026 1026 512 512
|
||||
trees_17 = 1539 0 512 512
|
||||
trees_18 = 1539 513 512 512
|
||||
trees_19 = 2052 0 512 512
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Created with Funkin Packer v0.1.3 https://neeeoo.github.io/funkin-packer/
|
||||
-->
|
||||
<TextureAtlas imagePath="weebTrees.png" width="630" height="679">
|
||||
<SubTexture name="trees0000" x="1" y="86" width="312" height="82" frameX="-101" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0001" x="1" y="171" width="312" height="82" frameX="-101" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0002" x="1" y="256" width="312" height="82" frameX="-101" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0003" x="1" y="1" width="313" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0004" x="317" y="1" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0005" x="316" y="86" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0006" x="316" y="171" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0007" x="316" y="256" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0008" x="1" y="341" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0009" x="316" y="341" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0010" x="1" y="426" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0011" x="1" y="596" width="311" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0012" x="1" y="596" width="311" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0013" x="1" y="596" width="311" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0014" x="1" y="596" width="311" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0015" x="1" y="596" width="311" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0016" x="315" y="596" width="311" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0017" x="316" y="426" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0018" x="1" y="511" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
<SubTexture name="trees0019" x="316" y="511" width="312" height="82" frameX="-100" frameY="-176" frameWidth="512" frameHeight="512"/>
|
||||
</TextureAtlas>
|
||||
|
Before Width: | Height: | Size: 1015 KiB After Width: | Height: | Size: 481 KiB |
@@ -14,14 +14,14 @@
|
||||
<SubTexture name="John Shot 10009" x="3519" y="2571" width="521" height="466" frameX="-125" frameY="-156" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10010" x="3519" y="2571" width="521" height="466" frameX="-125" frameY="-156" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10011" x="2626" y="2720" width="459" height="490" frameX="-187" frameY="-132" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10012" x="0" y="0" width="0" height="0" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10012" x="0" y="0" width="1" height="1" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10013" x="2626" y="2720" width="459" height="490" frameX="-187" frameY="-132" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10014" x="0" y="0" width="0" height="0" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10014" x="0" y="0" width="1" height="1" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10015" x="2626" y="2720" width="459" height="490" frameX="-187" frameY="-132" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10016" x="0" y="0" width="0" height="0" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10016" x="0" y="0" width="1" height="1" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10017" x="2626" y="2720" width="459" height="490" frameX="-187" frameY="-132" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10018" x="0" y="0" width="0" height="0" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10019" x="0" y="0" width="0" height="0" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10018" x="0" y="0" width="1" height="1" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 10019" x="0" y="0" width="1" height="1" frameX="-49" frameY="-265" frameWidth="1044" frameHeight="622"/>
|
||||
<SubTexture name="John Shot 20000" x="0" y="2664" width="597" height="429" frameX="-243" frameY="-212" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20001" x="0" y="1518" width="885" height="626" frameX="-215" frameY="-48" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20002" x="889" y="1556" width="915" height="592" frameX="-185" frameY="-82" frameWidth="1221" frameHeight="828"/>
|
||||
@@ -34,13 +34,13 @@
|
||||
<SubTexture name="John Shot 20009" x="754" y="2152" width="768" height="491" frameX="-13" frameY="-179" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20010" x="754" y="2152" width="768" height="491" frameX="-13" frameY="-179" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20011" x="754" y="2647" width="781" height="461" frameX="0" frameY="-209" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20012" x="0" y="0" width="0" height="0" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20012" x="0" y="0" width="1" height="1" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20013" x="754" y="2647" width="781" height="461" frameX="0" frameY="-209" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20014" x="0" y="0" width="0" height="0" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20014" x="0" y="0" width="1" height="1" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20015" x="754" y="2647" width="781" height="461" frameX="0" frameY="-209" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20016" x="0" y="0" width="0" height="0" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20016" x="0" y="0" width="1" height="1" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20017" x="754" y="2647" width="781" height="461" frameX="0" frameY="-209" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20018" x="0" y="0" width="0" height="0" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="John Shot 20018" x="0" y="0" width="1" height="1" frameX="-123" frameY="-327" frameWidth="1221" frameHeight="828"/>
|
||||
<SubTexture name="tankman running0000" x="2045" y="2744" width="503" height="412" frameX="0" frameY="-10" frameWidth="505" frameHeight="478"/>
|
||||
<SubTexture name="tankman running0001" x="2045" y="2744" width="503" height="412" frameX="0" frameY="-10" frameWidth="505" frameHeight="478"/>
|
||||
<SubTexture name="tankman running0002" x="2045" y="2744" width="503" height="412" frameX="0" frameY="-10" frameWidth="505" frameHeight="478"/>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#pragma header
|
||||
|
||||
uniform vec2 redOff;
|
||||
uniform vec2 greenOff;
|
||||
uniform vec2 blueOff;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = getCamPos(openfl_TextureCoordv);
|
||||
vec4 col;
|
||||
col.r = textureCam(bitmap, uv + redOff).r;
|
||||
col.g = textureCam(bitmap, uv + greenOff).g;
|
||||
col.b = textureCam(bitmap, uv + blueOff).b;
|
||||
col.a = texture2D(bitmap, openfl_TextureCoordv).a;
|
||||
|
||||
gl_FragColor = col;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma header
|
||||
|
||||
uniform vec3 color;
|
||||
uniform float amount;
|
||||
uniform float strength;
|
||||
|
||||
void main() {
|
||||
vec2 uv = getCamPos(openfl_TextureCoordv);
|
||||
vec3 col = pow(textureCam(bitmap, uv).rgb, vec3(1.0 / strength));
|
||||
|
||||
float vignette = mix(1.0, 1.0 - amount, distance(uv, vec2(0.5)));
|
||||
col = pow(mix(col * color, col, vignette), vec3(strength));
|
||||
|
||||
gl_FragColor = vec4(col, 1.0);
|
||||
}
|
||||
@@ -53,12 +53,4 @@ function focusOn(char) {
|
||||
var camPos = char.getCameraPosition();
|
||||
game.camFollow.setPosition(camPos.x, camPos.y);
|
||||
camPos.put();
|
||||
}
|
||||
|
||||
function update(elapsed:Float) {
|
||||
lipSync(tankTalk);
|
||||
}
|
||||
|
||||
function lipSync(sound:FlxSound) {
|
||||
tankman.animateAtlas.anim.curFrame = Std.int(tankman.animateAtlas.anim.length / (sound.length-1) * sound.time);
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
static var roses_shouldPlayOnThorns = false;
|
||||
var self = this;
|
||||
__script__.setParent(PlayState.instance);
|
||||
|
||||
function create() {
|
||||
var red:FlxSprite;
|
||||
red = new FlxSprite().makeSolid(FlxG.width + 100, FlxG.height + 100, 0xFFff1b31);
|
||||
red.screenCenter();
|
||||
red.scrollFactor.set();
|
||||
red.alpha = 0;
|
||||
add(red);
|
||||
|
||||
// reorder dad
|
||||
remove(dad);
|
||||
insert(PlayState.instance.members.indexOf(red) + 1, dad);
|
||||
|
||||
playDadUpdate = true;
|
||||
dad.animation.finishCallback = (name:String) -> {
|
||||
if(name == "idle") {
|
||||
dad.animation.finishCallback = null;
|
||||
playDadUpdate = false;
|
||||
|
||||
new FlxTimer().start(0.3, function(swagTimer:FlxTimer) {
|
||||
red.alpha += 0.15;
|
||||
camHUD.alpha -= 0.15;
|
||||
var c = FlxMath.lerp(255, 0, red.alpha);
|
||||
dad.color = FlxColor.fromRGB(c, c, c, 255);
|
||||
if(red.alpha < 1) swagTimer.reset();
|
||||
else {
|
||||
if (Options.gameplayShaders) {
|
||||
aberration = new CustomShader('chromaticAberration');
|
||||
camGame.addShader(aberration);
|
||||
change = true;
|
||||
}
|
||||
|
||||
FlxG.camera.followLerp = 0;
|
||||
FlxTween.tween(camGame.scroll, {x: -366, y: 192}, 3, {
|
||||
ease: FlxEase.cubeInOut,
|
||||
onComplete: (_) -> {
|
||||
roses_shouldPlayOnThorns = true;
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if(dad.animation.curAnim.name != "idle")
|
||||
dad.playAnim("idle", true);
|
||||
else if(dad.animation.curAnim.finished)
|
||||
dad.animation.finishCallback("idle");
|
||||
}
|
||||
|
||||
var playDadUpdate = false;
|
||||
function postUpdate(elapsed) {
|
||||
if(playDadUpdate)
|
||||
dad.update(elapsed);
|
||||
}
|
||||
|
||||
var change:Bool = false;
|
||||
var aberration:CustomShader = null;
|
||||
function update(elapsed:Float) {
|
||||
if(change && intens < (Options.week6PixelPerfect ? 0.005 : 0.005)) setGeneralIntensity(intens + 0.00001);
|
||||
}
|
||||
|
||||
var intens:Float = 0;
|
||||
function setGeneralIntensity(val:Float) {
|
||||
intens = val;
|
||||
aberration.redOff = [intens, 0];
|
||||
aberration.blueOff = [-intens, 0];
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import funkin.system.FunkinSprite;
|
||||
import funkin.options.Options;
|
||||
|
||||
var tankman, pico:FunkinSprite;
|
||||
var gf:Character;
|
||||
var bf, gf:Character;
|
||||
var stressCutscene:FlxSound;
|
||||
var step:Int = 0;
|
||||
|
||||
@@ -13,10 +13,15 @@ function create() {
|
||||
game.persistentUpdate = true;
|
||||
|
||||
game.gf.visible = false;
|
||||
gf = new Character(game.gf.x, game.gf.y, "gf-tankmen");
|
||||
gf = new Character(game.gf.x + game.gf.globalOffset.x - 115, game.gf.y + game.gf.globalOffset.y + 85, "gf-tankmen");
|
||||
gf.scrollFactor.set(0.95, 0.95);
|
||||
gf.playAnim("dance-cutscene");
|
||||
game.insert(game.members.indexOf(game.gf), gf);
|
||||
game.insert(game.members.indexOf(game.gf) + 1, gf);
|
||||
|
||||
game.boyfriend.visible = false;
|
||||
bf = new Character(game.boyfriend.x + game.boyfriend.globalOffset.x, game.boyfriend.y + game.boyfriend.globalOffset.y - 350, "boyfriend", true);
|
||||
bf.scrollFactor.set(0.95, 0.95);
|
||||
game.insert(game.members.indexOf(game.boyfriend) + 1, bf);
|
||||
|
||||
stressCutscene = FlxG.sound.load(Paths.sound(Options.naughtyness ? 'cutscenes/tank/stress' : 'cutscenes/tank/stress-censor'));
|
||||
|
||||
@@ -46,14 +51,13 @@ function create() {
|
||||
pico.scrollFactor.set(0.95, 0.95);
|
||||
pico.playAnim("idle");
|
||||
pico.visible = false;
|
||||
game.insert(game.members.indexOf(game.gf), pico);
|
||||
|
||||
game.insert(game.members.indexOf(game.dad), tankman);
|
||||
game.insert(game.members.indexOf(game.gf) + 1, pico);
|
||||
|
||||
game.insert(game.members.indexOf(game.dad) + 1, tankman);
|
||||
game.dad.visible = false;
|
||||
|
||||
focusOn(game.dad);
|
||||
}
|
||||
|
||||
function update(elapsed) {
|
||||
if (FlxG.keys.justPressed.F5)
|
||||
FlxG.resetState();
|
||||
@@ -78,6 +82,14 @@ function update(elapsed) {
|
||||
FlxG.camera.zoom = 0.8;
|
||||
step = 2;
|
||||
pico.playAnim('saves', true);
|
||||
game.remove(bf);
|
||||
bf.destroy();
|
||||
game.boyfriend.visible = true;
|
||||
game.boyfriend.playAnim('bfCatch');
|
||||
game.boyfriend.animation.finishCallback = function(anim:String) {
|
||||
game.boyfriend.dance();
|
||||
game.boyfriend.animation.finishCallback = null;
|
||||
};
|
||||
}
|
||||
case 2:
|
||||
if (stressCutscene.time > 19600) {
|
||||
@@ -93,8 +105,22 @@ function update(elapsed) {
|
||||
}
|
||||
case 4:
|
||||
lipSync(tankman, 19500, stressCutscene.length);
|
||||
if (pico.isAnimFinished() && pico.getAnimName() == "saves")
|
||||
pico.playAnim("idle");
|
||||
pico.animation.finishCallback = pico.playAnim("idle");
|
||||
|
||||
if(stressCutscene.time > 31500) {
|
||||
focusOn(game.boyfriend, true);
|
||||
FlxG.camera.zoom = game.defaultCamZoom * 1.4;
|
||||
FlxTween.tween(FlxG.camera, {zoom: FlxG.camera.zoom + 0.1}, 0.5, {ease: FlxEase.elasticOut});
|
||||
game.boyfriend.playAnim('singUPmiss');
|
||||
game.boyfriend.animation.finishCallback = function(anim:String)
|
||||
{
|
||||
FlxG.camera.zoom /= 1.4;
|
||||
focusOn(game.dad, true);
|
||||
game.boyfriend.dance();
|
||||
game.boyfriend.animation.finishCallback = null;
|
||||
};
|
||||
step = 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,8 +128,9 @@ function lipSync(char:FunkinSprite, begin:Float, end:Float) {
|
||||
char.animateAtlas.anim.curFrame = Std.int(FlxMath.remapToRange(stressCutscene.time, begin, end, 0, char.animateAtlas.anim.length-1));
|
||||
}
|
||||
|
||||
function focusOn(char) {
|
||||
function focusOn(char, snap:Bool = false) {
|
||||
var camPos = char.getCameraPosition();
|
||||
game.camFollow.setPosition(camPos.x, camPos.y);
|
||||
if(snap) FlxG.camera.snapToTarget();
|
||||
camPos.put();
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
import flixel.FlxSprite;
|
||||
|
||||
var tankmanRun:Array<TankmenBG> = [];
|
||||
var grpTankmanRun:FlxTypedGroup<FlxSprite> = [];
|
||||
|
||||
var spawnTimes = []; // [[time, direction]]
|
||||
var tankmanPool = [];
|
||||
|
||||
function recycleTankman() {
|
||||
if(tankmanPool.length == 0) {
|
||||
var a = new TankmenBG();
|
||||
a.self = a;
|
||||
a.fuckingnewfuckingnew();
|
||||
return a;
|
||||
} else {
|
||||
return tankmanPool.shift(); // can be pop but it causes it to be less random
|
||||
}
|
||||
}
|
||||
|
||||
function getTankman(data:Array<Float>) {
|
||||
var tankman:TankmenBG = recycleTankman();
|
||||
tankman.strumTime = data[0];
|
||||
tankman.resetShit(500, 200 + FlxG.random.int(50, 100), data[1] < 2);
|
||||
return tankman;
|
||||
}
|
||||
|
||||
function postCreate() {
|
||||
grpTankmanRun = new FlxTypedGroup();
|
||||
insert(members.indexOf(gf) - 1, grpTankmanRun);
|
||||
if(inCutscene) grpTankmanRun.visible = false;
|
||||
|
||||
/*var tempTankman:TankmenBG = recycleTankman();
|
||||
tempTankman.strumTime = 10;
|
||||
tempTankman.resetShit(20, 600, true);
|
||||
tankmanRun.push(tempTankman);
|
||||
grpTankmanRun.add(tempTankman.sprite);*/
|
||||
graphicCache.cache(Paths.image('stages/tank/tankmanKilled1'));
|
||||
|
||||
for (note in strumLines.members[2].notes.members) {
|
||||
if (FlxG.random.bool(16)) {
|
||||
spawnTimes.push([note.strumTime, note.noteData]);
|
||||
}
|
||||
}
|
||||
|
||||
//spawnTimes.reverse(); // no need to reverse it since the notes are already reversed
|
||||
}
|
||||
|
||||
function onStartCountdown() {
|
||||
if(PlayState.instance.seenCutscene) grpTankmanRun.visible = true;
|
||||
}
|
||||
|
||||
function spawnTankmen() {
|
||||
var time = Conductor.songPosition;
|
||||
//trace(spawnTimes);
|
||||
while(spawnTimes.length > 0 && spawnTimes[spawnTimes.length-1][0] - 1500 < time) {
|
||||
var tankmen = getTankman(spawnTimes.pop());
|
||||
|
||||
//trace("Spawning Tankman", tankmen.sprite.offset, tankmen.goingRight);
|
||||
|
||||
tankmanRun.push(tankmen);
|
||||
grpTankmanRun.add(tankmen.sprite);
|
||||
}
|
||||
}
|
||||
|
||||
function update(elapsed) {
|
||||
spawnTankmen();
|
||||
|
||||
var length = tankmanRun.length;
|
||||
for(i in 0...length) {
|
||||
var reverseIndex = length - i - 1;
|
||||
var tankmen = tankmanRun[reverseIndex];
|
||||
tankmen.update(elapsed);
|
||||
}
|
||||
}
|
||||
|
||||
class TankmenBG
|
||||
{
|
||||
var strumTime = 0;
|
||||
var goingRight = false;
|
||||
var tankSpeed = 0.7;
|
||||
|
||||
var endingOffset = null;
|
||||
var sprite = null;
|
||||
|
||||
var self = null;
|
||||
var killed = false;
|
||||
|
||||
var fuckingnewfuckingnew = function()
|
||||
{
|
||||
this.sprite = new FlxSprite();
|
||||
var sprite = this.sprite;
|
||||
|
||||
sprite.frames = Paths.getSparrowAtlas('stages/tank/tankmanKilled1');
|
||||
sprite.antialiasing = true;
|
||||
sprite.animation.addByPrefix('run', 'tankman running', 24, true);
|
||||
|
||||
sprite.animation.play('run');
|
||||
|
||||
sprite.updateHitbox();
|
||||
|
||||
sprite.setGraphicSize(Std.int(sprite.width * 0.8));
|
||||
sprite.updateHitbox();
|
||||
}
|
||||
|
||||
var resetShit = function(x, y, isGoingRight)
|
||||
{
|
||||
var sprite = this.sprite;
|
||||
sprite.revive();
|
||||
sprite.setPosition(x, y);
|
||||
sprite.offset.set(0, 0);
|
||||
goingRight = isGoingRight;
|
||||
endingOffset = FlxG.random.float(50, 200);
|
||||
tankSpeed = FlxG.random.float(0.6, 1);
|
||||
sprite.animation.remove("shot");
|
||||
sprite.animation.addByPrefix('shot', 'John Shot ' + FlxG.random.int(1, 2), 24, false);
|
||||
sprite.animation.play("run");
|
||||
sprite.animation.curAnim.curFrame = FlxG.random.int(0, sprite.animation.curAnim.numFrames - 1);
|
||||
|
||||
killed = false;
|
||||
sprite.flipX = goingRight;
|
||||
}
|
||||
|
||||
var update = function(elapsed)
|
||||
{
|
||||
var sprite = this.sprite;
|
||||
sprite.visible = !(sprite.x >= FlxG.width * 1.5 || sprite.x <= FlxG.width * -0.5);
|
||||
|
||||
if (sprite.animation.curAnim.name == 'run')
|
||||
{
|
||||
var endDirection:Float = (FlxG.width * 0.74) + endingOffset;
|
||||
|
||||
if (goingRight) {
|
||||
endDirection = (FlxG.width * 0.02) - endingOffset;
|
||||
sprite.x = (endDirection + (Conductor.songPosition - strumTime) * tankSpeed);
|
||||
}
|
||||
else sprite.x = (endDirection - (Conductor.songPosition - strumTime) * tankSpeed);
|
||||
}
|
||||
|
||||
if (Conductor.songPosition > strumTime)
|
||||
{
|
||||
sprite.animation.play('shot');
|
||||
sprite.animation.finishCallback = function(_) {
|
||||
killed = true;
|
||||
grpTankmanRun.remove(sprite, true);
|
||||
sprite.kill();
|
||||
tankmanPool.push(self);
|
||||
tankmanRun.remove(self);
|
||||
}
|
||||
|
||||
if (goingRight)
|
||||
{
|
||||
sprite.offset.y = 200;
|
||||
sprite.offset.x = 300;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
import flixel.addons.util.FlxSimplex;
|
||||
|
||||
static var roses_shouldPlayOnThorns = false;
|
||||
var self = this;
|
||||
__script__.setParent(PlayState.instance);
|
||||
|
||||
var scream:FlxSound;
|
||||
var senpaiEvil:FlxSprite;
|
||||
var dfx = 0;
|
||||
var dfy = 0;
|
||||
function create() {
|
||||
// Cutscene stuff
|
||||
if(!roses_shouldPlayOnThorns) {
|
||||
disableScript();
|
||||
self.close();
|
||||
return;
|
||||
}
|
||||
roses_shouldPlayOnThorns = false;
|
||||
camHUD.visible = false;
|
||||
|
||||
var red:FlxSprite = new FlxSprite().makeSolid(FlxG.width + 100, FlxG.height + 100, 0xFFff1b31);
|
||||
red.screenCenter();
|
||||
red.scrollFactor.set();
|
||||
add(red);
|
||||
|
||||
senpaiEvil = new FlxSprite();
|
||||
senpaiEvil.frames = Paths.getSparrowAtlas('game/cutscenes/weeb/senpaiCrazy');
|
||||
senpaiEvil.animation.addByPrefix('idle', 'Senpai Pre Explosion', 24, false);
|
||||
senpaiEvil.animation.play('idle');
|
||||
senpaiEvil.setGraphicSize(Std.int(senpaiEvil.width * daPixelZoom));
|
||||
senpaiEvil.scrollFactor.set();
|
||||
senpaiEvil.updateHitbox();
|
||||
senpaiEvil.screenCenter();
|
||||
senpaiEvil.x += daPixelZoom * 51;
|
||||
dfx = senpaiEvil.x;
|
||||
dfy = senpaiEvil.y;
|
||||
add(senpaiEvil);
|
||||
|
||||
var white:FlxSprite = new FlxSprite().makeSolid(FlxG.width + 100, FlxG.height + 100, FlxColor.WHITE);
|
||||
white.screenCenter();
|
||||
white.scrollFactor.set();
|
||||
white.alpha = 0;
|
||||
add(white);
|
||||
|
||||
new FlxTimer().start(3.2, function(deadTime:FlxTimer)
|
||||
{
|
||||
FlxG.camera.fade(FlxColor.WHITE, 1.6, false, function() {
|
||||
remove(senpaiEvil, true);
|
||||
senpaiEvil.destroy();
|
||||
remove(red, true);
|
||||
red.destroy();
|
||||
|
||||
white.alpha = 1;
|
||||
});
|
||||
});
|
||||
scream = FlxG.sound.play(Paths.sound('cutscenes/weeb/Senpai_Dies'), 1, false, null, true, function()
|
||||
{
|
||||
new FlxTimer().start(0.2, function(swagTimer:FlxTimer) {
|
||||
white.alpha -= 0.15;
|
||||
|
||||
if(white.alpha > 0) swagTimer.reset();
|
||||
else {
|
||||
remove(white, true);
|
||||
white.destroy();
|
||||
|
||||
camHUD.visible = true;
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
|
||||
FlxG.camera.fade(FlxColor.WHITE, 0.0001, true);
|
||||
});
|
||||
}
|
||||
|
||||
var sVal = 0;
|
||||
var seed = FlxG.random.float(-4000, 4000);
|
||||
var sShkv = 50; // shake range
|
||||
var sSpeed = 240;
|
||||
|
||||
function update(elapsed:Float) {
|
||||
if(scream?.time > 2350) {
|
||||
sVal += sSpeed * elapsed;
|
||||
|
||||
var vx = sShkv * FlxSimplex.simplexOctaves(sVal, seed, 0.07, 0.25, 4);
|
||||
var vy = sShkv * FlxSimplex.simplexOctaves(sVal + 500, seed, 0.07, 0.25, 4);
|
||||
|
||||
senpaiEvil.setPosition(dfx + vx, dfy + vy);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
var aberration:CustomShader = null;
|
||||
function create() {
|
||||
if(!Options.gameplayShaders) return;
|
||||
aberration = new CustomShader('chromaticAberration');
|
||||
setGeneralIntensity(Options.week6PixelPerfect ? 0.0005 : 0.005);
|
||||
camGame.addShader(aberration);
|
||||
}
|
||||
|
||||
var intens:Float = 0;
|
||||
function setGeneralIntensity(val:Float) {
|
||||
intens = val;
|
||||
aberration.redOff = [intens, 0];
|
||||
aberration.blueOff = [-intens, 0];
|
||||
}
|
||||
|
||||
var canBump:Bool = false;
|
||||
function aberrationCoolThing() {
|
||||
canBump = !canBump;
|
||||
if(!canBump) {
|
||||
if(Options.gameplayShaders) setGeneralIntensity(Options.week6PixelPerfect ? 0.0005 : 0.005); // Just to make sure if anything goes wrong
|
||||
maxCamZoom = 1.35;
|
||||
} else maxCamZoom = 0;
|
||||
}
|
||||
|
||||
function update(elapsed:Float) {
|
||||
if(Options.gameplayShaders && canBump && intens > (Options.week6PixelPerfect ? 0.0005 : 0.005)) setGeneralIntensity(intens - (Options.week6PixelPerfect ? 0.0001 : 0.001));
|
||||
}
|
||||
|
||||
function beatHit(curBeat:Float) {
|
||||
if(canBump && curBeat % 2 != 0) {
|
||||
if(Options.gameplayShaders) setGeneralIntensity(Options.week6PixelPerfect ? 0.005 : 0.05);
|
||||
if(Options.camZoomOnBeat) {
|
||||
FlxG.camera.zoom += 0.015 * camZoomingStrength;
|
||||
camHUD.zoom += 0.03 * camZoomingStrength;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -64,13 +64,4 @@ function focusOn(char) {
|
||||
var camPos = char.getCameraPosition();
|
||||
game.camFollow.setPosition(camPos.x, camPos.y);
|
||||
camPos.put();
|
||||
}
|
||||
|
||||
function update(elapsed:Float) {
|
||||
if (tankTalk1.playing) lipSync(tankTalk1);
|
||||
if (tankTalk2.playing) lipSync(tankTalk2);
|
||||
}
|
||||
|
||||
function lipSync(sound:FlxSound) {
|
||||
tankman.animateAtlas.anim.curFrame = Std.int(tankman.animateAtlas.anim.length / (sound.length-1) * sound.time);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
var self = this;
|
||||
__script__.setParent(PlayState.instance);
|
||||
|
||||
function create() {
|
||||
FlxG.sound.play(Paths.sound('Lights_Turn_On'));
|
||||
camFollow.setPosition(500, -2050);
|
||||
FlxG.camera.focusOn(camFollow.getPosition());
|
||||
FlxG.camera.zoom = 1.5;
|
||||
|
||||
FlxTween.tween(FlxG.camera, {zoom: defaultCamZoom}, 2.5, {
|
||||
ease: FlxEase.quadInOut, startDelay: 0.8,
|
||||
onComplete: function(twn:FlxTween)
|
||||
{
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
function beatHit(curBeat:Int) {
|
||||
switch(curBeat) {
|
||||
case 120:
|
||||
camZoomingInterval = 2;
|
||||
case 153:
|
||||
camZoomingInterval = 4;
|
||||
case 216:
|
||||
camZoomingInterval = 2;
|
||||
case 230:
|
||||
camZoomingInterval = 4;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package funkin.backend;
|
||||
|
||||
import funkin.backend.utils.XMLUtil.BeatAnim;
|
||||
import funkin.backend.utils.XMLUtil.AnimData;
|
||||
import funkin.backend.utils.XMLUtil.IXMLEvents;
|
||||
import flixel.system.FlxAssets.FlxGraphicAsset;
|
||||
@@ -34,13 +35,17 @@ abstract XMLAnimType(Int)
|
||||
class FunkinSprite extends FlxSkewedSprite implements IBeatReceiver implements IOffsetCompatible implements IXMLEvents
|
||||
{
|
||||
public var spriteAnimType:XMLAnimType = NONE;
|
||||
public var beatAnims:Array<String> = [];
|
||||
public var beatAnims:Array<BeatAnim> = [];
|
||||
public var name:String;
|
||||
public var zoomFactor:Float = 1;
|
||||
public var initialZoom:Float = 1;
|
||||
public var debugMode:Bool = false;
|
||||
public var animDatas:Map<String, AnimData> = [];
|
||||
|
||||
public var beatInterval:Int = 1;
|
||||
public var beatOffset:Int = 0;
|
||||
public var skipNegativeBeats:Bool = false;
|
||||
|
||||
public var animateAtlas:FlxAnimate;
|
||||
@:noCompletion public var atlasPlayingAnim:String;
|
||||
@:noCompletion public var atlasPath:String;
|
||||
@@ -108,13 +113,16 @@ class FunkinSprite extends FlxSkewedSprite implements IBeatReceiver implements I
|
||||
moves = true;
|
||||
}
|
||||
|
||||
private var countedBeat = 0;
|
||||
public function beatHit(curBeat:Int)
|
||||
{
|
||||
if (beatAnims.length > 0)
|
||||
if (beatAnims.length > 0 && (curBeat + beatOffset) % beatInterval == 0)
|
||||
{
|
||||
var anim = beatAnims[FlxMath.wrap(curBeat, 0, beatAnims.length - 1)];
|
||||
if (anim != null && anim != "null" && anim != "none")
|
||||
playAnim(anim);
|
||||
if(skipNegativeBeats && curBeat < 0) return;
|
||||
// TODO: find a solution without countedBeat
|
||||
var anim = beatAnims[FlxMath.wrap(countedBeat++, 0, beatAnims.length - 1)];
|
||||
if (anim.name != null && anim.name != "null" && anim.name != "none")
|
||||
playAnim(anim.name, anim.forced);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ class BaseGameParser {
|
||||
result.meta.needsVoices = data.needsVoices.getDefault(true);
|
||||
|
||||
var camFocusedBF:Bool = false;
|
||||
var altAnims:Bool = false;
|
||||
var beatsPerMesure:Float = data.beatsPerMesure.getDefault(4);
|
||||
var curBPM:Float = data.bpm;
|
||||
var curTime:Float = 0;
|
||||
@@ -60,6 +61,15 @@ class BaseGameParser {
|
||||
});
|
||||
}
|
||||
|
||||
if (section.altAnim == null) section.altAnim = false;
|
||||
if (altAnims != (altAnims = section.altAnim)) {
|
||||
result.events.push({
|
||||
time: curTime,
|
||||
name: "Alt Animation Toggle",
|
||||
params: [0, altAnims]
|
||||
});
|
||||
}
|
||||
|
||||
if (section.sectionNotes != null) for(note in section.sectionNotes) {
|
||||
if (note[1] < 0) continue;
|
||||
|
||||
@@ -129,6 +139,6 @@ typedef SwagSection =
|
||||
var mustHitSection:Bool;
|
||||
var bpm:Float;
|
||||
var changeBPM:Bool;
|
||||
var altAnim:Bool;
|
||||
var altAnim:Null<Bool>;
|
||||
@:optional var camTarget:Null<Float>;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class ScriptsMacro {
|
||||
"flixel.addons.plugin", "flixel.addons.text", "flixel.addons.tile", "flixel.addons.transition",
|
||||
"flixel.addons.util",
|
||||
// OTHER LIBRARIES & STUFF
|
||||
"away3d", "flx3d",
|
||||
#if THREE_D_SUPPORT "away3d", "flx3d", #end
|
||||
#if VIDEO_CUTSCENES "hxvlc.flixel", "hxvlc.openfl", #end
|
||||
// BASE HAXE
|
||||
"DateTools", "EReg", "Lambda", "StringBuf", "haxe.crypto", "haxe.display", "haxe.exceptions", "haxe.extern", "scripting"
|
||||
|
||||
@@ -28,6 +28,16 @@ class CoolUtil
|
||||
public static function getLastExceptionStack():String {
|
||||
return CallStack.toString(CallStack.exceptionStack());
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns `v` if not null
|
||||
* @param v The value
|
||||
* @return A bool value
|
||||
*/
|
||||
public static inline function isNotNull(v:Null<Dynamic>):Bool {
|
||||
return v != null && !isNaN(v);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns `v` if not null, `defaultValue` otherwise.
|
||||
* @param v The value
|
||||
|
||||
@@ -21,7 +21,7 @@ class XMLUtil {
|
||||
*/
|
||||
public static function applyXMLProperty(object:Dynamic, property:Access):ErrorCode {
|
||||
if (!property.has.name || !property.has.type || !property.has.value) {
|
||||
Logs.trace('Failed to apply XML property: XML Element misses name, type, or value attributes.', WARNING);
|
||||
Logs.trace('Failed to apply XML property: XML Element is missing name, type, or value attributes.', WARNING);
|
||||
return MISSING_PROPERTY;
|
||||
}
|
||||
|
||||
@@ -72,54 +72,86 @@ class XMLUtil {
|
||||
|
||||
spr.loadSprite(Paths.image('$parentFolder${node.getAtt("sprite")}', null, true));
|
||||
|
||||
if (spr.frames != null && spr.frames.frames != null) {
|
||||
spr.animation.add("idle", [for(i in 0...spr.frames.frames.length) i], 24, true);
|
||||
spr.animation.play("idle");
|
||||
spr.spriteAnimType = defaultAnimType;
|
||||
if (node.has.type) {
|
||||
spr.spriteAnimType = XMLAnimType.fromString(node.att.type, spr.spriteAnimType);
|
||||
}
|
||||
|
||||
spr.spriteAnimType = defaultAnimType;
|
||||
if (node.has.type)
|
||||
spr.spriteAnimType = XMLAnimType.fromString(node.att.type, spr.spriteAnimType);
|
||||
|
||||
var x:Null<Float> = node.has.x ? Std.parseFloat(node.att.x) : null;
|
||||
var y:Null<Float> = node.has.y ? Std.parseFloat(node.att.y) : null;
|
||||
if (x != null) spr.x = x;
|
||||
if (y != null) spr.y = y;
|
||||
if(node.has.x) {
|
||||
var x:Null<Float> = Std.parseFloat(node.att.x);
|
||||
if (x.isNotNull()) spr.x = x;
|
||||
}
|
||||
if(node.has.y) {
|
||||
var y:Null<Float> = Std.parseFloat(node.att.y);
|
||||
if (y.isNotNull()) spr.y = y;
|
||||
}
|
||||
if (node.has.scroll) {
|
||||
var scroll:Null<Float> = Std.parseFloat(node.att.scroll);
|
||||
if (scroll != null) spr.scrollFactor.set(scroll, scroll);
|
||||
if (scroll.isNotNull()) spr.scrollFactor.set(scroll, scroll);
|
||||
} else {
|
||||
if (node.has.scrollx) {
|
||||
var scroll:Null<Float> = Std.parseFloat(node.att.scrollx);
|
||||
if (scroll != null) spr.scrollFactor.x = scroll;
|
||||
if (scroll.isNotNull()) spr.scrollFactor.x = scroll;
|
||||
}
|
||||
if (node.has.scrolly) {
|
||||
var scroll:Null<Float> = Std.parseFloat(node.att.scrolly);
|
||||
if (scroll != null) spr.scrollFactor.y = scroll;
|
||||
if (scroll.isNotNull()) spr.scrollFactor.y = scroll;
|
||||
}
|
||||
}
|
||||
if (node.has.skewx) {
|
||||
var skew:Null<Float> = Std.parseFloat(node.att.skewx);
|
||||
if (skew != null) spr.skew.x = skew;
|
||||
if (skew.isNotNull()) spr.skew.x = skew;
|
||||
}
|
||||
if (node.has.skewy) {
|
||||
var skew:Null<Float> = Std.parseFloat(node.att.skewy);
|
||||
if (skew != null) spr.skew.y = skew;
|
||||
if (skew.isNotNull()) spr.skew.y = skew;
|
||||
}
|
||||
if (node.has.antialiasing) spr.antialiasing = node.att.antialiasing == "true";
|
||||
if (node.has.scale) {
|
||||
var scale:Null<Float> = Std.parseFloat(node.att.scale);
|
||||
if (scale != null) spr.scale.set(scale, scale);
|
||||
if (scale.isNotNull()) spr.scale.set(scale, scale);
|
||||
}
|
||||
if (node.has.scalex) {
|
||||
var scale:Null<Float> = Std.parseFloat(node.att.scalex);
|
||||
if (scale.isNotNull()) spr.scale.x = scale;
|
||||
}
|
||||
if (node.has.scaley) {
|
||||
var scale:Null<Float> = Std.parseFloat(node.att.scaley);
|
||||
if (scale.isNotNull()) spr.scale.y = scale;
|
||||
}
|
||||
if (node.has.updateHitbox && node.att.updateHitbox == "true") spr.updateHitbox();
|
||||
|
||||
spr.zoomFactor = Std.parseFloat(node.getAtt("zoomfactor")).getDefault(spr.zoomFactor);
|
||||
if(node.has.zoomfactor)
|
||||
spr.zoomFactor = Std.parseFloat(node.getAtt("zoomfactor")).getDefault(spr.zoomFactor);
|
||||
|
||||
if (node.has.alpha)
|
||||
spr.alpha = Std.parseFloat(node.getAtt("alpha")).getDefault(spr.alpha);
|
||||
|
||||
for(anim in node.nodes.anim)
|
||||
addXMLAnimation(spr, anim);
|
||||
if (node.has.playOnCountdown)
|
||||
spr.skipNegativeBeats = node.att.playOnCountdown == "true";
|
||||
if (node.has.beatInterval)
|
||||
spr.beatInterval = Std.parseInt(node.att.beatInterval);
|
||||
if (node.has.beatOffset)
|
||||
spr.beatOffset = Std.parseInt(node.att.beatOffset);
|
||||
|
||||
if(node.hasNode.anim) {
|
||||
for(anim in node.nodes.anim)
|
||||
addXMLAnimation(spr, anim);
|
||||
} else {
|
||||
if (spr.frames != null && spr.frames.frames != null) {
|
||||
addAnimToSprite(spr, {
|
||||
name: "idle",
|
||||
anim: null,
|
||||
fps: 24,
|
||||
loop: spr.spriteAnimType == LOOP,
|
||||
animType: spr.spriteAnimType,
|
||||
x: 0,
|
||||
y: 0,
|
||||
indices: [for(i in 0...spr.frames.frames.length) i],
|
||||
forced: (node.has.forced && node.att.forced == "true") || (!node.has.forced && spr.spriteAnimType == BEAT)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return spr;
|
||||
}
|
||||
@@ -133,16 +165,18 @@ class XMLUtil {
|
||||
animType: animType,
|
||||
x: 0,
|
||||
y: 0,
|
||||
indices: []
|
||||
indices: [],
|
||||
forced: false,
|
||||
};
|
||||
|
||||
if (anim.has.name) animData.name = anim.att.name;
|
||||
if (anim.has.type) animData.animType = XMLAnimType.fromString(anim.att.type, animData.animType);
|
||||
if (anim.has.anim) animData.anim = anim.att.anim;
|
||||
if (anim.has.fps) animData.fps = Std.parseFloat(anim.att.fps);
|
||||
if (anim.has.x) animData.x = Std.parseFloat(anim.att.x);
|
||||
if (anim.has.y) animData.y = Std.parseFloat(anim.att.y);
|
||||
if (anim.has.fps) animData.fps = Std.parseFloat(anim.att.fps).getDefault(animData.fps);
|
||||
if (anim.has.x) animData.x = Std.parseFloat(anim.att.x).getDefault(animData.x);
|
||||
if (anim.has.y) animData.y = Std.parseFloat(anim.att.y).getDefault(animData.y);
|
||||
if (anim.has.loop) animData.loop = anim.att.loop == "true";
|
||||
if (anim.has.forced) animData.forced = anim.att.forced == "true";
|
||||
if (anim.has.indices) {
|
||||
var indicesSplit = anim.att.indices.split(",");
|
||||
for(indice in indicesSplit) {
|
||||
@@ -161,24 +195,30 @@ class XMLUtil {
|
||||
*/
|
||||
public static function addXMLAnimation(sprite:FlxSprite, anim:Access, loop:Bool = false):ErrorCode {
|
||||
var animType:XMLAnimType = NONE;
|
||||
if (sprite is FunkinSprite)
|
||||
if (sprite is FunkinSprite) {
|
||||
animType = cast(sprite, FunkinSprite).spriteAnimType;
|
||||
}
|
||||
|
||||
return addAnimToSprite(sprite, extractAnimFromXML(anim, animType, loop));
|
||||
}
|
||||
|
||||
public static function addAnimToSprite(sprite:FlxSprite, animData:AnimData):ErrorCode {
|
||||
if (animData.name != null && animData.anim != null) {
|
||||
if (animData.name != null) {
|
||||
if (animData.fps <= 0 #if web || animData.fps == null #end) animData.fps = 24;
|
||||
|
||||
if (sprite is FunkinSprite && cast(sprite, FunkinSprite).animateAtlas != null) {
|
||||
var animateAnim = cast(sprite, FunkinSprite).animateAtlas.anim;
|
||||
if(animData.anim == null)
|
||||
return MISSING_PROPERTY;
|
||||
|
||||
if (animData.indices.length > 0)
|
||||
animateAnim.addBySymbolIndices(animData.name, animData.anim, animData.indices, animData.fps, animData.loop);
|
||||
else
|
||||
animateAnim.addBySymbol(animData.name, animData.anim, animData.fps, animData.loop);
|
||||
} else {
|
||||
if (animData.indices.length > 0)
|
||||
if (animData.anim == null && animData.indices.length > 0)
|
||||
sprite.animation.add(animData.name, animData.indices, animData.fps, animData.loop);
|
||||
else if (animData.indices.length > 0)
|
||||
sprite.animation.addByIndices(animData.name, animData.anim, animData.indices, "", animData.fps, animData.loop);
|
||||
else
|
||||
sprite.animation.addByPrefix(animData.name, animData.anim, animData.fps, animData.loop);
|
||||
@@ -191,9 +231,12 @@ class XMLUtil {
|
||||
var xmlSpr = cast(sprite, FunkinSprite);
|
||||
switch(animData.animType) {
|
||||
case BEAT:
|
||||
xmlSpr.beatAnims.push(animData.name);
|
||||
xmlSpr.beatAnims.push({
|
||||
name: animData.name,
|
||||
forced: animData.forced.getDefault(false)
|
||||
});
|
||||
case LOOP:
|
||||
xmlSpr.animation.play(animData.name);
|
||||
xmlSpr.animation.play(animData.name, animData.forced.getDefault(false));
|
||||
default:
|
||||
// nothing
|
||||
}
|
||||
@@ -219,6 +262,12 @@ typedef AnimData = {
|
||||
var y:Float;
|
||||
var indices:Array<Int>;
|
||||
var animType:XMLAnimType;
|
||||
var ?forced:Bool;
|
||||
}
|
||||
|
||||
typedef BeatAnim = {
|
||||
var name:String;
|
||||
var forced:Bool;
|
||||
}
|
||||
|
||||
interface IXMLEvents {
|
||||
|
||||
@@ -69,6 +69,7 @@ class GameOverSubstate extends MusicBeatSubstate
|
||||
|
||||
if (controls.BACK)
|
||||
{
|
||||
PlayState.resetSongInfos();
|
||||
if (FlxG.sound.music != null)
|
||||
FlxG.sound.music.stop();
|
||||
FlxG.sound.music = null;
|
||||
|
||||
@@ -75,7 +75,7 @@ class PlayState extends MusicBeatState
|
||||
*/
|
||||
public static var opponentMode:Bool = false;
|
||||
/**
|
||||
// * Whenever the song has been started with co-op mode on.
|
||||
* Whenever the song has been started with co-op mode on.
|
||||
*/
|
||||
public static var coopMode:Bool = false;
|
||||
|
||||
@@ -89,6 +89,10 @@ class PlayState extends MusicBeatState
|
||||
*/
|
||||
public var strumLines:FlxTypedGroup<StrumLine> = new FlxTypedGroup<StrumLine>();
|
||||
|
||||
/**
|
||||
* Death counter on current week (or song if from freeplay).
|
||||
*/
|
||||
public static var deathCounter:Int = 0;
|
||||
/**
|
||||
* Game Over Song. (assets/music/gameOver.ogg)
|
||||
*/
|
||||
@@ -361,11 +365,14 @@ class PlayState extends MusicBeatState
|
||||
* Whenever the game is currently in a cutscene or not.
|
||||
*/
|
||||
public var inCutscene:Bool = false;
|
||||
|
||||
/**
|
||||
* Whenever the game should play the cutscenes. Defaults to whenever the game is currently in Story Mode or not.
|
||||
*/
|
||||
public var playCutscenes:Bool = isStoryMode;
|
||||
/**
|
||||
* Whenever the game has already played a specific cutscene for the current song. Check `startCutscene` for more details.
|
||||
*/
|
||||
public static var seenCutscene:Bool = false;
|
||||
/**
|
||||
* Cutscene script path.
|
||||
*/
|
||||
@@ -443,6 +450,7 @@ class PlayState extends MusicBeatState
|
||||
public var hitWindow:Float = Options.hitWindow; // is calculated in create(), is safeFrames in milliseconds
|
||||
|
||||
@:noCompletion @:dox(hide) private var _startCountdownCalled:Bool = false;
|
||||
@:noCompletion @:dox(hide) private var _endSongCalled:Bool = false;
|
||||
|
||||
@:dox(hide)
|
||||
var __vocalOffsetViolation:Float = 0;
|
||||
@@ -739,11 +747,15 @@ class PlayState extends MusicBeatState
|
||||
}
|
||||
|
||||
@:dox(hide) public override function createPost() {
|
||||
startCutscene("", cutscene);
|
||||
startCutscene("", cutscene, null, true);
|
||||
super.createPost();
|
||||
|
||||
updateDiscordPresence();
|
||||
|
||||
// Make icons appear in the correct spot during cutscenes
|
||||
healthBar.update(0);
|
||||
updateIconPositions();
|
||||
|
||||
__updateNote_event = EventManager.get(NoteUpdateEvent);
|
||||
|
||||
scripts.call("postCreate");
|
||||
@@ -761,10 +773,15 @@ class PlayState extends MusicBeatState
|
||||
* @param prefix Custom prefix. Using `midsong-` will require you to for example rename your video cutscene to `songs/song/midsong-cutscene.mp4` instead of `songs/song/cutscene.mp4`
|
||||
* @param cutsceneScriptPath Optional: Custom script path.
|
||||
* @param callback Callback called after the cutscene ended. If equals to `null`, `startCountdown` will be called.
|
||||
* @param checkSeen Bool that by default is false, if true and `seenCutscene` is also true, it won't play the cutscene but directly call `callback` (PS: `seenCutscene` becomes true if the cutscene gets played and `checkSeen` was true)
|
||||
*/
|
||||
public function startCutscene(prefix:String = "", ?cutsceneScriptPath:String, ?callback:Void->Void) {
|
||||
if (callback == null)
|
||||
callback = startCountdown;
|
||||
public function startCutscene(prefix:String = "", ?cutsceneScriptPath:String, ?callback:Void->Void, checkSeen:Bool = false) {
|
||||
if (callback == null) callback = startCountdown;
|
||||
if (checkSeen && seenCutscene) {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
|
||||
if (cutsceneScriptPath == null)
|
||||
cutsceneScriptPath = Paths.script('songs/${SONG.meta.name.toLowerCase()}/${prefix}cutscene');
|
||||
|
||||
@@ -774,28 +791,25 @@ class PlayState extends MusicBeatState
|
||||
var videoCutsceneAlt = Paths.file('songs/${PlayState.SONG.meta.name.toLowerCase()}/${prefix}cutscene.mp4');
|
||||
var dialogue = Paths.file('songs/${PlayState.SONG.meta.name.toLowerCase()}/${prefix}dialogue.xml');
|
||||
persistentUpdate = true;
|
||||
var toCall:Void->Void = function() {
|
||||
if(checkSeen) seenCutscene = true;
|
||||
callback();
|
||||
}
|
||||
|
||||
if (cutsceneScriptPath != null && Assets.exists(cutsceneScriptPath)) {
|
||||
openSubState(new ScriptedCutscene(cutsceneScriptPath, function() {
|
||||
callback();
|
||||
}));
|
||||
openSubState(new ScriptedCutscene(cutsceneScriptPath, toCall));
|
||||
} else if (Assets.exists(dialogue)) {
|
||||
MusicBeatState.skipTransIn = true;
|
||||
openSubState(new DialogueCutscene(dialogue, function() {
|
||||
callback();
|
||||
}));
|
||||
openSubState(new DialogueCutscene(dialogue, toCall));
|
||||
} else if (Assets.exists(videoCutsceneAlt)) {
|
||||
MusicBeatState.skipTransIn = true;
|
||||
persistentUpdate = false;
|
||||
openSubState(new VideoCutscene(videoCutsceneAlt, function() {
|
||||
callback();
|
||||
}));
|
||||
openSubState(new VideoCutscene(videoCutsceneAlt, toCall));
|
||||
persistentDraw = false;
|
||||
} else if (Assets.exists(videoCutscene)) {
|
||||
MusicBeatState.skipTransIn = true;
|
||||
persistentUpdate = false;
|
||||
openSubState(new VideoCutscene(videoCutscene, function() {
|
||||
callback();
|
||||
}));
|
||||
openSubState(new VideoCutscene(videoCutscene, toCall));
|
||||
persistentDraw = false;
|
||||
} else
|
||||
callback();
|
||||
@@ -850,6 +864,7 @@ class PlayState extends MusicBeatState
|
||||
sprite.scale.set(event.scale, event.scale);
|
||||
sprite.updateHitbox();
|
||||
sprite.screenCenter();
|
||||
sprite.antialiasing = event.antialiasing;
|
||||
add(sprite);
|
||||
tween = FlxTween.tween(sprite, {y: sprite.y + 100, alpha: 0}, Conductor.crochet / 1000, {
|
||||
ease: FlxEase.cubeInOut,
|
||||
@@ -913,6 +928,11 @@ class PlayState extends MusicBeatState
|
||||
Note.__customNoteTypeExists = [];
|
||||
}
|
||||
|
||||
public static function resetSongInfos() {
|
||||
deathCounter = 0;
|
||||
seenCutscene = false;
|
||||
}
|
||||
|
||||
@:dox(hide) private function generateSong(?songData:ChartData):Void
|
||||
{
|
||||
if (songData == null) songData = SONG;
|
||||
@@ -1074,6 +1094,18 @@ class PlayState extends MusicBeatState
|
||||
updateDiscordPresence();
|
||||
}
|
||||
|
||||
function updateIconPositions() {
|
||||
var iconOffset:Int = 26;
|
||||
|
||||
iconP1.x = healthBar.x + (healthBar.width * (FlxMath.remapToRange(healthBar.percent, 0, 100, 1, 0)) - iconOffset);
|
||||
iconP2.x = healthBar.x + (healthBar.width * (FlxMath.remapToRange(healthBar.percent, 0, 100, 1, 0))) - (iconP2.width - iconOffset);
|
||||
|
||||
health = FlxMath.bound(health, 0, maxHealth);
|
||||
|
||||
iconP1.health = healthBar.percent / 100;
|
||||
iconP2.health = 1 - (healthBar.percent / 100);
|
||||
}
|
||||
|
||||
@:dox(hide)
|
||||
override public function update(elapsed:Float)
|
||||
{
|
||||
@@ -1119,15 +1151,7 @@ class PlayState extends MusicBeatState
|
||||
iconP1.updateHitbox();
|
||||
iconP2.updateHitbox();
|
||||
|
||||
var iconOffset:Int = 26;
|
||||
|
||||
iconP1.x = healthBar.x + (healthBar.width * (FlxMath.remapToRange(healthBar.percent, 0, 100, 1, 0)) - iconOffset);
|
||||
iconP2.x = healthBar.x + (healthBar.width * (FlxMath.remapToRange(healthBar.percent, 0, 100, 1, 0))) - (iconP2.width - iconOffset);
|
||||
|
||||
health = FlxMath.bound(health, 0, maxHealth);
|
||||
|
||||
iconP1.health = healthBar.percent / 100;
|
||||
iconP2.health = 1 - (healthBar.percent / 100);
|
||||
updateIconPositions();
|
||||
|
||||
if (startingSong)
|
||||
{
|
||||
@@ -1260,6 +1284,7 @@ class PlayState extends MusicBeatState
|
||||
if (FlxG.sound.music != null)
|
||||
FlxG.sound.music.stop();
|
||||
|
||||
deathCounter++;
|
||||
openSubState(new GameOverSubstate(character == null ? 0 : character.x, character == null ? 0 : character.y, deathCharID, character != null ? character.isPlayer : true, gameOverSong, lossSFX, retrySFX));
|
||||
}
|
||||
|
||||
@@ -1268,12 +1293,17 @@ class PlayState extends MusicBeatState
|
||||
*/
|
||||
public function endSong():Void
|
||||
{
|
||||
scripts.call("onSongEnd");
|
||||
canPause = false;
|
||||
inst.volume = 0;
|
||||
vocals.volume = 0;
|
||||
inst.pause();
|
||||
vocals.pause();
|
||||
if (!_endSongCalled) {
|
||||
_endSongCalled = true;
|
||||
|
||||
canPause = false;
|
||||
inst.volume = 0;
|
||||
vocals.volume = 0;
|
||||
inst.pause();
|
||||
vocals.pause();
|
||||
|
||||
if (scripts.event("onSongEnd", new CancellableEvent()).cancelled) return;
|
||||
}
|
||||
|
||||
if (validScore)
|
||||
{
|
||||
@@ -1289,6 +1319,7 @@ class PlayState extends MusicBeatState
|
||||
}
|
||||
|
||||
startCutscene("end-", endCutscene, nextSong);
|
||||
resetSongInfos();
|
||||
}
|
||||
|
||||
private static inline function getSongChanges():Array<HighscoreChange> {
|
||||
|
||||
@@ -77,7 +77,7 @@ class Stage extends FlxBasic implements IBeatReceiver {
|
||||
case "sprite" | "spr" | "sparrow":
|
||||
if (!node.has.sprite || !node.has.name) continue;
|
||||
|
||||
var spr = XMLUtil.createSpriteFromXML(node, spritesParentFolder, BEAT);
|
||||
var spr = XMLUtil.createSpriteFromXML(node, spritesParentFolder, LOOP);
|
||||
|
||||
if (!node.has.zoomfactor && PlayState.instance != null)
|
||||
spr.initialZoom = PlayState.instance.defaultCamZoom;
|
||||
@@ -89,8 +89,8 @@ class Stage extends FlxBasic implements IBeatReceiver {
|
||||
if ( !node.has.name || !node.has.width || !node.has.height) continue;
|
||||
|
||||
var spr = new FlxSprite(
|
||||
(node.has.x) ? Std.parseFloat(node.att.x) : 0,
|
||||
(node.has.y) ? Std.parseFloat(node.att.y) : 0
|
||||
(node.has.x) ? Std.parseFloat(node.att.x).getDefault(0) : 0,
|
||||
(node.has.y) ? Std.parseFloat(node.att.y).getDefault(0) : 0
|
||||
);
|
||||
|
||||
(node.name == "solid" ? spr.makeSolid : spr.makeGraphic)(
|
||||
|
||||
@@ -23,7 +23,7 @@ class ScriptedCutscene extends Cutscene {
|
||||
|
||||
public override function create() {
|
||||
super.create();
|
||||
trace("fuck");
|
||||
trace("fuck you");
|
||||
script.call("create");
|
||||
if (Std.isOfType(script, DummyScript)) {
|
||||
Logs.trace('Could not find script for scripted cutscene at ${scriptPath}', ERROR, RED);
|
||||
|
||||
@@ -61,6 +61,7 @@ class GitarooPause extends MusicBeatState
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayState.resetSongInfos();
|
||||
FlxG.switchState(new MainMenuState());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,15 +71,17 @@ class PauseSubState extends MusicBeatSubstate
|
||||
add(bg);
|
||||
|
||||
var levelInfo:FlxText = new FlxText(20, 15, 0, PlayState.SONG.meta.displayName, 32);
|
||||
var levelDifficulty:FlxText = new FlxText(20, 15 + 32, 0, PlayState.difficulty.toUpperCase(), 32);
|
||||
var multiplayerText:FlxText = new FlxText(20, 15 + 32 + 32, 0, PlayState.opponentMode ? 'OPPONENT MODE' : (PlayState.coopMode ? 'CO-OP MODE' : ''), 32);
|
||||
var levelDifficulty:FlxText = new FlxText(20, 15, 0, PlayState.difficulty.toUpperCase(), 32);
|
||||
var deathCounter:FlxText = new FlxText(20, 15, 0, "Blue balled: " + PlayState.deathCounter, 32);
|
||||
var multiplayerText:FlxText = new FlxText(20, 15, 0, PlayState.opponentMode ? 'OPPONENT MODE' : (PlayState.coopMode ? 'CO-OP MODE' : ''), 32);
|
||||
|
||||
for(k=>label in [levelInfo, levelDifficulty, multiplayerText]) {
|
||||
for(k=>label in [levelInfo, levelDifficulty, deathCounter, multiplayerText]) {
|
||||
label.scrollFactor.set();
|
||||
label.setFormat(Paths.font('vcr.ttf'), 32);
|
||||
label.updateHitbox();
|
||||
label.alpha = 0;
|
||||
label.x = FlxG.width - (label.width + 20);
|
||||
label.y = 15 + (32 * k);
|
||||
FlxTween.tween(label, {alpha: 1, y: label.y + 5}, 0.4, {ease: FlxEase.quartInOut, startDelay: 0.3 * (k+1)});
|
||||
add(label);
|
||||
}
|
||||
@@ -155,6 +157,7 @@ class PauseSubState extends MusicBeatSubstate
|
||||
case "Exit to charter":
|
||||
FlxG.switchState(new funkin.editors.charter.Charter(PlayState.SONG.meta.name, PlayState.difficulty, false));
|
||||
case "Exit to menu":
|
||||
PlayState.resetSongInfos();
|
||||
CoolUtil.playMenuSong();
|
||||
FlxG.switchState(PlayState.isStoryMode ? new StoryMenuState() : new FreeplayState());
|
||||
}
|
||||
|
||||
@@ -25,14 +25,15 @@ class CreditsCodename extends funkin.options.OptionsScreen {
|
||||
|
||||
public function checkUpdate():Bool {
|
||||
var curTime:Float = Date.now().getTime();
|
||||
if(Options.lastUpdated != null && curTime < Options.lastUpdated + 120000) return false; // Fuck you Github rate limits - Nex_isDumb
|
||||
if(Options.lastUpdated != null && curTime < Options.lastUpdated + 120000) return false; // Fuck you Github rate limits
|
||||
Options.lastUpdated = curTime;
|
||||
|
||||
error = false;
|
||||
//Main.execAsync(function() {
|
||||
var idk = GitHub.getContributors("FNF-CNE-Devs", "CodenameEngine", function(e) {
|
||||
error = true;
|
||||
var errMsg:String = 'Error while trying to download contributors list:\n${CoolUtil.removeIP(e.message)}';
|
||||
var errMsg:String = ~/\d+.\d+.\d+.\d+/.replace(e.message, "[Your IP]"); // Removing sensitive stuff
|
||||
errMsg = 'Error while trying to download contributors list:\n$errMsg';
|
||||
|
||||
Logs.traceColored([Logs.logText(errMsg.replace('\n', ' '), RED)], ERROR);
|
||||
funkin.backend.utils.NativeAPI.showMessageBox("Codename Engine Warning", errMsg, MSG_WARNING);
|
||||
|
||||
@@ -27,6 +27,7 @@ class Options
|
||||
public static var antialiasing:Bool = true;
|
||||
public static var volume:Float = 1;
|
||||
public static var week6PixelPerfect:Bool = true;
|
||||
public static var gameplayShaders:Bool = true;
|
||||
public static var colorHealthBar:Bool = true;
|
||||
public static var lowMemoryMode:Bool = false;
|
||||
public static var betaUpdates:Bool = false;
|
||||
@@ -54,7 +55,9 @@ class Options
|
||||
public static var contributors:Array<funkin.backend.system.github.GitHubContributor> = [];
|
||||
public static var lastUpdated:Null<Float>;
|
||||
|
||||
// CHARTER
|
||||
/**
|
||||
* CHARTER
|
||||
*/
|
||||
public static var charterMetronomeEnabled:Bool = false;
|
||||
public static var charterShowSections:Bool = true;
|
||||
public static var charterShowBeats:Bool = true;
|
||||
|
||||
@@ -23,6 +23,10 @@ class AppearanceOptions extends OptionsScreen {
|
||||
"Pixel Perfect Effect",
|
||||
"If checked, Week 6 will have a pixel perfect effect to it enabled, aligning every pixel on the screen.",
|
||||
"week6PixelPerfect"));
|
||||
add(new Checkbox(
|
||||
"Gameplay Shaders",
|
||||
"If unchecked, gameplay shaders (visual effects like Thorns's Chromatic Aberration) wont be loaded; this may be helpful on weak devices.",
|
||||
"gameplayShaders"));
|
||||
add(new Checkbox(
|
||||
"Flashing Menu",
|
||||
"If unchecked, will disable menu flashing when you select an option in the Main Menu, and other flashs will be slower",
|
||||
|
||||