From 76080e6c363614fc02f678c81800c99ccafe2166 Mon Sep 17 00:00:00 2001 From: Plop Date: Wed, 29 Jan 2025 17:12:38 +0700 Subject: [PATCH] better destroyables --- objects/obj_collect/Collision_obj_player.gml | 7 +++++-- objects/obj_collect/Other_4.gml | 2 ++ objects/obj_collect/obj_collect.yy | 1 + objects/obj_destroyable/Destroy_0.gml | 5 ++++- objects/obj_destroyable/Other_4.gml | 4 ++++ objects/obj_destroyable/obj_destroyable.yy | 1 + objects/par_enemy/Destroy_0.gml | 2 +- scripts/generic_functions_util/generic_functions_util.gml | 4 +++- 8 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 objects/obj_collect/Other_4.gml create mode 100644 objects/obj_destroyable/Other_4.gml diff --git a/objects/obj_collect/Collision_obj_player.gml b/objects/obj_collect/Collision_obj_player.gml index 1565a9b6..a4786f13 100644 --- a/objects/obj_collect/Collision_obj_player.gml +++ b/objects/obj_collect/Collision_obj_player.gml @@ -1,2 +1,5 @@ -global.score += 10 -instance_destroy() +if ds_list_find_index(global.ds_collect, id) == -1 { + global.score += 10 + ds_list_add(global.ds_collect, id) + instance_destroy() +} \ No newline at end of file diff --git a/objects/obj_collect/Other_4.gml b/objects/obj_collect/Other_4.gml new file mode 100644 index 00000000..52c1854c --- /dev/null +++ b/objects/obj_collect/Other_4.gml @@ -0,0 +1,2 @@ +if (ds_list_find_index(global.ds_collect, id) != -1) + instance_destroy() diff --git a/objects/obj_collect/obj_collect.yy b/objects/obj_collect/obj_collect.yy index 4ec82cce..169b49a5 100644 --- a/objects/obj_collect/obj_collect.yy +++ b/objects/obj_collect/obj_collect.yy @@ -3,6 +3,7 @@ "%Name":"obj_collect", "eventList":[ {"$GMEvent":"v1","%Name":"","collisionObjectId":{"name":"obj_player","path":"objects/obj_player/obj_player.yy",},"eventNum":0,"eventType":4,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, + {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":4,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, ], "managed":true, "name":"obj_collect", diff --git a/objects/obj_destroyable/Destroy_0.gml b/objects/obj_destroyable/Destroy_0.gml index b7335285..86019445 100644 --- a/objects/obj_destroyable/Destroy_0.gml +++ b/objects/obj_destroyable/Destroy_0.gml @@ -1 +1,4 @@ -particle_create(x, y, particles.genericpoof) \ No newline at end of file +if ds_list_find_index(global.ds_destroyables, id) == -1 { + ds_list_add(global.ds_destroyables, id) + particle_create(x, y, particles.genericpoof) +} \ No newline at end of file diff --git a/objects/obj_destroyable/Other_4.gml b/objects/obj_destroyable/Other_4.gml new file mode 100644 index 00000000..8777db7d --- /dev/null +++ b/objects/obj_destroyable/Other_4.gml @@ -0,0 +1,4 @@ +if ds_list_find_index(global.ds_destroyables, id) != -1 { + instance_destroy(); + exit; +} diff --git a/objects/obj_destroyable/obj_destroyable.yy b/objects/obj_destroyable/obj_destroyable.yy index 8dafcf0f..b8c261ab 100644 --- a/objects/obj_destroyable/obj_destroyable.yy +++ b/objects/obj_destroyable/obj_destroyable.yy @@ -4,6 +4,7 @@ "eventList":[ {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":1,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, + {"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":4,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",}, ], "managed":true, "name":"obj_destroyable", diff --git a/objects/par_enemy/Destroy_0.gml b/objects/par_enemy/Destroy_0.gml index 9e9204a0..47f29038 100644 --- a/objects/par_enemy/Destroy_0.gml +++ b/objects/par_enemy/Destroy_0.gml @@ -1,5 +1,6 @@ if (ds_list_find_index(global.ds_dead_enemies, id) == -1) { + ds_list_add(global.ds_dead_enemies, id) with (instance_create(x, y, obj_enemycorpse)) sprite_index = other.sprs.dead @@ -12,4 +13,3 @@ if (ds_list_find_index(global.ds_dead_enemies, id) == -1) scr_sound_3d(sfx_killenemy, x, y) } -ds_list_add(global.ds_dead_enemies, id) diff --git a/scripts/generic_functions_util/generic_functions_util.gml b/scripts/generic_functions_util/generic_functions_util.gml index 7694e59d..c3f56456 100644 --- a/scripts/generic_functions_util/generic_functions_util.gml +++ b/scripts/generic_functions_util/generic_functions_util.gml @@ -90,7 +90,9 @@ function set_globals() timer: 0, font: font_add_sprite_ext(spr_tv_c_font, "0123456789", true, 2) } - + + global.ds_collect = ds_list_create() + global.ds_destroyables = ds_list_create() global.ds_dead_enemies = ds_list_create() global.ds_hurt_boxes = ds_list_create() global.doorshut = false