bugfix: removing collectibles after collect; checking right key lvls

This commit is contained in:
SyntaX 2020-01-28 18:29:11 +01:00
parent 88d0b65261
commit 317258f344
4 changed files with 39 additions and 5 deletions

View File

@ -85,6 +85,15 @@ func _ready():
_inventory = get_node("HUD") _inventory = get_node("HUD")
assert(null != _inventory) assert(null != _inventory)
for object in Inventory.get_items():
if object is Key:
var key = object as Key
key_chain.append(key)
elif object is Keycard:
var keycard = object as Keycard
if keycard_lvl < keycard.card_lvl:
keycard_lvl = keycard.card_lvl
# Set special fast time when in labyrinth # Set special fast time when in labyrinth
if IsInLabyrinth: if IsInLabyrinth:
Daytime.increase_per_second = 100 Daytime.increase_per_second = 100
@ -198,6 +207,7 @@ func check_interact():
if Input.is_action_just_pressed("interact"): if Input.is_action_just_pressed("interact"):
collider.do_interact(self) collider.do_interact(self)
if collider.is_in_group("Collectibles"): if collider.is_in_group("Collectibles"):
Logger.info("should add collectible: " + collider.name)
_inventory.add_item(collider) _inventory.add_item(collider)
Inventory.add_item(collider.duplicate()) Inventory.add_item(collider.duplicate())
_prev_look = null # remove after taken _prev_look = null # remove after taken
@ -289,9 +299,11 @@ func _on_respawn ():
if _save_areas < 1 and not IsInLabyrinth: if _save_areas < 1 and not IsInLabyrinth:
Logger.info("move back to home") Logger.info("move back to home")
Inventory.clear()
Pills._set_level(Pills.get_max()) Pills._set_level(Pills.get_max())
IsInFactory = false IsInFactory = false
IsOutside = true IsOutside = true
# TODO: move not change_scene! # TODO: move not change_scene!
get_tree().change_scene("res://Level/OutsideWorld.tscn") get_tree().change_scene("res://Level/OutsideWorld.tscn")

View File

@ -17,5 +17,15 @@ func contains_item (item):
return items.has(item) return items.has(item)
func contains_item_with_name (name):
for item in items:
if item.name == name:
return true
func get_items (): func get_items ():
return items return items
func clear ():
items.clear()

View File

@ -6,6 +6,12 @@ export(int) var key_id
onready var outline = get_node("KeyMesh/Outline") as MeshInstance onready var outline = get_node("KeyMesh/Outline") as MeshInstance
func _ready ():
if Inventory.contains_item_with_name(self.name):
Logger.info("key allready collected: TODO: delete")
queue_free()
func do_interact(var player): func do_interact(var player):
player.key_chain.append(key_id) player.key_chain.append(key_id)
queue_free() queue_free()

View File

@ -6,6 +6,12 @@ export(int) var card_lvl
onready var outline = get_node("KeycardMesh/Outline") as MeshInstance onready var outline = get_node("KeycardMesh/Outline") as MeshInstance
func _ready ():
if Inventory.contains_item_with_name(self.name):
Logger.info("keycard allready collected: TODO: delete")
queue_free()
func do_interact(var player): func do_interact(var player):
if card_lvl > player.keycard_lvl: if card_lvl > player.keycard_lvl:
player.keycard_lvl = card_lvl player.keycard_lvl = card_lvl