diff --git a/graphics/enemy/boss/scrump.png b/graphics/enemy/boss/scrump.png new file mode 100644 index 0000000..94b9db4 Binary files /dev/null and b/graphics/enemy/boss/scrump.png differ diff --git a/graphics/enemy/boss/scrump.png.import b/graphics/enemy/boss/scrump.png.import new file mode 100644 index 0000000..5305916 --- /dev/null +++ b/graphics/enemy/boss/scrump.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/scrump.png-20a0f13e9fd578f74222e8fcfeadea9c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/enemy/boss/scrump.png" +dest_files=[ "res://.import/scrump.png-20a0f13e9fd578f74222e8fcfeadea9c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/level_data.tscn b/level_data.tscn index 7f5800b..bf939c6 100644 --- a/level_data.tscn +++ b/level_data.tscn @@ -34,9 +34,9 @@ save_id = "mountain" scene = ExtResource( 6 ) [sub_resource type="Resource" id=6] -resource_name = "VS Boss1" +resource_name = "VS The Scrump" script = ExtResource( 5 ) -title = "VS Boss1" +title = "VS The Scrump" shard_titles = [ "-w-", "owo", "uwu", "o3o", "5 Rainbow Stars", "Collection Bonus", "Time Bonus", "Life Bonus" ] save_id = "Boss1" scene = ExtResource( 8 ) diff --git a/maps/boss/boss1_arena.tscn b/maps/boss/boss1_arena.tscn index 545a26e..3d250a6 100644 --- a/maps/boss/boss1_arena.tscn +++ b/maps/boss/boss1_arena.tscn @@ -40,7 +40,7 @@ __meta__ = { tile_set = ExtResource( 5 ) cell_size = Vector2( 8, 8 ) format = 1 -tile_data = PoolIntArray( 851972, 0, 65536, 851973, 0, 65538, 851974, 0, 65538, 1114122, 0, 65536, 1114123, 0, 65537, 1114124, 0, 65537, 1114125, 0, 65538, 1310723, 0, 65536, 1310724, 0, 65537, 1310725, 0, 65537, 1310726, 0, 65537, 1310727, 0, 65537, 1310728, 0, 65537, 1310729, 0, 65537, 1310730, 0, 65537, 1310731, 0, 65537, 1310732, 0, 65537, 1310733, 0, 65537, 1310734, 0, 65537, 1310735, 0, 65537, 1310736, 0, 65537, 1310737, 0, 65537, 1310738, 0, 65537, 1310739, 0, 65537, 1310740, 0, 65538 ) +tile_data = PoolIntArray( 720907, 0, 65536, 720908, 0, 65537, 720909, 0, 65538, 851972, 0, 65536, 851973, 0, 65538, 851974, 0, 65538, 1114122, 0, 65536, 1114123, 0, 65537, 1114124, 0, 65537, 1114125, 0, 65538, 1310723, 0, 65536, 1310724, 0, 65537, 1310725, 0, 65537, 1310726, 0, 65537, 1310727, 0, 65537, 1310728, 0, 65537, 1310729, 0, 65537, 1310730, 0, 65537, 1310731, 0, 65537, 1310732, 0, 65537, 1310733, 0, 65537, 1310734, 0, 65537, 1310735, 0, 65537, 1310736, 0, 65537, 1310737, 0, 65537, 1310738, 0, 65537, 1310739, 0, 65537, 1310740, 0, 65538 ) [node name="Ladder" type="TileMap" parent="."] tile_set = ExtResource( 5 ) @@ -60,15 +60,6 @@ arrow_spawns = [ Vector2( 92, 128 ), Vector2( 40, 96 ), Vector2( 96, 80 ) ] [node name="TurningPlatform" parent="." instance=ExtResource( 9 )] position = Vector2( 72, 144 ) -[node name="TurningPlatform3" parent="." instance=ExtResource( 9 )] -position = Vector2( 88, 88 ) - -[node name="TurningPlatform4" parent="." instance=ExtResource( 9 )] -position = Vector2( 96, 88 ) - -[node name="TurningPlatform5" parent="." instance=ExtResource( 9 )] -position = Vector2( 104, 88 ) - [node name="TurningPlatform2" parent="." instance=ExtResource( 9 )] position = Vector2( 112, 144 ) diff --git a/objects/enemy/boss/boss1.gd b/objects/enemy/boss/boss1.gd index 9b97f9e..39b66eb 100644 --- a/objects/enemy/boss/boss1.gd +++ b/objects/enemy/boss/boss1.gd @@ -6,9 +6,11 @@ var hp = 3 var arrow_speed = 80 export var phase2_speed = 100 export var phase3_speed = 150 -const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn") +const projectile = preload("res://objects/enemy/boss/boss1_projectile.tscn") const arrow_pickup = preload("res://objects/collectibles/arrow.tscn") onready var shoot_timer = $ShootTimer +onready var shootpoint = $Position2D +onready var map = get_owner() var shoot_time = Vector2(0.4,0.7) export var arrow_spawns = [Vector2(0,0),Vector2(0,0),Vector2(0,0)] @@ -16,16 +18,7 @@ func _ready(): seed(hash("HEROMARK2")) func shoot(): - var arrow = ArrowProjectile.instance() - arrow.global_position = Vector2( - global_position.x + $Position2D.position.x, - stepify(global_position.y + $Position2D.position.y,8) - ) - arrow.direction = -1 - arrow.breaks_on_wall = false - arrow.target_group = "player" - arrow.speed = arrow_speed - get_owner().add_child(arrow) + Game.instance_node(projectile,global_position.x + shootpoint.position.x,stepify(global_position.y + shootpoint.position.y,8),map) func _on_ShootTimer_timeout(): shoot_timer.start(rand_range(shoot_time.x,shoot_time.y)) diff --git a/objects/enemy/boss/boss1.tscn b/objects/enemy/boss/boss1.tscn index 3c1cc22..ac9587e 100644 --- a/objects/enemy/boss/boss1.tscn +++ b/objects/enemy/boss/boss1.tscn @@ -1,18 +1,13 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=5 format=2] +[ext_resource path="res://graphics/enemy/boss/scrump.png" type="Texture" id=1] [ext_resource path="res://objects/enemy/boss/boss1.gd" type="Script" id=2] [sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 12, 8 ) +extents = Vector2( 5.5, 9.5 ) [sub_resource type="RectangleShape2D" id=2] -extents = Vector2( 16, 12 ) - -[sub_resource type="RectangleShape2D" id=3] -extents = Vector2( 16, 4 ) - -[sub_resource type="RectangleShape2D" id=4] -extents = Vector2( 8, 8 ) +extents = Vector2( 20, 27 ) [node name="Boss1" type="Node2D"] script = ExtResource( 2 ) @@ -20,6 +15,7 @@ move_direction = 1 flip_sprite = false [node name="Sprite" type="ColorRect" parent="."] +visible = false margin_left = 8.0 margin_right = 40.0 margin_bottom = 40.0 @@ -55,36 +51,32 @@ color = Color( 0.27451, 0.796078, 0.756863, 1 ) [node name="WeakSpot" type="Area2D" parent="." groups=["boss_weakspot", "enemy_hitbox"]] [node name="CollisionShape2D" type="CollisionShape2D" parent="WeakSpot"] -position = Vector2( 12, 16 ) +position = Vector2( 5.5, 14.5 ) shape = SubResource( 1 ) [node name="Hitbox" type="Area2D" parent="." groups=["blocks_arrow", "enemy_hitbox"]] [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] -position = Vector2( 24, 36 ) +position = Vector2( 32, 32 ) shape = SubResource( 2 ) -[node name="CollisionShape2D2" type="CollisionShape2D" parent="Hitbox"] -position = Vector2( 24, 4 ) -shape = SubResource( 3 ) - -[node name="CollisionShape2D3" type="CollisionShape2D" parent="Hitbox"] -position = Vector2( 32, 16 ) -shape = SubResource( 4 ) - [node name="ShootTimer" type="Timer" parent="."] wait_time = 0.5 one_shot = true autostart = true [node name="Position2D" type="Position2D" parent="."] -position = Vector2( 8, 32 ) +position = Vector2( 14, 29 ) [node name="ArrowSpawnTimer" type="Timer" parent="."] wait_time = 5.0 one_shot = true autostart = true +[node name="Sprite2" type="Sprite" parent="."] +position = Vector2( 26, 27 ) +texture = ExtResource( 1 ) + [connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] [connection signal="timeout" from="ShootTimer" to="." method="_on_ShootTimer_timeout"] [connection signal="timeout" from="ArrowSpawnTimer" to="." method="_on_ArrowSpawnTimer_timeout"] diff --git a/objects/enemy/boss/boss1_projectile.gd b/objects/enemy/boss/boss1_projectile.gd new file mode 100644 index 0000000..98b4e00 --- /dev/null +++ b/objects/enemy/boss/boss1_projectile.gd @@ -0,0 +1,5 @@ +extends "res://objects/enemy/enemy.gd" + + +func _physics_process(delta): + position.x -= 80 * delta diff --git a/objects/enemy/boss/boss1_projectile.tscn b/objects/enemy/boss/boss1_projectile.tscn new file mode 100644 index 0000000..40db155 --- /dev/null +++ b/objects/enemy/boss/boss1_projectile.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://objects/enemy/boss/boss1_projectile.gd" type="Script" id=1] + +[node name="Boss1Projectile" type="Node2D"] +script = ExtResource( 1 ) + +[node name="ColorRect" type="ColorRect" parent="."] +margin_right = 8.0 +margin_bottom = 8.0 +color = Color( 1, 0, 0, 1 ) diff --git a/objects/enemy/enemy_climber.gd b/objects/enemy/enemy_climber.gd deleted file mode 100644 index 9289230..0000000 --- a/objects/enemy/enemy_climber.gd +++ /dev/null @@ -1,15 +0,0 @@ -extends "res://objects/enemy/enemy.gd" - -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" - - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -#func _process(delta): -# pass