Enemies and now using the GOAP AI to decide when to attack the player, but it's very rough right now. I need to sort out how to store the AI states and use them in the System.
This commit is contained in:
parent
77f2e94515
commit
ad71631809
13 changed files with 61 additions and 30 deletions
|
@ -7,13 +7,15 @@
|
|||
"no_more_enemies": 4,
|
||||
"in_combat": 5,
|
||||
"have_item": 6,
|
||||
"have_healing": 7
|
||||
"have_healing": 7,
|
||||
"detect_enemy": 8
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"name": "find_enemy",
|
||||
"cost": 5,
|
||||
"needs": {
|
||||
"detect_enemy": true,
|
||||
"in_combat": false,
|
||||
"no_more_enemies": false,
|
||||
"enemy_found": false
|
||||
|
@ -68,7 +70,8 @@
|
|||
"no_more_enemies": false,
|
||||
"in_combat": false,
|
||||
"have_item": false,
|
||||
"have_healing": false
|
||||
"have_healing": false,
|
||||
"detect_enemy": true
|
||||
},
|
||||
"Walker::final_state": {
|
||||
"enemy_found": true,
|
||||
|
@ -79,12 +82,14 @@
|
|||
"no_more_enemies": true
|
||||
},
|
||||
"Enemy::initial_state": {
|
||||
"detect_enemy": false,
|
||||
"enemy_found": false,
|
||||
"enemy_dead": false,
|
||||
"health_good": true,
|
||||
"in_combat": false
|
||||
},
|
||||
"Enemy::final_state": {
|
||||
"detect_enemy": true,
|
||||
"enemy_found": true,
|
||||
"enemy_dead": true,
|
||||
"health_good": true
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
},
|
||||
{"_type": "Combat", "hp": 20, "max_hp": 20, "damage": 1, "dead": false},
|
||||
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 5},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 5, "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
|
||||
{"_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"}
|
||||
|
@ -33,7 +33,7 @@
|
|||
},
|
||||
{"_type": "Combat", "hp": 40, "max_hp": 40, "damage": 10, "dead": false},
|
||||
{"_type": "Motion", "dx": 0, "dy": 0, "random": true},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 5},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 5, "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
|
||||
{"_type": "Sprite", "name": "axe_ranger", "width": 256, "height": 256, "scale": 1.0},
|
||||
{"_type": "Animation", "easing": 3, "ease_rate": 0.5, "scale": 0.1, "simple": false, "frames": 2, "speed": 0.6, "stationary": false},
|
||||
{"_type": "Sound", "attack": "Sword_Hit_2", "death": "Ranger_1"}
|
||||
|
@ -47,7 +47,7 @@
|
|||
},
|
||||
{"_type": "Combat", "hp": 20, "max_hp": 20, "damage": 20, "dead": false},
|
||||
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 10},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 10, "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
|
||||
{"_type": "Animation", "easing": 3, "ease_rate": 0.5, "scale": 0.1, "simple": true, "frames": 10, "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"}
|
||||
|
@ -61,7 +61,7 @@
|
|||
},
|
||||
{"_type": "Combat", "hp": 20, "max_hp": 20, "damage": 20, "dead": false},
|
||||
{"_type": "Motion", "dx": 0, "dy": 0, "random": false},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 10},
|
||||
{"_type": "EnemyConfig", "hearing_distance": 10, "ai_script": "Enemy::actions", "ai_start_name": "Enemy::initial_state", "ai_goal_name": "Enemy::final_state"},
|
||||
{"_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"}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue