bugfix: removing collectibles after collect; checking right key lvls
This commit is contained in:
parent
88d0b65261
commit
317258f344
@ -85,6 +85,15 @@ func _ready():
|
||||
_inventory = get_node("HUD")
|
||||
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
|
||||
if IsInLabyrinth:
|
||||
Daytime.increase_per_second = 100
|
||||
@ -198,6 +207,7 @@ func check_interact():
|
||||
if Input.is_action_just_pressed("interact"):
|
||||
collider.do_interact(self)
|
||||
if collider.is_in_group("Collectibles"):
|
||||
Logger.info("should add collectible: " + collider.name)
|
||||
_inventory.add_item(collider)
|
||||
Inventory.add_item(collider.duplicate())
|
||||
_prev_look = null # remove after taken
|
||||
@ -289,9 +299,11 @@ func _on_respawn ():
|
||||
if _save_areas < 1 and not IsInLabyrinth:
|
||||
Logger.info("move back to home")
|
||||
|
||||
Inventory.clear()
|
||||
Pills._set_level(Pills.get_max())
|
||||
IsInFactory = false
|
||||
IsOutside = true
|
||||
|
||||
# TODO: move not change_scene!
|
||||
get_tree().change_scene("res://Level/OutsideWorld.tscn")
|
||||
|
||||
|
@ -17,5 +17,15 @@ func contains_item (item):
|
||||
return items.has(item)
|
||||
|
||||
|
||||
func contains_item_with_name (name):
|
||||
for item in items:
|
||||
if item.name == name:
|
||||
return true
|
||||
|
||||
|
||||
func get_items ():
|
||||
return items
|
||||
|
||||
|
||||
func clear ():
|
||||
items.clear()
|
@ -6,6 +6,12 @@ export(int) var key_id
|
||||
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):
|
||||
player.key_chain.append(key_id)
|
||||
queue_free()
|
||||
|
@ -6,6 +6,12 @@ export(int) var card_lvl
|
||||
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):
|
||||
if card_lvl > player.keycard_lvl:
|
||||
player.keycard_lvl = card_lvl
|
||||
|
Loading…
x
Reference in New Issue
Block a user