| @@ -4,6 +4,9 @@ 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: | |||
| @@ -19,6 +22,19 @@ func _ready(): | |||
| $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() | |||
| @@ -35,20 +51,13 @@ func stop(): | |||
| func _on_Area2D_body_entered(body): | |||
| if body.is_in_group("Player"): | |||
| var mood = body.get_mood() | |||
| var dc = _dominant_color() | |||
| print ("Dominant Color: ", dc) | |||
| print ("Is Aggressive: ", mood.is_aggressive()) | |||
| print ("Is Needie: ", mood.is_needie()) | |||
| print ("Is Content: ", mood.is_content()) | |||
| 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()): | |||
| open() | |||
| if _body == null and body.is_in_group("Player"): | |||
| _body = body | |||
| _triggered = false | |||
| func _on_Area2D_body_exited(body): | |||
| if body.is_in_group("Player"): | |||
| if body == _body: | |||
| _body = null | |||
| _triggered = false | |||
| close() | |||