Script for counting days

extends Node2D

@onready var light = $DirectionalLight2D
@onready var PoinLight = $PointLight2D 
@onready var PoinLight2 = $PointLight2D2
@onready var day_text = $CanvasLayer/dayText
@onready var animPlayer = $CanvasLayer/AnimationPlayer

enum {
	MORNING,
	DAY,
	EVENING,
	NIGHT
}

var state = MORNING
var dayCount : int

func  _ready() -> void:
	light.enabled = true
	dayCount = 1
	set_day_text()
	day_Text_fade()

func morning_state():
	var tween = get_tree().create_tween()
	tween.tween_property(light, "energy" , 0.2 , 20)
	var tween1 = get_tree().create_tween()
	tween1.tween_property(PoinLight, "energy" , 0 , 20)
	var tween2 = get_tree().create_tween()
	tween2.tween_property(PoinLight2, "energy" , 0 , 20)
func ening_stste():
	var tween = get_tree().create_tween()
	tween.tween_property(light, "energy" , 0.95 , 20)
	var tween1 = get_tree().create_tween()
	tween1.tween_property(PoinLight, "energy" , 1.5 , 20)
	var tween2 = get_tree().create_tween()
	tween2.tween_property(PoinLight2, "energy" , 1.5 , 20)

func _on_day_night_timeout() -> void:
	match state:
		MORNING:
			morning_state()
		EVENING:
			ening_stste()
	
	if state < 3 :
		state += 1
	else :
		state = 0
		dayCount +=1
	set_day_text()
	day_Text_fade()


func day_Text_fade():
	animPlayer.play("day_Text_fade_in")
	await get_tree().create_timer(3).timeout
	animPlayer.play("day_Text_fade_out")


func set_day_text():
	day_text.text = "DAY " + str(dayCount)

I wrote a script to count days but it doesn’t work correctly. When it’s morning it shows day1, day2 etc. But when it’s afternoon, evening, night it also shows day1

That’s exactly what you print in the last line of code:

What would you like it to show instead?

1 Like