diff --git a/.trae/rules/project_rules.md b/.trae/rules/project_rules.md new file mode 100644 index 0000000..e69de29 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..8a664eb --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "kingleo.qwen" + ] +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index dfa2027..7266d29 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,37 @@ + + com.badlogicgames.gdx + gdx + 1.12.1 + + + + + com.badlogicgames.gdx + gdx-freetype + 1.12.1 + + + + + com.badlogicgames.gdx + gdx-freetype-platform + 1.12.1 + natives-desktop + + + com.badlogicgames.gdx + gdx-backend-lwjgl + 1.12.1 + + + com.badlogicgames.gdx + gdx-platform + 1.12.1 + natives-desktop + com.badlogicgames.gdx gdx diff --git a/src/main/java/uno/mloluyu/characters/Alice.java b/src/main/java/uno/mloluyu/characters/Alice.java index 42e7e4a..3ca864e 100644 --- a/src/main/java/uno/mloluyu/characters/Alice.java +++ b/src/main/java/uno/mloluyu/characters/Alice.java @@ -4,57 +4,73 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.TextureAtlas; /** - * 角色类,继承自Fighter父类 + * Alice角色类,继承自Fighter父类,定义其专属属性和动画 */ public class Alice extends Fighter { - private TextureAtlas atlas; public Alice() { - super(new TextureAtlas(Gdx.files.internal("src\\main\\resources\\character\\alice\\精灵1.2.atlas"))); - speed = 350f; // 速度更快 - maxHealth = 90; // 生命值较低 - health = maxHealth; - attackPower = 12; // 攻击力中等\ + super(new TextureAtlas(Gdx.files.internal("src/main/resources/character/alice/精灵1.2.atlas"))); + // 设置角色属性 + speed = 350f; // 更快的移动速度 + maxHealth = 90; // 较低的生命值 + health = maxHealth; + attackPower = 12; // 中等攻击力 } @Override protected void loadAnimations() { + // 加载基础动作动画 loadAnimationFromAtlas(Action.IDLE, "stand/stand", 15, true); loadAnimationFromAtlas(Action.WALK, "walkFront/walkFront", 9, true); loadAnimationFromAtlas(Action.JUMP, "jump/jump", 8, false); loadAnimationFromAtlas(Action.FALL, "hitSpin/hitSpin", 5, false); + + // 加载攻击动作动画 loadAnimationFromAtlas(Action.ATTACK1, "attackAa/attackAa", 6, false); loadAnimationFromAtlas(Action.ATTACK2, "attackAb/attackAb", 6, false); loadAnimationFromAtlas(Action.ATTACK3, "attackAc/attackAc", 6, false); loadAnimationFromAtlas(Action.ATTACK4, "attackAd/attackAd", 6, false); + // 加载受击动画 loadAnimationFromAtlas(Action.HIT, "hitSpin/hitSpin", 5, false); - // 为特定动作设置帧间隔 + // 设置帧间隔(动作速度) setFrameDuration(Action.IDLE, 0.04f); - setFrameDuration(Action.WALK, 0.08f); // 行走更快 - setFrameDuration(Action.ATTACK1, 0.07f); // 攻击更快 - setFrameDuration(Action.SPECIAL2, 0.06f); // 特殊技能2非常快 + setFrameDuration(Action.WALK, 0.08f); + setFrameDuration(Action.ATTACK1, 0.07f); + setFrameDuration(Action.SPECIAL2, 0.06f); } - // 特定的移动状态处理 + /** + * 特定移动状态处理:允许跳跃状态下移动 + */ @Override protected void handleMoveState() { - // 在跳跃时也能移动 - if (currentAction != Action.ATTACK1 && currentAction != Action.ATTACK2 && - currentAction != Action.ATTACK3 && currentAction != Action.SPECIAL1 && - currentAction != Action.SPECIAL2 && currentAction != Action.DEFEND) { - - if (currentAction != Action.JUMP && currentAction != Action.FALL) { - changeAction(Action.WALK); - } + if (currentAction != Action.ATTACK1 && + currentAction != Action.ATTACK2 && + currentAction != Action.ATTACK3 && + currentAction != Action.SPECIAL1 && + currentAction != Action.SPECIAL2 && + currentAction != Action.DEFEND && + currentAction != Action.JUMP && + currentAction != Action.FALL) { + changeAction(Action.WALK); } } - // 可以在空中攻击 + /** + * 空中也可以攻击 + */ @Override protected boolean canAttack() { return super.canAttack() || currentAction == Action.JUMP || currentAction == Action.FALL; } + + /** + * 获取当前生命值 + */ + public int getHp() { + return health; + } } diff --git a/src/main/java/uno/mloluyu/characters/AliceAnimationTest.java b/src/main/java/uno/mloluyu/characters/AliceAnimationTest.java deleted file mode 100644 index 9a08780..0000000 --- a/src/main/java/uno/mloluyu/characters/AliceAnimationTest.java +++ /dev/null @@ -1,117 +0,0 @@ -package uno.mloluyu.characters; - -import com.badlogic.gdx.ApplicationAdapter; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; -import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; -import com.badlogic.gdx.graphics.GL20; -import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.utils.viewport.FitViewport; -import com.badlogic.gdx.utils.viewport.Viewport; - -import uno.mloluyu.characters.Alice; -import uno.mloluyu.characters.Fighter; - -public class AliceAnimationTest extends ApplicationAdapter { - - private SpriteBatch batch; - private OrthographicCamera camera; - private Viewport viewport; - - private Alice alice; - - private float stateTimer; // 用于切换动作测试 - - @Override - public void create() { - // 初始化相机和批处理 - camera = new OrthographicCamera(); - viewport = new FitViewport(800, 600, camera); - batch = new SpriteBatch(); - - // 创建 Alice 实例 - alice = new Alice(); - - // 初始位置 - alice.getHitbox().setPosition( - viewport.getWorldWidth() / 2 - alice.getHitbox().width / 2, - viewport.getWorldHeight() / 2 - alice.getHitbox().height / 2 - ); - - stateTimer = 0; - } - - @Override - public void render() { - // 清屏 - Gdx.gl.glClearColor(0.1f, 0.1f, 0.1f, 1); - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - - // 更新状态时间 - float delta = Gdx.graphics.getDeltaTime(); - stateTimer += delta; - - // 控制 Alice 执行不同动作,测试动画切换 - controlAliceActions(); - - // 更新 Alice - alice.update(delta); - - // 绘制 - batch.setProjectionMatrix(camera.combined); - batch.begin(); - alice.render(batch); - batch.end(); - } - - /** - * 自动切换 Alice 动作,测试各种动画 - */ - private void controlAliceActions() { - // 每2秒切换一个动作 - if (stateTimer < 2) { - alice.changeAction(Fighter.Action.IDLE); - } else if (stateTimer < 4) { - alice.move(1, Gdx.graphics.getDeltaTime()); // 向右走 - } else if (stateTimer < 6) { - alice.changeAction(Fighter.Action.JUMP); - } else if (stateTimer < 8) { - alice.attack(1); // 普通攻击1 - } else if (stateTimer < 10) { - alice.attack(2); // 普通攻击2 - } else if (stateTimer < 12) { - alice.attack(3); // 普通攻击3 - } else if (stateTimer < 14) { - alice.takeHit(10); // 受击 - } else { - // 循环 - stateTimer = 0; - alice.getHitbox().setPosition( - viewport.getWorldWidth() / 2 - alice.getHitbox().width / 2, - viewport.getWorldHeight() / 2 - alice.getHitbox().height / 2 - ); - } - } - - @Override - public void resize(int width, int height) { - viewport.update(width, height); - } - - @Override - public void dispose() { - batch.dispose(); - alice.dispose(); - } - - // 直接运行这个 main 方法即可启动测试 - // public static void main(String[] args) { - // Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); - // config.setTitle("Alice Animation Test"); - // config.setWindowedMode(800, 600); - // config.setForegroundFPS(60); - // config.useVsync(true); - // new Lwjgl3Application(new AliceAnimationTest(), config); - // } -} \ No newline at end of file diff --git a/src/main/java/uno/mloluyu/characters/Fighter.java b/src/main/java/uno/mloluyu/characters/Fighter.java index c8581e9..3e9e589 100644 --- a/src/main/java/uno/mloluyu/characters/Fighter.java +++ b/src/main/java/uno/mloluyu/characters/Fighter.java @@ -11,10 +11,13 @@ import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.utils.Disposable; +import java.util.EnumMap; + /** * 格斗角色父类,封装所有角色共有的动画和状态管理逻辑 */ public abstract class Fighter implements Disposable { + public enum Action { IDLE, WALK, JUMP, FALL, ATTACK1, ATTACK2, ATTACK3, ATTACK4, @@ -22,328 +25,198 @@ public abstract class Fighter implements Disposable { SPECIAL1, SPECIAL2, DEATH } - protected String name; - // 画帧间隔(秒) protected static final float DEFAULT_FRAME_DURATION = 0.1f; - protected float[] frameDurations; + protected static final int DEFAULT_HEALTH = 100; + protected static final float DEFAULT_SPEED = 300f; - // 当前状态 - protected Action currentAction; - protected float stateTime; - protected boolean isFacingRight; - protected boolean isAnimationFinished; + protected String name; + protected Action currentAction = Action.IDLE; + protected float stateTime = 0f; + protected boolean isFacingRight = true; + protected boolean isAnimationFinished = false; - // 动画集合 - protected Animation[] animations; + protected EnumMap> animations = new EnumMap<>(Action.class); + protected EnumMap frameDurations = new EnumMap<>(Action.class); - // 碰撞检测 - protected Rectangle hitbox; - protected Rectangle attackbox; + protected Rectangle hitbox = new Rectangle(0, 0, 64, 128); + protected Rectangle attackbox = new Rectangle(0, 0, 80, 80); - // 角色属性 - protected float speed; - protected int health; - protected int maxHealth; - protected int attackPower; + protected float speed = DEFAULT_SPEED; + protected int health = DEFAULT_HEALTH; + protected int maxHealth = DEFAULT_HEALTH; + protected int attackPower = 10; - // 精灵图表 protected TextureAtlas atlas; - // 缩放比例 protected float scaleX = 1.0f; protected float scaleY = 1.0f; - @SuppressWarnings("unchecked") + public Fighter() { + } + public Fighter(TextureAtlas atlas) { this.atlas = atlas; - int actionCount = Action.values().length; - - animations = new Animation[actionCount]; - frameDurations = new float[actionCount]; - - for (int i = 0; i < actionCount; i++) { - frameDurations[i] = DEFAULT_FRAME_DURATION; + for (Action action : Action.values()) { + frameDurations.put(action, DEFAULT_FRAME_DURATION); } - - hitbox = new Rectangle(0, 0, 64, 128); - attackbox = new Rectangle(0, 0, 80, 80); - - speed = 300f; - maxHealth = 100; - health = maxHealth; - attackPower = 10; - - isFacingRight = true; - currentAction = Action.IDLE; - stateTime = 0; - isAnimationFinished = false; - loadAnimations(); } - /** - * 加载角色动画,由子类实现具体的动画帧加载 - */ protected abstract void loadAnimations(); - /** - * 从精灵图表加载动画 - * - * @param action 动作类型 - * @param regionPrefix 该动作在图表中的区域前缀 - * @param frameCount 帧数 - * @param loop 是否循环 - */ - protected void loadAnimationFromAtlas(Action action, String regionPrefix, - int frameCount, boolean loop) { - if (atlas == null) { + protected void loadAnimationFromAtlas(Action action, String regionPrefix, int frameCount, boolean loop) { + if (atlas == null) throw new IllegalStateException("TextureAtlas 未初始化!"); - } - if (frameCount <= 0) { + if (frameCount <= 0) throw new IllegalArgumentException("帧数必须大于0: " + frameCount); - } - - if (frameDurations == null || frameDurations.length <= action.ordinal()) { - throw new IllegalStateException("frameDurations 未初始化或大小不足"); - } Array frames = new Array<>(); - for (int i = 0; i < frameCount; i++) { - String formattedIndex = SimpleFormatter.addLeadingZeros(i, 3); - String regionName = regionPrefix + formattedIndex; - + String regionName = regionPrefix + SimpleFormatter.addLeadingZeros(i, 3); TextureRegion region = atlas.findRegion(regionName); - if (region == null) { - throw new IllegalArgumentException("精灵图表中未找到区域: " + regionName + - " (前缀: " + regionPrefix + ", 索引: " + i + ")"); + throw new IllegalArgumentException("未找到区域: " + regionName); } - frames.add(region); } - Animation animation = new Animation<>( - frameDurations[action.ordinal()], - frames); + Animation animation = new Animation<>(frameDurations.get(action), frames); animation.setPlayMode(loop ? Animation.PlayMode.LOOP : Animation.PlayMode.NORMAL); - animations[action.ordinal()] = animation; + animations.put(action, animation); } - /** - * 为特定动作设置帧间隔 - */ protected void setFrameDuration(Action action, float duration) { - frameDurations[action.ordinal()] = duration; - - if (animations[action.ordinal()] != null) { - animations[action.ordinal()].setFrameDuration(duration); - } + frameDurations.put(action, duration); + Animation anim = animations.get(action); + if (anim != null) + anim.setFrameDuration(duration); } - /** - * 更新角色状态 - */ public void update(float deltaTime) { stateTime += deltaTime; - isAnimationFinished = animations[currentAction.ordinal()].isAnimationFinished(stateTime); - + Animation anim = animations.get(currentAction); + if (anim != null) { + isAnimationFinished = anim.isAnimationFinished(stateTime); + } handleAnimationTransitions(); - updateHitboxes(); } - /** - * 处理动画完成后的状态转换,子类可以重写以实现特定逻辑 - */ protected void handleAnimationTransitions() { - Animation currentAnim = animations[currentAction.ordinal()]; + if (!isAnimationFinished) + return; - if (currentAnim.getPlayMode() != Animation.PlayMode.LOOP && isAnimationFinished) { - switch (currentAction) { - case ATTACK1: - case ATTACK2: - case ATTACK3: - case SPECIAL1: - case SPECIAL2: - changeAction(Action.IDLE); - break; - case HIT: - changeAction(Action.IDLE); - break; - case JUMP: - changeAction(Action.FALL); - break; - } + switch (currentAction) { + case ATTACK1: + case ATTACK2: + case ATTACK3: + case SPECIAL1: + case SPECIAL2: + case HIT: + changeAction(Action.IDLE); + break; + case JUMP: + changeAction(Action.FALL); + break; + default: + break; } } - /** - * 绘制角色 - */ public void render(SpriteBatch batch) { - Animation currentAnimation = animations[currentAction.ordinal()]; - if (currentAnimation == null) { + Animation anim = animations.get(currentAction); + if (anim == null) { Gdx.app.error("Fighter", "动画未初始化: " + currentAction); return; } - boolean loop = currentAnimation.getPlayMode() == Animation.PlayMode.LOOP; - TextureRegion currentFrame = currentAnimation.getKeyFrame(stateTime, loop); - - if (currentFrame == null) { + TextureRegion frame = anim.getKeyFrame(stateTime, anim.getPlayMode() == Animation.PlayMode.LOOP); + if (frame == null) { Gdx.app.error("Fighter", "动画帧为空: " + currentAction); return; } - // 1. 计算缩放后的帧尺寸(保持原始比例) - float frameWidth = currentFrame.getRegionWidth() * scaleX; - float frameHeight = currentFrame.getRegionHeight() * scaleY; + float frameWidth = frame.getRegionWidth() * scaleX; + float frameHeight = frame.getRegionHeight() * scaleY; + float drawX = hitbox.x + (hitbox.width - frameWidth) / 2; + float drawY = hitbox.y; - // 2. 计算绘制位置:始终以hitbox为基准,水平居中、底部对齐(关键!) - // 无论是否翻转,x/y坐标都基于hitbox计算,保证位置锚点一致 - float drawX = hitbox.x + (hitbox.width - frameWidth) / 2; // 水平居中(hitbox中心和帧中心对齐) - float drawY = hitbox.y; // 底部对齐(hitbox底部和帧底部对齐) + boolean wasFlippedX = frame.isFlipX(); + frame.flip(!isFacingRight && !wasFlippedX, false); + frame.flip(isFacingRight && wasFlippedX, false); - // 3. 处理翻转:用TextureRegion的flip方法,避免手动偏移x坐标 - // 先记录原始flip状态(防止影响其他地方复用该帧) - boolean wasFlippedX = currentFrame.isFlipX(); - // 根据朝向设置翻转(只翻转X轴,Y轴不变) - currentFrame.flip(!isFacingRight && !wasFlippedX, false); // 正向→不翻,反向→翻 - currentFrame.flip(isFacingRight && wasFlippedX, false); // 修复原始已翻转的情况 - - // 4. 绘制:缩放中心为帧的中心,确保翻转/旋转时围绕自身中心 - batch.draw( - currentFrame, - drawX, // 绘制X(基于hitbox的居中位置,固定不变) - drawY, // 绘制Y(基于hitbox的底部,固定不变) - frameWidth / 2, // 缩放/旋转中心X(帧的中心) - frameHeight / 2, // 缩放/旋转中心Y(帧的中心) - frameWidth, // 缩放后的宽度(已乘scaleX) - frameHeight, // 缩放后的高度(已乘scaleY) - 1f, // X轴额外缩放(这里已提前计算,设为1避免重复缩放) - 1f, // Y轴额外缩放(同上) - 0f // 旋转角度 - ); - - // 5. 恢复帧的原始flip状态(关键!避免影响后续绘制) - currentFrame.flip(wasFlippedX != currentFrame.isFlipX(), false); + batch.draw(frame, drawX, drawY, frameWidth / 2, frameHeight / 2, frameWidth, frameHeight, 1f, 1f, 0f); + frame.flip(wasFlippedX != frame.isFlipX(), false); } - /** - * 改变角色动作 - */ public boolean changeAction(Action newAction) { - if (isActionUninterruptible(currentAction)) { + if (isActionUninterruptible(currentAction)) return false; - } - if (currentAction != newAction) { currentAction = newAction; - stateTime = 0; + stateTime = 0f; isAnimationFinished = false; return true; } return false; } - /** - * 判断动作是否不可被打断 - */ protected boolean isActionUninterruptible(Action action) { return action == Action.HIT || action == Action.DEATH; } - /** - * 更新碰撞框位置 - */ protected void updateHitboxes() { - if (isFacingRight) { - attackbox.setPosition(hitbox.x + hitbox.width - 10, hitbox.y + 20); - } else { - attackbox.setPosition(hitbox.x - attackbox.width + 10, hitbox.y + 20); - } + float offsetX = isFacingRight ? hitbox.width - 10 : -attackbox.width + 10; + attackbox.setPosition(hitbox.x + offsetX, hitbox.y + 20); } - /** - * 处理角色移动 - */ public void move(float x, float deltaTime) { if (x != 0) { isFacingRight = x > 0; - hitbox.x += x * speed * deltaTime; - handleMoveState(); } else if (currentAction == Action.WALK) { changeAction(Action.IDLE); } } - /** - * 处理移动状态转换,子类可重写 - */ protected void handleMoveState() { - if (currentAction != Action.ATTACK1 && currentAction != Action.ATTACK2 && - currentAction != Action.ATTACK3 && currentAction != Action.SPECIAL1 && - currentAction != Action.SPECIAL2 && currentAction != Action.JUMP && - currentAction != Action.FALL && currentAction != Action.DEFEND) { + if (!isActionUninterruptible(currentAction) && + currentAction != Action.JUMP && + currentAction != Action.FALL && + currentAction != Action.DEFEND && + !currentAction.name().startsWith("ATTACK") && + !currentAction.name().startsWith("SPECIAL")) { changeAction(Action.WALK); } } - /** - * 执行攻击 - */ public boolean attack(int attackType) { - if (!canAttack()) { + if (!canAttack()) return false; - } - Action attackAction; - switch (attackType) { - case 1: - attackAction = Action.ATTACK1; - break; - case 2: - attackAction = Action.ATTACK2; - break; - case 3: - attackAction = Action.ATTACK3; - break; - case 4: - attackAction = Action.SPECIAL1; - break; - case 5: - attackAction = Action.SPECIAL2; - break; - default: - return false; - } + Action attackAction = switch (attackType) { + case 1 -> Action.ATTACK1; + case 2 -> Action.ATTACK2; + case 3 -> Action.ATTACK3; + case 4 -> Action.SPECIAL1; + case 5 -> Action.SPECIAL2; + default -> null; + }; - return changeAction(attackAction); + return attackAction != null && changeAction(attackAction); } - /** - * 判断是否可以攻击,子类可重写以实现特定逻辑 - */ protected boolean canAttack() { return currentAction == Action.IDLE || currentAction == Action.WALK; } - /** - * 处理受击 - */ public void takeHit(int damage) { - if (currentAction != Action.DEATH) { - health -= damage; - if (health <= 0) { - health = 0; - changeAction(Action.DEATH); - } else { - changeAction(Action.HIT); - } - } + if (currentAction == Action.DEATH) + return; + + health = Math.max(0, health - damage); + changeAction(health == 0 ? Action.DEATH : Action.HIT); } public Rectangle getHitbox() { @@ -362,21 +235,29 @@ public abstract class Fighter implements Disposable { return health; } - public int getMaxHealth() { - return maxHealth; + @Override + public void dispose() { + if (atlas != null) + atlas.dispose(); } public Action getCurrentAction() { return currentAction; } - public int getAttackPower() { - return attackPower; + public float getX() { + return hitbox.x; } - public String getName(){ return ""; } + public float getY() { + return hitbox.y; + } - @Override - public void dispose() { + public float getCenterX() { + return hitbox.x + hitbox.width / 2; + } + + public float getCenterY() { + return hitbox.y + hitbox.height / 2; } } diff --git a/src/main/java/uno/mloluyu/characters/Reimu.java b/src/main/java/uno/mloluyu/characters/Reimu.java new file mode 100644 index 0000000..3a47264 --- /dev/null +++ b/src/main/java/uno/mloluyu/characters/Reimu.java @@ -0,0 +1,70 @@ +package uno.mloluyu.characters; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; + +public class Reimu extends Fighter { + public Reimu() { + super(new TextureAtlas(Gdx.files.internal("src\\main\\resources\\character\\reimu\\reimu.atlas"))); + + // 设置角色属性 + speed = 350f; // 更快的移动速度 + maxHealth = 90; // 较低的生命值 + health = maxHealth; + attackPower = 12; // 中等攻击力 + } + + @Override + protected void loadAnimations() { + // TODO Auto-generated method stub + // 加载基础动作动画 + loadAnimationFromAtlas(Action.IDLE, "other/stand", 9, true); + loadAnimationFromAtlas(Action.WALK, "other/walkFront", 9, true); + loadAnimationFromAtlas(Action.JUMP, "other/jump", 8, false); + loadAnimationFromAtlas(Action.FALL, "other/hitSpin", 5, false); + + // 加载攻击动作动画 + loadAnimationFromAtlas(Action.ATTACK1, "attackAa/attackAa", 6, false); + loadAnimationFromAtlas(Action.ATTACK2, "attackAb/attackAb", 6, false); + loadAnimationFromAtlas(Action.ATTACK3, "attackAc/attackAc", 6, false); + loadAnimationFromAtlas(Action.ATTACK4, "attackAd/attackAd", 6, false); + + // 加载受击动画 + loadAnimationFromAtlas(Action.HIT, "hitSpin/hitSpin", 5, false); + + // 设置帧间隔(动作速度) + setFrameDuration(Action.IDLE, 0.04f); + setFrameDuration(Action.WALK, 0.08f); + setFrameDuration(Action.ATTACK1, 0.07f); + setFrameDuration(Action.SPECIAL2, 0.06f); + } + + @Override + protected void handleMoveState() { + if (currentAction != Action.ATTACK1 && + currentAction != Action.ATTACK2 && + currentAction != Action.ATTACK3 && + currentAction != Action.SPECIAL1 && + currentAction != Action.SPECIAL2 && + currentAction != Action.DEFEND && + currentAction != Action.JUMP && + currentAction != Action.FALL) { + changeAction(Action.WALK); + } + } + + /** + * 空中也可以攻击 + */ + @Override + protected boolean canAttack() { + return super.canAttack() || currentAction == Action.JUMP || currentAction == Action.FALL; + } + + /** + * 获取当前生命值 + */ + public int getHp() { + return health; + } +} diff --git a/src/main/java/uno/mloluyu/desktop/CharacterSelectScreen.java b/src/main/java/uno/mloluyu/desktop/CharacterSelectScreen.java new file mode 100644 index 0000000..365f128 --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/CharacterSelectScreen.java @@ -0,0 +1,183 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.ScreenAdapter; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; + +import uno.mloluyu.characters.Alice; +import uno.mloluyu.characters.Fighter; +import uno.mloluyu.characters.Reimu; +import uno.mloluyu.util.ClearScreen; +import java.util.Arrays; +import java.util.List; + +import static uno.mloluyu.util.Font.loadChineseFont; + +public class CharacterSelectScreen extends ScreenAdapter { + private boolean multiplayerMode = false; // 默认为单人模式 + + private final MainGame game; + private SpriteBatch batch; + private BitmapFont font; + private ShapeRenderer shapeRenderer; + + private final List characters = Arrays.asList("Alice", "Reimu", "暂定"); + private int selectedIndex = -1; + + private static final int BUTTON_WIDTH = 300; + private static final int BUTTON_HEIGHT = 80; + private static final int BUTTON_X = 800; + private static final int CONFIRM_Y = 200; + private static final int BACK_Y = 100; + + public CharacterSelectScreen(MainGame game) { + this.game = game; + } + + public void setMultiplayerMode(boolean multiplayerMode) { + this.multiplayerMode = multiplayerMode; + } + + @Override + public void show() { + batch = new SpriteBatch(); + shapeRenderer = new ShapeRenderer(); + font = loadChineseFont(); + font.setColor(Color.WHITE); + font.getData().setScale(2f); + } + + @Override + public void render(float delta) { + new ClearScreen(); + + int mouseX = Gdx.input.getX(); + int mouseY = Gdx.graphics.getHeight() - Gdx.input.getY(); + + renderCharacters(mouseX, mouseY); + renderButtons(mouseX, mouseY); + renderTexts(); + + handleInput(mouseX, mouseY); + if (multiplayerMode) { + // 显示联机模式提示 + batch.begin(); + font.draw(batch, "联机模式 - 等待其他玩家连接...", 100, 100); + batch.end(); + } else { + // 显示单人模式提示 + batch.begin(); + font.draw(batch, "单人模式", 100, 100); + batch.end(); + } + } + + private void renderCharacters(int mouseX, int mouseY) { + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + for (int i = 0; i < characters.size(); i++) { + int x = 200; + int y = 500 - i * 120; + boolean hovered = isHovered(mouseX, mouseY, x, y, BUTTON_WIDTH, BUTTON_HEIGHT); + shapeRenderer.setColor(selectedIndex == i ? Color.GREEN : (hovered ? Color.LIGHT_GRAY : Color.DARK_GRAY)); + shapeRenderer.rect(x, y, BUTTON_WIDTH, BUTTON_HEIGHT); + } + shapeRenderer.end(); + } + + private void renderButtons(int mouseX, int mouseY) { + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + drawButton(CONFIRM_Y, mouseX, mouseY, "确认"); + drawButton(BACK_Y, mouseX, mouseY, "返回"); + shapeRenderer.end(); + } + + private void renderTexts() { + batch.begin(); + font.draw(batch, "选择你的角色", 200, 650); + for (int i = 0; i < characters.size(); i++) { + int x = 200 + 30; + int y = 500 - i * 120 + 50; + font.draw(batch, characters.get(i), x, y); + + } + if (selectedIndex != -1) { + font.draw(batch, "已选择: " + characters.get(selectedIndex), 200, 100); + } + drawButtonText(CONFIRM_Y, "确认"); + drawButtonText(BACK_Y, "返回"); + batch.end(); + } + + private void drawButton(int y, int mouseX, int mouseY, String label) { + boolean hovered = isHovered(mouseX, mouseY, BUTTON_X, y, BUTTON_WIDTH, BUTTON_HEIGHT); + shapeRenderer.setColor(hovered ? Color.LIGHT_GRAY : Color.DARK_GRAY); + shapeRenderer.rect(BUTTON_X, y, BUTTON_WIDTH, BUTTON_HEIGHT); + } + + private void drawButtonText(int y, String text) { + float textX = BUTTON_X + BUTTON_WIDTH / 2f - font.getScaleX() * text.length() * 10; + float textY = y + BUTTON_HEIGHT / 2f + 20; + font.draw(batch, text, textX, textY); + } + + private boolean isHovered(int x, int y, int bx, int by, int bw, int bh) { + return x >= bx && x <= bx + bw && y >= by && y <= by + bh; + } + + private void handleInput(int mouseX, int mouseY) { + if (Gdx.input.justTouched()) { + // 检查是否点击了角色按钮 + for (int i = 0; i < characters.size(); i++) { + int x = 200; + int y = 500 - i * 120; + if (isHovered(mouseX, mouseY, x, y, BUTTON_WIDTH, BUTTON_HEIGHT)) { + selectedIndex = i; + Gdx.app.log("Character", "选择了角色: " + characters.get(i)); + return; // 防止同时触发其他按钮 + } + } + + // 点击确认按钮 + if (isHovered(mouseX, mouseY, BUTTON_X, CONFIRM_Y, BUTTON_WIDTH, BUTTON_HEIGHT)) { + if (selectedIndex != -1) { + String selectedCharacter = characters.get(selectedIndex); + Gdx.app.log("Character", "确认角色: " + selectedCharacter); + + Fighter fighter = null; + switch (selectedCharacter) { + case "Alice": + fighter = new Alice(); + break; + case "Reimu": + fighter = new Reimu(); + break; + // case "弓箭手": + // fighter = new Archer(); + // break; + } + + if (fighter != null) { + game.setScreen(new GameScreen(game, fighter)); + } + } + } + + // 点击返回按钮 + if (isHovered(mouseX, mouseY, BUTTON_X, BACK_Y, BUTTON_WIDTH, BUTTON_HEIGHT)) { + Gdx.app.log("Character", "返回主菜单"); + game.setScreen(new MainMenuScreen(game)); + } + } + } + + @Override + public void dispose() { + batch.dispose(); + font.dispose(); + shapeRenderer.dispose(); + } +} diff --git a/src/main/java/uno/mloluyu/desktop/DesktopLauncher.java b/src/main/java/uno/mloluyu/desktop/DesktopLauncher.java new file mode 100644 index 0000000..64b8942 --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/DesktopLauncher.java @@ -0,0 +1,23 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.backends.lwjgl.LwjglApplication; +import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; + +/** + * Desktop 平台启动器 + */ +public class DesktopLauncher { + + public static void main(String[] args) { + + LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); + + float scale = 1.0F; + config.width = (int) (1920 * scale); // 窗口宽度 + config.height = (int) (1080 * scale); // 窗口高度 + + config.resizable = false; // 窗口设置为大小不可改变 + + new LwjglApplication(new MainGame(), config); + } +} diff --git a/src/main/java/uno/mloluyu/desktop/GameCore.java b/src/main/java/uno/mloluyu/desktop/GameCore.java deleted file mode 100644 index 2d89642..0000000 --- a/src/main/java/uno/mloluyu/desktop/GameCore.java +++ /dev/null @@ -1,66 +0,0 @@ -package uno.mloluyu.desktop; - -import com.badlogic.gdx.ApplicationListener; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.GL20; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; - -import com.badlogic.gdx.utils.Scaling; -import com.badlogic.gdx.utils.viewport.ExtendViewport; -import com.badlogic.gdx.utils.viewport.ScalingViewport; -import com.badlogic.gdx.utils.viewport.ScreenViewport; -import com.badlogic.gdx.utils.viewport.Viewport; -import uno.mloluyu.characters.Alice; -import uno.mloluyu.characters.FighterList; - -public class GameCore implements ApplicationListener { - private SpriteBatch batch; - private Viewport viewport; - private Gaming gaming; - private Texture texture; - - @Override - public void create() { - viewport = new ScalingViewport(Scaling.none, Launcher.width, Launcher.width); - texture = new Texture(Gdx.files.internal("src\\main\\resources\\backgrounds\\bg.png")); - batch = new SpriteBatch(); - gaming = new Gaming(new Alice(), new Alice()); - gaming.create(); - } - - @Override - public void render() { - Gdx.gl.glClearColor(150, 150, 150, 1); - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - viewport.apply(); - batch.begin(); - batch.draw(texture, 0, 0); -// alice1.update(Gdx.graphics.getDeltaTime()); -// batch.begin(); -// alice1.render(batch); -// batch.end(); - gaming.render(); - batch.end(); - } - - @Override - public void dispose() { - gaming.dispose(); - } - - @Override - public void resize(int width, int height) { - - // 应用新的视口设置 - viewport.update(width, height, true); // 第三个参数 true 表示相机居中 - } - - @Override - public void pause() { - } - - @Override - public void resume() { - } -} diff --git a/src/main/java/uno/mloluyu/desktop/GameScreen.java b/src/main/java/uno/mloluyu/desktop/GameScreen.java new file mode 100644 index 0000000..21f3ab9 --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/GameScreen.java @@ -0,0 +1,89 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.ScreenAdapter; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import uno.mloluyu.characters.Fighter; +import uno.mloluyu.network.NetworkManager; +import uno.mloluyu.util.ClearScreen; + +public class GameScreen extends ScreenAdapter { + private final MainGame game; + private final Fighter player; + private SpriteBatch batch; + private ShapeRenderer shapeRenderer; + + public GameScreen(MainGame game, Fighter player) { + this.game = game; + this.player = player; + } + + @Override + public void show() { + batch = new SpriteBatch(); + shapeRenderer = new ShapeRenderer(); + } + + @Override + public void render(float delta) { + new ClearScreen(); + + // 更新角色状态 + player.update(delta); + + // 发送本机玩家位置 + if (NetworkManager.getInstance().isConnected()) { + NetworkManager.getInstance().sendPosition(player.getX(), player.getY()); + } + + // 渲染角色 + batch.begin(); + player.render(batch); + + // 渲染其他玩家位置(联机模式) + if (NetworkManager.getInstance().isConnected()) { + renderOtherPlayers(); + } + + batch.end(); + } + + private void renderOtherPlayers() { + // 获取其他玩家位置并渲染 + for (String position : NetworkManager.getInstance().getOtherPlayerPositions()) { + String[] coords = position.split(","); + if (coords.length == 2) { + try { + float x = Float.parseFloat(coords[0]); + float y = Float.parseFloat(coords[1]); + + // 使用形状渲染器绘制其他玩家标记 + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + shapeRenderer.setColor(Color.RED); + shapeRenderer.circle(x, y, 20); // 红色圆圈表示其他玩家 + shapeRenderer.end(); + + // 在批处理中绘制文字 + batch.begin(); + // 这里可以添加玩家名字显示 + batch.end(); + + } catch (NumberFormatException e) { + Gdx.app.error("GameScreen", "解析玩家位置失败: " + position); + } + } + } + } + + @Override + public void dispose() { + batch.dispose(); + player.dispose(); + shapeRenderer.dispose(); + // 断开网络连接 + NetworkManager.getInstance().disconnect(); + } +} diff --git a/src/main/java/uno/mloluyu/desktop/Gaming.java b/src/main/java/uno/mloluyu/desktop/Gaming.java deleted file mode 100644 index f2d3e75..0000000 --- a/src/main/java/uno/mloluyu/desktop/Gaming.java +++ /dev/null @@ -1,38 +0,0 @@ -package uno.mloluyu.desktop; - -import com.badlogic.gdx.ApplicationListener; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.utils.viewport.ExtendViewport; -import com.badlogic.gdx.utils.viewport.Viewport; -import uno.mloluyu.characters.Fighter; - -public class Gaming { - - private Fighter selfFighter; - private Fighter frontFighter; - private SpriteBatch batch; - - public Gaming(Fighter selfFighter, Fighter frontFighter) { - this.selfFighter = selfFighter; - this.frontFighter = frontFighter; - } - - public void create() { - batch = new SpriteBatch(); - } - - public void render() { - selfFighter.update(Gdx.graphics.getDeltaTime()); - frontFighter.update(Gdx.graphics.getDeltaTime()); - batch.begin(); - selfFighter.render(batch); - selfFighter.render(batch); - batch.end(); - } - - public void dispose() { - selfFighter.dispose(); - frontFighter.dispose(); - } -} diff --git a/src/main/java/uno/mloluyu/desktop/Launcher.java b/src/main/java/uno/mloluyu/desktop/Launcher.java deleted file mode 100644 index 598a3f7..0000000 --- a/src/main/java/uno/mloluyu/desktop/Launcher.java +++ /dev/null @@ -1,20 +0,0 @@ -package uno.mloluyu.desktop; - - -import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; -import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; - - -public class Launcher { - public static final int width = 640; - public static final int height = 480; - public static void main(String[] args) { - Lwjgl3ApplicationConfiguration configuration = new Lwjgl3ApplicationConfiguration(); - configuration.setTitle("Test Game"); - configuration.setWindowedMode(width, height); - configuration.setForegroundFPS(60); - configuration.useVsync(true); - new Lwjgl3Application(new GameCore(), configuration); - } -} - diff --git a/src/main/java/uno/mloluyu/desktop/MainGame.java b/src/main/java/uno/mloluyu/desktop/MainGame.java new file mode 100644 index 0000000..b215067 --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/MainGame.java @@ -0,0 +1,41 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.Game; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; + +public class MainGame extends Game { + public static final float WORLD_WIDTH = 1920; + public static final float WORLD_HEIGHT = 1080; + private StartScreen startScreen; + private MainMenuScreen mainMenuScreen; + + @Override + public void create() { + startScreen = new StartScreen(this); + mainMenuScreen = new MainMenuScreen(this); + setScreen(new MainMenuScreen(this)); + setScreen(startScreen); + + } + + public void showGameScreen() { + setScreen(mainMenuScreen); + if (startScreen != null) { + startScreen.dispose(); + startScreen = null; + } + } + + public void dispose() { + if (startScreen != null) { + startScreen.dispose(); + startScreen = null; + } + if (mainMenuScreen != null) { + mainMenuScreen.dispose(); + mainMenuScreen = null; + } + } + +} diff --git a/src/main/java/uno/mloluyu/desktop/MainMenuScreen.java b/src/main/java/uno/mloluyu/desktop/MainMenuScreen.java new file mode 100644 index 0000000..fd73fbe --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/MainMenuScreen.java @@ -0,0 +1,103 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.ScreenAdapter; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; + +import uno.mloluyu.characters.Alice; +import uno.mloluyu.versatile.FighterController; + +import static uno.mloluyu.util.Font.loadChineseFont; + +public class MainMenuScreen extends ScreenAdapter { + + private final MainGame game; + private SpriteBatch batch; + private BitmapFont font; + private ShapeRenderer shapeRenderer; + + // 按钮区域 + private final int buttonWidth = 400; + private final int buttonHeight = 80; + private final int buttonX = 760; + private final int startY = 600; + private final int settingsY = 480; + private final int networkY = 360; + + public MainMenuScreen(MainGame game) { + this.game = game; + } + + @Override + public void show() { + batch = new SpriteBatch(); + shapeRenderer = new ShapeRenderer(); + font = loadChineseFont(); + font.setColor(Color.WHITE); + font.getData().setScale(2f); + } + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(0.75F, 1, 0.98F, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + int mouseX = Gdx.input.getX(); + int mouseY = Gdx.graphics.getHeight() - Gdx.input.getY(); + + // 绘制按钮背景 + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + drawButtonBox(startY, "开始游戏", mouseX, mouseY); + drawButtonBox(settingsY, "设置", mouseX, mouseY); + drawButtonBox(networkY, "联网设置", mouseX, mouseY); + shapeRenderer.end(); + + // 绘制按钮文字 + batch.begin(); + drawButtonText(startY, "开始游戏"); + drawButtonText(settingsY, "设置"); + drawButtonText(networkY, "联网设置"); + batch.end(); + + // 点击事件 + if (Gdx.input.justTouched()) { + if (isTouched(mouseX, mouseY, buttonX, startY)) { + Gdx.app.log("Button", "开始游戏按钮被点击!"); + game.setScreen(new CharacterSelectScreen(game)); + } else if (isTouched(mouseX, mouseY, buttonX, settingsY)) { + Gdx.app.log("Button", "设置按钮被点击!"); + } else if (isTouched(mouseX, mouseY, buttonX, networkY)) { + Gdx.app.log("Button", "联网设置按钮被点击!"); + game.setScreen(new NetworkSettingsScreen(game)); + } + } + } + + private void drawButtonBox(int y, String label, int mouseX, int mouseY) { + boolean hovered = isTouched(mouseX, mouseY, buttonX, y); + shapeRenderer.setColor(hovered ? Color.LIGHT_GRAY : Color.DARK_GRAY); + shapeRenderer.rect(buttonX, y, buttonWidth, buttonHeight); + } + + private void drawButtonText(int y, String text) { + float textWidth = font.getRegion().getRegionWidth(); // 粗略估算 + float textX = buttonX + buttonWidth / 2f - text.length() * 20; // 居中估算 + float textY = y + buttonHeight / 2f + 20; + font.draw(batch, text, textX, textY); + } + + private boolean isTouched(int x, int y, int bx, int by) { + return x >= bx && x <= bx + buttonWidth && y >= by && y <= by + buttonHeight; + } + + @Override + public void dispose() { + if (batch != null) batch.dispose(); + if (font != null) font.dispose(); + if (shapeRenderer != null) shapeRenderer.dispose(); + } +} diff --git a/src/main/java/uno/mloluyu/desktop/NetworkSettingsScreen.java b/src/main/java/uno/mloluyu/desktop/NetworkSettingsScreen.java new file mode 100644 index 0000000..1f31de7 --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/NetworkSettingsScreen.java @@ -0,0 +1,143 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.ScreenAdapter; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; + +import uno.mloluyu.network.ConnectClient; +import uno.mloluyu.network.ConnectServer; +import static uno.mloluyu.util.Font.loadChineseFont; +import uno.mloluyu.util.ClearScreen; + +public class NetworkSettingsScreen extends ScreenAdapter { + private final MainGame game; + private SpriteBatch batch; + private BitmapFont font; + private ShapeRenderer shapeRenderer; + + private static final int BUTTON_WIDTH = 400; + private static final int BUTTON_HEIGHT = 80; + private static final int BUTTON_X = 760; + private static final int CREATE_ROOM_Y = 500; + private static final int JOIN_ROOM_Y = 380; + private static final int EXIT_Y = 260; // 退出按钮位置 + + public NetworkSettingsScreen(MainGame game) { + this.game = game; + } + + @Override + public void show() { + batch = new SpriteBatch(); + shapeRenderer = new ShapeRenderer(); + font = loadChineseFont(); + font.setColor(Color.WHITE); + font.getData().setScale(2f); + } + + @Override + public void render(float delta) { + new ClearScreen(); + + int mouseX = Gdx.input.getX(); + int mouseY = Gdx.graphics.getHeight() - Gdx.input.getY(); + + renderButtons(mouseX, mouseY); + renderTexts(); + + handleInput(mouseX, mouseY); + } + + private void renderButtons(int mouseX, int mouseY) { + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + drawButton(CREATE_ROOM_Y, mouseX, mouseY); + drawButton(JOIN_ROOM_Y, mouseX, mouseY); + drawButton(EXIT_Y, mouseX, mouseY); // 新增退出按钮 + shapeRenderer.end(); + } + + private void renderTexts() { + batch.begin(); + font.draw(batch, "联机设置", BUTTON_X + 100, 650); + drawButtonText(CREATE_ROOM_Y, "创建房间"); + drawButtonText(JOIN_ROOM_Y, "加入房间"); + drawButtonText(EXIT_Y, "返回"); // 新增退出按钮文字 + batch.end(); + } + + private void handleInput(int mouseX, int mouseY) { + if (Gdx.input.justTouched()) { + if (isHovered(mouseX, mouseY, BUTTON_X, CREATE_ROOM_Y)) { + Gdx.app.log("Network", "创建房间按钮被点击!"); + new Thread(new ConnectServer(11455)).start(); + + // 添加服务器启动提示信息 + Gdx.app.log("Network", "服务器已启动,等待玩家连接..."); + System.out.println("服务器已启动,等待玩家连接..."); + + // 创建联机模式标识并传递到角色选择界面 + CharacterSelectScreen characterSelectScreen = new CharacterSelectScreen(game); + characterSelectScreen.setMultiplayerMode(true); // 设置为联机模式 + game.setScreen(characterSelectScreen); + + } else if (isHovered(mouseX, mouseY, BUTTON_X, JOIN_ROOM_Y)) { + Gdx.app.log("Network", "加入房间按钮被点击!"); + // 使用LibGDX的输入对话框避免AWT线程问题 + Gdx.input.getTextInput(new com.badlogic.gdx.Input.TextInputListener() { + @Override + public void input(String ip) { + if (ip != null && !ip.trim().isEmpty()) { + new Thread(() -> new ConnectClient(ip.trim(), 11455)).start(); + Gdx.app.log("Network", "正在连接到服务器 " + ip.trim() + "..."); + System.out.println("正在连接到服务器 " + ip.trim() + "..."); + + // 使用postRunnable确保在主线程中执行屏幕切换 + Gdx.app.postRunnable(() -> { + CharacterSelectScreen characterSelectScreen = new CharacterSelectScreen(game); + characterSelectScreen.setMultiplayerMode(true); + game.setScreen(characterSelectScreen); + }); + } + } + + @Override + public void canceled() { + Gdx.app.log("Network", "用户取消输入 IP"); + } + }, "请输入服务器 IP 地址", "", "加入房间"); + + } else if (isHovered(mouseX, mouseY, BUTTON_X, EXIT_Y)) { + Gdx.app.log("Network", "退出按钮被点击!"); + game.setScreen(new MainMenuScreen(game)); // 或者 Gdx.app.exit(); 直接退出游戏 + } + } + } + + private void drawButton(int y, int mouseX, int mouseY) { + boolean hovered = isHovered(mouseX, mouseY, BUTTON_X, y); + shapeRenderer.setColor(hovered ? Color.LIGHT_GRAY : Color.DARK_GRAY); + shapeRenderer.rect(BUTTON_X, y, BUTTON_WIDTH, BUTTON_HEIGHT); + } + + private void drawButtonText(int y, String text) { + float textX = BUTTON_X + BUTTON_WIDTH / 2f - font.getScaleX() * text.length() * 10; + float textY = y + BUTTON_HEIGHT / 2f + 20; + font.draw(batch, text, textX, textY); + } + + private boolean isHovered(int x, int y, int bx, int by) { + return x >= bx && x <= bx + BUTTON_WIDTH && y >= by && y <= by + BUTTON_HEIGHT; + } + + @Override + public void dispose() { + batch.dispose(); + font.dispose(); + shapeRenderer.dispose(); + } + +} \ No newline at end of file diff --git a/src/main/java/uno/mloluyu/desktop/StartScreen.java b/src/main/java/uno/mloluyu/desktop/StartScreen.java new file mode 100644 index 0000000..8180416 --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/StartScreen.java @@ -0,0 +1,80 @@ +package uno.mloluyu.desktop; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Screen; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Texture; + +/** + * 启动屏幕类 + * 显示游戏Logo并在3秒后切换到主菜单界面 + */ +public class StartScreen implements Screen { + + private MainGame mainGame; + + private Texture logoTexture; + private com.badlogic.gdx.graphics.g2d.SpriteBatch batch; + + private float deltaSum; + + public StartScreen(MainGame mainGame) { + this.mainGame = mainGame; + logoTexture = new Texture(Gdx.files.internal("src\\main\\resources\\logo.png")); + batch = new com.badlogic.gdx.graphics.g2d.SpriteBatch(); + } + + @Override + public void show() { + deltaSum = 0; + } + + @Override + public void render(float delta) { + deltaSum += delta; + + if (deltaSum >= 3.0F) { + if (mainGame != null) { + mainGame.showGameScreen(); + System.out.println("已经切换到主菜单"); + return; + } + } + + Gdx.gl.glClearColor(0.75F, 1, 0.98F, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + batch.begin(); + float x = (MainGame.WORLD_WIDTH - logoTexture.getWidth()) / 2f; + float y = (MainGame.WORLD_HEIGHT - logoTexture.getHeight()) / 2f; + batch.draw(logoTexture, x, y); + batch.end(); + } + + @Override + public void resize(int width, int height) { + } + + @Override + public void pause() { + } + + @Override + public void resume() { + } + + @Override + public void hide() { + } + + @Override + public void dispose() { + if (batch != null) { + batch.dispose(); + } + if (logoTexture != null) { + logoTexture.dispose(); + } + } + +} diff --git a/src/main/java/uno/mloluyu/desktop/TransitionScreen.java b/src/main/java/uno/mloluyu/desktop/TransitionScreen.java new file mode 100644 index 0000000..ff736af --- /dev/null +++ b/src/main/java/uno/mloluyu/desktop/TransitionScreen.java @@ -0,0 +1,122 @@ +package uno.mloluyu.desktop; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Screen; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; + +/** + * 屏幕过渡效果类 + * 用于在不同屏幕之间实现平滑的过渡动画 + */ +public class TransitionScreen implements Screen { + private ShapeRenderer shapeRenderer; + private SpriteBatch batch; + private float transitionTime = 0; + private float totalTransitionTime = 0.5f; // 过渡时间为0.5秒 + private Runnable targetScreenAction; + private TransitionType transitionType = TransitionType.FADE_OUT_FADE_IN; + + /** + * 过渡类型枚举 + */ + public enum TransitionType { + FADE_OUT_FADE_IN + } + + public TransitionScreen() { + this.shapeRenderer = new ShapeRenderer(); + this.batch = new SpriteBatch(); + } + + /** + * 设置目标屏幕的显示动作 + * + * @param targetScreenAction 目标屏幕的显示动作 + */ + public void setTargetScreen(Runnable targetScreenAction) { + this.targetScreenAction = targetScreenAction; + this.transitionTime = 0; + } + + @Override + public void show() { + // 屏幕显示时的初始化操作 + } + + @Override + public void render(float delta) { + // 清屏 + Gdx.gl.glClearColor(0, 0, 0, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + transitionTime += delta; + float progress = Math.min(transitionTime / totalTransitionTime, 1); + + // 绘制过渡效果 + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + shapeRenderer.setColor(0, 0, 0, getAlpha(progress)); + shapeRenderer.rect(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + shapeRenderer.end(); + + // 当过渡动画完成时,执行目标屏幕的显示动作 + if (progress >= 1 && targetScreenAction != null) { + targetScreenAction.run(); + } + } + + /** + * 根据过渡进度计算透明度 + * + * @param progress 过渡进度(0-1) + * @return 透明度值(0-1) + */ + private float getAlpha(float progress) { + switch (transitionType) { + case FADE_OUT_FADE_IN: + // 前半段淡出(透明度从0到1),后半段淡入(透明度从1到0) + if (progress < 0.5) { + return progress * 2; + } else { + return (1 - progress) * 2; + } + default: + return 1; + } + } + + @Override + public void resize(int width, int height) { + // 屏幕尺寸变化时的处理 + } + + @Override + public void pause() { + // 游戏暂停时的处理 + } + + @Override + public void resume() { + // 游戏恢复时的处理 + } + + @Override + public void hide() { + // 屏幕隐藏时的处理 + } + + @Override + public void dispose() { + // 释放资源 + if (shapeRenderer != null) { + shapeRenderer.dispose(); + shapeRenderer = null; + } + + if (batch != null) { + batch.dispose(); + batch = null; + } + } +} diff --git a/src/main/java/uno/mloluyu/network/ConnectClient.java b/src/main/java/uno/mloluyu/network/ConnectClient.java new file mode 100644 index 0000000..105739d --- /dev/null +++ b/src/main/java/uno/mloluyu/network/ConnectClient.java @@ -0,0 +1,77 @@ +package uno.mloluyu.network; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Net; +import com.badlogic.gdx.net.Socket; + +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; + +/** + * 客户端连接类(实例方式) + */ +public class ConnectClient { + private Socket socket; + + public ConnectClient(String ip, int port) { + try { + socket = Gdx.net.newClientSocket(Net.Protocol.TCP, ip, port, null); + Gdx.app.log("Client", "成功连接到服务器: " + ip + ":" + port); + + // 启动接收线程 + new Thread(this::receiveMessages).start(); + + // 示例:发送一条欢迎消息 + sendMessage("你好,我是客户端玩家"); + + } catch (Exception e) { + Gdx.app.error("Client", "连接失败: " + e.getMessage(), e); + } + } + + // ... 现有代码 ... + +private void receiveMessages() { + try { + byte[] buffer = new byte[1024]; + while (true) { + int read = socket.getInputStream().read(buffer); + if (read == -1) break; + String message = new String(buffer, 0, read, StandardCharsets.UTF_8); + Gdx.app.log("Client", "收到服务器消息: " + message); + + // 处理位置消息 + if (message.startsWith("POS:")) { + String positionData = message.substring(4); + // 通知网络管理器更新其他玩家位置 + NetworkManager.getInstance().updatePlayerPosition(positionData); + } + } + } catch (Exception e) { + Gdx.app.error("Client", "接收消息异常: " + e.getMessage(), e); + } finally { + disconnect(); + } +} + +// ... 现有代码 ... + + + public void sendMessage(String message) { + try { + OutputStream out = socket.getOutputStream(); + out.write(message.getBytes(StandardCharsets.UTF_8)); + out.flush(); + } catch (Exception e) { + Gdx.app.error("Client", "发送消息失败: " + e.getMessage(), e); + } + } + + public void disconnect() { + if (socket != null) { + socket.dispose(); + socket = null; + Gdx.app.log("Client", "已断开与服务器的连接"); + } + } +} diff --git a/src/main/java/uno/mloluyu/network/ConnectServer.java b/src/main/java/uno/mloluyu/network/ConnectServer.java index 65bd5b9..2f16cb6 100644 --- a/src/main/java/uno/mloluyu/network/ConnectServer.java +++ b/src/main/java/uno/mloluyu/network/ConnectServer.java @@ -2,44 +2,161 @@ package uno.mloluyu.network; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Net; +import com.badlogic.gdx.net.ServerSocket; import com.badlogic.gdx.net.Socket; -import uno.mloluyu.desktop.Gaming; -import java.io.InputStream; import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; -public class ConnectServer { - private static Socket socket; - private static String host = ""; - private static int port = 10800; +/** + * 支持两个玩家连接的服务器类 + */ +public class ConnectServer implements Runnable { + private final int port; + private ServerSocket serverSocket; + private final List connectedPlayers = new ArrayList<>(); + private static final int MAX_PLAYERS = 2; - public static void connectServer() { - new Thread(new Runnable() { - @Override - public void run() { - try { - socket = Gdx.net.newClientSocket(Net.Protocol.TCP, host, port, null); - OutputStream outputStream = socket.getOutputStream();//读取套接字的数据流 - InputStream inputStream = socket.getInputStream(); - //Gaming gaming = new Gaming(); //进入游戏界面 - //gaming.render(); + // 玩家内部类,存储Socket和玩家名字 + private static class Player { + Socket socket; + String playerName; - Gdx.app.postRunnable(new Runnable() { - @Override - public void run() { + Player(Socket socket) { + this.socket = socket; + this.playerName = "玩家" + (int) (Math.random() * 1000); // 默认随机名字 + } - } - }); + String getPlayerName() { + return playerName; + } - } catch (Exception e) { + void setPlayerName(String name) { + this.playerName = name; + } - } finally { - if (socket != null) { - socket.dispose(); - } + Socket getSocket() { + return socket; + } + } + + public ConnectServer(int port) { + this.port = port; + } + + @Override + public void run() { + serverSocket = Gdx.net.newServerSocket(Net.Protocol.TCP, port, null); + Gdx.app.log("Server", "服务器已启动,等待玩家连接..."); + + try { + while (connectedPlayers.size() < MAX_PLAYERS) { + Socket socket = serverSocket.accept(null); + Player player = new Player(socket); + connectedPlayers.add(player); + Gdx.app.log("Server", "玩家连接成功: " + socket.getRemoteAddress() + ",默认名字: " + player.getPlayerName()); + new Thread(() -> handlePlayer(player)).start(); + } + + Gdx.app.log("Server", "已连接两个玩家,游戏准备开始!"); + // 输出当前所有玩家名字 + for (int i = 0; i < connectedPlayers.size(); i++) { + Gdx.app.log("Server", "玩家" + (i + 1) + ": " + connectedPlayers.get(i).getPlayerName()); + } + + } catch (Exception e) { + Gdx.app.error("Server", "连接异常: " + e.getMessage(), e); + } + } + + // ... 现有代码 ... + + private void handlePlayer(Player player) { + try { + byte[] buffer = new byte[1024]; + while (true) { + int read = player.getSocket().getInputStream().read(buffer); + if (read == -1) + break; + String message = new String(buffer, 0, read); + Gdx.app.log("Server", "收到玩家" + player.getPlayerName() + "的消息: " + message); + + // 处理设置玩家名字的消息 + if (message.startsWith("SET_NAME:")) { + String newName = message.substring(8); + player.setPlayerName(newName); + Gdx.app.log("Server", "玩家名字已更新为: " + newName); + } + // 处理位置消息并广播 + else if (message.startsWith("POS:")) { + String positionData = message.substring(4); + // 广播给其他玩家 + broadcastToOtherPlayers(player, "POS:" + positionData); } } - }); + } catch (Exception e) { + Gdx.app.error("Server", "玩家通信异常: " + e.getMessage(), e); + } finally { + player.getSocket().dispose(); + connectedPlayers.remove(player); + Gdx.app.log("Server", "玩家" + player.getPlayerName() + "断开连接"); + } + } + // 新增广播方法 + private void broadcastToOtherPlayers(Player sender, String message) { + for (Player player : connectedPlayers) { + if (player != sender) { + try { + OutputStream out = player.getSocket().getOutputStream(); + out.write(message.getBytes(java.nio.charset.StandardCharsets.UTF_8)); + out.flush(); + } catch (Exception e) { + Gdx.app.error("Server", "广播消息失败: " + e.getMessage(), e); + } + } + } + } + + // ... 现有代码 ... + + // 获取当前服务器所有玩家名字的方法 + public List getPlayerNames() { + List names = new ArrayList<>(); + for (Player player : connectedPlayers) { + names.add(player.getPlayerName()); + } + return names; + } + + // 根据索引获取特定玩家名字的方法 + public String getPlayerName(int index) { + if (index >= 0 && index < connectedPlayers.size()) { + return connectedPlayers.get(index).getPlayerName(); + } + return null; + } + + // 设置玩家名字的方法 + public void setPlayerName(int index, String name) { + if (index >= 0 && index < connectedPlayers.size()) { + connectedPlayers.get(index).setPlayerName(name); + Gdx.app.log("Server", "玩家" + index + "名字设置为: " + name); + } + } + + public void dispose() { + for (Player player : connectedPlayers) { + player.getSocket().dispose(); + } + connectedPlayers.clear(); + + if (serverSocket != null) { + serverSocket.dispose(); + serverSocket = null; + } + + Gdx.app.log("Server", "服务器已关闭"); } } diff --git a/src/main/java/uno/mloluyu/network/CreateServer.java b/src/main/java/uno/mloluyu/network/CreateServer.java deleted file mode 100644 index f441c1f..0000000 --- a/src/main/java/uno/mloluyu/network/CreateServer.java +++ /dev/null @@ -1,45 +0,0 @@ -package uno.mloluyu.network; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Net; -import com.badlogic.gdx.net.ServerSocket; -import com.badlogic.gdx.net.Socket; - -/** - * @author mloluyu - */ -public class CreateServer { - //创建套接字 - private static ServerSocket serverSocket; - private static Socket clientSocket; - - public static void createServer(int port) { - //开启本地服务器 - serverSocket = Gdx.net.newServerSocket(Net.Protocol.TCP, port, null); - - //启用新线程处理 - new Thread(new Runnable() { - @Override - public void run() { - try { - clientSocket = serverSocket.accept(null); - System.out.println("玩家连接"+clientSocket); - //连接上后在这里编写进入游戏界面的代码 - } catch (Exception e) { - - } finally { - if (clientSocket != null) { - clientSocket.dispose(); - } - } - } - }); - } - - public void serverDispose() { - //关闭主机 - if (serverSocket != null) { - serverSocket.dispose(); - } - } -} diff --git a/src/main/java/uno/mloluyu/network/NetworkManager.java b/src/main/java/uno/mloluyu/network/NetworkManager.java new file mode 100644 index 0000000..453c044 --- /dev/null +++ b/src/main/java/uno/mloluyu/network/NetworkManager.java @@ -0,0 +1,106 @@ +package uno.mloluyu.network; + +import com.badlogic.gdx.Gdx; +import java.util.ArrayList; +import java.util.List; + +/** + * 网络管理器,协调服务器和客户端通信 + */ +public class NetworkManager { + private static NetworkManager instance; + private ConnectServer server; + private ConnectClient client; + private boolean isHost = false; + private List playerPositions = new ArrayList<>(); + + public static NetworkManager getInstance() { + if (instance == null) { + instance = new NetworkManager(); + } + return instance; + } + + /** + * 创建房间(作为主机) + */ + public void createRoom() { + isHost = true; + server = new ConnectServer(11455); + new Thread(server).start(); + Gdx.app.log("Network", "房间创建成功,等待其他玩家加入..."); + } + + /** + * 加入房间(作为客户端) + */ + public void joinRoom(String ip) { + isHost = false; + client = new ConnectClient(ip, 11455); + Gdx.app.log("Network", "正在加入房间: " + ip); + } + + /** + * 发送玩家位置信息 + */ + public void sendPosition(float x, float y) { + if (isHost && server != null) { + // 主机直接广播位置 + broadcastMessage("POS:" + x + "," + y); + } else if (client != null) { + // 客户端发送位置到服务器 + client.sendMessage("POS:" + x + "," + y); + } + } + + /** + * 广播消息(主机使用) + */ + private void broadcastMessage(String message) { + // 这里需要实现广播逻辑 + Gdx.app.log("Network", "广播消息: " + message); + } + + /** + * 获取其他玩家位置 + */ + public List getOtherPlayerPositions() { + return playerPositions; + } + + /** + * 断开连接 + */ + public void disconnect() { + if (server != null) { + server.dispose(); + server = null; + } + if (client != null) { + client.disconnect(); + client = null; + } + playerPositions.clear(); + Gdx.app.log("Network", "网络连接已断开"); + } + + public boolean isHost() { + return isHost; + } + + public boolean isConnected() { + return server != null || client != null; + } + + public void updatePlayerPosition(String positionData) { + // 简单实现:直接存储位置数据 + playerPositions.add(positionData); + + // 限制位置列表大小,避免内存泄漏 + if (playerPositions.size() > 10) { + playerPositions.remove(0); + } + + Gdx.app.log("Network", "更新其他玩家位置: " + positionData); + } +} diff --git a/src/main/java/uno/mloluyu/util/ClearScreen.java b/src/main/java/uno/mloluyu/util/ClearScreen.java new file mode 100644 index 0000000..55d3fcd --- /dev/null +++ b/src/main/java/uno/mloluyu/util/ClearScreen.java @@ -0,0 +1,11 @@ +package uno.mloluyu.util; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.GL20; + +public class ClearScreen { + public ClearScreen() { + Gdx.gl.glClearColor(0.3F, 0.3F, 0.5F, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + } +} \ No newline at end of file diff --git a/src/main/java/uno/mloluyu/util/Font.java b/src/main/java/uno/mloluyu/util/Font.java new file mode 100644 index 0000000..e7c1737 --- /dev/null +++ b/src/main/java/uno/mloluyu/util/Font.java @@ -0,0 +1,31 @@ +package uno.mloluyu.util; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter; + +public class Font { + public static BitmapFont loadChineseFont() { + FreeTypeFontGenerator generator = null; + try { + generator = new FreeTypeFontGenerator(Gdx.files.internal("FLyouzichati-Regular-2.ttf")); // 你的中文字体路径 + FreeTypeFontParameter parameter = new FreeTypeFontParameter(); + parameter.size = 48; + parameter.color = Color.WHITE; + parameter.borderWidth = 1; + parameter.borderColor = Color.DARK_GRAY; + parameter.characters = "返回主菜单确认角色选择了角色人游戏加入联机模式 - 等待其他玩家连接...房间创建房间联机设置开始游戏设置联网中国abcdefghijklmnopqrstuvw暂定xyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + + return generator.generateFont(parameter); + } catch (Exception e) { + Gdx.app.error("Font Error", "加载中文字体失败: " + e.getMessage()); + return new BitmapFont(); // 回退默认字体 + } finally { + if (generator != null) + generator.dispose(); + } + } + +} diff --git a/src/main/java/uno/mloluyu/versatile/ButtonActions.java b/src/main/java/uno/mloluyu/versatile/ButtonActions.java new file mode 100644 index 0000000..82d927b --- /dev/null +++ b/src/main/java/uno/mloluyu/versatile/ButtonActions.java @@ -0,0 +1,61 @@ +package uno.mloluyu.versatile; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.graphics.g2d.TextureRegion; + +/** + * 按钮资源管理类:统一管理按钮枚举和图集资源 + */ +public class ButtonActions { + + private static TextureAtlas atlas; + + // 初始化图集(建议在游戏启动或Screen加载时调用一次) + public static void loadAtlas(String atlasPath) { + if (atlas == null) { + atlas = new TextureAtlas(Gdx.files.internal(atlasPath)); + } + } + + // 获取图集区域 + public static TextureRegion getRegion(Button button) { + if (atlas == null) { + throw new IllegalStateException("按钮图集尚未加载,请先调用 ButtonActions.loadAtlas()"); + } + TextureRegion region = atlas.findRegion(button.getRegionName()); + if (region == null) { + throw new IllegalArgumentException("图集中未找到区域: " + button.getRegionName()); + } + return region; + } + + // 释放资源(建议在Screen dispose时调用) + public static void dispose() { + if (atlas != null) { + atlas.dispose(); + atlas = null; + } + } + + /** + * 按钮枚举:统一定义所有按钮区域名 + */ + public enum Button { + CONFIRM("confirm"), // 确认按钮 + BACK("back"), // 返回按钮 + WARRIOR("warrior"), // 战士角色按钮 + MAGE("mage"), // 法师角色按钮 + ARCHER("archer"); // 弓箭手角色按钮 + + private final String regionName; + + Button(String regionName) { + this.regionName = regionName; + } + + public String getRegionName() { + return regionName; + } + } +} diff --git a/src/main/java/uno/mloluyu/Controller/FighterController.java b/src/main/java/uno/mloluyu/versatile/FighterController.java similarity index 97% rename from src/main/java/uno/mloluyu/Controller/FighterController.java rename to src/main/java/uno/mloluyu/versatile/FighterController.java index ecae410..17078bd 100644 --- a/src/main/java/uno/mloluyu/Controller/FighterController.java +++ b/src/main/java/uno/mloluyu/versatile/FighterController.java @@ -1,4 +1,4 @@ -package uno.mloluyu.Controller; +package uno.mloluyu.versatile; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; @@ -21,6 +21,9 @@ public class FighterController extends InputAdapter { public FighterController(Fighter fighter) { this.fighter = fighter; } + public FighterController() { + this.fighter = null; + } /** * 更新控制器状态和冷却时间 @@ -33,6 +36,7 @@ public class FighterController extends InputAdapter { // 处理移动输入 handleMovement(); + } /** diff --git a/src/main/resources/FLyouzichati-Regular-2.ttf b/src/main/resources/FLyouzichati-Regular-2.ttf new file mode 100644 index 0000000..9eb741a Binary files /dev/null and b/src/main/resources/FLyouzichati-Regular-2.ttf differ diff --git a/src/main/resources/character/alice/精灵1.2-0.png b/src/main/resources/character/alice/精灵1.2-0.png index 0a30288..b8b088d 100644 Binary files a/src/main/resources/character/alice/精灵1.2-0.png and b/src/main/resources/character/alice/精灵1.2-0.png differ diff --git a/src/main/resources/character/alice/精灵1.2-1.png b/src/main/resources/character/alice/精灵1.2-1.png deleted file mode 100644 index 67999e9..0000000 Binary files a/src/main/resources/character/alice/精灵1.2-1.png and /dev/null differ diff --git a/src/main/resources/character/alice/精灵1.2-2.png b/src/main/resources/character/alice/精灵1.2-2.png deleted file mode 100644 index daf979e..0000000 Binary files a/src/main/resources/character/alice/精灵1.2-2.png and /dev/null differ diff --git a/src/main/resources/character/alice/精灵1.2.atlas b/src/main/resources/character/alice/精灵1.2.atlas index 0ddec6b..23cae6a 100644 --- a/src/main/resources/character/alice/精灵1.2.atlas +++ b/src/main/resources/character/alice/精灵1.2.atlas @@ -1,1078 +1,1397 @@ -精灵1.2.png -size: 2048, 3522 +精灵1.2-0.png +size: 1999, 2047 format: RGBA8888 filter: Linear, Linear repeat: none pma: false alpha/alpha000 - bounds: 0, 661, 256, 256 + bounds: 0, 192, 256, 256 attackAa/attackAa000 - bounds: 1824, 0, 128, 128 + bounds: 851, 1047, 59, 101 + offsets: 30, 13, 128, 128 attackAa/attackAa001 - bounds: 640, 1557, 128, 128 + bounds: 1481, 877, 61, 98 + offsets: 22, 13, 128, 128 attackAa/attackAa002 - bounds: 0, 2965, 128, 128 + bounds: 764, 1047, 87, 97 + offsets: 24, 13, 128, 128 attackAa/attackAa003 - bounds: 128, 2709, 128, 128 + bounds: 1142, 677, 95, 95 + offsets: 26, 13, 128, 128 attackAa/attackAa004 - bounds: 256, 2453, 128, 128 + bounds: 1304, 372, 91, 96 + offsets: 24, 13, 128, 128 attackAa/attackAa005 - bounds: 384, 2197, 128, 128 + bounds: 1086, 873, 67, 100 + offsets: 29, 13, 128, 128 attackAa/attackAa006 - bounds: 512, 2069, 128, 128 + bounds: 1532, 692, 56, 102 + offsets: 36, 13, 128, 128 attackAb/attackAb000 - bounds: 1824, 128, 128, 128 + bounds: 1655, 769, 57, 77 + offsets: 32, 12, 128, 128 attackAb/attackAb001 - bounds: 640, 1685, 128, 128 + bounds: 890, 1756, 64, 65 + offsets: 26, 12, 128, 128 attackAb/attackAb002 - bounds: 0, 3093, 128, 128 + bounds: 1368, 1496, 77, 67 + offsets: 20, 12, 128, 128 attackAb/attackAb003 - bounds: 128, 2837, 128, 128 + bounds: 1615, 599, 97, 67 + offsets: 22, 11, 128, 128 attackAb/attackAb004 - bounds: 256, 2581, 128, 128 + bounds: 1279, 1262, 80, 69 + offsets: 17, 12, 128, 128 attackAb/attackAb005 - bounds: 384, 2325, 128, 128 + bounds: 338, 1865, 70, 76 + offsets: 25, 12, 128, 128 attackAb/attackAb006 - bounds: 512, 2197, 128, 128 + bounds: 1940, 893, 59, 77 + offsets: 35, 12, 128, 128 attackAc/attackAc000 - bounds: 1824, 256, 128, 128 + bounds: 471, 1862, 55, 79 + offsets: 35, 34, 128, 128 attackAc/attackAc001 - bounds: 640, 1813, 128, 128 + bounds: 1422, 1176, 57, 79 + offsets: 32, 31, 128, 128 attackAc/attackAc002 - bounds: 0, 3221, 128, 128 + bounds: 1712, 774, 66, 80 + offsets: 25, 29, 128, 128 attackAc/attackAc003 - bounds: 128, 2965, 128, 128 + bounds: 934, 1343, 68, 78 + offsets: 24, 30, 128, 128 attackAc/attackAc004 - bounds: 256, 2709, 128, 128 + bounds: 1152, 515, 104, 68 + offsets: 24, 36, 128, 128 attackAc/attackAc005 - bounds: 384, 2453, 128, 128 + bounds: 647, 1469, 101, 71 + offsets: 25, 35, 128, 128 attackAc/attackAc006 - bounds: 512, 2325, 128, 128 + bounds: 244, 1865, 94, 76 + offsets: 29, 32, 128, 128 attackAc/attackAc007 - bounds: 640, 1941, 128, 128 + bounds: 1872, 268, 78, 82 + offsets: 32, 29, 128, 128 attackAc/attackAc008 - bounds: 0, 3349, 128, 128 + bounds: 442, 1599, 66, 92 + offsets: 35, 21, 128, 128 attackAc/attackAc009 - bounds: 128, 3093, 128, 128 + bounds: 1166, 1069, 59, 95 + offsets: 37, 19, 128, 128 attackAc/attackAc010 - bounds: 256, 2837, 128, 128 + bounds: 1002, 1343, 57, 100 + offsets: 34, 13, 128, 128 attackAd/attackAd000 - bounds: 384, 2581, 128, 128 + bounds: 1542, 877, 53, 104 + offsets: 35, 11, 128, 128 attackAd/attackAd001 - bounds: 512, 2453, 128, 128 + bounds: 1424, 1255, 55, 102 + offsets: 35, 11, 128, 128 attackAd/attackAd002 - bounds: 640, 2069, 128, 128 + bounds: 1588, 666, 68, 102 + offsets: 41, 11, 128, 128 attackAd/attackAd003 - bounds: 128, 3221, 128, 128 + bounds: 771, 1241, 82, 101 + offsets: 32, 11, 128, 128 attackAd/attackAd004 - bounds: 256, 2965, 128, 128 + bounds: 849, 1420, 83, 100 + offsets: 31, 11, 128, 128 attackAd/attackAd005 - bounds: 384, 2709, 128, 128 + bounds: 1686, 306, 75, 101 + offsets: 33, 11, 128, 128 attackAd/attackAd006 - bounds: 512, 2581, 128, 128 + bounds: 519, 1442, 58, 104 + offsets: 41, 11, 128, 128 attackAd/attackAd007 - bounds: 640, 2197, 128, 128 + bounds: 1481, 773, 51, 104 + offsets: 43, 11, 128, 128 attackAd/attackAd008 - bounds: 128, 3349, 128, 128 + bounds: 618, 1592, 47, 104 + offsets: 41, 11, 128, 128 attackBc/attackBc009 - bounds: 800, 320, 256, 128 + bounds: 1086, 973, 68, 96 + offsets: 28, 11, 256, 128 attackBc/attackBc010 - bounds: 0, 1173, 256, 128 + bounds: 1429, 1076, 56, 100 + offsets: 29, 11, 256, 128 attackBc/attackBc011 - bounds: 256, 917, 256, 128 + bounds: 1122, 1339, 49, 103 + offsets: 27, 11, 256, 128 attackBc/attackBc012 - bounds: 512, 789, 256, 128 + bounds: 788, 1583, 47, 104 + offsets: 26, 11, 256, 128 attackBe/attackBe000 - bounds: 768, 533, 64, 128 + bounds: 1766, 1789, 54, 75 + offsets: 10, 14, 64, 128 attackBf/attackBf000 - bounds: 1312, 168, 256, 128 + bounds: 835, 1581, 55, 104 + offsets: 18, 11, 256, 128 attackBf/attackBf001 - bounds: 1568, 0, 256, 128 + bounds: 1063, 1442, 63, 99 + offsets: 21, 13, 256, 128 attackBf/attackBf002 - bounds: 1056, 320, 256, 128 + bounds: 1000, 1443, 63, 96 + offsets: 28, 13, 256, 128 attackBf/attackBf003 - bounds: 0, 1301, 256, 128 + bounds: 1304, 468, 88, 93 + offsets: 25, 11, 256, 128 attackBf/attackBf004 - bounds: 256, 1045, 256, 128 + bounds: 1140, 583, 87, 94 + offsets: 24, 11, 256, 128 attackBf/attackBf005 - bounds: 512, 917, 256, 128 + bounds: 1142, 772, 76, 95 + offsets: 25, 11, 256, 128 attackCa/attackCa000 - bounds: 1536, 847, 116, 104 + bounds: 1941, 616, 58, 99 + offsets: 12, 0, 116, 104 attackCa/attackCa001 - bounds: 1536, 951, 116, 104 + bounds: 1365, 869, 66, 97 + offsets: 7, 0, 116, 104 attackCa/attackCa002 - bounds: 1536, 1055, 116, 104 + bounds: 1876, 640, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa003 - bounds: 1536, 1159, 116, 104 + bounds: 1359, 1255, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa004 - bounds: 1536, 1263, 116, 104 + bounds: 1541, 1278, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa005 - bounds: 1536, 1367, 116, 104 + bounds: 1541, 1374, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa006 - bounds: 1536, 1471, 116, 104 + bounds: 1358, 966, 71, 96 + offsets: 0, 0, 116, 104 attackCa/attackCa007 - bounds: 1536, 1575, 116, 104 + bounds: 996, 1145, 71, 96 + offsets: 0, 0, 116, 104 attackCa/attackCa008 - bounds: 1536, 1679, 116, 104 + bounds: 1060, 1541, 66, 94 + offsets: 18, 0, 116, 104 attackCa/attackCa009 - bounds: 1536, 1783, 116, 104 + bounds: 1006, 768, 80, 87 + offsets: 20, 0, 116, 104 attackCa/attackCa010 - bounds: 1536, 1887, 116, 104 + bounds: 1218, 785, 83, 81 + offsets: 31, 0, 116, 104 attackCa/attackCa011 - bounds: 1536, 1991, 116, 104 + bounds: 1792, 599, 84, 84 + offsets: 30, 0, 116, 104 attackCa/attackCa012 - bounds: 1536, 2095, 116, 104 + bounds: 851, 1148, 76, 93 + offsets: 22, 0, 116, 104 attackCa/attackCa013 - bounds: 1652, 896, 116, 104 + bounds: 1291, 1167, 68, 95 + offsets: 24, 0, 116, 104 attackCa/attackCa014 - bounds: 1652, 1000, 116, 104 + bounds: 1941, 516, 58, 100 + offsets: 24, 0, 116, 104 attackCa/attackCa015 - bounds: 1768, 896, 116, 104 + bounds: 1150, 1848, 51, 101 + offsets: 23, 0, 116, 104 attackCa/attackCa016 - bounds: 1652, 1104, 116, 104 -back/spell000 - bounds: 256, 3093, 128, 128 -back/spell001 - bounds: 0, 0, 800, 533 -back/spell002 - bounds: 800, 64, 256, 256 -back/spell003 - bounds: 0, 917, 256, 256 -back/spell004 - bounds: 256, 661, 256, 256 -back/spell005 - bounds: 512, 533, 256, 256 -back/spell006 - bounds: 1056, 64, 256, 256 + bounds: 1429, 974, 52, 102 + offsets: 18, 0, 116, 104 BulletAa/BulletAa000 - bounds: 1747, 2949, 32, 32 + bounds: 1844, 396, 32, 32 BulletAa/BulletAa001 - bounds: 2000, 2950, 32, 32 + bounds: 1796, 2015, 32, 32 BulletAa/BulletAa002 - bounds: 1434, 830, 32, 32 + bounds: 1828, 2015, 32, 32 BulletAa/BulletAa003 - bounds: 1865, 3216, 32, 32 + bounds: 1860, 2015, 32, 32 BulletAa/BulletAa004 - bounds: 1344, 3482, 32, 32 + bounds: 1606, 1145, 32, 32 BulletAa/BulletAa005 - bounds: 1376, 3482, 32, 32 + bounds: 1906, 1931, 32, 32 BulletAa/BulletAa006 - bounds: 1408, 3482, 32, 32 + bounds: 1892, 2009, 32, 32 BulletAb/BulletAb000 - bounds: 1152, 3456, 64, 64 + bounds: 384, 1691, 64, 64 BulletAb/BulletAb001 - bounds: 1884, 1556, 64, 64 + bounds: 1651, 407, 64, 64 BulletAb/BulletAb002 - bounds: 1896, 1472, 64, 64 + bounds: 1715, 407, 64, 64 BulletAb/BulletAb003 - bounds: 1950, 1406, 64, 64 + bounds: 448, 1691, 64, 64 BulletAb/BulletAb004 - bounds: 1673, 3185, 64, 64 + bounds: 512, 1691, 64, 64 BulletAb/BulletAb005 - bounds: 1691, 3449, 64, 64 + bounds: 993, 1983, 64, 64 BulletAb/BulletAb006 - bounds: 1686, 2785, 64, 64 + bounds: 1057, 1983, 64, 64 BulletAc/BulletAc000 - bounds: 1737, 3185, 64, 64 + bounds: 1542, 1983, 64, 64 BulletAc/BulletAc001 - bounds: 1801, 3185, 64, 64 + bounds: 1606, 1983, 64, 64 BulletAc/BulletAc002 - bounds: 1897, 3088, 64, 64 + bounds: 1670, 1979, 64, 64 BulletAc/BulletAc003 - bounds: 1961, 3088, 64, 64 + bounds: 1766, 1725, 64, 64 BulletAc/BulletAc004 - bounds: 1881, 3152, 64, 64 + bounds: 1830, 1725, 64, 64 BulletAc/BulletAc005 - bounds: 1945, 3152, 64, 64 + bounds: 1820, 1789, 64, 64 BulletAc/BulletAc006 - bounds: 1961, 3216, 64, 64 + bounds: 1715, 1874, 64, 64 BulletBa/BulletBa000 - bounds: 800, 0, 512, 64 + bounds: 0, 128, 512, 64 BulletCa/BulletCa000 - bounds: 384, 2837, 128, 128 + bounds: 128, 1472, 128, 128 BulletCa/BulletCa001 - bounds: 512, 2709, 128, 128 + bounds: 256, 1216, 128, 128 BulletCa/BulletCa002 - bounds: 640, 2325, 128, 128 + bounds: 384, 960, 128, 128 BulletDa/BulletDa000 - bounds: 1961, 3280, 64, 64 + bounds: 1779, 1864, 64, 64 BulletDa/BulletDa001 - bounds: 1923, 3344, 64, 64 + bounds: 1843, 1853, 64, 64 BulletDb/BulletDb005 - bounds: 1280, 512, 32, 128 + bounds: 1240, 385, 32, 128 BulletDb/BulletDb006 - bounds: 1280, 640, 32, 128 + bounds: 730, 936, 32, 128 BulletDb/BulletDb007 - bounds: 1952, 640, 32, 128 + bounds: 1272, 266, 32, 128 BulletDb/BulletDb008 - bounds: 1952, 768, 32, 128 + bounds: 1272, 394, 32, 128 BulletDb/BulletDb009 - bounds: 1938, 955, 32, 128 + bounds: 732, 1064, 32, 128 BulletDb/BulletDb010 - bounds: 1526, 2238, 32, 128 + bounds: 477, 1337, 32, 128 BulletDb/BulletDb011 - bounds: 1526, 2366, 32, 128 + bounds: 372, 1472, 32, 128 BulletDb/BulletDb012 - bounds: 1526, 2494, 32, 128 + bounds: 1654, 279, 32, 128 BulletDb/BulletDb013 - bounds: 1526, 2622, 32, 128 + bounds: 1648, 471, 32, 128 BulletDb/BulletDb014 - bounds: 1526, 2750, 32, 128 + bounds: 1680, 471, 32, 128 BulletDb/BulletDb015 - bounds: 1740, 2277, 32, 128 + bounds: 1712, 471, 32, 128 BulletDb/BulletDb016 - bounds: 1643, 2508, 32, 128 + bounds: 1744, 471, 32, 128 BulletDb/BulletDb017 - bounds: 1643, 2636, 32, 128 + bounds: 1776, 471, 32, 128 BulletDb/BulletDb018 - bounds: 1729, 2483, 32, 128 + bounds: 1808, 471, 32, 128 BulletDb/BulletDb019 - bounds: 1729, 2611, 32, 128 + bounds: 1840, 471, 32, 128 BulletEa/BulletEa000 - bounds: 256, 3221, 128, 128 + bounds: 512, 936, 128, 128 BulletEa/BulletEa001 - bounds: 384, 2965, 128, 128 + bounds: 640, 680, 128, 128 BulletEa/BulletEa002 - bounds: 512, 2837, 128, 128 + bounds: 768, 512, 128, 128 BulletFa/BulletFa000 - bounds: 0, 3477, 128, 32 + bounds: 512, 1192, 128, 32 BulletFa/BulletFa001 - bounds: 640, 2453, 128, 128 + bounds: 896, 448, 128, 128 bulletFb/bulletFb000 - bounds: 896, 3458, 128, 64 + bounds: 896, 704, 128, 64 bulletFb/bulletFb001 - bounds: 1024, 3458, 128, 64 + bounds: 768, 867, 128, 64 bulletFb/bulletFb002 - bounds: 1216, 3430, 128, 64 + bounds: 1408, 214, 128, 64 bulletFb/bulletFb003 - bounds: 1643, 2213, 128, 64 + bounds: 1536, 215, 128, 64 bulletFb/bulletFb004 - bounds: 1558, 2817, 128, 64 + bounds: 896, 855, 128, 64 bulletFb/bulletFb005 - bounds: 1768, 1492, 128, 64 + bounds: 1398, 278, 128, 64 bulletFb/bulletFb006 - bounds: 1756, 1556, 128, 64 + bounds: 1526, 279, 128, 64 bulletFb/bulletFb007 - bounds: 1749, 1620, 128, 64 + bounds: 1398, 342, 128, 64 bulletFb/bulletFb008 - bounds: 1749, 1684, 128, 64 + bounds: 1526, 343, 128, 64 bulletFb/bulletFb009 - bounds: 1749, 1748, 128, 64 + bounds: 256, 1691, 128, 64 bulletFb/bulletFb010 - bounds: 1749, 1812, 128, 64 + bounds: 1395, 406, 128, 64 bulletFb/bulletFb011 - bounds: 1749, 1876, 128, 64 + bounds: 1523, 407, 128, 64 bulletFb/bulletFb012 - bounds: 1749, 1940, 128, 64 + bounds: 1392, 470, 128, 64 bulletFb/bulletFb013 - bounds: 1749, 2004, 128, 64 + bounds: 1520, 471, 128, 64 bulletFb/bulletFb014 - bounds: 1770, 2123, 128, 64 + bounds: 1392, 534, 128, 64 bulletFb/bulletFb015 - bounds: 1771, 2187, 128, 64 + bounds: 1520, 535, 128, 64 bulletFb/bulletFb016 - bounds: 1772, 2251, 128, 64 + bounds: 896, 919, 128, 64 bulletGa/bulletGa000 - bounds: 800, 448, 256, 32 + bounds: 896, 256, 256, 32 bulletGa/bulletGa001 - bounds: 1312, 296, 256, 32 + bounds: 1152, 0, 256, 32 bulletGa/bulletGa002 - bounds: 1568, 128, 256, 32 + bounds: 896, 288, 256, 32 bulletGa/bulletGa003 - bounds: 800, 480, 256, 32 + bounds: 1152, 32, 256, 32 bulletGa/bulletGa004 - bounds: 1056, 448, 256, 32 + bounds: 1408, 0, 256, 32 bulletGa/bulletGa005 - bounds: 1312, 328, 256, 32 + bounds: 896, 320, 256, 32 bulletGa/bulletGa006 - bounds: 1568, 160, 256, 32 + bounds: 1152, 64, 256, 32 bulletGa/bulletGa007 - bounds: 1056, 480, 256, 32 + bounds: 1408, 32, 256, 32 bulletGa/bulletGa008 - bounds: 1312, 360, 256, 32 + bounds: 1664, 0, 256, 32 bulletGa/bulletGa009 - bounds: 1568, 192, 256, 32 + bounds: 896, 352, 256, 32 bulletGa/bulletGa010 - bounds: 1312, 392, 256, 32 + bounds: 1152, 96, 256, 32 bulletGa/bulletGa011 - bounds: 1568, 224, 256, 32 + bounds: 1408, 64, 256, 32 bulletGa/bulletGa012 - bounds: 1312, 424, 256, 32 + bounds: 1664, 32, 256, 32 bulletGa/bulletGa013 - bounds: 1568, 256, 256, 32 + bounds: 896, 384, 256, 32 bulletGa/bulletGa014 - bounds: 1312, 456, 256, 32 + bounds: 1152, 128, 256, 32 bulletGb/bulletGb000 - bounds: 1568, 288, 256, 32 + bounds: 1408, 96, 256, 32 crash/crash000 - bounds: 256, 3349, 128, 128 + bounds: 837, 1790, 53, 103 + offsets: 37, 12, 128, 128 crash/crash001 - bounds: 384, 3093, 128, 128 + bounds: 1542, 1078, 64, 101 + offsets: 29, 13, 128, 128 crash/crash002 - bounds: 512, 2965, 128, 128 + bounds: 1876, 539, 65, 101 + offsets: 28, 13, 128, 128 crash/crash003 - bounds: 640, 2581, 128, 128 + bounds: 830, 1907, 53, 103 + offsets: 37, 12, 128, 128 dashBack/dashBack000 - bounds: 384, 3221, 128, 128 + bounds: 1231, 1746, 63, 93 + offsets: 29, 22, 128, 128 dashBack/dashBack001 - bounds: 512, 3093, 128, 128 + bounds: 1606, 1383, 63, 92 + offsets: 34, 22, 128, 128 dashBack/dashBack002 - bounds: 640, 2709, 128, 128 + bounds: 1292, 869, 73, 96 + offsets: 30, 17, 128, 128 dashBack/dashBack003 - bounds: 384, 3349, 128, 128 + bounds: 775, 1414, 74, 96 + offsets: 29, 17, 128, 128 dashFront/dashFront000 - bounds: 512, 3221, 128, 128 + bounds: 1446, 1841, 61, 94 + offsets: 47, 11, 128, 128 dashFront/dashFront001 - bounds: 640, 2837, 128, 128 + bounds: 1876, 350, 74, 88 + offsets: 40, 11, 128, 128 dashFront/dashFront002 - bounds: 512, 3349, 128, 128 + bounds: 1086, 1069, 80, 78 + offsets: 38, 11, 128, 128 dashFront/dashFront003 - bounds: 640, 2965, 128, 128 + bounds: 1139, 1164, 80, 77 + offsets: 38, 11, 128, 128 dashFront/dashFront004 - bounds: 640, 3093, 128, 128 + bounds: 1929, 1419, 53, 89 + offsets: 47, 13, 128, 128 dashFront/dashFront005 - bounds: 640, 3221, 128, 128 + bounds: 1947, 970, 52, 93 + offsets: 47, 11, 128, 128 dashFront/dashFront006 - bounds: 640, 3349, 128, 128 + bounds: 1445, 1495, 49, 97 + offsets: 45, 11, 128, 128 dashFrontAir/dashFrontAir000 - bounds: 1720, 384, 128, 128 + bounds: 771, 1907, 59, 101 + offsets: 38, 7, 128, 128 down/down000 - bounds: 1848, 384, 128, 128 + bounds: 1917, 1143, 56, 93 + offsets: 36, 4, 128, 128 down/down001 - bounds: 1715, 512, 128, 128 + bounds: 1728, 1643, 61, 74 + offsets: 30, 4, 128, 128 down/down002 - bounds: 1843, 512, 128, 128 + bounds: 1279, 1331, 80, 68 + offsets: 24, 4, 128, 128 down/down003 - bounds: 832, 514, 128, 128 + bounds: 1566, 1565, 66, 94 + offsets: 24, 2, 128, 128 down/down004 - bounds: 960, 514, 128, 128 + bounds: 729, 1583, 59, 98 + offsets: 32, 17, 128, 128 down/down005 - bounds: 1088, 512, 128, 128 + bounds: 1345, 1423, 82, 73 + offsets: 25, 19, 128, 128 down/down006 - bounds: 768, 661, 128, 128 + bounds: 1301, 819, 95, 50 + offsets: 20, 13, 128, 128 down/down007 - bounds: 768, 789, 128, 128 + bounds: 1370, 654, 105, 38 + offsets: 15, 10, 128, 128 down/down008 - bounds: 768, 917, 128, 128 + bounds: 1475, 654, 104, 38 + offsets: 15, 11, 128, 128 emotionAa/emotionAa000 - bounds: 1976, 367, 72, 100 + bounds: 200, 1948, 69, 99 + offsets: 3, 0, 72, 100 emotionAa/emotionAa001 - bounds: 1976, 467, 72, 100 + bounds: 1686, 207, 69, 99 + offsets: 3, 0, 72, 100 emotionBa/emotionBa000 - bounds: 1216, 512, 64, 128 + bounds: 976, 983, 48, 105 + offsets: 16, 11, 64, 128 face/face000 - bounds: 1312, 488, 160, 64 + bounds: 762, 987, 127, 60 + offsets: 0, 4, 160, 64 Guard/Guard000 - bounds: 0, 1429, 128, 256 + bounds: 0, 448, 128, 256 guardBUnder/guardBUnder000 - bounds: 768, 1045, 128, 128 + bounds: 1942, 1673, 57, 76 + offsets: 31, 11, 128, 128 guardBUnder/guardBUnder001 - bounds: 768, 1173, 128, 128 + bounds: 1892, 970, 55, 77 + offsets: 33, 11, 128, 128 guardBUpper/guardBUpper000 - bounds: 768, 1301, 128, 128 + bounds: 1602, 1179, 56, 99 + offsets: 27, 11, 128, 128 guardBUpper/guardBUpper001 - bounds: 768, 1429, 128, 128 + bounds: 1542, 981, 57, 97 + offsets: 26, 11, 128, 128 guardSit/guardSit000 - bounds: 768, 1557, 128, 128 + bounds: 1857, 96, 93, 110 + offsets: 35, 18, 128, 128 guardSit/guardSit001 - bounds: 768, 1685, 128, 128 + bounds: 244, 1755, 90, 110 + offsets: 38, 18, 128, 128 guardUnder/guardUnder000 - bounds: 768, 1813, 128, 128 + bounds: 1765, 96, 92, 111 + offsets: 36, 0, 128, 128 guardUnder/guardUnder001 - bounds: 768, 1941, 128, 128 + bounds: 1672, 96, 93, 111 + offsets: 35, 0, 128, 128 guardUpper/guardUpper000 - bounds: 768, 2069, 128, 128 + bounds: 384, 1337, 93, 117 + offsets: 35, 11, 128, 128 guardUpper/guardUpper001 - bounds: 768, 2197, 128, 128 + bounds: 640, 1065, 92, 117 + offsets: 36, 11, 128, 128 hitAir/hitAir000 - bounds: 768, 2325, 128, 128 + bounds: 1294, 1739, 52, 102 + offsets: 36, 15, 128, 128 hitAir/hitAir001 - bounds: 768, 2453, 128, 128 + bounds: 646, 1757, 59, 98 + offsets: 32, 26, 128, 128 hitAir/hitAir002 - bounds: 768, 2581, 128, 128 + bounds: 1712, 599, 80, 82 + offsets: 20, 31, 128, 128 hitAir/hitAir003 - bounds: 768, 2709, 128, 128 + bounds: 1279, 1496, 89, 50 + offsets: 14, 45, 128, 128 hitAir/hitAir004 - bounds: 768, 2837, 128, 128 + bounds: 849, 1345, 85, 75 + offsets: 22, 32, 128, 128 hitAir/hitAir005 - bounds: 768, 2965, 128, 128 + bounds: 1219, 1165, 72, 88 + offsets: 26, 22, 128, 128 hitAir/hitAir006 - bounds: 768, 3093, 128, 128 + bounds: 403, 1941, 57, 106 + offsets: 35, 14, 128, 128 hitAir/hitAir007 - bounds: 768, 3221, 128, 128 + bounds: 447, 1755, 51, 107 + offsets: 42, 11, 128, 128 hitAir/hitAir008 - bounds: 768, 3349, 128, 128 + bounds: 498, 1755, 50, 107 + offsets: 39, 11, 128, 128 hitSit/hitSit000 - bounds: 1984, 2082, 64, 74 + bounds: 1445, 1592, 60, 72 + offsets: 0, 0, 64, 74 hitSit/hitSit001 - bounds: 1984, 2156, 64, 74 + bounds: 1542, 1909, 61, 74 + offsets: 2, 0, 64, 74 hitSit/hitSit002 - bounds: 1886, 1398, 64, 74 + bounds: 1789, 1651, 53, 74 + offsets: 11, 0, 64, 74 hitSpin/hitSpin000 - bounds: 1024, 642, 64, 128 + bounds: 1188, 1546, 52, 96 + offsets: 7, 13, 64, 128 hitSpin/hitSpin001 - bounds: 896, 642, 128, 128 + bounds: 771, 1144, 80, 97 + offsets: 18, 13, 128, 128 hitSpin/hitSpin002 - bounds: 1024, 770, 64, 128 + bounds: 890, 1661, 64, 95 + offsets: 0, 13, 64, 128 hitSpin/hitSpin003 - bounds: 1216, 640, 64, 128 + bounds: 665, 1583, 64, 98 + offsets: 0, 13, 64, 128 hitSpin/hitSpin004 - bounds: 1024, 898, 64, 128 + bounds: 1866, 1244, 52, 97 + offsets: 0, 13, 64, 128 hitSpin/hitSpin005 - bounds: 896, 770, 128, 128 + bounds: 1920, 0, 79, 96 + offsets: 17, 13, 128, 128 hitUnder/hitUnder000 - bounds: 896, 898, 128, 128 + bounds: 1505, 1573, 61, 92 + offsets: 28, 11, 128, 128 hitUnder/hitUnder001 - bounds: 896, 1026, 128, 128 + bounds: 508, 1592, 56, 99 + offsets: 33, 12, 128, 128 hitUnder/hitUnder002 - bounds: 896, 1154, 128, 128 + bounds: 1231, 1642, 53, 104 + offsets: 37, 11, 128, 128 hitUpper/hitUpper000 - bounds: 896, 1282, 128, 128 + bounds: 1755, 207, 77, 98 + offsets: 20, 13, 128, 128 hitUpper/hitUpper001 - bounds: 896, 1410, 128, 128 + bounds: 1538, 1179, 64, 99 + offsets: 29, 13, 128, 128 hitUpper/hitUpper002 - bounds: 896, 1538, 128, 128 + bounds: 1654, 1042, 53, 102 + offsets: 37, 12, 128, 128 invin/invin000 - bounds: 1747, 2981, 4, 4 + bounds: 1872, 539, 4, 4 jump/jump000 - bounds: 896, 1666, 128, 128 + bounds: 1485, 1075, 57, 103 + offsets: 35, 10, 128, 128 jump/jump001 - bounds: 896, 1794, 128, 128 + bounds: 564, 1592, 54, 99 + offsets: 36, 14, 128, 128 jump/jump002 - bounds: 896, 1922, 128, 128 + bounds: 1310, 1546, 58, 91 + offsets: 37, 19, 128, 128 jump/jump003 - bounds: 896, 2050, 128, 128 + bounds: 1842, 1645, 53, 80 + offsets: 36, 28, 128, 128 jump/jump004 - bounds: 896, 2178, 128, 128 + bounds: 1427, 1413, 55, 82 + offsets: 38, 29, 128, 128 jump/jump005 - bounds: 896, 2306, 128, 128 + bounds: 1918, 1236, 56, 93 + offsets: 37, 23, 128, 128 jump/jump006 - bounds: 896, 2434, 128, 128 + bounds: 1292, 965, 66, 102 + offsets: 36, 19, 128, 128 jump/jump007 - bounds: 896, 2562, 128, 128 + bounds: 1237, 677, 68, 108 + offsets: 36, 15, 128, 128 jump/jump008 - bounds: 896, 2690, 128, 128 + bounds: 577, 1335, 70, 108 + offsets: 34, 15, 128, 128 objectAa/objectAa000 - bounds: 1964, 3456, 33, 46 + bounds: 1907, 1843, 33, 46 objectAa/objectAa001 - bounds: 2000, 2858, 33, 46 + bounds: 1881, 1963, 33, 46 objectAa/objectAa002 - bounds: 2000, 2904, 33, 46 + bounds: 1914, 1963, 33, 46 objectAa/objectAa003 - bounds: 2009, 3152, 33, 46 + bounds: 1966, 1792, 33, 46 objectAb/objectAb000 - bounds: 1779, 2931, 38, 37 + bounds: 1715, 1938, 38, 37 objectAb/objectAb001 - bounds: 648, 3477, 38, 37 + bounds: 1753, 1938, 38, 37 objectAc/objectAc000 - bounds: 1652, 847, 41, 46 + bounds: 1834, 304, 38, 46 + offsets: 3, 0, 41, 46 objectAc/objectAc001 - bounds: 1987, 3344, 41, 46 + bounds: 1910, 1047, 37, 46 + offsets: 4, 0, 41, 46 objectAc/objectAc002 - bounds: 1987, 3390, 41, 46 + bounds: 1834, 350, 41, 46 objectAc/objectAc003 - bounds: 1999, 2674, 41, 46 + bounds: 1402, 1640, 41, 46 objectAd/objectAd000 - bounds: 1707, 2949, 40, 36 + bounds: 1832, 268, 40, 36 objectAd/objectAd001 - bounds: 608, 3477, 40, 37 + bounds: 1011, 1841, 40, 37 objectAd/objectAd002 - bounds: 1817, 3130, 64, 48 + bounds: 590, 1544, 64, 48 objectAd/objectAd003 - bounds: 1923, 3408, 64, 48 + bounds: 913, 1999, 64, 48 objectAd/objectAd004 - bounds: 458, 3477, 49, 43 + bounds: 1894, 1757, 49, 43 objectAd/objectAd005 - bounds: 352, 3477, 53, 43 + bounds: 1796, 1972, 53, 43 objectAd/objectAd006 - bounds: 507, 3477, 49, 43 + bounds: 1884, 1800, 49, 43 objectAd/objectAd007 - bounds: 405, 3477, 53, 43 + bounds: 1943, 1749, 53, 43 objectAe/objectAe000 - bounds: 1895, 2338, 71, 46 + bounds: 519, 1546, 71, 46 objectAe/objectAe001 - bounds: 1675, 2739, 71, 46 + bounds: 766, 1861, 71, 46 objectAe/objectAe002 - bounds: 214, 3477, 69, 44 + bounds: 404, 1555, 69, 44 objectAe/objectAe003 - bounds: 283, 3477, 69, 44 + bounds: 1791, 1928, 69, 44 objectAe/objectAe004 - bounds: 1558, 2881, 52, 37 + bounds: 809, 2010, 52, 37 objectAe/objectAe005 - bounds: 556, 3477, 52, 37 + bounds: 861, 2010, 52, 37 objectAf/objectAf000 - bounds: 1634, 2985, 38, 39 + bounds: 771, 2008, 38, 39 objectAg/objectAg000 - bounds: 1918, 3456, 46, 46 + bounds: 1402, 1686, 46, 46 objectAg/objectAg001 - bounds: 1999, 2720, 46, 46 + bounds: 1860, 1917, 46, 46 objectAg/objectAg002 - bounds: 2000, 2766, 46, 46 + bounds: 1942, 1881, 46, 46 objectAg/objectAg003 - bounds: 2000, 2812, 46, 46 + bounds: 1841, 811, 46, 46 objectAg/objectAg004 - bounds: 1755, 3449, 64, 63 + bounds: 0, 1984, 64, 63 objectAg/objectAg005 - bounds: 1819, 3447, 64, 62 + bounds: 64, 1984, 64, 62 objectAh/objectAh000 - bounds: 1472, 2878, 86, 43 + bounds: 654, 1540, 86, 43 objectAh/objectAh001 - bounds: 128, 3477, 86, 43 + bounds: 889, 1520, 86, 43 objectAi/objectAi000 - bounds: 686, 3477, 36, 44 + bounds: 1556, 1665, 36, 44 objectAi/objectAi001 - bounds: 2014, 1406, 34, 44 + bounds: 1592, 1659, 34, 44 objectAj/objectAj000 - bounds: 1643, 2764, 32, 43 + bounds: 1849, 1972, 32, 43 objectAj/objectAj001 - bounds: 792, 3477, 33, 43 + bounds: 1933, 1800, 33, 43 objectAj/objectAj002 - bounds: 858, 3477, 32, 43 + bounds: 1626, 1670, 32, 43 objectAj/objectAj003 - bounds: 825, 3477, 33, 43 + bounds: 1966, 1838, 33, 43 objectAk/objectAk000 - bounds: 722, 3477, 35, 42 + bounds: 1907, 1715, 35, 42 objectAk/objectAk001 - bounds: 757, 3477, 35, 42 + bounds: 1907, 1889, 35, 42 objectAl/objectAl000 - bounds: 1992, 2625, 47, 49 + bounds: 618, 1696, 47, 49 objectAl/objectAl001 - bounds: 1884, 1152, 51, 56 + bounds: 1424, 1357, 51, 56 objectAl/objectAl002 - bounds: 1992, 2456, 50, 55 + bounds: 970, 1088, 50, 55 objectAl/objectAl003 - bounds: 1992, 2511, 46, 55 + bounds: 1448, 1664, 46, 55 objectAl/objectAl004 - bounds: 1938, 896, 46, 59 + bounds: 1893, 891, 46, 59 objectAl/objectAl005 - bounds: 1992, 2566, 42, 59 + bounds: 576, 1691, 42, 59 objectAm/objectAm000 - bounds: 1883, 3445, 35, 47 + bounds: 1910, 1093, 35, 47 objectAm/objectAm001 - bounds: 1948, 1568, 33, 48 + bounds: 1256, 522, 33, 48 objectAn/objectAn000 - bounds: 1464, 3024, 45, 7 + bounds: 1841, 857, 45, 7 objectBa/objectBa000 - bounds: 800, 512, 256, 2 + bounds: 1152, 160, 256, 2 objectBa/objectBa001 - bounds: 1568, 320, 256, 32 + bounds: 1664, 64, 256, 32 objectCa/objectCa000 - bounds: 1652, 1413, 116, 98 + bounds: 128, 1850, 116, 98 objectCa/objectCa001 - bounds: 1216, 768, 90, 102 + bounds: 500, 1224, 90, 102 objectCa/objectCa002 - bounds: 1462, 3393, 68, 99 + bounds: 932, 1421, 68, 99 objectCa/objectCa003 - bounds: 1992, 2358, 55, 98 + bounds: 1654, 846, 55, 98 objectCa/objectCa004 - bounds: 1952, 259, 94, 108 + bounds: 1304, 264, 94, 108 objectCa/objectCa005 - bounds: 1344, 2912, 120, 119 + bounds: 1152, 266, 120, 119 objectCa/objectCa006 - bounds: 1344, 3031, 116, 122 + bounds: 128, 1728, 116, 122 objectCa/objectCa007 - bounds: 1344, 3153, 116, 121 + bounds: 256, 1472, 116, 121 objectCb/objectCb000 - bounds: 1344, 3274, 116, 121 + bounds: 384, 1216, 116, 121 objectCb/objectCb001 - bounds: 1952, 0, 90, 129 + bounds: 640, 936, 90, 129 objectCb/objectCb002 - bounds: 1952, 129, 88, 130 + bounds: 1152, 385, 88, 130 objectCb/objectCb003 - bounds: 1652, 1312, 116, 101 + bounds: 1024, 576, 116, 101 objectCb/objectCb004 - bounds: 1568, 384, 152, 104 + bounds: 1152, 162, 152, 104 objectCb/objectCb005 - bounds: 1472, 488, 146, 86 + bounds: 1408, 128, 146, 86 objectCb/objectCb006 - bounds: 1652, 2128, 118, 85 + bounds: 1024, 677, 118, 85 objectCb/objectCb007 - bounds: 1768, 1405, 118, 87 + bounds: 1554, 128, 118, 87 objectCb/objectCb008 - bounds: 1344, 3395, 118, 87 + bounds: 888, 768, 118, 87 objectCb/objectCb009 - bounds: 1884, 1308, 71, 90 + bounds: 1358, 1062, 71, 90 objectCb/objectCb010 - bounds: 1652, 1511, 104, 102 + bounds: 1304, 162, 104, 102 objectCb/objectCb011 - bounds: 1768, 1208, 120, 99 + bounds: 768, 768, 120, 99 objectCb/objectCb012 - bounds: 1768, 1307, 116, 98 + bounds: 256, 1593, 116, 98 redAura/redAura000 - bounds: 1997, 3436, 32, 32 + bounds: 1924, 2009, 32, 32 shotAa/shotAa000 - bounds: 1024, 1026, 64, 128 + bounds: 513, 1941, 51, 105 + offsets: 13, 11, 64, 128 shotAa/shotAa001 - bounds: 1024, 1154, 64, 128 + bounds: 1171, 1336, 46, 105 + offsets: 18, 11, 64, 128 shotAa/shotAa002 - bounds: 1024, 1282, 64, 128 + bounds: 548, 1755, 48, 105 + offsets: 16, 11, 64, 128 shotAa/shotAa003 - bounds: 1024, 1410, 64, 128 + bounds: 1431, 869, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa004 - bounds: 1024, 1538, 64, 128 + bounds: 621, 1941, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa005 - bounds: 1024, 1666, 64, 128 + bounds: 596, 1750, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa006 - bounds: 1024, 1794, 64, 128 + bounds: 671, 1941, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa007 - bounds: 1024, 1922, 64, 128 + bounds: 954, 1563, 46, 105 + offsets: 18, 11, 64, 128 shotAa/shotAa008 - bounds: 1024, 2050, 64, 128 + bounds: 1632, 1565, 46, 105 + offsets: 18, 11, 64, 128 shotAa/shotAa009 - bounds: 1024, 2178, 64, 128 + bounds: 1024, 855, 62, 105 + offsets: 2, 11, 64, 128 shotAa/shotAa010 - bounds: 1024, 2306, 64, 128 + bounds: 954, 1668, 50, 105 + offsets: 14, 11, 64, 128 shotAb/shotAb000 - bounds: 1024, 2434, 64, 128 + bounds: 1947, 1063, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb001 - bounds: 1024, 2562, 64, 128 + bounds: 1504, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb002 - bounds: 1024, 2690, 64, 128 + bounds: 1507, 1829, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb003 - bounds: 1024, 2818, 64, 128 + bounds: 1556, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb004 - bounds: 1024, 2946, 64, 128 + bounds: 1559, 1829, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb005 - bounds: 1024, 3074, 64, 128 + bounds: 1608, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb006 - bounds: 1024, 3202, 64, 128 + bounds: 1611, 1829, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb007 - bounds: 1024, 3330, 64, 128 + bounds: 1940, 813, 59, 80 + offsets: 0, 11, 64, 128 shotAb/shotAb008 - bounds: 1472, 830, 64, 128 + bounds: 1660, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAc/shotAc000 - bounds: 1984, 567, 64, 103 + bounds: 1603, 1909, 54, 74 + offsets: 10, 0, 64, 103 shotAc/shotAc001 - bounds: 1984, 670, 64, 103 + bounds: 1126, 1550, 62, 92 + offsets: 2, 0, 64, 103 shotAc/shotAc002 - bounds: 1984, 773, 64, 103 + bounds: 1384, 1841, 62, 94 + offsets: 0, 2, 64, 103 shotAc/shotAc003 - bounds: 1984, 876, 64, 103 + bounds: 1709, 854, 62, 91 + offsets: 0, 3, 64, 103 shotAc/shotAc004 - bounds: 1984, 1876, 64, 103 + bounds: 1341, 1640, 61, 97 + offsets: 1, 0, 64, 103 shotAc/shotAc005 - bounds: 1984, 1979, 64, 103 + bounds: 1770, 956, 61, 91 + offsets: 0, 3, 64, 103 shotAd/shotAd000 - bounds: 1472, 958, 64, 128 + bounds: 1121, 1949, 56, 98 + offsets: 7, 13, 64, 128 shotAd/shotAd001 - bounds: 1472, 1086, 64, 128 + bounds: 390, 1755, 57, 107 + offsets: 6, 4, 64, 128 shotAd/shotAd002 - bounds: 1472, 1214, 64, 128 + bounds: 590, 1224, 56, 111 + offsets: 5, 0, 64, 128 shotAd/shotAd003 - bounds: 1472, 1342, 64, 128 + bounds: 714, 1192, 57, 111 + offsets: 3, 0, 64, 128 shotAd/shotAd004 - bounds: 1472, 1470, 64, 128 + bounds: 1086, 762, 56, 111 + offsets: 5, 0, 64, 128 shotAd/shotAd005 - bounds: 1472, 1598, 64, 128 + bounds: 714, 1303, 57, 111 + offsets: 3, 0, 64, 128 shotAd/shotAd006 - bounds: 1472, 1726, 64, 128 + bounds: 334, 1755, 56, 110 + offsets: 5, 1, 64, 128 shotAd/shotAd007 - bounds: 1472, 1854, 64, 128 + bounds: 564, 1941, 57, 105 + offsets: 6, 6, 64, 128 shotAd/shotAd008 - bounds: 1472, 1982, 64, 128 + bounds: 1217, 1327, 62, 97 + offsets: 0, 14, 64, 128 shotAd/shotAd009 - bounds: 1472, 2110, 64, 128 + bounds: 1927, 1329, 55, 90 + offsets: 5, 21, 64, 128 shotBa/shotBa000 - bounds: 896, 2818, 128, 128 + bounds: 927, 1148, 69, 93 + offsets: 18, 11, 128, 128 shotBa/shotBa001 - bounds: 896, 2946, 128, 128 + bounds: 1872, 736, 69, 69 + offsets: 18, 11, 128, 128 shotBa/shotBa002 - bounds: 896, 3074, 128, 128 + bounds: 818, 1520, 71, 61 + offsets: 17, 11, 128, 128 shotBa/shotBa003 - bounds: 896, 3202, 128, 128 + bounds: 1779, 406, 65, 65 + offsets: 17, 11, 128, 128 shotBa/shotBa004 - bounds: 896, 3330, 128, 128 + bounds: 771, 1342, 78, 72 + offsets: 13, 11, 128, 128 shotBa/shotBa005 - bounds: 1312, 552, 128, 128 + bounds: 1368, 1563, 77, 77 + offsets: 16, 12, 128, 128 shotBa/shotBa006 - bounds: 1440, 574, 128, 128 + bounds: 1024, 1058, 62, 87 + offsets: 26, 12, 128, 128 shotBa/shotBa007 - bounds: 1088, 640, 128, 128 + bounds: 1024, 960, 62, 98 + offsets: 35, 12, 128, 128 shotBa/shotBa008 - bounds: 1088, 768, 128, 128 + bounds: 1093, 1848, 57, 101 + offsets: 39, 11, 128, 128 shotBa/shotBa009 - bounds: 1312, 680, 128, 128 + bounds: 1173, 1441, 55, 105 + offsets: 41, 11, 128, 128 shotBa/shotBa010 - bounds: 1440, 702, 128, 128 + bounds: 460, 1941, 53, 106 + offsets: 41, 11, 128, 128 shotBa/shotBa011 - bounds: 1568, 591, 128, 128 + bounds: 1126, 1442, 47, 108 + offsets: 38, 11, 128, 128 shotBa/shotBa012 - bounds: 1568, 719, 128, 128 + bounds: 1678, 1563, 50, 103 + offsets: 37, 11, 128, 128 shotBa/shotBa013 - bounds: 1696, 640, 128, 128 + bounds: 1399, 1737, 51, 104 + offsets: 37, 11, 128, 128 shotBa/shotBa014 - bounds: 1824, 640, 128, 128 + bounds: 1606, 1278, 55, 105 + offsets: 31, 11, 128, 128 shotBb/shotBb000 - bounds: 1696, 768, 128, 128 + bounds: 1532, 794, 55, 83 + offsets: 36, 30, 128, 128 shotBb/shotBb001 - bounds: 1824, 768, 128, 128 + bounds: 1359, 1351, 65, 72 + offsets: 28, 35, 128, 128 shotBb/shotBb002 - bounds: 1088, 896, 128, 128 + bounds: 776, 1791, 61, 70 + offsets: 30, 31, 128, 128 shotBb/shotBb003 - bounds: 1216, 870, 128, 128 + bounds: 1494, 1665, 62, 61 + offsets: 31, 39, 128, 128 shotBb/shotBb004 - bounds: 1088, 1024, 128, 128 + bounds: 1734, 1975, 62, 61 + offsets: 28, 39, 128, 128 shotBb/shotBb005 - bounds: 1216, 998, 128, 128 + bounds: 910, 1086, 60, 62 + offsets: 29, 42, 128, 128 shotBb/shotBb006 - bounds: 1088, 1152, 128, 128 + bounds: 1657, 1909, 58, 70 + offsets: 32, 37, 128, 128 shotCa/shotCa000 - bounds: 1216, 1126, 128, 128 + bounds: 1228, 1424, 51, 105 + offsets: 35, 11, 128, 128 shotCa/shotCa001 - bounds: 1088, 1280, 128, 128 + bounds: 837, 1685, 53, 105 + offsets: 33, 11, 128, 128 shotCa/shotCa002 - bounds: 1216, 1254, 128, 128 + bounds: 721, 1940, 50, 105 + offsets: 34, 11, 128, 128 shotCa/shotCa003 - bounds: 1088, 1408, 128, 128 + bounds: 943, 1894, 50, 105 + offsets: 34, 11, 128, 128 shotCa/shotCa004 - bounds: 1216, 1382, 128, 128 + bounds: 1057, 1640, 51, 105 + offsets: 35, 11, 128, 128 shotCa/shotCa005 - bounds: 1088, 1536, 128, 128 + bounds: 960, 1773, 51, 105 + offsets: 35, 11, 128, 128 shotCb/shotCb000 - bounds: 1216, 1510, 128, 128 + bounds: 1450, 1749, 54, 80 + offsets: 18, 19, 128, 128 shotCb/shotCb001 - bounds: 1088, 1664, 128, 128 + bounds: 577, 1860, 63, 81 + offsets: 13, 19, 128, 128 shotCb/shotCb002 - bounds: 1216, 1638, 128, 128 + bounds: 408, 1862, 63, 79 + offsets: 19, 19, 128, 128 shotCb/shotCb003 - bounds: 1088, 1792, 128, 128 + bounds: 1197, 1253, 82, 74 + offsets: 27, 19, 128, 128 shotCb/shotCb004 - bounds: 1216, 1766, 128, 128 + bounds: 665, 1681, 71, 76 + offsets: 27, 19, 128, 128 shotCb/shotCb005 - bounds: 1088, 1920, 128, 128 + bounds: 1588, 768, 67, 76 + offsets: 28, 19, 128, 128 shotCb/shotCb006 - bounds: 1216, 1894, 128, 128 + bounds: 1942, 1595, 57, 78 + offsets: 27, 19, 128, 128 shotCb/shotCb007 - bounds: 1088, 2048, 128, 128 + bounds: 1663, 1829, 52, 80 + offsets: 23, 19, 128, 128 shotCb/shotCb008 - bounds: 1216, 2022, 128, 128 + bounds: 526, 1862, 51, 79 + offsets: 23, 19, 128, 128 shotDa/shotDa000 - bounds: 1768, 1000, 116, 104 + bounds: 1449, 692, 83, 81 + offsets: 31, 0, 116, 104 shotDa/shotDa001 - bounds: 1652, 1208, 116, 104 + bounds: 1368, 692, 81, 84 + offsets: 30, 0, 116, 104 shotDa/shotDa002 - bounds: 1768, 1104, 116, 104 + bounds: 1408, 776, 73, 93 + offsets: 22, 0, 116, 104 sit/sit000 - bounds: 1877, 2004, 54, 106 + bounds: 1177, 1737, 54, 97 + offsets: 0, 1, 54, 106 sit/sit001 - bounds: 1460, 3287, 54, 106 + bounds: 1940, 1508, 54, 87 + offsets: 0, 1, 54, 106 sit/sit002 - bounds: 1514, 3280, 54, 106 + bounds: 1712, 1717, 54, 78 + offsets: 0, 2, 54, 106 sit/sit003 - bounds: 1530, 3386, 54, 106 + bounds: 1715, 1795, 51, 79 + offsets: 0, 1, 54, 106 sit/sit004 - bounds: 1568, 3280, 54, 106 + bounds: 1895, 1631, 47, 84 + offsets: 2, 2, 54, 106 sit/sit005 - bounds: 1584, 3386, 54, 106 + bounds: 1893, 1536, 47, 95 + offsets: 2, 1, 54, 106 sit/sit006 - bounds: 1622, 3280, 54, 106 + bounds: 1676, 1459, 48, 104 + offsets: 0, 1, 54, 106 spellAa/spellAa000 - bounds: 1919, 2696, 80, 98 + bounds: 1941, 715, 58, 98 + offsets: 19, 0, 80, 98 spellAa/spellAa001 - bounds: 1955, 1308, 80, 98 + bounds: 890, 1563, 64, 98 + offsets: 15, 0, 80, 98 spellAa/spellAa002 - bounds: 1960, 1470, 80, 98 + bounds: 1059, 1241, 69, 98 + offsets: 11, 0, 80, 98 spellAa/spellAa003 - bounds: 1763, 3349, 80, 98 + bounds: 1225, 1067, 68, 98 + offsets: 12, 0, 80, 98 spellAa/spellAa004 - bounds: 1820, 3249, 80, 98 + bounds: 1654, 944, 55, 98 + offsets: 19, 0, 80, 98 spellAa/spellAa005 - bounds: 1843, 3347, 80, 98 + bounds: 1260, 1841, 62, 95 + offsets: 10, 0, 80, 98 spellAa/spellAa006 - bounds: 1761, 2735, 80, 98 + bounds: 1606, 1475, 70, 90 + offsets: 0, 0, 80, 98 spellAa/spellAa007 - bounds: 1840, 2836, 80, 98 + bounds: 372, 1600, 70, 91 + offsets: 0, 0, 80, 98 spellAa/spellAa008 - bounds: 1920, 2794, 80, 98 + bounds: 1128, 1241, 69, 95 + offsets: 3, 0, 80, 98 spellAa/spellAa009 - bounds: 1920, 2892, 80, 98 + bounds: 1755, 1047, 55, 98 + offsets: 13, 0, 80, 98 spellAa/spellAa010 - bounds: 1817, 2934, 80, 98 + bounds: 1858, 1047, 52, 98 + offsets: 24, 0, 80, 98 spellAa/spellAa011 - bounds: 1817, 3032, 80, 98 + bounds: 1240, 1546, 70, 91 + offsets: 0, 0, 80, 98 spellBa/spellBa000 - bounds: 1088, 2176, 128, 128 + bounds: 788, 1687, 49, 104 + offsets: 41, 11, 128, 128 spellBa/spellBa001 - bounds: 1216, 2150, 128, 128 + bounds: 1283, 1936, 57, 100 + offsets: 35, 12, 128, 128 spellBa/spellBa002 - bounds: 1088, 2304, 128, 128 + bounds: 1778, 775, 63, 89 + offsets: 30, 12, 128, 128 spellBa/spellBa003 - bounds: 1216, 2278, 128, 128 + bounds: 1479, 1282, 62, 84 + offsets: 36, 12, 128, 128 spellBa/spellBa004 - bounds: 1088, 2432, 128, 128 + bounds: 1864, 1145, 53, 99 + offsets: 38, 12, 128, 128 spellBa/spellBa005 - bounds: 1216, 2406, 128, 128 + bounds: 1300, 561, 70, 107 + offsets: 30, 12, 128, 128 spellBa/spellBa006 - bounds: 1088, 2560, 128, 128 + bounds: 269, 1941, 68, 106 + offsets: 30, 12, 128, 128 spellBa/spellBa007 - bounds: 1216, 2534, 128, 128 + bounds: 337, 1941, 66, 106 + offsets: 30, 12, 128, 128 spellBa/spellBa008 - bounds: 1088, 2688, 128, 128 + bounds: 1000, 1539, 60, 101 + offsets: 35, 13, 128, 128 spellBa/spellBa009 - bounds: 1216, 2662, 128, 128 + bounds: 736, 1681, 52, 104 + offsets: 37, 11, 128, 128 spellBulletAa/spellBulletAa000 - bounds: 1312, 0, 256, 168 + bounds: 512, 0, 256, 168 spellBulletAa/spellBulletAa001 - bounds: 1088, 2816, 128, 128 + bounds: 128, 1600, 128, 128 spellBulletAa/spellBulletAa002 - bounds: 1216, 2790, 128, 128 + bounds: 256, 1344, 128, 128 spellBulletAa/spellBulletAa003 - bounds: 1088, 2944, 128, 128 + bounds: 384, 1088, 128, 128 spellBulletAa/spellBulletAa004 - bounds: 1216, 2918, 128, 128 + bounds: 512, 1064, 128, 128 spellBulletBa/spellBulletBa000 - bounds: 1088, 3072, 128, 128 + bounds: 640, 808, 128, 128 spellBulletCa/spellBulletCa000 - bounds: 256, 1173, 128, 256 + bounds: 256, 192, 128, 256 spellBulletCa/spellBulletCa001 - bounds: 0, 1685, 128, 256 + bounds: 0, 704, 128, 256 spellBulletCa/spellBulletCa002 - bounds: 128, 1429, 128, 256 + bounds: 128, 448, 128, 256 spellBulletCa/spellBulletCa003 - bounds: 384, 1173, 128, 256 + bounds: 384, 192, 128, 256 spellBulletCa/spellBulletCa004 - bounds: 512, 1045, 128, 256 + bounds: 512, 168, 128, 256 spellBulletCa/spellBulletCa005 - bounds: 0, 1941, 128, 256 + bounds: 0, 960, 128, 256 spellBulletCa/spellBulletCa006 - bounds: 128, 1685, 128, 256 + bounds: 128, 704, 128, 256 spellBulletCa/spellBulletCa007 - bounds: 256, 1429, 128, 256 + bounds: 256, 448, 128, 256 spellBulletCa/spellBulletCa008 - bounds: 640, 1045, 128, 256 + bounds: 640, 168, 128, 256 spellBulletCa/spellBulletCa009 - bounds: 0, 2197, 128, 256 + bounds: 768, 0, 128, 256 spellBulletCa/spellBulletCa010 - bounds: 128, 1941, 128, 256 + bounds: 0, 1216, 128, 256 spellBulletCa/spellBulletCa011 - bounds: 256, 1685, 128, 256 + bounds: 128, 960, 128, 256 spellBulletCa/spellBulletCa012 - bounds: 384, 1429, 128, 256 + bounds: 256, 704, 128, 256 spellBulletCa/spellBulletCa013 - bounds: 512, 1301, 128, 256 + bounds: 384, 448, 128, 256 spellBulletCa/spellBulletCa014 - bounds: 0, 2453, 128, 256 + bounds: 512, 424, 128, 256 spellBulletCa/spellBulletCa015 - bounds: 128, 2197, 128, 256 + bounds: 896, 0, 128, 256 spellBulletCa/spellBulletCa016 - bounds: 256, 1941, 128, 256 + bounds: 0, 1472, 128, 256 spellBulletCa/spellBulletCa017 - bounds: 384, 1685, 128, 256 + bounds: 128, 1216, 128, 256 spellBulletCa/spellBulletCa018 - bounds: 512, 1557, 128, 256 + bounds: 256, 960, 128, 256 spellBulletCa/spellBulletCa019 - bounds: 640, 1301, 128, 256 + bounds: 384, 704, 128, 256 spellBulletCa/spellBulletCa020 - bounds: 0, 2709, 128, 256 + bounds: 512, 680, 128, 256 spellBulletCa/spellBulletCa021 - bounds: 128, 2453, 128, 256 + bounds: 640, 424, 128, 256 spellBulletCa/spellBulletCa022 - bounds: 256, 2197, 128, 256 + bounds: 768, 256, 128, 256 spellBulletCa/spellBulletCa023 - bounds: 384, 1941, 128, 256 + bounds: 1024, 0, 128, 256 spellBulletCa/spellBulletCa024 - bounds: 512, 1813, 128, 256 + bounds: 0, 1728, 128, 256 spellBulletDa/spellBulletDa000 - bounds: 1216, 3046, 128, 128 + bounds: 768, 640, 128, 128 spellBulletDa/spellBulletDa001 - bounds: 1088, 3200, 128, 128 + bounds: 896, 576, 128, 128 spellBulletEa/spellBulletEa000 - bounds: 1568, 352, 256, 32 + bounds: 896, 416, 256, 32 spellBulletFa/spellBulletFa000 - bounds: 0, 533, 512, 128 + bounds: 0, 0, 512, 128 spellBulletFb/spellBulletFb000 - bounds: 1216, 3174, 128, 128 + bounds: 1024, 448, 128, 128 spellCa/spellCa000 - bounds: 1618, 488, 97, 103 + bounds: 1595, 844, 59, 97 + offsets: 26, 0, 97, 103 spellCa/spellCa001 - bounds: 1652, 1613, 97, 103 + bounds: 640, 1855, 63, 86 + offsets: 23, 0, 97, 103 spellCa/spellCa002 - bounds: 1652, 1716, 97, 103 + bounds: 705, 1785, 71, 71 + offsets: 19, 0, 97, 103 spellCa/spellCa003 - bounds: 1652, 1819, 97, 103 + bounds: 748, 1510, 70, 73 + offsets: 16, 0, 97, 103 spellCa/spellCa004 - bounds: 1652, 1922, 97, 103 + bounds: 703, 1856, 63, 84 + offsets: 20, 0, 97, 103 spellCa/spellCa005 - bounds: 1652, 2025, 97, 103 + bounds: 1011, 1745, 62, 96 + offsets: 15, 0, 97, 103 spellCa/spellCa006 - bounds: 1938, 1083, 97, 103 + bounds: 1322, 1841, 62, 95 + offsets: 14, 0, 97, 103 spellCa/spellCa007 - bounds: 1558, 2302, 97, 103 + bounds: 1167, 1642, 64, 95 + offsets: 13, 0, 97, 103 spellCa/spellCa008 - bounds: 1558, 2405, 97, 103 + bounds: 1541, 1470, 65, 95 + offsets: 13, 0, 97, 103 spellCall/spellCall000 - bounds: 1897, 2990, 80, 98 + bounds: 1810, 1047, 48, 98 + offsets: 32, 0, 80, 98 spellCall/spellCall001 - bounds: 1088, 3328, 128, 128 + bounds: 1073, 1745, 54, 103 + offsets: 41, 11, 128, 128 spellCall/spellCall002 - bounds: 1216, 3302, 128, 128 + bounds: 1479, 1178, 59, 104 + offsets: 39, 11, 128, 128 spellCall/spellCall003 - bounds: 1344, 864, 128, 128 + bounds: 853, 1241, 77, 104 + offsets: 20, 11, 128, 128 spellCall/spellCall004 - bounds: 1344, 992, 128, 128 + bounds: 910, 983, 66, 103 + offsets: 33, 11, 128, 128 spellCall/spellCall005 - bounds: 1344, 1120, 128, 128 + bounds: 1305, 668, 63, 108 + offsets: 32, 11, 128, 128 spellCall/spellCall006 - bounds: 1344, 1248, 128, 128 + bounds: 646, 1182, 68, 116 + offsets: 28, 11, 128, 128 spellCall/spellCall007 - bounds: 1344, 1376, 128, 128 + bounds: 509, 1326, 68, 116 + offsets: 27, 11, 128, 128 spellCall/spellCall008 - bounds: 1344, 1504, 128, 128 + bounds: 647, 1298, 67, 116 + offsets: 27, 11, 128, 128 spellCall/spellCall009 - bounds: 1344, 1632, 128, 128 + bounds: 1390, 1935, 55, 101 + offsets: 39, 11, 128, 128 spellCall/spellCall010 - bounds: 1344, 1760, 128, 128 + bounds: 1346, 1737, 53, 104 + offsets: 46, 11, 128, 128 spellCall/spellCall011 - bounds: 1344, 1888, 128, 128 + bounds: 1707, 1042, 48, 103 + offsets: 43, 11, 128, 128 spellCall/spellCall012 - bounds: 1344, 2016, 128, 128 + bounds: 1494, 1468, 47, 105 + offsets: 40, 11, 128, 128 spellDa/spellDa000 - bounds: 1888, 1208, 72, 100 + bounds: 1789, 1551, 52, 100 + offsets: 12, 0, 72, 100 spellDa/spellDa001 - bounds: 1673, 2985, 72, 100 + bounds: 1813, 1145, 51, 100 + offsets: 12, 0, 72, 100 spellDa/spellDa002 - bounds: 1673, 3085, 72, 100 + bounds: 1599, 941, 55, 99 + offsets: 13, 0, 72, 100 spellDa/spellDa003 - bounds: 1676, 3249, 72, 100 + bounds: 1293, 1067, 65, 100 + offsets: 7, 0, 72, 100 spellDa/spellDa004 - bounds: 1691, 3349, 72, 100 + bounds: 128, 1948, 72, 99 + offsets: 0, 0, 72, 100 spellDa/spellDa005 - bounds: 1707, 2849, 72, 100 + bounds: 1154, 970, 69, 99 + offsets: 3, 0, 72, 100 spellDa/spellDa006 - bounds: 1745, 2985, 72, 100 + bounds: 1223, 968, 69, 99 + offsets: 3, 0, 72, 100 spellDa/spellDa007 - bounds: 1745, 3085, 72, 100 + bounds: 883, 1894, 60, 100 + offsets: 11, 0, 72, 100 spellDa/spellDa008 - bounds: 1748, 3249, 72, 100 + bounds: 1841, 1545, 52, 100 + offsets: 12, 0, 72, 100 spellEa/spellEa000 - bounds: 1558, 2199, 85, 103 + bounds: 1059, 1339, 63, 103 + offsets: 1, 0, 85, 103 spellEa/spellEa001 - bounds: 1558, 2508, 85, 103 + bounds: 1482, 1366, 59, 102 + offsets: 3, 0, 85, 103 spellEa/spellEa002 - bounds: 1558, 2611, 85, 103 + bounds: 1284, 1637, 57, 102 + offsets: 5, 0, 85, 103 spellEa/spellEa003 - bounds: 1558, 2714, 85, 103 + bounds: 1359, 1152, 63, 103 + offsets: 6, 0, 85, 103 spellEa/spellEa004 - bounds: 1655, 2277, 85, 103 + bounds: 1153, 867, 69, 103 + offsets: 9, 0, 85, 103 spellEa/spellEa005 - bounds: 1655, 2380, 85, 103 + bounds: 1222, 866, 70, 102 + offsets: 10, 0, 85, 103 spellEa/spellEa006 - bounds: 1899, 2132, 85, 103 + bounds: 1872, 438, 69, 101 + offsets: 11, 0, 85, 103 spellEa/spellEa007 - bounds: 1900, 2235, 85, 103 + bounds: 1227, 583, 73, 94 + offsets: 10, 0, 85, 103 spellEa/spellEa008 - bounds: 1464, 2921, 85, 103 + bounds: 1712, 681, 75, 93 + offsets: 10, 0, 85, 103 spellEa/spellEa009 - bounds: 1549, 2921, 85, 103 + bounds: 1787, 683, 75, 92 + offsets: 10, 0, 85, 103 spellEa/spellEa010 - bounds: 1761, 2426, 85, 103 + bounds: 1067, 1147, 72, 94 + offsets: 10, 0, 85, 103 spellEa/spellEa011 - bounds: 1761, 2529, 85, 103 + bounds: 1279, 1399, 66, 97 + offsets: 11, 0, 85, 103 spellEa/spellEa012 - bounds: 1761, 2632, 85, 103 + bounds: 1201, 1839, 59, 99 + offsets: 12, 0, 85, 103 spellFa/spellFa000 - bounds: 1985, 1568, 61, 98 + bounds: 1877, 1341, 50, 98 + offsets: 11, 0, 61, 98 spellFa/spellFa001 - bounds: 1985, 1666, 61, 98 + bounds: 1177, 1949, 56, 98 + offsets: 5, 0, 61, 98 spellFa/spellFa002 - bounds: 1985, 1764, 61, 98 + bounds: 1771, 864, 61, 92 + offsets: 0, 0, 61, 98 spellFa/spellFa003 - bounds: 1841, 2738, 61, 98 + bounds: 1709, 945, 61, 92 + offsets: 0, 0, 61, 98 spellFa/spellFa004 - bounds: 1779, 2833, 61, 98 + bounds: 1831, 956, 61, 91 + offsets: 0, 0, 61, 98 spellFa/spellFa005 - bounds: 1977, 2990, 61, 98 + bounds: 1832, 864, 61, 91 + offsets: 0, 0, 61, 98 spellFa/spellFa006 - bounds: 1900, 3216, 61, 98 + bounds: 1728, 1551, 61, 92 + offsets: 0, 0, 61, 98 spellGa/spellGa000 - bounds: 1970, 979, 73, 104 + bounds: 1707, 1145, 53, 102 + offsets: 20, 0, 73, 104 spellGa/spellGa001 - bounds: 1846, 2426, 73, 104 + bounds: 1108, 1642, 59, 101 + offsets: 14, 0, 73, 104 spellGa/spellGa002 - bounds: 1846, 2530, 73, 104 + bounds: 1481, 975, 61, 100 + offsets: 12, 0, 73, 104 spellGa/spellGa003 - bounds: 1846, 2634, 73, 104 + bounds: 930, 1241, 66, 102 + offsets: 5, 0, 73, 104 spellGa/spellGa004 - bounds: 1634, 2881, 73, 104 + bounds: 404, 1454, 73, 101 + offsets: 0, 0, 73, 104 spellGa/spellGa005 - bounds: 1960, 1186, 73, 104 + bounds: 1761, 305, 73, 101 + offsets: 0, 0, 73, 104 spellGa/spellGa006 - bounds: 1919, 2384, 73, 104 + bounds: 577, 1443, 70, 101 + offsets: 0, 0, 73, 104 spellGa/spellGa007 - bounds: 1919, 2488, 73, 104 + bounds: 996, 1241, 63, 102 + offsets: 5, 0, 73, 104 spellGa/spellGa008 - bounds: 1919, 2592, 73, 104 + bounds: 1656, 666, 56, 103 + offsets: 16, 0, 73, 104 stand/stand000 - bounds: 1472, 2238, 54, 128 + bounds: 1127, 1743, 50, 105 + offsets: 0, 11, 54, 128 stand/stand001 - bounds: 1472, 2366, 54, 128 + bounds: 1004, 1640, 53, 105 + offsets: 1, 11, 54, 128 stand/stand002 - bounds: 1472, 2494, 54, 128 + bounds: 993, 1878, 50, 105 + offsets: 4, 11, 54, 128 stand/stand003 - bounds: 1472, 2622, 54, 128 + bounds: 1043, 1878, 50, 105 + offsets: 4, 11, 54, 128 stand/stand004 - bounds: 1472, 2750, 54, 128 + bounds: 1233, 1938, 50, 105 + offsets: 4, 11, 54, 128 stand/stand005 - bounds: 1884, 896, 54, 128 + bounds: 1340, 1936, 50, 105 + offsets: 4, 11, 54, 128 stand/stand006 - bounds: 1884, 1024, 54, 128 + bounds: 1445, 1935, 50, 105 + offsets: 3, 11, 54, 128 stand/stand007 - bounds: 1675, 2483, 54, 128 + bounds: 1495, 1935, 47, 105 + offsets: 3, 11, 54, 128 stand/stand008 - bounds: 1675, 2611, 54, 128 + bounds: 1661, 1249, 46, 105 + offsets: 3, 11, 54, 128 stand/stand009 - bounds: 1877, 1620, 54, 128 + bounds: 1606, 1040, 48, 105 + offsets: 1, 11, 54, 128 stand/stand010 - bounds: 1877, 1748, 54, 128 + bounds: 1950, 96, 49, 105 + offsets: 0, 11, 54, 128 stand/stand011 - bounds: 1877, 1876, 54, 128 + bounds: 1950, 201, 49, 105 + offsets: 0, 11, 54, 128 stand/stand012 - bounds: 1460, 3031, 54, 128 + bounds: 1950, 306, 49, 105 + offsets: 0, 11, 54, 128 stand/stand013 - bounds: 1460, 3159, 54, 128 + bounds: 1950, 411, 49, 105 + offsets: 0, 11, 54, 128 stand/stand014 - bounds: 1931, 1620, 54, 128 + bounds: 1658, 1144, 49, 105 + offsets: 0, 11, 54, 128 stand/stand015 - bounds: 1931, 1748, 54, 128 + bounds: 1669, 1354, 49, 105 + offsets: 0, 11, 54, 128 standUp/standUp000 - bounds: 1344, 2144, 128, 128 + bounds: 1305, 776, 103, 43 + offsets: 15, 10, 128, 128 standUp/standUp001 - bounds: 1344, 2272, 128, 128 + bounds: 1857, 206, 93, 62 + offsets: 17, 11, 128, 128 standUp/standUp002 - bounds: 1344, 2400, 128, 128 + bounds: 890, 1821, 70, 73 + offsets: 26, 12, 128, 128 standUp/standUp003 - bounds: 1344, 2528, 128, 128 + bounds: 1893, 805, 47, 86 + offsets: 40, 11, 128, 128 standUp/standUp004 - bounds: 1344, 2656, 128, 128 + bounds: 1883, 1439, 46, 97 + offsets: 39, 11, 128, 128 standUp/standUp005 - bounds: 1344, 2784, 128, 128 + bounds: 477, 1465, 42, 104 + offsets: 42, 11, 128, 128 standUpBack/standUpBack000 - bounds: 1772, 2315, 123, 56 + bounds: 1370, 598, 123, 56 standUpBack/standUpBack001 - bounds: 1772, 2371, 122, 55 + bounds: 1493, 599, 122, 55 standUpFront/standUpFront000 - bounds: 1306, 808, 128, 56 + bounds: 768, 931, 128, 56 standUpFront/standUpFront001 - bounds: 1749, 2068, 128, 55 + bounds: 647, 1414, 128, 55 tailAa/tailAa000 - bounds: 2038, 2230, 10, 128 + bounds: 1862, 683, 10, 128 walkFront/walkFront000 - bounds: 1931, 1876, 53, 128 + bounds: 1813, 1245, 53, 100 + offsets: 0, 11, 53, 128 walkFront/walkFront001 - bounds: 1931, 2004, 53, 128 + bounds: 1824, 1345, 53, 100 + offsets: 0, 12, 53, 128 walkFront/walkFront002 - bounds: 1985, 2230, 53, 128 + bounds: 1707, 1247, 53, 102 + offsets: 0, 11, 53, 128 walkFront/walkFront003 - bounds: 1514, 3024, 53, 128 + bounds: 1718, 1349, 53, 101 + offsets: 0, 12, 53, 128 walkFront/walkFront004 - bounds: 1514, 3152, 53, 128 + bounds: 1771, 1349, 53, 101 + offsets: 0, 11, 53, 128 walkFront/walkFront005 - bounds: 1567, 3024, 53, 128 + bounds: 1830, 1445, 53, 100 + offsets: 0, 11, 53, 128 walkFront/walkFront006 - bounds: 1567, 3152, 53, 128 + bounds: 1724, 1450, 53, 101 + offsets: 0, 11, 53, 128 walkFront/walkFront007 - bounds: 1620, 3024, 53, 128 + bounds: 1760, 1145, 53, 102 + offsets: 0, 11, 53, 128 walkFront/walkFront008 - bounds: 1620, 3152, 53, 128 + bounds: 1760, 1247, 53, 102 + offsets: 0, 11, 53, 128 walkFront/walkFront009 - bounds: 1638, 3386, 53, 128 + bounds: 1777, 1450, 53, 101 + offsets: 0, 11, 53, 128 diff --git a/src/main/resources/character/reimu/reimu-0.png b/src/main/resources/character/reimu/reimu-0.png new file mode 100644 index 0000000..49e718a Binary files /dev/null and b/src/main/resources/character/reimu/reimu-0.png differ diff --git a/src/main/resources/character/reimu/reimu-1.png b/src/main/resources/character/reimu/reimu-1.png new file mode 100644 index 0000000..7d79f26 Binary files /dev/null and b/src/main/resources/character/reimu/reimu-1.png differ diff --git a/src/main/resources/character/reimu/reimu-2.png b/src/main/resources/character/reimu/reimu-2.png new file mode 100644 index 0000000..a19a0dc Binary files /dev/null and b/src/main/resources/character/reimu/reimu-2.png differ diff --git a/src/main/resources/character/reimu/reimu.atlas b/src/main/resources/character/reimu/reimu.atlas new file mode 100644 index 0000000..8255d02 --- /dev/null +++ b/src/main/resources/character/reimu/reimu.atlas @@ -0,0 +1,2008 @@ +reimu-0.png +size: 2048, 2040 +format: RGBA8888 +filter: Linear, Linear +repeat: none +pma: false +attackB/attackB002 + bounds: 1154, 1757, 121, 86 + offsets: 3, 9, 128, 128 +attackC/attackC008 + bounds: 1275, 1763, 120, 86 + offsets: 0, 30, 128, 128 +attackD/attackD002 + bounds: 1581, 1625, 136, 65 + offsets: 6, 30, 160, 128 +attackD/attackD003 + bounds: 1437, 1624, 144, 63 + offsets: 6, 32, 160, 128 +attackD/attackD004 + bounds: 700, 1890, 149, 63 + offsets: 6, 32, 160, 128 +attackD/attackD005 + bounds: 1291, 1633, 146, 65 + offsets: 6, 30, 160, 128 +attackD/attackD006 + bounds: 580, 1962, 147, 63 + offsets: 6, 32, 160, 128 +attackD/attackD007 + bounds: 430, 1962, 150, 63 + offsets: 6, 32, 160, 128 +attackD/attackD008 + bounds: 1280, 1698, 146, 65 + offsets: 6, 30, 160, 128 +attackE/attackE003 + bounds: 1426, 1699, 114, 90 + offsets: 9, 19, 128, 128 +attackG/attackG003 + bounds: 1920, 1408, 128, 70 + offsets: 0, 24, 128, 125 +attackI/attackI004 + bounds: 425, 1792, 150, 88 + offsets: 17, 2, 192, 128 +attackI/attackI005 + bounds: 1433, 1536, 149, 88 + offsets: 17, 2, 192, 128 +attackI/attackI006 + bounds: 1582, 1536, 144, 89 + offsets: 16, 2, 192, 128 +attackI/attackI007 + bounds: 575, 1792, 145, 88 + offsets: 16, 2, 192, 128 +attackI/attackI008 + bounds: 859, 1792, 139, 94 + offsets: 14, 2, 192, 128 +attackK/attackK001 + bounds: 1920, 1682, 98, 85 + offsets: 7, 10, 128, 128 +attackK/attackK002 + bounds: 1548, 1788, 80, 109 + offsets: 17, 9, 128, 128 +attackK/attackK005 + bounds: 1596, 1690, 101, 92 + offsets: 19, 9, 128, 128 +attackM/attackM004 + bounds: 994, 1941, 86, 88 +attackM/attackM005 + bounds: 1858, 1789, 86, 86 +attackM/attackM006 + bounds: 727, 1953, 78, 87 +attackN/attackN010 + bounds: 1867, 1875, 48, 77 + offsets: 23, 11, 128, 128 +attackS/attackS004 + bounds: 225, 1901, 67, 135 +bulletA/bulletA000 + bounds: 1176, 2020, 43, 20 + offsets: 17, 6, 64, 32 +bulletA/bulletA001 + bounds: 1920, 1650, 128, 32 +BulletAb/BulletAb000 + bounds: 430, 2025, 38, 7 +BulletAc/BulletAc000 + bounds: 1080, 2024, 96, 16 +BulletAc/BulletAc001 + bounds: 1780, 2011, 96, 16 +bulletAd/bulletAd000 + bounds: 1920, 1478, 128, 64 +BulletCa/BulletCa000 + bounds: 1920, 640, 128, 128 +BulletCa/BulletCa001 + bounds: 1920, 768, 128, 128 +BulletCa/BulletCa002 + bounds: 256, 1664, 128, 128 +BulletCa/BulletCa003 + bounds: 384, 1536, 128, 128 +BulletCa/BulletCa004 + bounds: 1152, 1408, 128, 128 +BulletCa/BulletCa005 + bounds: 1408, 1152, 128, 128 +BulletCa/BulletCa006 + bounds: 1664, 896, 128, 128 +BulletCa/BulletCa007 + bounds: 0, 1911, 128, 128 +BulletCa/BulletCa008 + bounds: 384, 1664, 128, 128 +BulletCa/BulletCa009 + bounds: 512, 1536, 128, 128 +BulletCa/BulletCa010 + bounds: 1280, 1408, 128, 128 +BulletCa/BulletCa011 + bounds: 1408, 1280, 128, 128 +BulletCa/BulletCa012 + bounds: 1536, 1152, 128, 128 +BulletCa/BulletCa013 + bounds: 1664, 1024, 128, 128 +BulletCa/BulletCa014 + bounds: 1792, 896, 128, 128 +BulletCa/BulletCa015 + bounds: 1920, 896, 128, 128 +BulletCa/BulletCa016 + bounds: 512, 1664, 128, 128 +BulletCa/BulletCa017 + bounds: 640, 1536, 128, 128 +BulletCa/BulletCa018 + bounds: 1408, 1408, 128, 128 +BulletCa/BulletCa019 + bounds: 1536, 1280, 128, 128 +BulletCa/BulletCa020 + bounds: 1664, 1152, 128, 128 +BulletCa/BulletCa021 + bounds: 1792, 1024, 128, 128 +BulletCa/BulletCa022 + bounds: 1920, 1024, 128, 128 +BulletCa/BulletCa023 + bounds: 640, 1664, 128, 128 +BulletCa/BulletCa024 + bounds: 768, 1536, 128, 128 +BulletCa/BulletCa025 + bounds: 1536, 1408, 128, 128 +BulletCa/BulletCa026 + bounds: 1664, 1280, 128, 128 +BulletCa/BulletCa027 + bounds: 1792, 1152, 128, 128 +BulletCa/BulletCa028 + bounds: 1920, 1152, 128, 128 +BulletCa/BulletCa029 + bounds: 768, 1664, 128, 128 +bulletCd/bulletCd000 + bounds: 896, 1536, 128, 128 +bulletCd/bulletCd001 + bounds: 1664, 1408, 128, 128 +bulletCd/bulletCd002 + bounds: 1792, 1280, 128, 128 +bulletCd/bulletCd003 + bounds: 1920, 1280, 128, 128 +bulletCd/bulletCd004 + bounds: 896, 1664, 128, 128 +bulletCd/bulletCd005 + bounds: 1024, 1536, 128, 128 +bulletCd/bulletCd006 + bounds: 1792, 1408, 128, 128 +BulletD/BulletD000 + bounds: 292, 2030, 62, 5 + offsets: 1, 2, 64, 8 +BulletD/BulletD001 + bounds: 1437, 1687, 128, 12 + offsets: 0, 10, 128, 32 +bulletEa/bulletEa000 + bounds: 1148, 1988, 92, 32 +bulletEa/bulletEa001 + bounds: 1911, 1983, 43, 20 + offsets: 43, 6, 92, 32 +bulletEe/bulletEe000 + bounds: 1962, 1978, 43, 20 + offsets: 43, 6, 92, 32 +bulletEf/bulletEf001 + bounds: 1295, 1958, 28, 69 +bulletEf/bulletEf002 + bounds: 1986, 1863, 20, 51 +bulletGa/bulletGa000 + bounds: 1550, 2005, 63, 32 + offsets: 1, 0, 64, 32 +bulletGa/bulletGa001 + bounds: 1151, 1956, 63, 32 + offsets: 1, 0, 64, 32 +bulletIa/bulletIa000 + bounds: 256, 768, 256, 128 +bulletIa/bulletIa001 + bounds: 512, 512, 256, 128 +bulletIa/bulletIa002 + bounds: 768, 256, 256, 128 +bulletIa/bulletIa003 + bounds: 1024, 0, 256, 128 +bulletIa/bulletIa004 + bounds: 0, 1280, 256, 128 +bulletIa/bulletIa005 + bounds: 256, 896, 256, 128 +bulletIa/bulletIa006 + bounds: 512, 640, 256, 128 +bulletIa/bulletIa007 + bounds: 768, 384, 256, 128 +bulletIa/bulletIa008 + bounds: 1024, 128, 256, 128 +bulletIa/bulletIa009 + bounds: 1280, 0, 256, 128 +bulletIa/bulletIa010 + bounds: 0, 1408, 256, 128 +bulletIa/bulletIa011 + bounds: 256, 1024, 256, 128 +bulletIa/bulletIa012 + bounds: 512, 768, 256, 128 +bulletIa/bulletIa013 + bounds: 768, 512, 256, 128 +bulletIa/bulletIa014 + bounds: 1024, 256, 256, 128 +bulletIa/bulletIa016 + bounds: 1536, 0, 256, 128 +bulletIa/bulletIa017 + bounds: 1792, 0, 256, 128 +bulletIa/bulletIa018 + bounds: 384, 1152, 256, 128 +bulletIa/bulletIa019 + bounds: 640, 896, 256, 128 +dashFront/dashFront004 + bounds: 1632, 1891, 72, 106 + offsets: 34, 18, 128, 128 +dashFrontAir/dashFrontAir004 + bounds: 1700, 1782, 72, 106 + offsets: 34, 18, 128, 128 +down/down000 + bounds: 1789, 1966, 82, 45 + offsets: 21, 5, 128, 64 +down/down005 + bounds: 846, 1982, 106, 46 + offsets: 11, 4, 128, 64 +down/down006 + bounds: 1632, 1997, 97, 43 + offsets: 16, 6, 128, 64 +down/down007 + bounds: 987, 1902, 98, 39 + offsets: 16, 5, 128, 64 +emotionAa/emotionAa000 + bounds: 1240, 1958, 55, 66 +emotionAa/emotionAa001 + bounds: 1323, 1968, 55, 66 +emotionDa/emotionDa000 + bounds: 1101, 1813, 50, 149 + offsets: 25, 2, 128, 160 +face/face000 + bounds: 1717, 1634, 132, 54 + offsets: 0, 10, 160, 64 +guardBUpper/guardBUpper001 + bounds: 1628, 1782, 72, 109 + offsets: 25, 7, 128, 128 +guardUpper/guardUpper001 + bounds: 1487, 1938, 63, 95 + offsets: 1, 17, 64, 128 +hitAir/hitAir001 + bounds: 1944, 1767, 62, 96 + offsets: 1, 17, 64, 128 +hitSit/hitSit000 + bounds: 1409, 1916, 78, 101 + offsets: 14, 10, 128, 128 +invin/invin000 + bounds: 1581, 1624, 1, 1 + offsets: 0, 3, 4, 4 +objectAb/objectAb000 + bounds: 1024, 1781, 128, 32 +oharaibou/oharaibou001 + bounds: 1540, 1699, 56, 89 + offsets: 8, 19, 64, 128 +oharaibou/oharaibou002 + bounds: 2018, 1682, 29, 107 + offsets: 14, 11, 64, 128 +oharaibou/oharaibou003 + bounds: 805, 1953, 41, 83 + offsets: 2, 11, 64, 128 +oharaibou/oharaibou004 + bounds: 1962, 1863, 24, 83 + offsets: 5, 11, 32, 128 +oharaibou/oharaibou005 + bounds: 2026, 1789, 22, 83 + offsets: 7, 11, 32, 128 +oharaibou/oharaibou006 + bounds: 1080, 1941, 21, 83 + offsets: 5, 19, 32, 128 +other/guardObject + bounds: 0, 0, 256, 256 +other/jumpFront000 + bounds: 1409, 1789, 79, 127 + offsets: 5, 1, 128, 128 +other/sit001 + bounds: 998, 1813, 103, 89 + offsets: 13, 6, 128, 128 +other/sit007 + bounds: 1697, 1690, 61, 92 + offsets: 2, 1, 64, 128 +other/walkBack004 + bounds: 1242, 1849, 93, 109 + offsets: 20, 5, 128, 128 +other/walkBack005 + bounds: 1151, 1843, 91, 113 + offsets: 21, 5, 128, 128 +other/walkFront006 + bounds: 1920, 1542, 109, 108 + offsets: 10, 7, 128, 128 +redAura/redAura000 + bounds: 1962, 1946, 32, 32 +shotB/shotB002 + bounds: 1866, 1536, 54, 123 + offsets: 12, 5, 128, 128 +shotB/shotB005 + bounds: 1758, 1688, 101, 92 + offsets: 12, 4, 128, 128 +shotC/shotC007 + bounds: 1154, 1647, 126, 110 + offsets: 1, 2, 128, 128 +shotC/shotC009 + bounds: 1772, 1780, 86, 95 + offsets: 21, 13, 128, 128 +shotD/shotD000 + bounds: 1859, 1659, 61, 93 + offsets: 3, 1, 64, 128 +shotD/shotD004 + bounds: 566, 1880, 134, 82 + offsets: 26, 1, 160, 128 +shotD/shotD005 + bounds: 430, 1880, 136, 82 + offsets: 24, 1, 160, 128 +spellA/spellA001 + bounds: 376, 1889, 54, 146 + offsets: 25, 2, 128, 160 +spellA/spellA002 + bounds: 1488, 1789, 50, 149 + offsets: 25, 2, 128, 160 +spellBulletAc/spellBulletAc000 + bounds: 859, 1886, 128, 32 +spellBulletAc/spellBulletAc001 + bounds: 849, 1918, 128, 32 +spellBulletAc/spellBulletAc002 + bounds: 849, 1950, 128, 32 +spellBulletB/spellBulletB000 + bounds: 1280, 128, 128, 256 +spellBulletB/spellBulletB001 + bounds: 0, 1536, 128, 256 +spellBulletB/spellBulletB002 + bounds: 256, 1152, 128, 256 +spellBulletB/spellBulletB003 + bounds: 512, 896, 128, 256 +spellBulletB/spellBulletB004 + bounds: 768, 640, 128, 256 +spellBulletB/spellBulletB005 + bounds: 1024, 384, 128, 256 +spellBulletB/spellBulletB006 + bounds: 1408, 128, 128, 256 +spellBulletB/spellBulletB007 + bounds: 128, 1536, 128, 256 +spellBulletB/spellBulletB008 + bounds: 256, 1408, 128, 256 +spellBulletB/spellBulletB009 + bounds: 1152, 384, 128, 256 +spellBulletB/spellBulletB010 + bounds: 1536, 128, 128, 256 +spellBulletB/spellBulletB011 + bounds: 384, 1280, 128, 256 +spellBulletB/spellBulletB012 + bounds: 640, 1024, 128, 256 +spellBulletB/spellBulletB013 + bounds: 896, 768, 128, 256 +spellBulletB/spellBulletB014 + bounds: 1280, 384, 128, 256 +spellBulletB/spellBulletB015 + bounds: 1664, 128, 128, 256 +spellBulletFa/spellBulletFa000 + bounds: 512, 1280, 128, 256 +spellBulletFa/spellBulletFa001 + bounds: 768, 1024, 128, 256 +spellBulletFa/spellBulletFa002 + bounds: 1024, 768, 128, 256 +spellBulletFa/spellBulletFa003 + bounds: 1152, 640, 128, 256 +spellBulletFa/spellBulletFa004 + bounds: 1408, 384, 128, 256 +spellBulletFa/spellBulletFa005 + bounds: 1792, 128, 128, 256 +spellBulletFa/spellBulletFa006 + bounds: 1920, 128, 128, 256 +spellBulletFa/spellBulletFa007 + bounds: 640, 1280, 128, 256 +spellBulletFa/spellBulletFa008 + bounds: 896, 1024, 128, 256 +spellBulletFa/spellBulletFa009 + bounds: 1280, 640, 128, 256 +spellBulletFa/spellBulletFa010 + bounds: 1536, 384, 128, 256 +spellBulletFa/spellBulletFa011 + bounds: 768, 1280, 128, 256 +spellBulletFa/spellBulletFa012 + bounds: 1024, 1024, 128, 256 +spellBulletFa/spellBulletFa013 + bounds: 1152, 896, 128, 256 +spellBulletFa/spellBulletFa014 + bounds: 1408, 640, 128, 256 +spellBulletFa/spellBulletFa015 + bounds: 1664, 384, 128, 256 +spellBulletFa/spellBulletFa016 + bounds: 896, 1280, 128, 256 +spellBulletFa/spellBulletFa017 + bounds: 1280, 896, 128, 256 +spellBulletFa/spellBulletFa018 + bounds: 1536, 640, 128, 256 +spellBulletFa/spellBulletFa019 + bounds: 1792, 384, 128, 256 +spellBulletFa/spellBulletFa020 + bounds: 1920, 384, 128, 256 +spellBulletFa/spellBulletFa021 + bounds: 1024, 1280, 128, 256 +spellBulletFa/spellBulletFa022 + bounds: 1152, 1152, 128, 256 +spellBulletFa/spellBulletFa023 + bounds: 1408, 896, 128, 256 +spellBulletFa/spellBulletFa024 + bounds: 1664, 640, 128, 256 +spellBulletFa/spellBulletFa025 + bounds: 1280, 1152, 128, 256 +spellBulletFa/spellBulletFa026 + bounds: 1536, 896, 128, 256 +spellBulletFa/spellBulletFa027 + bounds: 1792, 640, 128, 256 +spellBulletHc/spellBulletHc000 + bounds: 896, 640, 256, 128 +spellBulletIa/spellBulletIa000 + bounds: 0, 256, 256, 256 +spellBulletIa/spellBulletIa001 + bounds: 256, 0, 256, 256 +spellBulletIa/spellBulletIa002 + bounds: 0, 512, 256, 256 +spellBulletIa/spellBulletIa003 + bounds: 256, 256, 256, 256 +spellBulletIa/spellBulletIa004 + bounds: 512, 0, 256, 256 +spellBulletIa/spellBulletIa005 + bounds: 0, 768, 256, 256 +spellBulletIa/spellBulletIa006 + bounds: 256, 512, 256, 256 +spellBulletIa/spellBulletIa007 + bounds: 512, 256, 256, 256 +spellBulletIa/spellBulletIa008 + bounds: 768, 0, 256, 256 +spellBulletIa/spellBulletIa009 + bounds: 0, 1024, 256, 256 +spellC/spellC003 + bounds: 1550, 1897, 82, 108 + offsets: 28, 0, 128, 128 +spellC/spellC005 + bounds: 1335, 1849, 74, 119 + offsets: 31, 4, 128, 128 +spellC/spellC008 + bounds: 1152, 1536, 139, 111 + offsets: 11, 10, 160, 128 +spellC/spellC009 + bounds: 141, 1792, 141, 109 + offsets: 9, 10, 160, 128 +spellC/spellC010 + bounds: 0, 1792, 141, 119 + offsets: 9, 6, 160, 128 +spellC/spellC011 + bounds: 1024, 1664, 130, 117 + offsets: 5, 10, 160, 128 +spellCall/spellCall006 + bounds: 282, 1792, 143, 97 + offsets: 8, 27, 256, 128 +spellCall/spellCall007 + bounds: 1291, 1536, 142, 97 + offsets: 6, 27, 256, 128 +spellCall/spellCall008 + bounds: 720, 1792, 139, 98 + offsets: 8, 27, 256, 128 +spellD/spellD003 + bounds: 141, 1901, 84, 139 + offsets: 4, 4, 128, 160 +spellD/spellD004 + bounds: 1915, 1875, 47, 108 + offsets: 11, 4, 64, 128 +spellD/spellD012 + bounds: 1789, 1875, 78, 91 + offsets: 27, 2, 128, 128 +spellDb/spellDb003 + bounds: 292, 1889, 84, 141 + offsets: 4, 2, 128, 160 +spellFa/spellFa005 + bounds: 1704, 1888, 85, 96 +spellFa/spellFa006 + bounds: 1726, 1536, 140, 98 +standUp/standUp003 + bounds: 1101, 1962, 47, 59 + offsets: 8, 2, 64, 64 +standUp/standUp004 + bounds: 1859, 1752, 49, 36 + offsets: 8, 12, 64, 64 +standUp/standUp005 + bounds: 1871, 1952, 40, 49 + offsets: 10, 8, 64, 64 +standUp/standUp006 + bounds: 1729, 1984, 51, 44 + offsets: 3, 12, 64, 64 +standUp/standUp007 + bounds: 952, 1982, 42, 58 + offsets: 10, 3, 64, 64 +tailAa/tailAa000 + bounds: 128, 1911, 10, 128 +tailAa/tailAa001 + bounds: 1538, 1789, 10, 128 +tailAa/tailAa002 + bounds: 2006, 1767, 10, 128 +tailAa/tailAa003 + bounds: 2016, 1789, 10, 128 + +reimu-1.png +size: 2048, 2048 +format: RGBA8888 +filter: Linear, Linear +repeat: none +pma: false +attackA/attackA002 + bounds: 1768, 1935, 88, 113 + offsets: 15, 5, 128, 128 +attackA/attackA005 + bounds: 1932, 1935, 84, 112 + offsets: 16, 5, 128, 128 +attackB/attackB001 + bounds: 1340, 1396, 119, 94 + offsets: 7, 9, 128, 128 +attackB/attackB003 + bounds: 1916, 1707, 111, 89 + offsets: 3, 9, 128, 128 +attackC/attackC005 + bounds: 1216, 1726, 112, 98 + offsets: 15, 14, 128, 128 +attackC/attackC007 + bounds: 1718, 1394, 118, 67 + offsets: 10, 34, 128, 128 +attackE/attackE001 + bounds: 1459, 1455, 117, 88 + offsets: 8, 20, 128, 128 +attackE/attackE002 + bounds: 1332, 1594, 114, 91 + offsets: 9, 19, 128, 128 +attackE/attackE004 + bounds: 1216, 1938, 109, 110 + offsets: 6, 16, 128, 128 +attackG/attackG002 + bounds: 1690, 1556, 114, 73 + offsets: 14, 24, 128, 125 +attackG/attackG004 + bounds: 1469, 1380, 120, 75 + offsets: 6, 20, 128, 125 +attackH/attackH000 + bounds: 1442, 1745, 112, 91 + offsets: 3, 2, 116, 104 +attackH/attackH002 + bounds: 1451, 1543, 114, 99 + offsets: 1, 2, 116, 104 +attackJ/attackJ003 + bounds: 1550, 1868, 100, 69 + offsets: 11, 2, 128, 128 +attackJ/attackJ004 + bounds: 1216, 1824, 112, 71 + offsets: 15, 2, 128, 128 +attackJ/attackJ005 + bounds: 1328, 1784, 112, 72 + offsets: 14, 2, 128, 128 +attackJ/attackJ006 + bounds: 1670, 1722, 111, 73 + offsets: 14, 2, 128, 128 +attackL/attackL002 + bounds: 1664, 1795, 88, 72 + offsets: 10, 23, 128, 128 +attackN/attackN009 + bounds: 1836, 1799, 74, 68 + offsets: 26, 10, 128, 128 +bulletAd/bulletAd001 + bounds: 1472, 1152, 128, 64 +bulletAd/bulletAd002 + bounds: 1600, 1152, 128, 64 +bulletAd/bulletAd003 + bounds: 1728, 1152, 128, 64 +bulletAd/bulletAd004 + bounds: 1856, 1152, 128, 64 +bulletAd/bulletAd005 + bounds: 1472, 1216, 128, 64 +bulletAd/bulletAd006 + bounds: 1344, 1249, 128, 64 +bulletAd/bulletAd007 + bounds: 1216, 1280, 128, 64 +bulletCc/bulletCc000 + bounds: 1984, 512, 64, 128 +bulletCc/bulletCc001 + bounds: 1984, 640, 64, 128 +bulletCc/bulletCc002 + bounds: 1984, 768, 64, 128 +bulletCc/bulletCc003 + bounds: 1984, 896, 64, 128 +bulletCc/bulletCc004 + bounds: 1984, 1024, 64, 128 +bulletCc/bulletCc005 + bounds: 1984, 1152, 64, 128 +bulletCd/bulletCd007 + bounds: 64, 512, 128, 128 +bulletCd/bulletCd008 + bounds: 128, 0, 128, 128 +bulletCd/bulletCd009 + bounds: 128, 128, 128, 128 +bulletCd/bulletCd010 + bounds: 128, 256, 128, 128 +bulletCd/bulletCd011 + bounds: 128, 384, 128, 128 +bulletCd/bulletCd012 + bounds: 64, 640, 128, 128 +bulletCd/bulletCd013 + bounds: 64, 768, 128, 128 +bulletCd/bulletCd014 + bounds: 64, 896, 128, 128 +bulletCd/bulletCd015 + bounds: 64, 1024, 128, 128 +bulletCd/bulletCd016 + bounds: 64, 1152, 128, 128 +bulletCd/bulletCd017 + bounds: 64, 1280, 128, 128 +bulletCd/bulletCd018 + bounds: 64, 1408, 128, 128 +bulletCd/bulletCd019 + bounds: 64, 1536, 128, 128 +bulletCd/bulletCd020 + bounds: 64, 1664, 128, 128 +bulletCd/bulletCd021 + bounds: 64, 1792, 128, 128 +bulletCd/bulletCd022 + bounds: 64, 1920, 128, 128 +bulletCd/bulletCd023 + bounds: 192, 512, 128, 128 +bulletCd/bulletCd024 + bounds: 256, 0, 128, 128 +bulletCd/bulletCd025 + bounds: 256, 128, 128, 128 +bulletCd/bulletCd026 + bounds: 256, 256, 128, 128 +bulletCd/bulletCd027 + bounds: 256, 384, 128, 128 +bulletCd/bulletCd028 + bounds: 192, 640, 128, 128 +bulletCd/bulletCd029 + bounds: 192, 768, 128, 128 +bulletEb/bulletEb000 + bounds: 192, 896, 128, 128 +bulletEe/bulletEe001 + bounds: 1600, 1216, 128, 48 +bulletEe/bulletEe003 + bounds: 192, 1024, 128, 128 +bulletEe003 + bounds: 192, 1152, 128, 128 +bulletEf/bulletEf000 + bounds: 192, 1280, 128, 128 +bulletFa/bulletFa000 + bounds: 192, 1408, 128, 128 +bulletFa/bulletFa001 + bounds: 192, 1536, 128, 128 +bulletFa/bulletFa002 + bounds: 192, 1664, 128, 128 +bulletFa/bulletFa003 + bounds: 192, 1792, 128, 128 +bulletFa/bulletFa004 + bounds: 192, 1920, 128, 128 +bulletFa/bulletFa005 + bounds: 320, 512, 128, 128 +bulletFa/bulletFa006 + bounds: 384, 0, 128, 128 +bulletFa/bulletFa007 + bounds: 384, 128, 128, 128 +bulletFa/bulletFa008 + bounds: 384, 256, 128, 128 +bulletFa/bulletFa009 + bounds: 384, 384, 128, 128 +bulletFa/bulletFa010 + bounds: 320, 640, 128, 128 +bulletGa/bulletGa002 + bounds: 1978, 1899, 63, 32 + offsets: 1, 0, 64, 32 +dashBack/dashBack001 + bounds: 1678, 1629, 112, 93 + offsets: 14, 19, 128, 128 +dashBack/dashBack002 + bounds: 1836, 1412, 116, 95 + offsets: 12, 19, 128, 128 +dashBackAir/dashBackAir001 + bounds: 1558, 1670, 112, 93 + offsets: 14, 19, 128, 128 +dashBackAir/dashBackAir002 + bounds: 1718, 1461, 116, 95 + offsets: 12, 19, 128, 128 +dashStop/dashStop002 + bounds: 1650, 1868, 95, 69 + offsets: 22, 12, 128, 128 +down/down008 + bounds: 1216, 1895, 99, 37 + offsets: 15, 5, 128, 64 +guardBUpper/guardBUpper000 + bounds: 1513, 1938, 71, 110 + offsets: 26, 7, 128, 128 +guardUnder/guardUnder000 + bounds: 1979, 1280, 69, 104 + offsets: 28, 11, 128, 128 +guardUnder/guardUnder001 + bounds: 1978, 1796, 69, 103 + offsets: 29, 11, 128, 128 +hitAir/hitAir002 + bounds: 1752, 1799, 84, 68 + offsets: 21, 26, 128, 128 +hitAir/hitAir003 + bounds: 1833, 1867, 79, 68 + offsets: 24, 29, 128, 128 +hitSpin/hitSpin000 + bounds: 1216, 1638, 114, 88 + offsets: 6, 5, 128, 128 +hitSpin/hitSpin001 + bounds: 1600, 1264, 126, 100 + offsets: 1, 5, 128, 128 +hitSpin/hitSpin003 + bounds: 1978, 1384, 70, 74 + offsets: 45, 5, 128, 128 +hitSpin/hitSpin004 + bounds: 1472, 1280, 126, 100 + offsets: 1, 4, 128, 128 +hitSpin/hitSpin005 + bounds: 1216, 1447, 119, 94 + offsets: 8, 5, 128, 128 +objectAa/objectAa000 + bounds: 320, 768, 128, 128 +objectAa/objectAa001 + bounds: 320, 896, 128, 128 +objectAa/objectAa002 + bounds: 320, 1024, 128, 128 +objectAa/objectAa003 + bounds: 320, 1152, 128, 128 +objectAa/objectAa004 + bounds: 320, 1280, 128, 128 +objectAa/objectAa005 + bounds: 320, 1408, 128, 128 +objectAa/objectAa006 + bounds: 320, 1536, 128, 128 +objectAa/objectAa007 + bounds: 320, 1664, 128, 128 +objectAa/objectAa008 + bounds: 320, 1792, 128, 128 +objectAa/objectAa009 + bounds: 320, 1920, 128, 128 +objectAa/objectAa010 + bounds: 448, 512, 128, 128 +objectAa/objectAa011 + bounds: 512, 0, 128, 128 +objectAa/objectAa012 + bounds: 512, 128, 128, 128 +objectAa/objectAa013 + bounds: 512, 256, 128, 128 +objectAa/objectAa014 + bounds: 512, 384, 128, 128 +objectAa/objectAa015 + bounds: 448, 640, 128, 128 +objectAa/objectAa016 + bounds: 448, 768, 128, 128 +objectAa/objectAa017 + bounds: 448, 896, 128, 128 +objectAa/objectAa018 + bounds: 448, 1024, 128, 128 +objectAa/objectAa019 + bounds: 448, 1152, 128, 128 +objectBa/objectBa000 + bounds: 448, 1280, 128, 128 +oharaibou/oharaibou000 + bounds: 1745, 1867, 88, 68 + offsets: 20, 28, 128, 128 +other/hitUpper000 + bounds: 1576, 1468, 114, 100 + offsets: 6, 3, 128, 128 +other/jump003 + bounds: 1328, 1856, 89, 82 + offsets: 16, 15, 128, 128 +other/jump005 + bounds: 1912, 1863, 66, 72 + offsets: 1, 18, 128, 128 +other/jump007 + bounds: 1598, 1364, 120, 104 + offsets: 7, 3, 128, 128 +other/jump008 + bounds: 1335, 1490, 116, 104 + offsets: 7, 3, 128, 128 +other/jumpFront001 + bounds: 1728, 1216, 127, 104 + offsets: 0, 8, 128, 128 +other/jumpFront002 + bounds: 1726, 1320, 122, 74 + offsets: 2, 25, 128, 128 +other/sit008 + bounds: 1856, 1935, 76, 113 + offsets: 28, 7, 128, 128 +other/walkBack000 + bounds: 1952, 1458, 96, 121 + offsets: 20, 5, 128, 128 +other/walkBack006 + bounds: 1677, 1937, 91, 111 + offsets: 22, 5, 128, 128 +other/walkBack007 + bounds: 1422, 1938, 91, 110 + offsets: 21, 5, 128, 128 +other/walkFront005 + bounds: 1440, 1836, 110, 102 + offsets: 8, 7, 128, 128 +other/walkFront007 + bounds: 1565, 1568, 113, 102 + offsets: 11, 7, 128, 128 +shotAb/shotAb000 + bounds: 1330, 1685, 112, 99 + offsets: 4, 17, 128, 128 +shotAb/shotAb001 + bounds: 1554, 1763, 110, 105 + offsets: 3, 17, 128, 128 +shotB/shotB006 + bounds: 1216, 1541, 116, 97 + offsets: 10, 0, 128, 128 +shotBd/shotBd002 + bounds: 1790, 1712, 111, 87 + offsets: 12, 12, 128, 128 +shotC/shotC006 + bounds: 1216, 1344, 124, 103 + offsets: 3, 13, 128, 128 +shotC/shotC008 + bounds: 1855, 1299, 123, 113 + offsets: 3, 13, 128, 128 +shotCb/shotCb001 + bounds: 1446, 1642, 112, 103 + offsets: 13, 2, 128, 128 +shotCb/shotCb002 + bounds: 1834, 1507, 114, 110 + offsets: 11, 2, 128, 128 +shotCc/shotCc002 + bounds: 1804, 1617, 112, 95 + offsets: 10, 2, 128, 128 +shotD/shotD003 + bounds: 1855, 1216, 124, 83 + offsets: 2, 1, 128, 128 +shotD/shotD006 + bounds: 1344, 1313, 125, 83 + offsets: 2, 1, 128, 128 +spellB/spellB004 + bounds: 1325, 1938, 97, 110 + offsets: 30, 2, 128, 128 +spellBulletA/spellBulletA000 + bounds: 448, 1408, 128, 128 +spellBulletA/spellBulletA001 + bounds: 448, 1536, 128, 128 +spellBulletA/spellBulletA002 + bounds: 448, 1664, 128, 128 +spellBulletAa/spellBulletAa003 + bounds: 448, 1792, 128, 128 +spellBulletAb/spellBulletAb000 + bounds: 448, 1920, 128, 128 +spellBulletAb/spellBulletAb001 + bounds: 640, 0, 128, 128 +spellBulletAb/spellBulletAb002 + bounds: 768, 0, 128, 128 +spellBulletC/spellBulletC000 + bounds: 896, 0, 128, 128 +spellBulletC/spellBulletC001 + bounds: 1024, 0, 128, 128 +spellBulletC/spellBulletC002 + bounds: 1152, 0, 128, 128 +spellBulletC/spellBulletC003 + bounds: 1280, 0, 128, 128 +spellBulletC/spellBulletC004 + bounds: 1408, 0, 128, 128 +spellBulletC/spellBulletC005 + bounds: 1536, 0, 128, 128 +spellBulletC/spellBulletC006 + bounds: 1664, 0, 128, 128 +spellBulletC/spellBulletC007 + bounds: 1792, 0, 128, 128 +spellBulletC/spellBulletC008 + bounds: 1920, 0, 128, 128 +spellBulletC/spellBulletC009 + bounds: 640, 128, 128, 128 +spellBulletC/spellBulletC010 + bounds: 768, 128, 128, 128 +spellBulletC/spellBulletC011 + bounds: 896, 128, 128, 128 +spellBulletC/spellBulletC012 + bounds: 1024, 128, 128, 128 +spellBulletC/spellBulletC013 + bounds: 1152, 128, 128, 128 +spellBulletC/spellBulletC014 + bounds: 1280, 128, 128, 128 +spellBulletC/spellBulletC015 + bounds: 1408, 128, 128, 128 +spellBulletC/spellBulletC016 + bounds: 1536, 128, 128, 128 +spellBulletC/spellBulletC017 + bounds: 1664, 128, 128, 128 +spellBulletC/spellBulletC018 + bounds: 1792, 128, 128, 128 +spellBulletC/spellBulletC019 + bounds: 1920, 128, 128, 128 +spellBulletC/spellBulletC020 + bounds: 640, 256, 128, 128 +spellBulletC/spellBulletC021 + bounds: 768, 256, 128, 128 +spellBulletC/spellBulletC022 + bounds: 896, 256, 128, 128 +spellBulletC/spellBulletC023 + bounds: 1024, 256, 128, 128 +spellBulletC/spellBulletC024 + bounds: 1152, 256, 128, 128 +spellBulletC/spellBulletC025 + bounds: 1280, 256, 128, 128 +spellBulletC/spellBulletC026 + bounds: 1408, 256, 128, 128 +spellBulletC/spellBulletC027 + bounds: 1536, 256, 128, 128 +spellBulletC/spellBulletC028 + bounds: 1664, 256, 128, 128 +spellBulletC/spellBulletC029 + bounds: 1792, 256, 128, 128 +spellBulletC/spellBulletC030 + bounds: 1920, 256, 128, 128 +spellBulletC/spellBulletC031 + bounds: 640, 384, 128, 128 +spellBulletC/spellBulletC032 + bounds: 768, 384, 128, 128 +spellBulletC/spellBulletC033 + bounds: 896, 384, 128, 128 +spellBulletC/spellBulletC034 + bounds: 1024, 384, 128, 128 +spellBulletC/spellBulletC035 + bounds: 1152, 384, 128, 128 +spellBulletC/spellBulletC036 + bounds: 1280, 384, 128, 128 +spellBulletC/spellBulletC037 + bounds: 1408, 384, 128, 128 +spellBulletC/spellBulletC038 + bounds: 1536, 384, 128, 128 +spellBulletC/spellBulletC039 + bounds: 1664, 384, 128, 128 +spellBulletC/spellBulletC040 + bounds: 1792, 384, 128, 128 +spellBulletC/spellBulletC041 + bounds: 1920, 384, 128, 128 +spellBulletC/spellBulletC042 + bounds: 576, 512, 128, 128 +spellBulletC/spellBulletC043 + bounds: 704, 512, 128, 128 +spellBulletC/spellBulletC044 + bounds: 832, 512, 128, 128 +spellBulletC/spellBulletC045 + bounds: 960, 512, 128, 128 +spellBulletC/spellBulletC046 + bounds: 1088, 512, 128, 128 +spellBulletC/spellBulletC047 + bounds: 1216, 512, 128, 128 +spellBulletC/spellBulletC048 + bounds: 1344, 512, 128, 128 +spellBulletC/spellBulletC049 + bounds: 1472, 512, 128, 128 +spellBulletC/spellBulletC050 + bounds: 1600, 512, 128, 128 +spellBulletC/spellBulletC051 + bounds: 1728, 512, 128, 128 +spellBulletC/spellBulletC052 + bounds: 1856, 512, 128, 128 +spellBulletC/spellBulletC053 + bounds: 576, 640, 128, 128 +spellBulletC/spellBulletC054 + bounds: 576, 768, 128, 128 +spellBulletC/spellBulletC055 + bounds: 576, 896, 128, 128 +spellBulletC/spellBulletC056 + bounds: 576, 1024, 128, 128 +spellBulletC/spellBulletC057 + bounds: 576, 1152, 128, 128 +spellBulletD/spellBulletD000 + bounds: 0, 0, 64, 256 +spellBulletD/spellBulletD001 + bounds: 0, 256, 64, 256 +spellBulletD/spellBulletD002 + bounds: 0, 512, 64, 256 +spellBulletD/spellBulletD003 + bounds: 0, 768, 64, 256 +spellBulletD/spellBulletD004 + bounds: 0, 1024, 64, 256 +spellBulletD/spellBulletD005 + bounds: 0, 1280, 64, 256 +spellBulletD/spellBulletD006 + bounds: 0, 1536, 64, 256 +spellBulletD/spellBulletD007 + bounds: 0, 1792, 64, 256 +spellBulletD/spellBulletD008 + bounds: 64, 0, 64, 256 +spellBulletD/spellBulletD009 + bounds: 64, 256, 64, 256 +spellBulletE/spellBulletE002 + bounds: 576, 1280, 128, 128 +spellBulletE/spellBulletE003 + bounds: 576, 1408, 128, 128 +spellBulletE/spellBulletE004 + bounds: 576, 1536, 128, 128 +spellBulletE/spellBulletE005 + bounds: 576, 1664, 128, 128 +spellBulletE/spellBulletE006 + bounds: 576, 1792, 128, 128 +spellBulletE/spellBulletE007 + bounds: 576, 1920, 128, 128 +spellBulletE/spellBulletE008 + bounds: 704, 640, 128, 128 +spellBulletE/spellBulletE009 + bounds: 832, 640, 128, 128 +spellBulletE/spellBulletE010 + bounds: 960, 640, 128, 128 +spellBulletE/spellBulletE011 + bounds: 1088, 640, 128, 128 +spellBulletE/spellBulletE012 + bounds: 1216, 640, 128, 128 +spellBulletE/spellBulletE013 + bounds: 1344, 640, 128, 128 +spellBulletE/spellBulletE014 + bounds: 1472, 640, 128, 128 +spellBulletE/spellBulletE015 + bounds: 1600, 640, 128, 128 +spellBulletE/spellBulletE016 + bounds: 1728, 640, 128, 128 +spellBulletE/spellBulletE017 + bounds: 1856, 640, 128, 128 +spellBulletE/spellBulletE018 + bounds: 704, 768, 128, 128 +spellBulletE/spellBulletE019 + bounds: 704, 896, 128, 128 +spellBulletE/spellBulletE020 + bounds: 704, 1024, 128, 128 +spellBulletE/spellBulletE021 + bounds: 704, 1152, 128, 128 +spellBulletE/spellBulletE022 + bounds: 704, 1280, 128, 128 +spellBulletE/spellBulletE023 + bounds: 704, 1408, 128, 128 +spellBulletE/spellBulletE024 + bounds: 704, 1536, 128, 128 +spellBulletE/spellBulletE025 + bounds: 704, 1664, 128, 128 +spellBulletE/spellBulletE026 + bounds: 704, 1792, 128, 128 +spellBulletE/spellBulletE027 + bounds: 704, 1920, 128, 128 +spellBulletE/spellBulletE028 + bounds: 832, 768, 128, 128 +spellBulletE/spellBulletE029 + bounds: 960, 768, 128, 128 +spellBulletE/spellBulletE030 + bounds: 1088, 768, 128, 128 +spellBulletE/spellBulletE031 + bounds: 1216, 768, 128, 128 +spellBulletE/spellBulletE032 + bounds: 1344, 768, 128, 128 +spellBulletE/spellBulletE033 + bounds: 1472, 768, 128, 128 +spellBulletE/spellBulletE034 + bounds: 1600, 768, 128, 128 +spellBulletE/spellBulletE035 + bounds: 1728, 768, 128, 128 +spellBulletE/spellBulletE036 + bounds: 1856, 768, 128, 128 +spellBulletE/spellBulletE037 + bounds: 832, 896, 128, 128 +spellBulletE/spellBulletE038 + bounds: 832, 1024, 128, 128 +spellBulletE/spellBulletE039 + bounds: 832, 1152, 128, 128 +spellBulletE/spellBulletE040 + bounds: 832, 1280, 128, 128 +spellBulletE/spellBulletE041 + bounds: 832, 1408, 128, 128 +spellBulletE/spellBulletE042 + bounds: 832, 1536, 128, 128 +spellBulletE/spellBulletE043 + bounds: 832, 1664, 128, 128 +spellBulletE/spellBulletE044 + bounds: 832, 1792, 128, 128 +spellBulletE/spellBulletE045 + bounds: 832, 1920, 128, 128 +spellBulletE/spellBulletE046 + bounds: 960, 896, 128, 128 +spellBulletE/spellBulletE047 + bounds: 1088, 896, 128, 128 +spellBulletE/spellBulletE048 + bounds: 1216, 896, 128, 128 +spellBulletE/spellBulletE049 + bounds: 1344, 896, 128, 128 +spellBulletE/spellBulletE050 + bounds: 1472, 896, 128, 128 +spellBulletE/spellBulletE051 + bounds: 1600, 896, 128, 128 +spellBulletE/spellBulletE052 + bounds: 1728, 896, 128, 128 +spellBulletE/spellBulletE053 + bounds: 1856, 896, 128, 128 +spellBulletE/spellBulletE054 + bounds: 960, 1024, 128, 128 +spellBulletE/spellBulletE055 + bounds: 960, 1152, 128, 128 +spellBulletE/spellBulletE056 + bounds: 960, 1280, 128, 128 +spellBulletE/spellBulletE057 + bounds: 960, 1408, 128, 128 +spellBulletE/spellBulletE058 + bounds: 960, 1536, 128, 128 +spellBulletE/spellBulletE059 + bounds: 960, 1664, 128, 128 +spellBulletGa/spellBulletGa001 + bounds: 960, 1792, 128, 128 +spellBulletHb/spellBulletHb000 + bounds: 960, 1920, 128, 128 +spellBulletJa/spellBulletJa000 + bounds: 1088, 1024, 128, 128 +spellBulletJa/spellBulletJa001 + bounds: 1216, 1024, 128, 128 +spellBulletJa/spellBulletJa002 + bounds: 1344, 1024, 128, 128 +spellBulletJa/spellBulletJa003 + bounds: 1472, 1024, 128, 128 +spellBulletJa/spellBulletJa004 + bounds: 1600, 1024, 128, 128 +spellBulletJb/spellBulletJb000 + bounds: 1728, 1024, 128, 128 +spellBulletJb/spellBulletJb001 + bounds: 1856, 1024, 128, 128 +spellBulletJb/spellBulletJb002 + bounds: 1088, 1152, 128, 128 +spellBulletJb/spellBulletJb003 + bounds: 1088, 1280, 128, 128 +spellBulletJb/spellBulletJb004 + bounds: 1088, 1408, 128, 128 +spellBulletJb/spellBulletJb005 + bounds: 1088, 1536, 128, 128 +spellBulletJb/spellBulletJb006 + bounds: 1088, 1664, 128, 128 +spellBulletJb/spellBulletJb007 + bounds: 1088, 1792, 128, 128 +spellBulletJb/spellBulletJb008 + bounds: 1088, 1920, 128, 128 +spellBulletJb/spellBulletJb009 + bounds: 1216, 1152, 128, 128 +spellC/spellC007 + bounds: 1948, 1579, 100, 128 + offsets: 18, 0, 128, 128 +spellCall/spellCall009 + bounds: 1344, 1152, 128, 97 + offsets: 0, 27, 128, 128 +spellFa/spellFa007 + bounds: 1584, 1937, 93, 111 +standUp/standUp001 + bounds: 1910, 1796, 67, 67 + offsets: 29, 30, 128, 128 + +reimu-2.png +size: 1993, 1263 +format: RGBA8888 +filter: Linear, Linear +repeat: none +pma: false +attackA/attackA000 + bounds: 1772, 292, 97, 95 + offsets: 8, 5, 128, 128 +attackA/attackA001 + bounds: 655, 695, 94, 99 + offsets: 7, 5, 128, 128 +attackA/attackA003 + bounds: 242, 712, 80, 115 + offsets: 16, 5, 128, 128 +attackA/attackA004 + bounds: 95, 714, 79, 116 + offsets: 16, 5, 128, 128 +attackA/attackA006 + bounds: 749, 691, 97, 95 + offsets: 8, 5, 128, 128 +attackB/attackB000 + bounds: 1307, 665, 95, 91 + offsets: 23, 9, 128, 128 +attackB/attackB004 + bounds: 1661, 736, 82, 92 + offsets: 17, 9, 128, 128 +attackC/attackC000 + bounds: 1410, 1127, 77, 90 + offsets: 28, 25, 128, 128 +attackC/attackC001 + bounds: 1898, 846, 95, 64 + offsets: 10, 0, 128, 64 +attackC/attackC002 + bounds: 1153, 518, 106, 50 + offsets: 10, 2, 128, 64 +attackC/attackC003 + bounds: 1320, 1207, 85, 55 + offsets: 17, 2, 128, 64 +attackC/attackC004 + bounds: 1085, 1205, 85, 54 + offsets: 15, 2, 128, 64 +attackC/attackC006 + bounds: 740, 0, 108, 99 + offsets: 16, 13, 128, 128 +attackC/attackC009 + bounds: 1391, 0, 107, 96 + offsets: 9, 32, 128, 128 +attackD/attackD000 + bounds: 1100, 556, 52, 94 + offsets: 3, 30, 64, 128 +attackD/attackD001 + bounds: 603, 996, 97, 66 + offsets: 5, 29, 128, 128 +attackE/attackE000 + bounds: 297, 299, 102, 102 + offsets: 8, 16, 128, 128 +attackF/attackF000 + bounds: 0, 596, 89, 118 + offsets: 6, 9, 128, 128 +attackF/attackF001 + bounds: 1342, 586, 97, 79 + offsets: 8, 32, 128, 128 +attackF/attackF002 + bounds: 1560, 390, 84, 98 + offsets: 2, 16, 128, 128 +attackF/attackF003 + bounds: 1059, 1018, 84, 94 + offsets: 4, 18, 128, 128 +attackF/attackF004 + bounds: 986, 1120, 80, 95 + offsets: 4, 18, 128, 128 +attackG/attackG000 + bounds: 667, 794, 94, 99 + offsets: 16, 16, 128, 125 +attackG/attackG001 + bounds: 391, 1060, 80, 103 + offsets: 24, 18, 128, 125 +attackG/attackG005 + bounds: 1498, 0, 107, 96 + offsets: 14, 12, 128, 125 +attackH/attackH001 + bounds: 1816, 387, 57, 99 + offsets: 31, 3, 116, 104 +attackH/attackH003 + bounds: 1742, 387, 74, 99 + offsets: 31, 3, 116, 104 +attackI/attackI000 + bounds: 761, 786, 91, 96 + offsets: 6, 2, 128, 128 +attackI/attackI001 + bounds: 798, 1172, 98, 91 + offsets: 10, 2, 128, 128 +attackI/attackI002 + bounds: 1145, 924, 94, 93 + offsets: 11, 2, 128, 128 +attackI/attackI003 + bounds: 993, 648, 98, 92 + offsets: 15, 2, 128, 128 +attackI/attackI009 + bounds: 795, 1076, 91, 96 + offsets: 6, 2, 128, 128 +attackJ/attackJ000 + bounds: 1377, 390, 94, 98 + offsets: 3, 2, 128, 128 +attackJ/attackJ001 + bounds: 378, 629, 100, 66 + offsets: 11, 2, 128, 128 +attackJ/attackJ002 + bounds: 698, 1186, 100, 65 + offsets: 11, 2, 128, 128 +attackJ/attackJ007 + bounds: 797, 556, 103, 78 + offsets: 14, 2, 128, 128 +attackJ/attackJ008 + bounds: 502, 428, 110, 86 + offsets: 6, 2, 128, 128 +attackJ/attackJ009 + bounds: 1487, 96, 97, 98 + offsets: 1, 2, 128, 128 +attackK/attackK000 + bounds: 961, 930, 90, 95 + offsets: 3, 8, 128, 128 +attackK/attackK003 + bounds: 1650, 579, 92, 95 + offsets: 10, 8, 128, 128 +attackK/attackK004 + bounds: 1293, 756, 94, 92 + offsets: 12, 9, 128, 128 +attackK/attackK006 + bounds: 0, 1175, 107, 88 + offsets: 19, 12, 128, 128 +attackK/attackK007 + bounds: 896, 1160, 90, 96 + offsets: 19, 12, 128, 128 +attackL/attackL000 + bounds: 696, 101, 79, 103 + offsets: 11, 2, 128, 128 +attackL/attackL001 + bounds: 1043, 742, 96, 91 + offsets: 9, 2, 128, 128 +attackL/attackL003 + bounds: 1466, 675, 96, 81 + offsets: 18, 13, 128, 128 +attackL/attackL004 + bounds: 748, 634, 99, 57 + offsets: 20, 23, 128, 128 +attackL/attackL005 + bounds: 651, 633, 97, 62 + offsets: 21, 21, 128, 128 +attackL/attackL006 + bounds: 1281, 488, 98, 62 + offsets: 21, 21, 128, 128 +attackM/attackM000 + bounds: 867, 872, 91, 96 +attackM/attackM001 + bounds: 848, 97, 107, 91 +attackM/attackM002 + bounds: 201, 105, 110, 91 +attackM/attackM003 + bounds: 1319, 941, 92, 92 +attackM/attackM007 + bounds: 1826, 486, 74, 98 +attackM/attackM008 + bounds: 900, 556, 101, 90 +attackM/attackM009 + bounds: 870, 968, 91, 96 +attackN/attackN000 + bounds: 1142, 292, 96, 98 + offsets: 12, 9, 128, 128 +attackN/attackN001 + bounds: 107, 1166, 97, 97 + offsets: 11, 9, 128, 128 +attackN/attackN008 + bounds: 478, 619, 90, 76 + offsets: 26, 11, 128, 128 +attackN/attackN011 + bounds: 886, 1064, 91, 96 + offsets: 16, 9, 128, 128 +attackS/attackS000 + bounds: 1139, 752, 97, 86 +attackS/attackS001 + bounds: 1470, 1033, 93, 85 +attackS/attackS002 + bounds: 607, 796, 60, 101 +attackS/attackS003 + bounds: 167, 348, 66, 126 +attackS/attackS005 + bounds: 543, 823, 64, 123 +bulletA/bulletA002 + bounds: 1238, 1098, 64, 64 +bulletAe/bulletAe000 + bounds: 1833, 933, 64, 64 +bulletB/bulletB000 + bounds: 1694, 1158, 64, 64 +bulletB/bulletB001 + bounds: 1800, 997, 64, 64 +bulletBb/bulletBb000 + bounds: 1864, 1000, 64, 64 +bulletBb/bulletBb001 + bounds: 1928, 1000, 64, 64 +bulletCb/bulletCb000 + bounds: 1796, 1061, 64, 64 +bulletCc/bulletCc006 + bounds: 90, 475, 64, 128 +bulletCc/bulletCc007 + bounds: 159, 830, 64, 128 +bulletDa/bulletDa000 + bounds: 154, 475, 64, 128 +bulletDa/bulletDa001 + bounds: 223, 828, 64, 128 +bulletDa/bulletDa002 + bounds: 218, 474, 64, 128 +bulletDa/bulletDa003 + bounds: 287, 827, 64, 128 +bulletDa/bulletDa004 + bounds: 233, 196, 64, 128 +bulletDa/bulletDa005 + bounds: 233, 324, 64, 128 +bulletDa/bulletDa006 + bounds: 351, 825, 64, 128 +bulletDa/bulletDa007 + bounds: 502, 300, 64, 128 +bulletDa/bulletDa008 + bounds: 566, 300, 64, 128 +bulletDa/bulletDa009 + bounds: 630, 300, 64, 128 +bulletDa/bulletDa010 + bounds: 694, 300, 64, 128 +bulletDa/bulletDa011 + bounds: 705, 428, 64, 128 +bulletDa/bulletDa012 + bounds: 758, 300, 64, 128 +bulletDa/bulletDa013 + bounds: 769, 428, 64, 128 +bulletDa/bulletDa014 + bounds: 822, 300, 64, 128 +bulletDa/bulletDa015 + bounds: 833, 428, 64, 128 +bulletDa/bulletDa016 + bounds: 886, 300, 64, 128 +bulletDa/bulletDa017 + bounds: 897, 428, 64, 128 +bulletDa/bulletDa018 + bounds: 950, 300, 64, 128 +bulletDa/bulletDa019 + bounds: 961, 428, 64, 128 +bulletDa/bulletDa020 + bounds: 1014, 300, 64, 128 +bulletDa/bulletDa021 + bounds: 1025, 428, 64, 128 +bulletDa/bulletDa022 + bounds: 1078, 300, 64, 128 +bulletDa/bulletDa023 + bounds: 1089, 428, 64, 128 +bulletDa/bulletDa024 + bounds: 1153, 390, 64, 128 +bulletDa/bulletDa025 + bounds: 1217, 390, 64, 128 +bulletDa/bulletDa026 + bounds: 379, 501, 64, 128 +bulletDa/bulletDa027 + bounds: 390, 695, 64, 128 +bulletDa/bulletDa028 + bounds: 415, 823, 64, 128 +bulletDa/bulletDa029 + bounds: 454, 695, 64, 128 +bulletDb/bulletDb000 + bounds: 479, 823, 64, 128 +bulletDb/bulletDb001 + bounds: 518, 695, 64, 128 +bulletEa/bulletEa002 + bounds: 848, 188, 92, 16 +bulletEc/bulletEc000 + bounds: 1470, 941, 92, 92 +bulletEd/bulletEd000 + bounds: 1860, 1064, 64, 64 +bulletEe/bulletEe002 + bounds: 1924, 1064, 64, 64 +bulletGa/bulletGa003 + bounds: 1405, 1217, 63, 32 + offsets: 1, 0, 64, 32 +bulletGb/bulletGb000 + bounds: 1816, 1128, 64, 64 +crash/crash000 + bounds: 895, 646, 98, 94 + offsets: 20, 3, 128, 128 +crash/crash001 + bounds: 322, 702, 68, 123 + offsets: 18, 1, 128, 128 +crash/crash002 + bounds: 1921, 0, 72, 125 + offsets: 13, 1, 128, 128 +dashBack/dashBack000 + bounds: 1067, 0, 108, 95 + offsets: 13, 18, 128, 128 +dashBackAir/dashBackAir000 + bounds: 1175, 0, 108, 95 + offsets: 13, 18, 128, 128 +dashFront/dashFront000 + bounds: 1562, 677, 94, 65 + offsets: 22, 12, 128, 128 +dashFront/dashFront001 + bounds: 1318, 95, 73, 101 + offsets: 32, 14, 128, 128 +dashFront/dashFront002 + bounds: 955, 99, 72, 105 + offsets: 33, 16, 128, 128 +dashFront/dashFront003 + bounds: 285, 956, 73, 105 + offsets: 34, 18, 128, 128 +dashFrontAir/dashFrontAir000 + bounds: 1145, 1017, 94, 65 + offsets: 22, 12, 128, 128 +dashFrontAir/dashFrontAir001 + bounds: 582, 695, 73, 101 + offsets: 32, 14, 128, 128 +dashFrontAir/dashFrontAir002 + bounds: 471, 1048, 72, 105 + offsets: 33, 16, 128, 128 +dashFrontAir/dashFrontAir003 + bounds: 775, 99, 73, 105 + offsets: 34, 18, 128, 128 +dashStop/dashStop000 + bounds: 1151, 657, 97, 95 + offsets: 18, 1, 128, 128 +dashStop/dashStop001 + bounds: 1706, 970, 94, 65 + offsets: 22, 12, 128, 128 +dashStop/dashStop003 + bounds: 590, 529, 104, 84 + offsets: 20, 12, 128, 128 +down/down001 + bounds: 1549, 1204, 74, 51 + offsets: 21, 6, 128, 64 +down/down002 + bounds: 1740, 677, 94, 56 + offsets: 13, 4, 128, 64 +down/down003 + bounds: 1706, 1097, 90, 61 + offsets: 13, 1, 128, 64 +down/down004 + bounds: 1706, 1035, 89, 62 + offsets: 13, 1, 128, 64 +down/down009 + bounds: 986, 1215, 99, 36 + offsets: 15, 5, 128, 64 +down/down010 + bounds: 852, 835, 99, 37 + offsets: 15, 4, 128, 64 +emotionBa/emotionBa000 + bounds: 606, 205, 99, 95 +emotionCa/emotionCa000 + bounds: 1091, 650, 60, 92 + offsets: 2, 1, 64, 128 +emotionCa/emotionCa001 + bounds: 1411, 1035, 59, 92 + offsets: 3, 1, 64, 128 +guardAir/guardAir000 + bounds: 1834, 679, 64, 90 + offsets: 0, 17, 64, 128 +guardBAir/guardBAir000 + bounds: 1834, 769, 64, 90 + offsets: 0, 17, 64, 128 +guardBUnder/guardBUnder000 + bounds: 784, 882, 83, 97 + offsets: 17, 13, 128, 128 +guardBUnder/guardBUnder001 + bounds: 977, 1025, 82, 95 + offsets: 18, 13, 128, 128 +guardUpper/guardUpper000 + bounds: 1402, 665, 64, 94 + offsets: 0, 17, 64, 128 +hitAir/hitAir000 + bounds: 400, 400, 102, 99 + offsets: 14, 7, 128, 128 +hitAir/hitAir004 + bounds: 1411, 941, 59, 94 + offsets: 1, 17, 64, 128 +hitAir/hitAir005 + bounds: 1839, 584, 59, 95 + offsets: 3, 16, 64, 128 +hitAir/hitAir006 + bounds: 1248, 657, 59, 95 + offsets: 3, 16, 64, 128 +hitSit/hitSit001 + bounds: 1320, 848, 73, 93 + offsets: 19, 10, 128, 128 +hitSit/hitSit002 + bounds: 639, 1062, 59, 89 + offsets: 3, 10, 64, 128 +hitSpin/hitSpin002 + bounds: 1236, 848, 84, 74 + offsets: 28, 5, 128, 128 +hitSpin/hitSpin006 + bounds: 311, 103, 106, 94 + offsets: 17, 5, 128, 128 +hitUnder/hitUnder000 + bounds: 1883, 125, 105, 76 + offsets: 12, 7, 128, 128 +hitUnder/hitUnder001 + bounds: 694, 556, 103, 77 + offsets: 12, 7, 128, 128 +hitUnder/hitUnder002 + bounds: 1139, 838, 97, 86 + offsets: 20, 7, 128, 128 +jumpBack/jumpBack000 + bounds: 1883, 201, 104, 87 + offsets: 6, 6, 128, 128 +other/hitUpper001 + bounds: 848, 0, 110, 97 + offsets: 8, 3, 128, 128 +other/hitUpper002 + bounds: 1576, 292, 98, 95 + offsets: 25, 3, 128, 128 +other/jump000 + bounds: 1281, 390, 96, 98 + offsets: 12, 3, 128, 128 +other/jump001 + bounds: 1682, 195, 97, 97 + offsets: 11, 3, 128, 128 +other/jump002 + bounds: 1779, 197, 104, 88 + offsets: 6, 5, 128, 128 +other/jump004 + bounds: 1834, 859, 64, 74 + offsets: 0, 52, 64, 128 +other/jump006 + bounds: 525, 0, 107, 102 + offsets: 8, 5, 128, 128 +other/jumpFront003 + bounds: 1632, 1123, 62, 86 + offsets: 1, 20, 64, 128 +other/sit000 + bounds: 1100, 194, 97, 98 + offsets: 26, 1, 128, 128 +other/sit002 + bounds: 1236, 752, 57, 96 + offsets: 5, 3, 64, 128 +other/sit003 + bounds: 174, 712, 68, 116 + offsets: 13, 3, 128, 128 +other/sit004 + bounds: 1604, 834, 79, 92 + offsets: 7, 3, 128, 128 +other/sit005 + bounds: 1637, 926, 62, 92 + offsets: 1, 1, 64, 128 +other/sit006 + bounds: 1683, 828, 60, 92 + offsets: 2, 1, 64, 128 +other/sit009 + bounds: 89, 603, 80, 111 + offsets: 27, 9, 128, 128 +other/sit010 + bounds: 409, 1163, 97, 99 + offsets: 27, 1, 128, 128 +other/stand000 + bounds: 522, 103, 94, 102 + offsets: 14, 11, 128, 128 +other/stand001 + bounds: 612, 428, 93, 101 + offsets: 15, 11, 128, 128 +other/stand002 + bounds: 700, 992, 95, 98 + offsets: 18, 11, 128, 128 +other/stand003 + bounds: 1873, 384, 91, 97 + offsets: 19, 11, 128, 128 +other/stand004 + bounds: 1379, 488, 94, 98 + offsets: 20, 11, 128, 128 +other/stand005 + bounds: 1391, 96, 96, 99 + offsets: 19, 11, 128, 128 +other/stand006 + bounds: 281, 602, 97, 100 + offsets: 18, 11, 128, 128 +other/stand007 + bounds: 282, 501, 97, 101 + offsets: 16, 11, 128, 128 +other/stand008 + bounds: 192, 958, 93, 103 + offsets: 15, 11, 128, 128 +other/stand009 + bounds: 300, 1061, 91, 103 + offsets: 15, 11, 128, 128 +other/walkBack001 + bounds: 0, 247, 99, 114 + offsets: 19, 5, 128, 128 +other/walkBack002 + bounds: 0, 361, 98, 114 + offsets: 19, 5, 128, 128 +other/walkBack003 + bounds: 0, 714, 95, 116 + offsets: 19, 5, 128, 128 +other/walkFront000 + bounds: 201, 0, 109, 105 + offsets: 10, 7, 128, 128 +other/walkFront001 + bounds: 1584, 99, 99, 95 + offsets: 11, 7, 128, 128 +other/walkFront002 + bounds: 947, 740, 96, 94 + offsets: 8, 7, 128, 128 +other/walkFront003 + bounds: 1051, 924, 94, 94 + offsets: 9, 7, 128, 128 +other/walkFront004 + bounds: 705, 204, 101, 96 + offsets: 8, 7, 128, 128 +shotA/shotA000 + bounds: 1473, 488, 93, 97 + offsets: 21, 17, 128, 128 +shotA/shotA001 + bounds: 1197, 194, 97, 98 + offsets: 19, 17, 128, 128 +shotA/shotA002 + bounds: 399, 300, 103, 100 + offsets: 10, 17, 128, 128 +shotA/shotA003 + bounds: 1711, 0, 105, 102 + offsets: 9, 15, 128, 128 +shotA/shotA004 + bounds: 446, 951, 97, 97 + offsets: 12, 17, 128, 128 +shotA/shotA005 + bounds: 806, 204, 98, 96 + offsets: 17, 17, 128, 128 +shotA/shotA006 + bounds: 304, 1164, 105, 99 + offsets: 9, 17, 128, 128 +shotA/shotA007 + bounds: 97, 1061, 104, 105 + offsets: 7, 17, 128, 128 +shotA/shotA008 + bounds: 418, 0, 107, 103 + offsets: 9, 17, 128, 128 +shotA/shotA009 + bounds: 698, 1090, 97, 96 + offsets: 21, 17, 128, 128 +shotA/shotA010 + bounds: 1816, 0, 105, 102 + offsets: 19, 0, 128, 128 +shotAb/shotAb002 + bounds: 93, 958, 99, 103 + offsets: 19, 17, 128, 128 +shotB/shotB000 + bounds: 0, 830, 93, 116 + offsets: 1, 2, 128, 128 +shotB/shotB001 + bounds: 543, 946, 60, 123 + offsets: 8, 4, 128, 128 +shotB/shotB003 + bounds: 1250, 568, 92, 89 + offsets: 16, 6, 128, 128 +shotB/shotB004 + bounds: 1900, 481, 93, 91 + offsets: 16, 4, 128, 128 +shotB/shotB007 + bounds: 443, 499, 51, 120 + offsets: 9, 6, 64, 128 +shotB/shotB008 + bounds: 169, 603, 65, 109 + offsets: 30, 4, 128, 128 +shotBb/shotBb000 + bounds: 1387, 759, 92, 89 + offsets: 16, 15, 128, 128 +shotBb/shotBb001 + bounds: 1900, 572, 93, 91 + offsets: 16, 13, 128, 128 +shotBb/shotBb002 + bounds: 1683, 102, 101, 93 + offsets: 12, 7, 128, 128 +shotBc/shotBc000 + bounds: 1743, 733, 91, 85 + offsets: 11, 19, 128, 128 +shotBc/shotBc001 + bounds: 1898, 758, 95, 88 + offsets: 12, 17, 128, 128 +shotBc/shotBc002 + bounds: 1743, 882, 90, 88 + offsets: 12, 17, 128, 128 +shotBd/shotBd000 + bounds: 1319, 1033, 92, 89 + offsets: 12, 14, 128, 128 +shotBd/shotBd001 + bounds: 1046, 833, 93, 91 + offsets: 12, 12, 128, 128 +shotC/shotC000 + bounds: 1294, 196, 97, 98 + offsets: 10, 12, 128, 128 +shotC/shotC001 + bounds: 297, 401, 103, 100 + offsets: 1, 12, 128, 128 +shotC/shotC002 + bounds: 417, 103, 105, 102 + offsets: 0, 10, 128, 128 +shotC/shotC003 + bounds: 1479, 756, 91, 92 + offsets: 10, 13, 128, 128 +shotC/shotC004 + bounds: 1479, 585, 83, 90 + offsets: 15, 13, 128, 128 +shotC/shotC005 + bounds: 958, 0, 109, 95 + offsets: 19, 13, 128, 128 +shotC/shotC010 + bounds: 1562, 940, 75, 92 + offsets: 37, 14, 128, 128 +shotC/shotC011 + bounds: 1391, 195, 97, 98 + offsets: 6, 13, 128, 128 +shotC/shotC012 + bounds: 297, 197, 105, 102 + offsets: 19, 0, 128, 128 +shotCb/shotCb000 + bounds: 1898, 663, 95, 95 + offsets: 29, 2, 128, 128 +shotCc/shotCc000 + bounds: 1570, 742, 91, 92 + offsets: 29, 3, 128, 128 +shotCc/shotCc001 + bounds: 1170, 1173, 83, 90 + offsets: 6, 2, 128, 128 +shotCd/shotCd000 + bounds: 852, 740, 95, 95 + offsets: 10, 2, 128, 128 +shotD/shotD001 + bounds: 1393, 848, 67, 93 + offsets: 29, 1, 128, 128 +shotD/shotD002 + bounds: 1563, 1032, 75, 91 + offsets: 21, 1, 128, 128 +shotD/shotD007 + bounds: 1742, 584, 97, 93 + offsets: 18, 1, 128, 128 +shotD/shotD008 + bounds: 1239, 922, 80, 93 + offsets: 26, 1, 128, 128 +spellA/spellA000 + bounds: 904, 204, 98, 96 + offsets: 19, 2, 128, 128 +spellA/spellA003 + bounds: 553, 1153, 91, 101 + offsets: 27, 2, 128, 128 +spellA/spellA004 + bounds: 1239, 1015, 80, 83 + offsets: 18, 2, 128, 128 +spellA/spellA005 + bounds: 1549, 1123, 83, 81 + offsets: 16, 2, 128, 128 +spellA/spellA006 + bounds: 568, 613, 83, 82 + offsets: 16, 2, 128, 128 +spellA/spellA007 + bounds: 958, 834, 88, 96 + offsets: 27, 2, 128, 128 +spellA/spellA008 + bounds: 1488, 194, 97, 98 + offsets: 24, 2, 128, 128 +spellB/spellB000 + bounds: 1027, 95, 97, 99 + offsets: 28, 2, 128, 128 +spellB/spellB001 + bounds: 1384, 294, 96, 96 + offsets: 29, 2, 128, 128 +spellB/spellB002 + bounds: 1869, 288, 96, 96 + offsets: 29, 2, 128, 128 +spellB/spellB003 + bounds: 1480, 293, 96, 97 + offsets: 31, 2, 128, 128 +spellB/spellB005 + bounds: 0, 124, 98, 123 + offsets: 30, 2, 128, 128 +spellB/spellB006 + bounds: 0, 0, 98, 124 + offsets: 30, 2, 128, 128 +spellB/spellB007 + bounds: 0, 475, 90, 121 + offsets: 29, 2, 128, 128 +spellB/spellB008 + bounds: 1066, 1112, 84, 93 + offsets: 29, 0, 128, 128 +spellB/spellB009 + bounds: 616, 102, 80, 103 + offsets: 30, 1, 128, 128 +spellB/spellB010 + bounds: 93, 830, 66, 128 + offsets: 29, 0, 128, 128 +spellB/spellB011 + bounds: 99, 348, 68, 127 + offsets: 30, 0, 128, 128 +spellB/spellB012 + bounds: 1898, 910, 94, 90 + offsets: 26, 9, 128, 128 +spellB/spellB013 + bounds: 543, 1069, 96, 84 + offsets: 28, 10, 128, 128 +spellB/spellB014 + bounds: 1585, 194, 97, 98 + offsets: 29, 10, 128, 128 +spellBulletGa/spellBulletGa000 + bounds: 1514, 848, 90, 92 + offsets: 19, 18, 128, 128 +spellBulletHa/spellBulletHa000 + bounds: 1880, 1128, 62, 62 + offsets: 1, 1, 64, 64 +spellC/spellC000 + bounds: 204, 1165, 100, 98 + offsets: 21, 10, 128, 128 +spellC/spellC001 + bounds: 201, 1061, 99, 104 + offsets: 18, 4, 128, 128 +spellC/spellC002 + bounds: 358, 953, 88, 107 + offsets: 27, 2, 128, 128 +spellC/spellC004 + bounds: 1605, 0, 106, 99 + offsets: 20, 10, 128, 128 +spellC/spellC006 + bounds: 98, 0, 103, 116 + offsets: 17, 10, 128, 128 +spellC/spellC012 + bounds: 1562, 586, 88, 91 + offsets: 35, 10, 160, 128 +spellCall/spellCall000 + bounds: 1002, 204, 98, 96 + offsets: 21, 27, 128, 128 +spellCall/spellCall001 + bounds: 1674, 292, 98, 95 + offsets: 22, 27, 128, 128 +spellCall/spellCall002 + bounds: 1283, 0, 108, 95 + offsets: 19, 27, 128, 128 +spellCall/spellCall003 + bounds: 402, 205, 104, 95 + offsets: 15, 27, 128, 128 +spellCall/spellCall004 + bounds: 506, 205, 100, 95 + offsets: 12, 27, 128, 128 +spellCall/spellCall005 + bounds: 1650, 482, 92, 97 + offsets: 17, 27, 128, 128 +spellCall/spellCall010 + bounds: 1644, 387, 98, 95 + offsets: 22, 27, 128, 128 +spellCall/spellCall011 + bounds: 1286, 294, 98, 96 + offsets: 21, 27, 128, 128 +spellD/spellD000 + bounds: 1124, 95, 97, 99 + offsets: 3, 0, 128, 128 +spellD/spellD001 + bounds: 1001, 556, 99, 92 + offsets: 9, 4, 128, 128 +spellD/spellD002 + bounds: 632, 0, 108, 101 + offsets: 5, 4, 128, 128 +spellD/spellD005 + bounds: 506, 1153, 47, 109 + offsets: 10, 4, 64, 128 +spellD/spellD006 + bounds: 847, 634, 48, 96 + offsets: 12, 4, 64, 128 +spellD/spellD007 + bounds: 1460, 848, 54, 93 + offsets: 10, 4, 64, 128 +spellD/spellD008 + bounds: 795, 979, 75, 97 + offsets: 28, 2, 128, 128 +spellD/spellD009 + bounds: 1566, 488, 84, 98 + offsets: 22, 1, 128, 128 +spellD/spellD010 + bounds: 700, 893, 84, 99 + offsets: 22, 1, 128, 128 +spellD/spellD011 + bounds: 1742, 486, 84, 98 + offsets: 22, 1, 128, 128 +spellD/spellD013 + bounds: 1253, 1162, 67, 91 + offsets: 36, 2, 128, 128 +spellD/spellD014 + bounds: 1638, 1018, 68, 91 + offsets: 35, 2, 128, 128 +spellDb/spellDb000 + bounds: 1221, 95, 97, 99 + offsets: 3, 0, 128, 128 +spellDb/spellDb001 + bounds: 1784, 102, 99, 95 + offsets: 9, 1, 128, 128 +spellDb/spellDb002 + bounds: 310, 0, 108, 103 + offsets: 5, 2, 128, 128 +spellDb/spellDb004 + bounds: 234, 602, 47, 110 + offsets: 11, 2, 64, 128 +spellDb/spellDb005 + bounds: 186, 231, 47, 112 + offsets: 10, 1, 64, 128 +spellDb/spellDb006 + bounds: 1238, 292, 48, 98 + offsets: 12, 2, 64, 128 +spellDb/spellDb007 + bounds: 644, 1151, 54, 95 + offsets: 10, 2, 64, 128 +spellEa/spellEa000 + bounds: 1471, 390, 89, 98 + offsets: 37, 2, 128, 128 +spellEa/spellEa014 + bounds: 494, 514, 96, 98 + offsets: 31, 2, 128, 128 +spellFa/spellFa000 + bounds: 1487, 1118, 62, 88 +spellFa/spellFa001 + bounds: 1320, 1122, 90, 85 +spellFa/spellFa002 + bounds: 1152, 568, 98, 89 +spellFa/spellFa003 + bounds: 1743, 818, 91, 64 +spellFa/spellFa004 + bounds: 1150, 1082, 88, 91 +spellFa/spellFa008 + bounds: 98, 116, 99, 115 +spellFa/spellFa009 + bounds: 99, 231, 87, 117 +spellFa/spellFa010 + bounds: 0, 946, 93, 115 +spellFa/spellFa011 + bounds: 0, 1061, 97, 114 +spellFa/spellFa012 + bounds: 607, 897, 93, 99 +standUp/standUp000 + bounds: 1656, 674, 84, 62 + offsets: 19, 1, 128, 64 +standUp/standUp002 + bounds: 1758, 1158, 58, 65 + offsets: 3, 31, 64, 128 diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png new file mode 100644 index 0000000..0a5c386 Binary files /dev/null and b/src/main/resources/logo.png differ diff --git a/src/main/resources/ui/uiskin.atlas b/src/main/resources/ui/uiskin.atlas new file mode 100644 index 0000000..82f937f --- /dev/null +++ b/src/main/resources/ui/uiskin.atlas @@ -0,0 +1,24 @@ +uiskin.png +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +button-up + rotate: false + xy: 0, 0 + size: 200, 60 + split: 10, 10, 10, 10 + orig: 200, 60 + offset: 0, 0 +button-down + rotate: false + xy: 0, 60 + size: 200, 60 + split: 10, 10, 10, 10 + orig: 200, 60 + offset: 0, 0 +white + rotate: false + xy: 0, 120 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 \ No newline at end of file diff --git a/src/main/resources/ui/uiskin.json b/src/main/resources/ui/uiskin.json new file mode 100644 index 0000000..73a6955 --- /dev/null +++ b/src/main/resources/ui/uiskin.json @@ -0,0 +1,46 @@ +{ + "com.badlogic.gdx.graphics.g2d.BitmapFont": { + "default-font": { + "file": "default.fnt" + } + }, + "com.badlogic.gdx.graphics.Color": { + "black": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "white": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + } + }, + "com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable": { + "dialogDim": { + "name": "white", + "color": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.45 + } + } + }, + "com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle": { + "default": { + "up": "button-up", + "down": "button-down" + } + }, + "com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle": { + "default": { + "up": "button-up", + "down": "button-down", + "font": "default-font", + "fontColor": "black" + } + } +} \ No newline at end of file diff --git a/target/classes/FLyouzichati-Regular-2.ttf b/target/classes/FLyouzichati-Regular-2.ttf new file mode 100644 index 0000000..9eb741a Binary files /dev/null and b/target/classes/FLyouzichati-Regular-2.ttf differ diff --git a/target/classes/character/alice/精灵1.2-0.png b/target/classes/character/alice/精灵1.2-0.png index 0a30288..b8b088d 100644 Binary files a/target/classes/character/alice/精灵1.2-0.png and b/target/classes/character/alice/精灵1.2-0.png differ diff --git a/target/classes/character/alice/精灵1.2-1.png b/target/classes/character/alice/精灵1.2-1.png deleted file mode 100644 index 67999e9..0000000 Binary files a/target/classes/character/alice/精灵1.2-1.png and /dev/null differ diff --git a/target/classes/character/alice/精灵1.2-2.png b/target/classes/character/alice/精灵1.2-2.png deleted file mode 100644 index daf979e..0000000 Binary files a/target/classes/character/alice/精灵1.2-2.png and /dev/null differ diff --git a/target/classes/character/alice/精灵1.2.atlas b/target/classes/character/alice/精灵1.2.atlas index 0ddec6b..23cae6a 100644 --- a/target/classes/character/alice/精灵1.2.atlas +++ b/target/classes/character/alice/精灵1.2.atlas @@ -1,1078 +1,1397 @@ -精灵1.2.png -size: 2048, 3522 +精灵1.2-0.png +size: 1999, 2047 format: RGBA8888 filter: Linear, Linear repeat: none pma: false alpha/alpha000 - bounds: 0, 661, 256, 256 + bounds: 0, 192, 256, 256 attackAa/attackAa000 - bounds: 1824, 0, 128, 128 + bounds: 851, 1047, 59, 101 + offsets: 30, 13, 128, 128 attackAa/attackAa001 - bounds: 640, 1557, 128, 128 + bounds: 1481, 877, 61, 98 + offsets: 22, 13, 128, 128 attackAa/attackAa002 - bounds: 0, 2965, 128, 128 + bounds: 764, 1047, 87, 97 + offsets: 24, 13, 128, 128 attackAa/attackAa003 - bounds: 128, 2709, 128, 128 + bounds: 1142, 677, 95, 95 + offsets: 26, 13, 128, 128 attackAa/attackAa004 - bounds: 256, 2453, 128, 128 + bounds: 1304, 372, 91, 96 + offsets: 24, 13, 128, 128 attackAa/attackAa005 - bounds: 384, 2197, 128, 128 + bounds: 1086, 873, 67, 100 + offsets: 29, 13, 128, 128 attackAa/attackAa006 - bounds: 512, 2069, 128, 128 + bounds: 1532, 692, 56, 102 + offsets: 36, 13, 128, 128 attackAb/attackAb000 - bounds: 1824, 128, 128, 128 + bounds: 1655, 769, 57, 77 + offsets: 32, 12, 128, 128 attackAb/attackAb001 - bounds: 640, 1685, 128, 128 + bounds: 890, 1756, 64, 65 + offsets: 26, 12, 128, 128 attackAb/attackAb002 - bounds: 0, 3093, 128, 128 + bounds: 1368, 1496, 77, 67 + offsets: 20, 12, 128, 128 attackAb/attackAb003 - bounds: 128, 2837, 128, 128 + bounds: 1615, 599, 97, 67 + offsets: 22, 11, 128, 128 attackAb/attackAb004 - bounds: 256, 2581, 128, 128 + bounds: 1279, 1262, 80, 69 + offsets: 17, 12, 128, 128 attackAb/attackAb005 - bounds: 384, 2325, 128, 128 + bounds: 338, 1865, 70, 76 + offsets: 25, 12, 128, 128 attackAb/attackAb006 - bounds: 512, 2197, 128, 128 + bounds: 1940, 893, 59, 77 + offsets: 35, 12, 128, 128 attackAc/attackAc000 - bounds: 1824, 256, 128, 128 + bounds: 471, 1862, 55, 79 + offsets: 35, 34, 128, 128 attackAc/attackAc001 - bounds: 640, 1813, 128, 128 + bounds: 1422, 1176, 57, 79 + offsets: 32, 31, 128, 128 attackAc/attackAc002 - bounds: 0, 3221, 128, 128 + bounds: 1712, 774, 66, 80 + offsets: 25, 29, 128, 128 attackAc/attackAc003 - bounds: 128, 2965, 128, 128 + bounds: 934, 1343, 68, 78 + offsets: 24, 30, 128, 128 attackAc/attackAc004 - bounds: 256, 2709, 128, 128 + bounds: 1152, 515, 104, 68 + offsets: 24, 36, 128, 128 attackAc/attackAc005 - bounds: 384, 2453, 128, 128 + bounds: 647, 1469, 101, 71 + offsets: 25, 35, 128, 128 attackAc/attackAc006 - bounds: 512, 2325, 128, 128 + bounds: 244, 1865, 94, 76 + offsets: 29, 32, 128, 128 attackAc/attackAc007 - bounds: 640, 1941, 128, 128 + bounds: 1872, 268, 78, 82 + offsets: 32, 29, 128, 128 attackAc/attackAc008 - bounds: 0, 3349, 128, 128 + bounds: 442, 1599, 66, 92 + offsets: 35, 21, 128, 128 attackAc/attackAc009 - bounds: 128, 3093, 128, 128 + bounds: 1166, 1069, 59, 95 + offsets: 37, 19, 128, 128 attackAc/attackAc010 - bounds: 256, 2837, 128, 128 + bounds: 1002, 1343, 57, 100 + offsets: 34, 13, 128, 128 attackAd/attackAd000 - bounds: 384, 2581, 128, 128 + bounds: 1542, 877, 53, 104 + offsets: 35, 11, 128, 128 attackAd/attackAd001 - bounds: 512, 2453, 128, 128 + bounds: 1424, 1255, 55, 102 + offsets: 35, 11, 128, 128 attackAd/attackAd002 - bounds: 640, 2069, 128, 128 + bounds: 1588, 666, 68, 102 + offsets: 41, 11, 128, 128 attackAd/attackAd003 - bounds: 128, 3221, 128, 128 + bounds: 771, 1241, 82, 101 + offsets: 32, 11, 128, 128 attackAd/attackAd004 - bounds: 256, 2965, 128, 128 + bounds: 849, 1420, 83, 100 + offsets: 31, 11, 128, 128 attackAd/attackAd005 - bounds: 384, 2709, 128, 128 + bounds: 1686, 306, 75, 101 + offsets: 33, 11, 128, 128 attackAd/attackAd006 - bounds: 512, 2581, 128, 128 + bounds: 519, 1442, 58, 104 + offsets: 41, 11, 128, 128 attackAd/attackAd007 - bounds: 640, 2197, 128, 128 + bounds: 1481, 773, 51, 104 + offsets: 43, 11, 128, 128 attackAd/attackAd008 - bounds: 128, 3349, 128, 128 + bounds: 618, 1592, 47, 104 + offsets: 41, 11, 128, 128 attackBc/attackBc009 - bounds: 800, 320, 256, 128 + bounds: 1086, 973, 68, 96 + offsets: 28, 11, 256, 128 attackBc/attackBc010 - bounds: 0, 1173, 256, 128 + bounds: 1429, 1076, 56, 100 + offsets: 29, 11, 256, 128 attackBc/attackBc011 - bounds: 256, 917, 256, 128 + bounds: 1122, 1339, 49, 103 + offsets: 27, 11, 256, 128 attackBc/attackBc012 - bounds: 512, 789, 256, 128 + bounds: 788, 1583, 47, 104 + offsets: 26, 11, 256, 128 attackBe/attackBe000 - bounds: 768, 533, 64, 128 + bounds: 1766, 1789, 54, 75 + offsets: 10, 14, 64, 128 attackBf/attackBf000 - bounds: 1312, 168, 256, 128 + bounds: 835, 1581, 55, 104 + offsets: 18, 11, 256, 128 attackBf/attackBf001 - bounds: 1568, 0, 256, 128 + bounds: 1063, 1442, 63, 99 + offsets: 21, 13, 256, 128 attackBf/attackBf002 - bounds: 1056, 320, 256, 128 + bounds: 1000, 1443, 63, 96 + offsets: 28, 13, 256, 128 attackBf/attackBf003 - bounds: 0, 1301, 256, 128 + bounds: 1304, 468, 88, 93 + offsets: 25, 11, 256, 128 attackBf/attackBf004 - bounds: 256, 1045, 256, 128 + bounds: 1140, 583, 87, 94 + offsets: 24, 11, 256, 128 attackBf/attackBf005 - bounds: 512, 917, 256, 128 + bounds: 1142, 772, 76, 95 + offsets: 25, 11, 256, 128 attackCa/attackCa000 - bounds: 1536, 847, 116, 104 + bounds: 1941, 616, 58, 99 + offsets: 12, 0, 116, 104 attackCa/attackCa001 - bounds: 1536, 951, 116, 104 + bounds: 1365, 869, 66, 97 + offsets: 7, 0, 116, 104 attackCa/attackCa002 - bounds: 1536, 1055, 116, 104 + bounds: 1876, 640, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa003 - bounds: 1536, 1159, 116, 104 + bounds: 1359, 1255, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa004 - bounds: 1536, 1263, 116, 104 + bounds: 1541, 1278, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa005 - bounds: 1536, 1367, 116, 104 + bounds: 1541, 1374, 65, 96 + offsets: 6, 0, 116, 104 attackCa/attackCa006 - bounds: 1536, 1471, 116, 104 + bounds: 1358, 966, 71, 96 + offsets: 0, 0, 116, 104 attackCa/attackCa007 - bounds: 1536, 1575, 116, 104 + bounds: 996, 1145, 71, 96 + offsets: 0, 0, 116, 104 attackCa/attackCa008 - bounds: 1536, 1679, 116, 104 + bounds: 1060, 1541, 66, 94 + offsets: 18, 0, 116, 104 attackCa/attackCa009 - bounds: 1536, 1783, 116, 104 + bounds: 1006, 768, 80, 87 + offsets: 20, 0, 116, 104 attackCa/attackCa010 - bounds: 1536, 1887, 116, 104 + bounds: 1218, 785, 83, 81 + offsets: 31, 0, 116, 104 attackCa/attackCa011 - bounds: 1536, 1991, 116, 104 + bounds: 1792, 599, 84, 84 + offsets: 30, 0, 116, 104 attackCa/attackCa012 - bounds: 1536, 2095, 116, 104 + bounds: 851, 1148, 76, 93 + offsets: 22, 0, 116, 104 attackCa/attackCa013 - bounds: 1652, 896, 116, 104 + bounds: 1291, 1167, 68, 95 + offsets: 24, 0, 116, 104 attackCa/attackCa014 - bounds: 1652, 1000, 116, 104 + bounds: 1941, 516, 58, 100 + offsets: 24, 0, 116, 104 attackCa/attackCa015 - bounds: 1768, 896, 116, 104 + bounds: 1150, 1848, 51, 101 + offsets: 23, 0, 116, 104 attackCa/attackCa016 - bounds: 1652, 1104, 116, 104 -back/spell000 - bounds: 256, 3093, 128, 128 -back/spell001 - bounds: 0, 0, 800, 533 -back/spell002 - bounds: 800, 64, 256, 256 -back/spell003 - bounds: 0, 917, 256, 256 -back/spell004 - bounds: 256, 661, 256, 256 -back/spell005 - bounds: 512, 533, 256, 256 -back/spell006 - bounds: 1056, 64, 256, 256 + bounds: 1429, 974, 52, 102 + offsets: 18, 0, 116, 104 BulletAa/BulletAa000 - bounds: 1747, 2949, 32, 32 + bounds: 1844, 396, 32, 32 BulletAa/BulletAa001 - bounds: 2000, 2950, 32, 32 + bounds: 1796, 2015, 32, 32 BulletAa/BulletAa002 - bounds: 1434, 830, 32, 32 + bounds: 1828, 2015, 32, 32 BulletAa/BulletAa003 - bounds: 1865, 3216, 32, 32 + bounds: 1860, 2015, 32, 32 BulletAa/BulletAa004 - bounds: 1344, 3482, 32, 32 + bounds: 1606, 1145, 32, 32 BulletAa/BulletAa005 - bounds: 1376, 3482, 32, 32 + bounds: 1906, 1931, 32, 32 BulletAa/BulletAa006 - bounds: 1408, 3482, 32, 32 + bounds: 1892, 2009, 32, 32 BulletAb/BulletAb000 - bounds: 1152, 3456, 64, 64 + bounds: 384, 1691, 64, 64 BulletAb/BulletAb001 - bounds: 1884, 1556, 64, 64 + bounds: 1651, 407, 64, 64 BulletAb/BulletAb002 - bounds: 1896, 1472, 64, 64 + bounds: 1715, 407, 64, 64 BulletAb/BulletAb003 - bounds: 1950, 1406, 64, 64 + bounds: 448, 1691, 64, 64 BulletAb/BulletAb004 - bounds: 1673, 3185, 64, 64 + bounds: 512, 1691, 64, 64 BulletAb/BulletAb005 - bounds: 1691, 3449, 64, 64 + bounds: 993, 1983, 64, 64 BulletAb/BulletAb006 - bounds: 1686, 2785, 64, 64 + bounds: 1057, 1983, 64, 64 BulletAc/BulletAc000 - bounds: 1737, 3185, 64, 64 + bounds: 1542, 1983, 64, 64 BulletAc/BulletAc001 - bounds: 1801, 3185, 64, 64 + bounds: 1606, 1983, 64, 64 BulletAc/BulletAc002 - bounds: 1897, 3088, 64, 64 + bounds: 1670, 1979, 64, 64 BulletAc/BulletAc003 - bounds: 1961, 3088, 64, 64 + bounds: 1766, 1725, 64, 64 BulletAc/BulletAc004 - bounds: 1881, 3152, 64, 64 + bounds: 1830, 1725, 64, 64 BulletAc/BulletAc005 - bounds: 1945, 3152, 64, 64 + bounds: 1820, 1789, 64, 64 BulletAc/BulletAc006 - bounds: 1961, 3216, 64, 64 + bounds: 1715, 1874, 64, 64 BulletBa/BulletBa000 - bounds: 800, 0, 512, 64 + bounds: 0, 128, 512, 64 BulletCa/BulletCa000 - bounds: 384, 2837, 128, 128 + bounds: 128, 1472, 128, 128 BulletCa/BulletCa001 - bounds: 512, 2709, 128, 128 + bounds: 256, 1216, 128, 128 BulletCa/BulletCa002 - bounds: 640, 2325, 128, 128 + bounds: 384, 960, 128, 128 BulletDa/BulletDa000 - bounds: 1961, 3280, 64, 64 + bounds: 1779, 1864, 64, 64 BulletDa/BulletDa001 - bounds: 1923, 3344, 64, 64 + bounds: 1843, 1853, 64, 64 BulletDb/BulletDb005 - bounds: 1280, 512, 32, 128 + bounds: 1240, 385, 32, 128 BulletDb/BulletDb006 - bounds: 1280, 640, 32, 128 + bounds: 730, 936, 32, 128 BulletDb/BulletDb007 - bounds: 1952, 640, 32, 128 + bounds: 1272, 266, 32, 128 BulletDb/BulletDb008 - bounds: 1952, 768, 32, 128 + bounds: 1272, 394, 32, 128 BulletDb/BulletDb009 - bounds: 1938, 955, 32, 128 + bounds: 732, 1064, 32, 128 BulletDb/BulletDb010 - bounds: 1526, 2238, 32, 128 + bounds: 477, 1337, 32, 128 BulletDb/BulletDb011 - bounds: 1526, 2366, 32, 128 + bounds: 372, 1472, 32, 128 BulletDb/BulletDb012 - bounds: 1526, 2494, 32, 128 + bounds: 1654, 279, 32, 128 BulletDb/BulletDb013 - bounds: 1526, 2622, 32, 128 + bounds: 1648, 471, 32, 128 BulletDb/BulletDb014 - bounds: 1526, 2750, 32, 128 + bounds: 1680, 471, 32, 128 BulletDb/BulletDb015 - bounds: 1740, 2277, 32, 128 + bounds: 1712, 471, 32, 128 BulletDb/BulletDb016 - bounds: 1643, 2508, 32, 128 + bounds: 1744, 471, 32, 128 BulletDb/BulletDb017 - bounds: 1643, 2636, 32, 128 + bounds: 1776, 471, 32, 128 BulletDb/BulletDb018 - bounds: 1729, 2483, 32, 128 + bounds: 1808, 471, 32, 128 BulletDb/BulletDb019 - bounds: 1729, 2611, 32, 128 + bounds: 1840, 471, 32, 128 BulletEa/BulletEa000 - bounds: 256, 3221, 128, 128 + bounds: 512, 936, 128, 128 BulletEa/BulletEa001 - bounds: 384, 2965, 128, 128 + bounds: 640, 680, 128, 128 BulletEa/BulletEa002 - bounds: 512, 2837, 128, 128 + bounds: 768, 512, 128, 128 BulletFa/BulletFa000 - bounds: 0, 3477, 128, 32 + bounds: 512, 1192, 128, 32 BulletFa/BulletFa001 - bounds: 640, 2453, 128, 128 + bounds: 896, 448, 128, 128 bulletFb/bulletFb000 - bounds: 896, 3458, 128, 64 + bounds: 896, 704, 128, 64 bulletFb/bulletFb001 - bounds: 1024, 3458, 128, 64 + bounds: 768, 867, 128, 64 bulletFb/bulletFb002 - bounds: 1216, 3430, 128, 64 + bounds: 1408, 214, 128, 64 bulletFb/bulletFb003 - bounds: 1643, 2213, 128, 64 + bounds: 1536, 215, 128, 64 bulletFb/bulletFb004 - bounds: 1558, 2817, 128, 64 + bounds: 896, 855, 128, 64 bulletFb/bulletFb005 - bounds: 1768, 1492, 128, 64 + bounds: 1398, 278, 128, 64 bulletFb/bulletFb006 - bounds: 1756, 1556, 128, 64 + bounds: 1526, 279, 128, 64 bulletFb/bulletFb007 - bounds: 1749, 1620, 128, 64 + bounds: 1398, 342, 128, 64 bulletFb/bulletFb008 - bounds: 1749, 1684, 128, 64 + bounds: 1526, 343, 128, 64 bulletFb/bulletFb009 - bounds: 1749, 1748, 128, 64 + bounds: 256, 1691, 128, 64 bulletFb/bulletFb010 - bounds: 1749, 1812, 128, 64 + bounds: 1395, 406, 128, 64 bulletFb/bulletFb011 - bounds: 1749, 1876, 128, 64 + bounds: 1523, 407, 128, 64 bulletFb/bulletFb012 - bounds: 1749, 1940, 128, 64 + bounds: 1392, 470, 128, 64 bulletFb/bulletFb013 - bounds: 1749, 2004, 128, 64 + bounds: 1520, 471, 128, 64 bulletFb/bulletFb014 - bounds: 1770, 2123, 128, 64 + bounds: 1392, 534, 128, 64 bulletFb/bulletFb015 - bounds: 1771, 2187, 128, 64 + bounds: 1520, 535, 128, 64 bulletFb/bulletFb016 - bounds: 1772, 2251, 128, 64 + bounds: 896, 919, 128, 64 bulletGa/bulletGa000 - bounds: 800, 448, 256, 32 + bounds: 896, 256, 256, 32 bulletGa/bulletGa001 - bounds: 1312, 296, 256, 32 + bounds: 1152, 0, 256, 32 bulletGa/bulletGa002 - bounds: 1568, 128, 256, 32 + bounds: 896, 288, 256, 32 bulletGa/bulletGa003 - bounds: 800, 480, 256, 32 + bounds: 1152, 32, 256, 32 bulletGa/bulletGa004 - bounds: 1056, 448, 256, 32 + bounds: 1408, 0, 256, 32 bulletGa/bulletGa005 - bounds: 1312, 328, 256, 32 + bounds: 896, 320, 256, 32 bulletGa/bulletGa006 - bounds: 1568, 160, 256, 32 + bounds: 1152, 64, 256, 32 bulletGa/bulletGa007 - bounds: 1056, 480, 256, 32 + bounds: 1408, 32, 256, 32 bulletGa/bulletGa008 - bounds: 1312, 360, 256, 32 + bounds: 1664, 0, 256, 32 bulletGa/bulletGa009 - bounds: 1568, 192, 256, 32 + bounds: 896, 352, 256, 32 bulletGa/bulletGa010 - bounds: 1312, 392, 256, 32 + bounds: 1152, 96, 256, 32 bulletGa/bulletGa011 - bounds: 1568, 224, 256, 32 + bounds: 1408, 64, 256, 32 bulletGa/bulletGa012 - bounds: 1312, 424, 256, 32 + bounds: 1664, 32, 256, 32 bulletGa/bulletGa013 - bounds: 1568, 256, 256, 32 + bounds: 896, 384, 256, 32 bulletGa/bulletGa014 - bounds: 1312, 456, 256, 32 + bounds: 1152, 128, 256, 32 bulletGb/bulletGb000 - bounds: 1568, 288, 256, 32 + bounds: 1408, 96, 256, 32 crash/crash000 - bounds: 256, 3349, 128, 128 + bounds: 837, 1790, 53, 103 + offsets: 37, 12, 128, 128 crash/crash001 - bounds: 384, 3093, 128, 128 + bounds: 1542, 1078, 64, 101 + offsets: 29, 13, 128, 128 crash/crash002 - bounds: 512, 2965, 128, 128 + bounds: 1876, 539, 65, 101 + offsets: 28, 13, 128, 128 crash/crash003 - bounds: 640, 2581, 128, 128 + bounds: 830, 1907, 53, 103 + offsets: 37, 12, 128, 128 dashBack/dashBack000 - bounds: 384, 3221, 128, 128 + bounds: 1231, 1746, 63, 93 + offsets: 29, 22, 128, 128 dashBack/dashBack001 - bounds: 512, 3093, 128, 128 + bounds: 1606, 1383, 63, 92 + offsets: 34, 22, 128, 128 dashBack/dashBack002 - bounds: 640, 2709, 128, 128 + bounds: 1292, 869, 73, 96 + offsets: 30, 17, 128, 128 dashBack/dashBack003 - bounds: 384, 3349, 128, 128 + bounds: 775, 1414, 74, 96 + offsets: 29, 17, 128, 128 dashFront/dashFront000 - bounds: 512, 3221, 128, 128 + bounds: 1446, 1841, 61, 94 + offsets: 47, 11, 128, 128 dashFront/dashFront001 - bounds: 640, 2837, 128, 128 + bounds: 1876, 350, 74, 88 + offsets: 40, 11, 128, 128 dashFront/dashFront002 - bounds: 512, 3349, 128, 128 + bounds: 1086, 1069, 80, 78 + offsets: 38, 11, 128, 128 dashFront/dashFront003 - bounds: 640, 2965, 128, 128 + bounds: 1139, 1164, 80, 77 + offsets: 38, 11, 128, 128 dashFront/dashFront004 - bounds: 640, 3093, 128, 128 + bounds: 1929, 1419, 53, 89 + offsets: 47, 13, 128, 128 dashFront/dashFront005 - bounds: 640, 3221, 128, 128 + bounds: 1947, 970, 52, 93 + offsets: 47, 11, 128, 128 dashFront/dashFront006 - bounds: 640, 3349, 128, 128 + bounds: 1445, 1495, 49, 97 + offsets: 45, 11, 128, 128 dashFrontAir/dashFrontAir000 - bounds: 1720, 384, 128, 128 + bounds: 771, 1907, 59, 101 + offsets: 38, 7, 128, 128 down/down000 - bounds: 1848, 384, 128, 128 + bounds: 1917, 1143, 56, 93 + offsets: 36, 4, 128, 128 down/down001 - bounds: 1715, 512, 128, 128 + bounds: 1728, 1643, 61, 74 + offsets: 30, 4, 128, 128 down/down002 - bounds: 1843, 512, 128, 128 + bounds: 1279, 1331, 80, 68 + offsets: 24, 4, 128, 128 down/down003 - bounds: 832, 514, 128, 128 + bounds: 1566, 1565, 66, 94 + offsets: 24, 2, 128, 128 down/down004 - bounds: 960, 514, 128, 128 + bounds: 729, 1583, 59, 98 + offsets: 32, 17, 128, 128 down/down005 - bounds: 1088, 512, 128, 128 + bounds: 1345, 1423, 82, 73 + offsets: 25, 19, 128, 128 down/down006 - bounds: 768, 661, 128, 128 + bounds: 1301, 819, 95, 50 + offsets: 20, 13, 128, 128 down/down007 - bounds: 768, 789, 128, 128 + bounds: 1370, 654, 105, 38 + offsets: 15, 10, 128, 128 down/down008 - bounds: 768, 917, 128, 128 + bounds: 1475, 654, 104, 38 + offsets: 15, 11, 128, 128 emotionAa/emotionAa000 - bounds: 1976, 367, 72, 100 + bounds: 200, 1948, 69, 99 + offsets: 3, 0, 72, 100 emotionAa/emotionAa001 - bounds: 1976, 467, 72, 100 + bounds: 1686, 207, 69, 99 + offsets: 3, 0, 72, 100 emotionBa/emotionBa000 - bounds: 1216, 512, 64, 128 + bounds: 976, 983, 48, 105 + offsets: 16, 11, 64, 128 face/face000 - bounds: 1312, 488, 160, 64 + bounds: 762, 987, 127, 60 + offsets: 0, 4, 160, 64 Guard/Guard000 - bounds: 0, 1429, 128, 256 + bounds: 0, 448, 128, 256 guardBUnder/guardBUnder000 - bounds: 768, 1045, 128, 128 + bounds: 1942, 1673, 57, 76 + offsets: 31, 11, 128, 128 guardBUnder/guardBUnder001 - bounds: 768, 1173, 128, 128 + bounds: 1892, 970, 55, 77 + offsets: 33, 11, 128, 128 guardBUpper/guardBUpper000 - bounds: 768, 1301, 128, 128 + bounds: 1602, 1179, 56, 99 + offsets: 27, 11, 128, 128 guardBUpper/guardBUpper001 - bounds: 768, 1429, 128, 128 + bounds: 1542, 981, 57, 97 + offsets: 26, 11, 128, 128 guardSit/guardSit000 - bounds: 768, 1557, 128, 128 + bounds: 1857, 96, 93, 110 + offsets: 35, 18, 128, 128 guardSit/guardSit001 - bounds: 768, 1685, 128, 128 + bounds: 244, 1755, 90, 110 + offsets: 38, 18, 128, 128 guardUnder/guardUnder000 - bounds: 768, 1813, 128, 128 + bounds: 1765, 96, 92, 111 + offsets: 36, 0, 128, 128 guardUnder/guardUnder001 - bounds: 768, 1941, 128, 128 + bounds: 1672, 96, 93, 111 + offsets: 35, 0, 128, 128 guardUpper/guardUpper000 - bounds: 768, 2069, 128, 128 + bounds: 384, 1337, 93, 117 + offsets: 35, 11, 128, 128 guardUpper/guardUpper001 - bounds: 768, 2197, 128, 128 + bounds: 640, 1065, 92, 117 + offsets: 36, 11, 128, 128 hitAir/hitAir000 - bounds: 768, 2325, 128, 128 + bounds: 1294, 1739, 52, 102 + offsets: 36, 15, 128, 128 hitAir/hitAir001 - bounds: 768, 2453, 128, 128 + bounds: 646, 1757, 59, 98 + offsets: 32, 26, 128, 128 hitAir/hitAir002 - bounds: 768, 2581, 128, 128 + bounds: 1712, 599, 80, 82 + offsets: 20, 31, 128, 128 hitAir/hitAir003 - bounds: 768, 2709, 128, 128 + bounds: 1279, 1496, 89, 50 + offsets: 14, 45, 128, 128 hitAir/hitAir004 - bounds: 768, 2837, 128, 128 + bounds: 849, 1345, 85, 75 + offsets: 22, 32, 128, 128 hitAir/hitAir005 - bounds: 768, 2965, 128, 128 + bounds: 1219, 1165, 72, 88 + offsets: 26, 22, 128, 128 hitAir/hitAir006 - bounds: 768, 3093, 128, 128 + bounds: 403, 1941, 57, 106 + offsets: 35, 14, 128, 128 hitAir/hitAir007 - bounds: 768, 3221, 128, 128 + bounds: 447, 1755, 51, 107 + offsets: 42, 11, 128, 128 hitAir/hitAir008 - bounds: 768, 3349, 128, 128 + bounds: 498, 1755, 50, 107 + offsets: 39, 11, 128, 128 hitSit/hitSit000 - bounds: 1984, 2082, 64, 74 + bounds: 1445, 1592, 60, 72 + offsets: 0, 0, 64, 74 hitSit/hitSit001 - bounds: 1984, 2156, 64, 74 + bounds: 1542, 1909, 61, 74 + offsets: 2, 0, 64, 74 hitSit/hitSit002 - bounds: 1886, 1398, 64, 74 + bounds: 1789, 1651, 53, 74 + offsets: 11, 0, 64, 74 hitSpin/hitSpin000 - bounds: 1024, 642, 64, 128 + bounds: 1188, 1546, 52, 96 + offsets: 7, 13, 64, 128 hitSpin/hitSpin001 - bounds: 896, 642, 128, 128 + bounds: 771, 1144, 80, 97 + offsets: 18, 13, 128, 128 hitSpin/hitSpin002 - bounds: 1024, 770, 64, 128 + bounds: 890, 1661, 64, 95 + offsets: 0, 13, 64, 128 hitSpin/hitSpin003 - bounds: 1216, 640, 64, 128 + bounds: 665, 1583, 64, 98 + offsets: 0, 13, 64, 128 hitSpin/hitSpin004 - bounds: 1024, 898, 64, 128 + bounds: 1866, 1244, 52, 97 + offsets: 0, 13, 64, 128 hitSpin/hitSpin005 - bounds: 896, 770, 128, 128 + bounds: 1920, 0, 79, 96 + offsets: 17, 13, 128, 128 hitUnder/hitUnder000 - bounds: 896, 898, 128, 128 + bounds: 1505, 1573, 61, 92 + offsets: 28, 11, 128, 128 hitUnder/hitUnder001 - bounds: 896, 1026, 128, 128 + bounds: 508, 1592, 56, 99 + offsets: 33, 12, 128, 128 hitUnder/hitUnder002 - bounds: 896, 1154, 128, 128 + bounds: 1231, 1642, 53, 104 + offsets: 37, 11, 128, 128 hitUpper/hitUpper000 - bounds: 896, 1282, 128, 128 + bounds: 1755, 207, 77, 98 + offsets: 20, 13, 128, 128 hitUpper/hitUpper001 - bounds: 896, 1410, 128, 128 + bounds: 1538, 1179, 64, 99 + offsets: 29, 13, 128, 128 hitUpper/hitUpper002 - bounds: 896, 1538, 128, 128 + bounds: 1654, 1042, 53, 102 + offsets: 37, 12, 128, 128 invin/invin000 - bounds: 1747, 2981, 4, 4 + bounds: 1872, 539, 4, 4 jump/jump000 - bounds: 896, 1666, 128, 128 + bounds: 1485, 1075, 57, 103 + offsets: 35, 10, 128, 128 jump/jump001 - bounds: 896, 1794, 128, 128 + bounds: 564, 1592, 54, 99 + offsets: 36, 14, 128, 128 jump/jump002 - bounds: 896, 1922, 128, 128 + bounds: 1310, 1546, 58, 91 + offsets: 37, 19, 128, 128 jump/jump003 - bounds: 896, 2050, 128, 128 + bounds: 1842, 1645, 53, 80 + offsets: 36, 28, 128, 128 jump/jump004 - bounds: 896, 2178, 128, 128 + bounds: 1427, 1413, 55, 82 + offsets: 38, 29, 128, 128 jump/jump005 - bounds: 896, 2306, 128, 128 + bounds: 1918, 1236, 56, 93 + offsets: 37, 23, 128, 128 jump/jump006 - bounds: 896, 2434, 128, 128 + bounds: 1292, 965, 66, 102 + offsets: 36, 19, 128, 128 jump/jump007 - bounds: 896, 2562, 128, 128 + bounds: 1237, 677, 68, 108 + offsets: 36, 15, 128, 128 jump/jump008 - bounds: 896, 2690, 128, 128 + bounds: 577, 1335, 70, 108 + offsets: 34, 15, 128, 128 objectAa/objectAa000 - bounds: 1964, 3456, 33, 46 + bounds: 1907, 1843, 33, 46 objectAa/objectAa001 - bounds: 2000, 2858, 33, 46 + bounds: 1881, 1963, 33, 46 objectAa/objectAa002 - bounds: 2000, 2904, 33, 46 + bounds: 1914, 1963, 33, 46 objectAa/objectAa003 - bounds: 2009, 3152, 33, 46 + bounds: 1966, 1792, 33, 46 objectAb/objectAb000 - bounds: 1779, 2931, 38, 37 + bounds: 1715, 1938, 38, 37 objectAb/objectAb001 - bounds: 648, 3477, 38, 37 + bounds: 1753, 1938, 38, 37 objectAc/objectAc000 - bounds: 1652, 847, 41, 46 + bounds: 1834, 304, 38, 46 + offsets: 3, 0, 41, 46 objectAc/objectAc001 - bounds: 1987, 3344, 41, 46 + bounds: 1910, 1047, 37, 46 + offsets: 4, 0, 41, 46 objectAc/objectAc002 - bounds: 1987, 3390, 41, 46 + bounds: 1834, 350, 41, 46 objectAc/objectAc003 - bounds: 1999, 2674, 41, 46 + bounds: 1402, 1640, 41, 46 objectAd/objectAd000 - bounds: 1707, 2949, 40, 36 + bounds: 1832, 268, 40, 36 objectAd/objectAd001 - bounds: 608, 3477, 40, 37 + bounds: 1011, 1841, 40, 37 objectAd/objectAd002 - bounds: 1817, 3130, 64, 48 + bounds: 590, 1544, 64, 48 objectAd/objectAd003 - bounds: 1923, 3408, 64, 48 + bounds: 913, 1999, 64, 48 objectAd/objectAd004 - bounds: 458, 3477, 49, 43 + bounds: 1894, 1757, 49, 43 objectAd/objectAd005 - bounds: 352, 3477, 53, 43 + bounds: 1796, 1972, 53, 43 objectAd/objectAd006 - bounds: 507, 3477, 49, 43 + bounds: 1884, 1800, 49, 43 objectAd/objectAd007 - bounds: 405, 3477, 53, 43 + bounds: 1943, 1749, 53, 43 objectAe/objectAe000 - bounds: 1895, 2338, 71, 46 + bounds: 519, 1546, 71, 46 objectAe/objectAe001 - bounds: 1675, 2739, 71, 46 + bounds: 766, 1861, 71, 46 objectAe/objectAe002 - bounds: 214, 3477, 69, 44 + bounds: 404, 1555, 69, 44 objectAe/objectAe003 - bounds: 283, 3477, 69, 44 + bounds: 1791, 1928, 69, 44 objectAe/objectAe004 - bounds: 1558, 2881, 52, 37 + bounds: 809, 2010, 52, 37 objectAe/objectAe005 - bounds: 556, 3477, 52, 37 + bounds: 861, 2010, 52, 37 objectAf/objectAf000 - bounds: 1634, 2985, 38, 39 + bounds: 771, 2008, 38, 39 objectAg/objectAg000 - bounds: 1918, 3456, 46, 46 + bounds: 1402, 1686, 46, 46 objectAg/objectAg001 - bounds: 1999, 2720, 46, 46 + bounds: 1860, 1917, 46, 46 objectAg/objectAg002 - bounds: 2000, 2766, 46, 46 + bounds: 1942, 1881, 46, 46 objectAg/objectAg003 - bounds: 2000, 2812, 46, 46 + bounds: 1841, 811, 46, 46 objectAg/objectAg004 - bounds: 1755, 3449, 64, 63 + bounds: 0, 1984, 64, 63 objectAg/objectAg005 - bounds: 1819, 3447, 64, 62 + bounds: 64, 1984, 64, 62 objectAh/objectAh000 - bounds: 1472, 2878, 86, 43 + bounds: 654, 1540, 86, 43 objectAh/objectAh001 - bounds: 128, 3477, 86, 43 + bounds: 889, 1520, 86, 43 objectAi/objectAi000 - bounds: 686, 3477, 36, 44 + bounds: 1556, 1665, 36, 44 objectAi/objectAi001 - bounds: 2014, 1406, 34, 44 + bounds: 1592, 1659, 34, 44 objectAj/objectAj000 - bounds: 1643, 2764, 32, 43 + bounds: 1849, 1972, 32, 43 objectAj/objectAj001 - bounds: 792, 3477, 33, 43 + bounds: 1933, 1800, 33, 43 objectAj/objectAj002 - bounds: 858, 3477, 32, 43 + bounds: 1626, 1670, 32, 43 objectAj/objectAj003 - bounds: 825, 3477, 33, 43 + bounds: 1966, 1838, 33, 43 objectAk/objectAk000 - bounds: 722, 3477, 35, 42 + bounds: 1907, 1715, 35, 42 objectAk/objectAk001 - bounds: 757, 3477, 35, 42 + bounds: 1907, 1889, 35, 42 objectAl/objectAl000 - bounds: 1992, 2625, 47, 49 + bounds: 618, 1696, 47, 49 objectAl/objectAl001 - bounds: 1884, 1152, 51, 56 + bounds: 1424, 1357, 51, 56 objectAl/objectAl002 - bounds: 1992, 2456, 50, 55 + bounds: 970, 1088, 50, 55 objectAl/objectAl003 - bounds: 1992, 2511, 46, 55 + bounds: 1448, 1664, 46, 55 objectAl/objectAl004 - bounds: 1938, 896, 46, 59 + bounds: 1893, 891, 46, 59 objectAl/objectAl005 - bounds: 1992, 2566, 42, 59 + bounds: 576, 1691, 42, 59 objectAm/objectAm000 - bounds: 1883, 3445, 35, 47 + bounds: 1910, 1093, 35, 47 objectAm/objectAm001 - bounds: 1948, 1568, 33, 48 + bounds: 1256, 522, 33, 48 objectAn/objectAn000 - bounds: 1464, 3024, 45, 7 + bounds: 1841, 857, 45, 7 objectBa/objectBa000 - bounds: 800, 512, 256, 2 + bounds: 1152, 160, 256, 2 objectBa/objectBa001 - bounds: 1568, 320, 256, 32 + bounds: 1664, 64, 256, 32 objectCa/objectCa000 - bounds: 1652, 1413, 116, 98 + bounds: 128, 1850, 116, 98 objectCa/objectCa001 - bounds: 1216, 768, 90, 102 + bounds: 500, 1224, 90, 102 objectCa/objectCa002 - bounds: 1462, 3393, 68, 99 + bounds: 932, 1421, 68, 99 objectCa/objectCa003 - bounds: 1992, 2358, 55, 98 + bounds: 1654, 846, 55, 98 objectCa/objectCa004 - bounds: 1952, 259, 94, 108 + bounds: 1304, 264, 94, 108 objectCa/objectCa005 - bounds: 1344, 2912, 120, 119 + bounds: 1152, 266, 120, 119 objectCa/objectCa006 - bounds: 1344, 3031, 116, 122 + bounds: 128, 1728, 116, 122 objectCa/objectCa007 - bounds: 1344, 3153, 116, 121 + bounds: 256, 1472, 116, 121 objectCb/objectCb000 - bounds: 1344, 3274, 116, 121 + bounds: 384, 1216, 116, 121 objectCb/objectCb001 - bounds: 1952, 0, 90, 129 + bounds: 640, 936, 90, 129 objectCb/objectCb002 - bounds: 1952, 129, 88, 130 + bounds: 1152, 385, 88, 130 objectCb/objectCb003 - bounds: 1652, 1312, 116, 101 + bounds: 1024, 576, 116, 101 objectCb/objectCb004 - bounds: 1568, 384, 152, 104 + bounds: 1152, 162, 152, 104 objectCb/objectCb005 - bounds: 1472, 488, 146, 86 + bounds: 1408, 128, 146, 86 objectCb/objectCb006 - bounds: 1652, 2128, 118, 85 + bounds: 1024, 677, 118, 85 objectCb/objectCb007 - bounds: 1768, 1405, 118, 87 + bounds: 1554, 128, 118, 87 objectCb/objectCb008 - bounds: 1344, 3395, 118, 87 + bounds: 888, 768, 118, 87 objectCb/objectCb009 - bounds: 1884, 1308, 71, 90 + bounds: 1358, 1062, 71, 90 objectCb/objectCb010 - bounds: 1652, 1511, 104, 102 + bounds: 1304, 162, 104, 102 objectCb/objectCb011 - bounds: 1768, 1208, 120, 99 + bounds: 768, 768, 120, 99 objectCb/objectCb012 - bounds: 1768, 1307, 116, 98 + bounds: 256, 1593, 116, 98 redAura/redAura000 - bounds: 1997, 3436, 32, 32 + bounds: 1924, 2009, 32, 32 shotAa/shotAa000 - bounds: 1024, 1026, 64, 128 + bounds: 513, 1941, 51, 105 + offsets: 13, 11, 64, 128 shotAa/shotAa001 - bounds: 1024, 1154, 64, 128 + bounds: 1171, 1336, 46, 105 + offsets: 18, 11, 64, 128 shotAa/shotAa002 - bounds: 1024, 1282, 64, 128 + bounds: 548, 1755, 48, 105 + offsets: 16, 11, 64, 128 shotAa/shotAa003 - bounds: 1024, 1410, 64, 128 + bounds: 1431, 869, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa004 - bounds: 1024, 1538, 64, 128 + bounds: 621, 1941, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa005 - bounds: 1024, 1666, 64, 128 + bounds: 596, 1750, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa006 - bounds: 1024, 1794, 64, 128 + bounds: 671, 1941, 50, 105 + offsets: 14, 11, 64, 128 shotAa/shotAa007 - bounds: 1024, 1922, 64, 128 + bounds: 954, 1563, 46, 105 + offsets: 18, 11, 64, 128 shotAa/shotAa008 - bounds: 1024, 2050, 64, 128 + bounds: 1632, 1565, 46, 105 + offsets: 18, 11, 64, 128 shotAa/shotAa009 - bounds: 1024, 2178, 64, 128 + bounds: 1024, 855, 62, 105 + offsets: 2, 11, 64, 128 shotAa/shotAa010 - bounds: 1024, 2306, 64, 128 + bounds: 954, 1668, 50, 105 + offsets: 14, 11, 64, 128 shotAb/shotAb000 - bounds: 1024, 2434, 64, 128 + bounds: 1947, 1063, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb001 - bounds: 1024, 2562, 64, 128 + bounds: 1504, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb002 - bounds: 1024, 2690, 64, 128 + bounds: 1507, 1829, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb003 - bounds: 1024, 2818, 64, 128 + bounds: 1556, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb004 - bounds: 1024, 2946, 64, 128 + bounds: 1559, 1829, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb005 - bounds: 1024, 3074, 64, 128 + bounds: 1608, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb006 - bounds: 1024, 3202, 64, 128 + bounds: 1611, 1829, 52, 80 + offsets: 7, 11, 64, 128 shotAb/shotAb007 - bounds: 1024, 3330, 64, 128 + bounds: 1940, 813, 59, 80 + offsets: 0, 11, 64, 128 shotAb/shotAb008 - bounds: 1472, 830, 64, 128 + bounds: 1660, 1749, 52, 80 + offsets: 7, 11, 64, 128 shotAc/shotAc000 - bounds: 1984, 567, 64, 103 + bounds: 1603, 1909, 54, 74 + offsets: 10, 0, 64, 103 shotAc/shotAc001 - bounds: 1984, 670, 64, 103 + bounds: 1126, 1550, 62, 92 + offsets: 2, 0, 64, 103 shotAc/shotAc002 - bounds: 1984, 773, 64, 103 + bounds: 1384, 1841, 62, 94 + offsets: 0, 2, 64, 103 shotAc/shotAc003 - bounds: 1984, 876, 64, 103 + bounds: 1709, 854, 62, 91 + offsets: 0, 3, 64, 103 shotAc/shotAc004 - bounds: 1984, 1876, 64, 103 + bounds: 1341, 1640, 61, 97 + offsets: 1, 0, 64, 103 shotAc/shotAc005 - bounds: 1984, 1979, 64, 103 + bounds: 1770, 956, 61, 91 + offsets: 0, 3, 64, 103 shotAd/shotAd000 - bounds: 1472, 958, 64, 128 + bounds: 1121, 1949, 56, 98 + offsets: 7, 13, 64, 128 shotAd/shotAd001 - bounds: 1472, 1086, 64, 128 + bounds: 390, 1755, 57, 107 + offsets: 6, 4, 64, 128 shotAd/shotAd002 - bounds: 1472, 1214, 64, 128 + bounds: 590, 1224, 56, 111 + offsets: 5, 0, 64, 128 shotAd/shotAd003 - bounds: 1472, 1342, 64, 128 + bounds: 714, 1192, 57, 111 + offsets: 3, 0, 64, 128 shotAd/shotAd004 - bounds: 1472, 1470, 64, 128 + bounds: 1086, 762, 56, 111 + offsets: 5, 0, 64, 128 shotAd/shotAd005 - bounds: 1472, 1598, 64, 128 + bounds: 714, 1303, 57, 111 + offsets: 3, 0, 64, 128 shotAd/shotAd006 - bounds: 1472, 1726, 64, 128 + bounds: 334, 1755, 56, 110 + offsets: 5, 1, 64, 128 shotAd/shotAd007 - bounds: 1472, 1854, 64, 128 + bounds: 564, 1941, 57, 105 + offsets: 6, 6, 64, 128 shotAd/shotAd008 - bounds: 1472, 1982, 64, 128 + bounds: 1217, 1327, 62, 97 + offsets: 0, 14, 64, 128 shotAd/shotAd009 - bounds: 1472, 2110, 64, 128 + bounds: 1927, 1329, 55, 90 + offsets: 5, 21, 64, 128 shotBa/shotBa000 - bounds: 896, 2818, 128, 128 + bounds: 927, 1148, 69, 93 + offsets: 18, 11, 128, 128 shotBa/shotBa001 - bounds: 896, 2946, 128, 128 + bounds: 1872, 736, 69, 69 + offsets: 18, 11, 128, 128 shotBa/shotBa002 - bounds: 896, 3074, 128, 128 + bounds: 818, 1520, 71, 61 + offsets: 17, 11, 128, 128 shotBa/shotBa003 - bounds: 896, 3202, 128, 128 + bounds: 1779, 406, 65, 65 + offsets: 17, 11, 128, 128 shotBa/shotBa004 - bounds: 896, 3330, 128, 128 + bounds: 771, 1342, 78, 72 + offsets: 13, 11, 128, 128 shotBa/shotBa005 - bounds: 1312, 552, 128, 128 + bounds: 1368, 1563, 77, 77 + offsets: 16, 12, 128, 128 shotBa/shotBa006 - bounds: 1440, 574, 128, 128 + bounds: 1024, 1058, 62, 87 + offsets: 26, 12, 128, 128 shotBa/shotBa007 - bounds: 1088, 640, 128, 128 + bounds: 1024, 960, 62, 98 + offsets: 35, 12, 128, 128 shotBa/shotBa008 - bounds: 1088, 768, 128, 128 + bounds: 1093, 1848, 57, 101 + offsets: 39, 11, 128, 128 shotBa/shotBa009 - bounds: 1312, 680, 128, 128 + bounds: 1173, 1441, 55, 105 + offsets: 41, 11, 128, 128 shotBa/shotBa010 - bounds: 1440, 702, 128, 128 + bounds: 460, 1941, 53, 106 + offsets: 41, 11, 128, 128 shotBa/shotBa011 - bounds: 1568, 591, 128, 128 + bounds: 1126, 1442, 47, 108 + offsets: 38, 11, 128, 128 shotBa/shotBa012 - bounds: 1568, 719, 128, 128 + bounds: 1678, 1563, 50, 103 + offsets: 37, 11, 128, 128 shotBa/shotBa013 - bounds: 1696, 640, 128, 128 + bounds: 1399, 1737, 51, 104 + offsets: 37, 11, 128, 128 shotBa/shotBa014 - bounds: 1824, 640, 128, 128 + bounds: 1606, 1278, 55, 105 + offsets: 31, 11, 128, 128 shotBb/shotBb000 - bounds: 1696, 768, 128, 128 + bounds: 1532, 794, 55, 83 + offsets: 36, 30, 128, 128 shotBb/shotBb001 - bounds: 1824, 768, 128, 128 + bounds: 1359, 1351, 65, 72 + offsets: 28, 35, 128, 128 shotBb/shotBb002 - bounds: 1088, 896, 128, 128 + bounds: 776, 1791, 61, 70 + offsets: 30, 31, 128, 128 shotBb/shotBb003 - bounds: 1216, 870, 128, 128 + bounds: 1494, 1665, 62, 61 + offsets: 31, 39, 128, 128 shotBb/shotBb004 - bounds: 1088, 1024, 128, 128 + bounds: 1734, 1975, 62, 61 + offsets: 28, 39, 128, 128 shotBb/shotBb005 - bounds: 1216, 998, 128, 128 + bounds: 910, 1086, 60, 62 + offsets: 29, 42, 128, 128 shotBb/shotBb006 - bounds: 1088, 1152, 128, 128 + bounds: 1657, 1909, 58, 70 + offsets: 32, 37, 128, 128 shotCa/shotCa000 - bounds: 1216, 1126, 128, 128 + bounds: 1228, 1424, 51, 105 + offsets: 35, 11, 128, 128 shotCa/shotCa001 - bounds: 1088, 1280, 128, 128 + bounds: 837, 1685, 53, 105 + offsets: 33, 11, 128, 128 shotCa/shotCa002 - bounds: 1216, 1254, 128, 128 + bounds: 721, 1940, 50, 105 + offsets: 34, 11, 128, 128 shotCa/shotCa003 - bounds: 1088, 1408, 128, 128 + bounds: 943, 1894, 50, 105 + offsets: 34, 11, 128, 128 shotCa/shotCa004 - bounds: 1216, 1382, 128, 128 + bounds: 1057, 1640, 51, 105 + offsets: 35, 11, 128, 128 shotCa/shotCa005 - bounds: 1088, 1536, 128, 128 + bounds: 960, 1773, 51, 105 + offsets: 35, 11, 128, 128 shotCb/shotCb000 - bounds: 1216, 1510, 128, 128 + bounds: 1450, 1749, 54, 80 + offsets: 18, 19, 128, 128 shotCb/shotCb001 - bounds: 1088, 1664, 128, 128 + bounds: 577, 1860, 63, 81 + offsets: 13, 19, 128, 128 shotCb/shotCb002 - bounds: 1216, 1638, 128, 128 + bounds: 408, 1862, 63, 79 + offsets: 19, 19, 128, 128 shotCb/shotCb003 - bounds: 1088, 1792, 128, 128 + bounds: 1197, 1253, 82, 74 + offsets: 27, 19, 128, 128 shotCb/shotCb004 - bounds: 1216, 1766, 128, 128 + bounds: 665, 1681, 71, 76 + offsets: 27, 19, 128, 128 shotCb/shotCb005 - bounds: 1088, 1920, 128, 128 + bounds: 1588, 768, 67, 76 + offsets: 28, 19, 128, 128 shotCb/shotCb006 - bounds: 1216, 1894, 128, 128 + bounds: 1942, 1595, 57, 78 + offsets: 27, 19, 128, 128 shotCb/shotCb007 - bounds: 1088, 2048, 128, 128 + bounds: 1663, 1829, 52, 80 + offsets: 23, 19, 128, 128 shotCb/shotCb008 - bounds: 1216, 2022, 128, 128 + bounds: 526, 1862, 51, 79 + offsets: 23, 19, 128, 128 shotDa/shotDa000 - bounds: 1768, 1000, 116, 104 + bounds: 1449, 692, 83, 81 + offsets: 31, 0, 116, 104 shotDa/shotDa001 - bounds: 1652, 1208, 116, 104 + bounds: 1368, 692, 81, 84 + offsets: 30, 0, 116, 104 shotDa/shotDa002 - bounds: 1768, 1104, 116, 104 + bounds: 1408, 776, 73, 93 + offsets: 22, 0, 116, 104 sit/sit000 - bounds: 1877, 2004, 54, 106 + bounds: 1177, 1737, 54, 97 + offsets: 0, 1, 54, 106 sit/sit001 - bounds: 1460, 3287, 54, 106 + bounds: 1940, 1508, 54, 87 + offsets: 0, 1, 54, 106 sit/sit002 - bounds: 1514, 3280, 54, 106 + bounds: 1712, 1717, 54, 78 + offsets: 0, 2, 54, 106 sit/sit003 - bounds: 1530, 3386, 54, 106 + bounds: 1715, 1795, 51, 79 + offsets: 0, 1, 54, 106 sit/sit004 - bounds: 1568, 3280, 54, 106 + bounds: 1895, 1631, 47, 84 + offsets: 2, 2, 54, 106 sit/sit005 - bounds: 1584, 3386, 54, 106 + bounds: 1893, 1536, 47, 95 + offsets: 2, 1, 54, 106 sit/sit006 - bounds: 1622, 3280, 54, 106 + bounds: 1676, 1459, 48, 104 + offsets: 0, 1, 54, 106 spellAa/spellAa000 - bounds: 1919, 2696, 80, 98 + bounds: 1941, 715, 58, 98 + offsets: 19, 0, 80, 98 spellAa/spellAa001 - bounds: 1955, 1308, 80, 98 + bounds: 890, 1563, 64, 98 + offsets: 15, 0, 80, 98 spellAa/spellAa002 - bounds: 1960, 1470, 80, 98 + bounds: 1059, 1241, 69, 98 + offsets: 11, 0, 80, 98 spellAa/spellAa003 - bounds: 1763, 3349, 80, 98 + bounds: 1225, 1067, 68, 98 + offsets: 12, 0, 80, 98 spellAa/spellAa004 - bounds: 1820, 3249, 80, 98 + bounds: 1654, 944, 55, 98 + offsets: 19, 0, 80, 98 spellAa/spellAa005 - bounds: 1843, 3347, 80, 98 + bounds: 1260, 1841, 62, 95 + offsets: 10, 0, 80, 98 spellAa/spellAa006 - bounds: 1761, 2735, 80, 98 + bounds: 1606, 1475, 70, 90 + offsets: 0, 0, 80, 98 spellAa/spellAa007 - bounds: 1840, 2836, 80, 98 + bounds: 372, 1600, 70, 91 + offsets: 0, 0, 80, 98 spellAa/spellAa008 - bounds: 1920, 2794, 80, 98 + bounds: 1128, 1241, 69, 95 + offsets: 3, 0, 80, 98 spellAa/spellAa009 - bounds: 1920, 2892, 80, 98 + bounds: 1755, 1047, 55, 98 + offsets: 13, 0, 80, 98 spellAa/spellAa010 - bounds: 1817, 2934, 80, 98 + bounds: 1858, 1047, 52, 98 + offsets: 24, 0, 80, 98 spellAa/spellAa011 - bounds: 1817, 3032, 80, 98 + bounds: 1240, 1546, 70, 91 + offsets: 0, 0, 80, 98 spellBa/spellBa000 - bounds: 1088, 2176, 128, 128 + bounds: 788, 1687, 49, 104 + offsets: 41, 11, 128, 128 spellBa/spellBa001 - bounds: 1216, 2150, 128, 128 + bounds: 1283, 1936, 57, 100 + offsets: 35, 12, 128, 128 spellBa/spellBa002 - bounds: 1088, 2304, 128, 128 + bounds: 1778, 775, 63, 89 + offsets: 30, 12, 128, 128 spellBa/spellBa003 - bounds: 1216, 2278, 128, 128 + bounds: 1479, 1282, 62, 84 + offsets: 36, 12, 128, 128 spellBa/spellBa004 - bounds: 1088, 2432, 128, 128 + bounds: 1864, 1145, 53, 99 + offsets: 38, 12, 128, 128 spellBa/spellBa005 - bounds: 1216, 2406, 128, 128 + bounds: 1300, 561, 70, 107 + offsets: 30, 12, 128, 128 spellBa/spellBa006 - bounds: 1088, 2560, 128, 128 + bounds: 269, 1941, 68, 106 + offsets: 30, 12, 128, 128 spellBa/spellBa007 - bounds: 1216, 2534, 128, 128 + bounds: 337, 1941, 66, 106 + offsets: 30, 12, 128, 128 spellBa/spellBa008 - bounds: 1088, 2688, 128, 128 + bounds: 1000, 1539, 60, 101 + offsets: 35, 13, 128, 128 spellBa/spellBa009 - bounds: 1216, 2662, 128, 128 + bounds: 736, 1681, 52, 104 + offsets: 37, 11, 128, 128 spellBulletAa/spellBulletAa000 - bounds: 1312, 0, 256, 168 + bounds: 512, 0, 256, 168 spellBulletAa/spellBulletAa001 - bounds: 1088, 2816, 128, 128 + bounds: 128, 1600, 128, 128 spellBulletAa/spellBulletAa002 - bounds: 1216, 2790, 128, 128 + bounds: 256, 1344, 128, 128 spellBulletAa/spellBulletAa003 - bounds: 1088, 2944, 128, 128 + bounds: 384, 1088, 128, 128 spellBulletAa/spellBulletAa004 - bounds: 1216, 2918, 128, 128 + bounds: 512, 1064, 128, 128 spellBulletBa/spellBulletBa000 - bounds: 1088, 3072, 128, 128 + bounds: 640, 808, 128, 128 spellBulletCa/spellBulletCa000 - bounds: 256, 1173, 128, 256 + bounds: 256, 192, 128, 256 spellBulletCa/spellBulletCa001 - bounds: 0, 1685, 128, 256 + bounds: 0, 704, 128, 256 spellBulletCa/spellBulletCa002 - bounds: 128, 1429, 128, 256 + bounds: 128, 448, 128, 256 spellBulletCa/spellBulletCa003 - bounds: 384, 1173, 128, 256 + bounds: 384, 192, 128, 256 spellBulletCa/spellBulletCa004 - bounds: 512, 1045, 128, 256 + bounds: 512, 168, 128, 256 spellBulletCa/spellBulletCa005 - bounds: 0, 1941, 128, 256 + bounds: 0, 960, 128, 256 spellBulletCa/spellBulletCa006 - bounds: 128, 1685, 128, 256 + bounds: 128, 704, 128, 256 spellBulletCa/spellBulletCa007 - bounds: 256, 1429, 128, 256 + bounds: 256, 448, 128, 256 spellBulletCa/spellBulletCa008 - bounds: 640, 1045, 128, 256 + bounds: 640, 168, 128, 256 spellBulletCa/spellBulletCa009 - bounds: 0, 2197, 128, 256 + bounds: 768, 0, 128, 256 spellBulletCa/spellBulletCa010 - bounds: 128, 1941, 128, 256 + bounds: 0, 1216, 128, 256 spellBulletCa/spellBulletCa011 - bounds: 256, 1685, 128, 256 + bounds: 128, 960, 128, 256 spellBulletCa/spellBulletCa012 - bounds: 384, 1429, 128, 256 + bounds: 256, 704, 128, 256 spellBulletCa/spellBulletCa013 - bounds: 512, 1301, 128, 256 + bounds: 384, 448, 128, 256 spellBulletCa/spellBulletCa014 - bounds: 0, 2453, 128, 256 + bounds: 512, 424, 128, 256 spellBulletCa/spellBulletCa015 - bounds: 128, 2197, 128, 256 + bounds: 896, 0, 128, 256 spellBulletCa/spellBulletCa016 - bounds: 256, 1941, 128, 256 + bounds: 0, 1472, 128, 256 spellBulletCa/spellBulletCa017 - bounds: 384, 1685, 128, 256 + bounds: 128, 1216, 128, 256 spellBulletCa/spellBulletCa018 - bounds: 512, 1557, 128, 256 + bounds: 256, 960, 128, 256 spellBulletCa/spellBulletCa019 - bounds: 640, 1301, 128, 256 + bounds: 384, 704, 128, 256 spellBulletCa/spellBulletCa020 - bounds: 0, 2709, 128, 256 + bounds: 512, 680, 128, 256 spellBulletCa/spellBulletCa021 - bounds: 128, 2453, 128, 256 + bounds: 640, 424, 128, 256 spellBulletCa/spellBulletCa022 - bounds: 256, 2197, 128, 256 + bounds: 768, 256, 128, 256 spellBulletCa/spellBulletCa023 - bounds: 384, 1941, 128, 256 + bounds: 1024, 0, 128, 256 spellBulletCa/spellBulletCa024 - bounds: 512, 1813, 128, 256 + bounds: 0, 1728, 128, 256 spellBulletDa/spellBulletDa000 - bounds: 1216, 3046, 128, 128 + bounds: 768, 640, 128, 128 spellBulletDa/spellBulletDa001 - bounds: 1088, 3200, 128, 128 + bounds: 896, 576, 128, 128 spellBulletEa/spellBulletEa000 - bounds: 1568, 352, 256, 32 + bounds: 896, 416, 256, 32 spellBulletFa/spellBulletFa000 - bounds: 0, 533, 512, 128 + bounds: 0, 0, 512, 128 spellBulletFb/spellBulletFb000 - bounds: 1216, 3174, 128, 128 + bounds: 1024, 448, 128, 128 spellCa/spellCa000 - bounds: 1618, 488, 97, 103 + bounds: 1595, 844, 59, 97 + offsets: 26, 0, 97, 103 spellCa/spellCa001 - bounds: 1652, 1613, 97, 103 + bounds: 640, 1855, 63, 86 + offsets: 23, 0, 97, 103 spellCa/spellCa002 - bounds: 1652, 1716, 97, 103 + bounds: 705, 1785, 71, 71 + offsets: 19, 0, 97, 103 spellCa/spellCa003 - bounds: 1652, 1819, 97, 103 + bounds: 748, 1510, 70, 73 + offsets: 16, 0, 97, 103 spellCa/spellCa004 - bounds: 1652, 1922, 97, 103 + bounds: 703, 1856, 63, 84 + offsets: 20, 0, 97, 103 spellCa/spellCa005 - bounds: 1652, 2025, 97, 103 + bounds: 1011, 1745, 62, 96 + offsets: 15, 0, 97, 103 spellCa/spellCa006 - bounds: 1938, 1083, 97, 103 + bounds: 1322, 1841, 62, 95 + offsets: 14, 0, 97, 103 spellCa/spellCa007 - bounds: 1558, 2302, 97, 103 + bounds: 1167, 1642, 64, 95 + offsets: 13, 0, 97, 103 spellCa/spellCa008 - bounds: 1558, 2405, 97, 103 + bounds: 1541, 1470, 65, 95 + offsets: 13, 0, 97, 103 spellCall/spellCall000 - bounds: 1897, 2990, 80, 98 + bounds: 1810, 1047, 48, 98 + offsets: 32, 0, 80, 98 spellCall/spellCall001 - bounds: 1088, 3328, 128, 128 + bounds: 1073, 1745, 54, 103 + offsets: 41, 11, 128, 128 spellCall/spellCall002 - bounds: 1216, 3302, 128, 128 + bounds: 1479, 1178, 59, 104 + offsets: 39, 11, 128, 128 spellCall/spellCall003 - bounds: 1344, 864, 128, 128 + bounds: 853, 1241, 77, 104 + offsets: 20, 11, 128, 128 spellCall/spellCall004 - bounds: 1344, 992, 128, 128 + bounds: 910, 983, 66, 103 + offsets: 33, 11, 128, 128 spellCall/spellCall005 - bounds: 1344, 1120, 128, 128 + bounds: 1305, 668, 63, 108 + offsets: 32, 11, 128, 128 spellCall/spellCall006 - bounds: 1344, 1248, 128, 128 + bounds: 646, 1182, 68, 116 + offsets: 28, 11, 128, 128 spellCall/spellCall007 - bounds: 1344, 1376, 128, 128 + bounds: 509, 1326, 68, 116 + offsets: 27, 11, 128, 128 spellCall/spellCall008 - bounds: 1344, 1504, 128, 128 + bounds: 647, 1298, 67, 116 + offsets: 27, 11, 128, 128 spellCall/spellCall009 - bounds: 1344, 1632, 128, 128 + bounds: 1390, 1935, 55, 101 + offsets: 39, 11, 128, 128 spellCall/spellCall010 - bounds: 1344, 1760, 128, 128 + bounds: 1346, 1737, 53, 104 + offsets: 46, 11, 128, 128 spellCall/spellCall011 - bounds: 1344, 1888, 128, 128 + bounds: 1707, 1042, 48, 103 + offsets: 43, 11, 128, 128 spellCall/spellCall012 - bounds: 1344, 2016, 128, 128 + bounds: 1494, 1468, 47, 105 + offsets: 40, 11, 128, 128 spellDa/spellDa000 - bounds: 1888, 1208, 72, 100 + bounds: 1789, 1551, 52, 100 + offsets: 12, 0, 72, 100 spellDa/spellDa001 - bounds: 1673, 2985, 72, 100 + bounds: 1813, 1145, 51, 100 + offsets: 12, 0, 72, 100 spellDa/spellDa002 - bounds: 1673, 3085, 72, 100 + bounds: 1599, 941, 55, 99 + offsets: 13, 0, 72, 100 spellDa/spellDa003 - bounds: 1676, 3249, 72, 100 + bounds: 1293, 1067, 65, 100 + offsets: 7, 0, 72, 100 spellDa/spellDa004 - bounds: 1691, 3349, 72, 100 + bounds: 128, 1948, 72, 99 + offsets: 0, 0, 72, 100 spellDa/spellDa005 - bounds: 1707, 2849, 72, 100 + bounds: 1154, 970, 69, 99 + offsets: 3, 0, 72, 100 spellDa/spellDa006 - bounds: 1745, 2985, 72, 100 + bounds: 1223, 968, 69, 99 + offsets: 3, 0, 72, 100 spellDa/spellDa007 - bounds: 1745, 3085, 72, 100 + bounds: 883, 1894, 60, 100 + offsets: 11, 0, 72, 100 spellDa/spellDa008 - bounds: 1748, 3249, 72, 100 + bounds: 1841, 1545, 52, 100 + offsets: 12, 0, 72, 100 spellEa/spellEa000 - bounds: 1558, 2199, 85, 103 + bounds: 1059, 1339, 63, 103 + offsets: 1, 0, 85, 103 spellEa/spellEa001 - bounds: 1558, 2508, 85, 103 + bounds: 1482, 1366, 59, 102 + offsets: 3, 0, 85, 103 spellEa/spellEa002 - bounds: 1558, 2611, 85, 103 + bounds: 1284, 1637, 57, 102 + offsets: 5, 0, 85, 103 spellEa/spellEa003 - bounds: 1558, 2714, 85, 103 + bounds: 1359, 1152, 63, 103 + offsets: 6, 0, 85, 103 spellEa/spellEa004 - bounds: 1655, 2277, 85, 103 + bounds: 1153, 867, 69, 103 + offsets: 9, 0, 85, 103 spellEa/spellEa005 - bounds: 1655, 2380, 85, 103 + bounds: 1222, 866, 70, 102 + offsets: 10, 0, 85, 103 spellEa/spellEa006 - bounds: 1899, 2132, 85, 103 + bounds: 1872, 438, 69, 101 + offsets: 11, 0, 85, 103 spellEa/spellEa007 - bounds: 1900, 2235, 85, 103 + bounds: 1227, 583, 73, 94 + offsets: 10, 0, 85, 103 spellEa/spellEa008 - bounds: 1464, 2921, 85, 103 + bounds: 1712, 681, 75, 93 + offsets: 10, 0, 85, 103 spellEa/spellEa009 - bounds: 1549, 2921, 85, 103 + bounds: 1787, 683, 75, 92 + offsets: 10, 0, 85, 103 spellEa/spellEa010 - bounds: 1761, 2426, 85, 103 + bounds: 1067, 1147, 72, 94 + offsets: 10, 0, 85, 103 spellEa/spellEa011 - bounds: 1761, 2529, 85, 103 + bounds: 1279, 1399, 66, 97 + offsets: 11, 0, 85, 103 spellEa/spellEa012 - bounds: 1761, 2632, 85, 103 + bounds: 1201, 1839, 59, 99 + offsets: 12, 0, 85, 103 spellFa/spellFa000 - bounds: 1985, 1568, 61, 98 + bounds: 1877, 1341, 50, 98 + offsets: 11, 0, 61, 98 spellFa/spellFa001 - bounds: 1985, 1666, 61, 98 + bounds: 1177, 1949, 56, 98 + offsets: 5, 0, 61, 98 spellFa/spellFa002 - bounds: 1985, 1764, 61, 98 + bounds: 1771, 864, 61, 92 + offsets: 0, 0, 61, 98 spellFa/spellFa003 - bounds: 1841, 2738, 61, 98 + bounds: 1709, 945, 61, 92 + offsets: 0, 0, 61, 98 spellFa/spellFa004 - bounds: 1779, 2833, 61, 98 + bounds: 1831, 956, 61, 91 + offsets: 0, 0, 61, 98 spellFa/spellFa005 - bounds: 1977, 2990, 61, 98 + bounds: 1832, 864, 61, 91 + offsets: 0, 0, 61, 98 spellFa/spellFa006 - bounds: 1900, 3216, 61, 98 + bounds: 1728, 1551, 61, 92 + offsets: 0, 0, 61, 98 spellGa/spellGa000 - bounds: 1970, 979, 73, 104 + bounds: 1707, 1145, 53, 102 + offsets: 20, 0, 73, 104 spellGa/spellGa001 - bounds: 1846, 2426, 73, 104 + bounds: 1108, 1642, 59, 101 + offsets: 14, 0, 73, 104 spellGa/spellGa002 - bounds: 1846, 2530, 73, 104 + bounds: 1481, 975, 61, 100 + offsets: 12, 0, 73, 104 spellGa/spellGa003 - bounds: 1846, 2634, 73, 104 + bounds: 930, 1241, 66, 102 + offsets: 5, 0, 73, 104 spellGa/spellGa004 - bounds: 1634, 2881, 73, 104 + bounds: 404, 1454, 73, 101 + offsets: 0, 0, 73, 104 spellGa/spellGa005 - bounds: 1960, 1186, 73, 104 + bounds: 1761, 305, 73, 101 + offsets: 0, 0, 73, 104 spellGa/spellGa006 - bounds: 1919, 2384, 73, 104 + bounds: 577, 1443, 70, 101 + offsets: 0, 0, 73, 104 spellGa/spellGa007 - bounds: 1919, 2488, 73, 104 + bounds: 996, 1241, 63, 102 + offsets: 5, 0, 73, 104 spellGa/spellGa008 - bounds: 1919, 2592, 73, 104 + bounds: 1656, 666, 56, 103 + offsets: 16, 0, 73, 104 stand/stand000 - bounds: 1472, 2238, 54, 128 + bounds: 1127, 1743, 50, 105 + offsets: 0, 11, 54, 128 stand/stand001 - bounds: 1472, 2366, 54, 128 + bounds: 1004, 1640, 53, 105 + offsets: 1, 11, 54, 128 stand/stand002 - bounds: 1472, 2494, 54, 128 + bounds: 993, 1878, 50, 105 + offsets: 4, 11, 54, 128 stand/stand003 - bounds: 1472, 2622, 54, 128 + bounds: 1043, 1878, 50, 105 + offsets: 4, 11, 54, 128 stand/stand004 - bounds: 1472, 2750, 54, 128 + bounds: 1233, 1938, 50, 105 + offsets: 4, 11, 54, 128 stand/stand005 - bounds: 1884, 896, 54, 128 + bounds: 1340, 1936, 50, 105 + offsets: 4, 11, 54, 128 stand/stand006 - bounds: 1884, 1024, 54, 128 + bounds: 1445, 1935, 50, 105 + offsets: 3, 11, 54, 128 stand/stand007 - bounds: 1675, 2483, 54, 128 + bounds: 1495, 1935, 47, 105 + offsets: 3, 11, 54, 128 stand/stand008 - bounds: 1675, 2611, 54, 128 + bounds: 1661, 1249, 46, 105 + offsets: 3, 11, 54, 128 stand/stand009 - bounds: 1877, 1620, 54, 128 + bounds: 1606, 1040, 48, 105 + offsets: 1, 11, 54, 128 stand/stand010 - bounds: 1877, 1748, 54, 128 + bounds: 1950, 96, 49, 105 + offsets: 0, 11, 54, 128 stand/stand011 - bounds: 1877, 1876, 54, 128 + bounds: 1950, 201, 49, 105 + offsets: 0, 11, 54, 128 stand/stand012 - bounds: 1460, 3031, 54, 128 + bounds: 1950, 306, 49, 105 + offsets: 0, 11, 54, 128 stand/stand013 - bounds: 1460, 3159, 54, 128 + bounds: 1950, 411, 49, 105 + offsets: 0, 11, 54, 128 stand/stand014 - bounds: 1931, 1620, 54, 128 + bounds: 1658, 1144, 49, 105 + offsets: 0, 11, 54, 128 stand/stand015 - bounds: 1931, 1748, 54, 128 + bounds: 1669, 1354, 49, 105 + offsets: 0, 11, 54, 128 standUp/standUp000 - bounds: 1344, 2144, 128, 128 + bounds: 1305, 776, 103, 43 + offsets: 15, 10, 128, 128 standUp/standUp001 - bounds: 1344, 2272, 128, 128 + bounds: 1857, 206, 93, 62 + offsets: 17, 11, 128, 128 standUp/standUp002 - bounds: 1344, 2400, 128, 128 + bounds: 890, 1821, 70, 73 + offsets: 26, 12, 128, 128 standUp/standUp003 - bounds: 1344, 2528, 128, 128 + bounds: 1893, 805, 47, 86 + offsets: 40, 11, 128, 128 standUp/standUp004 - bounds: 1344, 2656, 128, 128 + bounds: 1883, 1439, 46, 97 + offsets: 39, 11, 128, 128 standUp/standUp005 - bounds: 1344, 2784, 128, 128 + bounds: 477, 1465, 42, 104 + offsets: 42, 11, 128, 128 standUpBack/standUpBack000 - bounds: 1772, 2315, 123, 56 + bounds: 1370, 598, 123, 56 standUpBack/standUpBack001 - bounds: 1772, 2371, 122, 55 + bounds: 1493, 599, 122, 55 standUpFront/standUpFront000 - bounds: 1306, 808, 128, 56 + bounds: 768, 931, 128, 56 standUpFront/standUpFront001 - bounds: 1749, 2068, 128, 55 + bounds: 647, 1414, 128, 55 tailAa/tailAa000 - bounds: 2038, 2230, 10, 128 + bounds: 1862, 683, 10, 128 walkFront/walkFront000 - bounds: 1931, 1876, 53, 128 + bounds: 1813, 1245, 53, 100 + offsets: 0, 11, 53, 128 walkFront/walkFront001 - bounds: 1931, 2004, 53, 128 + bounds: 1824, 1345, 53, 100 + offsets: 0, 12, 53, 128 walkFront/walkFront002 - bounds: 1985, 2230, 53, 128 + bounds: 1707, 1247, 53, 102 + offsets: 0, 11, 53, 128 walkFront/walkFront003 - bounds: 1514, 3024, 53, 128 + bounds: 1718, 1349, 53, 101 + offsets: 0, 12, 53, 128 walkFront/walkFront004 - bounds: 1514, 3152, 53, 128 + bounds: 1771, 1349, 53, 101 + offsets: 0, 11, 53, 128 walkFront/walkFront005 - bounds: 1567, 3024, 53, 128 + bounds: 1830, 1445, 53, 100 + offsets: 0, 11, 53, 128 walkFront/walkFront006 - bounds: 1567, 3152, 53, 128 + bounds: 1724, 1450, 53, 101 + offsets: 0, 11, 53, 128 walkFront/walkFront007 - bounds: 1620, 3024, 53, 128 + bounds: 1760, 1145, 53, 102 + offsets: 0, 11, 53, 128 walkFront/walkFront008 - bounds: 1620, 3152, 53, 128 + bounds: 1760, 1247, 53, 102 + offsets: 0, 11, 53, 128 walkFront/walkFront009 - bounds: 1638, 3386, 53, 128 + bounds: 1777, 1450, 53, 101 + offsets: 0, 11, 53, 128 diff --git a/target/classes/character/reimu/reimu-0.png b/target/classes/character/reimu/reimu-0.png new file mode 100644 index 0000000..49e718a Binary files /dev/null and b/target/classes/character/reimu/reimu-0.png differ diff --git a/target/classes/character/reimu/reimu-1.png b/target/classes/character/reimu/reimu-1.png new file mode 100644 index 0000000..7d79f26 Binary files /dev/null and b/target/classes/character/reimu/reimu-1.png differ diff --git a/target/classes/character/reimu/reimu-2.png b/target/classes/character/reimu/reimu-2.png new file mode 100644 index 0000000..a19a0dc Binary files /dev/null and b/target/classes/character/reimu/reimu-2.png differ diff --git a/target/classes/character/reimu/reimu.atlas b/target/classes/character/reimu/reimu.atlas new file mode 100644 index 0000000..8255d02 --- /dev/null +++ b/target/classes/character/reimu/reimu.atlas @@ -0,0 +1,2008 @@ +reimu-0.png +size: 2048, 2040 +format: RGBA8888 +filter: Linear, Linear +repeat: none +pma: false +attackB/attackB002 + bounds: 1154, 1757, 121, 86 + offsets: 3, 9, 128, 128 +attackC/attackC008 + bounds: 1275, 1763, 120, 86 + offsets: 0, 30, 128, 128 +attackD/attackD002 + bounds: 1581, 1625, 136, 65 + offsets: 6, 30, 160, 128 +attackD/attackD003 + bounds: 1437, 1624, 144, 63 + offsets: 6, 32, 160, 128 +attackD/attackD004 + bounds: 700, 1890, 149, 63 + offsets: 6, 32, 160, 128 +attackD/attackD005 + bounds: 1291, 1633, 146, 65 + offsets: 6, 30, 160, 128 +attackD/attackD006 + bounds: 580, 1962, 147, 63 + offsets: 6, 32, 160, 128 +attackD/attackD007 + bounds: 430, 1962, 150, 63 + offsets: 6, 32, 160, 128 +attackD/attackD008 + bounds: 1280, 1698, 146, 65 + offsets: 6, 30, 160, 128 +attackE/attackE003 + bounds: 1426, 1699, 114, 90 + offsets: 9, 19, 128, 128 +attackG/attackG003 + bounds: 1920, 1408, 128, 70 + offsets: 0, 24, 128, 125 +attackI/attackI004 + bounds: 425, 1792, 150, 88 + offsets: 17, 2, 192, 128 +attackI/attackI005 + bounds: 1433, 1536, 149, 88 + offsets: 17, 2, 192, 128 +attackI/attackI006 + bounds: 1582, 1536, 144, 89 + offsets: 16, 2, 192, 128 +attackI/attackI007 + bounds: 575, 1792, 145, 88 + offsets: 16, 2, 192, 128 +attackI/attackI008 + bounds: 859, 1792, 139, 94 + offsets: 14, 2, 192, 128 +attackK/attackK001 + bounds: 1920, 1682, 98, 85 + offsets: 7, 10, 128, 128 +attackK/attackK002 + bounds: 1548, 1788, 80, 109 + offsets: 17, 9, 128, 128 +attackK/attackK005 + bounds: 1596, 1690, 101, 92 + offsets: 19, 9, 128, 128 +attackM/attackM004 + bounds: 994, 1941, 86, 88 +attackM/attackM005 + bounds: 1858, 1789, 86, 86 +attackM/attackM006 + bounds: 727, 1953, 78, 87 +attackN/attackN010 + bounds: 1867, 1875, 48, 77 + offsets: 23, 11, 128, 128 +attackS/attackS004 + bounds: 225, 1901, 67, 135 +bulletA/bulletA000 + bounds: 1176, 2020, 43, 20 + offsets: 17, 6, 64, 32 +bulletA/bulletA001 + bounds: 1920, 1650, 128, 32 +BulletAb/BulletAb000 + bounds: 430, 2025, 38, 7 +BulletAc/BulletAc000 + bounds: 1080, 2024, 96, 16 +BulletAc/BulletAc001 + bounds: 1780, 2011, 96, 16 +bulletAd/bulletAd000 + bounds: 1920, 1478, 128, 64 +BulletCa/BulletCa000 + bounds: 1920, 640, 128, 128 +BulletCa/BulletCa001 + bounds: 1920, 768, 128, 128 +BulletCa/BulletCa002 + bounds: 256, 1664, 128, 128 +BulletCa/BulletCa003 + bounds: 384, 1536, 128, 128 +BulletCa/BulletCa004 + bounds: 1152, 1408, 128, 128 +BulletCa/BulletCa005 + bounds: 1408, 1152, 128, 128 +BulletCa/BulletCa006 + bounds: 1664, 896, 128, 128 +BulletCa/BulletCa007 + bounds: 0, 1911, 128, 128 +BulletCa/BulletCa008 + bounds: 384, 1664, 128, 128 +BulletCa/BulletCa009 + bounds: 512, 1536, 128, 128 +BulletCa/BulletCa010 + bounds: 1280, 1408, 128, 128 +BulletCa/BulletCa011 + bounds: 1408, 1280, 128, 128 +BulletCa/BulletCa012 + bounds: 1536, 1152, 128, 128 +BulletCa/BulletCa013 + bounds: 1664, 1024, 128, 128 +BulletCa/BulletCa014 + bounds: 1792, 896, 128, 128 +BulletCa/BulletCa015 + bounds: 1920, 896, 128, 128 +BulletCa/BulletCa016 + bounds: 512, 1664, 128, 128 +BulletCa/BulletCa017 + bounds: 640, 1536, 128, 128 +BulletCa/BulletCa018 + bounds: 1408, 1408, 128, 128 +BulletCa/BulletCa019 + bounds: 1536, 1280, 128, 128 +BulletCa/BulletCa020 + bounds: 1664, 1152, 128, 128 +BulletCa/BulletCa021 + bounds: 1792, 1024, 128, 128 +BulletCa/BulletCa022 + bounds: 1920, 1024, 128, 128 +BulletCa/BulletCa023 + bounds: 640, 1664, 128, 128 +BulletCa/BulletCa024 + bounds: 768, 1536, 128, 128 +BulletCa/BulletCa025 + bounds: 1536, 1408, 128, 128 +BulletCa/BulletCa026 + bounds: 1664, 1280, 128, 128 +BulletCa/BulletCa027 + bounds: 1792, 1152, 128, 128 +BulletCa/BulletCa028 + bounds: 1920, 1152, 128, 128 +BulletCa/BulletCa029 + bounds: 768, 1664, 128, 128 +bulletCd/bulletCd000 + bounds: 896, 1536, 128, 128 +bulletCd/bulletCd001 + bounds: 1664, 1408, 128, 128 +bulletCd/bulletCd002 + bounds: 1792, 1280, 128, 128 +bulletCd/bulletCd003 + bounds: 1920, 1280, 128, 128 +bulletCd/bulletCd004 + bounds: 896, 1664, 128, 128 +bulletCd/bulletCd005 + bounds: 1024, 1536, 128, 128 +bulletCd/bulletCd006 + bounds: 1792, 1408, 128, 128 +BulletD/BulletD000 + bounds: 292, 2030, 62, 5 + offsets: 1, 2, 64, 8 +BulletD/BulletD001 + bounds: 1437, 1687, 128, 12 + offsets: 0, 10, 128, 32 +bulletEa/bulletEa000 + bounds: 1148, 1988, 92, 32 +bulletEa/bulletEa001 + bounds: 1911, 1983, 43, 20 + offsets: 43, 6, 92, 32 +bulletEe/bulletEe000 + bounds: 1962, 1978, 43, 20 + offsets: 43, 6, 92, 32 +bulletEf/bulletEf001 + bounds: 1295, 1958, 28, 69 +bulletEf/bulletEf002 + bounds: 1986, 1863, 20, 51 +bulletGa/bulletGa000 + bounds: 1550, 2005, 63, 32 + offsets: 1, 0, 64, 32 +bulletGa/bulletGa001 + bounds: 1151, 1956, 63, 32 + offsets: 1, 0, 64, 32 +bulletIa/bulletIa000 + bounds: 256, 768, 256, 128 +bulletIa/bulletIa001 + bounds: 512, 512, 256, 128 +bulletIa/bulletIa002 + bounds: 768, 256, 256, 128 +bulletIa/bulletIa003 + bounds: 1024, 0, 256, 128 +bulletIa/bulletIa004 + bounds: 0, 1280, 256, 128 +bulletIa/bulletIa005 + bounds: 256, 896, 256, 128 +bulletIa/bulletIa006 + bounds: 512, 640, 256, 128 +bulletIa/bulletIa007 + bounds: 768, 384, 256, 128 +bulletIa/bulletIa008 + bounds: 1024, 128, 256, 128 +bulletIa/bulletIa009 + bounds: 1280, 0, 256, 128 +bulletIa/bulletIa010 + bounds: 0, 1408, 256, 128 +bulletIa/bulletIa011 + bounds: 256, 1024, 256, 128 +bulletIa/bulletIa012 + bounds: 512, 768, 256, 128 +bulletIa/bulletIa013 + bounds: 768, 512, 256, 128 +bulletIa/bulletIa014 + bounds: 1024, 256, 256, 128 +bulletIa/bulletIa016 + bounds: 1536, 0, 256, 128 +bulletIa/bulletIa017 + bounds: 1792, 0, 256, 128 +bulletIa/bulletIa018 + bounds: 384, 1152, 256, 128 +bulletIa/bulletIa019 + bounds: 640, 896, 256, 128 +dashFront/dashFront004 + bounds: 1632, 1891, 72, 106 + offsets: 34, 18, 128, 128 +dashFrontAir/dashFrontAir004 + bounds: 1700, 1782, 72, 106 + offsets: 34, 18, 128, 128 +down/down000 + bounds: 1789, 1966, 82, 45 + offsets: 21, 5, 128, 64 +down/down005 + bounds: 846, 1982, 106, 46 + offsets: 11, 4, 128, 64 +down/down006 + bounds: 1632, 1997, 97, 43 + offsets: 16, 6, 128, 64 +down/down007 + bounds: 987, 1902, 98, 39 + offsets: 16, 5, 128, 64 +emotionAa/emotionAa000 + bounds: 1240, 1958, 55, 66 +emotionAa/emotionAa001 + bounds: 1323, 1968, 55, 66 +emotionDa/emotionDa000 + bounds: 1101, 1813, 50, 149 + offsets: 25, 2, 128, 160 +face/face000 + bounds: 1717, 1634, 132, 54 + offsets: 0, 10, 160, 64 +guardBUpper/guardBUpper001 + bounds: 1628, 1782, 72, 109 + offsets: 25, 7, 128, 128 +guardUpper/guardUpper001 + bounds: 1487, 1938, 63, 95 + offsets: 1, 17, 64, 128 +hitAir/hitAir001 + bounds: 1944, 1767, 62, 96 + offsets: 1, 17, 64, 128 +hitSit/hitSit000 + bounds: 1409, 1916, 78, 101 + offsets: 14, 10, 128, 128 +invin/invin000 + bounds: 1581, 1624, 1, 1 + offsets: 0, 3, 4, 4 +objectAb/objectAb000 + bounds: 1024, 1781, 128, 32 +oharaibou/oharaibou001 + bounds: 1540, 1699, 56, 89 + offsets: 8, 19, 64, 128 +oharaibou/oharaibou002 + bounds: 2018, 1682, 29, 107 + offsets: 14, 11, 64, 128 +oharaibou/oharaibou003 + bounds: 805, 1953, 41, 83 + offsets: 2, 11, 64, 128 +oharaibou/oharaibou004 + bounds: 1962, 1863, 24, 83 + offsets: 5, 11, 32, 128 +oharaibou/oharaibou005 + bounds: 2026, 1789, 22, 83 + offsets: 7, 11, 32, 128 +oharaibou/oharaibou006 + bounds: 1080, 1941, 21, 83 + offsets: 5, 19, 32, 128 +other/guardObject + bounds: 0, 0, 256, 256 +other/jumpFront000 + bounds: 1409, 1789, 79, 127 + offsets: 5, 1, 128, 128 +other/sit001 + bounds: 998, 1813, 103, 89 + offsets: 13, 6, 128, 128 +other/sit007 + bounds: 1697, 1690, 61, 92 + offsets: 2, 1, 64, 128 +other/walkBack004 + bounds: 1242, 1849, 93, 109 + offsets: 20, 5, 128, 128 +other/walkBack005 + bounds: 1151, 1843, 91, 113 + offsets: 21, 5, 128, 128 +other/walkFront006 + bounds: 1920, 1542, 109, 108 + offsets: 10, 7, 128, 128 +redAura/redAura000 + bounds: 1962, 1946, 32, 32 +shotB/shotB002 + bounds: 1866, 1536, 54, 123 + offsets: 12, 5, 128, 128 +shotB/shotB005 + bounds: 1758, 1688, 101, 92 + offsets: 12, 4, 128, 128 +shotC/shotC007 + bounds: 1154, 1647, 126, 110 + offsets: 1, 2, 128, 128 +shotC/shotC009 + bounds: 1772, 1780, 86, 95 + offsets: 21, 13, 128, 128 +shotD/shotD000 + bounds: 1859, 1659, 61, 93 + offsets: 3, 1, 64, 128 +shotD/shotD004 + bounds: 566, 1880, 134, 82 + offsets: 26, 1, 160, 128 +shotD/shotD005 + bounds: 430, 1880, 136, 82 + offsets: 24, 1, 160, 128 +spellA/spellA001 + bounds: 376, 1889, 54, 146 + offsets: 25, 2, 128, 160 +spellA/spellA002 + bounds: 1488, 1789, 50, 149 + offsets: 25, 2, 128, 160 +spellBulletAc/spellBulletAc000 + bounds: 859, 1886, 128, 32 +spellBulletAc/spellBulletAc001 + bounds: 849, 1918, 128, 32 +spellBulletAc/spellBulletAc002 + bounds: 849, 1950, 128, 32 +spellBulletB/spellBulletB000 + bounds: 1280, 128, 128, 256 +spellBulletB/spellBulletB001 + bounds: 0, 1536, 128, 256 +spellBulletB/spellBulletB002 + bounds: 256, 1152, 128, 256 +spellBulletB/spellBulletB003 + bounds: 512, 896, 128, 256 +spellBulletB/spellBulletB004 + bounds: 768, 640, 128, 256 +spellBulletB/spellBulletB005 + bounds: 1024, 384, 128, 256 +spellBulletB/spellBulletB006 + bounds: 1408, 128, 128, 256 +spellBulletB/spellBulletB007 + bounds: 128, 1536, 128, 256 +spellBulletB/spellBulletB008 + bounds: 256, 1408, 128, 256 +spellBulletB/spellBulletB009 + bounds: 1152, 384, 128, 256 +spellBulletB/spellBulletB010 + bounds: 1536, 128, 128, 256 +spellBulletB/spellBulletB011 + bounds: 384, 1280, 128, 256 +spellBulletB/spellBulletB012 + bounds: 640, 1024, 128, 256 +spellBulletB/spellBulletB013 + bounds: 896, 768, 128, 256 +spellBulletB/spellBulletB014 + bounds: 1280, 384, 128, 256 +spellBulletB/spellBulletB015 + bounds: 1664, 128, 128, 256 +spellBulletFa/spellBulletFa000 + bounds: 512, 1280, 128, 256 +spellBulletFa/spellBulletFa001 + bounds: 768, 1024, 128, 256 +spellBulletFa/spellBulletFa002 + bounds: 1024, 768, 128, 256 +spellBulletFa/spellBulletFa003 + bounds: 1152, 640, 128, 256 +spellBulletFa/spellBulletFa004 + bounds: 1408, 384, 128, 256 +spellBulletFa/spellBulletFa005 + bounds: 1792, 128, 128, 256 +spellBulletFa/spellBulletFa006 + bounds: 1920, 128, 128, 256 +spellBulletFa/spellBulletFa007 + bounds: 640, 1280, 128, 256 +spellBulletFa/spellBulletFa008 + bounds: 896, 1024, 128, 256 +spellBulletFa/spellBulletFa009 + bounds: 1280, 640, 128, 256 +spellBulletFa/spellBulletFa010 + bounds: 1536, 384, 128, 256 +spellBulletFa/spellBulletFa011 + bounds: 768, 1280, 128, 256 +spellBulletFa/spellBulletFa012 + bounds: 1024, 1024, 128, 256 +spellBulletFa/spellBulletFa013 + bounds: 1152, 896, 128, 256 +spellBulletFa/spellBulletFa014 + bounds: 1408, 640, 128, 256 +spellBulletFa/spellBulletFa015 + bounds: 1664, 384, 128, 256 +spellBulletFa/spellBulletFa016 + bounds: 896, 1280, 128, 256 +spellBulletFa/spellBulletFa017 + bounds: 1280, 896, 128, 256 +spellBulletFa/spellBulletFa018 + bounds: 1536, 640, 128, 256 +spellBulletFa/spellBulletFa019 + bounds: 1792, 384, 128, 256 +spellBulletFa/spellBulletFa020 + bounds: 1920, 384, 128, 256 +spellBulletFa/spellBulletFa021 + bounds: 1024, 1280, 128, 256 +spellBulletFa/spellBulletFa022 + bounds: 1152, 1152, 128, 256 +spellBulletFa/spellBulletFa023 + bounds: 1408, 896, 128, 256 +spellBulletFa/spellBulletFa024 + bounds: 1664, 640, 128, 256 +spellBulletFa/spellBulletFa025 + bounds: 1280, 1152, 128, 256 +spellBulletFa/spellBulletFa026 + bounds: 1536, 896, 128, 256 +spellBulletFa/spellBulletFa027 + bounds: 1792, 640, 128, 256 +spellBulletHc/spellBulletHc000 + bounds: 896, 640, 256, 128 +spellBulletIa/spellBulletIa000 + bounds: 0, 256, 256, 256 +spellBulletIa/spellBulletIa001 + bounds: 256, 0, 256, 256 +spellBulletIa/spellBulletIa002 + bounds: 0, 512, 256, 256 +spellBulletIa/spellBulletIa003 + bounds: 256, 256, 256, 256 +spellBulletIa/spellBulletIa004 + bounds: 512, 0, 256, 256 +spellBulletIa/spellBulletIa005 + bounds: 0, 768, 256, 256 +spellBulletIa/spellBulletIa006 + bounds: 256, 512, 256, 256 +spellBulletIa/spellBulletIa007 + bounds: 512, 256, 256, 256 +spellBulletIa/spellBulletIa008 + bounds: 768, 0, 256, 256 +spellBulletIa/spellBulletIa009 + bounds: 0, 1024, 256, 256 +spellC/spellC003 + bounds: 1550, 1897, 82, 108 + offsets: 28, 0, 128, 128 +spellC/spellC005 + bounds: 1335, 1849, 74, 119 + offsets: 31, 4, 128, 128 +spellC/spellC008 + bounds: 1152, 1536, 139, 111 + offsets: 11, 10, 160, 128 +spellC/spellC009 + bounds: 141, 1792, 141, 109 + offsets: 9, 10, 160, 128 +spellC/spellC010 + bounds: 0, 1792, 141, 119 + offsets: 9, 6, 160, 128 +spellC/spellC011 + bounds: 1024, 1664, 130, 117 + offsets: 5, 10, 160, 128 +spellCall/spellCall006 + bounds: 282, 1792, 143, 97 + offsets: 8, 27, 256, 128 +spellCall/spellCall007 + bounds: 1291, 1536, 142, 97 + offsets: 6, 27, 256, 128 +spellCall/spellCall008 + bounds: 720, 1792, 139, 98 + offsets: 8, 27, 256, 128 +spellD/spellD003 + bounds: 141, 1901, 84, 139 + offsets: 4, 4, 128, 160 +spellD/spellD004 + bounds: 1915, 1875, 47, 108 + offsets: 11, 4, 64, 128 +spellD/spellD012 + bounds: 1789, 1875, 78, 91 + offsets: 27, 2, 128, 128 +spellDb/spellDb003 + bounds: 292, 1889, 84, 141 + offsets: 4, 2, 128, 160 +spellFa/spellFa005 + bounds: 1704, 1888, 85, 96 +spellFa/spellFa006 + bounds: 1726, 1536, 140, 98 +standUp/standUp003 + bounds: 1101, 1962, 47, 59 + offsets: 8, 2, 64, 64 +standUp/standUp004 + bounds: 1859, 1752, 49, 36 + offsets: 8, 12, 64, 64 +standUp/standUp005 + bounds: 1871, 1952, 40, 49 + offsets: 10, 8, 64, 64 +standUp/standUp006 + bounds: 1729, 1984, 51, 44 + offsets: 3, 12, 64, 64 +standUp/standUp007 + bounds: 952, 1982, 42, 58 + offsets: 10, 3, 64, 64 +tailAa/tailAa000 + bounds: 128, 1911, 10, 128 +tailAa/tailAa001 + bounds: 1538, 1789, 10, 128 +tailAa/tailAa002 + bounds: 2006, 1767, 10, 128 +tailAa/tailAa003 + bounds: 2016, 1789, 10, 128 + +reimu-1.png +size: 2048, 2048 +format: RGBA8888 +filter: Linear, Linear +repeat: none +pma: false +attackA/attackA002 + bounds: 1768, 1935, 88, 113 + offsets: 15, 5, 128, 128 +attackA/attackA005 + bounds: 1932, 1935, 84, 112 + offsets: 16, 5, 128, 128 +attackB/attackB001 + bounds: 1340, 1396, 119, 94 + offsets: 7, 9, 128, 128 +attackB/attackB003 + bounds: 1916, 1707, 111, 89 + offsets: 3, 9, 128, 128 +attackC/attackC005 + bounds: 1216, 1726, 112, 98 + offsets: 15, 14, 128, 128 +attackC/attackC007 + bounds: 1718, 1394, 118, 67 + offsets: 10, 34, 128, 128 +attackE/attackE001 + bounds: 1459, 1455, 117, 88 + offsets: 8, 20, 128, 128 +attackE/attackE002 + bounds: 1332, 1594, 114, 91 + offsets: 9, 19, 128, 128 +attackE/attackE004 + bounds: 1216, 1938, 109, 110 + offsets: 6, 16, 128, 128 +attackG/attackG002 + bounds: 1690, 1556, 114, 73 + offsets: 14, 24, 128, 125 +attackG/attackG004 + bounds: 1469, 1380, 120, 75 + offsets: 6, 20, 128, 125 +attackH/attackH000 + bounds: 1442, 1745, 112, 91 + offsets: 3, 2, 116, 104 +attackH/attackH002 + bounds: 1451, 1543, 114, 99 + offsets: 1, 2, 116, 104 +attackJ/attackJ003 + bounds: 1550, 1868, 100, 69 + offsets: 11, 2, 128, 128 +attackJ/attackJ004 + bounds: 1216, 1824, 112, 71 + offsets: 15, 2, 128, 128 +attackJ/attackJ005 + bounds: 1328, 1784, 112, 72 + offsets: 14, 2, 128, 128 +attackJ/attackJ006 + bounds: 1670, 1722, 111, 73 + offsets: 14, 2, 128, 128 +attackL/attackL002 + bounds: 1664, 1795, 88, 72 + offsets: 10, 23, 128, 128 +attackN/attackN009 + bounds: 1836, 1799, 74, 68 + offsets: 26, 10, 128, 128 +bulletAd/bulletAd001 + bounds: 1472, 1152, 128, 64 +bulletAd/bulletAd002 + bounds: 1600, 1152, 128, 64 +bulletAd/bulletAd003 + bounds: 1728, 1152, 128, 64 +bulletAd/bulletAd004 + bounds: 1856, 1152, 128, 64 +bulletAd/bulletAd005 + bounds: 1472, 1216, 128, 64 +bulletAd/bulletAd006 + bounds: 1344, 1249, 128, 64 +bulletAd/bulletAd007 + bounds: 1216, 1280, 128, 64 +bulletCc/bulletCc000 + bounds: 1984, 512, 64, 128 +bulletCc/bulletCc001 + bounds: 1984, 640, 64, 128 +bulletCc/bulletCc002 + bounds: 1984, 768, 64, 128 +bulletCc/bulletCc003 + bounds: 1984, 896, 64, 128 +bulletCc/bulletCc004 + bounds: 1984, 1024, 64, 128 +bulletCc/bulletCc005 + bounds: 1984, 1152, 64, 128 +bulletCd/bulletCd007 + bounds: 64, 512, 128, 128 +bulletCd/bulletCd008 + bounds: 128, 0, 128, 128 +bulletCd/bulletCd009 + bounds: 128, 128, 128, 128 +bulletCd/bulletCd010 + bounds: 128, 256, 128, 128 +bulletCd/bulletCd011 + bounds: 128, 384, 128, 128 +bulletCd/bulletCd012 + bounds: 64, 640, 128, 128 +bulletCd/bulletCd013 + bounds: 64, 768, 128, 128 +bulletCd/bulletCd014 + bounds: 64, 896, 128, 128 +bulletCd/bulletCd015 + bounds: 64, 1024, 128, 128 +bulletCd/bulletCd016 + bounds: 64, 1152, 128, 128 +bulletCd/bulletCd017 + bounds: 64, 1280, 128, 128 +bulletCd/bulletCd018 + bounds: 64, 1408, 128, 128 +bulletCd/bulletCd019 + bounds: 64, 1536, 128, 128 +bulletCd/bulletCd020 + bounds: 64, 1664, 128, 128 +bulletCd/bulletCd021 + bounds: 64, 1792, 128, 128 +bulletCd/bulletCd022 + bounds: 64, 1920, 128, 128 +bulletCd/bulletCd023 + bounds: 192, 512, 128, 128 +bulletCd/bulletCd024 + bounds: 256, 0, 128, 128 +bulletCd/bulletCd025 + bounds: 256, 128, 128, 128 +bulletCd/bulletCd026 + bounds: 256, 256, 128, 128 +bulletCd/bulletCd027 + bounds: 256, 384, 128, 128 +bulletCd/bulletCd028 + bounds: 192, 640, 128, 128 +bulletCd/bulletCd029 + bounds: 192, 768, 128, 128 +bulletEb/bulletEb000 + bounds: 192, 896, 128, 128 +bulletEe/bulletEe001 + bounds: 1600, 1216, 128, 48 +bulletEe/bulletEe003 + bounds: 192, 1024, 128, 128 +bulletEe003 + bounds: 192, 1152, 128, 128 +bulletEf/bulletEf000 + bounds: 192, 1280, 128, 128 +bulletFa/bulletFa000 + bounds: 192, 1408, 128, 128 +bulletFa/bulletFa001 + bounds: 192, 1536, 128, 128 +bulletFa/bulletFa002 + bounds: 192, 1664, 128, 128 +bulletFa/bulletFa003 + bounds: 192, 1792, 128, 128 +bulletFa/bulletFa004 + bounds: 192, 1920, 128, 128 +bulletFa/bulletFa005 + bounds: 320, 512, 128, 128 +bulletFa/bulletFa006 + bounds: 384, 0, 128, 128 +bulletFa/bulletFa007 + bounds: 384, 128, 128, 128 +bulletFa/bulletFa008 + bounds: 384, 256, 128, 128 +bulletFa/bulletFa009 + bounds: 384, 384, 128, 128 +bulletFa/bulletFa010 + bounds: 320, 640, 128, 128 +bulletGa/bulletGa002 + bounds: 1978, 1899, 63, 32 + offsets: 1, 0, 64, 32 +dashBack/dashBack001 + bounds: 1678, 1629, 112, 93 + offsets: 14, 19, 128, 128 +dashBack/dashBack002 + bounds: 1836, 1412, 116, 95 + offsets: 12, 19, 128, 128 +dashBackAir/dashBackAir001 + bounds: 1558, 1670, 112, 93 + offsets: 14, 19, 128, 128 +dashBackAir/dashBackAir002 + bounds: 1718, 1461, 116, 95 + offsets: 12, 19, 128, 128 +dashStop/dashStop002 + bounds: 1650, 1868, 95, 69 + offsets: 22, 12, 128, 128 +down/down008 + bounds: 1216, 1895, 99, 37 + offsets: 15, 5, 128, 64 +guardBUpper/guardBUpper000 + bounds: 1513, 1938, 71, 110 + offsets: 26, 7, 128, 128 +guardUnder/guardUnder000 + bounds: 1979, 1280, 69, 104 + offsets: 28, 11, 128, 128 +guardUnder/guardUnder001 + bounds: 1978, 1796, 69, 103 + offsets: 29, 11, 128, 128 +hitAir/hitAir002 + bounds: 1752, 1799, 84, 68 + offsets: 21, 26, 128, 128 +hitAir/hitAir003 + bounds: 1833, 1867, 79, 68 + offsets: 24, 29, 128, 128 +hitSpin/hitSpin000 + bounds: 1216, 1638, 114, 88 + offsets: 6, 5, 128, 128 +hitSpin/hitSpin001 + bounds: 1600, 1264, 126, 100 + offsets: 1, 5, 128, 128 +hitSpin/hitSpin003 + bounds: 1978, 1384, 70, 74 + offsets: 45, 5, 128, 128 +hitSpin/hitSpin004 + bounds: 1472, 1280, 126, 100 + offsets: 1, 4, 128, 128 +hitSpin/hitSpin005 + bounds: 1216, 1447, 119, 94 + offsets: 8, 5, 128, 128 +objectAa/objectAa000 + bounds: 320, 768, 128, 128 +objectAa/objectAa001 + bounds: 320, 896, 128, 128 +objectAa/objectAa002 + bounds: 320, 1024, 128, 128 +objectAa/objectAa003 + bounds: 320, 1152, 128, 128 +objectAa/objectAa004 + bounds: 320, 1280, 128, 128 +objectAa/objectAa005 + bounds: 320, 1408, 128, 128 +objectAa/objectAa006 + bounds: 320, 1536, 128, 128 +objectAa/objectAa007 + bounds: 320, 1664, 128, 128 +objectAa/objectAa008 + bounds: 320, 1792, 128, 128 +objectAa/objectAa009 + bounds: 320, 1920, 128, 128 +objectAa/objectAa010 + bounds: 448, 512, 128, 128 +objectAa/objectAa011 + bounds: 512, 0, 128, 128 +objectAa/objectAa012 + bounds: 512, 128, 128, 128 +objectAa/objectAa013 + bounds: 512, 256, 128, 128 +objectAa/objectAa014 + bounds: 512, 384, 128, 128 +objectAa/objectAa015 + bounds: 448, 640, 128, 128 +objectAa/objectAa016 + bounds: 448, 768, 128, 128 +objectAa/objectAa017 + bounds: 448, 896, 128, 128 +objectAa/objectAa018 + bounds: 448, 1024, 128, 128 +objectAa/objectAa019 + bounds: 448, 1152, 128, 128 +objectBa/objectBa000 + bounds: 448, 1280, 128, 128 +oharaibou/oharaibou000 + bounds: 1745, 1867, 88, 68 + offsets: 20, 28, 128, 128 +other/hitUpper000 + bounds: 1576, 1468, 114, 100 + offsets: 6, 3, 128, 128 +other/jump003 + bounds: 1328, 1856, 89, 82 + offsets: 16, 15, 128, 128 +other/jump005 + bounds: 1912, 1863, 66, 72 + offsets: 1, 18, 128, 128 +other/jump007 + bounds: 1598, 1364, 120, 104 + offsets: 7, 3, 128, 128 +other/jump008 + bounds: 1335, 1490, 116, 104 + offsets: 7, 3, 128, 128 +other/jumpFront001 + bounds: 1728, 1216, 127, 104 + offsets: 0, 8, 128, 128 +other/jumpFront002 + bounds: 1726, 1320, 122, 74 + offsets: 2, 25, 128, 128 +other/sit008 + bounds: 1856, 1935, 76, 113 + offsets: 28, 7, 128, 128 +other/walkBack000 + bounds: 1952, 1458, 96, 121 + offsets: 20, 5, 128, 128 +other/walkBack006 + bounds: 1677, 1937, 91, 111 + offsets: 22, 5, 128, 128 +other/walkBack007 + bounds: 1422, 1938, 91, 110 + offsets: 21, 5, 128, 128 +other/walkFront005 + bounds: 1440, 1836, 110, 102 + offsets: 8, 7, 128, 128 +other/walkFront007 + bounds: 1565, 1568, 113, 102 + offsets: 11, 7, 128, 128 +shotAb/shotAb000 + bounds: 1330, 1685, 112, 99 + offsets: 4, 17, 128, 128 +shotAb/shotAb001 + bounds: 1554, 1763, 110, 105 + offsets: 3, 17, 128, 128 +shotB/shotB006 + bounds: 1216, 1541, 116, 97 + offsets: 10, 0, 128, 128 +shotBd/shotBd002 + bounds: 1790, 1712, 111, 87 + offsets: 12, 12, 128, 128 +shotC/shotC006 + bounds: 1216, 1344, 124, 103 + offsets: 3, 13, 128, 128 +shotC/shotC008 + bounds: 1855, 1299, 123, 113 + offsets: 3, 13, 128, 128 +shotCb/shotCb001 + bounds: 1446, 1642, 112, 103 + offsets: 13, 2, 128, 128 +shotCb/shotCb002 + bounds: 1834, 1507, 114, 110 + offsets: 11, 2, 128, 128 +shotCc/shotCc002 + bounds: 1804, 1617, 112, 95 + offsets: 10, 2, 128, 128 +shotD/shotD003 + bounds: 1855, 1216, 124, 83 + offsets: 2, 1, 128, 128 +shotD/shotD006 + bounds: 1344, 1313, 125, 83 + offsets: 2, 1, 128, 128 +spellB/spellB004 + bounds: 1325, 1938, 97, 110 + offsets: 30, 2, 128, 128 +spellBulletA/spellBulletA000 + bounds: 448, 1408, 128, 128 +spellBulletA/spellBulletA001 + bounds: 448, 1536, 128, 128 +spellBulletA/spellBulletA002 + bounds: 448, 1664, 128, 128 +spellBulletAa/spellBulletAa003 + bounds: 448, 1792, 128, 128 +spellBulletAb/spellBulletAb000 + bounds: 448, 1920, 128, 128 +spellBulletAb/spellBulletAb001 + bounds: 640, 0, 128, 128 +spellBulletAb/spellBulletAb002 + bounds: 768, 0, 128, 128 +spellBulletC/spellBulletC000 + bounds: 896, 0, 128, 128 +spellBulletC/spellBulletC001 + bounds: 1024, 0, 128, 128 +spellBulletC/spellBulletC002 + bounds: 1152, 0, 128, 128 +spellBulletC/spellBulletC003 + bounds: 1280, 0, 128, 128 +spellBulletC/spellBulletC004 + bounds: 1408, 0, 128, 128 +spellBulletC/spellBulletC005 + bounds: 1536, 0, 128, 128 +spellBulletC/spellBulletC006 + bounds: 1664, 0, 128, 128 +spellBulletC/spellBulletC007 + bounds: 1792, 0, 128, 128 +spellBulletC/spellBulletC008 + bounds: 1920, 0, 128, 128 +spellBulletC/spellBulletC009 + bounds: 640, 128, 128, 128 +spellBulletC/spellBulletC010 + bounds: 768, 128, 128, 128 +spellBulletC/spellBulletC011 + bounds: 896, 128, 128, 128 +spellBulletC/spellBulletC012 + bounds: 1024, 128, 128, 128 +spellBulletC/spellBulletC013 + bounds: 1152, 128, 128, 128 +spellBulletC/spellBulletC014 + bounds: 1280, 128, 128, 128 +spellBulletC/spellBulletC015 + bounds: 1408, 128, 128, 128 +spellBulletC/spellBulletC016 + bounds: 1536, 128, 128, 128 +spellBulletC/spellBulletC017 + bounds: 1664, 128, 128, 128 +spellBulletC/spellBulletC018 + bounds: 1792, 128, 128, 128 +spellBulletC/spellBulletC019 + bounds: 1920, 128, 128, 128 +spellBulletC/spellBulletC020 + bounds: 640, 256, 128, 128 +spellBulletC/spellBulletC021 + bounds: 768, 256, 128, 128 +spellBulletC/spellBulletC022 + bounds: 896, 256, 128, 128 +spellBulletC/spellBulletC023 + bounds: 1024, 256, 128, 128 +spellBulletC/spellBulletC024 + bounds: 1152, 256, 128, 128 +spellBulletC/spellBulletC025 + bounds: 1280, 256, 128, 128 +spellBulletC/spellBulletC026 + bounds: 1408, 256, 128, 128 +spellBulletC/spellBulletC027 + bounds: 1536, 256, 128, 128 +spellBulletC/spellBulletC028 + bounds: 1664, 256, 128, 128 +spellBulletC/spellBulletC029 + bounds: 1792, 256, 128, 128 +spellBulletC/spellBulletC030 + bounds: 1920, 256, 128, 128 +spellBulletC/spellBulletC031 + bounds: 640, 384, 128, 128 +spellBulletC/spellBulletC032 + bounds: 768, 384, 128, 128 +spellBulletC/spellBulletC033 + bounds: 896, 384, 128, 128 +spellBulletC/spellBulletC034 + bounds: 1024, 384, 128, 128 +spellBulletC/spellBulletC035 + bounds: 1152, 384, 128, 128 +spellBulletC/spellBulletC036 + bounds: 1280, 384, 128, 128 +spellBulletC/spellBulletC037 + bounds: 1408, 384, 128, 128 +spellBulletC/spellBulletC038 + bounds: 1536, 384, 128, 128 +spellBulletC/spellBulletC039 + bounds: 1664, 384, 128, 128 +spellBulletC/spellBulletC040 + bounds: 1792, 384, 128, 128 +spellBulletC/spellBulletC041 + bounds: 1920, 384, 128, 128 +spellBulletC/spellBulletC042 + bounds: 576, 512, 128, 128 +spellBulletC/spellBulletC043 + bounds: 704, 512, 128, 128 +spellBulletC/spellBulletC044 + bounds: 832, 512, 128, 128 +spellBulletC/spellBulletC045 + bounds: 960, 512, 128, 128 +spellBulletC/spellBulletC046 + bounds: 1088, 512, 128, 128 +spellBulletC/spellBulletC047 + bounds: 1216, 512, 128, 128 +spellBulletC/spellBulletC048 + bounds: 1344, 512, 128, 128 +spellBulletC/spellBulletC049 + bounds: 1472, 512, 128, 128 +spellBulletC/spellBulletC050 + bounds: 1600, 512, 128, 128 +spellBulletC/spellBulletC051 + bounds: 1728, 512, 128, 128 +spellBulletC/spellBulletC052 + bounds: 1856, 512, 128, 128 +spellBulletC/spellBulletC053 + bounds: 576, 640, 128, 128 +spellBulletC/spellBulletC054 + bounds: 576, 768, 128, 128 +spellBulletC/spellBulletC055 + bounds: 576, 896, 128, 128 +spellBulletC/spellBulletC056 + bounds: 576, 1024, 128, 128 +spellBulletC/spellBulletC057 + bounds: 576, 1152, 128, 128 +spellBulletD/spellBulletD000 + bounds: 0, 0, 64, 256 +spellBulletD/spellBulletD001 + bounds: 0, 256, 64, 256 +spellBulletD/spellBulletD002 + bounds: 0, 512, 64, 256 +spellBulletD/spellBulletD003 + bounds: 0, 768, 64, 256 +spellBulletD/spellBulletD004 + bounds: 0, 1024, 64, 256 +spellBulletD/spellBulletD005 + bounds: 0, 1280, 64, 256 +spellBulletD/spellBulletD006 + bounds: 0, 1536, 64, 256 +spellBulletD/spellBulletD007 + bounds: 0, 1792, 64, 256 +spellBulletD/spellBulletD008 + bounds: 64, 0, 64, 256 +spellBulletD/spellBulletD009 + bounds: 64, 256, 64, 256 +spellBulletE/spellBulletE002 + bounds: 576, 1280, 128, 128 +spellBulletE/spellBulletE003 + bounds: 576, 1408, 128, 128 +spellBulletE/spellBulletE004 + bounds: 576, 1536, 128, 128 +spellBulletE/spellBulletE005 + bounds: 576, 1664, 128, 128 +spellBulletE/spellBulletE006 + bounds: 576, 1792, 128, 128 +spellBulletE/spellBulletE007 + bounds: 576, 1920, 128, 128 +spellBulletE/spellBulletE008 + bounds: 704, 640, 128, 128 +spellBulletE/spellBulletE009 + bounds: 832, 640, 128, 128 +spellBulletE/spellBulletE010 + bounds: 960, 640, 128, 128 +spellBulletE/spellBulletE011 + bounds: 1088, 640, 128, 128 +spellBulletE/spellBulletE012 + bounds: 1216, 640, 128, 128 +spellBulletE/spellBulletE013 + bounds: 1344, 640, 128, 128 +spellBulletE/spellBulletE014 + bounds: 1472, 640, 128, 128 +spellBulletE/spellBulletE015 + bounds: 1600, 640, 128, 128 +spellBulletE/spellBulletE016 + bounds: 1728, 640, 128, 128 +spellBulletE/spellBulletE017 + bounds: 1856, 640, 128, 128 +spellBulletE/spellBulletE018 + bounds: 704, 768, 128, 128 +spellBulletE/spellBulletE019 + bounds: 704, 896, 128, 128 +spellBulletE/spellBulletE020 + bounds: 704, 1024, 128, 128 +spellBulletE/spellBulletE021 + bounds: 704, 1152, 128, 128 +spellBulletE/spellBulletE022 + bounds: 704, 1280, 128, 128 +spellBulletE/spellBulletE023 + bounds: 704, 1408, 128, 128 +spellBulletE/spellBulletE024 + bounds: 704, 1536, 128, 128 +spellBulletE/spellBulletE025 + bounds: 704, 1664, 128, 128 +spellBulletE/spellBulletE026 + bounds: 704, 1792, 128, 128 +spellBulletE/spellBulletE027 + bounds: 704, 1920, 128, 128 +spellBulletE/spellBulletE028 + bounds: 832, 768, 128, 128 +spellBulletE/spellBulletE029 + bounds: 960, 768, 128, 128 +spellBulletE/spellBulletE030 + bounds: 1088, 768, 128, 128 +spellBulletE/spellBulletE031 + bounds: 1216, 768, 128, 128 +spellBulletE/spellBulletE032 + bounds: 1344, 768, 128, 128 +spellBulletE/spellBulletE033 + bounds: 1472, 768, 128, 128 +spellBulletE/spellBulletE034 + bounds: 1600, 768, 128, 128 +spellBulletE/spellBulletE035 + bounds: 1728, 768, 128, 128 +spellBulletE/spellBulletE036 + bounds: 1856, 768, 128, 128 +spellBulletE/spellBulletE037 + bounds: 832, 896, 128, 128 +spellBulletE/spellBulletE038 + bounds: 832, 1024, 128, 128 +spellBulletE/spellBulletE039 + bounds: 832, 1152, 128, 128 +spellBulletE/spellBulletE040 + bounds: 832, 1280, 128, 128 +spellBulletE/spellBulletE041 + bounds: 832, 1408, 128, 128 +spellBulletE/spellBulletE042 + bounds: 832, 1536, 128, 128 +spellBulletE/spellBulletE043 + bounds: 832, 1664, 128, 128 +spellBulletE/spellBulletE044 + bounds: 832, 1792, 128, 128 +spellBulletE/spellBulletE045 + bounds: 832, 1920, 128, 128 +spellBulletE/spellBulletE046 + bounds: 960, 896, 128, 128 +spellBulletE/spellBulletE047 + bounds: 1088, 896, 128, 128 +spellBulletE/spellBulletE048 + bounds: 1216, 896, 128, 128 +spellBulletE/spellBulletE049 + bounds: 1344, 896, 128, 128 +spellBulletE/spellBulletE050 + bounds: 1472, 896, 128, 128 +spellBulletE/spellBulletE051 + bounds: 1600, 896, 128, 128 +spellBulletE/spellBulletE052 + bounds: 1728, 896, 128, 128 +spellBulletE/spellBulletE053 + bounds: 1856, 896, 128, 128 +spellBulletE/spellBulletE054 + bounds: 960, 1024, 128, 128 +spellBulletE/spellBulletE055 + bounds: 960, 1152, 128, 128 +spellBulletE/spellBulletE056 + bounds: 960, 1280, 128, 128 +spellBulletE/spellBulletE057 + bounds: 960, 1408, 128, 128 +spellBulletE/spellBulletE058 + bounds: 960, 1536, 128, 128 +spellBulletE/spellBulletE059 + bounds: 960, 1664, 128, 128 +spellBulletGa/spellBulletGa001 + bounds: 960, 1792, 128, 128 +spellBulletHb/spellBulletHb000 + bounds: 960, 1920, 128, 128 +spellBulletJa/spellBulletJa000 + bounds: 1088, 1024, 128, 128 +spellBulletJa/spellBulletJa001 + bounds: 1216, 1024, 128, 128 +spellBulletJa/spellBulletJa002 + bounds: 1344, 1024, 128, 128 +spellBulletJa/spellBulletJa003 + bounds: 1472, 1024, 128, 128 +spellBulletJa/spellBulletJa004 + bounds: 1600, 1024, 128, 128 +spellBulletJb/spellBulletJb000 + bounds: 1728, 1024, 128, 128 +spellBulletJb/spellBulletJb001 + bounds: 1856, 1024, 128, 128 +spellBulletJb/spellBulletJb002 + bounds: 1088, 1152, 128, 128 +spellBulletJb/spellBulletJb003 + bounds: 1088, 1280, 128, 128 +spellBulletJb/spellBulletJb004 + bounds: 1088, 1408, 128, 128 +spellBulletJb/spellBulletJb005 + bounds: 1088, 1536, 128, 128 +spellBulletJb/spellBulletJb006 + bounds: 1088, 1664, 128, 128 +spellBulletJb/spellBulletJb007 + bounds: 1088, 1792, 128, 128 +spellBulletJb/spellBulletJb008 + bounds: 1088, 1920, 128, 128 +spellBulletJb/spellBulletJb009 + bounds: 1216, 1152, 128, 128 +spellC/spellC007 + bounds: 1948, 1579, 100, 128 + offsets: 18, 0, 128, 128 +spellCall/spellCall009 + bounds: 1344, 1152, 128, 97 + offsets: 0, 27, 128, 128 +spellFa/spellFa007 + bounds: 1584, 1937, 93, 111 +standUp/standUp001 + bounds: 1910, 1796, 67, 67 + offsets: 29, 30, 128, 128 + +reimu-2.png +size: 1993, 1263 +format: RGBA8888 +filter: Linear, Linear +repeat: none +pma: false +attackA/attackA000 + bounds: 1772, 292, 97, 95 + offsets: 8, 5, 128, 128 +attackA/attackA001 + bounds: 655, 695, 94, 99 + offsets: 7, 5, 128, 128 +attackA/attackA003 + bounds: 242, 712, 80, 115 + offsets: 16, 5, 128, 128 +attackA/attackA004 + bounds: 95, 714, 79, 116 + offsets: 16, 5, 128, 128 +attackA/attackA006 + bounds: 749, 691, 97, 95 + offsets: 8, 5, 128, 128 +attackB/attackB000 + bounds: 1307, 665, 95, 91 + offsets: 23, 9, 128, 128 +attackB/attackB004 + bounds: 1661, 736, 82, 92 + offsets: 17, 9, 128, 128 +attackC/attackC000 + bounds: 1410, 1127, 77, 90 + offsets: 28, 25, 128, 128 +attackC/attackC001 + bounds: 1898, 846, 95, 64 + offsets: 10, 0, 128, 64 +attackC/attackC002 + bounds: 1153, 518, 106, 50 + offsets: 10, 2, 128, 64 +attackC/attackC003 + bounds: 1320, 1207, 85, 55 + offsets: 17, 2, 128, 64 +attackC/attackC004 + bounds: 1085, 1205, 85, 54 + offsets: 15, 2, 128, 64 +attackC/attackC006 + bounds: 740, 0, 108, 99 + offsets: 16, 13, 128, 128 +attackC/attackC009 + bounds: 1391, 0, 107, 96 + offsets: 9, 32, 128, 128 +attackD/attackD000 + bounds: 1100, 556, 52, 94 + offsets: 3, 30, 64, 128 +attackD/attackD001 + bounds: 603, 996, 97, 66 + offsets: 5, 29, 128, 128 +attackE/attackE000 + bounds: 297, 299, 102, 102 + offsets: 8, 16, 128, 128 +attackF/attackF000 + bounds: 0, 596, 89, 118 + offsets: 6, 9, 128, 128 +attackF/attackF001 + bounds: 1342, 586, 97, 79 + offsets: 8, 32, 128, 128 +attackF/attackF002 + bounds: 1560, 390, 84, 98 + offsets: 2, 16, 128, 128 +attackF/attackF003 + bounds: 1059, 1018, 84, 94 + offsets: 4, 18, 128, 128 +attackF/attackF004 + bounds: 986, 1120, 80, 95 + offsets: 4, 18, 128, 128 +attackG/attackG000 + bounds: 667, 794, 94, 99 + offsets: 16, 16, 128, 125 +attackG/attackG001 + bounds: 391, 1060, 80, 103 + offsets: 24, 18, 128, 125 +attackG/attackG005 + bounds: 1498, 0, 107, 96 + offsets: 14, 12, 128, 125 +attackH/attackH001 + bounds: 1816, 387, 57, 99 + offsets: 31, 3, 116, 104 +attackH/attackH003 + bounds: 1742, 387, 74, 99 + offsets: 31, 3, 116, 104 +attackI/attackI000 + bounds: 761, 786, 91, 96 + offsets: 6, 2, 128, 128 +attackI/attackI001 + bounds: 798, 1172, 98, 91 + offsets: 10, 2, 128, 128 +attackI/attackI002 + bounds: 1145, 924, 94, 93 + offsets: 11, 2, 128, 128 +attackI/attackI003 + bounds: 993, 648, 98, 92 + offsets: 15, 2, 128, 128 +attackI/attackI009 + bounds: 795, 1076, 91, 96 + offsets: 6, 2, 128, 128 +attackJ/attackJ000 + bounds: 1377, 390, 94, 98 + offsets: 3, 2, 128, 128 +attackJ/attackJ001 + bounds: 378, 629, 100, 66 + offsets: 11, 2, 128, 128 +attackJ/attackJ002 + bounds: 698, 1186, 100, 65 + offsets: 11, 2, 128, 128 +attackJ/attackJ007 + bounds: 797, 556, 103, 78 + offsets: 14, 2, 128, 128 +attackJ/attackJ008 + bounds: 502, 428, 110, 86 + offsets: 6, 2, 128, 128 +attackJ/attackJ009 + bounds: 1487, 96, 97, 98 + offsets: 1, 2, 128, 128 +attackK/attackK000 + bounds: 961, 930, 90, 95 + offsets: 3, 8, 128, 128 +attackK/attackK003 + bounds: 1650, 579, 92, 95 + offsets: 10, 8, 128, 128 +attackK/attackK004 + bounds: 1293, 756, 94, 92 + offsets: 12, 9, 128, 128 +attackK/attackK006 + bounds: 0, 1175, 107, 88 + offsets: 19, 12, 128, 128 +attackK/attackK007 + bounds: 896, 1160, 90, 96 + offsets: 19, 12, 128, 128 +attackL/attackL000 + bounds: 696, 101, 79, 103 + offsets: 11, 2, 128, 128 +attackL/attackL001 + bounds: 1043, 742, 96, 91 + offsets: 9, 2, 128, 128 +attackL/attackL003 + bounds: 1466, 675, 96, 81 + offsets: 18, 13, 128, 128 +attackL/attackL004 + bounds: 748, 634, 99, 57 + offsets: 20, 23, 128, 128 +attackL/attackL005 + bounds: 651, 633, 97, 62 + offsets: 21, 21, 128, 128 +attackL/attackL006 + bounds: 1281, 488, 98, 62 + offsets: 21, 21, 128, 128 +attackM/attackM000 + bounds: 867, 872, 91, 96 +attackM/attackM001 + bounds: 848, 97, 107, 91 +attackM/attackM002 + bounds: 201, 105, 110, 91 +attackM/attackM003 + bounds: 1319, 941, 92, 92 +attackM/attackM007 + bounds: 1826, 486, 74, 98 +attackM/attackM008 + bounds: 900, 556, 101, 90 +attackM/attackM009 + bounds: 870, 968, 91, 96 +attackN/attackN000 + bounds: 1142, 292, 96, 98 + offsets: 12, 9, 128, 128 +attackN/attackN001 + bounds: 107, 1166, 97, 97 + offsets: 11, 9, 128, 128 +attackN/attackN008 + bounds: 478, 619, 90, 76 + offsets: 26, 11, 128, 128 +attackN/attackN011 + bounds: 886, 1064, 91, 96 + offsets: 16, 9, 128, 128 +attackS/attackS000 + bounds: 1139, 752, 97, 86 +attackS/attackS001 + bounds: 1470, 1033, 93, 85 +attackS/attackS002 + bounds: 607, 796, 60, 101 +attackS/attackS003 + bounds: 167, 348, 66, 126 +attackS/attackS005 + bounds: 543, 823, 64, 123 +bulletA/bulletA002 + bounds: 1238, 1098, 64, 64 +bulletAe/bulletAe000 + bounds: 1833, 933, 64, 64 +bulletB/bulletB000 + bounds: 1694, 1158, 64, 64 +bulletB/bulletB001 + bounds: 1800, 997, 64, 64 +bulletBb/bulletBb000 + bounds: 1864, 1000, 64, 64 +bulletBb/bulletBb001 + bounds: 1928, 1000, 64, 64 +bulletCb/bulletCb000 + bounds: 1796, 1061, 64, 64 +bulletCc/bulletCc006 + bounds: 90, 475, 64, 128 +bulletCc/bulletCc007 + bounds: 159, 830, 64, 128 +bulletDa/bulletDa000 + bounds: 154, 475, 64, 128 +bulletDa/bulletDa001 + bounds: 223, 828, 64, 128 +bulletDa/bulletDa002 + bounds: 218, 474, 64, 128 +bulletDa/bulletDa003 + bounds: 287, 827, 64, 128 +bulletDa/bulletDa004 + bounds: 233, 196, 64, 128 +bulletDa/bulletDa005 + bounds: 233, 324, 64, 128 +bulletDa/bulletDa006 + bounds: 351, 825, 64, 128 +bulletDa/bulletDa007 + bounds: 502, 300, 64, 128 +bulletDa/bulletDa008 + bounds: 566, 300, 64, 128 +bulletDa/bulletDa009 + bounds: 630, 300, 64, 128 +bulletDa/bulletDa010 + bounds: 694, 300, 64, 128 +bulletDa/bulletDa011 + bounds: 705, 428, 64, 128 +bulletDa/bulletDa012 + bounds: 758, 300, 64, 128 +bulletDa/bulletDa013 + bounds: 769, 428, 64, 128 +bulletDa/bulletDa014 + bounds: 822, 300, 64, 128 +bulletDa/bulletDa015 + bounds: 833, 428, 64, 128 +bulletDa/bulletDa016 + bounds: 886, 300, 64, 128 +bulletDa/bulletDa017 + bounds: 897, 428, 64, 128 +bulletDa/bulletDa018 + bounds: 950, 300, 64, 128 +bulletDa/bulletDa019 + bounds: 961, 428, 64, 128 +bulletDa/bulletDa020 + bounds: 1014, 300, 64, 128 +bulletDa/bulletDa021 + bounds: 1025, 428, 64, 128 +bulletDa/bulletDa022 + bounds: 1078, 300, 64, 128 +bulletDa/bulletDa023 + bounds: 1089, 428, 64, 128 +bulletDa/bulletDa024 + bounds: 1153, 390, 64, 128 +bulletDa/bulletDa025 + bounds: 1217, 390, 64, 128 +bulletDa/bulletDa026 + bounds: 379, 501, 64, 128 +bulletDa/bulletDa027 + bounds: 390, 695, 64, 128 +bulletDa/bulletDa028 + bounds: 415, 823, 64, 128 +bulletDa/bulletDa029 + bounds: 454, 695, 64, 128 +bulletDb/bulletDb000 + bounds: 479, 823, 64, 128 +bulletDb/bulletDb001 + bounds: 518, 695, 64, 128 +bulletEa/bulletEa002 + bounds: 848, 188, 92, 16 +bulletEc/bulletEc000 + bounds: 1470, 941, 92, 92 +bulletEd/bulletEd000 + bounds: 1860, 1064, 64, 64 +bulletEe/bulletEe002 + bounds: 1924, 1064, 64, 64 +bulletGa/bulletGa003 + bounds: 1405, 1217, 63, 32 + offsets: 1, 0, 64, 32 +bulletGb/bulletGb000 + bounds: 1816, 1128, 64, 64 +crash/crash000 + bounds: 895, 646, 98, 94 + offsets: 20, 3, 128, 128 +crash/crash001 + bounds: 322, 702, 68, 123 + offsets: 18, 1, 128, 128 +crash/crash002 + bounds: 1921, 0, 72, 125 + offsets: 13, 1, 128, 128 +dashBack/dashBack000 + bounds: 1067, 0, 108, 95 + offsets: 13, 18, 128, 128 +dashBackAir/dashBackAir000 + bounds: 1175, 0, 108, 95 + offsets: 13, 18, 128, 128 +dashFront/dashFront000 + bounds: 1562, 677, 94, 65 + offsets: 22, 12, 128, 128 +dashFront/dashFront001 + bounds: 1318, 95, 73, 101 + offsets: 32, 14, 128, 128 +dashFront/dashFront002 + bounds: 955, 99, 72, 105 + offsets: 33, 16, 128, 128 +dashFront/dashFront003 + bounds: 285, 956, 73, 105 + offsets: 34, 18, 128, 128 +dashFrontAir/dashFrontAir000 + bounds: 1145, 1017, 94, 65 + offsets: 22, 12, 128, 128 +dashFrontAir/dashFrontAir001 + bounds: 582, 695, 73, 101 + offsets: 32, 14, 128, 128 +dashFrontAir/dashFrontAir002 + bounds: 471, 1048, 72, 105 + offsets: 33, 16, 128, 128 +dashFrontAir/dashFrontAir003 + bounds: 775, 99, 73, 105 + offsets: 34, 18, 128, 128 +dashStop/dashStop000 + bounds: 1151, 657, 97, 95 + offsets: 18, 1, 128, 128 +dashStop/dashStop001 + bounds: 1706, 970, 94, 65 + offsets: 22, 12, 128, 128 +dashStop/dashStop003 + bounds: 590, 529, 104, 84 + offsets: 20, 12, 128, 128 +down/down001 + bounds: 1549, 1204, 74, 51 + offsets: 21, 6, 128, 64 +down/down002 + bounds: 1740, 677, 94, 56 + offsets: 13, 4, 128, 64 +down/down003 + bounds: 1706, 1097, 90, 61 + offsets: 13, 1, 128, 64 +down/down004 + bounds: 1706, 1035, 89, 62 + offsets: 13, 1, 128, 64 +down/down009 + bounds: 986, 1215, 99, 36 + offsets: 15, 5, 128, 64 +down/down010 + bounds: 852, 835, 99, 37 + offsets: 15, 4, 128, 64 +emotionBa/emotionBa000 + bounds: 606, 205, 99, 95 +emotionCa/emotionCa000 + bounds: 1091, 650, 60, 92 + offsets: 2, 1, 64, 128 +emotionCa/emotionCa001 + bounds: 1411, 1035, 59, 92 + offsets: 3, 1, 64, 128 +guardAir/guardAir000 + bounds: 1834, 679, 64, 90 + offsets: 0, 17, 64, 128 +guardBAir/guardBAir000 + bounds: 1834, 769, 64, 90 + offsets: 0, 17, 64, 128 +guardBUnder/guardBUnder000 + bounds: 784, 882, 83, 97 + offsets: 17, 13, 128, 128 +guardBUnder/guardBUnder001 + bounds: 977, 1025, 82, 95 + offsets: 18, 13, 128, 128 +guardUpper/guardUpper000 + bounds: 1402, 665, 64, 94 + offsets: 0, 17, 64, 128 +hitAir/hitAir000 + bounds: 400, 400, 102, 99 + offsets: 14, 7, 128, 128 +hitAir/hitAir004 + bounds: 1411, 941, 59, 94 + offsets: 1, 17, 64, 128 +hitAir/hitAir005 + bounds: 1839, 584, 59, 95 + offsets: 3, 16, 64, 128 +hitAir/hitAir006 + bounds: 1248, 657, 59, 95 + offsets: 3, 16, 64, 128 +hitSit/hitSit001 + bounds: 1320, 848, 73, 93 + offsets: 19, 10, 128, 128 +hitSit/hitSit002 + bounds: 639, 1062, 59, 89 + offsets: 3, 10, 64, 128 +hitSpin/hitSpin002 + bounds: 1236, 848, 84, 74 + offsets: 28, 5, 128, 128 +hitSpin/hitSpin006 + bounds: 311, 103, 106, 94 + offsets: 17, 5, 128, 128 +hitUnder/hitUnder000 + bounds: 1883, 125, 105, 76 + offsets: 12, 7, 128, 128 +hitUnder/hitUnder001 + bounds: 694, 556, 103, 77 + offsets: 12, 7, 128, 128 +hitUnder/hitUnder002 + bounds: 1139, 838, 97, 86 + offsets: 20, 7, 128, 128 +jumpBack/jumpBack000 + bounds: 1883, 201, 104, 87 + offsets: 6, 6, 128, 128 +other/hitUpper001 + bounds: 848, 0, 110, 97 + offsets: 8, 3, 128, 128 +other/hitUpper002 + bounds: 1576, 292, 98, 95 + offsets: 25, 3, 128, 128 +other/jump000 + bounds: 1281, 390, 96, 98 + offsets: 12, 3, 128, 128 +other/jump001 + bounds: 1682, 195, 97, 97 + offsets: 11, 3, 128, 128 +other/jump002 + bounds: 1779, 197, 104, 88 + offsets: 6, 5, 128, 128 +other/jump004 + bounds: 1834, 859, 64, 74 + offsets: 0, 52, 64, 128 +other/jump006 + bounds: 525, 0, 107, 102 + offsets: 8, 5, 128, 128 +other/jumpFront003 + bounds: 1632, 1123, 62, 86 + offsets: 1, 20, 64, 128 +other/sit000 + bounds: 1100, 194, 97, 98 + offsets: 26, 1, 128, 128 +other/sit002 + bounds: 1236, 752, 57, 96 + offsets: 5, 3, 64, 128 +other/sit003 + bounds: 174, 712, 68, 116 + offsets: 13, 3, 128, 128 +other/sit004 + bounds: 1604, 834, 79, 92 + offsets: 7, 3, 128, 128 +other/sit005 + bounds: 1637, 926, 62, 92 + offsets: 1, 1, 64, 128 +other/sit006 + bounds: 1683, 828, 60, 92 + offsets: 2, 1, 64, 128 +other/sit009 + bounds: 89, 603, 80, 111 + offsets: 27, 9, 128, 128 +other/sit010 + bounds: 409, 1163, 97, 99 + offsets: 27, 1, 128, 128 +other/stand000 + bounds: 522, 103, 94, 102 + offsets: 14, 11, 128, 128 +other/stand001 + bounds: 612, 428, 93, 101 + offsets: 15, 11, 128, 128 +other/stand002 + bounds: 700, 992, 95, 98 + offsets: 18, 11, 128, 128 +other/stand003 + bounds: 1873, 384, 91, 97 + offsets: 19, 11, 128, 128 +other/stand004 + bounds: 1379, 488, 94, 98 + offsets: 20, 11, 128, 128 +other/stand005 + bounds: 1391, 96, 96, 99 + offsets: 19, 11, 128, 128 +other/stand006 + bounds: 281, 602, 97, 100 + offsets: 18, 11, 128, 128 +other/stand007 + bounds: 282, 501, 97, 101 + offsets: 16, 11, 128, 128 +other/stand008 + bounds: 192, 958, 93, 103 + offsets: 15, 11, 128, 128 +other/stand009 + bounds: 300, 1061, 91, 103 + offsets: 15, 11, 128, 128 +other/walkBack001 + bounds: 0, 247, 99, 114 + offsets: 19, 5, 128, 128 +other/walkBack002 + bounds: 0, 361, 98, 114 + offsets: 19, 5, 128, 128 +other/walkBack003 + bounds: 0, 714, 95, 116 + offsets: 19, 5, 128, 128 +other/walkFront000 + bounds: 201, 0, 109, 105 + offsets: 10, 7, 128, 128 +other/walkFront001 + bounds: 1584, 99, 99, 95 + offsets: 11, 7, 128, 128 +other/walkFront002 + bounds: 947, 740, 96, 94 + offsets: 8, 7, 128, 128 +other/walkFront003 + bounds: 1051, 924, 94, 94 + offsets: 9, 7, 128, 128 +other/walkFront004 + bounds: 705, 204, 101, 96 + offsets: 8, 7, 128, 128 +shotA/shotA000 + bounds: 1473, 488, 93, 97 + offsets: 21, 17, 128, 128 +shotA/shotA001 + bounds: 1197, 194, 97, 98 + offsets: 19, 17, 128, 128 +shotA/shotA002 + bounds: 399, 300, 103, 100 + offsets: 10, 17, 128, 128 +shotA/shotA003 + bounds: 1711, 0, 105, 102 + offsets: 9, 15, 128, 128 +shotA/shotA004 + bounds: 446, 951, 97, 97 + offsets: 12, 17, 128, 128 +shotA/shotA005 + bounds: 806, 204, 98, 96 + offsets: 17, 17, 128, 128 +shotA/shotA006 + bounds: 304, 1164, 105, 99 + offsets: 9, 17, 128, 128 +shotA/shotA007 + bounds: 97, 1061, 104, 105 + offsets: 7, 17, 128, 128 +shotA/shotA008 + bounds: 418, 0, 107, 103 + offsets: 9, 17, 128, 128 +shotA/shotA009 + bounds: 698, 1090, 97, 96 + offsets: 21, 17, 128, 128 +shotA/shotA010 + bounds: 1816, 0, 105, 102 + offsets: 19, 0, 128, 128 +shotAb/shotAb002 + bounds: 93, 958, 99, 103 + offsets: 19, 17, 128, 128 +shotB/shotB000 + bounds: 0, 830, 93, 116 + offsets: 1, 2, 128, 128 +shotB/shotB001 + bounds: 543, 946, 60, 123 + offsets: 8, 4, 128, 128 +shotB/shotB003 + bounds: 1250, 568, 92, 89 + offsets: 16, 6, 128, 128 +shotB/shotB004 + bounds: 1900, 481, 93, 91 + offsets: 16, 4, 128, 128 +shotB/shotB007 + bounds: 443, 499, 51, 120 + offsets: 9, 6, 64, 128 +shotB/shotB008 + bounds: 169, 603, 65, 109 + offsets: 30, 4, 128, 128 +shotBb/shotBb000 + bounds: 1387, 759, 92, 89 + offsets: 16, 15, 128, 128 +shotBb/shotBb001 + bounds: 1900, 572, 93, 91 + offsets: 16, 13, 128, 128 +shotBb/shotBb002 + bounds: 1683, 102, 101, 93 + offsets: 12, 7, 128, 128 +shotBc/shotBc000 + bounds: 1743, 733, 91, 85 + offsets: 11, 19, 128, 128 +shotBc/shotBc001 + bounds: 1898, 758, 95, 88 + offsets: 12, 17, 128, 128 +shotBc/shotBc002 + bounds: 1743, 882, 90, 88 + offsets: 12, 17, 128, 128 +shotBd/shotBd000 + bounds: 1319, 1033, 92, 89 + offsets: 12, 14, 128, 128 +shotBd/shotBd001 + bounds: 1046, 833, 93, 91 + offsets: 12, 12, 128, 128 +shotC/shotC000 + bounds: 1294, 196, 97, 98 + offsets: 10, 12, 128, 128 +shotC/shotC001 + bounds: 297, 401, 103, 100 + offsets: 1, 12, 128, 128 +shotC/shotC002 + bounds: 417, 103, 105, 102 + offsets: 0, 10, 128, 128 +shotC/shotC003 + bounds: 1479, 756, 91, 92 + offsets: 10, 13, 128, 128 +shotC/shotC004 + bounds: 1479, 585, 83, 90 + offsets: 15, 13, 128, 128 +shotC/shotC005 + bounds: 958, 0, 109, 95 + offsets: 19, 13, 128, 128 +shotC/shotC010 + bounds: 1562, 940, 75, 92 + offsets: 37, 14, 128, 128 +shotC/shotC011 + bounds: 1391, 195, 97, 98 + offsets: 6, 13, 128, 128 +shotC/shotC012 + bounds: 297, 197, 105, 102 + offsets: 19, 0, 128, 128 +shotCb/shotCb000 + bounds: 1898, 663, 95, 95 + offsets: 29, 2, 128, 128 +shotCc/shotCc000 + bounds: 1570, 742, 91, 92 + offsets: 29, 3, 128, 128 +shotCc/shotCc001 + bounds: 1170, 1173, 83, 90 + offsets: 6, 2, 128, 128 +shotCd/shotCd000 + bounds: 852, 740, 95, 95 + offsets: 10, 2, 128, 128 +shotD/shotD001 + bounds: 1393, 848, 67, 93 + offsets: 29, 1, 128, 128 +shotD/shotD002 + bounds: 1563, 1032, 75, 91 + offsets: 21, 1, 128, 128 +shotD/shotD007 + bounds: 1742, 584, 97, 93 + offsets: 18, 1, 128, 128 +shotD/shotD008 + bounds: 1239, 922, 80, 93 + offsets: 26, 1, 128, 128 +spellA/spellA000 + bounds: 904, 204, 98, 96 + offsets: 19, 2, 128, 128 +spellA/spellA003 + bounds: 553, 1153, 91, 101 + offsets: 27, 2, 128, 128 +spellA/spellA004 + bounds: 1239, 1015, 80, 83 + offsets: 18, 2, 128, 128 +spellA/spellA005 + bounds: 1549, 1123, 83, 81 + offsets: 16, 2, 128, 128 +spellA/spellA006 + bounds: 568, 613, 83, 82 + offsets: 16, 2, 128, 128 +spellA/spellA007 + bounds: 958, 834, 88, 96 + offsets: 27, 2, 128, 128 +spellA/spellA008 + bounds: 1488, 194, 97, 98 + offsets: 24, 2, 128, 128 +spellB/spellB000 + bounds: 1027, 95, 97, 99 + offsets: 28, 2, 128, 128 +spellB/spellB001 + bounds: 1384, 294, 96, 96 + offsets: 29, 2, 128, 128 +spellB/spellB002 + bounds: 1869, 288, 96, 96 + offsets: 29, 2, 128, 128 +spellB/spellB003 + bounds: 1480, 293, 96, 97 + offsets: 31, 2, 128, 128 +spellB/spellB005 + bounds: 0, 124, 98, 123 + offsets: 30, 2, 128, 128 +spellB/spellB006 + bounds: 0, 0, 98, 124 + offsets: 30, 2, 128, 128 +spellB/spellB007 + bounds: 0, 475, 90, 121 + offsets: 29, 2, 128, 128 +spellB/spellB008 + bounds: 1066, 1112, 84, 93 + offsets: 29, 0, 128, 128 +spellB/spellB009 + bounds: 616, 102, 80, 103 + offsets: 30, 1, 128, 128 +spellB/spellB010 + bounds: 93, 830, 66, 128 + offsets: 29, 0, 128, 128 +spellB/spellB011 + bounds: 99, 348, 68, 127 + offsets: 30, 0, 128, 128 +spellB/spellB012 + bounds: 1898, 910, 94, 90 + offsets: 26, 9, 128, 128 +spellB/spellB013 + bounds: 543, 1069, 96, 84 + offsets: 28, 10, 128, 128 +spellB/spellB014 + bounds: 1585, 194, 97, 98 + offsets: 29, 10, 128, 128 +spellBulletGa/spellBulletGa000 + bounds: 1514, 848, 90, 92 + offsets: 19, 18, 128, 128 +spellBulletHa/spellBulletHa000 + bounds: 1880, 1128, 62, 62 + offsets: 1, 1, 64, 64 +spellC/spellC000 + bounds: 204, 1165, 100, 98 + offsets: 21, 10, 128, 128 +spellC/spellC001 + bounds: 201, 1061, 99, 104 + offsets: 18, 4, 128, 128 +spellC/spellC002 + bounds: 358, 953, 88, 107 + offsets: 27, 2, 128, 128 +spellC/spellC004 + bounds: 1605, 0, 106, 99 + offsets: 20, 10, 128, 128 +spellC/spellC006 + bounds: 98, 0, 103, 116 + offsets: 17, 10, 128, 128 +spellC/spellC012 + bounds: 1562, 586, 88, 91 + offsets: 35, 10, 160, 128 +spellCall/spellCall000 + bounds: 1002, 204, 98, 96 + offsets: 21, 27, 128, 128 +spellCall/spellCall001 + bounds: 1674, 292, 98, 95 + offsets: 22, 27, 128, 128 +spellCall/spellCall002 + bounds: 1283, 0, 108, 95 + offsets: 19, 27, 128, 128 +spellCall/spellCall003 + bounds: 402, 205, 104, 95 + offsets: 15, 27, 128, 128 +spellCall/spellCall004 + bounds: 506, 205, 100, 95 + offsets: 12, 27, 128, 128 +spellCall/spellCall005 + bounds: 1650, 482, 92, 97 + offsets: 17, 27, 128, 128 +spellCall/spellCall010 + bounds: 1644, 387, 98, 95 + offsets: 22, 27, 128, 128 +spellCall/spellCall011 + bounds: 1286, 294, 98, 96 + offsets: 21, 27, 128, 128 +spellD/spellD000 + bounds: 1124, 95, 97, 99 + offsets: 3, 0, 128, 128 +spellD/spellD001 + bounds: 1001, 556, 99, 92 + offsets: 9, 4, 128, 128 +spellD/spellD002 + bounds: 632, 0, 108, 101 + offsets: 5, 4, 128, 128 +spellD/spellD005 + bounds: 506, 1153, 47, 109 + offsets: 10, 4, 64, 128 +spellD/spellD006 + bounds: 847, 634, 48, 96 + offsets: 12, 4, 64, 128 +spellD/spellD007 + bounds: 1460, 848, 54, 93 + offsets: 10, 4, 64, 128 +spellD/spellD008 + bounds: 795, 979, 75, 97 + offsets: 28, 2, 128, 128 +spellD/spellD009 + bounds: 1566, 488, 84, 98 + offsets: 22, 1, 128, 128 +spellD/spellD010 + bounds: 700, 893, 84, 99 + offsets: 22, 1, 128, 128 +spellD/spellD011 + bounds: 1742, 486, 84, 98 + offsets: 22, 1, 128, 128 +spellD/spellD013 + bounds: 1253, 1162, 67, 91 + offsets: 36, 2, 128, 128 +spellD/spellD014 + bounds: 1638, 1018, 68, 91 + offsets: 35, 2, 128, 128 +spellDb/spellDb000 + bounds: 1221, 95, 97, 99 + offsets: 3, 0, 128, 128 +spellDb/spellDb001 + bounds: 1784, 102, 99, 95 + offsets: 9, 1, 128, 128 +spellDb/spellDb002 + bounds: 310, 0, 108, 103 + offsets: 5, 2, 128, 128 +spellDb/spellDb004 + bounds: 234, 602, 47, 110 + offsets: 11, 2, 64, 128 +spellDb/spellDb005 + bounds: 186, 231, 47, 112 + offsets: 10, 1, 64, 128 +spellDb/spellDb006 + bounds: 1238, 292, 48, 98 + offsets: 12, 2, 64, 128 +spellDb/spellDb007 + bounds: 644, 1151, 54, 95 + offsets: 10, 2, 64, 128 +spellEa/spellEa000 + bounds: 1471, 390, 89, 98 + offsets: 37, 2, 128, 128 +spellEa/spellEa014 + bounds: 494, 514, 96, 98 + offsets: 31, 2, 128, 128 +spellFa/spellFa000 + bounds: 1487, 1118, 62, 88 +spellFa/spellFa001 + bounds: 1320, 1122, 90, 85 +spellFa/spellFa002 + bounds: 1152, 568, 98, 89 +spellFa/spellFa003 + bounds: 1743, 818, 91, 64 +spellFa/spellFa004 + bounds: 1150, 1082, 88, 91 +spellFa/spellFa008 + bounds: 98, 116, 99, 115 +spellFa/spellFa009 + bounds: 99, 231, 87, 117 +spellFa/spellFa010 + bounds: 0, 946, 93, 115 +spellFa/spellFa011 + bounds: 0, 1061, 97, 114 +spellFa/spellFa012 + bounds: 607, 897, 93, 99 +standUp/standUp000 + bounds: 1656, 674, 84, 62 + offsets: 19, 1, 128, 64 +standUp/standUp002 + bounds: 1758, 1158, 58, 65 + offsets: 3, 31, 64, 128 diff --git a/target/classes/logo.png b/target/classes/logo.png new file mode 100644 index 0000000..0a5c386 Binary files /dev/null and b/target/classes/logo.png differ diff --git a/target/classes/ui/uiskin.atlas b/target/classes/ui/uiskin.atlas new file mode 100644 index 0000000..82f937f --- /dev/null +++ b/target/classes/ui/uiskin.atlas @@ -0,0 +1,24 @@ +uiskin.png +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +button-up + rotate: false + xy: 0, 0 + size: 200, 60 + split: 10, 10, 10, 10 + orig: 200, 60 + offset: 0, 0 +button-down + rotate: false + xy: 0, 60 + size: 200, 60 + split: 10, 10, 10, 10 + orig: 200, 60 + offset: 0, 0 +white + rotate: false + xy: 0, 120 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 \ No newline at end of file diff --git a/target/classes/ui/uiskin.json b/target/classes/ui/uiskin.json new file mode 100644 index 0000000..73a6955 --- /dev/null +++ b/target/classes/ui/uiskin.json @@ -0,0 +1,46 @@ +{ + "com.badlogic.gdx.graphics.g2d.BitmapFont": { + "default-font": { + "file": "default.fnt" + } + }, + "com.badlogic.gdx.graphics.Color": { + "black": { + "r": 0, + "g": 0, + "b": 0, + "a": 1 + }, + "white": { + "r": 1, + "g": 1, + "b": 1, + "a": 1 + } + }, + "com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable": { + "dialogDim": { + "name": "white", + "color": { + "r": 0, + "g": 0, + "b": 0, + "a": 0.45 + } + } + }, + "com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle": { + "default": { + "up": "button-up", + "down": "button-down" + } + }, + "com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle": { + "default": { + "up": "button-up", + "down": "button-down", + "font": "default-font", + "fontColor": "black" + } + } +} \ No newline at end of file diff --git a/target/classes/uno/mloluyu/Controller/FighterController.class b/target/classes/uno/mloluyu/Controller/FighterController.class deleted file mode 100644 index ce90c3b..0000000 Binary files a/target/classes/uno/mloluyu/Controller/FighterController.class and /dev/null differ diff --git a/target/classes/uno/mloluyu/characters/Alice.class b/target/classes/uno/mloluyu/characters/Alice.class index fd1f427..e44b5e9 100644 Binary files a/target/classes/uno/mloluyu/characters/Alice.class and b/target/classes/uno/mloluyu/characters/Alice.class differ diff --git a/target/classes/uno/mloluyu/characters/AliceAnimationTest.class b/target/classes/uno/mloluyu/characters/AliceAnimationTest.class deleted file mode 100644 index c23f827..0000000 Binary files a/target/classes/uno/mloluyu/characters/AliceAnimationTest.class and /dev/null differ diff --git a/target/classes/uno/mloluyu/characters/Fighter$Action.class b/target/classes/uno/mloluyu/characters/Fighter$Action.class index 1faf4d8..454b83d 100644 Binary files a/target/classes/uno/mloluyu/characters/Fighter$Action.class and b/target/classes/uno/mloluyu/characters/Fighter$Action.class differ diff --git a/target/classes/uno/mloluyu/characters/Fighter.class b/target/classes/uno/mloluyu/characters/Fighter.class index dc412c9..8e0b0e0 100644 Binary files a/target/classes/uno/mloluyu/characters/Fighter.class and b/target/classes/uno/mloluyu/characters/Fighter.class differ diff --git a/target/classes/uno/mloluyu/characters/FighterList.class b/target/classes/uno/mloluyu/characters/FighterList.class new file mode 100644 index 0000000..aa06a16 Binary files /dev/null and b/target/classes/uno/mloluyu/characters/FighterList.class differ diff --git a/target/classes/uno/mloluyu/characters/Reimu.class b/target/classes/uno/mloluyu/characters/Reimu.class new file mode 100644 index 0000000..a5c5562 Binary files /dev/null and b/target/classes/uno/mloluyu/characters/Reimu.class differ diff --git a/target/classes/uno/mloluyu/desktop/CharacterSelectScreen.class b/target/classes/uno/mloluyu/desktop/CharacterSelectScreen.class new file mode 100644 index 0000000..a06ab3f Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/CharacterSelectScreen.class differ diff --git a/target/classes/uno/mloluyu/desktop/DesktopLauncher.class b/target/classes/uno/mloluyu/desktop/DesktopLauncher.class new file mode 100644 index 0000000..d258f8a Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/DesktopLauncher.class differ diff --git a/target/classes/uno/mloluyu/desktop/GameCore.class b/target/classes/uno/mloluyu/desktop/GameCore.class deleted file mode 100644 index dd90c1d..0000000 Binary files a/target/classes/uno/mloluyu/desktop/GameCore.class and /dev/null differ diff --git a/target/classes/uno/mloluyu/desktop/GameScreen.class b/target/classes/uno/mloluyu/desktop/GameScreen.class new file mode 100644 index 0000000..3e2cfd7 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/GameScreen.class differ diff --git a/target/classes/uno/mloluyu/desktop/Launcher.class b/target/classes/uno/mloluyu/desktop/Launcher.class deleted file mode 100644 index ea80cb0..0000000 Binary files a/target/classes/uno/mloluyu/desktop/Launcher.class and /dev/null differ diff --git a/target/classes/uno/mloluyu/desktop/MainGame.class b/target/classes/uno/mloluyu/desktop/MainGame.class new file mode 100644 index 0000000..5bbfb5b Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/MainGame.class differ diff --git a/target/classes/uno/mloluyu/desktop/MainMenuScreen.class b/target/classes/uno/mloluyu/desktop/MainMenuScreen.class new file mode 100644 index 0000000..3c3c293 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/MainMenuScreen.class differ diff --git a/target/classes/uno/mloluyu/desktop/NetworkSettingsScreen$1.class b/target/classes/uno/mloluyu/desktop/NetworkSettingsScreen$1.class new file mode 100644 index 0000000..4da5691 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/NetworkSettingsScreen$1.class differ diff --git a/target/classes/uno/mloluyu/desktop/NetworkSettingsScreen.class b/target/classes/uno/mloluyu/desktop/NetworkSettingsScreen.class new file mode 100644 index 0000000..7f00b39 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/NetworkSettingsScreen.class differ diff --git a/target/classes/uno/mloluyu/desktop/StartScreen.class b/target/classes/uno/mloluyu/desktop/StartScreen.class new file mode 100644 index 0000000..3bd5e02 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/StartScreen.class differ diff --git a/target/classes/uno/mloluyu/desktop/TransitionScreen$TransitionType.class b/target/classes/uno/mloluyu/desktop/TransitionScreen$TransitionType.class new file mode 100644 index 0000000..4efd837 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/TransitionScreen$TransitionType.class differ diff --git a/target/classes/uno/mloluyu/desktop/TransitionScreen.class b/target/classes/uno/mloluyu/desktop/TransitionScreen.class new file mode 100644 index 0000000..2ead752 Binary files /dev/null and b/target/classes/uno/mloluyu/desktop/TransitionScreen.class differ diff --git a/target/classes/uno/mloluyu/network/ConnectClient.class b/target/classes/uno/mloluyu/network/ConnectClient.class new file mode 100644 index 0000000..b31de5d Binary files /dev/null and b/target/classes/uno/mloluyu/network/ConnectClient.class differ diff --git a/target/classes/uno/mloluyu/network/ConnectServer$Player.class b/target/classes/uno/mloluyu/network/ConnectServer$Player.class new file mode 100644 index 0000000..7c95197 Binary files /dev/null and b/target/classes/uno/mloluyu/network/ConnectServer$Player.class differ diff --git a/target/classes/uno/mloluyu/network/ConnectServer.class b/target/classes/uno/mloluyu/network/ConnectServer.class new file mode 100644 index 0000000..19a0529 Binary files /dev/null and b/target/classes/uno/mloluyu/network/ConnectServer.class differ diff --git a/target/classes/uno/mloluyu/network/CreateServer$1.class b/target/classes/uno/mloluyu/network/CreateServer$1.class deleted file mode 100644 index 3b0ed48..0000000 Binary files a/target/classes/uno/mloluyu/network/CreateServer$1.class and /dev/null differ diff --git a/target/classes/uno/mloluyu/network/CreateServer.class b/target/classes/uno/mloluyu/network/CreateServer.class deleted file mode 100644 index 59270f4..0000000 Binary files a/target/classes/uno/mloluyu/network/CreateServer.class and /dev/null differ diff --git a/target/classes/uno/mloluyu/network/NetworkManager.class b/target/classes/uno/mloluyu/network/NetworkManager.class new file mode 100644 index 0000000..6ba8002 Binary files /dev/null and b/target/classes/uno/mloluyu/network/NetworkManager.class differ diff --git a/target/classes/uno/mloluyu/util/ClearScreen.class b/target/classes/uno/mloluyu/util/ClearScreen.class new file mode 100644 index 0000000..b747ce3 Binary files /dev/null and b/target/classes/uno/mloluyu/util/ClearScreen.class differ diff --git a/target/classes/uno/mloluyu/util/Font.class b/target/classes/uno/mloluyu/util/Font.class new file mode 100644 index 0000000..d0e69d2 Binary files /dev/null and b/target/classes/uno/mloluyu/util/Font.class differ diff --git a/target/classes/uno/mloluyu/util/SimpleFormatter.class b/target/classes/uno/mloluyu/util/SimpleFormatter.class new file mode 100644 index 0000000..8c9bab2 Binary files /dev/null and b/target/classes/uno/mloluyu/util/SimpleFormatter.class differ diff --git a/target/classes/uno/mloluyu/versatile/ButtonActions$Button.class b/target/classes/uno/mloluyu/versatile/ButtonActions$Button.class new file mode 100644 index 0000000..a2bf178 Binary files /dev/null and b/target/classes/uno/mloluyu/versatile/ButtonActions$Button.class differ diff --git a/target/classes/uno/mloluyu/versatile/ButtonActions.class b/target/classes/uno/mloluyu/versatile/ButtonActions.class new file mode 100644 index 0000000..91fd8a4 Binary files /dev/null and b/target/classes/uno/mloluyu/versatile/ButtonActions.class differ diff --git a/target/classes/uno/mloluyu/versatile/FighterController.class b/target/classes/uno/mloluyu/versatile/FighterController.class new file mode 100644 index 0000000..72dea2d Binary files /dev/null and b/target/classes/uno/mloluyu/versatile/FighterController.class differ diff --git a/target/game-1.0-SNAPSHOT.jar b/target/game-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..7ae4f19 Binary files /dev/null and b/target/game-1.0-SNAPSHOT.jar differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..a1c2e23 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=game +groupId=uno.mloluyu +version=1.0-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..be72bc6 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,13 @@ +uno\mloluyu\network\ConnectServer$1$1.class +uno\mloluyu\network\ConnectServer$1.class +uno\mloluyu\network\CreateServer$1.class +uno\mloluyu\characters\FighterList.class +uno\mloluyu\network\CreateServer.class +uno\mloluyu\desktop\Launcher.class +uno\mloluyu\characters\Fighter$Action.class +uno\mloluyu\desktop\GameCore.class +uno\mloluyu\characters\Fighter.class +uno\mloluyu\characters\Alice.class +uno\mloluyu\Controller\FighterController.class +uno\mloluyu\network\ConnectServer.class +uno\mloluyu\util\SimpleFormatter.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..4306e4b --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,10 @@ +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\characters\Alice.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\characters\Fighter.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\characters\FighterList.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\Controller\FighterController.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\desktop\GameCore.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\desktop\Launcher.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\desktop\MainMenuScreen.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\network\ConnectServer.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\network\CreateServer.java +C:\Users\www\Documents\Game\Game\src\main\java\uno\mloluyu\util\SimpleFormatter.java