From c384093bf9639d81dea908001c6673d15098b745 Mon Sep 17 00:00:00 2001 From: Tyler Nutsathitya Date: Fri, 22 Dec 2023 02:58:54 -0800 Subject: [PATCH] Issue 20: Events Structure (#29) * Create Event Parent and Event Child Classes * Issue 20: Update Event Children with scene string instantiation, Create Events Classification script to hold enums for different events and added it to AutoLoader * Issue 20: Add comment for test function * Issue-20: Rename Event classes, remove EventsClassification enum * Issue-20: Update EventBase to have array of different types of events. Update init() as well. * Issue-20: Update EventBase Array holding all Events, Add Unit Test for EventBase --- Event/EventBase.gd | 18 ++++++++++++++++++ Event/EventHeal.gd | 10 ++++++++++ Event/EventMob.gd | 10 ++++++++++ Event/EventRandom.gd | 10 ++++++++++ Event/EventShop.gd | 10 ++++++++++ Tests/test_eventbase.gd | 21 +++++++++++++++++++++ 6 files changed, 79 insertions(+) create mode 100644 Event/EventBase.gd create mode 100644 Event/EventHeal.gd create mode 100644 Event/EventMob.gd create mode 100644 Event/EventRandom.gd create mode 100644 Event/EventShop.gd create mode 100644 Tests/test_eventbase.gd diff --git a/Event/EventBase.gd b/Event/EventBase.gd new file mode 100644 index 00000000..47c59e8d --- /dev/null +++ b/Event/EventBase.gd @@ -0,0 +1,18 @@ +extends Resource +class_name EventBase + +var EVENTS_CLASSIFICATION: Array[Resource] = [EventMob, EventRandom, EventShop, EventHeal] + +var packedScene: String = "" + +# Initialize Event +func _init() -> void: + pass + +func _update_event() -> void: + pass + +func _load_scene() -> Node: + var loadScene: PackedScene = load(packedScene) + return loadScene.instantiate() + diff --git a/Event/EventHeal.gd b/Event/EventHeal.gd new file mode 100644 index 00000000..5c9c9d63 --- /dev/null +++ b/Event/EventHeal.gd @@ -0,0 +1,10 @@ +extends EventBase +class_name EventHeal + +# @Override +func _init() -> void: + pass + +# @Override +func _update_event() -> void: + print("Updating Heal Event") diff --git a/Event/EventMob.gd b/Event/EventMob.gd new file mode 100644 index 00000000..22039df8 --- /dev/null +++ b/Event/EventMob.gd @@ -0,0 +1,10 @@ +extends EventBase +class_name EventMob + +# @Override +func _init() -> void: + pass + +# @Override +func _update_event() -> void: + print("Update Mob") diff --git a/Event/EventRandom.gd b/Event/EventRandom.gd new file mode 100644 index 00000000..9dc71de4 --- /dev/null +++ b/Event/EventRandom.gd @@ -0,0 +1,10 @@ +extends EventBase +class_name EventRandom + +# @Override +func _init() -> void: + pass + +# @Override +func _update_event() -> void: + print("Updating Random Event") diff --git a/Event/EventShop.gd b/Event/EventShop.gd new file mode 100644 index 00000000..c1bb4b57 --- /dev/null +++ b/Event/EventShop.gd @@ -0,0 +1,10 @@ +extends EventBase +class_name EventShop + +# @Override +func _init() -> void: + pass + +# @Override +func _update_event() -> void: + print("Updating shop") diff --git a/Tests/test_eventbase.gd b/Tests/test_eventbase.gd new file mode 100644 index 00000000..e4c6ded5 --- /dev/null +++ b/Tests/test_eventbase.gd @@ -0,0 +1,21 @@ +extends GutTest +## Test for Event Base and Events + +var eventBase: EventBase = null + +func before_each(): + eventBase = EventBase.new() + +func test_event_base_array_all_types(): + var event0 = eventBase.EVENTS_CLASSIFICATION[0] + assert_eq(event0, EventMob) + + var event1 = eventBase.EVENTS_CLASSIFICATION[1] + assert_eq(event1, EventRandom) + + var event2 = eventBase.EVENTS_CLASSIFICATION[2] + assert_eq(event2, EventShop) + + var event3 = eventBase.EVENTS_CLASSIFICATION[3] + assert_eq(event3, EventHeal) +