Better repair kit icons and images, enemies no longer spawn in doors, death scene worked out mostly, and beak thing enemies.
|
|
@ -32,6 +32,39 @@
|
||||||
"close": []
|
"close": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"beak_thing": {
|
||||||
|
"sheet": {
|
||||||
|
"frames": 1,
|
||||||
|
"frame_width": 256,
|
||||||
|
"frame_height": 256
|
||||||
|
},
|
||||||
|
"sequences": {
|
||||||
|
"idle": {"frames": [0], "durations": [25] }
|
||||||
|
},
|
||||||
|
"transforms": {
|
||||||
|
"basic": {
|
||||||
|
"min_x": 0.9,
|
||||||
|
"min_y": 0.9,
|
||||||
|
"max_x": 1.1,
|
||||||
|
"max_y": 1.1,
|
||||||
|
"flipped": false,
|
||||||
|
"scaled": true,
|
||||||
|
"toggled": false,
|
||||||
|
"looped": false,
|
||||||
|
"relative": false,
|
||||||
|
"easing": "in_out_back",
|
||||||
|
"motion": "scale_both"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"forms": {
|
||||||
|
"idle": ["idle", "basic"]
|
||||||
|
},
|
||||||
|
"sounds": {
|
||||||
|
"idle": [[0, "punch_cartoony"]],
|
||||||
|
"open": [],
|
||||||
|
"close": []
|
||||||
|
}
|
||||||
|
},
|
||||||
"ag_bot": {
|
"ag_bot": {
|
||||||
"sheet": {
|
"sheet": {
|
||||||
"frames": 1,
|
"frames": 1,
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
"test_story": "assets/sounds/test_story.ogg",
|
"test_story": "assets/sounds/test_story.ogg",
|
||||||
"sword_hit_1": "assets/sounds/sword_hit_1.ogg",
|
"sword_hit_1": "assets/sounds/sword_hit_1.ogg",
|
||||||
"sword_hit_2": "assets/sounds/sword_hit_2.ogg",
|
"sword_hit_2": "assets/sounds/sword_hit_2.ogg",
|
||||||
|
"punch_cartoony": "assets/sounds/punch_cartoony.ogg",
|
||||||
"ambient_1": "assets/sounds/ambient_1.ogg"
|
"ambient_1": "assets/sounds/ambient_1.ogg"
|
||||||
},
|
},
|
||||||
"sprites": {
|
"sprites": {
|
||||||
|
|
@ -16,6 +17,11 @@
|
||||||
"frame_width": 256,
|
"frame_width": 256,
|
||||||
"frame_height": 256
|
"frame_height": 256
|
||||||
},
|
},
|
||||||
|
"beak_thing":
|
||||||
|
{"path": "assets/sprites/beak_thing.png",
|
||||||
|
"frame_width": 256,
|
||||||
|
"frame_height": 256
|
||||||
|
},
|
||||||
"ag_bot":
|
"ag_bot":
|
||||||
{"path": "assets/sprites/ag_bot.png",
|
{"path": "assets/sprites/ag_bot.png",
|
||||||
"frame_width": 846,
|
"frame_width": 846,
|
||||||
|
|
|
||||||
|
|
@ -50,5 +50,30 @@
|
||||||
{"_type": "Personality", "hearing_distance": 5, "tough": false},
|
{"_type": "Personality", "hearing_distance": 5, "tough": false},
|
||||||
{"_type": "Sprite", "name": "spider_bot", "scale": 1.0}
|
{"_type": "Sprite", "name": "spider_bot", "scale": 1.0}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"BEAK_THING": {
|
||||||
|
"components": [
|
||||||
|
{"_type": "Tile", "display": 2221,
|
||||||
|
"foreground": "enemies/fg:rat_giant",
|
||||||
|
"background": "color:transparent"
|
||||||
|
},
|
||||||
|
{"_type": "Combat", "max_hp": 100, "max_ap": 12,
|
||||||
|
"ap_delta": 6,"damage": 50, "attack_rating": 0.8, "toughness_rating": 0.2,
|
||||||
|
"body_parts": {
|
||||||
|
"head": 100,
|
||||||
|
"chest": 100,
|
||||||
|
"stomach": 100,
|
||||||
|
"right_arm": 100,
|
||||||
|
"left_arm": 100,
|
||||||
|
"right_leg": 100,
|
||||||
|
"left_leg": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{"_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": 10, "tough": true},
|
||||||
|
{"_type": "Sprite", "name": "beak_thing", "scale": 1.0}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 912 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 61 KiB |
BIN
assets/sounds/punch_cartoony.ogg
Normal file
BIN
assets/sprites/beak_thing.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
|
|
@ -117,6 +117,10 @@ DinkyECS::Entity WorldBuilder::configure_entity_in_room(DinkyECS::World &world,
|
||||||
Point pos_out;
|
Point pos_out;
|
||||||
bool placed = $map.place_entity(in_room, pos_out);
|
bool placed = $map.place_entity(in_room, pos_out);
|
||||||
dbc::check(placed, "failed to randomly place item in room");
|
dbc::check(placed, "failed to randomly place item in room");
|
||||||
|
|
||||||
|
// don't place anything inside a door
|
||||||
|
if($map.$doors.contains(pos_out)) return DinkyECS::NONE;
|
||||||
|
|
||||||
auto entity = configure_entity_in_map(world, entity_data, pos_out);
|
auto entity = configure_entity_in_map(world, entity_data, pos_out);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
@ -233,6 +237,7 @@ void WorldBuilder::place_entities(DinkyECS::World &world) {
|
||||||
} else {
|
} else {
|
||||||
auto player_data = config.enemies["PLAYER_TILE"];
|
auto player_data = config.enemies["PLAYER_TILE"];
|
||||||
auto player_ent = configure_entity_in_room(world, player_data, 0);
|
auto player_ent = configure_entity_in_room(world, player_data, 0);
|
||||||
|
dbc::check(player_ent != DinkyECS::NONE, "placed the player in a door!");
|
||||||
|
|
||||||
player_pos = world.get<Position>(player_ent);
|
player_pos = world.get<Position>(player_ent);
|
||||||
|
|
||||||
|
|
|
||||||