urinal goes zoom
This commit is contained in:
parent
3d1ef70baa
commit
aac5728643
@ -4,7 +4,7 @@ extends CharacterBody2D
|
|||||||
@export var ACCELERATION = 1000.0;
|
@export var ACCELERATION = 1000.0;
|
||||||
@export var FRICTION = 1500.0;
|
@export var FRICTION = 1500.0;
|
||||||
@export var HP = 100;
|
@export var HP = 100;
|
||||||
@export var DAMAGE = 34;
|
@export var DAMAGE = 10;
|
||||||
@export var COOLDOWN = 2;
|
@export var COOLDOWN = 2;
|
||||||
|
|
||||||
@onready var raycast = $RayCast2D;
|
@onready var raycast = $RayCast2D;
|
||||||
|
@ -31,6 +31,7 @@ shape = SubResource("RectangleShape2D_47nt3")
|
|||||||
target_position = Vector2(35, 0)
|
target_position = Vector2(35, 0)
|
||||||
|
|
||||||
[node name="Line2D" type="Line2D" parent="RayCast2D"]
|
[node name="Line2D" type="Line2D" parent="RayCast2D"]
|
||||||
|
visible = false
|
||||||
points = PackedVector2Array(0, 0, 35, 0)
|
points = PackedVector2Array(0, 0, 35, 0)
|
||||||
width = 5.0
|
width = 5.0
|
||||||
default_color = Color(1, 0, 0, 0.392157)
|
default_color = Color(1, 0, 0, 0.392157)
|
||||||
|
59
Enemies/urinal_mimic.gd
Normal file
59
Enemies/urinal_mimic.gd
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
@export var MAX_SPEED = 500.0;
|
||||||
|
@export var ACCELERATION = 1000.0;
|
||||||
|
@export var FRICTION = 1500.0;
|
||||||
|
@export var HP = 1;
|
||||||
|
@export var DAMAGE = 25;
|
||||||
|
@export var COOLDOWN = 10;
|
||||||
|
|
||||||
|
@onready var raycast = $RayCast2D;
|
||||||
|
@onready var cooldown_timer = $CooldownTimer;
|
||||||
|
@onready var sprite = $AnimatedSprite2D;
|
||||||
|
|
||||||
|
var player = null;
|
||||||
|
var is_on_cooldown = false;
|
||||||
|
var attacking = false;
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
add_to_group("enemies");
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
if player == null || !attacking:
|
||||||
|
return
|
||||||
|
|
||||||
|
var vec_to_player = player.global_position - global_position;
|
||||||
|
vec_to_player = vec_to_player.normalized();
|
||||||
|
raycast.rotation = atan2(vec_to_player.y,vec_to_player.x);
|
||||||
|
velocity = velocity.move_toward(vec_to_player * MAX_SPEED,ACCELERATION*delta);
|
||||||
|
move_and_slide();
|
||||||
|
|
||||||
|
if raycast.is_colliding():
|
||||||
|
var coll = raycast.get_collider();
|
||||||
|
if coll.name == "Player":
|
||||||
|
attack(coll);
|
||||||
|
|
||||||
|
func attack(collider):
|
||||||
|
collider.take_damage(DAMAGE);
|
||||||
|
kill()
|
||||||
|
|
||||||
|
func take_damage(damage):
|
||||||
|
HP = HP - damage;
|
||||||
|
if HP <= 0:
|
||||||
|
kill();
|
||||||
|
|
||||||
|
func kill():
|
||||||
|
queue_free();
|
||||||
|
|
||||||
|
func set_player(p):
|
||||||
|
player = p;
|
||||||
|
|
||||||
|
func _on_cooldown_timer_timeout():
|
||||||
|
is_on_cooldown = false;
|
||||||
|
|
||||||
|
func _on_area_2d_body_entered(body):
|
||||||
|
if body.name == "Player":
|
||||||
|
sprite.play("default");
|
||||||
|
|
||||||
|
func _on_animated_sprite_2d_animation_finished():
|
||||||
|
attacking = true;
|
103
Enemies/urinal_mimic.tscn
Normal file
103
Enemies/urinal_mimic.tscn
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
[gd_scene load_steps=14 format=3 uid="uid://p7aa6t787b3d"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Enemies/urinal_mimic.gd" id="1_2ga4k"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://clw15m8cxj22p" path="res://Sprites/Urinol.png" id="2_3n7wy"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://t2d8ft40y5c0" path="res://Sprites/Urinol_MIMIC.png" id="3_fjxqr"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_rqcqj"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(0, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_hcf1j"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(64, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_smam5"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(128, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_mvcd5"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(192, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_uyisr"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(256, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_r27p5"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(320, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_qbor8"]
|
||||||
|
atlas = ExtResource("3_fjxqr")
|
||||||
|
region = Rect2(384, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_e70cb"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2_3n7wy")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_rqcqj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_hcf1j")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_smam5")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_mvcd5")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_uyisr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_r27p5")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_qbor8")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_jn4wv"]
|
||||||
|
size = Vector2(23, 21)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_0y76e"]
|
||||||
|
radius = 120.037
|
||||||
|
|
||||||
|
[node name="urinal_mimic" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_2ga4k")
|
||||||
|
|
||||||
|
[node name="RayCast2D" type="RayCast2D" parent="."]
|
||||||
|
target_position = Vector2(30, 0)
|
||||||
|
|
||||||
|
[node name="Line2D" type="Line2D" parent="RayCast2D"]
|
||||||
|
visible = false
|
||||||
|
points = PackedVector2Array(0, 0, 30, 0)
|
||||||
|
width = 4.0
|
||||||
|
default_color = Color(0.752941, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(0, 21)
|
||||||
|
frames = SubResource("SpriteFrames_e70cb")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0.5, -0.5)
|
||||||
|
shape = SubResource("RectangleShape2D_jn4wv")
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 2
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
shape = SubResource("CircleShape2D_0y76e")
|
||||||
|
|
||||||
|
[node name="CooldownTimer" type="Timer" parent="."]
|
||||||
|
|
||||||
|
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_finished"]
|
||||||
|
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Godot.NET.Sdk/4.0.0-beta">
|
<Project Sdk="Godot.NET.Sdk/4.0.0-beta.12">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
|
7
GameJam-Vanier.csproj.old.2
Normal file
7
GameJam-Vanier.csproj.old.2
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<Project Sdk="Godot.NET.Sdk/4.0.0-beta">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
|
<RootNamespace>GameJamVanier</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
@ -18,6 +18,8 @@ animations = [{
|
|||||||
size = Vector2(40, 64)
|
size = Vector2(40, 64)
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody2D"]
|
[node name="Player" type="CharacterBody2D"]
|
||||||
|
collision_layer = 3
|
||||||
|
collision_mask = 3
|
||||||
script = ExtResource("1_mbyc2")
|
script = ExtResource("1_mbyc2")
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
BIN
Sprites/Urinol.png
Normal file
BIN
Sprites/Urinol.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 635 B |
34
Sprites/Urinol.png.import
Normal file
34
Sprites/Urinol.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://clw15m8cxj22p"
|
||||||
|
path="res://.godot/imported/Urinol.png-3d48a5dd6a4ef8c95cb84ee41f232b9e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Sprites/Urinol.png"
|
||||||
|
dest_files=["res://.godot/imported/Urinol.png-3d48a5dd6a4ef8c95cb84ee41f232b9e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
BIN
Sprites/Urinol_MIMIC.png
Normal file
BIN
Sprites/Urinol_MIMIC.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
34
Sprites/Urinol_MIMIC.png.import
Normal file
34
Sprites/Urinol_MIMIC.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://t2d8ft40y5c0"
|
||||||
|
path="res://.godot/imported/Urinol_MIMIC.png-edbfaed3e6aa9e657a1159072b3b4576.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Sprites/Urinol_MIMIC.png"
|
||||||
|
dest_files=["res://.godot/imported/Urinol_MIMIC.png-edbfaed3e6aa9e657a1159072b3b4576.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://xev8p1td1icx" path="res://Player/player.tscn" id="1_51g8b"]
|
[ext_resource type="PackedScene" uid="uid://xev8p1td1icx" path="res://Player/player.tscn" id="1_51g8b"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3y4rna66nylu" path="res://TileSets/Tiles Set GameJam.png" id="2_xwre6"]
|
[ext_resource type="Texture2D" uid="uid://d3y4rna66nylu" path="res://TileSets/Tiles Set GameJam.png" id="2_xwre6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c661br4lh30r8" path="res://Enemies/basic_enemy.tscn" id="3_e1d3p"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bbg5x0apue0ei" path="res://PickableItems/pickable_t_shirt.tscn" id="4_5egyc"]
|
[ext_resource type="PackedScene" uid="uid://bbg5x0apue0ei" path="res://PickableItems/pickable_t_shirt.tscn" id="4_5egyc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://degce2jvx3sli" path="res://PickableItems/pickable_shoes.tscn" id="5_4b36u"]
|
[ext_resource type="PackedScene" uid="uid://degce2jvx3sli" path="res://PickableItems/pickable_shoes.tscn" id="5_4b36u"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://p7aa6t787b3d" path="res://Enemies/urinal_mimic.tscn" id="5_sfqul"]
|
||||||
|
|
||||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_aemot"]
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_aemot"]
|
||||||
resource_name = "Test"
|
resource_name = "Test"
|
||||||
@ -140,29 +140,11 @@ position = Vector2(67.9902, 68.8737)
|
|||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"]
|
||||||
polygon = PackedVector2Array(409, 497, 687, 497, 687, 367, 1681, 367, 1683, 639, 1967, 643, 1963, 85, 415, 85)
|
polygon = PackedVector2Array(409, 497, 687, 497, 687, 367, 1681, 367, 1683, 639, 1967, 643, 1963, 85, 415, 85)
|
||||||
|
|
||||||
[node name="BasicEnemy" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(843, 709)
|
|
||||||
|
|
||||||
[node name="BasicEnemy2" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(1555, 856)
|
|
||||||
|
|
||||||
[node name="BasicEnemy3" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(1034, 520)
|
|
||||||
|
|
||||||
[node name="BasicEnemy4" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(774, -108)
|
|
||||||
|
|
||||||
[node name="BasicEnemy5" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(1383, -193)
|
|
||||||
|
|
||||||
[node name="BasicEnemy6" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(948, 660)
|
|
||||||
|
|
||||||
[node name="BasicEnemy7" parent="." instance=ExtResource("3_e1d3p")]
|
|
||||||
position = Vector2(1322, 618)
|
|
||||||
|
|
||||||
[node name="pickable_t_shirt" parent="." instance=ExtResource("4_5egyc")]
|
[node name="pickable_t_shirt" parent="." instance=ExtResource("4_5egyc")]
|
||||||
position = Vector2(172, 127)
|
position = Vector2(172, 127)
|
||||||
|
|
||||||
[node name="shoes" parent="." instance=ExtResource("5_4b36u")]
|
[node name="shoes" parent="." instance=ExtResource("5_4b36u")]
|
||||||
position = Vector2(51, 155)
|
position = Vector2(51, 155)
|
||||||
|
|
||||||
|
[node name="urinal_mimic" parent="." instance=ExtResource("5_sfqul")]
|
||||||
|
position = Vector2(704, 372)
|
||||||
|
Loading…
Reference in New Issue
Block a user