42 lines
1.2 KiB
GDScript
42 lines
1.2 KiB
GDScript
class_name WorldData
|
|
|
|
static func generate_test_world() -> Dictionary:
|
|
var rooms = {}
|
|
for x in range(4):
|
|
for y in range(4):
|
|
var id = "room_%d_%d" % [x, y]
|
|
var room = RoomData.new()
|
|
room.id = id
|
|
room.room_name = "Room %d,%d" % [x, y]
|
|
room.description = "A generic room at coordinates %d, %d." % [x, y]
|
|
|
|
# Link exits
|
|
room.exits = {}
|
|
if x > 0: room.exits["west"] = "room_%d_%d" % [x-1, y]
|
|
if x < 3: room.exits["east"] = "room_%d_%d" % [x+1, y]
|
|
if y > 0: room.exits["north"] = "room_%d_%d" % [x, y-1]
|
|
if y < 3: room.exits["south"] = "room_%d_%d" % [x, y+1]
|
|
|
|
# Add test item to room 1,1
|
|
if x == 1 and y == 1:
|
|
var sword = ItemData.new()
|
|
sword.id = "sword"
|
|
sword.name = "Rusty Sword"
|
|
sword.description = "A rusty old sword."
|
|
sword.effect_type = "DAMAGE"
|
|
sword.effect_value = 10
|
|
room.items.append(sword)
|
|
|
|
# Add test enemy to room 2,2
|
|
if x == 2 and y == 2:
|
|
var goblin = load("res://scripts/resources/EnemyData.gd").new()
|
|
goblin.id = "goblin"
|
|
goblin.name = "Goblin"
|
|
goblin.hp = 30
|
|
goblin.max_hp = 30
|
|
goblin.damage = 5
|
|
room.enemies.append(goblin)
|
|
|
|
rooms[id] = room
|
|
return rooms
|