From cd9e5d8de39a4b84ac6d9bec1869be5920ef4eac Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Wed, 18 May 2022 21:48:48 +0100 Subject: [PATCH] compile and classify all available content --- .gitignore | 3 ++ CMakeLists.txt | 30 +++++++++++ TODO | 21 ++++++++ assets-cg/converters.py | 23 ++++++-- assets-cg/enemies/albinos_bat_left.txt | 0 assets-cg/enemies/albinos_bat_right.txt | 0 assets-cg/enemies/chemical_slime_left.txt | 0 assets-cg/enemies/chemical_slime_right.txt | 0 assets-cg/enemies/crimson_bat_left.txt | 0 assets-cg/enemies/crimson_bat_right.txt | 0 assets-cg/enemies/fxconv-metadata.txt | 17 +++--- assets-cg/enemies/gb_gunslinger_left.txt | 0 .../enemies/gb_gunslinger_palette.aseprite | Bin 5641 -> 378 bytes assets-cg/enemies/gb_gunslinger_right.txt | 0 assets-cg/enemies/master_gunslinger_left.txt | 0 assets-cg/enemies/master_gunslinger_right.txt | 0 assets-cg/enemies/water_slime_left.txt | 0 assets-cg/enemies/water_slime_right.txt | 0 src/anim.c | 21 ++------ src/anim.h | 51 ++++++++++++------ src/enemies.c | 2 +- 21 files changed, 121 insertions(+), 47 deletions(-) create mode 100644 TODO create mode 100644 assets-cg/enemies/albinos_bat_left.txt create mode 100644 assets-cg/enemies/albinos_bat_right.txt create mode 100644 assets-cg/enemies/chemical_slime_left.txt create mode 100644 assets-cg/enemies/chemical_slime_right.txt create mode 100644 assets-cg/enemies/crimson_bat_left.txt create mode 100644 assets-cg/enemies/crimson_bat_right.txt create mode 100644 assets-cg/enemies/gb_gunslinger_left.txt create mode 100644 assets-cg/enemies/gb_gunslinger_right.txt create mode 100644 assets-cg/enemies/master_gunslinger_left.txt create mode 100644 assets-cg/enemies/master_gunslinger_right.txt create mode 100644 assets-cg/enemies/water_slime_left.txt create mode 100644 assets-cg/enemies/water_slime_right.txt diff --git a/.gitignore b/.gitignore index b65a8a0..ec9b4d0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ __pycache__/ screens/ # Concept document concept.pdf +# Random things +assets-cg/gui.xcf +assets-cg/gui2.xcf diff --git a/CMakeLists.txt b/CMakeLists.txt index bc1dbd7..d6d9f39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,7 @@ set(ASSETS assets-cg/font_hud.png # Items assets-cg/items/life.aseprite + assets-cg/items/chest.aseprite assets-cg/items/potion_atk.aseprite assets-cg/items/potion_cooldown.aseprite assets-cg/items/potion_def.aseprite @@ -93,6 +94,11 @@ set(ASSETS assets-cg/skills/bullet_left.aseprite assets-cg/skills/hit.aseprite assets-cg/skills/judgement.aseprite + assets-cg/skills/launch.aseprite + assets-cg/skills/magic_up.aseprite + assets-cg/skills/magic_right.aseprite + assets-cg/skills/magic_down.aseprite + assets-cg/skills/magic_left.aseprite assets-cg/skills/teleport.aseprite assets-cg/skills/shock.aseprite assets-cg/skills/projectile_left.aseprite @@ -109,6 +115,30 @@ set(ASSETS # Enemies: Fire Slime assets-cg/enemies/fire_slime_left.txt assets-cg/enemies/fire_slime_right.txt + # Enemies: Albinos Bat + assets-cg/enemies/albinos_bat_left.txt + assets-cg/enemies/albinos_bat_right.txt + # Enemies: Chemical Slime + assets-cg/enemies/chemical_slime_left.txt + assets-cg/enemies/chemical_slime_right.txt + # Enemies: Crimson Bat + assets-cg/enemies/crimson_bat_left.txt + assets-cg/enemies/crimson_bat_right.txt + # Enemies: Water Slime + assets-cg/enemies/water_slime_left.txt + assets-cg/enemies/water_slime_right.txt + # Enemies: GB Gunslinger + assets-cg/enemies/gb_gunslinger_left.txt + assets-cg/enemies/gb_gunslinger_right.txt + # Enemies: Master Gunslinger + assets-cg/enemies/master_gunslinger_left.txt + assets-cg/enemies/master_gunslinger_right.txt + # Enemies: Tifucile + assets-cg/enemies/tifucile_left.aseprite + assets-cg/enemies/tifucile_right.aseprite + # Enemies: Washing machine + assets-cg/enemies/washing_machine_left.aseprite + assets-cg/enemies/washing_machine_right.aseprite # Misc assets-cg/font_damage_red.png assets-cg/font_damage_white.png diff --git a/TODO b/TODO new file mode 100644 index 0000000..f011b12 --- /dev/null +++ b/TODO @@ -0,0 +1,21 @@ +Unused enemies: + slime/Attack,Fire + fire_slime/Attack,Fire + water_slime + chemical_slime + albinos_bat + crimson_bat + gunslinger/Reloading + gb_gunslinger + master_gunslinger + tifucile + washing_machine +Unused items: + chest +Unused skills: + launch + magic +Unused tilesets: + crypt + heaven + machine diff --git a/assets-cg/converters.py b/assets-cg/converters.py index 6393e9b..feccfd7 100644 --- a/assets-cg/converters.py +++ b/assets-cg/converters.py @@ -459,13 +459,26 @@ def convert_aseprite_anim(input, output, params, newpalette=None): return o def convert_aseprite_anim_variation(input, output, params): - if "base" not in params or "palette" not in params: - raise fxconv.FxconvError("aseprite anim variation needs base/palette") - from aseprite import AsepriteFile - base = os.path.join(os.path.dirname(input), params["base"]) - palette = os.path.join(os.path.dirname(input), params["palette"]) + if "base" in params: + base = params["base"] + elif "base_regex" in params: + regex = params["base_regex"].split(" ", 1) + base = re.sub(*regex, os.path.basename(input)) + else: + raise fxconv.FxconvError(f"{input} lacks a 'base:' metadata") + + if "palette" in params: + palette = params["palette"] + elif "palette_regex" in params: + regex = params["palette_regex"].split(" ", 1) + palette = re.sub(*regex, os.path.basename(input)) + else: + raise fxconv.FxconvError(f"{input} lacks a 'palette:' metadata") + + base = os.path.join(os.path.dirname(input), base) + palette = os.path.join(os.path.dirname(input), palette) with open(palette, "rb") as fp: ase = AsepriteFile(fp.read()) diff --git a/assets-cg/enemies/albinos_bat_left.txt b/assets-cg/enemies/albinos_bat_left.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/albinos_bat_right.txt b/assets-cg/enemies/albinos_bat_right.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/chemical_slime_left.txt b/assets-cg/enemies/chemical_slime_left.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/chemical_slime_right.txt b/assets-cg/enemies/chemical_slime_right.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/crimson_bat_left.txt b/assets-cg/enemies/crimson_bat_left.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/crimson_bat_right.txt b/assets-cg/enemies/crimson_bat_right.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/fxconv-metadata.txt b/assets-cg/enemies/fxconv-metadata.txt index 8c92719..53dd6da 100644 --- a/assets-cg/enemies/fxconv-metadata.txt +++ b/assets-cg/enemies/fxconv-metadata.txt @@ -26,11 +26,14 @@ gunslinger_right.aseprite: name_regex: (.*)\.txt frames_\1 profile: p8 next: Idle=Idle, Walking=Walking, Hit=Idle +*_left.txt: + palette_regex: (.*)_left\.txt \1_palette.aseprite +*_right.txt: + palette_regex: (.*)_right\.txt \1_palette.aseprite -fire_slime_left.txt: - base: slime_left.aseprite - palette: fire_slime_palette.aseprite - -fire_slime_right.txt: - base: slime_right.aseprite - palette: fire_slime_palette.aseprite +*_slime_*.txt: + base_regex: .*_slime_(.*)\.txt slime_\1.aseprite +*_bat_*.txt: + base_regex: .*_bat_(.*)\.txt bat_\1.aseprite +*_gunslinger_*.txt: + base_regex: .*_gunslinger_(.*)\.txt gunslinger_\1.aseprite diff --git a/assets-cg/enemies/gb_gunslinger_left.txt b/assets-cg/enemies/gb_gunslinger_left.txt new file mode 100644 index 0000000..e69de29 diff --git a/assets-cg/enemies/gb_gunslinger_palette.aseprite b/assets-cg/enemies/gb_gunslinger_palette.aseprite index f1ccfa3f8039b0adf8233b9297d3fb41c9155848..2af570c3a7134ade8c5ff2b32a855ef63f2e81d6 100644 GIT binary patch delta 153 zcmeCw`NgDN#mK<$U@0R5F9Rb32M{wbqyRAj0L4LqKskddA~lgfYq@~ zTs$XG2`Ip#zz48I%+ literal 5641 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