diff --git a/components/Abstracts/WeaponCardBase.tscn b/components/Abstracts/WeaponCardBase.tscn index b742be8..e9c2d0c 100644 --- a/components/Abstracts/WeaponCardBase.tscn +++ b/components/Abstracts/WeaponCardBase.tscn @@ -65,6 +65,128 @@ corner_radius_top_left = 15 corner_radius_bottom_right = 15 corner_detail = 1 +[sub_resource type="Animation" id="Animation_75t4v"] +length = 0.001 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("container/anchor/climatePanel:scale:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("container/anchor/climatePanel:scale:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("container/anchor/climatePanel:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_mjvvk"] +resource_name = "openSub" +length = 0.25 +step = 0.05 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("container/anchor/climatePanel:scale:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0, 0, 0, 0, 0, 0, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("container/anchor/climatePanel:scale:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0, 0, 0, 0, 0, 0, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("container/anchor/climatePanel:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.25), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_sbvs2"] +resource_name = "openSub" +length = 0.25 +step = 0.05 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("container/anchor/climatePanel:scale:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(0, 0, 0, 0, 0, 1, -0.25, 0, 0, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("container/anchor/climatePanel:scale:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(0, 0, 0, 0, 0, 1, -0.25, 0, 0, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("container/anchor/climatePanel:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.25), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mjvvk"] +_data = { +&"RESET": SubResource("Animation_75t4v"), +&"closeSub": SubResource("Animation_mjvvk"), +&"openSub": SubResource("Animation_sbvs2") +} + [node name="WeaponCard" type="PanelContainer" unique_id=2085048785] offset_right = 350.0 offset_bottom = 304.0 @@ -89,12 +211,14 @@ alignment = 1 layout_mode = 2 [node name="climatePanel" type="PanelContainer" parent="container/anchor" unique_id=653448699] +modulate = Color(1, 1, 1, 0) layout_mode = 1 anchors_preset = -1 anchor_left = 1.15 anchor_right = 1.15 -offset_right = 40.0 -offset_bottom = 40.0 +offset_right = 92.0 +offset_bottom = 79.0 +scale = Vector2(1e-05, 1e-05) theme_override_styles/panel = SubResource("StyleBoxFlat_mjvvk") [node name="wrapper" type="VBoxContainer" parent="container/anchor/climatePanel" unique_id=1097849201] @@ -148,7 +272,7 @@ alignment = 2 layout_mode = 2 theme = ExtResource("2_fwkd3") -[node name="climateBtn" type="Button" parent="container/wrapper" unique_id=390423731] +[node name="sublimateBtn" type="Button" parent="container/wrapper" unique_id=390423731] unique_name_in_owner = true layout_mode = 2 theme = ExtResource("2_fwkd3") @@ -305,3 +429,7 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 text = "β†’" + +[node name="animator" type="AnimationPlayer" parent="." unique_id=900403095] +unique_name_in_owner = true +libraries/ = SubResource("AnimationLibrary_mjvvk") diff --git a/scripts/Statemachine/TextSwitchButton.gd b/scripts/Statemachine/TextSwitchButton.gd index 33a83bd..38d1019 100644 --- a/scripts/Statemachine/TextSwitchButton.gd +++ b/scripts/Statemachine/TextSwitchButton.gd @@ -6,8 +6,9 @@ class_name TextSwitchButton @export var unpressedText: String = "ζœͺζŒ‰δΈ‹" func _ready(): - updateText() - toggled.connect(updateText) + updateText(button_pressed) + toggle_mode = true + toggled.connect(func(on: bool): updateText(on)) -func updateText(): - text = [unpressedText, pressedText][int(button_pressed)] +func updateText(on: bool): + text = [unpressedText, pressedText][int(on)] diff --git a/scripts/Structs/Weapon.gd b/scripts/Structs/Weapon.gd index 76a6f92..01a292e 100644 --- a/scripts/Structs/Weapon.gd +++ b/scripts/Structs/Weapon.gd @@ -41,6 +41,7 @@ enum EmitType { @onready var sounds: Node2D = $%sounds @onready var moveLeftBtn: Button = $%moveleft @onready var moveRightBtn: Button = $%moveright +@onready var animator: AnimationPlayer = $%animator @onready var autoUpdateBtn: Button = $%autoUpdateBtn @onready var onceUpdateBtn: Button = $%onceUpdateBtn @@ -48,6 +49,7 @@ enum EmitType { @onready var extractBtn: Button = $%extractBtn @onready var inlayBtn: Button = $%inlayBtn +@onready var sublimateBtn: Button = $%sublimateBtn @onready var sublimateOptionsBox: Control = $%sublimateOptions var cooldownTimer: CooldownTimer = null @@ -63,6 +65,13 @@ func _ready(): cooldownTimer = CooldownTimer.new() cooldownTimer.cooldown = cooldown originalStore = store + sublimateBtn.toggled.connect( + func(on: bool): + if on: + animator.play("openSub") + else: + animator.play("closeSub") + ) autoUpdateBtn.toggled.connect( func(on: bool): autoUpdate = on