Made some changes before fixing gitignore.

This commit is contained in:
Sage Vaillancourt 2018-11-29 16:04:22 -05:00
parent 97d4181b16
commit 74b10382e7
145 changed files with 2365 additions and 318 deletions

View File

@ -37,6 +37,7 @@ func _on_Visibility_screen_exited():
func _ready(): func _ready():
connect("area_entered", self, "hit") connect("area_entered", self, "hit")
$Rotatable.rotation_degrees = -90 $Rotatable.rotation_degrees = -90
func hit(who): func hit(who):
@ -51,7 +52,8 @@ func _process(delta):
emit_signal("dead", 100) emit_signal("dead", 100)
if independent: if independent:
queue_free() queue_free()
if position.x < -100:
if position.x < -100 && independent:
emit_signal("dead", 0) emit_signal("dead", 0)
queue_free() queue_free()
@ -100,18 +102,21 @@ func _process(delta):
if velocity.length() > 0: if velocity.length() > 0:
velocity = velocity.normalized() * SPEED velocity = velocity.normalized() * SPEED
var health_bar = Vector2(((health * 3.75) - 750), -1100)
$Line2D.set_point_position( 1, health_bar )
if independent == true: if independent == true:
#print(independent) #print(independent)
position += velocity * delta 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(): func shoot():
var laser = Laser.instance() if $AnimatedSprite.frame != 1:
get_node("../").add_child(laser) var laser = Laser.instance()
laser.friendly_laser = false get_node("../").add_child(laser)
laser.rotation_degrees = 180 laser.friendly_laser = false
laser.position.y = position.y - 5 laser.rotation_degrees = 180
laser.position.x = position.x - 95 laser.position.y = position.y - 5
laser.position.x = position.x - 95

View File

@ -30,7 +30,7 @@ animations = [ {
custom_solver_bias = 0.0 custom_solver_bias = 0.0
radius = 867.264 radius = 867.264
[node name="BadLaser" type="Area2D" groups=[ [node name="BadLaser" type="Area2D" index="0" groups=[
"enemies", "enemies",
]] ]]

36
Brows.gd Normal file
View File

@ -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

View File

@ -7,10 +7,7 @@ path="res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex"
[deps] [deps]
source_file="res://Image Sources/bad1_base.png" source_file="res://Image Sources/bad1_base.png"
source_md5="213d4aa052568df0122b9ded2dcc26e4"
dest_files=[ "res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex" ] dest_files=[ "res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex" ]
dest_md5="b168ff927a8cde23902c047241ab0b74"
[params] [params]

View File

@ -19,7 +19,7 @@ animations = [ {
"speed": 20.0 "speed": 20.0
} ] } ]
[node name="Laser" type="Area2D" index="0"] [node name="Laser" type="Area2D"]
z_as_relative = false z_as_relative = false
input_pickable = true input_pickable = true

19
Main.gd
View File

@ -74,15 +74,15 @@ func rounds(round_number):
# health, time, bad1s, badblobs, badlasers, badprisons # health, time, bad1s, badblobs, badlasers, badprisons
match round_number: match round_number:
1: 1:
roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,5,0,0,0) # default # roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,5,0,0,0) # default
#roundOfEnemies(0.1,DEFAULT_SPAWN_SPEED,1,0,0,0) roundOfEnemies(0.1,DEFAULT_SPAWN_SPEED,1,0,0,0)
rpc("set_wave_name", "Wave 1: Learning to fly") rpc("set_wave_name", "Wave 1: Learning to fly")
2: 2:
roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,4,1,0,0) #roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,4,1,0,0)
#if get_tree().is_network_server() == true: if get_tree().is_network_server() == true:
# rpc("bossMode", 0) rpc("bossMode", 2)
#else: else:
#bossMode(2) bossMode(2)
rpc("set_wave_name", "Wave 2: Any colour you like") rpc("set_wave_name", "Wave 2: Any colour you like")
3: 3:
roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,8,2,0,0) 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) add_child(turret)
turret.position = turret_position turret.position = turret_position
turret.scale.x = 0.25 turret.scale.x = 0.25
turret.scale.y = 0.25 turret.scale.y = 0.25
func _exit_tree():
print("EXITING AND STUFF")

View File

@ -238,6 +238,7 @@ max_lines_visible = -1
stream = ExtResource( 17 ) stream = ExtResource( 17 )
volume_db = 0.0 volume_db = 0.0
pitch_scale = 1.0
autoplay = false autoplay = false
mix_target = 0 mix_target = 0
bus = "Master" bus = "Master"
@ -260,10 +261,10 @@ bus = "Master"
[connection signal="other_shooting_upgrade" from="Player" to="." method="other_shooting_upgrade"] [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="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="start_next_round" from="Player" to="." method="startNextRound"]
[connection signal="update_display" from="Player" to="." method="updatePoints"] [connection signal="update_display" from="Player" to="." method="updatePoints"]

View File

@ -33,7 +33,7 @@ animations = [ {
"speed": 5.0 "speed": 5.0
} ] } ]
[node name="Node" type="Node"] [node name="Node" type="Node" index="0"]
pause_mode = 2 pause_mode = 2
script = ExtResource( 1 ) script = ExtResource( 1 )
@ -50,6 +50,7 @@ animation = "default"
stream = ExtResource( 3 ) stream = ExtResource( 3 )
volume_db = 0.0 volume_db = 0.0
pitch_scale = 1.0
autoplay = false autoplay = false
mix_target = 0 mix_target = 0
bus = "Master" bus = "Master"
@ -87,7 +88,7 @@ shortcut = null
group = null group = null
flat = true flat = true
align = 1 align = 1
_sections_unfolded = [ "Material", "Visibility" ] _sections_unfolded = [ "Material", "Visibility", "custom_styles" ]
[node name="Menubutton" type="AnimatedSprite" parent="." index="4"] [node name="Menubutton" type="AnimatedSprite" parent="." index="4"]

View File

@ -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 <http://www.gnu.org/licenses/>.
#
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])

View File

@ -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"]

View File

@ -7,10 +7,7 @@ path="res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex"
[deps] [deps]
source_file="res://Menus/libera.png" source_file="res://Menus/libera.png"
source_md5="00701d88cfcda352f723d70fb0702120"
dest_files=[ "res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex" ] dest_files=[ "res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex" ]
dest_md5="5f4bfcdaac174d11b54b43fcdadc19c1"
[params] [params]

View File

@ -7,10 +7,7 @@ path="res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex"
[deps] [deps]
source_file="res://Menus/opens_externally.png" source_file="res://Menus/opens_externally.png"
source_md5="d23b6f95a6ca1835ac0312b14fab474a"
dest_files=[ "res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex" ] dest_files=[ "res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex" ]
dest_md5="4ebafbbd5a5a35cf7fea6e797c3beee6"
[params] [params]

View File

@ -7,10 +7,7 @@ path="res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex"
[deps] [deps]
source_file="res://Menus/patreon.png" source_file="res://Menus/patreon.png"
source_md5="55cd2ca600d821740fb657f6d1c6c924"
dest_files=[ "res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex" ] dest_files=[ "res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex" ]
dest_md5="4ec18b0428236e338a96d00a8b65afa7"
[params] [params]

View File

@ -74,7 +74,8 @@ const LASER_PENETRATION_DICT = {1:0,2:1,3:2,4:3,5:5}
const STARTING_POSITION = Vector2(130, 250) const STARTING_POSITION = Vector2(130, 250)
# the amount of money the player starts with # the amount of money the player starts with
const STARTING_MONEY = 0100000 #const STARTING_MONEY = 0
const STARTING_MONEY = 100000
# cost to unlock turrets # cost to unlock turrets
const UNLOCK_TURRETS_COST = 1000 const UNLOCK_TURRETS_COST = 1000
@ -229,6 +230,7 @@ func doubleLaserUpgrade():
if money >= DOUBLE_LASER_COST && double_laser == false: if money >= DOUBLE_LASER_COST && double_laser == false:
money -= DOUBLE_LASER_COST money -= DOUBLE_LASER_COST
double_laser = true double_laser = true
$Gunner2.visible = true
# tell other players to enable doubles for you # tell other players to enable doubles for you
rpc("double_laser_upgrade", get_tree().get_network_unique_id()) rpc("double_laser_upgrade", get_tree().get_network_unique_id())
@ -356,6 +358,7 @@ func _refund_button():
changeColor(Color(1,1,1,1)) changeColor(Color(1,1,1,1))
shooting_speed_upgrade = SHOOTING_SPEED_UPGRADE_DEFAULT shooting_speed_upgrade = SHOOTING_SPEED_UPGRADE_DEFAULT
money += ship_value*refund_percentage money += ship_value*refund_percentage
$Gunner2.visible = false
prints("Refunded ", ship_value*refund_percentage) prints("Refunded ", ship_value*refund_percentage)
ship_value = 0 ship_value = 0
emit_signal("update_display") emit_signal("update_display")
@ -461,8 +464,8 @@ func shoot():
if double_laser == true: if double_laser == true:
var laser2 = Laser.instance() var laser2 = Laser.instance()
get_node("../").add_child(laser2) get_node("../").add_child(laser2)
laser2.position.y = position.y + 28 laser2.position.y = position.y + 31
laser2.position.x = position.x + 46 laser2.position.x = position.x + 50
laser2.current_pen = laser_penetration laser2.current_pen = laser_penetration
laser2.damage = laser_damage laser2.damage = laser_damage

View File

@ -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://Player.gd" type="Script" id=1]
[ext_resource path="res://Laser.tscn" type="PackedScene" id=2] [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/laserer2.png" type="Texture" id=3]
[ext_resource path="res://art/player/Rocket2.png" type="Texture" id=4] [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] [sub_resource type="SpriteFrames" id=1]
animations = [ { animations = [ {
"frames": [ ExtResource( 3 ), ExtResource( 4 ) ], "frames": [ ExtResource( 4 ), ExtResource( 5 ) ],
"loop": true, "loop": true,
"name": "default", "name": "default",
"speed": 15.0 "speed": 15.0
@ -36,7 +37,15 @@ script = ExtResource( 1 )
_sections_unfolded = [ "Collision", "Z Index" ] _sections_unfolded = [ "Collision", "Z Index" ]
Laser = ExtResource( 2 ) 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 ) position = Vector2( 1.01175, 7.07602 )
scale = Vector2( 0.2, 0.2 ) scale = Vector2( 0.2, 0.2 )
@ -44,14 +53,14 @@ frames = SubResource( 1 )
animation = "default" animation = "default"
_sections_unfolded = [ "Transform" ] _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 ) position = Vector2( 5.85673, 1.31631 )
rotation = 1.5708 rotation = 1.5708
shape = SubResource( 2 ) shape = SubResource( 2 )
_sections_unfolded = [ "Material", "Transform", "Visibility", "Z Index" ] _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 process_mode = 1
wait_time = 0.02 wait_time = 0.02

View File

@ -66,27 +66,7 @@ func _process(delta):
if position.x > 0: if position.x > 0:
position.x -= delta*((100+(position.x))/10) position.x -= delta*((100+(position.x))/10)
#### BIG WOBBLE #### 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
if health < -1*(starting_health/10) && $Inside/InsideBadSprite.rotation_degrees < 180: if health < -1*(starting_health/10) && $Inside/InsideBadSprite.rotation_degrees < 180:
$Inside/InsideBadSprite.rotation_degrees += delta*20 $Inside/InsideBadSprite.rotation_degrees += delta*20
@ -120,7 +100,6 @@ func _process(delta):
emit_signal("flash") emit_signal("flash")
$OutsideBottomCollision.disabled = true $OutsideBottomCollision.disabled = true
$OutsideTopCollision.disabled = true $OutsideTopCollision.disabled = true
prints("flash")
flashed = true flashed = true
#queue_free() #queue_free()
@ -186,6 +165,28 @@ func updateOutsideSprite():
slave func bossHealth(host_health): slave func bossHealth(host_health):
health = 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 var top_laser = true
func shoot(): func shoot():
var laser = Laser.instance() var laser = Laser.instance()

View File

@ -125,6 +125,7 @@ shape = SubResource( 4 )
stream = ExtResource( 23 ) stream = ExtResource( 23 )
volume_db = 4.0 volume_db = 4.0
pitch_scale = 1.0
autoplay = true autoplay = true
mix_target = 0 mix_target = 0
bus = "Master" bus = "Master"

View File

@ -6,54 +6,137 @@ signal boss_health
var right_laser_alive = true var right_laser_alive = true
var left_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(): func _ready():
speed = 0 speed = 0
starting_health = 3000 position.x = 1200
starting_health = 2800
health = starting_health health = starting_health
$RightArm/Laser/BadLaser.independent = false $RightArm/BadLaser.independent = false
#$RightArm/BadLaser.health_multi = 3 $RightArm/BadLaser.health_multi = 5
$LeftArm/Laser/BadLaser.independent = false $LeftArm/BadLaser.independent = false
#$LeftArm/BadLaser.health_multi = 3 $LeftArm/BadLaser.health_multi = 5
$RightArm/Laser/BadLaser.fire_speed = 25 $RightArm/BadLaser.fire_speed = 0
$LeftArm/Laser/BadLaser.fire_speed = 25 $LeftArm/BadLaser.fire_speed = 0
$RightArm/Laser/BadLaser/Rotatable.rotation_degrees = -45 $RightArm/BadLaser/Rotatable.rotation_degrees = -45
# $RightArm/BadLaser.health = 10
# $LeftArm/BadLaser.health = 10
pass pass
func _process(delta): func _process(delta):
#$RightArm/Forearm.rotate(delta/10) #$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 right_laser_alive:
if $RightArm/Laser/BadLaser: if $RightArm/BadLaser:
#$RightArm/Laser/BadLaser.health -= delta*30 # $RightArm/BadLaser.health -= delta*30
if $RightArm/Laser/BadLaser.health <= 100: if $RightArm/BadLaser.health <= 100:
$RightArm/Laser/BadLaser.fire_speed = 150 $RightArm/BadLaser.fire_speed = 150
else: elif $RightArm/BadLaser/AnimatedSprite.frame != 1:
$RightArm/Laser/BadLaser/AnimatedSprite.frame = 1 $RightArm/AnimationPlayer.play("spinoff")
$RightArm/Laser/BadLaser.fire_speed = 0 $RightArm/BadLaser/AnimatedSprite.frame = 1
$RightArm/Laser/BadLaser/Line2D.visible = false $RightArm/BadLaser.fire_speed = 0
$RightArm/BadLaser/Line2D.visible = false
if left_laser_alive: if left_laser_alive:
if $LeftArm/Laser/BadLaser: if $LeftArm/BadLaser:
#$LeftArm/Laser/BadLaser.health -= delta*30 # $LeftArm/BadLaser.health -= delta*30
if $LeftArm/Laser/BadLaser.health <= 100: if $LeftArm/BadLaser.health <= 100:
$LeftArm/Laser/BadLaser.fire_speed = 150 $LeftArm/BadLaser.fire_speed = 150
else: elif $LeftArm/BadLaser/AnimatedSprite.frame != 1:
$LeftArm/Laser/BadLaser.fire_speed = 0 $LeftArm/AnimationPlayer.play("spinoff")
$LeftArm/Laser/BadLaser/AnimatedSprite.frame = 1 $LeftArm/BadLaser.fire_speed = 0
$LeftArm/Laser/BadLaser/Line2D.visible = false $LeftArm/BadLaser/AnimatedSprite.frame = 1
$LeftArm/BadLaser/Line2D.visible = false
func hit(who): func hit(who):
health -= who.damage/(health_multi*3.5) if fight_started:
print(health) 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(): if get_tree().is_network_server():
rpc("bossHealth", health) rpc("bossHealth", health)
emit_signal("boss_health", health, starting_health) emit_signal("boss_health", health, starting_health)
func _on_LeftBadLaser_dead(money): func wobble(delta):
left_laser_alive = false 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): func flash():
right_laser_alive = false emit_signal("flash")
func _exit_tree(): func _exit_tree():
$LeftArm/Laser/BadLaser.queue_free() $LeftArm/BadLaser.queue_free()
$RightArm/Laser/BadLaser.queue_free() $RightArm/BadLaser.queue_free()

File diff suppressed because it is too large Load Diff

View File

@ -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 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 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 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)} const ANIMATION_SCALE_TIER = {1:Vector2(.12,.12), 2:Vector2(.2,.2), 3:Vector2(.2,.2), 4:Vector2(.2,.2)}
var enemy_count = 0 var enemy_count = 0
export (PackedScene) var UMenu
func _ready(): func _ready():
$ReloadTimer.wait_time = RELOAD_TIER[tier] $ReloadTimer.wait_time = RELOAD_TIER[tier]
damage = DAMAGE_TIER[tier] damage = DAMAGE_TIER[tier]
@ -81,7 +83,7 @@ func entityExitedRange(bad_id, bad, bad_shape, self_shape):
current_bad_shape = null current_bad_shape = null
func _on_OpenMenuButton_pressed(): func _on_OpenMenuButton_pressed():
var menu = preload("res://InherentTurretMenu.tscn").instance() var menu = UMenu.instance()
add_child(menu) add_child(menu)
menu.connect("turret_upgrade", self, "upgradeTurret") menu.connect("turret_upgrade", self, "upgradeTurret")
pass pass

View File

@ -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://Turret.gd" type="Script" id=1]
[ext_resource path="res://art/turret/turret.png" type="Texture" id=2] [ext_resource path="res://Menus/InherentTurretMenu.tscn" type="PackedScene" id=2]
[ext_resource path="res://art/turret/shootin.png" type="Texture" id=3] [ext_resource path="res://art/turret/turret1.5.png" type="Texture" id=3]
[ext_resource path="res://art/turret/turret2.png" type="Texture" id=4] [ext_resource path="res://art/turret/shootin1.5.png" type="Texture" id=4]
[ext_resource path="res://art/turret/shootin2.png" type="Texture" id=5] [ext_resource path="res://art/turret/turret.png" type="Texture" id=5]
[ext_resource path="res://art/hand-numbs.ttf" type="DynamicFontData" id=6] [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] [sub_resource type="CircleShape2D" id=1]
@ -15,12 +18,17 @@ radius = 32.0821
[sub_resource type="SpriteFrames" id=2] [sub_resource type="SpriteFrames" id=2]
animations = [ { 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, "loop": true,
"name": "plain", "name": "plain",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [ ExtResource( 4 ), ExtResource( 5 ) ], "frames": [ ExtResource( 7 ), ExtResource( 8 ) ],
"loop": true, "loop": true,
"name": "spike", "name": "spike",
"speed": 5.0 "speed": 5.0
@ -31,13 +39,14 @@ animations = [ {
size = 50 size = 50
use_mipmaps = false use_mipmaps = false
use_filter = false use_filter = false
font_data = ExtResource( 6 ) font_data = ExtResource( 9 )
_sections_unfolded = [ "Font", "Settings" ] _sections_unfolded = [ "Font", "Settings" ]
[node name="Turret" type="Node2D" index="0"] [node name="Turret" type="Node2D"]
script = ExtResource( 1 ) script = ExtResource( 1 )
_sections_unfolded = [ "Material", "Pause", "Transform", "Visibility", "Z Index" ] _sections_unfolded = [ "Material", "Pause", "Transform", "Visibility", "Z Index" ]
UMenu = ExtResource( 2 )
[node name="Beam" type="Line2D" parent="." index="0"] [node name="Beam" type="Line2D" parent="." index="0"]

BIN
art/ColorSelect.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

BIN
art/backgrounds/SunBG.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
art/backgrounds/orange.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

BIN
art/bad/BlackHole/base.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
art/bad/BlackHole/half1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
art/bad/BlackHole/half2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
art/bad/bad1/bad1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
art/bad/bad1/bad1_hit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
art/bad/blob/bad_blob.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
art/bad/prison/Prison.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
art/bad/prison/Star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
art/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

BIN
art/drawn_bg1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
art/drawn_bg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 KiB

BIN
art/gameover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

627
art/hand-numbs.sfd Normal file
View File

@ -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

BIN
art/hand-numbs.ttf Normal file

Binary file not shown.

BIN
art/interface/how_to.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

BIN
art/interface/pause.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
art/laser/laser1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
art/laser/laser2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
art/menu/back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Some files were not shown because too many files have changed in this diff Show More