connecting time and pill level changes to player info label
This commit is contained in:
parent
74812a2a10
commit
1c23fc9b2f
@ -154,6 +154,7 @@ func _set_behavior ():
|
||||
# EDIT: too early at work is not an angry reason :p
|
||||
elif _playerRef.IsInFactory and daytime > Daytime.SLEEP_TIME: # at work after out of WORK_TIME
|
||||
reason = "player in factory out of worktime"
|
||||
Logger.info("daytime: " + String(daytime) + " SLEEP_TIME: " + String(Daytime.SLEEP_TIME))
|
||||
elif _countCmds > MAX_CMDS: # after MAX_CMDS repeats of the same command
|
||||
reason = "player is seemingly not coorperativ"
|
||||
|
||||
|
@ -106,12 +106,21 @@ func _ready():
|
||||
area.connect("area_exited", self, "_on_area_exited")
|
||||
|
||||
Daytime.connect("respawn", self, "_on_respawn")
|
||||
Daytime.connect("go_home", self, "_on_go_home")
|
||||
Daytime.connect("go_to_work", self, "_on_go_to_work")
|
||||
|
||||
Pills.connect("low_pill_level", self, "_on_pill_level_low")
|
||||
Pills.connect("very_low_pill_level", self, "_on_pill_level_very_low")
|
||||
|
||||
if IsOutside:
|
||||
var player = get_node("AudioStreamPlayer3D")
|
||||
player.stream = load("res://Resources/Audio/cock.wav")
|
||||
player.play()
|
||||
|
||||
# only message Player at the beginning
|
||||
if Daytime.get_time() < 10:
|
||||
showMessage("Press 'F' to eat your food", 4)
|
||||
|
||||
|
||||
func showMessage (text, duration):
|
||||
_labelMessage.text = text
|
||||
@ -234,6 +243,7 @@ func _input(event):
|
||||
# Prevent player from doing a purzelbaum
|
||||
_camera.rotation_degrees.x = clamp(_camera.rotation_degrees.x, -70, 70)
|
||||
|
||||
|
||||
func _on_area_entered (area: Area):
|
||||
if area.is_in_group("Forbidden"):
|
||||
Logger.info("entering forbidden area!")
|
||||
@ -246,27 +256,24 @@ func _on_area_entered (area: Area):
|
||||
_work_areas += 1
|
||||
elif area.is_in_group("FactoryEntry"):
|
||||
Logger.info("entering factory")
|
||||
IsInFactory = true
|
||||
IsOutside = false
|
||||
#IsInFactory = true
|
||||
#IsOutside = false
|
||||
get_tree().change_scene("res://Level/InFactory.tscn")
|
||||
elif area.is_in_group("TunnelEntry"):
|
||||
Logger.info("entering factory")
|
||||
IsInFactory = false
|
||||
IsOutside = false
|
||||
# TODO: move not change_scene!
|
||||
#IsInFactory = false
|
||||
#IsOutside = false
|
||||
get_tree().change_scene("res://Level/Tunnel.tscn")
|
||||
# TODO: other entries
|
||||
elif area.is_in_group("OutsideEntry"):
|
||||
Logger.info("leaving factory")
|
||||
IsInFactory = false
|
||||
IsOutside = true
|
||||
# TODO: move not change_scene!
|
||||
get_tree().change_scene("res://Level/OutsideWorld.tscn")
|
||||
#IsInFactory = false
|
||||
#IsOutside = true
|
||||
get_tree().change_scene("res://Level/OutsideWorldReverse.tscn")
|
||||
elif area.is_in_group("LabyrinthEntry"):
|
||||
Logger.info("entering labyrinth")
|
||||
IsInFactory = false
|
||||
IsInLabyrinth = true
|
||||
# TODO: move not change_scene!
|
||||
#IsInFactory = false
|
||||
#IsInLabyrinth = true
|
||||
get_tree().change_scene("res://Level/Labyrinth.tscn")
|
||||
|
||||
|
||||
@ -307,3 +314,23 @@ func _on_respawn ():
|
||||
get_tree().change_scene("res://Level/OutsideWorld.tscn")
|
||||
|
||||
_inventory.show() # enable hud again
|
||||
|
||||
|
||||
func _on_go_home ():
|
||||
if IsInFactory:
|
||||
showMessage("Jobs done! Time to go home", 4)
|
||||
|
||||
|
||||
func _on_go_to_work ():
|
||||
if IsOutside:
|
||||
showMessage("Time to go to work", 4)
|
||||
|
||||
|
||||
func _on_pill_level_low ():
|
||||
Logger.info("player received low pill")
|
||||
showMessage("Don't starve! Press 'F' to eat your food!", 4)
|
||||
|
||||
|
||||
func _on_pill_level_very_low ():
|
||||
Logger.info("player received very low pill")
|
||||
showMessage("REALLY! You should eat your food!", 4)
|
@ -36,17 +36,31 @@ visible = false
|
||||
modulate = Color( 0, 0, 0, 1 )
|
||||
self_modulate = Color( 0, 0, 0, 1 )
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -153.0
|
||||
margin_top = -106.0
|
||||
margin_right = 153.0
|
||||
margin_bottom = -82.0
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -460.0
|
||||
margin_top = 162.0
|
||||
margin_right = 460.0
|
||||
margin_bottom = 186.0
|
||||
custom_fonts/font = ExtResource( 2 )
|
||||
text = "you don't havve the right key"
|
||||
text = "this is a very long text. just needed to be able to center it at the beginning of the game"
|
||||
align = 1
|
||||
|
||||
[node name="labelHealth" type="Label" parent="."]
|
||||
modulate = Color( 0, 0, 0, 1 )
|
||||
self_modulate = Color( 0, 0, 0, 1 )
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -790.869
|
||||
margin_top = -402.863
|
||||
margin_right = -640.869
|
||||
margin_bottom = -378.863
|
||||
custom_fonts/font = ExtResource( 2 )
|
||||
text = "Health"
|
||||
|
||||
[node name="InventoryContainer" type="GridContainer" parent="."]
|
||||
anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
|
@ -1,15 +1,18 @@
|
||||
extends Node
|
||||
|
||||
#const _max: int = 1440 # 24 hour + 60 mins
|
||||
const _max: int = 1440
|
||||
const _max: int = 1440 # 24 hour + 60 mins
|
||||
|
||||
const WORK_TIME = _max * 0.3
|
||||
const SLEEP_TIME = _max * 0.6
|
||||
const TIGGER_TIME = _max * 0.2
|
||||
|
||||
var _time: float setget _set_time, get_time
|
||||
var increase_per_second: float = 5.0
|
||||
var _time: float = 0 setget _set_time, get_time
|
||||
var _prev_time: float = _time
|
||||
var increase_per_second: float = 25.0
|
||||
|
||||
signal respawn
|
||||
signal go_to_work
|
||||
signal go_home
|
||||
|
||||
|
||||
func _set_time (new_time: float):
|
||||
@ -26,7 +29,16 @@ func get_max () -> int:
|
||||
|
||||
func _process (delta: float) -> void:
|
||||
# continually increases daytime
|
||||
_set_time(_time + increase_per_second * delta)
|
||||
_time = _time + increase_per_second * delta
|
||||
if _time >= _max:
|
||||
_time = 0
|
||||
emit_signal("respawn")
|
||||
|
||||
if _prev_time < WORK_TIME - TIGGER_TIME and _time > WORK_TIME - TIGGER_TIME:
|
||||
Logger.info("time to go to work @" + String(_time))
|
||||
emit_signal("go_to_work")
|
||||
if _prev_time < SLEEP_TIME and _time > SLEEP_TIME:
|
||||
Logger.info("time to go home @" + String(_time))
|
||||
emit_signal("go_home")
|
||||
|
||||
_prev_time = _time
|
||||
|
@ -1,12 +1,16 @@
|
||||
extends Node
|
||||
|
||||
|
||||
var _level: float setget _set_level, get_level
|
||||
var _min: float = 0.0
|
||||
var _max: float = 6.0
|
||||
var _level: float = _max setget _set_level, get_level
|
||||
var _prev_level: float = _max
|
||||
var _decrease_per_second: float = 0.2
|
||||
var _pill_add_amount: float = 2.0
|
||||
|
||||
signal low_pill_level
|
||||
signal very_low_pill_level
|
||||
|
||||
enum LEVELS {
|
||||
SOBRE = 0,
|
||||
VERY_LOW = 1,
|
||||
@ -50,7 +54,15 @@ func _ready() -> void:
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
# Gradually decrease the level by the decrease per second
|
||||
_set_level(_level - _decrease_per_second * delta)
|
||||
_level = _level - _decrease_per_second * delta
|
||||
if _prev_level > LEVELS.VERY_LOW and _level < LEVELS.VERY_LOW:
|
||||
Logger.info("very low pill level")
|
||||
emit_signal("very_low_pill_level")
|
||||
elif _prev_level > LEVELS.MEDIUM and _level < LEVELS.MEDIUM:
|
||||
Logger.info("low pill level")
|
||||
emit_signal("low_pill_level")
|
||||
_prev_level = _level
|
||||
|
||||
|
||||
|
||||
func take_pill():
|
||||
|
Loading…
x
Reference in New Issue
Block a user