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")
|
_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")
|
||||||
|
|
||||||
|
@ -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()
|
@ -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()
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user