enabled enforced static typing
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
extends CharacterBody3D
|
||||
class_name EnemyController
|
||||
|
||||
signal reached_goal(enemy, penalty)
|
||||
signal died(enemy)
|
||||
signal reached_goal(enemy: Enemy, penalty: int)
|
||||
signal died(enemy: Enemy)
|
||||
|
||||
@export var stats: Enemy
|
||||
@export var status_manager: StatusEffector
|
||||
@ -12,8 +12,8 @@ signal died(enemy)
|
||||
@export var corpse_scene: PackedScene
|
||||
|
||||
var movement_speed: float
|
||||
var movement_speed_penalty := 1.0
|
||||
var alive = true
|
||||
var movement_speed_penalty: float = 1.0
|
||||
var alive: bool = true
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@ -24,22 +24,22 @@ func _ready() -> void:
|
||||
movement_speed = stats.movement_speed
|
||||
|
||||
|
||||
func damage(amount):
|
||||
func damage(amount: float) -> void:
|
||||
$Hitbox.damage(amount)
|
||||
|
||||
|
||||
func goal_entered():
|
||||
func goal_entered() -> void:
|
||||
if alive:
|
||||
alive = false
|
||||
reached_goal.emit(stats, stats.penalty)
|
||||
queue_free()
|
||||
|
||||
|
||||
func die():
|
||||
func die() -> void:
|
||||
if alive:
|
||||
alive = false
|
||||
died.emit(stats)
|
||||
var corpse = corpse_scene.instantiate()
|
||||
var corpse: RigidBody3D = corpse_scene.instantiate()
|
||||
corpse.set_sprite(stats.death_sprite)
|
||||
corpse.position = global_position
|
||||
Game.level.corpses.add_child(corpse)
|
||||
|
66
Worlds/GreenPlanet/Enemies/land_enemy.tscn-CAde9Q
Normal file
66
Worlds/GreenPlanet/Enemies/land_enemy.tscn-CAde9Q
Normal file
@ -0,0 +1,66 @@
|
||||
[gd_scene load_steps=15 format=3 uid="uid://b0nady5xm88bo"]
|
||||
|
||||
[ext_resource type="Script" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_fwsjt"]
|
||||
[ext_resource type="Script" path="res://Scripts/hitbox.gd" id="2_j8yin"]
|
||||
[ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_o7jmg"]
|
||||
[ext_resource type="Script" path="res://Scripts/health.gd" id="2_swu53"]
|
||||
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_y7h25"]
|
||||
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="3_naknq"]
|
||||
[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_tn1tu"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_f8btv"]
|
||||
[ext_resource type="Script" path="res://Scripts/EnemyAI/pathing_controller.gd" id="10_gljle"]
|
||||
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="10_or8n6"]
|
||||
[ext_resource type="Script" path="res://Scripts/StatusEffector.gd" id="10_txouh"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_21dgw"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_o3ikr"]
|
||||
resource_local_to_scene = true
|
||||
atlas = ExtResource("3_naknq")
|
||||
region = Rect2(0, 0, 32, 32)
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_4tj6k"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
|
||||
[node name="Dog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "health", "sprite") groups=["Enemies"]]
|
||||
collision_layer = 4
|
||||
collision_mask = 3
|
||||
script = ExtResource("1_fwsjt")
|
||||
status_manager = NodePath("StatusEffector")
|
||||
movement_controller = NodePath("PathingController")
|
||||
health = NodePath("Health")
|
||||
sprite = NodePath("DirectionSprite")
|
||||
corpse_scene = ExtResource("2_y7h25")
|
||||
|
||||
[node name="Health" type="Node" parent="."]
|
||||
script = ExtResource("2_swu53")
|
||||
damage_particle_scene = ExtResource("4_tn1tu")
|
||||
|
||||
[node name="Hitbox" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.527022, 0)
|
||||
shape = SubResource("SphereShape3D_21dgw")
|
||||
script = ExtResource("2_j8yin")
|
||||
|
||||
[node name="DirectionSprite" parent="." instance=ExtResource("2_o7jmg")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.642479, 0)
|
||||
pixel_size = 0.04
|
||||
texture = SubResource("AtlasTexture_o3ikr")
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0)
|
||||
sorting_offset = 1.0
|
||||
pixel_size = 0.02
|
||||
billboard = 1
|
||||
texture_filter = 0
|
||||
texture = SubResource("ViewportTexture_4tj6k")
|
||||
|
||||
[node name="Sprite3D2" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0)
|
||||
layers = 4
|
||||
texture_filter = 0
|
||||
texture = ExtResource("9_f8btv")
|
||||
|
||||
[node name="StatusEffector" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.18114, 0)
|
||||
script = ExtResource("10_txouh")
|
||||
hbox = Object(HBoxContainer,"_import_path":NodePath(""),"unique_name_in_owner":false,"process_mode":0,"process_priority":0,"process_physics_priority":0,"process_thread_group":0,"editor_description":"","visible":true,"modulate":Color(1, 1, 1, 1),"self_modulate":Color(1, 1, 1, 1),"show_behind_parent":false,"top_level":false,"clip_children":0,"light_mask":1,"visibility_layer":1,"z_index":0,"z_as_relative":true,"y_sort_enabled":false,"texture_filter":0,"texture_repeat":0,"material":null,"use_parent_material":false,"clip_contents":false,"custom_minimum_size":Vector2(0, 0),"layout_direction":0,"layout_mode":3,"anchors_preset":10,"anchor_left":0.0,"anchor_top":0.0,"anchor_right":1.0,"anchor_bottom":0.0,"offset_left":0.0,"offset_top":0.0,"offset_right":0.0,"offset_bottom":32.0,"grow_horizontal":2,"grow_vertical":1,"rotation":0.0,"scale":Vector2(1, 1),"pivot_offset":Vector2(0, 0),"size_flags_horizontal":1,"size_flags_vertical":1,"size_flags_stretch_ratio":1.0,"auto_translate":true,"localize_numeral_system":true,"tooltip_text":"","focus_neighbor_left":NodePath(""),
|
0
Worlds/GreenPlanet/Enemies/land_enemy.tscn-GE2YKs
Normal file
0
Worlds/GreenPlanet/Enemies/land_enemy.tscn-GE2YKs
Normal file
0
Worlds/GreenPlanet/Enemies/land_enemy.tscn-OVZSsZ
Normal file
0
Worlds/GreenPlanet/Enemies/land_enemy.tscn-OVZSsZ
Normal file
Reference in New Issue
Block a user