A game created for the Godot Wild Jam #21
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- extends Node2D
-
-
- export var color:Color
- export var transition_rate = 0.75
-
- var _body = null
- var _triggered = false
-
-
- func _dominant_color():
- if color.r > color.g and color.r > color.b:
- return "r"
- if color.g > color.r and color.g > color.b:
- return "g"
- if color.b > color.r and color.b > color.g:
- return "b"
- return "n"
-
- func _ready():
- $LeftDoor.set_color(color)
- $LeftDoor.transition_rate = transition_rate
- $RightDoor.set_color(color)
- $RightDoor.transition_rate = transition_rate
- set_process(true)
-
- func _process(delta):
- if _body == null or _triggered:
- return
- var mood = _body.get_mood()
- var dc = _dominant_color()
- if (dc == "r" and mood.is_aggressive()) or \
- (dc == "g" and mood.is_needie()) or \
- (dc == "b" and mood.is_content()) or \
- (dc == "n" and mood.is_neutral()):
- _triggered = true
- open()
-
- func open():
- $LeftDoor.open()
- $RightDoor.open()
-
- func close():
- $LeftDoor.close()
- $RightDoor.close()
-
- func stop():
- $LeftDoor.stop()
- $RightDoor.stop()
-
-
-
- func _on_Area2D_body_entered(body):
- if _body == null and body.is_in_group("Player"):
- _body = body
- _triggered = false
-
-
- func _on_Area2D_body_exited(body):
- if body == _body:
- _body = null
- _triggered = false
- close()
|