diff --git a/BadLaser.gd b/BadLaser.gd index cd1f4b4..f2683f8 100644 --- a/BadLaser.gd +++ b/BadLaser.gd @@ -37,6 +37,7 @@ func _on_Visibility_screen_exited(): func _ready(): connect("area_entered", self, "hit") $Rotatable.rotation_degrees = -90 + func hit(who): @@ -51,7 +52,8 @@ func _process(delta): emit_signal("dead", 100) if independent: queue_free() - if position.x < -100: + + if position.x < -100 && independent: emit_signal("dead", 0) queue_free() @@ -100,18 +102,21 @@ func _process(delta): if velocity.length() > 0: velocity = velocity.normalized() * SPEED - - var health_bar = Vector2(((health * 3.75) - 750), -1100) - $Line2D.set_point_position( 1, health_bar ) if independent == true: #print(independent) position += velocity * delta + var health_bar = Vector2(((health * 3.75) - 750), -1100) + $Line2D.set_point_position( 1, health_bar ) + else: + $Line2D.visible = false + health = 99999 func shoot(): - var laser = Laser.instance() - get_node("../").add_child(laser) - laser.friendly_laser = false - laser.rotation_degrees = 180 - laser.position.y = position.y - 5 - laser.position.x = position.x - 95 \ No newline at end of file + if $AnimatedSprite.frame != 1: + var laser = Laser.instance() + get_node("../").add_child(laser) + laser.friendly_laser = false + laser.rotation_degrees = 180 + laser.position.y = position.y - 5 + laser.position.x = position.x - 95 \ No newline at end of file diff --git a/BadLaser.tscn b/BadLaser.tscn index dbb9c9e..eb1465c 100644 --- a/BadLaser.tscn +++ b/BadLaser.tscn @@ -30,7 +30,7 @@ animations = [ { custom_solver_bias = 0.0 radius = 867.264 -[node name="BadLaser" type="Area2D" groups=[ +[node name="BadLaser" type="Area2D" index="0" groups=[ "enemies", ]] diff --git a/Brows.gd b/Brows.gd new file mode 100644 index 0000000..6ce3cdd --- /dev/null +++ b/Brows.gd @@ -0,0 +1,36 @@ +extends Node2D + +var speed_multiplier = 3 +var move_down = true +var start +var right_start +var left_start + +func _ready(): + start = position.y + right_start = $Right.position.x + left_start = $Left.position.x + +func _process(delta): + wobble(delta) + + +func wobble(delta): + if position.y - start > 2: + move_down = false + if position.y - start <= -2: + move_down = true + + if abs(position.y - start) > 2: + speed_multiplier = 1 + elif abs(position.y - start) > 1.5: + speed_multiplier = 1 + elif abs(position.y - start) > 1: + speed_multiplier = 2 + elif abs(position.y - start) <= 1: + speed_multiplier = 3 + + if move_down: + position.y += delta*speed_multiplier + else: + position.y -= delta*speed_multiplier \ No newline at end of file diff --git a/Image Sources/bad1_base.png.import b/Image Sources/bad1_base.png.import index c0a6f7e..8ee10e5 100644 --- a/Image Sources/bad1_base.png.import +++ b/Image Sources/bad1_base.png.import @@ -7,10 +7,7 @@ path="res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex" [deps] source_file="res://Image Sources/bad1_base.png" -source_md5="213d4aa052568df0122b9ded2dcc26e4" - dest_files=[ "res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex" ] -dest_md5="b168ff927a8cde23902c047241ab0b74" [params] diff --git a/Laser.tscn b/Laser.tscn index 2f81b5c..77491d6 100644 --- a/Laser.tscn +++ b/Laser.tscn @@ -19,7 +19,7 @@ animations = [ { "speed": 20.0 } ] -[node name="Laser" type="Area2D" index="0"] +[node name="Laser" type="Area2D"] z_as_relative = false input_pickable = true diff --git a/Main.gd b/Main.gd index ce0ff3e..72801d7 100644 --- a/Main.gd +++ b/Main.gd @@ -74,15 +74,15 @@ func rounds(round_number): # health, time, bad1s, badblobs, badlasers, badprisons match round_number: 1: - roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,5,0,0,0) # default - #roundOfEnemies(0.1,DEFAULT_SPAWN_SPEED,1,0,0,0) +# roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,5,0,0,0) # default + roundOfEnemies(0.1,DEFAULT_SPAWN_SPEED,1,0,0,0) rpc("set_wave_name", "Wave 1: Learning to fly") 2: - roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,4,1,0,0) - #if get_tree().is_network_server() == true: - # rpc("bossMode", 0) - #else: - #bossMode(2) + #roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,4,1,0,0) + if get_tree().is_network_server() == true: + rpc("bossMode", 2) + else: + bossMode(2) rpc("set_wave_name", "Wave 2: Any colour you like") 3: roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,8,2,0,0) @@ -498,4 +498,7 @@ func _on_Player_buy_turret(id, turret_position): add_child(turret) turret.position = turret_position turret.scale.x = 0.25 - turret.scale.y = 0.25 \ No newline at end of file + turret.scale.y = 0.25 + +func _exit_tree(): + print("EXITING AND STUFF") \ No newline at end of file diff --git a/Main.tscn b/Main.tscn index 6b7d621..d4ad283 100644 --- a/Main.tscn +++ b/Main.tscn @@ -238,6 +238,7 @@ max_lines_visible = -1 stream = ExtResource( 17 ) volume_db = 0.0 +pitch_scale = 1.0 autoplay = false mix_target = 0 bus = "Master" @@ -260,10 +261,10 @@ bus = "Master" [connection signal="other_shooting_upgrade" from="Player" to="." method="other_shooting_upgrade"] -[connection signal="restart_game" from="Player" to="." method="_on_Player_restart_game"] - [connection signal="restart_game" from="Player" to="Mothership" method="_on_Player_restart_game"] +[connection signal="restart_game" from="Player" to="." method="_on_Player_restart_game"] + [connection signal="start_next_round" from="Player" to="." method="startNextRound"] [connection signal="update_display" from="Player" to="." method="updatePoints"] diff --git a/MainMenu.tscn b/MainMenu.tscn index 717c291..265e53d 100644 --- a/MainMenu.tscn +++ b/MainMenu.tscn @@ -33,7 +33,7 @@ animations = [ { "speed": 5.0 } ] -[node name="Node" type="Node"] +[node name="Node" type="Node" index="0"] pause_mode = 2 script = ExtResource( 1 ) @@ -50,6 +50,7 @@ animation = "default" stream = ExtResource( 3 ) volume_db = 0.0 +pitch_scale = 1.0 autoplay = false mix_target = 0 bus = "Master" @@ -87,7 +88,7 @@ shortcut = null group = null flat = true align = 1 -_sections_unfolded = [ "Material", "Visibility" ] +_sections_unfolded = [ "Material", "Visibility", "custom_styles" ] [node name="Menubutton" type="AnimatedSprite" parent="." index="4"] diff --git a/Menus/InherentTurretMenu.gd b/Menus/InherentTurretMenu.gd new file mode 100644 index 0000000..04b75f5 --- /dev/null +++ b/Menus/InherentTurretMenu.gd @@ -0,0 +1,96 @@ +# +# Copyright (C) 2018 Sage Vaillancourt, sagev9000@gmail.com +# +# This file is part of Fronter. +# +# Fronter is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Fronter is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Fronter. If not, see . +# + +extends Node + +signal menu_closed +signal change_color +signal buy_turret +signal turret_range_upgrade +signal turret_damage_upgrade +signal turret_speed_upgrade + +var screensize + +const DEFAULT_TURRET_COST = 0#1000 + +const TIER_COST = {2:1000, 3:4000, 4:10000, 5:0} + +func _ready(): + $ColorRect.color = Color(0,0,0,.8) + + if get_parent().has_method("upgradeTurret"): + $BuyTurret.visible = false + + $Back.visible = false + $BuyTurret.visible = false + $Accept.visible = true + if get_parent().has_method("upgradeTurret") != true: + pass + else: + $Upgrade/Button.text = str("Upgrade: $", TIER_COST[get_parent().tier+1]) + if get_parent().tier >= 4: + $Upgrade/Button.visible = false + +func _input(event): + pass + +var velocity = Vector2() +func _process(delta): + if (Input.is_action_pressed("ui_quit")): + get_tree().quit() + #if Input.is_action_pressed("ui_accept"): + # _on_Button_pressed() + + if get_parent().has_method("upgradeTurret") == true: + $Upgrade.visible = true + +func _on_Button_pressed(): + queue_free() + +func backButton(): + queue_free() + +#var newTurret +#func buyTurret(): +# if get_parent().money >= DEFAULT_TURRET_COST: + #var turret = preload("res://Turret.tscn").instance() + #turret.set_name(turret.get_name()) + #newTurret = turret.get_name() + #pass + +func acceptTurret(): + if get_parent().has_method("upgradeTurret") == true: + queue_free() + else: + get_tree().paused = false + #get_parent().has_turret = true + $Accept.visible = false + $Back.visible = true + queue_free() + +func upgradeTurret(): + get_tree().paused = false + if get_parent().get_parent().get_node("Player").makePurchaseFor(TIER_COST[get_parent().tier+1]): + get_parent().upgradeTurret() + get_parent().relayUpgrade() + if get_parent().tier >= 4: + $Upgrade/Button.visible = false + else: + $Upgrade/Button.text = str("Upgrade: $", TIER_COST[get_parent().tier+1]) diff --git a/Menus/InherentTurretMenu.tscn b/Menus/InherentTurretMenu.tscn new file mode 100644 index 0000000..6913a77 --- /dev/null +++ b/Menus/InherentTurretMenu.tscn @@ -0,0 +1,224 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://Menus/InherentTurretMenu.gd" type="Script" id=1] +[ext_resource path="res://art/multiplayer_menu/back.png" type="Texture" id=2] +[ext_resource path="res://art/upgrade_menu/buyturrets.png" type="Texture" id=3] +[ext_resource path="res://art/multiplayer_menu/checkmark.png" type="Texture" id=4] + +[sub_resource type="SpriteFrames" id=1] + +animations = [ { +"frames": [ ExtResource( 2 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="SpriteFrames" id=2] + +animations = [ { +"frames": [ ExtResource( 3 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="SpriteFrames" id=3] + +animations = [ { +"frames": [ ExtResource( 4 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[node name="InherentTurretMenu" type="Node"] + +pause_mode = 2 +script = ExtResource( 1 ) +_sections_unfolded = [ "Pause" ] + +[node name="ColorRect" type="ColorRect" parent="." index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 1026.0 +margin_bottom = 605.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +color = Color( 0, 0, 0, 1 ) +_sections_unfolded = [ "Visibility" ] + +[node name="Back" type="Node2D" parent="." index="1"] + +editor/display_folded = true +position = Vector2( 50, 240 ) +scale = Vector2( 0.5, 0.5 ) +z_index = 2 +z_as_relative = false +_sections_unfolded = [ "Transform", "Z Index" ] +__meta__ = { +"_edit_group_": true +} + +[node name="Icon" type="AnimatedSprite" parent="Back" index="0"] + +position = Vector2( 190, 530 ) +frames = SubResource( 1 ) +animation = "default" + +[node name="Button" type="Button" parent="Back" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 450.0 +margin_right = 300.0 +margin_bottom = 600.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +flat = true +align = 1 + +[node name="BuyTurret" type="Node2D" parent="." index="2"] + +editor/display_folded = true +visible = false +position = Vector2( 190, 140 ) +scale = Vector2( 0.25, 0.25 ) +z_index = 2 +_sections_unfolded = [ "Transform", "Z Index" ] +__meta__ = { +"_edit_group_": true +} + +[node name="Icon" type="AnimatedSprite" parent="BuyTurret" index="0"] + +position = Vector2( 190, 530 ) +frames = SubResource( 2 ) +animation = "default" + +[node name="Button" type="Button" parent="BuyTurret" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = -360.0 +margin_top = 80.0 +margin_right = 720.0 +margin_bottom = 960.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +flat = true +align = 1 + +[node name="Accept" type="Node2D" parent="." index="3"] + +editor/display_folded = true +visible = false +position = Vector2( 820, 240 ) +scale = Vector2( 0.5, 0.5 ) +_sections_unfolded = [ "Transform" ] +__meta__ = { +"_edit_group_": true +} + +[node name="Icon" type="AnimatedSprite" parent="Accept" index="0"] + +position = Vector2( 190, 530 ) +frames = SubResource( 3 ) +animation = "default" + +[node name="Button" type="Button" parent="Accept" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 96.0 +margin_top = 412.0 +margin_right = 296.0 +margin_bottom = 612.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +flat = true +align = 1 + +[node name="Upgrade" type="Node2D" parent="." index="4"] + +visible = false +position = Vector2( 0, 181 ) + +[node name="Button" type="Button" parent="Upgrade" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 430.0 +margin_top = 50.0 +margin_right = 640.0 +margin_bottom = 200.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +text = "Upgrade" +flat = false +align = 1 + +[node name="Icon" type="AnimatedSprite" parent="Upgrade" index="1"] + +animation = "default" + +[connection signal="pressed" from="Back/Button" to="." method="backButton"] + +[connection signal="pressed" from="BuyTurret/Button" to="." method="buyTurret"] + +[connection signal="pressed" from="Accept/Button" to="." method="acceptTurret"] + +[connection signal="pressed" from="Upgrade/Button" to="." method="upgradeTurret"] + + diff --git a/Menus/libera.png.import b/Menus/libera.png.import index 6e47404..1e0f81f 100644 --- a/Menus/libera.png.import +++ b/Menus/libera.png.import @@ -7,10 +7,7 @@ path="res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex" [deps] source_file="res://Menus/libera.png" -source_md5="00701d88cfcda352f723d70fb0702120" - dest_files=[ "res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex" ] -dest_md5="5f4bfcdaac174d11b54b43fcdadc19c1" [params] diff --git a/Menus/opens_externally.png.import b/Menus/opens_externally.png.import index 63868b5..1000f16 100644 --- a/Menus/opens_externally.png.import +++ b/Menus/opens_externally.png.import @@ -7,10 +7,7 @@ path="res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex" [deps] source_file="res://Menus/opens_externally.png" -source_md5="d23b6f95a6ca1835ac0312b14fab474a" - dest_files=[ "res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex" ] -dest_md5="4ebafbbd5a5a35cf7fea6e797c3beee6" [params] diff --git a/Menus/patreon.png.import b/Menus/patreon.png.import index 9881a0e..1497205 100644 --- a/Menus/patreon.png.import +++ b/Menus/patreon.png.import @@ -7,10 +7,7 @@ path="res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex" [deps] source_file="res://Menus/patreon.png" -source_md5="55cd2ca600d821740fb657f6d1c6c924" - dest_files=[ "res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex" ] -dest_md5="4ec18b0428236e338a96d00a8b65afa7" [params] diff --git a/Player.gd b/Player.gd index eada1b1..19faaf1 100644 --- a/Player.gd +++ b/Player.gd @@ -74,7 +74,8 @@ const LASER_PENETRATION_DICT = {1:0,2:1,3:2,4:3,5:5} const STARTING_POSITION = Vector2(130, 250) # the amount of money the player starts with -const STARTING_MONEY = 0100000 +#const STARTING_MONEY = 0 +const STARTING_MONEY = 100000 # cost to unlock turrets const UNLOCK_TURRETS_COST = 1000 @@ -229,6 +230,7 @@ func doubleLaserUpgrade(): if money >= DOUBLE_LASER_COST && double_laser == false: money -= DOUBLE_LASER_COST double_laser = true + $Gunner2.visible = true # tell other players to enable doubles for you rpc("double_laser_upgrade", get_tree().get_network_unique_id()) @@ -356,6 +358,7 @@ func _refund_button(): changeColor(Color(1,1,1,1)) shooting_speed_upgrade = SHOOTING_SPEED_UPGRADE_DEFAULT money += ship_value*refund_percentage + $Gunner2.visible = false prints("Refunded ", ship_value*refund_percentage) ship_value = 0 emit_signal("update_display") @@ -461,8 +464,8 @@ func shoot(): if double_laser == true: var laser2 = Laser.instance() get_node("../").add_child(laser2) - laser2.position.y = position.y + 28 - laser2.position.x = position.x + 46 + laser2.position.y = position.y + 31 + laser2.position.x = position.x + 50 laser2.current_pen = laser_penetration laser2.damage = laser_damage diff --git a/Player.tscn b/Player.tscn index 975c8ae..1167bb2 100644 --- a/Player.tscn +++ b/Player.tscn @@ -1,14 +1,15 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://Player.gd" type="Script" id=1] [ext_resource path="res://Laser.tscn" type="PackedScene" id=2] -[ext_resource path="res://art/player/Rocket1.png" type="Texture" id=3] -[ext_resource path="res://art/player/Rocket2.png" type="Texture" id=4] +[ext_resource path="res://art/player/laserer2.png" type="Texture" id=3] +[ext_resource path="res://art/player/Rocket1.png" type="Texture" id=4] +[ext_resource path="res://art/player/Rocket2.png" type="Texture" id=5] [sub_resource type="SpriteFrames" id=1] animations = [ { -"frames": [ ExtResource( 3 ), ExtResource( 4 ) ], +"frames": [ ExtResource( 4 ), ExtResource( 5 ) ], "loop": true, "name": "default", "speed": 15.0 @@ -36,7 +37,15 @@ script = ExtResource( 1 ) _sections_unfolded = [ "Collision", "Z Index" ] Laser = ExtResource( 2 ) -[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"] +[node name="Gunner2" type="Sprite" parent="." index="0"] + +visible = false +position = Vector2( 0, 7 ) +scale = Vector2( 0.2, 0.2 ) +texture = ExtResource( 3 ) +_sections_unfolded = [ "Transform" ] + +[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="1"] position = Vector2( 1.01175, 7.07602 ) scale = Vector2( 0.2, 0.2 ) @@ -44,14 +53,14 @@ frames = SubResource( 1 ) animation = "default" _sections_unfolded = [ "Transform" ] -[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="2"] position = Vector2( 5.85673, 1.31631 ) rotation = 1.5708 shape = SubResource( 2 ) _sections_unfolded = [ "Material", "Transform", "Visibility", "Z Index" ] -[node name="Timer" type="Timer" parent="." index="2"] +[node name="Timer" type="Timer" parent="." index="3"] process_mode = 1 wait_time = 0.02 diff --git a/RectangleBoss.gd b/RectangleBoss.gd index 6f3609f..ead6f09 100644 --- a/RectangleBoss.gd +++ b/RectangleBoss.gd @@ -66,27 +66,7 @@ func _process(delta): if position.x > 0: position.x -= delta*((100+(position.x))/10) - #### BIG WOBBLE #### - if position.y > 4: - move_down = false - if position.y <= -4: - move_down = true - - if abs(position.y) > 4: - speed_multiplier = 1 - elif abs(position.y) > 3: - speed_multiplier = 1 - elif abs(position.y) > 2: - speed_multiplier = 2 - elif abs(position.y) <= 2: - speed_multiplier = 3 - - if move_down: - if health > 1000: - position.y += delta*speed_multiplier - else: - if health > 1000: - position.y -= delta*speed_multiplier + wobble(delta) if health < -1*(starting_health/10) && $Inside/InsideBadSprite.rotation_degrees < 180: $Inside/InsideBadSprite.rotation_degrees += delta*20 @@ -120,7 +100,6 @@ func _process(delta): emit_signal("flash") $OutsideBottomCollision.disabled = true $OutsideTopCollision.disabled = true - prints("flash") flashed = true #queue_free() @@ -186,6 +165,28 @@ func updateOutsideSprite(): slave func bossHealth(host_health): health = host_health +func wobble(delta): + if position.y > 4: + move_down = false + if position.y <= -4: + move_down = true + + if abs(position.y) > 4: + speed_multiplier = 1 + elif abs(position.y) > 3: + speed_multiplier = 1 + elif abs(position.y) > 2: + speed_multiplier = 2 + elif abs(position.y) <= 2: + speed_multiplier = 3 + + if move_down: + if health > 1000: + position.y += delta*speed_multiplier + else: + if health > 1000: + position.y -= delta*speed_multiplier + var top_laser = true func shoot(): var laser = Laser.instance() diff --git a/RectangleBoss.tscn b/RectangleBoss.tscn index 9b31ba1..0178274 100644 --- a/RectangleBoss.tscn +++ b/RectangleBoss.tscn @@ -125,6 +125,7 @@ shape = SubResource( 4 ) stream = ExtResource( 23 ) volume_db = 4.0 +pitch_scale = 1.0 autoplay = true mix_target = 0 bus = "Master" diff --git a/RectangleReturn.gd b/RectangleReturn.gd index 515d64a..f493608 100644 --- a/RectangleReturn.gd +++ b/RectangleReturn.gd @@ -6,54 +6,137 @@ signal boss_health var right_laser_alive = true var left_laser_alive = true +var move_left = true +var move_down = true + +var speed_multiplier = 3 + +var fight_started = false + func _ready(): speed = 0 - starting_health = 3000 + position.x = 1200 + starting_health = 2800 health = starting_health - $RightArm/Laser/BadLaser.independent = false - #$RightArm/BadLaser.health_multi = 3 - $LeftArm/Laser/BadLaser.independent = false - #$LeftArm/BadLaser.health_multi = 3 - $RightArm/Laser/BadLaser.fire_speed = 25 - $LeftArm/Laser/BadLaser.fire_speed = 25 - $RightArm/Laser/BadLaser/Rotatable.rotation_degrees = -45 + $RightArm/BadLaser.independent = false + $RightArm/BadLaser.health_multi = 5 + $LeftArm/BadLaser.independent = false + $LeftArm/BadLaser.health_multi = 5 + $RightArm/BadLaser.fire_speed = 0 + $LeftArm/BadLaser.fire_speed = 0 + $RightArm/BadLaser/Rotatable.rotation_degrees = -45 + +# $RightArm/BadLaser.health = 10 +# $LeftArm/BadLaser.health = 10 pass func _process(delta): #$RightArm/Forearm.rotate(delta/10) +# print(health) + wobble(delta) +# print(position.x) + + if position.x < 903: + move_left = false +# health -= 25*delta + if !fight_started: + $LeftArm/AnimationPlayer.play("block") + $RightArm/AnimationPlayer.play("block") + fight_started = true + + if move_left: + position.x -= delta*20 + + if $LeftArm/AnimationPlayer.assigned_animation == "retract" && $LeftArm/AnimationPlayer.current_animation != "retract": + $RightArm/BadLaser.fire_speed = 50 + $LeftArm/BadLaser.fire_speed = 50 + + if health <= 2000: + if $LeftArm/AnimationPlayer.assigned_animation != "blockL" && $LeftArm/AnimationPlayer.assigned_animation != "spinoff": + $LeftArm/AnimationPlayer.play("blockL") + if $RightArm/AnimationPlayer.assigned_animation != "blockL" && $RightArm/AnimationPlayer.assigned_animation != "spinoff": + $RightArm/AnimationPlayer.play("blockL") + $RightArm/AnimationPlayer.seek(0.5) + if health <= 2500 && health > 2000: + if $LeftArm/AnimationPlayer.assigned_animation != "retract": + $LeftArm/AnimationPlayer.play("retract") + if $RightArm/AnimationPlayer.assigned_animation != "retract": + $RightArm/AnimationPlayer.play("retract") + +# health -= delta*100 + if right_laser_alive: - if $RightArm/Laser/BadLaser: - #$RightArm/Laser/BadLaser.health -= delta*30 - if $RightArm/Laser/BadLaser.health <= 100: - $RightArm/Laser/BadLaser.fire_speed = 150 - else: - $RightArm/Laser/BadLaser/AnimatedSprite.frame = 1 - $RightArm/Laser/BadLaser.fire_speed = 0 - $RightArm/Laser/BadLaser/Line2D.visible = false - + if $RightArm/BadLaser: +# $RightArm/BadLaser.health -= delta*30 + if $RightArm/BadLaser.health <= 100: + $RightArm/BadLaser.fire_speed = 150 + elif $RightArm/BadLaser/AnimatedSprite.frame != 1: + $RightArm/AnimationPlayer.play("spinoff") + $RightArm/BadLaser/AnimatedSprite.frame = 1 + $RightArm/BadLaser.fire_speed = 0 + $RightArm/BadLaser/Line2D.visible = false + if left_laser_alive: - if $LeftArm/Laser/BadLaser: - #$LeftArm/Laser/BadLaser.health -= delta*30 - if $LeftArm/Laser/BadLaser.health <= 100: - $LeftArm/Laser/BadLaser.fire_speed = 150 - else: - $LeftArm/Laser/BadLaser.fire_speed = 0 - $LeftArm/Laser/BadLaser/AnimatedSprite.frame = 1 - $LeftArm/Laser/BadLaser/Line2D.visible = false + if $LeftArm/BadLaser: +# $LeftArm/BadLaser.health -= delta*30 + if $LeftArm/BadLaser.health <= 100: + $LeftArm/BadLaser.fire_speed = 150 + elif $LeftArm/BadLaser/AnimatedSprite.frame != 1: + $LeftArm/AnimationPlayer.play("spinoff") + $LeftArm/BadLaser.fire_speed = 0 + $LeftArm/BadLaser/AnimatedSprite.frame = 1 + $LeftArm/BadLaser/Line2D.visible = false func hit(who): - health -= who.damage/(health_multi*3.5) - print(health) + if fight_started: + health -= who.damage/(health_multi*3.5) + print("Rectangle Return: ", health) + if get_tree().is_network_server(): + rpc("bossHealth", health) + emit_signal("boss_health", health, starting_health) + +func _on_LeftBadLaser_dead(money): + if left_laser_alive: + left_laser_alive = false + +func _on_RightBadLaser_dead(money): + if right_laser_alive: + right_laser_alive = false + +func normalFireSpeed(): +# $RightArm/BadLaser.fire_speed = 25 +# $LeftArm/BadLaser.fire_speed = 25 + $RightArm/BadLaser.fire_speed = 10 + $LeftArm/BadLaser.fire_speed = 10 if get_tree().is_network_server(): rpc("bossHealth", health) emit_signal("boss_health", health, starting_health) -func _on_LeftBadLaser_dead(money): - left_laser_alive = false +func wobble(delta): + if position.y - 305 > 4: + move_down = false + if position.y - 305 <= -4: + move_down = true + + if abs(position.y - 305) > 4: + speed_multiplier = 1 + elif abs(position.y - 305) > 3: + speed_multiplier = 1 + elif abs(position.y - 305) > 2: + speed_multiplier = 2 + elif abs(position.y - 305) <= 2: + speed_multiplier = 3 + + if move_down: + if health > 1000: + position.y += delta*speed_multiplier + else: + if health > 1000: + position.y -= delta*speed_multiplier -func _on_RightBadLaser_dead(money): - right_laser_alive = false +func flash(): + emit_signal("flash") func _exit_tree(): - $LeftArm/Laser/BadLaser.queue_free() - $RightArm/Laser/BadLaser.queue_free() \ No newline at end of file + $LeftArm/BadLaser.queue_free() + $RightArm/BadLaser.queue_free() \ No newline at end of file diff --git a/RectangleReturn.tscn b/RectangleReturn.tscn index d42becb..b29214e 100644 --- a/RectangleReturn.tscn +++ b/RectangleReturn.tscn @@ -1,17 +1,23 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=29 format=2] [ext_resource path="res://Bad.tscn" type="PackedScene" id=1] [ext_resource path="res://RectangleReturn.gd" type="Script" id=2] [ext_resource path="res://art/bad/rectangle/rectangle_inside.png" type="Texture" id=3] [ext_resource path="res://BadLaser.tscn" type="PackedScene" id=4] [ext_resource path="res://art/bad/rectangle/return_arm.png" type="Texture" id=5] +[ext_resource path="res://Brows.gd" type="Script" id=6] +[ext_resource path="res://art/bad/rectangle/rectangle_Lbrow1.png" type="Texture" id=7] +[ext_resource path="res://art/bad/rectangle/rectangle_Lbrow2.png" type="Texture" id=8] +[ext_resource path="res://art/bad/rectangle/rectangle_Rbrow1.png" type="Texture" id=9] +[ext_resource path="res://art/bad/rectangle/rectangle_Rbrow2.png" type="Texture" id=10] +[ext_resource path="res://boss_long_minor_key.ogg" type="AudioStream" id=11] -[sub_resource type="RectangleShape2D" id=4] +[sub_resource type="RectangleShape2D" id=1] custom_solver_bias = 0.0 extents = Vector2( 10, 3.75228 ) -[sub_resource type="SpriteFrames" id=3] +[sub_resource type="SpriteFrames" id=2] animations = [ { "frames": [ ExtResource( 3 ) ], @@ -20,39 +26,850 @@ animations = [ { "speed": 5.0 } ] -[sub_resource type="RectangleShape2D" id=1] +[sub_resource type="RectangleShape2D" id=3] custom_solver_bias = 0.0 extents = Vector2( 43.4086, 153.113 ) -[sub_resource type="RectangleShape2D" id=2] +[sub_resource type="RectangleShape2D" id=4] custom_solver_bias = 0.0 extents = Vector2( 42.0251, 121.071 ) -[node name="RectangleReturn" index="0" instance=ExtResource( 1 )] +[sub_resource type="Animation" id=5] -position = Vector2( 509.277, -22.7974 ) +resource_name = "block" +length = 3.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("UpperArm:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -156.105, -225.587, -156.105 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("UpperArm:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 135.789, 104.27 ), Vector2( 40.4982, 117.566 ), Vector2( 135.789, 104.27 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Forearm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -104.155, 189.474 ), Vector2( 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Forearm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -73.8944, -135.086, -73.8944 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("BadLaser:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -111.911, 187.258 ), Vector2( 0, 0 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("BadLaser:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0 ] +} +tracks/6/type = "method" +tracks/6/path = NodePath("..") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "normalFireSpeed" +} ] +} + +[sub_resource type="Animation" id=6] + +resource_name = "blockL" +length = 3.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("UpperArm:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -156.105, -225.587, -156.105 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("UpperArm:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 135.789, 104.27 ), Vector2( 40.4982, 117.566 ), Vector2( 135.789, 104.27 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Forearm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -104.155, 189.474 ), Vector2( 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Forearm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -73.8944, -135.086, -73.8944 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("BadLaser:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -111.911, 187.258 ), Vector2( 0, 0 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("BadLaser:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0 ] +} + +[sub_resource type="Animation" id=7] + +resource_name = "nothing" +length = 1.0 +loop = false +step = 0.1 + +[sub_resource type="Animation" id=8] + +resource_name = "retract" +length = 2.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("Forearm:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -55.4017, 64.2659 ), Vector2( -36.5652, 58.7258 ), Vector2( 73.1301, -8.86422 ), Vector2( 75.3462, 130.748 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Forearm:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -73.8944, -96.9, -48.9595, -0.468192, -0.468192 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("BadLaser:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -67.5901, 66.482 ), Vector2( -44.3214, 62.0498 ), Vector2( 76.4542, -16.6205 ), Vector2( 83.1024, 86.4266 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("BadLaser:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0, 0.0, 0.0 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("UpperArm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 135.789, 104.27 ), Vector2( 89.2516, 97.6218 ), Vector2( 82.6034, 228.37 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("UpperArm:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -156.105, -180.983, -180.983 ] +} + +[sub_resource type="Animation" id=9] + +length = 1.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("UpperArm:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -156.105, -156.105 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("UpperArm:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 135.789, 104.27 ), Vector2( 135.789, 104.27 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Forearm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Forearm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -73.8944, -73.8944 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("BadLaser:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("BadLaser:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( ), +"transitions": PoolRealArray( ), +"update": 0, +"values": [ ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( ), +"transitions": PoolRealArray( ), +"update": 0, +"values": [ ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( ), +"transitions": PoolRealArray( ), +"update": 0, +"values": [ ] +} + +[sub_resource type="Animation" id=10] + +resource_name = "spinoff" +length = 4.5 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 1.5, 4.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( -90.7919, -225.366 ), Vector2( -118.551, -527.017 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 1.5, 4.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, -180.0 ] +} +tracks/2/type = "method" +tracks/2/path = NodePath("..") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "flash" +} ] +} + +[sub_resource type="Animation" id=11] + +length = 3.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("BadLaser:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 108, 123.999 ), Vector2( 21.5733, -46.6382 ), Vector2( 108, 123.999 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("BadLaser:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("UpperArm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 239.789, 33.2706 ), Vector2( 151.146, 32.1626 ), Vector2( 239.789, 33.2706 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("UpperArm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -383.248, -310.83, -383.248 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Forearm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 109, 125 ), Vector2( 11.4932, -35.6649 ), Vector2( 109, 125 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Forearm:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -100.093, -40.4669, -100.093 ] +} + +[sub_resource type="Animation" id=12] + +resource_name = "blockL" +length = 3.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("BadLaser:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 108, 123.999 ), Vector2( 21.5733, -46.6382 ), Vector2( 108, 123.999 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("BadLaser:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("UpperArm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 239.789, 33.2706 ), Vector2( 151.146, 32.1626 ), Vector2( 239.789, 33.2706 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("UpperArm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -383.248, -310.83, -383.248 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Forearm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 109, 125 ), Vector2( 11.4932, -35.6649 ), Vector2( 109, 125 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Forearm:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -100.093, -40.4669, -100.093 ] +} + +[sub_resource type="Animation" id=13] + +length = 2.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("UpperArm:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5, 1, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 239.789, 33.2706 ), Vector2( 196.576, 41.0269 ), Vector2( 186.604, -79.7487 ), Vector2( 186.604, -79.7487 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("UpperArm:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5, 1, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ -383.248, -360.2, -360.2, -360.2 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Forearm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 109, 125 ), Vector2( 38.0858, 68.4903 ), Vector2( 54.7063, 51.8698 ), Vector2( 195.593, 143.947 ), Vector2( 190.994, 31.9252 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Forearm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -100.093, -77.1, -110.0, -180.488, -180.656 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("BadLaser:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 108, 123.999 ), Vector2( 42.626, 65.2732 ), Vector2( 50.3822, 57.517 ), Vector2( 191.38, 131.977 ), Vector2( 189.995, 58.625 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("BadLaser:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 0.5, 1, 1.5, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0, 0.0, 0.0 ] +} + +[sub_resource type="Animation" id=14] + +length = 1.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("UpperArm:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 239.789, 33.2706 ), Vector2( 239.789, 33.2706 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("UpperArm:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -383.248, -383.248 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Forearm:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 109, 125 ), Vector2( 109, 125 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Forearm:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -100.093, -100.093 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("BadLaser:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 108, 123.999 ), Vector2( 108, 123.999 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("BadLaser:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0 ] +} + +[sub_resource type="Animation" id=15] + +resource_name = "spinoff" +length = 4.5 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5, 4.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -196.792, 102.632 ), Vector2( -196.792, 102.632 ), Vector2( -724.218, -670.927 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.5, 4.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 300.0 ] +} +tracks/2/type = "method" +tracks/2/path = NodePath("..") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "flash" +} ] +} + +[sub_resource type="SpriteFrames" id=16] + +animations = [ { +"frames": [ ExtResource( 7 ), ExtResource( 8 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="SpriteFrames" id=17] + +animations = [ { +"frames": [ ExtResource( 9 ), ExtResource( 10 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[node name="RectangleReturn" instance=ExtResource( 1 )] + +position = Vector2( 903.44, 308.229 ) script = ExtResource( 2 ) [node name="CollisionBox" parent="." index="0"] -position = Vector2( 368.307, 337.171 ) +position = Vector2( -7.48386, 9.80474 ) scale = Vector2( 5.63992, 25 ) -shape = SubResource( 4 ) +shape = SubResource( 1 ) _sections_unfolded = [ "Transform" ] +[node name="HealthBar" parent="." index="1"] + +position = Vector2( -375.791, -327.366 ) + [node name="MainSprite" parent="." index="2"] -position = Vector2( 371.998, 340.999 ) +position = Vector2( -3.79288, 13.6327 ) scale = Vector2( 0.2, 0.2 ) z_index = 1 -frames = SubResource( 3 ) +frames = SubResource( 2 ) _sections_unfolded = [ "Transform", "Z Index" ] -[node name="RightArm" type="Area2D" parent="." index="3"] +[node name="RightArm" type="Node2D" parent="." index="3"] -position = Vector2( 284.999, 102 ) +editor/display_folded = true +position = Vector2( -90.7919, -225.366 ) +_sections_unfolded = [ "Transform" ] + +[node name="BadLaser" parent="RightArm" index="0" instance=ExtResource( 4 )] + +position = Vector2( 0, 0 ) +z_index = 3 +SPEED = 0 + +[node name="Forearm" type="Area2D" parent="RightArm" index="1"] + +editor/display_folded = true +rotation = -1.2897 +scale = Vector2( 0.7, 0.7 ) input_pickable = true gravity_vec = Vector2( 0, 1 ) gravity = 98.0 @@ -60,126 +877,25 @@ linear_damp = 0.1 angular_damp = 1.0 audio_bus_override = false audio_bus_name = "Master" -_sections_unfolded = [ "Transform" ] - -[node name="PinJoint2D" type="PinJoint2D" parent="RightArm" index="0"] - -position = Vector2( 10.5514, 239.666 ) -node_a = NodePath("../Forearm") -node_b = NodePath("../UpperArm") -bias = 0.0 -disable_collision = true -softness = 0.0 - -[node name="Laser" type="RigidBody2D" parent="RightArm" index="1"] - -editor/display_folded = true -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 2 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 - -[node name="BadLaser" parent="RightArm/Laser" index="0" instance=ExtResource( 4 )] - -position = Vector2( 0.575623, 2.26275 ) -SPEED = 0 - -[node name="Forearm" type="RigidBody2D" parent="RightArm" index="2"] - -editor/display_folded = true -rotation = -1.2897 -scale = Vector2( 0.7, 0.7 ) -z_index = -2 -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 1 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 -_sections_unfolded = [ "Transform", "Z Index" ] +_sections_unfolded = [ "Collision", "Transform", "Z Index" ] [node name="Sprite" type="Sprite" parent="RightArm/Forearm" index="0"] position = Vector2( 2.44351, 136.022 ) scale = Vector2( 0.25, 0.25 ) texture = ExtResource( 5 ) -_sections_unfolded = [ "Transform" ] +_sections_unfolded = [ "Transform", "Visibility" ] [node name="CollisionShape2D" type="CollisionShape2D" parent="RightArm/Forearm" index="1"] position = Vector2( 4, 95 ) -shape = SubResource( 1 ) +shape = SubResource( 3 ) -[node name="UpperArm" type="RigidBody2D" parent="RightArm" index="3"] +[node name="UpperArm" type="Area2D" parent="RightArm" index="2"] editor/display_folded = true position = Vector2( 135.789, 104.27 ) rotation = -2.72455 -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 0 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 -_sections_unfolded = [ "Collision", "Transform" ] -__meta__ = { -"_edit_group_": true -} - -[node name="Sprite" type="Sprite" parent="RightArm/UpperArm" index="0"] - -scale = Vector2( 0.2, 0.2 ) -texture = ExtResource( 5 ) -_sections_unfolded = [ "Transform" ] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="RightArm/UpperArm" index="1"] - -position = Vector2( 0, -1 ) -scale = Vector2( 0.8, 0.8 ) -shape = SubResource( 2 ) -_sections_unfolded = [ "Transform" ] - -[node name="LeftArm" type="Area2D" parent="." index="4"] - -position = Vector2( 178.999, 429.998 ) input_pickable = true gravity_vec = Vector2( 0, 1 ) gravity = 98.0 @@ -187,126 +903,153 @@ linear_damp = 0.1 angular_damp = 1.0 audio_bus_override = false audio_bus_name = "Master" + +[node name="Sprite" type="Sprite" parent="RightArm/UpperArm" index="0"] + +position = Vector2( -6.10352e-05, 0 ) +rotation = -2.32831e-09 +scale = Vector2( 0.2, 0.2 ) +texture = ExtResource( 5 ) +_sections_unfolded = [ "Transform", "Visibility" ] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RightArm/UpperArm" index="1"] + +position = Vector2( 0, -1 ) +rotation = -2.32831e-09 +scale = Vector2( 0.8, 0.8 ) +shape = SubResource( 4 ) _sections_unfolded = [ "Transform" ] -[node name="PinJoint2D" type="PinJoint2D" parent="LeftArm" index="0"] +[node name="AnimationPlayer" type="AnimationPlayer" parent="RightArm" index="3"] -position = Vector2( 10.5514, 239.666 ) -node_a = NodePath("../Forearm") -node_b = NodePath("../UpperArm") -bias = 0.0 -disable_collision = true -softness = 0.0 +root_node = NodePath("..") +autoplay = "" +playback_process_mode = 1 +playback_default_blend_time = 1.5 +playback_speed = 1.0 +anims/block = SubResource( 5 ) +anims/blockL = SubResource( 6 ) +anims/nothing = SubResource( 7 ) +anims/retract = SubResource( 8 ) +anims/set = SubResource( 9 ) +anims/spinoff = SubResource( 10 ) +blend_times = [ ] +_sections_unfolded = [ "Playback Options" ] -[node name="Laser" type="RigidBody2D" parent="LeftArm" index="1"] +[node name="LeftArm" type="Node2D" parent="." index="4"] + +position = Vector2( -196.792, 102.632 ) +_sections_unfolded = [ "Transform" ] + +[node name="BadLaser" parent="LeftArm" index="0" instance=ExtResource( 4 )] position = Vector2( 108, 123.999 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 2 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 - -[node name="BadLaser" parent="LeftArm/Laser" index="0" instance=ExtResource( 4 )] - -position = Vector2( 0.575623, 2.26275 ) +z_index = 2 SPEED = 0 -[node name="Forearm" type="RigidBody2D" parent="LeftArm" index="2"] +[node name="Forearm" type="Area2D" parent="LeftArm" index="1"] editor/display_folded = true position = Vector2( 109, 125 ) -rotation = -1.74696 +rotation = -1.74695 scale = Vector2( 0.7, 0.7 ) -z_index = -2 -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 1 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 -_sections_unfolded = [ "Transform", "Z Index" ] +input_pickable = true +gravity_vec = Vector2( 0, 1 ) +gravity = 98.0 +linear_damp = 0.1 +angular_damp = 1.0 +audio_bus_override = false +audio_bus_name = "Master" +_sections_unfolded = [ "Collision", "Transform", "Z Index" ] [node name="Sprite" type="Sprite" parent="LeftArm/Forearm" index="0"] position = Vector2( 2.44351, 136.022 ) scale = Vector2( 0.25, 0.25 ) texture = ExtResource( 5 ) -_sections_unfolded = [ "Transform" ] +_sections_unfolded = [ "Transform", "Visibility" ] [node name="CollisionShape2D" type="CollisionShape2D" parent="LeftArm/Forearm" index="1"] position = Vector2( 4, 95 ) -shape = SubResource( 1 ) +shape = SubResource( 3 ) -[node name="UpperArm" type="RigidBody2D" parent="LeftArm" index="3"] +[node name="UpperArm" type="Area2D" parent="LeftArm" index="2"] editor/display_folded = true position = Vector2( 239.789, 33.2706 ) rotation = -6.68894 -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 0 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 -_sections_unfolded = [ "Transform", "Z Index" ] -__meta__ = { -"_edit_group_": true -} +input_pickable = true +gravity_vec = Vector2( 0, 1 ) +gravity = 98.0 +linear_damp = 0.1 +angular_damp = 1.0 +audio_bus_override = false +audio_bus_name = "Master" [node name="Sprite" type="Sprite" parent="LeftArm/UpperArm" index="0"] +rotation = 3.72529e-08 scale = Vector2( 0.2, 0.2 ) texture = ExtResource( 5 ) -_sections_unfolded = [ "Transform" ] +_sections_unfolded = [ "Transform", "Visibility" ] [node name="CollisionShape2D" type="CollisionShape2D" parent="LeftArm/UpperArm" index="1"] position = Vector2( 0, -1 ) +rotation = 3.72529e-08 scale = Vector2( 0.8, 0.8 ) -shape = SubResource( 2 ) +shape = SubResource( 4 ) _sections_unfolded = [ "Transform" ] -[connection signal="dead" from="RightArm/Laser/BadLaser" to="." method="_on_RightBadLaser_dead"] +[node name="AnimationPlayer" type="AnimationPlayer" parent="LeftArm" index="3"] -[connection signal="dead" from="LeftArm/Laser/BadLaser" to="." method="_on_LeftBadLaser_dead"] +root_node = NodePath("..") +autoplay = "" +playback_process_mode = 1 +playback_default_blend_time = 1.5 +playback_speed = 1.0 +anims/block = SubResource( 11 ) +anims/blockL = SubResource( 12 ) +anims/retract = SubResource( 13 ) +anims/set = SubResource( 14 ) +anims/spinoff = SubResource( 15 ) +blend_times = [ ] +_sections_unfolded = [ "Pause", "Playback Options" ] + +[node name="Brows" type="Node2D" parent="." index="5"] + +position = Vector2( -35.9241, -30.7458 ) +z_index = 1 +script = ExtResource( 6 ) +_sections_unfolded = [ "Z Index" ] + +[node name="Left" type="AnimatedSprite" parent="Brows" index="0"] + +position = Vector2( 0, 79.0333 ) +scale = Vector2( 0.2, 0.2 ) +frames = SubResource( 16 ) +animation = "default" +_sections_unfolded = [ "Transform" ] + +[node name="Right" type="AnimatedSprite" parent="Brows" index="1"] + +scale = Vector2( 0.2, 0.2 ) +frames = SubResource( 17 ) +animation = "default" +_sections_unfolded = [ "Transform" ] + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." index="6"] + +stream = ExtResource( 11 ) +volume_db = 0.0 +pitch_scale = 1.0 +autoplay = true +mix_target = 0 +bus = "Master" + +[connection signal="dead" from="RightArm/BadLaser" to="." method="_on_RightBadLaser_dead"] + +[connection signal="dead" from="LeftArm/BadLaser" to="." method="_on_LeftBadLaser_dead"] diff --git a/Turret.gd b/Turret.gd index fa3139c..3e6f76c 100644 --- a/Turret.gd +++ b/Turret.gd @@ -15,11 +15,13 @@ var tier = 1 const RANGE_TIER = {1:Vector2(30,30), 2:Vector2(40,40), 3:Vector2(50,50), 4:Vector2(60,60)} const DAMAGE_TIER = {1:15, 2:25, 3:50, 4:100} const RELOAD_TIER = {1:1.5, 2:1, 3:0.75, 4:0.5} -const ANIMATION_TIER = {1:"plain", 2:"spike", 3:"spike", 4:"spike"} +const ANIMATION_TIER = {1:"plain", 2:"point", 3:"spike", 4:"spike"} const ANIMATION_SCALE_TIER = {1:Vector2(.12,.12), 2:Vector2(.2,.2), 3:Vector2(.2,.2), 4:Vector2(.2,.2)} var enemy_count = 0 +export (PackedScene) var UMenu + func _ready(): $ReloadTimer.wait_time = RELOAD_TIER[tier] damage = DAMAGE_TIER[tier] @@ -81,7 +83,7 @@ func entityExitedRange(bad_id, bad, bad_shape, self_shape): current_bad_shape = null func _on_OpenMenuButton_pressed(): - var menu = preload("res://InherentTurretMenu.tscn").instance() + var menu = UMenu.instance() add_child(menu) menu.connect("turret_upgrade", self, "upgradeTurret") pass diff --git a/Turret.tscn b/Turret.tscn index eca0c30..320e5ae 100644 --- a/Turret.tscn +++ b/Turret.tscn @@ -1,11 +1,14 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://Turret.gd" type="Script" id=1] -[ext_resource path="res://art/turret/turret.png" type="Texture" id=2] -[ext_resource path="res://art/turret/shootin.png" type="Texture" id=3] -[ext_resource path="res://art/turret/turret2.png" type="Texture" id=4] -[ext_resource path="res://art/turret/shootin2.png" type="Texture" id=5] -[ext_resource path="res://art/hand-numbs.ttf" type="DynamicFontData" id=6] +[ext_resource path="res://Menus/InherentTurretMenu.tscn" type="PackedScene" id=2] +[ext_resource path="res://art/turret/turret1.5.png" type="Texture" id=3] +[ext_resource path="res://art/turret/shootin1.5.png" type="Texture" id=4] +[ext_resource path="res://art/turret/turret.png" type="Texture" id=5] +[ext_resource path="res://art/turret/shootin.png" type="Texture" id=6] +[ext_resource path="res://art/turret/turret2.png" type="Texture" id=7] +[ext_resource path="res://art/turret/shootin2.png" type="Texture" id=8] +[ext_resource path="res://art/hand-numbs.ttf" type="DynamicFontData" id=9] [sub_resource type="CircleShape2D" id=1] @@ -15,12 +18,17 @@ radius = 32.0821 [sub_resource type="SpriteFrames" id=2] animations = [ { -"frames": [ ExtResource( 2 ), ExtResource( 3 ) ], +"frames": [ ExtResource( 3 ), ExtResource( 4 ) ], +"loop": true, +"name": "point", +"speed": 5.0 +}, { +"frames": [ ExtResource( 5 ), ExtResource( 6 ) ], "loop": true, "name": "plain", "speed": 5.0 }, { -"frames": [ ExtResource( 4 ), ExtResource( 5 ) ], +"frames": [ ExtResource( 7 ), ExtResource( 8 ) ], "loop": true, "name": "spike", "speed": 5.0 @@ -31,13 +39,14 @@ animations = [ { size = 50 use_mipmaps = false use_filter = false -font_data = ExtResource( 6 ) +font_data = ExtResource( 9 ) _sections_unfolded = [ "Font", "Settings" ] -[node name="Turret" type="Node2D" index="0"] +[node name="Turret" type="Node2D"] script = ExtResource( 1 ) _sections_unfolded = [ "Material", "Pause", "Transform", "Visibility", "Z Index" ] +UMenu = ExtResource( 2 ) [node name="Beam" type="Line2D" parent="." index="0"] diff --git a/art/ColorSelect.png b/art/ColorSelect.png new file mode 100644 index 0000000..81e4ca3 Binary files /dev/null and b/art/ColorSelect.png differ diff --git a/art/backgrounds/SunBG.png b/art/backgrounds/SunBG.png new file mode 100644 index 0000000..ab640d4 Binary files /dev/null and b/art/backgrounds/SunBG.png differ diff --git a/art/backgrounds/orange.png b/art/backgrounds/orange.png new file mode 100644 index 0000000..a2b1395 Binary files /dev/null and b/art/backgrounds/orange.png differ diff --git a/art/bad/BlackHole/base.png b/art/bad/BlackHole/base.png new file mode 100644 index 0000000..4d461c6 Binary files /dev/null and b/art/bad/BlackHole/base.png differ diff --git a/art/bad/BlackHole/base_1.png b/art/bad/BlackHole/base_1.png new file mode 100644 index 0000000..6b41025 Binary files /dev/null and b/art/bad/BlackHole/base_1.png differ diff --git a/art/bad/BlackHole/base_2.png b/art/bad/BlackHole/base_2.png new file mode 100644 index 0000000..9da4cac Binary files /dev/null and b/art/bad/BlackHole/base_2.png differ diff --git a/art/bad/BlackHole/base_3.png b/art/bad/BlackHole/base_3.png new file mode 100644 index 0000000..48ce62d Binary files /dev/null and b/art/bad/BlackHole/base_3.png differ diff --git a/art/bad/BlackHole/base_4.png b/art/bad/BlackHole/base_4.png new file mode 100644 index 0000000..90bc686 Binary files /dev/null and b/art/bad/BlackHole/base_4.png differ diff --git a/art/bad/BlackHole/base_5.png b/art/bad/BlackHole/base_5.png new file mode 100644 index 0000000..ec41e34 Binary files /dev/null and b/art/bad/BlackHole/base_5.png differ diff --git a/art/bad/BlackHole/base_6.png b/art/bad/BlackHole/base_6.png new file mode 100644 index 0000000..ec5b8ef Binary files /dev/null and b/art/bad/BlackHole/base_6.png differ diff --git a/art/bad/BlackHole/half1.png b/art/bad/BlackHole/half1.png new file mode 100644 index 0000000..554952d Binary files /dev/null and b/art/bad/BlackHole/half1.png differ diff --git a/art/bad/BlackHole/half2.png b/art/bad/BlackHole/half2.png new file mode 100644 index 0000000..2c541a0 Binary files /dev/null and b/art/bad/BlackHole/half2.png differ diff --git a/art/bad/BlackHole/old/base.png b/art/bad/BlackHole/old/base.png new file mode 100644 index 0000000..0f6a670 Binary files /dev/null and b/art/bad/BlackHole/old/base.png differ diff --git a/art/bad/BlackHole/old/base_1.png b/art/bad/BlackHole/old/base_1.png new file mode 100644 index 0000000..81ef58f Binary files /dev/null and b/art/bad/BlackHole/old/base_1.png differ diff --git a/art/bad/BlackHole/old/base_2.png b/art/bad/BlackHole/old/base_2.png new file mode 100644 index 0000000..9556c56 Binary files /dev/null and b/art/bad/BlackHole/old/base_2.png differ diff --git a/art/bad/BlackHole/old/base_3.png b/art/bad/BlackHole/old/base_3.png new file mode 100644 index 0000000..3648092 Binary files /dev/null and b/art/bad/BlackHole/old/base_3.png differ diff --git a/art/bad/BlackHole/old/base_4.png b/art/bad/BlackHole/old/base_4.png new file mode 100644 index 0000000..04ae2b9 Binary files /dev/null and b/art/bad/BlackHole/old/base_4.png differ diff --git a/art/bad/BlackHole/old/base_5.png b/art/bad/BlackHole/old/base_5.png new file mode 100644 index 0000000..b0cc3da Binary files /dev/null and b/art/bad/BlackHole/old/base_5.png differ diff --git a/art/bad/BlackHole/old/base_6.png b/art/bad/BlackHole/old/base_6.png new file mode 100644 index 0000000..a1608a4 Binary files /dev/null and b/art/bad/BlackHole/old/base_6.png differ diff --git a/art/bad/BlackHole/old/half1.png b/art/bad/BlackHole/old/half1.png new file mode 100644 index 0000000..5ed7abe Binary files /dev/null and b/art/bad/BlackHole/old/half1.png differ diff --git a/art/bad/BlackHole/old/half2.png b/art/bad/BlackHole/old/half2.png new file mode 100644 index 0000000..17758b1 Binary files /dev/null and b/art/bad/BlackHole/old/half2.png differ diff --git a/art/bad/bad1/bad1.png b/art/bad/bad1/bad1.png new file mode 100644 index 0000000..e057217 Binary files /dev/null and b/art/bad/bad1/bad1.png differ diff --git a/art/bad/bad1/bad1_hit.png b/art/bad/bad1/bad1_hit.png new file mode 100644 index 0000000..113ff9f Binary files /dev/null and b/art/bad/bad1/bad1_hit.png differ diff --git a/art/bad/blob/bad_blob.png b/art/bad/blob/bad_blob.png new file mode 100644 index 0000000..5acb101 Binary files /dev/null and b/art/bad/blob/bad_blob.png differ diff --git a/art/bad/laser/bad_laser_bg.png b/art/bad/laser/bad_laser_bg.png new file mode 100644 index 0000000..11490ed Binary files /dev/null and b/art/bad/laser/bad_laser_bg.png differ diff --git a/art/bad/laser/bad_laser_broken.png b/art/bad/laser/bad_laser_broken.png new file mode 100644 index 0000000..deb98e1 Binary files /dev/null and b/art/bad/laser/bad_laser_broken.png differ diff --git a/art/bad/laser/bad_laser_rotatable.png b/art/bad/laser/bad_laser_rotatable.png new file mode 100644 index 0000000..901827d Binary files /dev/null and b/art/bad/laser/bad_laser_rotatable.png differ diff --git a/art/bad/laser/bad_laser_stationary.png b/art/bad/laser/bad_laser_stationary.png new file mode 100644 index 0000000..4d8fb88 Binary files /dev/null and b/art/bad/laser/bad_laser_stationary.png differ diff --git a/art/bad/prison/Prison.png b/art/bad/prison/Prison.png new file mode 100644 index 0000000..671368b Binary files /dev/null and b/art/bad/prison/Prison.png differ diff --git a/art/bad/prison/Star.png b/art/bad/prison/Star.png new file mode 100644 index 0000000..405205d Binary files /dev/null and b/art/bad/prison/Star.png differ diff --git a/art/bad/prison/StarSmile.png b/art/bad/prison/StarSmile.png new file mode 100644 index 0000000..6513b58 Binary files /dev/null and b/art/bad/prison/StarSmile.png differ diff --git a/art/bad/rectangle/rectangle_Lbrow1.png b/art/bad/rectangle/rectangle_Lbrow1.png new file mode 100644 index 0000000..f2053a9 Binary files /dev/null and b/art/bad/rectangle/rectangle_Lbrow1.png differ diff --git a/art/bad/rectangle/rectangle_Lbrow2.png b/art/bad/rectangle/rectangle_Lbrow2.png new file mode 100644 index 0000000..74cf102 Binary files /dev/null and b/art/bad/rectangle/rectangle_Lbrow2.png differ diff --git a/art/bad/rectangle/rectangle_Rbrow1.png b/art/bad/rectangle/rectangle_Rbrow1.png new file mode 100644 index 0000000..13d150e Binary files /dev/null and b/art/bad/rectangle/rectangle_Rbrow1.png differ diff --git a/art/bad/rectangle/rectangle_Rbrow2.png b/art/bad/rectangle/rectangle_Rbrow2.png new file mode 100644 index 0000000..8bbe96c Binary files /dev/null and b/art/bad/rectangle/rectangle_Rbrow2.png differ diff --git a/art/bad/rectangle/rectangle_inside.png b/art/bad/rectangle/rectangle_inside.png new file mode 100644 index 0000000..54055da Binary files /dev/null and b/art/bad/rectangle/rectangle_inside.png differ diff --git a/art/bad/rectangle/rectangle_inside_blank.png b/art/bad/rectangle/rectangle_inside_blank.png new file mode 100644 index 0000000..312d663 Binary files /dev/null and b/art/bad/rectangle/rectangle_inside_blank.png differ diff --git a/art/bad/rectangle/rectangle_inside_blink.png b/art/bad/rectangle/rectangle_inside_blink.png new file mode 100644 index 0000000..5dde007 Binary files /dev/null and b/art/bad/rectangle/rectangle_inside_blink.png differ diff --git a/art/bad/rectangle/rectangle_inside_fear.png b/art/bad/rectangle/rectangle_inside_fear.png new file mode 100644 index 0000000..171ab82 Binary files /dev/null and b/art/bad/rectangle/rectangle_inside_fear.png differ diff --git a/art/bad/rectangle/rectangle_inside_wince.png b/art/bad/rectangle/rectangle_inside_wince.png new file mode 100644 index 0000000..b606cb8 Binary files /dev/null and b/art/bad/rectangle/rectangle_inside_wince.png differ diff --git a/art/bad/rectangle/rectangle_outside.png b/art/bad/rectangle/rectangle_outside.png new file mode 100644 index 0000000..1155b35 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked1.png b/art/bad/rectangle/rectangle_outside_cracked1.png new file mode 100644 index 0000000..a7da1fd Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked1.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked10.png b/art/bad/rectangle/rectangle_outside_cracked10.png new file mode 100644 index 0000000..767c59f Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked10.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked11.png b/art/bad/rectangle/rectangle_outside_cracked11.png new file mode 100644 index 0000000..18d3e07 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked11.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked12.png b/art/bad/rectangle/rectangle_outside_cracked12.png new file mode 100644 index 0000000..a95994d Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked12.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked13.png b/art/bad/rectangle/rectangle_outside_cracked13.png new file mode 100644 index 0000000..1014ec1 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked13.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked14.png b/art/bad/rectangle/rectangle_outside_cracked14.png new file mode 100644 index 0000000..0b946ea Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked14.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked2.png b/art/bad/rectangle/rectangle_outside_cracked2.png new file mode 100644 index 0000000..5ecfa29 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked2.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked3.png b/art/bad/rectangle/rectangle_outside_cracked3.png new file mode 100644 index 0000000..a6177f1 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked3.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked4.png b/art/bad/rectangle/rectangle_outside_cracked4.png new file mode 100644 index 0000000..deb964f Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked4.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked5.png b/art/bad/rectangle/rectangle_outside_cracked5.png new file mode 100644 index 0000000..5d6bf79 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked5.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked6.png b/art/bad/rectangle/rectangle_outside_cracked6.png new file mode 100644 index 0000000..5610021 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked6.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked7.png b/art/bad/rectangle/rectangle_outside_cracked7.png new file mode 100644 index 0000000..5cd12cf Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked7.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked8.png b/art/bad/rectangle/rectangle_outside_cracked8.png new file mode 100644 index 0000000..39c1583 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked8.png differ diff --git a/art/bad/rectangle/rectangle_outside_cracked9.png b/art/bad/rectangle/rectangle_outside_cracked9.png new file mode 100644 index 0000000..3fb0c25 Binary files /dev/null and b/art/bad/rectangle/rectangle_outside_cracked9.png differ diff --git a/art/bad/rectangle/return_arm.png b/art/bad/rectangle/return_arm.png new file mode 100644 index 0000000..72a3287 Binary files /dev/null and b/art/bad/rectangle/return_arm.png differ diff --git a/art/bg.png b/art/bg.png new file mode 100644 index 0000000..2f64f7b Binary files /dev/null and b/art/bg.png differ diff --git a/art/drawn_bg1.png b/art/drawn_bg1.png new file mode 100644 index 0000000..c8bcbf5 Binary files /dev/null and b/art/drawn_bg1.png differ diff --git a/art/drawn_bg2.png b/art/drawn_bg2.png new file mode 100644 index 0000000..c8bd269 Binary files /dev/null and b/art/drawn_bg2.png differ diff --git a/art/gameover.png b/art/gameover.png new file mode 100644 index 0000000..0e24185 Binary files /dev/null and b/art/gameover.png differ diff --git a/art/hand-numbs.sfd b/art/hand-numbs.sfd new file mode 100644 index 0000000..072ddd8 --- /dev/null +++ b/art/hand-numbs.sfd @@ -0,0 +1,627 @@ +SplineFontDB: 3.0 +FontName: Untitled1 +FullName: Untitled1 +FamilyName: Untitled1 +Weight: Regular +Copyright: Copyright (c) 2018, Sage +UComments: "2018-6-23: Created with FontForge (http://fontforge.org)" +Version: 001.000 +ItalicAngle: 0 +UnderlinePosition: -100 +UnderlineWidth: 50 +Ascent: 800 +Descent: 200 +InvalidEm: 0 +LayerCount: 2 +Layer: 0 0 "Back" 1 +Layer: 1 0 "Fore" 0 +XUID: [1021 912 -219086254 5845647] +StyleMap: 0x0000 +FSType: 0 +OS2Version: 0 +OS2_WeightWidthSlopeOnly: 0 +OS2_UseTypoMetrics: 1 +CreationTime: 1529764691 +ModificationTime: 1529767606 +OS2TypoAscent: 0 +OS2TypoAOffset: 1 +OS2TypoDescent: 0 +OS2TypoDOffset: 1 +OS2TypoLinegap: 90 +OS2WinAscent: 0 +OS2WinAOffset: 1 +OS2WinDescent: 0 +OS2WinDOffset: 1 +HheadAscent: 0 +HheadAOffset: 1 +HheadDescent: 0 +HheadDOffset: 1 +MarkAttachClasses: 1 +DEI: 91125 +Encoding: ISO8859-1 +UnicodeInterp: none +NameList: AGL For New Fonts +DisplaySize: -48 +AntiAlias: 1 +FitToEm: 0 +WidthSeparation: 150 +WinInfo: 0 38 14 +BeginPrivate: 0 +EndPrivate +AnchorClass2: "hhh""" +BeginChars: 256 13 + +StartChar: A +Encoding: 65 65 0 +Width: 150 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +Validated: 1 +EndChar + +StartChar: zero +Encoding: 48 48 1 +Width: 649 +VWidth: 0 +Flags: HW +HStem: 47 118<297.936 415.761> 651 117<224.578 442.698> +VStem: 52 116<376.505 571.394> 475 118<302.688 611.105> +LayerCount: 2 +Fore +SplineSet +263 766 m 0 + 273 767 290 768 309 768 c 0 + 345 768 389 766 411 762 c 0 + 530 742 581 683 591 553 c 0 + 592 541 593 527 593 511 c 0 + 593 414 572 264 546 185 c 0 + 534 148 526 133 501 103 c 0 + 469 66 425 47 373 47 c 0 + 347 47 319 51 290 61 c 0 + 252 74 191 108 171 129 c 0 + 146 154 121 208 92 295 c 0 + 61 388 52 431 52 480 c 0 + 52 485 52 490 52 495 c 0 + 58 607 112 709 186 746 c 0 + 197 751 234 761 263 766 c 0 +409 643 m 0 + 391 648 341 651 307 651 c 0 + 296 651 287 651 281 650 c 0 + 223 641 205 624 182 551 c 0 + 173 525 168 504 168 481 c 0 + 168 445 180 404 205 329 c 0 + 236 237 247 215 269 204 c 0 + 278 200 290 192 296 188 c 0 + 314 176 351 165 374 165 c 0 + 395 165 398 166 411 180 c 0 + 429 200 439 227 453 299 c 0 + 468 380 471 410 474 483 c 0 + 474 496 475 508 475 519 c 0 + 475 568 470 593 459 612 c 0 + 449 628 438 635 409 643 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: one +Encoding: 49 49 2 +Width: 437 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +176 725 m 0 + 185 730 193 732 202 732 c 0 + 221 732 239 720 254 695 c 0 + 262 682 266 674 266 641 c 0 + 266 618 264 582 261 523 c 0 + 258 477 254 383 252 315 c 0 + 250 247 247 179 246 165 c 2 + 243 138 l 1 + 295 138 l 2 + 334 138 349 137 360 132 c 0 + 380 122 391 103 391 82 c 0 + 391 65 383 48 367 36 c 0 + 356 28 349 27 288 25 c 0 + 251 23 211 20 199 17 c 0 + 187 15 156 12 130 12 c 0 + 90 12 82 13 71 20 c 0 + 53 30 43 48 43 68 c 0 + 43 101 66 122 104 125 c 0 + 125 127 128 129 130 137 c 0 + 131 142 134 203 136 273 c 0 + 138 343 141 430 143 466 c 0 + 145 503 146 533 146 533 c 0 + 145 534 139 532 132 530 c 0 + 127 528 122 527 117 527 c 0 + 97 527 78 540 68 559 c 0 + 64 567 62 576 62 584 c 0 + 62 593 65 602 69 611 c 0 + 79 630 160 717 176 725 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: two +Encoding: 50 50 3 +Width: 711 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +198 739 m 0 + 207 743 218 745 231 745 c 0 + 258 745 292 737 325 721 c 0 + 344 712 360 699 381 676 c 0 + 472 579 527 437 527 302 c 2 + 527 270 l 1 + 548 257 l 2 + 575 241 632 186 649 161 c 0 + 657 148 661 136 661 124 c 0 + 661 113 658 104 653 94 c 0 + 641 75 621 64 601 64 c 0 + 594 64 586 65 579 68 c 0 + 573 71 550 90 528 111 c 2 + 489 150 l 1 + 480 137 l 2 + 464 115 425 76 408 64 c 0 + 378 43 336 32 298 32 c 0 + 288 32 278 32 269 34 c 0 + 216 44 114 98 86 132 c 0 + 68 152 51 193 48 219 c 0 + 47 224 47 228 47 232 c 0 + 47 280 76 322 122 338 c 0 + 137 344 153 347 174 347 c 0 + 215 347 274 334 380 305 c 0 + 393 301 404 299 405 300 c 0 + 405 300 406 302 406 304 c 0 + 406 322 396 388 390 412 c 0 + 371 476 328 555 289 594 c 0 + 272 612 242 625 218 625 c 0 + 203 625 182 638 171 655 c 0 + 166 663 164 672 164 682 c 0 + 164 704 177 728 198 739 c 0 +270 206 m 0 + 225 217 198 223 185 223 c 0 + 179 223 176 222 176 219 c 0 + 176 203 271 156 303 156 c 0 + 320 156 352 170 354 179 c 0 + 355 182 352 185 347 186 c 0 + 341 187 306 196 270 206 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: three +Encoding: 51 51 4 +Width: 538 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +194 736 m 0 + 208 743 217 745 243 745 c 0 + 282 745 311 738 351 718 c 0 + 387 701 419 672 432 643 c 0 + 439 629 442 608 442 586 c 0 + 442 550 434 508 418 474 c 0 + 411 459 405 445 405 444 c 0 + 405 442 410 439 415 436 c 0 + 460 416 486 364 486 299 c 0 + 486 289 485 278 484 267 c 0 + 476 200 466 171 436 126 c 0 + 407 83 352 46 295 32 c 0 + 268 25 212 21 172 21 c 0 + 160 21 149 21 141 22 c 0 + 79 31 44 56 44 89 c 0 + 44 97 46 106 50 115 c 0 + 59 134 77 145 97 145 c 0 + 105 145 114 143 122 140 c 0 + 135 135 163 132 194 132 c 0 + 224 132 255 135 272 140 c 0 + 314 153 344 178 359 214 c 0 + 369 236 375 276 375 303 c 0 + 375 315 374 325 371 330 c 0 + 366 340 341 349 322 349 c 0 + 310 349 300 346 283 335 c 0 + 255 317 230 308 208 308 c 0 + 186 308 169 317 155 336 c 0 + 149 343 147 354 147 366 c 0 + 147 379 150 393 158 403 c 0 + 171 421 200 437 236 448 c 0 + 260 456 267 460 287 479 c 0 + 313 505 324 527 331 564 c 0 + 332 571 333 577 333 582 c 0 + 333 601 324 609 297 622 c 0 + 274 632 268 633 232 633 c 0 + 187 634 177 638 167 660 c 0 + 163 669 161 678 161 686 c 0 + 161 707 173 725 194 736 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: four +Encoding: 52 52 5 +Width: 517 +VWidth: 0 +Flags: HW +HStem: 421 118<217 318.453> +VStem: 156 107<539.012 774.158> 354 106<37.104 191.677> 391 106<570.5 764.367> 403 109<243.476 456 570 748.169> +CounterMasks: 1 58 +LayerCount: 2 +Fore +SplineSet +299 460 m 4xc8 + 291 460 128 421 120 421 c 4 + 114 421 100 425 90 430 c 4 + 68 441 56 460 56 482 c 4 + 56 483 56 484 56 485 c 4 + 56 494 56 558 56 628 c 4 + 56 767 57 765 82 780 c 4 + 89 784 97 787 106 787 c 4 + 126 787 147 775 156 756 c 4 + 162 744 163 731 163 641 c 4 + 163 555 164 539 169 539 c 4 + 171 539 193 544 216 550 c 4 + 240 556 268 563 281 565 c 6 + 303 570 l 5 + 303 602 l 5xc8 + 303 633 296 688 291 722 c 5 + 291 727 l 6 + 291 755 313 776 342 776 c 4 + 367 776 389 759 397 734 c 4xd0 + 402 721 411 614 411 571 c 4 + 411 568 416 564 426 561 c 4 + 447 555 457 548 463 534 c 4 + 467 526 469 518 469 510 c 4 + 469 485 451 463 424 458 c 6 + 412 456 l 5 + 412 371 l 5xc8 + 402 276 385 210 372 146 c 4 + 367 122 360 94 360 82 c 4 + 360 51 337 26 303 26 c 4 + 273 26 254 46 254 81 c 4xe0 + 254 100 258 127 266 164 c 4 + 281 235 303 356 303 442 c 4 + 303 457 304 460 299 460 c 4xc8 +EndSplineSet +Validated: 1 +EndChar + +StartChar: five +Encoding: 53 53 6 +Width: 493 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +252 730 m 0 + 262 732 276 735 283 735 c 0 + 283 735 284 735 284 735 c 0 + 313 735 331 711 331 688 c 0 + 331 672 324 657 308 647 c 0 + 290 636 253 629 210 629 c 0 + 166 629 155 627 155 618 c 0 + 155 618 155 617 155 617 c 0 + 155 614 161 584 169 552 c 0 + 176 519 183 489 184 485 c 0 + 185 479 189 478 271 475 c 0 + 369 471 378 469 405 444 c 0 + 431 421 443 392 443 354 c 0 + 443 345 442 335 441 325 c 0 + 436 288 427 260 412 235 c 0 + 380 183 362 156 342 131 c 0 + 300 79 246 51 190 51 c 0 + 176 51 162 52 148 56 c 0 + 113 65 73 92 62 114 c 0 + 59 120 57 129 57 137 c 0 + 57 146 59 155 63 161 c 0 + 73 176 87 184 102 184 c 0 + 113 184 124 180 135 172 c 0 + 158 155 174 147 190 147 c 0 + 201 147 212 151 225 157 c 0 + 250 170 267 189 304 246 c 0 + 337 298 344 314 345 343 c 0 + 345 347 345 350 345 353 c 0 + 345 376 338 375 262 379 c 0 + 234 380 217 381 206 381 c 0 + 188 381 184 379 174 375 c 0 + 164 370 154 368 145 368 c 0 + 126 368 111 378 103 396 c 0 + 100 403 94 426 91 446 c 0 + 86 485 66 570 58 593 c 0 + 53 607 51 620 51 632 c 0 + 51 665 69 690 104 708 c 0 + 131 721 151 725 197 725 c 0 + 217 725 242 727 252 730 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: six +Encoding: 54 54 7 +Width: 435 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +208 736 m 0 + 214 739 220 741 226 741 c 0 + 232 741 239 739 246 735 c 0 + 263 726 272 711 272 693 c 0 + 272 686 271 678 268 671 c 0 + 266 665 254 652 243 642 c 0 + 207 613 187 590 180 575 c 0 + 175 565 173 547 170 508 c 0 + 169 487 168 468 168 459 c 0 + 168 456 168 454 168 454 c 0 + 169 453 175 454 182 456 c 0 + 191 459 206 460 221 460 c 0 + 240 460 260 458 272 454 c 0 + 329 435 359 406 375 356 c 0 + 380 342 382 323 382 302 c 0 + 382 279 379 254 373 232 c 0 + 346 125 306 77 234 63 c 0 + 227 62 219 61 211 61 c 0 + 159 61 102 89 84 126 c 0 + 68 156 60 217 60 290 c 0 + 60 315 61 341 63 368 c 0 + 66 404 71 466 73 504 c 0 + 76 543 80 583 83 592 c 0 + 89 614 105 642 125 665 c 0 + 144 686 194 729 208 736 c 0 +256 356 m 0 + 246 360 235 363 223 363 c 0 + 211 363 199 360 188 356 c 0 + 159 346 157 349 157 308 c 0 + 157 303 157 297 157 291 c 0 + 157 244 164 181 170 171 c 0 + 174 164 191 160 208 160 c 0 + 218 160 229 161 235 165 c 0 + 260 180 285 251 285 299 c 0 + 285 302 285 305 285 307 c 0 + 283 336 276 348 256 356 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: seven +Encoding: 55 55 8 +Width: 531 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +311 765 m 0 + 331 767 349 768 364 768 c 0 + 410 768 438 759 459 737 c 0 + 474 721 481 704 481 686 c 0 + 481 673 477 659 470 645 c 0 + 466 636 442 598 416 559 c 0 + 321 414 301 377 265 282 c 0 + 254 253 239 213 230 194 c 0 + 222 176 207 140 196 116 c 0 + 164 40 157 32 125 29 c 0 + 124 29 123 29 122 29 c 0 + 92 29 67 53 67 83 c 0 + 67 98 84 144 109 198 c 0 + 128 240 141 270 168 343 c 0 + 198 422 240 498 320 617 c 0 + 331 635 341 651 341 653 c 0 + 341 653 339 653 336 653 c 0 + 328 653 309 652 288 650 c 0 + 268 649 230 648 195 648 c 0 + 182 648 170 648 158 648 c 0 + 84 649 78 650 67 658 c 0 + 51 669 44 685 44 702 c 0 + 44 722 54 741 75 752 c 0 + 90 760 95 761 189 761 c 0 + 243 762 297 763 311 765 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: eight +Encoding: 56 56 9 +Width: 559 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +307 752 m 0 + 328 758 348 764 352 764 c 0 + 357 765 369 761 381 757 c 0 + 463 730 507 680 507 617 c 0 + 507 608 506 599 504 589 c 0 + 495 547 471 502 437 465 c 2 + 418 445 l 1 + 431 426 l 2 + 458 391 472 355 476 312 c 0 + 476 309 476 305 476 301 c 0 + 476 258 457 193 430 154 c 0 + 410 123 367 78 339 60 c 0 + 293 30 249 15 208 15 c 0 + 168 15 131 29 99 58 c 0 + 78 77 68 93 57 124 c 0 + 49 145 48 154 48 189 c 0 + 48 222 49 233 55 251 c 0 + 72 299 96 330 170 391 c 0 + 194 410 212 427 212 430 c 0 + 211 431 201 435 190 438 c 0 + 162 447 133 475 125 501 c 0 + 122 513 120 531 120 548 c 0 + 120 568 122 588 127 601 c 0 + 141 641 189 691 246 725 c 0 + 259 733 287 745 307 752 c 0 +376 652 m 0 + 367 657 360 659 353 659 c 0 + 347 659 340 658 331 655 c 0 + 309 648 291 638 264 616 c 0 + 233 591 218 570 218 549 c 0 + 218 531 220 530 264 523 c 0 + 283 521 305 516 312 513 c 0 + 320 510 330 508 334 509 c 0 + 356 515 407 588 407 615 c 0 + 407 628 396 642 376 652 c 0 +366 344 m 0 + 361 353 351 368 344 375 c 2 + 331 390 l 1 + 312 377 l 2 + 291 363 200 287 179 265 c 0 + 156 242 147 221 147 190 c 0 + 147 161 152 145 166 133 c 0 + 180 119 190 115 208 115 c 0 + 208 115 209 115 209 115 c 0 + 264 115 337 175 364 242 c 0 + 373 265 375 274 375 298 c 0 + 375 323 374 330 366 344 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: nine +Encoding: 57 57 10 +Width: 436 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +224 753 m 0 + 235 756 248 758 260 758 c 0 + 286 758 312 751 328 737 c 0 + 333 734 344 725 353 718 c 0 + 372 704 380 696 380 677 c 0 + 380 665 377 647 371 619 c 0 + 365 589 358 550 354 532 c 0 + 351 514 346 492 343 483 c 0 + 340 473 339 468 339 460 c 0 + 339 454 339 447 340 437 c 0 + 342 421 347 390 351 368 c 0 + 357 333 358 321 358 269 c 0 + 358 165 354 57 350 47 c 0 + 344 35 331 27 316 25 c 0 + 315 25 315 25 314 25 c 0 + 292 25 277 41 273 68 c 0 + 273 70 273 75 273 81 c 0 + 273 98 274 127 275 157 c 0 + 277 202 278 236 278 264 c 0 + 278 300 276 326 272 349 c 0 + 269 368 266 385 265 387 c 0 + 264 391 258 392 234 392 c 0 + 206 392 203 392 186 400 c 0 + 162 412 148 421 124 444 c 0 + 91 475 70 505 56 542 c 0 + 51 556 48 570 48 585 c 0 + 48 609 55 632 68 651 c 0 + 96 694 160 735 224 753 c 0 +269 677 m 0 + 266 678 263 678 261 678 c 0 + 256 678 250 676 233 671 c 0 + 192 658 149 628 135 606 c 0 + 131 599 129 592 129 585 c 0 + 129 576 132 568 137 557 c 0 + 150 530 189 490 214 477 c 0 + 222 473 228 470 233 470 c 0 + 238 470 242 473 247 478 c 0 + 254 485 255 487 256 518 c 0 + 257 536 261 566 265 585 c 0 + 269 604 273 632 274 647 c 0 + 275 675 275 675 269 677 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: dollar +Encoding: 36 36 11 +Width: 487 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +SplineSet +250 756 m 0 + 261 762 268 762 280 757 c 0 + 292 752 302 740 307 725 c 0 + 309 719 310 714 310 708 c 0 + 310 701 309 692 307 679 c 2 + 305 669 l 1 + 318 673 l 2 + 333 677 343 679 353 679 c 0 + 358 679 364 678 369 677 c 0 + 395 672 411 653 411 629 c 0 + 411 608 392 591 372 591 c 0 + 367 591 361 592 356 595 c 0 + 349 599 347 599 333 594 c 0 + 325 592 314 588 310 586 c 2 + 302 582 l 1 + 304 523 l 2 + 305 490 306 463 307 462 c 0 + 307 462 323 459 342 457 c 0 + 382 452 390 450 407 434 c 0 + 429 414 438 392 440 354 c 0 + 440 351 440 348 440 344 c 0 + 440 309 430 280 404 244 c 0 + 388 221 345 180 327 171 c 2 + 311 163 l 1 + 312 112 l 2 + 312 104 312 98 312 92 c 0 + 312 53 309 44 295 34 c 0 + 288 30 281 27 274 27 c 0 + 259 27 246 35 239 49 c 0 + 233 59 233 66 233 112 c 2 + 233 164 l 1 + 226 166 l 2 + 193 173 165 185 124 208 c 0 + 112 215 94 224 84 228 c 0 + 65 235 51 248 48 260 c 0 + 47 263 47 267 47 270 c 0 + 47 288 57 306 71 314 c 0 + 76 317 82 318 87 318 c 0 + 98 318 109 313 118 304 c 0 + 129 294 216 248 226 248 c 0 + 229 248 230 254 230 273 c 0 + 230 288 229 310 228 343 c 2 + 227 387 l 1 + 195 391 l 2 + 156 395 148 397 131 408 c 0 + 116 418 106 435 106 451 c 0 + 106 478 158 559 205 606 c 2 + 224 625 l 1 + 226 661 l 2 + 227 681 228 706 229 716 c 0 + 229 738 235 749 250 756 c 0 +353 374 m 0 + 352 376 340 378 328 379 c 2 + 307 381 l 1 + 308 320 l 2 + 308 287 310 259 310 259 c 0 + 311 258 318 265 326 273 c 0 + 344 292 360 323 362 340 c 0 + 362 341 362 343 362 344 c 0 + 362 356 358 370 353 374 c 0 +EndSplineSet +Validated: 1 +EndChar + +StartChar: ydieresis +Encoding: 255 255 12 +Width: 150 +VWidth: 0 +Flags: HW +LayerCount: 2 +Fore +Validated: 1 +EndChar +EndChars +EndSplineFont diff --git a/art/hand-numbs.ttf b/art/hand-numbs.ttf new file mode 100644 index 0000000..6d2f42b Binary files /dev/null and b/art/hand-numbs.ttf differ diff --git a/art/interface/how_to.png b/art/interface/how_to.png new file mode 100644 index 0000000..7ae2109 Binary files /dev/null and b/art/interface/how_to.png differ diff --git a/art/interface/how_to_desktop.png b/art/interface/how_to_desktop.png new file mode 100644 index 0000000..ffcd5ef Binary files /dev/null and b/art/interface/how_to_desktop.png differ diff --git a/art/interface/pause.png b/art/interface/pause.png new file mode 100644 index 0000000..c352ff0 Binary files /dev/null and b/art/interface/pause.png differ diff --git a/art/laser/laser1.png b/art/laser/laser1.png new file mode 100644 index 0000000..fb47e43 Binary files /dev/null and b/art/laser/laser1.png differ diff --git a/art/laser/laser2.png b/art/laser/laser2.png new file mode 100644 index 0000000..46ee228 Binary files /dev/null and b/art/laser/laser2.png differ diff --git a/art/menu/back.png b/art/menu/back.png new file mode 100644 index 0000000..f21436b Binary files /dev/null and b/art/menu/back.png differ diff --git a/art/mothership/mothership.png b/art/mothership/mothership.png new file mode 100644 index 0000000..8eba2f2 Binary files /dev/null and b/art/mothership/mothership.png differ diff --git a/art/mothership/mothership_damage1.png b/art/mothership/mothership_damage1.png new file mode 100644 index 0000000..0b08a47 Binary files /dev/null and b/art/mothership/mothership_damage1.png differ diff --git a/art/mothership/mothership_damage2.png b/art/mothership/mothership_damage2.png new file mode 100644 index 0000000..c342c13 Binary files /dev/null and b/art/mothership/mothership_damage2.png differ diff --git a/art/mothership/mothership_ruined.png b/art/mothership/mothership_ruined.png new file mode 100644 index 0000000..df69dbe Binary files /dev/null and b/art/mothership/mothership_ruined.png differ diff --git a/art/mothership/white/mothership.png b/art/mothership/white/mothership.png new file mode 100644 index 0000000..fa9fdd5 Binary files /dev/null and b/art/mothership/white/mothership.png differ diff --git a/art/mothership/white/mothership_damage1.png b/art/mothership/white/mothership_damage1.png new file mode 100644 index 0000000..ca75044 Binary files /dev/null and b/art/mothership/white/mothership_damage1.png differ diff --git a/art/mothership/white/mothership_damage2.png b/art/mothership/white/mothership_damage2.png new file mode 100644 index 0000000..4a1ec90 Binary files /dev/null and b/art/mothership/white/mothership_damage2.png differ diff --git a/art/mothership/white/mothership_ruined.png b/art/mothership/white/mothership_ruined.png new file mode 100644 index 0000000..a762743 Binary files /dev/null and b/art/mothership/white/mothership_ruined.png differ diff --git a/art/mothership/whoops_guy.png b/art/mothership/whoops_guy.png new file mode 100644 index 0000000..35f65b2 Binary files /dev/null and b/art/mothership/whoops_guy.png differ diff --git a/art/multiplayer_menu/back.png b/art/multiplayer_menu/back.png new file mode 100644 index 0000000..d2d87f2 Binary files /dev/null and b/art/multiplayer_menu/back.png differ diff --git a/art/multiplayer_menu/checkmark.png b/art/multiplayer_menu/checkmark.png new file mode 100644 index 0000000..f92536a Binary files /dev/null and b/art/multiplayer_menu/checkmark.png differ diff --git a/art/multiplayer_menu/connect_to.png b/art/multiplayer_menu/connect_to.png new file mode 100644 index 0000000..0f53493 Binary files /dev/null and b/art/multiplayer_menu/connect_to.png differ diff --git a/art/multiplayer_menu/enter_ip.png b/art/multiplayer_menu/enter_ip.png new file mode 100644 index 0000000..206bf87 Binary files /dev/null and b/art/multiplayer_menu/enter_ip.png differ diff --git a/art/multiplayer_menu/enter_username.png b/art/multiplayer_menu/enter_username.png new file mode 100644 index 0000000..f2fd391 Binary files /dev/null and b/art/multiplayer_menu/enter_username.png differ diff --git a/art/multiplayer_menu/start_server.png b/art/multiplayer_menu/start_server.png new file mode 100644 index 0000000..f4e3b28 Binary files /dev/null and b/art/multiplayer_menu/start_server.png differ diff --git a/art/player/Rocket1.png b/art/player/Rocket1.png new file mode 100644 index 0000000..37275d7 Binary files /dev/null and b/art/player/Rocket1.png differ diff --git a/art/player/Rocket2.png b/art/player/Rocket2.png new file mode 100644 index 0000000..e7bbece Binary files /dev/null and b/art/player/Rocket2.png differ diff --git a/art/player/laserer2.png b/art/player/laserer2.png new file mode 100644 index 0000000..4aadaf9 Binary files /dev/null and b/art/player/laserer2.png differ diff --git a/art/restart.png b/art/restart.png new file mode 100644 index 0000000..0a5f745 Binary files /dev/null and b/art/restart.png differ diff --git a/art/restart_hover.png b/art/restart_hover.png new file mode 100644 index 0000000..1ab3b3b Binary files /dev/null and b/art/restart_hover.png differ diff --git a/art/turret/shootin.png b/art/turret/shootin.png new file mode 100644 index 0000000..fa9a389 Binary files /dev/null and b/art/turret/shootin.png differ diff --git a/art/turret/shootin1.5.png b/art/turret/shootin1.5.png new file mode 100644 index 0000000..96d455a Binary files /dev/null and b/art/turret/shootin1.5.png differ diff --git a/art/turret/shootin2.png b/art/turret/shootin2.png new file mode 100644 index 0000000..75b26e8 Binary files /dev/null and b/art/turret/shootin2.png differ diff --git a/art/turret/turret.png b/art/turret/turret.png new file mode 100644 index 0000000..10428ab Binary files /dev/null and b/art/turret/turret.png differ diff --git a/art/turret/turret1.5.png b/art/turret/turret1.5.png new file mode 100644 index 0000000..85d17ed Binary files /dev/null and b/art/turret/turret1.5.png differ diff --git a/art/turret/turret2.png b/art/turret/turret2.png new file mode 100644 index 0000000..6555a35 Binary files /dev/null and b/art/turret/turret2.png differ diff --git a/art/upgrade_menu/buyturrets.png b/art/upgrade_menu/buyturrets.png new file mode 100644 index 0000000..9a9f306 Binary files /dev/null and b/art/upgrade_menu/buyturrets.png differ diff --git a/art/upgrade_menu/doublelasers.png b/art/upgrade_menu/doublelasers.png new file mode 100644 index 0000000..f89630c Binary files /dev/null and b/art/upgrade_menu/doublelasers.png differ diff --git a/art/upgrade_menu/laserpenetration1.png b/art/upgrade_menu/laserpenetration1.png new file mode 100644 index 0000000..10da2f3 Binary files /dev/null and b/art/upgrade_menu/laserpenetration1.png differ diff --git a/art/upgrade_menu/laserpenetration2.png b/art/upgrade_menu/laserpenetration2.png new file mode 100644 index 0000000..3a0f264 Binary files /dev/null and b/art/upgrade_menu/laserpenetration2.png differ diff --git a/art/upgrade_menu/laserpenetration3.png b/art/upgrade_menu/laserpenetration3.png new file mode 100644 index 0000000..d01a421 Binary files /dev/null and b/art/upgrade_menu/laserpenetration3.png differ diff --git a/art/upgrade_menu/laserpenetration4.png b/art/upgrade_menu/laserpenetration4.png new file mode 100644 index 0000000..5f4884b Binary files /dev/null and b/art/upgrade_menu/laserpenetration4.png differ diff --git a/art/upgrade_menu/laserpenetration5.png b/art/upgrade_menu/laserpenetration5.png new file mode 100644 index 0000000..54f1d66 Binary files /dev/null and b/art/upgrade_menu/laserpenetration5.png differ diff --git a/art/upgrade_menu/openturrets.png b/art/upgrade_menu/openturrets.png new file mode 100644 index 0000000..98373ad Binary files /dev/null and b/art/upgrade_menu/openturrets.png differ diff --git a/art/upgrade_menu/shipspeed1.png b/art/upgrade_menu/shipspeed1.png new file mode 100644 index 0000000..0ebff6b Binary files /dev/null and b/art/upgrade_menu/shipspeed1.png differ diff --git a/art/upgrade_menu/shipspeed2.png b/art/upgrade_menu/shipspeed2.png new file mode 100644 index 0000000..855f2f1 Binary files /dev/null and b/art/upgrade_menu/shipspeed2.png differ diff --git a/art/upgrade_menu/shipspeed3.png b/art/upgrade_menu/shipspeed3.png new file mode 100644 index 0000000..b8e0826 Binary files /dev/null and b/art/upgrade_menu/shipspeed3.png differ diff --git a/art/upgrade_menu/shipspeed4.png b/art/upgrade_menu/shipspeed4.png new file mode 100644 index 0000000..3153925 Binary files /dev/null and b/art/upgrade_menu/shipspeed4.png differ diff --git a/art/upgrade_menu/shipspeed5.png b/art/upgrade_menu/shipspeed5.png new file mode 100644 index 0000000..2fd62ac Binary files /dev/null and b/art/upgrade_menu/shipspeed5.png differ diff --git a/art/upgrade_menu/shootingdamage1.png b/art/upgrade_menu/shootingdamage1.png new file mode 100644 index 0000000..9e96795 Binary files /dev/null and b/art/upgrade_menu/shootingdamage1.png differ diff --git a/art/upgrade_menu/shootingdamage2.png b/art/upgrade_menu/shootingdamage2.png new file mode 100644 index 0000000..726f001 Binary files /dev/null and b/art/upgrade_menu/shootingdamage2.png differ diff --git a/art/upgrade_menu/shootingdamage3.png b/art/upgrade_menu/shootingdamage3.png new file mode 100644 index 0000000..616e8b8 Binary files /dev/null and b/art/upgrade_menu/shootingdamage3.png differ diff --git a/art/upgrade_menu/shootingdamage4.png b/art/upgrade_menu/shootingdamage4.png new file mode 100644 index 0000000..8092702 Binary files /dev/null and b/art/upgrade_menu/shootingdamage4.png differ diff --git a/art/upgrade_menu/shootingdamage5.png b/art/upgrade_menu/shootingdamage5.png new file mode 100644 index 0000000..a0293d9 Binary files /dev/null and b/art/upgrade_menu/shootingdamage5.png differ diff --git a/art/upgrade_menu/shootingspeed.xcf b/art/upgrade_menu/shootingspeed.xcf new file mode 100644 index 0000000..8a23baf Binary files /dev/null and b/art/upgrade_menu/shootingspeed.xcf differ diff --git a/art/upgrade_menu/shootingspeed1.png b/art/upgrade_menu/shootingspeed1.png new file mode 100644 index 0000000..978cf7f Binary files /dev/null and b/art/upgrade_menu/shootingspeed1.png differ diff --git a/art/upgrade_menu/shootingspeed2.png b/art/upgrade_menu/shootingspeed2.png new file mode 100644 index 0000000..350b941 Binary files /dev/null and b/art/upgrade_menu/shootingspeed2.png differ diff --git a/art/upgrade_menu/shootingspeed3.png b/art/upgrade_menu/shootingspeed3.png new file mode 100644 index 0000000..3e5a467 Binary files /dev/null and b/art/upgrade_menu/shootingspeed3.png differ diff --git a/art/upgrade_menu/shootingspeed4.png b/art/upgrade_menu/shootingspeed4.png new file mode 100644 index 0000000..3ce6ba7 Binary files /dev/null and b/art/upgrade_menu/shootingspeed4.png differ diff --git a/art/upgrade_menu/shootingspeed5.png b/art/upgrade_menu/shootingspeed5.png new file mode 100644 index 0000000..eab0bac Binary files /dev/null and b/art/upgrade_menu/shootingspeed5.png differ diff --git a/art/upgrade_menu/unlockturrets.png b/art/upgrade_menu/unlockturrets.png new file mode 100644 index 0000000..eb836fc Binary files /dev/null and b/art/upgrade_menu/unlockturrets.png differ diff --git a/boss_long_minor_key.ogg b/boss_long_minor_key.ogg index eb02b42..19a9780 100644 Binary files a/boss_long_minor_key.ogg and b/boss_long_minor_key.ogg differ diff --git a/cursor.png b/cursor.png new file mode 100644 index 0000000..99e490b Binary files /dev/null and b/cursor.png differ diff --git a/export_presets.cfg b/export_presets.cfg index 26bb2d3..9bc678d 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -17,8 +17,8 @@ custom_package/debug="" custom_package/release="" command_line/extra_args="" version/code=1 -version/name="1.0" -package/unique_name="org.sagethesagesage.$genname" +version/name="0.1" +package/unique_name="org.sage.fronter" package/name="Fronter" package/signed=true screen/immersive_mode=true @@ -402,21 +402,235 @@ application/version="1.0" application/copyright="" required_icons/iphone_120x120="" required_icons/ipad_76x76="" +required_icons/app_store_1024x1024="" optional_icons/iphone_180x180="" optional_icons/ipad_152x152="" optional_icons/ipad_167x167="" optional_icons/spotlight_40x40="" optional_icons/spotlight_80x80="" +landscape_launch_screens/iphone_2436x1125="" landscape_launch_screens/iphone_2208x1242="" -landscape_launch_screens/ipad_2732x2048="" +landscape_launch_screens/ipad_1024x768="" landscape_launch_screens/ipad_2048x1536="" +portrait_launch_screens/iphone_640x960="" portrait_launch_screens/iphone_640x1136="" portrait_launch_screens/iphone_750x1334="" -portrait_launch_screens/iphone_1242x2208="" -portrait_launch_screens/ipad_2048x2732="" +portrait_launch_screens/iphone_1125x2436="" +portrait_launch_screens/ipad_768x1024="" portrait_launch_screens/ipad_1536x2048="" +portrait_launch_screens/iphone_1242x2208="" texture_format/s3tc=false texture_format/etc=false texture_format/etc2=true architectures/armv7=true architectures/arm64=true + +[preset.7] + +name="Android 2" +platform="Android" +runnable=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +patch_list=PoolStringArray( ) + +[preset.7.options] + +graphics/32_bits_framebuffer=true +one_click_deploy/clear_previous_install=true +custom_package/debug="" +custom_package/release="" +command_line/extra_args="" +version/code=1 +version/name="1.0" +package/unique_name="org.godotengine.$genname" +package/name="Fronter" +package/signed=false +screen/immersive_mode=true +screen/orientation=0 +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +launcher_icons/xxxhdpi_192x192="" +launcher_icons/xxhdpi_144x144="" +launcher_icons/xhdpi_96x96="" +launcher_icons/hdpi_72x72="" +launcher_icons/mdpi_48x48="" +keystore/release="" +keystore/release_user="" +keystore/release_password="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +architectures/armeabi-v7a=true +architectures/arm64-v8a=false +architectures/x86=false +architectures/x86_64=false +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=true +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=true +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false +user_permissions/0=false +user_permissions/1=false +user_permissions/2=false +user_permissions/3=false +user_permissions/4=false +user_permissions/5=false +user_permissions/6=false +user_permissions/7=false +user_permissions/8=false +user_permissions/9=false +user_permissions/10=false +user_permissions/11=false +user_permissions/12=false +user_permissions/13=false +user_permissions/14=false +user_permissions/15=false +user_permissions/16=false +user_permissions/17=false +user_permissions/18=false +user_permissions/19=false diff --git a/menu_music.ogg b/menu_music.ogg index b1bb43e..2df6231 100644 Binary files a/menu_music.ogg and b/menu_music.ogg differ diff --git a/project.godot b/project.godot index dea7042..859f3ca 100644 --- a/project.godot +++ b/project.godot @@ -17,6 +17,7 @@ config/icon="res://icon.png" [display] +mouse_cursor/custom_image="res://cursor.png" window/stretch/mode="2d" [input] @@ -56,5 +57,5 @@ ui_quit=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":" [rendering] -environment/default_clear_color=Color( 0.210938, 0.210938, 0.210938, 1 ) +environment/default_clear_color=Color( 0.0264893, 0.0267544, 0.0273438, 1 ) environment/default_environment="res://default_env.tres"