170 lines
5.1 KiB
GDScript
170 lines
5.1 KiB
GDScript
extends Node
|
|
|
|
var twoGirls;
|
|
|
|
signal endOfChoice;
|
|
|
|
const imagesBackgroupLoading:String = "res://resources/customControls/Timeline_17_Images/Images.tscn";
|
|
|
|
var previousImage:TextureRect = null;
|
|
var currentImage:TextureRect = null;
|
|
|
|
func _ready():
|
|
PrepareTextures();
|
|
Localization();
|
|
SetHover()
|
|
ChechVariables();
|
|
|
|
func PrepareTextures():
|
|
var _temp = SceneLoader.connect("on_scene_loaded", self, "LoadTextures")
|
|
SceneLoader.load_scene(imagesBackgroupLoading);
|
|
|
|
func LoadTextures(obj):
|
|
if obj.path != imagesBackgroupLoading:
|
|
return ;
|
|
|
|
var scene = obj.instance;
|
|
var array:Array = scene.GetTextures();
|
|
for i in $Girls.get_child_count():
|
|
var image:TextureRect = $Girls.get_child(i);
|
|
image.texture = array[i];
|
|
scene.queue_free()
|
|
|
|
SceneLoader.disconnect("on_scene_loaded", self, "LoadTextures")
|
|
|
|
|
|
var buttons = $Buttons.get_children();
|
|
for i in buttons:
|
|
i.disabled = false;
|
|
|
|
func Localization():
|
|
$Buttons / Pink.text = tr("ui_name_pink").to_upper();
|
|
$Buttons / Purple.text = tr("ui_name_purple").to_upper();
|
|
$Buttons / Green.text = tr("ui_name_green").to_upper();
|
|
$Buttons / Black.text = tr("ui_name_black").to_upper();
|
|
$Buttons / Blue.text = tr("ui_name_blue_f").to_upper();
|
|
$Buttons / Orange.text = tr("choice109.2").to_upper();
|
|
$Buttons / Guys.text = tr("choice109.1").to_upper();
|
|
|
|
func SetHover():
|
|
var hover = [
|
|
{"button":$Buttons / Pink, "texture":$Girls / Pink},
|
|
{"button":$Buttons / Purple, "texture":$Girls / Purple},
|
|
{"button":$Buttons / Green, "texture":$Girls / Green},
|
|
{"button":$Buttons / Black, "texture":$Girls / Black},
|
|
{"button":$Buttons / Blue, "texture":$Girls / Blue},
|
|
{"button":$Buttons / Orange, "texture":$Girls / Orange},
|
|
]
|
|
|
|
for i in hover:
|
|
i["button"].connect("mouse_entered", self, "onButtonHoverOn", [i["button"], i["texture"]]);
|
|
i["button"].connect("mouse_exited", self, "onButtonHoverOff", [i["button"]]);
|
|
|
|
func onButtonHoverOn(button, texture):
|
|
if not CheckHover():return
|
|
button.get("custom_fonts/font").outline_color = Color(255, 255, 255, 255);
|
|
button.set("custom_colors/font_color", Color(0, 0, 0, 255));
|
|
|
|
for i in $Girls.get_children():
|
|
if i == texture:
|
|
continue;
|
|
i.modulate = Color(1, 1, 1, 0);
|
|
|
|
if currentImage != texture:
|
|
currentImage = texture;
|
|
texture.modulate = Color(1, 1, 1, 1);
|
|
|
|
if previousImage != texture and previousImage != null:
|
|
previousImage.modulate = Color(1, 1, 1, 0);
|
|
|
|
func onButtonHoverOff(button):
|
|
if not CheckHover():return
|
|
button.get("custom_fonts/font").outline_color = Color(0, 0, 0, 255);
|
|
button.set("custom_colors/font_color", Color(255, 255, 255, 255));
|
|
|
|
previousImage = currentImage;
|
|
|
|
func _on_Guys_mouse_entered():
|
|
$Buttons / Guys.get("custom_fonts/font").outline_color = Color(255, 255, 255, 255);
|
|
$Buttons / Guys.set("custom_colors/font_color", Color(255, 0, 0, 255));
|
|
|
|
currentImage = null;
|
|
previousImage = null;
|
|
|
|
for i in $Girls.get_children():
|
|
i.modulate = Color(1, 1, 1, 0);
|
|
|
|
func _on_Guys_mouse_exited():
|
|
$Buttons / Guys.get("custom_fonts/font").outline_color = Color(0, 0, 0, 255);
|
|
$Buttons / Guys.set("custom_colors/font_color", Color(255, 255, 255, 255));
|
|
|
|
func ChechVariables():
|
|
twoGirls = int(Dialogic.get_variable("TwoGirls"));
|
|
|
|
if twoGirls == 0:
|
|
|
|
for i in $Buttons.get_children():
|
|
i.visible = true;
|
|
elif twoGirls == 2:
|
|
|
|
$Buttons / Pink.visible = int(Dialogic.get_variable("Pink_Karma")) >= 5;
|
|
$Buttons / Purple.visible = int(Dialogic.get_variable("Purple_Karma")) >= 5;
|
|
$Buttons / Green.visible = int(Dialogic.get_variable("Green_Karma")) >= 5;
|
|
$Buttons / Black.visible = int(Dialogic.get_variable("Black_Karma")) >= 5;
|
|
$Buttons / Blue.visible = int(Dialogic.get_variable("Blue_F_Karma")) >= 5;
|
|
|
|
var buttons = $Buttons.get_children();
|
|
for i in buttons:
|
|
i.disabled = true;
|
|
|
|
func _on_Pink_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Pink");
|
|
Dialogic.set_variable("ChosenAlibi", "Pink");
|
|
EndOfChoice();
|
|
|
|
func _on_Purple_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Purple");
|
|
Dialogic.set_variable("ChosenAlibi", "Purple");
|
|
EndOfChoice();
|
|
|
|
func _on_Green_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Green");
|
|
Dialogic.set_variable("ChosenAlibi", "Green");
|
|
EndOfChoice();
|
|
|
|
func _on_Black_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Black");
|
|
Dialogic.set_variable("ChosenAlibi", "Black");
|
|
EndOfChoice();
|
|
|
|
func _on_Blue_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Blue");
|
|
Dialogic.set_variable("ChosenAlibi", "Blue");
|
|
EndOfChoice();
|
|
|
|
func _on_Orange_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Loser");
|
|
var game = get_tree().root.get_node("Root/GameLogic");
|
|
game.after17result = "Bar";
|
|
EndOfChoice();
|
|
|
|
func _on_Guys_button_up():
|
|
if not CheckHover():return
|
|
Dialogic.set_variable("Chosen_Girl", "Loser");
|
|
var game = get_tree().root.get_node("Root/GameLogic");
|
|
game.after17result = "Guys";
|
|
EndOfChoice();
|
|
|
|
func CheckHover()->bool:
|
|
return not (get_tree().root.get_node("Root").isMenuVisible or get_tree().root.get_node("Root").isSaveLoadVisible)
|
|
|
|
func EndOfChoice():
|
|
emit_signal("endOfChoice");
|
|
for i in $Girls.get_children():
|
|
i.queue_free();
|