[gd_scene format=3 uid="uid://csr23278g4hqe"] [ext_resource type="Material" uid="uid://dm6208hbqf4du" path="res://assets/models/character/materials/face.tres" id="1_dj8sy"] [ext_resource type="PackedScene" uid="uid://cj3x6a8gm4ogn" path="res://assets/models/character/character.blend" id="1_yaurm"] [ext_resource type="Texture2D" uid="uid://pvyws3o3st6e" path="res://assets/models/character/character_player_face_bored.png" id="2_vapos"] [ext_resource type="Texture2D" uid="uid://cc57nq4welkle" path="res://assets/models/character/character_player_face_angry_base.png" id="3_0qik6"] [ext_resource type="Texture2D" uid="uid://bbwg6vca2x3sp" path="res://assets/models/character/character_player_face_angry_action.png" id="4_l45uo"] [ext_resource type="Material" uid="uid://b34bw5uytvs5x" path="res://assets/effects/glow_material.tres" id="6_vapos"] [ext_resource type="Material" uid="uid://dnar2tn2dgjb5" path="res://assets/effects/green_glow_material.tres" id="7_0qik6"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_5j0w6"] radius = 0.39990234 [sub_resource type="GDScript" id="GDScript_yaurm"] script/source = "extends Node3D enum Expressions { FACE_BORED, FACE_ANGRY, FACE_ACTION } @export var face_material : StandardMaterial3D @export var face_textures : Array[Texture2D] @export var hammer_glow_material : StandardMaterial3D func emit(scene : PackedScene): if is_instance_valid(scene): var instance : Node = scene.instantiate() add_child(instance) if instance is Node3D: var node3d : Node3D = instance as Node3D node3d.global_position = global_position node3d.global_rotation = global_rotation else: push_warning(\"Attempt to emit nil effect\") func set_player_face(face : Expressions): if is_instance_valid(face_material): face_material.albedo_texture = face_textures[face] func set_hammer_glow(glow : bool): $\"../character/character2/Skeleton3D/hammer\".material_overlay = hammer_glow_material if glow else null " [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_l45uo"] animation = &"falling" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_njhnd"] animation = &"hurt" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yaurm"] animation = &"RESET" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_l4dj5"] animation = &"jump_strike" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0qik6"] animation = &"leap" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dj8sy"] animation = &"ready_idle" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vapos"] animation = &"run" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_abvwl"] animation = &"special_spin_forward" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7anxi"] animation = &"wide_swing_left" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1p07c"] animation = &"wide_swing_right" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yaurm"] advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_dj8sy"] xfade_time = 0.01 switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0qik6"] xfade_time = 0.3 switch_mode = 2 advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_1p07c"] xfade_time = 0.05 priority = 2 switch_mode = 2 advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_l4dj5"] xfade_time = 0.1 priority = 2 switch_mode = 2 advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_l45uo"] xfade_time = 0.02 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7anxi"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_abvwl"] xfade_time = 0.1 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_njhnd"] xfade_time = 0.1 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0jr6v"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5bea6"] xfade_time = 0.1 switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_c0vxo"] switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_akn3p"] xfade_time = 0.05 switch_mode = 2 advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vapos"] xfade_time = 0.01 switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_txygb"] xfade_time = 0.1 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yabrd"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qyr5q"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_krlq6"] switch_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_d25mo"] switch_mode = 2 advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_g2wep"] switch_mode = 2 [sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_yaurm"] states/End/position = Vector2(819.20306, 217.87698) states/Start/position = Vector2(339.22916, 10.581505) states/falling/node = SubResource("AnimationNodeAnimation_l45uo") states/falling/position = Vector2(159.81012, 193.92871) states/hurt/node = SubResource("AnimationNodeAnimation_njhnd") states/hurt/position = Vector2(335.9173, 194.37602) states/idle/node = SubResource("AnimationNodeAnimation_yaurm") states/idle/position = Vector2(339.472, 99.8394) states/jump_strike/node = SubResource("AnimationNodeAnimation_l4dj5") states/jump_strike/position = Vector2(1064.1254, -68.24788) states/leap/node = SubResource("AnimationNodeAnimation_0qik6") states/leap/position = Vector2(758.9374, -64.90059) states/ready_idle/node = SubResource("AnimationNodeAnimation_dj8sy") states/ready_idle/position = Vector2(482.89404, 94.36595) states/run/node = SubResource("AnimationNodeAnimation_vapos") states/run/position = Vector2(159.82951, 100.4825) states/special_spin_forward/node = SubResource("AnimationNodeAnimation_abvwl") states/special_spin_forward/position = Vector2(756.3414, -274.36328) states/wide_swing_left/node = SubResource("AnimationNodeAnimation_7anxi") states/wide_swing_left/position = Vector2(759.0044, -153.31633) states/wide_swing_right/node = SubResource("AnimationNodeAnimation_1p07c") states/wide_swing_right/position = Vector2(482.58664, -153.6186) transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition_yaurm"), "wide_swing_right", "wide_swing_left", SubResource("AnimationNodeStateMachineTransition_dj8sy"), "jump_strike", "ready_idle", SubResource("AnimationNodeStateMachineTransition_0qik6"), "wide_swing_left", "ready_idle", SubResource("AnimationNodeStateMachineTransition_1p07c"), "wide_swing_right", "ready_idle", SubResource("AnimationNodeStateMachineTransition_l4dj5"), "ready_idle", "wide_swing_right", SubResource("AnimationNodeStateMachineTransition_l45uo"), "idle", "ready_idle", SubResource("AnimationNodeStateMachineTransition_7anxi"), "idle", "run", SubResource("AnimationNodeStateMachineTransition_abvwl"), "run", "idle", SubResource("AnimationNodeStateMachineTransition_njhnd"), "ready_idle", "idle", SubResource("AnimationNodeStateMachineTransition_0jr6v"), "wide_swing_right", "leap", SubResource("AnimationNodeStateMachineTransition_5bea6"), "leap", "jump_strike", SubResource("AnimationNodeStateMachineTransition_c0vxo"), "leap", "ready_idle", SubResource("AnimationNodeStateMachineTransition_akn3p"), "wide_swing_left", "wide_swing_right", SubResource("AnimationNodeStateMachineTransition_vapos"), "run", "falling", SubResource("AnimationNodeStateMachineTransition_txygb"), "falling", "idle", SubResource("AnimationNodeStateMachineTransition_yabrd"), "idle", "falling", SubResource("AnimationNodeStateMachineTransition_qyr5q"), "wide_swing_left", "special_spin_forward", SubResource("AnimationNodeStateMachineTransition_krlq6"), "special_spin_forward", "ready_idle", SubResource("AnimationNodeStateMachineTransition_d25mo"), "hurt", "idle", SubResource("AnimationNodeStateMachineTransition_g2wep")] graph_offset = Vector2(79.56456, -397.2635) [sub_resource type="BoxShape3D" id="BoxShape3D_1p07c"] size = Vector3(0.56225586, 1.7996826, 0.31640625) [sub_resource type="SphereShape3D" id="SphereShape3D_1p07c"] radius = 0.35 [sub_resource type="GDScript" id="GDScript_1p07c"] script/source = "extends SpringArm3D var camera : Vector2 = Vector2() func _ready(): rotate_y(get_parent().global_rotation.y) func _unhandled_input(event : InputEvent) -> void: if not $PlayerCamera.current: return if event.is_action(\"look_left\") or event.is_action(\"look_right\"): camera.x = Input.get_axis(\"look_right\", \"look_left\") elif event.is_action(\"look_up\") or event.is_action(\"look_down\"): camera.y = Input.get_axis(\"look_down\", \"look_up\") elif event is InputEventMouseMotion: rotate_camera((event as InputEventMouseMotion).screen_relative * Vector2(-0.0015, -0.0013)) func _physics_process(_delta : float): self.global_position = $\"..\".global_position + Vector3(0, 2, 0) func _process(delta : float): rotate_camera(Vector2(camera.x * 3., camera.y * 1.) * delta) self.global_position = $\"..\".global_position + Vector3(0, 2, 0) func rotate_camera(delta : Vector2): rotate_y(delta.x) if abs(rotation.x + delta.y) < PI/3: rotate_object_local(Vector3(1, 0, 0), delta.y) " [node name="PlayerBody" type="PlayerBody" unique_id=62983514] collision_layer = 8 collision_mask = 9 floor_snap_length = 0.3 platform_on_leave = 2 [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=838697170] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.949463, 0) shape = SubResource("CapsuleShape3D_5j0w6") debug_color = Color(0.6222333, 0.35313448, 1, 0.41960785) [node name="EffectsEmitter" type="Node3D" parent="." unique_id=729317530] script = SubResource("GDScript_yaurm") face_material = ExtResource("1_dj8sy") face_textures = Array[Texture2D]([ExtResource("2_vapos"), ExtResource("3_0qik6"), ExtResource("4_l45uo")]) hammer_glow_material = ExtResource("6_vapos") [node name="AnimationTree" type="AnimationTree" parent="." unique_id=1454038462] unique_name_in_owner = true root_node = NodePath("%AnimationTree/../character") root_motion_track = NodePath("character2/Skeleton3D:root") tree_root = SubResource("AnimationNodeStateMachine_yaurm") anim_player = NodePath("../character/AnimationPlayer") [node name="character" parent="." unique_id=1905563681 instance=ExtResource("1_yaurm")] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(1905563681, 331876289) index="2" unique_id=566409344] transform = Transform3D(-0.74619925, -0.6650274, 0.030413395, 0.6645052, -0.7468186, -0.026356531, 0.040241107, 0.0005426332, 0.99918985, 0.6361852, 2.0346472, -0.14206453) bone_name = "hammer_2" bone_idx = 18 [node name="DamageBox" type="DamageBox" parent="character/character2/Skeleton3D/BoneAttachment3D" unique_id=22655743] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.008875, 1.58642, -6.97582e-10) collision_layer = 0 collision_mask = 2 input_ray_pickable = false monitoring = false monitorable = false priority = 1 [node name="CollisionShape3D" type="CollisionShape3D" parent="character/character2/Skeleton3D/BoneAttachment3D/DamageBox" unique_id=1811455573] transform = Transform3D(1, -1.5126517e-06, -2.0972918e-06, 1.5126523e-06, 1, 2.4580334e-07, 2.0972914e-06, -2.4580652e-07, 1, -0.0016264915, -0.35644522, -0.027019724) shape = SubResource("BoxShape3D_1p07c") debug_color = Color(0.9976354, 0, 0.17166689, 0.41960785) [node name="SpringArm3D" type="SpringArm3D" parent="." unique_id=304394102] process_mode = 3 transform = Transform3D(-1, 2.48671e-09, -8.738735e-08, 0, 0.9995958, 0.028445452, 8.74228e-08, 0.028445452, -0.9995958, 0, 2, 0) top_level = true shape = SubResource("SphereShape3D_1p07c") spring_length = 3.5 script = SubResource("GDScript_1p07c") [node name="PlayerCamera" type="PlayerCamera" parent="SpringArm3D" unique_id=16637717] transform = Transform3D(1, 0, 0, 0, 0.98547, 0.16984826, 0, -0.16984826, 0.98547, 0, 0, 0) [node name="PlayerIdleState" type="PlayerIdleState" parent="." unique_id=151375109] process_mode = 3 [node name="PlayerRunState" type="PlayerRunState" parent="." unique_id=1199697280] process_mode = 3 [node name="PlayerFallState" type="PlayerFallState" parent="." unique_id=1253476548] [node name="SwingWideRight" type="PlayerBasicAttackState" parent="." unique_id=434134429 node_paths=PackedStringArray("hammer_model")] process_mode = 3 animation_name = "wide_swing_right" next_fast = NodePath("../SwingWideLeft") next_slow = NodePath("../LeapStrike") next_special_slow = NodePath("../SpinSpecial") trigger_slow_margin = 0.2 trigger_fast_margin = 0.3 hammer_model = NodePath("../character/character2/Skeleton3D/hammer") hammer_attack_outline = ExtResource("7_0qik6") [node name="SwingWideLeft" type="PlayerBasicAttackState" parent="." unique_id=258424615 node_paths=PackedStringArray("hammer_model")] process_mode = 3 animation_name = "wide_swing_left" next_fast = NodePath("../SwingWideRight") next_slow = NodePath("../SwingWideRight") trigger_slow_margin = 0.15 trigger_fast_margin = 0.15 hammer_model = NodePath("../character/character2/Skeleton3D/hammer") hammer_attack_outline = ExtResource("7_0qik6") [node name="LeapStrike" type="PlayerBasicAttackState" parent="." unique_id=645711690 node_paths=PackedStringArray("hammer_model")] animation_name = "leap" next_special_slow = NodePath("../JumpStrike") input_slow_margin = 0.5 trigger_fast_margin = 0.0 hammer_model = NodePath("../character/character2/Skeleton3D/hammer") hammer_attack_outline = ExtResource("7_0qik6") [node name="JumpStrike" type="PlayerSpecialAttackState" parent="." unique_id=946298191 node_paths=PackedStringArray("hammer_model")] process_mode = 3 animation_name = "jump_strike" hammer_model = NodePath("../character/character2/Skeleton3D/hammer") hammer_attack_outline = ExtResource("6_vapos") meter_cost = 0.5 [node name="SpinSpecial" type="PlayerSpecialAttackState" parent="." unique_id=321391911 node_paths=PackedStringArray("hammer_model")] animation_name = "special_spin_forward" hammer_model = NodePath("../character/character2/Skeleton3D/hammer") hammer_attack_outline = ExtResource("6_vapos") meter_cost = 1.0 [node name="PlayerHurtState" type="PlayerHurtState" parent="." unique_id=1727354929] [editable path="character"]