Some fixes

Disabled feet IK, proper handling of exit room
Added quest system from proto2
This commit is contained in:
Segey Lapin
2020-04-14 16:48:35 +03:00
parent 88e8359f64
commit 7706ba0edf
9 changed files with 528 additions and 213 deletions

View File

@@ -92,32 +92,48 @@ func build_rooms():
window_rooms.push_back(left)
window_rooms.push_back(right)
print("rooms build complete")
var special_rooms = {
"exit_room": {
"alloc": size_x * size_y
},
"master_room": {
"alloc": floors * size_x * size_y
},
"jail_room": {
"alloc": floors * size_x * size_y,
},
"kitchen_room": {
"alloc": size_x * size_y
}
}
func alloc_special_rooms():
var allocated = []
for k in special_rooms.keys():
if special_rooms[k].has("id"):
allocated.push_back(special_rooms[k].id)
for k in special_rooms.keys():
if special_rooms[k].has("id"):
continue
while true:
var room_id = randi() % special_rooms[k].alloc
if !room_id in allocated:
special_rooms[k].id = room_id
allocated.push_back(room_id)
break
for k in special_rooms.keys():
var room_id = special_rooms[k].id
dungeon[room_id].set_meta(k, true)
if k == "master_room":
var player_spawn = Spatial.new()
dungeon[room_id].add_child(player_spawn)
player_spawn.name = "player-spawn"
player_spawn.add_to_group("spawn")
if k == "exit_room":
print("exit room: ", room_id)
func build_special_rooms():
print("build_special_rooms")
var special_rooms = []
var p_id = window_rooms[randi() % window_rooms.size()]
special_rooms.push_back(p_id)
# var e_id = -1
# while true:
# e_id = window_rooms[randi() % (size_x * size_]
# if !e_id in special_rooms:
# break
# special_rooms.push_back(e_id)
while special_rooms.size() < 3:
var r_id = randi() % dungeon.size()
if !r_id in special_rooms:
special_rooms.push_back(r_id)
var j_id = special_rooms[1]
var k_id = special_rooms[2]
dungeon[p_id].set_meta("master_room", true)
dungeon[j_id].set_meta("jail_room", true)
dungeon[k_id].set_meta("kitchen_room", true)
# dungeon[e_id].set_meta("exit_room", true)
var player_spawn = Spatial.new()
dungeon[p_id].add_child(player_spawn)
player_spawn.name = "player-spawn"
player_spawn.add_to_group("spawn")
alloc_special_rooms()
var state = 0
func _ready():