Refactored the animation so I can normalize it to one api. Next is to create the concept of a temporary entity that represents a transitive effect.

This commit is contained in:
Zed A. Shaw 2025-09-11 14:18:52 -04:00
parent 0afaa20c1d
commit 8384b11993
10 changed files with 123 additions and 23 deletions

View file

@ -1,4 +1,14 @@
{
"burning_effect": {
"_type": "Animation",
"easing": 0,
"ease_rate": 0.5,
"scale": 1.0,
"simple": false,
"frames": 5,
"speed": 0.1,
"stationary": false
},
"ritual_blanket": {
"_type": "Animation",
"easing": 0,
@ -8,5 +18,55 @@
"frames": 3,
"speed": 0.2,
"stationary": true
},
"gold_savior": {
"_type": "Animation",
"easing": 1,
"ease_rate": 0.2,
"scale": 0.1,
"simple": true,
"frames": 10,
"speed": 0.3,
"stationary": false
},
"armored_knight" : {
"_type": "Animation",
"easing": 1,
"ease_rate": 0.2,
"scale": 0.1,
"simple": true,
"frames": 10,
"speed": 0.3,
"stationary": false
},
"axe_ranger": {
"_type": "Animation",
"easing": 3,
"ease_rate": 0.5,
"scale": 0.1,
"simple": true,
"frames": 1,
"speed": 0.6,
"stationary": false
},
"rat_with_sword": {
"_type": "Animation",
"easing": 3,
"ease_rate": 0.5,
"scale": 0.1,
"simple": true,
"frames": 1,
"speed": 1.0,
"stationary": false
},
"hairy_spider": {
"_type": "Animation",
"easing": 2,
"ease_rate": 0.5,
"scale": 0.1,
"simple": true,
"frames": 10,
"speed": 1.0,
"stationary": false
}
}

View file

@ -30,6 +30,11 @@
"hp_status_00": "assets/sounds/hp_status_00.ogg"
},
"sprites": {
"burning_effect":
{"path": "assets/sprites/burning_effect.png",
"frame_width": 256,
"frame_height": 256
},
"gold_savior":
{"path": "assets/sprites/gold_savior.png",
"frame_width": 256,

View file

@ -12,6 +12,21 @@
{"_type": "LightSource", "strength": 35, "radius": 2.0}
]
},
"FLAME_BLOB": {
"components": [
{"_type": "Tile", "display": 10899,
"foreground": "enemies/fg:gold_savior",
"background": "color:transparent"
},
{"_type": "Combat", "hp": 20, "max_hp": 20, "damage": 1, "dead": false},
{"_type": "Collision", "has": true},
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
{"_type": "EnemyConfig", "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
{"_type": "Personality", "hearing_distance": 5, "tough": true},
{"_type": "Sprite", "name": "burning_effect", "width": 256, "height": 256, "width": 256, "height": 256, "scale": 1.0},
{"_type": "Sound", "attack": "fireball_01", "death": "fireball_01"}
]
},
"GOLD_SAVIOR": {
"components": [
{"_type": "Tile", "display": 42586,
@ -23,7 +38,6 @@
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
{"_type": "EnemyConfig", "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
{"_type": "Personality", "hearing_distance": 5, "tough": true},
{"_type": "Animation", "easing": 1, "ease_rate": 0.2, "scale": 0.1, "simple": true, "frames": 10, "speed": 0.3, "stationary": false},
{"_type": "Sprite", "name": "gold_savior", "width": 256, "height": 256, "width": 256, "height": 256, "scale": 1.0},
{"_type": "Sound", "attack": "Sword_Hit_2", "death": "Humanoid_Death_1"}
]
@ -39,7 +53,6 @@
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
{"_type": "EnemyConfig", "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
{"_type": "Personality", "hearing_distance": 5, "tough": true},
{"_type": "Animation", "easing": 1, "ease_rate": 0.2, "scale": 0.1, "simple": true, "frames": 10, "speed": 0.3, "stationary": false},
{"_type": "Sprite", "name": "armored_knight", "width": 256, "height": 256, "width": 256, "height": 256, "scale": 1.0},
{"_type": "Sound", "attack": "Sword_Hit_2", "death": "Humanoid_Death_1"}
]
@ -56,7 +69,6 @@
{"_type": "EnemyConfig", "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
{"_type": "Personality", "hearing_distance": 5, "tough": true},
{"_type": "Sprite", "name": "axe_ranger", "width": 256, "height": 256, "scale": 1.0},
{"_type": "Animation", "easing": 3, "ease_rate": 0.5, "scale": 0.1, "simple": true, "frames": 1, "speed": 0.6, "stationary": false},
{"_type": "Sound", "attack": "Sword_Hit_2", "death": "Ranger_1"}
]
},
@ -71,7 +83,6 @@
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
{"_type": "EnemyConfig", "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
{"_type": "Personality", "hearing_distance": 5, "tough": true},
{"_type": "Animation", "easing": 3, "ease_rate": 0.5, "scale": 0.1, "simple": true, "frames": 1, "speed": 1.0, "stationary": false},
{"_type": "Sprite", "name": "rat_with_sword", "width": 256, "height": 256, "scale": 1.0},
{"_type": "Sound", "attack": "Small_Rat", "death": "Creature_Death_1"}
]
@ -87,7 +98,6 @@
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
{"_type": "EnemyConfig", "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
{"_type": "Personality", "hearing_distance": 5, "tough": true},
{"_type": "Animation", "easing": 2, "ease_rate": 0.5, "scale": 0.1, "simple": true, "frames": 10, "speed": 1.0, "stationary": false},
{"_type": "Sprite", "name": "hairy_spider", "width": 256, "height": 256, "scale": 1.0},
{"_type": "Sound", "attack": "Spider_1", "death": "Spider_2"}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB