classes for key and keycard to be able to add items depending on class
This commit is contained in:
parent
b7a53651bb
commit
ef7529332f
@ -195,7 +195,7 @@ func check_interact():
|
||||
if Input.is_action_just_pressed("interact"):
|
||||
collider.do_interact(self)
|
||||
if collider.is_in_group("Collectibles"):
|
||||
_inventory.add_item(collider.name)
|
||||
_inventory.add_item(collider)
|
||||
_prev_look = null # remove after taken
|
||||
_labelInteract.hide()
|
||||
else:
|
||||
|
@ -8,7 +8,10 @@ var _dayTime: ProgressBar
|
||||
var _dayTimeVisual: TextureRect
|
||||
|
||||
onready var _keyTexture = load("res://Resources/Models/key/key.png")
|
||||
onready var _cardTexture = load("res://Resources/Models/keycard/keycard.png")
|
||||
var _cardTexture = {
|
||||
1: preload("res://Resources/Models/keycard/lvl1_keycard.png"),
|
||||
2: preload("res://Resources/Models/keycard/lvl2_keycard.png")
|
||||
}
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
@ -24,18 +27,26 @@ func _ready():
|
||||
_dayTime.max_value = Daytime.get_max()
|
||||
|
||||
|
||||
func add_item (name):
|
||||
Logger.info("Adding item \"" + name + "\" to inventory")
|
||||
var text
|
||||
if name == "Key":
|
||||
text = _keyTexture
|
||||
elif name == "Keycard":
|
||||
text = _cardTexture
|
||||
func add_item (object):
|
||||
Logger.info("Adding item \"" + object.name + "\" with class \"" + String(object.get_class()) + "\" to inventory")
|
||||
var texture
|
||||
if object is Key:
|
||||
Logger.info("key")
|
||||
texture = _keyTexture
|
||||
elif object is Keycard:
|
||||
Logger.info("keycard")
|
||||
var lvl = (object as Keycard).card_lvl
|
||||
if _cardTexture.has(lvl) == false:
|
||||
Logger.info("no keycard model for lvl: " + String(lvl))
|
||||
return
|
||||
|
||||
texture = _cardTexture[lvl]
|
||||
else:
|
||||
Logger.info("no texture found for: " + object.name)
|
||||
return
|
||||
|
||||
var rect = TextureRect.new()
|
||||
rect.texture = text
|
||||
rect.texture = texture
|
||||
_container.add_child(rect)
|
||||
|
||||
func _process(_delta):
|
||||
|
@ -52,9 +52,9 @@ anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -151.0
|
||||
margin_left = -146.0
|
||||
margin_top = -258.5
|
||||
margin_right = -12.0
|
||||
margin_right = -7.0
|
||||
margin_bottom = 258.5
|
||||
|
||||
[node name="PillLevel" type="Label" parent="."]
|
||||
|
@ -1,4 +1,5 @@
|
||||
extends StaticBody
|
||||
extends StaticBody
|
||||
class_name Key
|
||||
|
||||
export(int) var key_id
|
||||
|
||||
@ -6,6 +7,11 @@ onready var outline = get_node("KeyMesh/Outline") as MeshInstance
|
||||
|
||||
|
||||
func do_interact(var player):
|
||||
# TODO: move to global inventory
|
||||
player.key_chain.append(key_id)
|
||||
queue_free()
|
||||
queue_free()
|
||||
|
||||
|
||||
func is_class(type): return type == "Key" or .is_class(type)
|
||||
|
||||
|
||||
func get_class(): return "Key"
|
@ -1,4 +1,5 @@
|
||||
extends StaticBody
|
||||
class_name Keycard
|
||||
|
||||
export(int) var card_lvl
|
||||
|
||||
@ -6,7 +7,12 @@ onready var outline = get_node("KeycardMesh/Outline") as MeshInstance
|
||||
|
||||
|
||||
func do_interact(var player):
|
||||
# TODO: move to global inventory
|
||||
if card_lvl > player.keycard_lvl:
|
||||
player.keycard_lvl = card_lvl
|
||||
queue_free()
|
||||
queue_free()
|
||||
|
||||
|
||||
func is_class(type): return type == "Keycard" or .is_class(type)
|
||||
|
||||
|
||||
func get_class(): return "Keycard"
|
@ -29,6 +29,16 @@ _global_script_classes=[ {
|
||||
"language": "GDScript",
|
||||
"path": "res://Util/gs-logger-3.1-R3/gs_logger/layouts/html_layout.gd"
|
||||
}, {
|
||||
"base": "StaticBody",
|
||||
"class": "Key",
|
||||
"language": "GDScript",
|
||||
"path": "res://Level/Interactables/Key/Key.gd"
|
||||
}, {
|
||||
"base": "StaticBody",
|
||||
"class": "Keycard",
|
||||
"language": "GDScript",
|
||||
"path": "res://Level/Interactables/Keycard/Keycard.gd"
|
||||
}, {
|
||||
"base": "Reference",
|
||||
"class": "Layout",
|
||||
"language": "GDScript",
|
||||
@ -54,6 +64,8 @@ _global_script_class_icons={
|
||||
"ConsoleAppender": "",
|
||||
"FileAppender": "",
|
||||
"HtmlLayout": "",
|
||||
"Key": "",
|
||||
"Keycard": "",
|
||||
"Layout": "",
|
||||
"Message": "",
|
||||
"NPC": "",
|
||||
|
Loading…
x
Reference in New Issue
Block a user