diff --git a/Project.xml b/Project.xml
index 7edddb77c..eca6f8b0a 100644
--- a/Project.xml
+++ b/Project.xml
@@ -57,6 +57,7 @@
+
@@ -89,6 +91,8 @@
+
+
diff --git a/source/AnimationDebug.hx b/source/AnimationDebug.hx
index 05b40d632..15454ef49 100644
--- a/source/AnimationDebug.hx
+++ b/source/AnimationDebug.hx
@@ -8,6 +8,11 @@ import flixel.addons.display.FlxGridOverlay;
import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.text.FlxText;
import flixel.util.FlxColor;
+import openfl.events.Event;
+import openfl.events.IOErrorEvent;
+import openfl.net.FileReference;
+
+using StringTools;
/**
*DEBUG MODE
@@ -190,6 +195,65 @@ class AnimationDebug extends FlxState
char.playAnim(animList[curAnim]);
}
+ if (FlxG.keys.justPressed.ESCAPE)
+ {
+ var outputString:String = "";
+
+ for (swagAnim in animList)
+ {
+ outputString += swagAnim + " " + char.animOffsets.get(swagAnim)[0] + " " + char.animOffsets.get(swagAnim)[1] + "\n";
+ }
+
+ outputString.trim();
+ saveOffsets(outputString);
+ }
+
super.update(elapsed);
}
+
+ var _file:FileReference;
+
+ private function saveOffsets(saveString:String)
+ {
+ if ((saveString != null) && (saveString.length > 0))
+ {
+ _file = new FileReference();
+ _file.addEventListener(Event.COMPLETE, onSaveComplete);
+ _file.addEventListener(Event.CANCEL, onSaveCancel);
+ _file.addEventListener(IOErrorEvent.IO_ERROR, onSaveError);
+ _file.save(saveString, daAnim + "Offsets.txt");
+ }
+ }
+
+ function onSaveComplete(_):Void
+ {
+ _file.removeEventListener(Event.COMPLETE, onSaveComplete);
+ _file.removeEventListener(Event.CANCEL, onSaveCancel);
+ _file.removeEventListener(IOErrorEvent.IO_ERROR, onSaveError);
+ _file = null;
+ FlxG.log.notice("Successfully saved LEVEL DATA.");
+ }
+
+ /**
+ * Called when the save file dialog is cancelled.
+ */
+ function onSaveCancel(_):Void
+ {
+ _file.removeEventListener(Event.COMPLETE, onSaveComplete);
+ _file.removeEventListener(Event.CANCEL, onSaveCancel);
+ _file.removeEventListener(IOErrorEvent.IO_ERROR, onSaveError);
+ _file = null;
+ }
+
+ /**
+ * Called if there is an error while saving the gameplay recording.
+ */
+ function onSaveError(_):Void
+ {
+ _file.removeEventListener(Event.COMPLETE, onSaveComplete);
+ _file.removeEventListener(Event.CANCEL, onSaveCancel);
+ _file.removeEventListener(IOErrorEvent.IO_ERROR, onSaveError);
+ _file = null;
+ FlxG.log.error("Problem saving Level data");
+ }
}
diff --git a/source/Character.hx b/source/Character.hx
index e8140a3a9..11ad2ac28 100644
--- a/source/Character.hx
+++ b/source/Character.hx
@@ -495,6 +495,31 @@ class Character extends FlxSprite
addOffset("singDOWN-alt", -30, -27);
playAnim('idle');
+ case 'tankman':
+ frames = Paths.getSparrowAtlas('characters/tankmanCaptain');
+ animation.addByPrefix('idle', "Tankman Idle Dance", 24, false);
+ animation.addByPrefix('singUP', 'Tankman UP note0', 24, false);
+ animation.addByPrefix('singDOWN', 'Tankman DOWN note0', 24, false);
+ animation.addByPrefix('singLEFT', 'Tankman Note Left0', 24, false);
+ animation.addByPrefix('singRIGHT', 'Tankman Right Note0', 24, false);
+ animation.addByPrefix('singUPmiss', 'Tankman UP note MISS', 24, false);
+ animation.addByPrefix('singDOWNmiss', 'Tankman DOWN note MISS', 24, false);
+ animation.addByPrefix('singLEFTmiss', 'Tankman Note Left MISS', 24, false);
+ animation.addByPrefix('singRIGHTmiss', 'Tankman Right Note MISS', 24, false);
+
+ addOffset('idle');
+ addOffset("singUP", 24, 56);
+ addOffset("singRIGHT", -1, -7);
+ addOffset("singLEFT", 100, -14);
+ addOffset("singDOWN", 98, -90);
+ addOffset("singUPmiss", 24, 56);
+ addOffset("singRIGHTmiss", -1, -7);
+ addOffset("singLEFTmiss", 100, -14);
+ addOffset("singDOWNmiss", 98, -90);
+
+ playAnim('idle');
+
+ flipX = true;
}
dance();
@@ -522,6 +547,11 @@ class Character extends FlxSprite
}
}
+ private function loadOffsetFile(offsetCharacter:String)
+ {
+ var daFile:String = Paths.file("characters/" + offsetCharacter + "Offsets.txt");
+ }
+
override function update(elapsed:Float)
{
if (!curCharacter.startsWith('bf'))
diff --git a/source/FreeplayState.hx b/source/FreeplayState.hx
index d13f74d9b..d7b0c6fbe 100644
--- a/source/FreeplayState.hx
+++ b/source/FreeplayState.hx
@@ -75,6 +75,9 @@ class FreeplayState extends MusicBeatState
if (StoryMenuState.weekUnlocked[6] || isDebug)
addWeek(['Senpai', 'Roses', 'Thorns'], 6, ['senpai', 'senpai', 'spirit']);
+ if (StoryMenuState.weekUnlocked[7] || isDebug)
+ addWeek(['Ugh', 'Guns', 'Stress'], 7, ['tankman']);
+
// LOAD MUSIC
// LOAD CHARACTERS