commit 0713f7ae60d5af6f64bc07cad9ff7d119f4fd9a1 Author: Sage Vaillancourt Date: Wed May 23 01:40:45 2018 -0400 First git push, aka I should've done this sooner diff --git a/Bad1.gd b/Bad1.gd new file mode 100644 index 0000000..41d7bb0 --- /dev/null +++ b/Bad1.gd @@ -0,0 +1,48 @@ +extends Area2D + +signal dead +export (int) var SPEED +export (PackedScene) var Laser +var screensize + +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" +var health = 100 +var hit_timer = 1000 + +func _ready(): + connect("area_entered", self, "hit") + pass + + +func hit(who): + health -= 20 + $AnimatedSprite.frame = 1 + hit_timer = 0 + +var velocity = Vector2() + +func _process(delta): + if health <= 0: + emit_signal("dead") + queue_free() + + if hit_timer < 0.15: + hit_timer += delta + velocity.x = 0 + elif hit_timer < 0.25: + hit_timer += delta + velocity.x -= 1 + else: + velocity.x -= 1 + $AnimatedSprite.frame = 0 + # the player's movement vector + + if velocity.length() > 0: + velocity = velocity.normalized() * SPEED + + var health_bar = Vector2(((health * 3) - 157), -273) + $Line2D.set_point_position( 1, health_bar ) + + position += velocity * delta \ No newline at end of file diff --git a/Bad1.tscn b/Bad1.tscn new file mode 100644 index 0000000..08dd934 --- /dev/null +++ b/Bad1.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://Bad1.gd" type="Script" id=1] +[ext_resource path="res://Laserr.tscn" type="PackedScene" id=2] +[ext_resource path="res://art/bad/bad1/bad1.png" type="Texture" id=3] +[ext_resource path="res://art/bad/bad1/bad1_hit.png" type="Texture" id=4] + +[sub_resource type="SpriteFrames" id=1] + +animations = [ { +"frames": [ ExtResource( 3 ), ExtResource( 4 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="CircleShape2D" id=2] + +custom_solver_bias = 0.0 +radius = 171.26 + +[node name="Bad1" type="Area2D"] + +position = Vector2( 947.34, 293.528 ) +scale = Vector2( 0.15, 0.15 ) +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" +script = ExtResource( 1 ) +_sections_unfolded = [ "Transform" ] +SPEED = 50 +Laser = ExtResource( 2 ) + +[node name="BlinkTimer" type="Timer" parent="." index="0"] + +process_mode = 1 +wait_time = 1.0 +one_shot = false +autostart = false + +[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="1"] + +frames = SubResource( 1 ) +animation = "default" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="2"] + +shape = SubResource( 2 ) + +[node name="Line2D" type="Line2D" parent="." index="3"] + +position = Vector2( 9.15527e-05, 33.3334 ) +points = PoolVector2Array( -157, -273, 143, -273 ) +width = 12.0 +default_color = Color( 0, 1, 0.0390625, 1 ) +texture_mode = 31 +joint_mode = 2 +begin_cap_mode = 2 +end_cap_mode = 2 +sharp_limit = 2.0 +round_precision = 8 +_sections_unfolded = [ "Capping" ] + +[connection signal="body_entered" from="." to="." method="_on_Bad1_body_entered"] + + diff --git a/Bloob.gd b/Bloob.gd new file mode 100644 index 0000000..08c3b1d --- /dev/null +++ b/Bloob.gd @@ -0,0 +1,45 @@ +extends Area2D + +signal dead +export (int) var SPEED +var screensize + +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" +var health = 200 +var hit_timer = 1000 + +func _ready(): + connect("area_entered", self, "hit") + pass + + +func hit(who): + health -= 10 +# $AnimatedSprite.frame = 1 + hit_timer = 0 + +var velocity = Vector2() + +func _process(delta): + if health <= 0: + emit_signal("dead") + queue_free() + + if hit_timer < 0.15: + hit_timer += delta + elif hit_timer < 0.25: + hit_timer += delta + else: + velocity.x -= 1 +# $AnimatedSprite.frame = 0 + # the player's movement vector + + if velocity.length() > 0: + velocity = velocity.normalized() * SPEED + +# var health_bar = Vector2(((health * 3) - 157), -273) +# $Line2D.set_point_position( 1, health_bar ) + + position += velocity * delta \ No newline at end of file diff --git a/Bloob.tscn b/Bloob.tscn new file mode 100644 index 0000000..c4cbdf6 --- /dev/null +++ b/Bloob.tscn @@ -0,0 +1,45 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Bloob.gd" type="Script" id=1] +[ext_resource path="res://art/bad/blob/bad_blob.png" type="Texture" id=2] + +[sub_resource type="CapsuleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 101.271 +height = 82.2384 + +[sub_resource type="SpriteFrames" id=2] + +animations = [ { +"frames": [ ExtResource( 2 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[node name="Area2D" type="Area2D"] + +scale = Vector2( 0.25, 0.25 ) +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" +script = ExtResource( 1 ) +_sections_unfolded = [ "Transform" ] +SPEED = 40 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] + +position = Vector2( 85.1716, 11.8019 ) +shape = SubResource( 1 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="1"] + +frames = SubResource( 2 ) +animation = "default" + + diff --git a/Image Sources/Rocket1.xcf b/Image Sources/Rocket1.xcf new file mode 100644 index 0000000..7685bc1 Binary files /dev/null and b/Image Sources/Rocket1.xcf differ diff --git a/Image Sources/bad1_hit.xcf b/Image Sources/bad1_hit.xcf new file mode 100644 index 0000000..341370b Binary files /dev/null and b/Image Sources/bad1_hit.xcf differ diff --git a/Image Sources/bad_blob.xcf b/Image Sources/bad_blob.xcf new file mode 100644 index 0000000..4d98c27 Binary files /dev/null and b/Image Sources/bad_blob.xcf differ diff --git a/Image Sources/bg.xcf b/Image Sources/bg.xcf new file mode 100644 index 0000000..ed9c542 Binary files /dev/null and b/Image Sources/bg.xcf differ diff --git a/Image Sources/laser1.xcf b/Image Sources/laser1.xcf new file mode 100644 index 0000000..eb68e60 Binary files /dev/null and b/Image Sources/laser1.xcf differ diff --git a/Image Sources/laser2.xcf b/Image Sources/laser2.xcf new file mode 100644 index 0000000..1d55fdf Binary files /dev/null and b/Image Sources/laser2.xcf differ diff --git a/Image Sources/mothership.xcf b/Image Sources/mothership.xcf new file mode 100644 index 0000000..eea9f2d Binary files /dev/null and b/Image Sources/mothership.xcf differ diff --git a/Laserr.gd b/Laserr.gd new file mode 100644 index 0000000..bd95ab2 --- /dev/null +++ b/Laserr.gd @@ -0,0 +1,49 @@ +extends Area2D + +signal hit + +export (int) var SPEED +export (int) var DAMAGE +var plasma = false + +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" + +func _on_Visibility_screen_exited(): + queue_free() + +func _ready(): + # Called every time the node is added to the scene. + # Initialization here + $AnimatedSprite.play() + connect("area_entered", self, "hit") + pass + +func hit(who): + if plasma == false: + hide() + queue_free() + +func _process(delta): + var velocity = Vector2() + velocity.x += 1 + velocity = velocity.normalized() * SPEED + position += velocity * delta + +func _on_Laser_body_entered(body): + emit_signal("hit") + if plasma == false: + $CollisionShape2D.disabled = true + queue_free() + else: + var timer = null + timer = Timer.new() + timer.set_one_shot(true) + timer.set_wait_time(0.1) + timer.connect("timeout", self, "on_timeout_complete") + add_child(timer) + $CollisionShape2D.disabled = true + +func on_timeout_complete(): + $CollisionShape2D.disabled = false \ No newline at end of file diff --git a/Laserr.tscn b/Laserr.tscn new file mode 100644 index 0000000..c7e8c7f --- /dev/null +++ b/Laserr.tscn @@ -0,0 +1,53 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://Laserr.gd" type="Script" id=1] +[ext_resource path="res://art/laser/laser1.png" type="Texture" id=2] +[ext_resource path="res://art/laser/laser2.png" type="Texture" id=3] + +[sub_resource type="CapsuleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 5.39465 +height = 0.325962 + +[sub_resource type="SpriteFrames" id=2] + +animations = [ { +"frames": [ ExtResource( 2 ), ExtResource( 3 ) ], +"loop": true, +"name": "default", +"speed": 20.0 +} ] + +[node name="Laser" type="Area2D" index="0"] + +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" +script = ExtResource( 1 ) +SPEED = 1200 +DAMAGE = 10 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] + +position = Vector2( 28, -5 ) +rotation = 1.5708 +shape = SubResource( 1 ) +_sections_unfolded = [ "Transform" ] +__meta__ = { +"_edit_group_": true +} + +[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="1"] + +position = Vector2( -1.90735e-06, 0 ) +scale = Vector2( 0.1, 0.2 ) +frames = SubResource( 2 ) +animation = "default" +_sections_unfolded = [ "Transform" ] + + diff --git a/Level1.tscn b/Level1.tscn new file mode 100644 index 0000000..69f31a6 --- /dev/null +++ b/Level1.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Main.gd" type="Script" id=1] +[ext_resource path="res://Bad1.tscn" type="PackedScene" id=2] +[ext_resource path="res://Player.tscn" type="PackedScene" id=3] +[ext_resource path="res://Mothership.tscn" type="PackedScene" id=4] + +[node name="Level1" type="Node" index="0"] + +script = ExtResource( 1 ) +FirstBad = ExtResource( 2 ) + +[node name="Player" parent="." index="0" instance=ExtResource( 3 )] + +[node name="BaddieTimer" type="Timer" parent="." index="1"] + +process_mode = 1 +wait_time = 1.0 +one_shot = false +autostart = false + +[node name="Mothership" parent="." index="2" instance=ExtResource( 4 )] + +[connection signal="body_entered" from="Player" to="Player" method="_on_Player_body_entered"] + +[connection signal="timeout" from="BaddieTimer" to="." method="BaddieTimer"] + + diff --git a/Main.gd b/Main.gd new file mode 100644 index 0000000..b76860c --- /dev/null +++ b/Main.gd @@ -0,0 +1,70 @@ +extends Node +export (PackedScene) var FirstBad +export (PackedScene) var BadBlob +export (PackedScene) var UpgradeMenu +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" +var position = Vector2(200, 200) +var kill_money = 10 +var total_bads_spawned = 0 +var upgrade_cost = 50 + +func _ready(): + $BaddieTimer.start() + randomize() + $MoneyDisplay.text = str($Player.money, " points") + +func _process(delta): + if (Input.is_action_pressed("ctlr_l")): + if (Input.is_action_pressed("ctlr_r")): + if (Input.is_action_pressed("ctlr_a")): + if (Input.is_action_pressed("ctlr_start")): + get_tree().quit() + if (Input.is_action_pressed("ui_quit")): + get_tree().quit() + $MoneyDisplay.text = str($Player.money, " points") + +func _on_bad1_death(): + $Player.money += kill_money + $MoneyDisplay.text = str($Player.money, " points") + +func _on_badblob_death(): + $Player.money += kill_money*2 + $MoneyDisplay.text = str($Player.money, " points") + +var sendblob = 0 +func BaddieTimer(): + prints ("baddie boi") + if total_bads_spawned < 11: + var bad + if sendblob == 5: + sendblob = 0 + bad = BadBlob.instance() + add_child(bad) + bad.connect("dead", self, "_on_badblob_death") + else: + bad = FirstBad.instance() + add_child(bad) + sendblob += 1 + bad.connect("dead", self, "_on_bad1_death") + total_bads_spawned += 1 + $BaddieTimer.wait_time = $BaddieTimer.wait_time * 0.99 + + $MoneyDisplay.text = str($Player.money, " points") + + bad.position.x = 1200 + bad.position.y = randi()%500 + 25 + else: + $Player.money += 200 + total_bads_spawned = 0 + +func _on_Player_shooting_speed_upgrade(): + #$MoneyDisplay.text = str($Player.money, " points") + pass + +func _on_PauseButton_pressed(): + var upgmenu + upgmenu = UpgradeMenu.instance() + add_child(upgmenu) + get_tree().paused = true # replace with function body diff --git a/Main.tscn b/Main.tscn new file mode 100644 index 0000000..9cc4cd7 --- /dev/null +++ b/Main.tscn @@ -0,0 +1,202 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://Main.gd" type="Script" id=1] +[ext_resource path="res://Bad1.tscn" type="PackedScene" id=2] +[ext_resource path="res://Bloob.tscn" type="PackedScene" id=3] +[ext_resource path="res://UpgradeMenu.tscn" type="PackedScene" id=4] +[ext_resource path="res://art/bg.png" type="Texture" id=5] +[ext_resource path="res://Player.tscn" type="PackedScene" id=6] +[ext_resource path="res://Mothership.tscn" type="PackedScene" id=7] + +[sub_resource type="ImageTexture" id=1] + +flags = 7 +storage = 0 +lossy_quality = 0.7 +flags = 7 +size = Vector2( 0, 0 ) + +[sub_resource type="ImageTexture" id=2] + +flags = 7 +storage = 0 +lossy_quality = 0.7 +flags = 7 +size = Vector2( 0, 0 ) + +[node name="Main" type="Node"] + +script = ExtResource( 1 ) +_sections_unfolded = [ "Pause" ] +FirstBad = ExtResource( 2 ) +BadBlob = ExtResource( 3 ) +UpgradeMenu = ExtResource( 4 ) + +[node name="Sprite2" type="Sprite" parent="." index="0"] + +texture = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="." index="1"] + +texture = SubResource( 2 ) + +[node name="bg" type="Sprite" parent="Sprite" index="0"] + +position = Vector2( 544.657, 347.107 ) +texture = ExtResource( 5 ) + +[node name="Player" parent="." index="2" instance=ExtResource( 6 )] + +[node name="BaddieTimer" type="Timer" parent="." index="3"] + +process_mode = 1 +wait_time = 5.0 +one_shot = false +autostart = false + +[node name="Mothership" parent="." index="4" instance=ExtResource( 7 )] + +Laser = null + +[node name="MoneyDisplay" type="Label" parent="." index="5"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 919.0 +margin_top = 4.0 +margin_right = 1012.0 +margin_bottom = 35.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 2 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 4 +text = "$0" +align = 2 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 +_sections_unfolded = [ "custom_fonts" ] + +[node name="UpButton" type="Button" parent="." index="6"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = -1.0 +margin_right = 337.0 +margin_bottom = 295.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 +_sections_unfolded = [ "Visibility" ] + +[node name="DownButton" type="Button" parent="." index="7"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 294.0 +margin_right = 337.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 +_sections_unfolded = [ "Visibility" ] + +[node name="ShootButton" type="Button" parent="." index="8"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 785.0 +margin_top = 375.0 +margin_right = 1022.0 +margin_bottom = 599.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 +_sections_unfolded = [ "Theme" ] + +[node name="PauseButton" type="Button" parent="." index="9"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 944.0 +margin_top = 36.0 +margin_right = 1001.0 +margin_bottom = 93.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 = "||" +flat = false +align = 1 + +[connection signal="body_entered" from="Player" to="Player" method="_on_Player_body_entered"] + +[connection signal="shooting_speed_upgrade" from="Player" to="." method="_on_Player_shooting_speed_upgrade"] + +[connection signal="timeout" from="BaddieTimer" to="." method="BaddieTimer"] + +[connection signal="button_down" from="UpButton" to="Player" method="upPressed"] + +[connection signal="button_up" from="UpButton" to="Player" method="upDepressed"] + +[connection signal="button_down" from="DownButton" to="Player" method="downPressed"] + +[connection signal="button_up" from="DownButton" to="Player" method="downDepressed"] + +[connection signal="button_down" from="ShootButton" to="Player" method="shootDown"] + +[connection signal="button_up" from="ShootButton" to="Player" method="shootUp"] + +[connection signal="pressed" from="PauseButton" to="." method="_on_PauseButton_pressed"] + + diff --git a/Mothership.gd b/Mothership.gd new file mode 100644 index 0000000..86b76cf --- /dev/null +++ b/Mothership.gd @@ -0,0 +1,44 @@ +extends Area2D + +signal game_over +export (PackedScene) var Laser +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" + +var health = 1000 +var double_laser = false +var can_shoot = true +var timer = null +var bullet_delay = 0.1 + +func _ready(): + timer = Timer.new() + timer.set_one_shot(true) + timer.set_wait_time(bullet_delay) + timer.connect("timeout", self, "on_timeout_complete") + add_child(timer) + +func _process(delta): + if health <= 0: + emit_signal("game_over") + +# # Called every frame. Delta is time since last frame. +# # Update game logic here. +# pass + + + +func _on_GunAimNode_area_entered(area): + for i in range(20): + #var laser = Laser.instance() + #get_node("../").add_child(laser) + #laser.position.y = position.y - 27 + #laser.position.x = position.x + 46 + 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 + can_shoot = false + timer.start() diff --git a/Mothership.tscn b/Mothership.tscn new file mode 100644 index 0000000..c128806 --- /dev/null +++ b/Mothership.tscn @@ -0,0 +1,69 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://Mothership.gd" type="Script" id=1] +[ext_resource path="res://Laserr.tscn" type="PackedScene" id=2] +[ext_resource path="res://art/mothership/mothership.png" type="Texture" id=3] + +[sub_resource type="CapsuleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 138.39 +height = 2377.74 + +[sub_resource type="SpriteFrames" id=2] + +animations = [ { +"frames": [ ExtResource( 3 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="RectangleShape2D" id=3] + +custom_solver_bias = 0.0 +extents = Vector2( 135.733, 138.728 ) + +[node name="Mothership" type="Area2D"] + +position = Vector2( 23.327, 304.835 ) +scale = Vector2( 0.3, 0.3 ) +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" +script = ExtResource( 1 ) +_sections_unfolded = [ "Transform" ] +Laser = ExtResource( 2 ) + +[node name="ShipCollision" type="CollisionShape2D" parent="." index="0"] + +position = Vector2( -110, 0 ) +shape = SubResource( 1 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="1"] + +frames = SubResource( 2 ) +animation = "default" + +[node name="GunAimNode" type="Area2D" parent="." index="2"] + +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="GunAim" type="CollisionShape2D" parent="GunAimNode" index="0"] + +position = Vector2( -178.686, -46.8981 ) +shape = SubResource( 3 ) + +[connection signal="area_entered" from="GunAimNode" to="." method="_on_GunAimNode_area_entered"] + + diff --git a/Player.gd b/Player.gd new file mode 100644 index 0000000..d77a11e --- /dev/null +++ b/Player.gd @@ -0,0 +1,117 @@ +extends Area2D + +signal shooting_speed_upgrade +export (PackedScene) var Laser + +#Constants +const BULLET_DELAY_DEFAULT = 0.9 +const SHOOTING_SPEED_UPGRADE_DEFAULT = 50 +const SHIP_SPEED_DEFAULT = 400 + +var ship_value = 0 +var ship_speed = SHIP_SPEED_DEFAULT +var bullet_delay = BULLET_DELAY_DEFAULT +var screensize +var money = 100 +var shooting_speed_upgrade = 50 +var double_laser = true + +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" + +func _ready(): + timer = Timer.new() + timer.set_one_shot(true) + timer.set_wait_time(bullet_delay) + timer.connect("timeout", self, "on_timeout_complete") + add_child(timer) + + position.x = 100 + position.y = 250 + + screensize = get_viewport_rect().size + $AnimatedSprite.play() + # Initialization here + pass + +func refund(): + bullet_delay = BULLET_DELAY_DEFAULT + ship_speed = SHIP_SPEED_DEFAULT + money += ship_value + ship_value = 0 + +var timer = null + +var can_shoot = true + +func on_timeout_complete(): + can_shoot = true + +var going_up = false +var going_down = false +var shoot_down = false + +func _process(delta): + var velocity = Vector2() # the player's movement vector + if (Input.is_action_pressed("ui_right")): + velocity.x += 1 + if (Input.is_action_pressed("ui_left")): + velocity.x -= 1 + if (Input.is_action_pressed("ui_down") || going_down == true): + velocity.y += 1 + if (Input.is_action_pressed("ui_up") || going_up == true): + velocity.y -= 1 + if (velocity.length() > 0): + velocity = velocity.normalized() * ship_speed + + position += velocity * delta + position.x = clamp(position.x, 0, screensize.x) + position.y = clamp(position.y, 0, screensize.y) + + + if (Input.is_action_pressed("ui_select") && can_shoot == true && money >= shooting_speed_upgrade ): + emit_signal("shooting_speed_upgrade") + money -= shooting_speed_upgrade + ship_value += shooting_speed_upgrade + shooting_speed_upgrade *= 1.02 + bullet_delay = bullet_delay * 0.95 + can_shoot = false + timer.set_wait_time(bullet_delay) + timer.start() + + if ((Input.is_action_pressed("ui_accept") || shoot_down == true) && can_shoot == true): + var laser = Laser.instance() + get_node("../").add_child(laser) + laser.position.y = position.y - 27 + laser.position.x = position.x + 46 + + #MAYBE THE SECOND LASER SHOULD BE IT'S OWN NODE + 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 + can_shoot = false + timer.start() + + + +func _on_Player_body_entered(body): + prints("hit") + pass # replace with function body + +func upPressed(): + going_up = true +func upDepressed(): + going_up = false + +func downPressed(): + going_down = true +func downDepressed(): + going_down = false + +func shootDown(): + shoot_down = true # replace with function body +func shootUp(): + shoot_down = false # replace with function body diff --git a/Player.tscn b/Player.tscn new file mode 100644 index 0000000..680705c --- /dev/null +++ b/Player.tscn @@ -0,0 +1,51 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://Player.gd" type="Script" id=1] +[ext_resource path="res://Laserr.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] + +[sub_resource type="SpriteFrames" id=1] + +animations = [ { +"frames": [ ExtResource( 3 ), ExtResource( 4 ) ], +"loop": true, +"name": "default", +"speed": 15.0 +} ] + +[sub_resource type="CapsuleShape2D" id=2] + +custom_solver_bias = 0.0 +radius = 19.3222 +height = 76.5834 + +[node name="Player" type="Area2D" index="0"] + +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" +script = ExtResource( 1 ) +Laser = ExtResource( 2 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"] + +position = Vector2( 1.01175, 7.07602 ) +scale = Vector2( 0.2, 0.2 ) +frames = SubResource( 1 ) +animation = "default" +_sections_unfolded = [ "Transform" ] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"] + +position = Vector2( -4.44824, -0.0942383 ) +rotation = 1.5708 +shape = SubResource( 2 ) +disabled = true +_sections_unfolded = [ "Material", "Transform", "Visibility", "Z Index" ] + + diff --git a/UpgradeMenu.gd b/UpgradeMenu.gd new file mode 100644 index 0000000..ea28313 --- /dev/null +++ b/UpgradeMenu.gd @@ -0,0 +1,20 @@ +extends Node + +# class member variables go here, for example: +# var a = 2 +# var b = "textvar" + +func _ready(): + # Called every time the node is added to the scene. + # Initialization here + pass + +#func _process(delta): +# # Called every frame. Delta is time since last frame. +# # Update game logic here. +# pass + + +func _on_Button_pressed(): + get_tree().paused = false + queue_free() diff --git a/UpgradeMenu.tscn b/UpgradeMenu.tscn new file mode 100644 index 0000000..cb21af3 --- /dev/null +++ b/UpgradeMenu.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://UpgradeMenu.gd" type="Script" id=1] + +[sub_resource type="Theme" id=1] + + +[node name="UpgradeMenu" type="Node" index="0"] + +pause_mode = 2 +script = ExtResource( 1 ) +_sections_unfolded = [ "Pause" ] + +[node name="Button" type="Button" parent="." index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 287.0 +margin_top = 481.0 +margin_right = 770.0 +margin_bottom = 523.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 +theme = SubResource( 1 ) +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +text = "Resume" +flat = false +align = 1 +_sections_unfolded = [ "Theme" ] + +[connection signal="pressed" from="Button" to="." method="_on_Button_pressed"] + + diff --git a/art/bad/bad1/bad1.png b/art/bad/bad1/bad1.png new file mode 100644 index 0000000..2d4daa0 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..dc44879 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..458281f Binary files /dev/null and b/art/bad/blob/bad_blob.png differ diff --git a/art/bg.png b/art/bg.png new file mode 100644 index 0000000..ccdd3d3 Binary files /dev/null and b/art/bg.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/mothership/mothership.png b/art/mothership/mothership.png new file mode 100644 index 0000000..fa9fdd5 Binary files /dev/null and b/art/mothership/mothership.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/default_env.tres b/default_env.tres new file mode 100644 index 0000000..ad86b72 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,101 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +radiance_size = 4 +sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) +sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) +sky_curve = 0.25 +sky_energy = 1.0 +ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 ) +ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) +ground_curve = 0.01 +ground_energy = 1.0 +sun_color = Color( 1, 1, 1, 1 ) +sun_latitude = 35.0 +sun_longitude = 0.0 +sun_angle_min = 1.0 +sun_angle_max = 100.0 +sun_curve = 0.05 +sun_energy = 16.0 +texture_size = 2 + +[resource] + +background_mode = 2 +background_sky = SubResource( 1 ) +background_sky_custom_fov = 0.0 +background_color = Color( 0, 0, 0, 1 ) +background_energy = 1.0 +background_canvas_max_layer = 0 +ambient_light_color = Color( 0, 0, 0, 1 ) +ambient_light_energy = 1.0 +ambient_light_sky_contribution = 1.0 +fog_enabled = false +fog_color = Color( 0.5, 0.6, 0.7, 1 ) +fog_sun_color = Color( 1, 0.9, 0.7, 1 ) +fog_sun_amount = 0.0 +fog_depth_enabled = true +fog_depth_begin = 10.0 +fog_depth_curve = 1.0 +fog_transmit_enabled = false +fog_transmit_curve = 1.0 +fog_height_enabled = false +fog_height_min = 0.0 +fog_height_max = 100.0 +fog_height_curve = 1.0 +tonemap_mode = 0 +tonemap_exposure = 1.0 +tonemap_white = 1.0 +auto_exposure_enabled = false +auto_exposure_scale = 0.4 +auto_exposure_min_luma = 0.05 +auto_exposure_max_luma = 8.0 +auto_exposure_speed = 0.5 +ss_reflections_enabled = false +ss_reflections_max_steps = 64 +ss_reflections_fade_in = 0.15 +ss_reflections_fade_out = 2.0 +ss_reflections_depth_tolerance = 0.2 +ss_reflections_roughness = true +ssao_enabled = false +ssao_radius = 1.0 +ssao_intensity = 1.0 +ssao_radius2 = 0.0 +ssao_intensity2 = 1.0 +ssao_bias = 0.01 +ssao_light_affect = 0.0 +ssao_color = Color( 0, 0, 0, 1 ) +ssao_quality = 0 +ssao_blur = 3 +ssao_edge_sharpness = 4.0 +dof_blur_far_enabled = false +dof_blur_far_distance = 10.0 +dof_blur_far_transition = 5.0 +dof_blur_far_amount = 0.1 +dof_blur_far_quality = 1 +dof_blur_near_enabled = false +dof_blur_near_distance = 2.0 +dof_blur_near_transition = 1.0 +dof_blur_near_amount = 0.1 +dof_blur_near_quality = 1 +glow_enabled = false +glow_levels/1 = false +glow_levels/2 = false +glow_levels/3 = true +glow_levels/4 = false +glow_levels/5 = true +glow_levels/6 = false +glow_levels/7 = false +glow_intensity = 0.8 +glow_strength = 1.0 +glow_bloom = 0.0 +glow_blend_mode = 2 +glow_hdr_threshold = 1.0 +glow_hdr_scale = 2.0 +glow_bicubic_upscale = false +adjustment_enabled = false +adjustment_brightness = 1.0 +adjustment_contrast = 1.0 +adjustment_saturation = 1.0 + diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..f9f2e8a --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,230 @@ +[preset.0] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +patch_list=PoolStringArray( ) + +[preset.0.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="" +package/signed=true +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=false +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=false +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 + +[preset.1] + +name="HTML5" +platform="HTML5" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +patch_list=PoolStringArray( ) + +[preset.1.options] + +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=true +html/custom_html_shell="" +html/head_include="" +custom_template/release="" +custom_template/debug="" diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..cd9bc40 Binary files /dev/null and b/icon.png differ diff --git a/script b/script new file mode 100644 index 0000000..8c5da20 --- /dev/null +++ b/script @@ -0,0 +1,11 @@ +Level One - Welcome to the show. + +McGruff: Let me get a few things straight with you, kid. + I don't know what kind of hotshot you were before now, + and frankly I don't care. + Just do your job. + +McP: Lighten up, Mick. + Listen, kid, it's gonna be hard out here. + But we'll make it, okay? + Best of luck!