grappling_hook.tscn 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. [gd_scene load_steps=14 format=1]
  2. [ext_resource path="res://scripts/grappling_hook.gd" type="Script" id=1]
  3. [ext_resource path="res://scripts/shader/ship.tres" type="Shader" id=2]
  4. [ext_resource path="res://images/ships/grappling_hook_n.png" type="Texture" id=3]
  5. [ext_resource path="res://images/ships/grappling_hook_c.png" type="Texture" id=4]
  6. [ext_resource path="res://images/ships/grappling_hook_wire_c.png" type="Texture" id=5]
  7. [ext_resource path="res://images/particles/grey01.png" type="Texture" id=6]
  8. [ext_resource path="res://scripts/shader/grappling_hook.tres" type="Shader" id=7]
  9. [sub_resource type="CircleShape2D" id=1]
  10. custom_solver_bias = 0.0
  11. radius = 14.0
  12. [sub_resource type="CanvasItemMaterial" id=2]
  13. shader/shader = ExtResource( 2 )
  14. shader/shading_mode = 0
  15. shader_param/normal = ExtResource( 3 )
  16. [sub_resource type="CanvasItemMaterial" id=4]
  17. shader/shader = ExtResource( 7 )
  18. shader/shading_mode = 0
  19. shader_param/amplitude = 1.0
  20. [sub_resource type="Gradient" id=5]
  21. offsets = FloatArray( 0, 0.134503, 0.596491, 1 )
  22. colors = ColorArray( 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 )
  23. [sub_resource type="Animation" id=7]
  24. resource/name = "destroy"
  25. length = 2.0
  26. loop = false
  27. step = 0.1
  28. tracks/0/type = "value"
  29. tracks/0/path = NodePath("Sprite:visibility/visible")
  30. tracks/0/interp = 1
  31. tracks/0/imported = false
  32. tracks/0/keys = { "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "update":1, "values":[ true, false ] }
  33. tracks/1/type = "value"
  34. tracks/1/path = NodePath("Wire:visibility/visible")
  35. tracks/1/interp = 1
  36. tracks/1/imported = false
  37. tracks/1/keys = { "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "update":1, "values":[ true, false ] }
  38. tracks/2/type = "method"
  39. tracks/2/path = NodePath(".")
  40. tracks/2/interp = 1
  41. tracks/2/imported = false
  42. tracks/2/keys = { "times":FloatArray( 2 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] }
  43. [sub_resource type="Animation" id=6]
  44. length = 0.6
  45. loop = false
  46. step = 0.1
  47. tracks/0/type = "value"
  48. tracks/0/path = NodePath("Wire:material/material:shader_param/amplitude")
  49. tracks/0/interp = 1
  50. tracks/0/imported = false
  51. tracks/0/keys = { "times":FloatArray( 0, 0.1, 0.6 ), "transitions":FloatArray( 1, 1, 1 ), "update":0, "values":[ 1.0, 1.0, 0.0 ] }
  52. [node name="GrapplingHook" type="Area2D"]
  53. input/pickable = true
  54. shapes/0/shape = SubResource( 1 )
  55. shapes/0/transform = Matrix32( 1, 0, 0, 0.667, 0, -8 )
  56. shapes/0/trigger = false
  57. gravity_vec = Vector2( 0, 1 )
  58. gravity = 98.0
  59. linear_damp = 0.1
  60. angular_damp = 1.0
  61. script/script = ExtResource( 1 )
  62. [node name="Sprite" type="Sprite" parent="."]
  63. visibility/opacity = 0.0
  64. material/material = SubResource( 2 )
  65. transform/scale = Vector2( 0.5, 0.5 )
  66. texture = ExtResource( 4 )
  67. [node name="Wire" type="Sprite" parent="."]
  68. visibility/light_mask = 0
  69. material/material = SubResource( 4 )
  70. transform/pos = Vector2( 0, 9 )
  71. transform/scale = Vector2( 1, 0.5 )
  72. texture = ExtResource( 5 )
  73. centered = false
  74. offset = Vector2( -16, 0 )
  75. region = true
  76. region_rect = Rect2( 0, 0, 32, 200 )
  77. [node name="CollisionShape" type="CollisionShape2D" parent="."]
  78. transform/pos = Vector2( 0, -8 )
  79. transform/scale = Vector2( 1, 0.667 )
  80. shape = SubResource( 1 )
  81. trigger = false
  82. _update_shape_index = 0
  83. [node name="Particles" type="Particles2D" parent="."]
  84. visibility/self_opacity = 0.25
  85. transform/pos = Vector2( 0, -8 )
  86. config/amount = 64
  87. config/lifetime = 2.0
  88. config/emit_timeout = 0.25
  89. config/emitting = false
  90. config/local_space = false
  91. config/texture = ExtResource( 6 )
  92. params/direction = 0.0
  93. params/spread = 180.0
  94. params/linear_velocity = 24.0
  95. params/spin_velocity = 0.0
  96. params/orbit_velocity = 0.0
  97. params/gravity_direction = 0.0
  98. params/gravity_strength = 0.0
  99. params/radial_accel = 0.0
  100. params/tangential_accel = 0.0
  101. params/damping = 8.0
  102. params/initial_angle = 0.0
  103. params/initial_size = 0.25
  104. params/final_size = 0.05
  105. params/hue_variation = 0.0
  106. params/anim_speed_scale = 1.0
  107. params/anim_initial_pos = 0.0
  108. randomness/linear_velocity = 0.25
  109. randomness/initial_size = 0.75
  110. randomness/final_size = 0.5
  111. color/color_ramp = SubResource( 5 )
  112. [node name="Joint" type="PinJoint2D" parent="."]
  113. node_a = NodePath("")
  114. node_b = NodePath("")
  115. bias/bias = 0.0
  116. collision/exclude_nodes = false
  117. softness = 1.0
  118. [node name="Anim" type="AnimationPlayer" parent="."]
  119. playback/process_mode = 1
  120. playback/default_blend_time = 0.0
  121. root/root = NodePath("..")
  122. anims/destroy = SubResource( 7 )
  123. anims/fade_in = SubResource( 6 )
  124. playback/active = true
  125. playback/speed = 1.0
  126. blend_times = [ ]
  127. autoplay = "fade_in"
  128. [connection signal="body_enter" from="." to="." method="_collide"]