diff --git a/Characters/Player/Player.gd b/Characters/Player/Player.gd index fc71fe1..0ae7a80 100644 --- a/Characters/Player/Player.gd +++ b/Characters/Player/Player.gd @@ -151,6 +151,8 @@ func check_interact(): collider.do_interact(self) if collider.is_in_group("Collectibles"): _inventory.add_item(collider.name) + #bugfix: remove _prev_look after taken + _prev_look = null else: #stop showing interact tooltip and disable outline _labelInteract.hide() @@ -209,8 +211,7 @@ func _reset_scene (): # reset values _animationFadeOut.seek(0, true) - get_tree().reload_current_scene() - Pills._set_level(Pills.get_max()) + Daytime.reset() func Is_in_Illegal_Area (): diff --git a/Characters/Player/UI/UI.gd b/Characters/Player/UI/UI.gd index 037266a..528b0df 100644 --- a/Characters/Player/UI/UI.gd +++ b/Characters/Player/UI/UI.gd @@ -3,6 +3,8 @@ extends Control var _container: GridContainer var _labelPillLevel: Label var _pillLevel: TextureProgress +var _labelDayTime: Label +var _dayTime: ProgressBar onready var _keyTexture = load("res://Resources/Models/key/key.png") onready var _cardTexture = load("res://Resources/Models/keycard/keycard.png") @@ -11,10 +13,13 @@ onready var _cardTexture = load("res://Resources/Models/keycard/keycard.png") func _ready(): _container = get_node("InventoryContainer") _labelPillLevel = get_node("PillLevel") - _pillLevel = get_node("TextureProgress") + _pillLevel = get_node("PillProgress") + _labelDayTime = get_node("DayTime") + _dayTime = get_node("DayTimeProgress") # TODO: may use global values in Inspector? _pillLevel.max_value = Pills.get_max() + _dayTime.max_value = Daytime.get_max() func add_item (name): @@ -33,5 +38,8 @@ func add_item (name): _container.add_child(rect) func _process(_delta): - _labelPillLevel.text = "curLevel: " + String(Pills._level) - _pillLevel.value = Pills._level \ No newline at end of file + _labelPillLevel.text = "curLevel: " + String(Pills.get_level()) + _pillLevel.value = Pills.get_level() + var val = int(Daytime.get_time()) + _labelDayTime.text = "dayTime: " + String(val) + " - %02d:%02d" % [val/60%24, val%60] + _dayTime.value = Daytime.get_time() \ No newline at end of file diff --git a/Characters/Player/UI/UI.tscn b/Characters/Player/UI/UI.tscn index 2cea79b..f890ae0 100644 --- a/Characters/Player/UI/UI.tscn +++ b/Characters/Player/UI/UI.tscn @@ -37,7 +37,7 @@ margin_bottom = 565.0 margin_right = 40.0 margin_bottom = 14.0 -[node name="TextureProgress" type="TextureProgress" parent="."] +[node name="PillProgress" type="TextureProgress" parent="."] margin_left = -0.571533 margin_top = 24.7845 margin_right = 247.428 @@ -47,6 +47,20 @@ step = 0.1 value = 6.0 texture_progress = ExtResource( 3 ) +[node name="DayTime" type="Label" parent="."] +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = -170.14 +margin_top = 7.36639 +margin_right = -130.14 +margin_bottom = 21.3664 + +[node name="DayTimeProgress" type="ProgressBar" parent="."] +margin_left = 850.901 +margin_top = 30.7722 +margin_right = 988.901 +margin_bottom = 44.7722 + [node name="CrossHair" type="Control" parent="."] anchor_left = 0.5 anchor_top = 0.5 diff --git a/Global/Daytime.gd b/Global/Daytime.gd new file mode 100644 index 0000000..6d3a709 --- /dev/null +++ b/Global/Daytime.gd @@ -0,0 +1,31 @@ +extends Node + +const _increase_per_second: float = 30.0 #0.5 +const _max: int = 1440 # 24 hour + 60 mins + +var _time: float setget _set_time, get_time + + +func reset (): + get_tree().reload_current_scene() + Pills._set_level(Pills.get_max()) + _time = 0 + + +func _set_time (new_time: float): + _time = new_time + + +func get_time () -> float: + return _time + + +func get_max () -> int: + return _max + + +func _process (delta: float) -> void: + # continually increases daytime + _set_time(_time + _increase_per_second * delta) + if _time >= _max: + reset() diff --git a/project.godot b/project.godot index e2ae918..7b540dc 100644 --- a/project.godot +++ b/project.godot @@ -70,6 +70,7 @@ config/icon="res://icon.png" Logger="*res://Util/gs-logger-3.1-R3/gs_logger/logger.gd" Pills="*res://Global/Pills.gd" +Daytime="*res://Global/Daytime.gd" [input]