Initial commit
This commit is contained in:
		
							
								
								
									
										33
									
								
								game/arrow/arrow.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								game/arrow/arrow.gd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
extends Polygon2D
 | 
			
		||||
class_name Arrow
 | 
			
		||||
 | 
			
		||||
@onready var inner := $Inner
 | 
			
		||||
@onready var player := $AnimationPlayer
 | 
			
		||||
 | 
			
		||||
@export_color_no_alpha var normal_color: Color = Color.WHITE
 | 
			
		||||
@export_color_no_alpha var done_color: Color = Color.KHAKI
 | 
			
		||||
 | 
			
		||||
var dir: Global.DIRS = Global.DIRS.RIGHT :
 | 
			
		||||
	get:
 | 
			
		||||
		return dir
 | 
			
		||||
	set(v):
 | 
			
		||||
		match v:
 | 
			
		||||
			Global.DIRS.LEFT: rotation = PI
 | 
			
		||||
			Global.DIRS.RIGHT: rotation = 0
 | 
			
		||||
			Global.DIRS.UP: rotation = 3*PI/2
 | 
			
		||||
			Global.DIRS.DOWN: rotation = PI/2
 | 
			
		||||
		dir = v
 | 
			
		||||
 | 
			
		||||
var state: Global.ARROW_STATE = Global.ARROW_STATE.NORMAL :
 | 
			
		||||
	get:
 | 
			
		||||
		return state
 | 
			
		||||
	set(v):
 | 
			
		||||
		match v:
 | 
			
		||||
			Global.ARROW_STATE.NORMAL:
 | 
			
		||||
				if state == Global.ARROW_STATE.DONE:
 | 
			
		||||
					player.play('done-error')
 | 
			
		||||
				else:
 | 
			
		||||
					inner.color = normal_color
 | 
			
		||||
			Global.ARROW_STATE.DONE: inner.color = done_color
 | 
			
		||||
			Global.ARROW_STATE.ERROR: player.play('error')
 | 
			
		||||
		state = v
 | 
			
		||||
							
								
								
									
										88
									
								
								game/arrow/arrow.tscn
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								game/arrow/arrow.tscn
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
[gd_scene load_steps=6 format=3 uid="uid://cjc46cgqe1r20"]
 | 
			
		||||
 | 
			
		||||
[ext_resource type="Script" path="res://game/arrow/arrow.gd" id="1_35aap"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_pyfum"]
 | 
			
		||||
length = 0.001
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("Inner:color")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0),
 | 
			
		||||
"transitions": PackedFloat32Array(1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [Color(1, 1, 1, 1)]
 | 
			
		||||
}
 | 
			
		||||
tracks/1/type = "value"
 | 
			
		||||
tracks/1/imported = false
 | 
			
		||||
tracks/1/enabled = true
 | 
			
		||||
tracks/1/path = NodePath(".:modulate")
 | 
			
		||||
tracks/1/interp = 1
 | 
			
		||||
tracks/1/loop_wrap = true
 | 
			
		||||
tracks/1/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0),
 | 
			
		||||
"transitions": PackedFloat32Array(1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [Color(1, 1, 1, 1)]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_qo54c"]
 | 
			
		||||
resource_name = "done-error"
 | 
			
		||||
length = 0.5
 | 
			
		||||
step = 0.05
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("Inner:color")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0, 0.15, 0.3, 0.5),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [Color(0.941176, 0.901961, 0.54902, 1), Color(0.85098, 0.27451, 0.282353, 1), Color(0.85098, 0.27451, 0.282353, 1), Color(1, 1, 1, 1)]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_1cugm"]
 | 
			
		||||
resource_name = "error"
 | 
			
		||||
length = 0.5
 | 
			
		||||
step = 0.05
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("Inner:color")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0, 0.15, 0.3, 0.5),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [Color(1, 1, 1, 1), Color(0.85098, 0.27451, 0.282353, 1), Color(0.85098, 0.27451, 0.282353, 1), Color(1, 1, 1, 1)]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_hujhs"]
 | 
			
		||||
_data = {
 | 
			
		||||
"RESET": SubResource("Animation_pyfum"),
 | 
			
		||||
"done-error": SubResource("Animation_qo54c"),
 | 
			
		||||
"error": SubResource("Animation_1cugm")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[node name="Outline" type="Polygon2D"]
 | 
			
		||||
color = Color(0, 0, 0, 1)
 | 
			
		||||
offset = Vector2(-32, -32)
 | 
			
		||||
antialiased = true
 | 
			
		||||
polygon = PackedVector2Array(0, 20, 0, 44, 20, 44, 20, 64, 32, 64, 64, 32, 32, 0, 20, 0, 20, 20)
 | 
			
		||||
script = ExtResource("1_35aap")
 | 
			
		||||
 | 
			
		||||
[node name="Inner" type="Polygon2D" parent="."]
 | 
			
		||||
offset = Vector2(-32, -32)
 | 
			
		||||
antialiased = true
 | 
			
		||||
polygon = PackedVector2Array(4, 24, 4, 40, 24, 40, 24, 60, 30, 60, 58, 32, 30, 4, 24, 4, 24, 24)
 | 
			
		||||
 | 
			
		||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
 | 
			
		||||
libraries = {
 | 
			
		||||
"": SubResource("AnimationLibrary_hujhs")
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user