Compare commits
No commits in common. "74b10382e74dffae036ee1fb04bc7d19196c0349" and "c3301f068aec34bfcc231a8257e4bcc6e1e65c7a" have entirely different histories.
74b10382e7
...
c3301f068a
6
BG.gd
|
@ -12,9 +12,3 @@ func _process(delta):
|
||||||
$bg1.position.x = 1600
|
$bg1.position.x = 1600
|
||||||
if $bg2.position.x < -550:
|
if $bg2.position.x < -550:
|
||||||
$bg2.position.x = 1600
|
$bg2.position.x = 1600
|
||||||
|
|
||||||
if $Sun.visible == true:
|
|
||||||
if $Sun.position.x < -2500:
|
|
||||||
$Sun.visible = false
|
|
||||||
$Sun.position.x = 1250
|
|
||||||
$Sun.position.x -= delta*2.5
|
|
114
BG.tscn
|
@ -1,114 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://BG.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://art/backgrounds/SunBG.png" type="Texture" id=2]
|
|
||||||
[ext_resource path="res://art/bg.png" type="Texture" id=3]
|
|
||||||
|
|
||||||
[node name="BG" type="Node2D"]
|
|
||||||
|
|
||||||
z_index = -1
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
_sections_unfolded = [ "Z Index" ]
|
|
||||||
|
|
||||||
[node name="CanvasModulate" type="CanvasModulate" parent="." index="0"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
color = Color( 0, 0, 0, 1 )
|
|
||||||
|
|
||||||
[node name="BlackBG" type="ColorRect" parent="." index="1"]
|
|
||||||
|
|
||||||
light_mask = 0
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_right = 1035.0
|
|
||||||
margin_bottom = 602.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 = [ "Anchor", "Focus", "Grow Direction", "Hint", "Margin", "Material", "Mouse", "Pause", "Rect", "Size Flags", "Theme", "Visibility" ]
|
|
||||||
|
|
||||||
[node name="Sun" type="Sprite" parent="." index="2"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
position = Vector2( 1250, 154.764 )
|
|
||||||
z_index = 1
|
|
||||||
texture = ExtResource( 2 )
|
|
||||||
_sections_unfolded = [ "Transform", "Z Index" ]
|
|
||||||
|
|
||||||
[node name="bg1" type="Sprite" parent="." index="3"]
|
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
light_mask = 2
|
|
||||||
position = Vector2( 577.646, 365.663 )
|
|
||||||
scale = Vector2( 0.694364, 0.694364 )
|
|
||||||
texture = ExtResource( 3 )
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility", "Z Index" ]
|
|
||||||
|
|
||||||
[node name="Light2D" type="Light2D" parent="bg1" index="0"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
enabled = true
|
|
||||||
editor_only = false
|
|
||||||
texture = ExtResource( 3 )
|
|
||||||
offset = Vector2( 0, 0 )
|
|
||||||
texture_scale = 1.0
|
|
||||||
color = Color( 1, 1, 1, 1 )
|
|
||||||
energy = 2.5
|
|
||||||
mode = 0
|
|
||||||
range_height = 0.0
|
|
||||||
range_z_min = -1024
|
|
||||||
range_z_max = 1024
|
|
||||||
range_layer_min = 0
|
|
||||||
range_layer_max = 0
|
|
||||||
range_item_cull_mask = 2
|
|
||||||
shadow_enabled = false
|
|
||||||
shadow_color = Color( 0, 0, 0, 0 )
|
|
||||||
shadow_buffer_size = 2048
|
|
||||||
shadow_gradient_length = 0.0
|
|
||||||
shadow_filter = 0
|
|
||||||
shadow_filter_smooth = 0.0
|
|
||||||
shadow_item_cull_mask = 2
|
|
||||||
_sections_unfolded = [ "Range", "Shadow" ]
|
|
||||||
|
|
||||||
[node name="bg2" type="Sprite" parent="." index="4"]
|
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
light_mask = 2
|
|
||||||
position = Vector2( 1823.66, 361.868 )
|
|
||||||
scale = Vector2( 0.6985, 0.6985 )
|
|
||||||
texture = ExtResource( 3 )
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility", "Z Index" ]
|
|
||||||
|
|
||||||
[node name="Light2D" type="Light2D" parent="bg2" index="0"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
enabled = true
|
|
||||||
editor_only = false
|
|
||||||
texture = ExtResource( 3 )
|
|
||||||
offset = Vector2( 0, 0 )
|
|
||||||
texture_scale = 1.0
|
|
||||||
color = Color( 1, 1, 1, 1 )
|
|
||||||
energy = 2.5
|
|
||||||
mode = 0
|
|
||||||
range_height = 0.0
|
|
||||||
range_z_min = -1024
|
|
||||||
range_z_max = 1024
|
|
||||||
range_layer_min = 0
|
|
||||||
range_layer_max = 0
|
|
||||||
range_item_cull_mask = 2
|
|
||||||
shadow_enabled = false
|
|
||||||
shadow_color = Color( 0, 0, 0, 0 )
|
|
||||||
shadow_buffer_size = 2048
|
|
||||||
shadow_gradient_length = 0.0
|
|
||||||
shadow_filter = 0
|
|
||||||
shadow_filter_smooth = 0.0
|
|
||||||
shadow_item_cull_mask = 2
|
|
||||||
_sections_unfolded = [ "Range", "Shadow" ]
|
|
||||||
|
|
||||||
|
|
4
Bad.gd
|
@ -56,8 +56,4 @@ func _process(delta):
|
||||||
if velocity.length() > 0:
|
if velocity.length() > 0:
|
||||||
velocity = velocity.normalized() * speed
|
velocity = velocity.normalized() * speed
|
||||||
|
|
||||||
if position.x < -100:
|
|
||||||
emit_signal("dead", 0)
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
position += velocity * delta
|
position += velocity * delta
|
6
Bad.tscn
|
@ -1,8 +1,6 @@
|
||||||
[gd_scene format=2]
|
[gd_scene format=2]
|
||||||
|
|
||||||
[node name="BadClass" type="Area2D" groups=[
|
[node name="BadClass" type="Area2D" index="0"]
|
||||||
"enemies",
|
|
||||||
]]
|
|
||||||
|
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
gravity_vec = Vector2( 0, 1 )
|
gravity_vec = Vector2( 0, 1 )
|
||||||
|
@ -13,7 +11,7 @@ collision_layer = 2
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
audio_bus_override = false
|
audio_bus_override = false
|
||||||
audio_bus_name = "Master"
|
audio_bus_name = "Master"
|
||||||
_sections_unfolded = [ "Audio Bus", "Collision", "Material", "Pause", "Pickable", "Transform", "Visibility", "Z Index" ]
|
_sections_unfolded = [ "Collision" ]
|
||||||
|
|
||||||
[node name="CollisionBox" type="CollisionShape2D" parent="." index="0"]
|
[node name="CollisionBox" type="CollisionShape2D" parent="." index="0"]
|
||||||
|
|
||||||
|
|
10
Bad1.gd
|
@ -29,6 +29,10 @@ var boss = false
|
||||||
var health = 50
|
var health = 50
|
||||||
var hit_timer = 1000
|
var hit_timer = 1000
|
||||||
|
|
||||||
|
func _on_Visibility_screen_exited():
|
||||||
|
prints("bye-bye, bad bad")
|
||||||
|
queue_free()
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
connect("area_entered", self, "hit")
|
connect("area_entered", self, "hit")
|
||||||
pass
|
pass
|
||||||
|
@ -42,7 +46,7 @@ func hit(who):
|
||||||
$Line2D.set_point_position( 1, health_bar )
|
$Line2D.set_point_position( 1, health_bar )
|
||||||
|
|
||||||
if health <= 0:
|
if health <= 0:
|
||||||
emit_signal("dead", 10) # was 12 # was 15
|
emit_signal("dead", 15)
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
var velocity = Vector2()
|
var velocity = Vector2()
|
||||||
|
@ -62,7 +66,3 @@ func _process(delta):
|
||||||
velocity = velocity.normalized() * SPEED
|
velocity = velocity.normalized() * SPEED
|
||||||
|
|
||||||
position += velocity * delta
|
position += velocity * delta
|
||||||
|
|
||||||
if position.x < -100:
|
|
||||||
emit_signal("dead", 0)
|
|
||||||
queue_free()
|
|
|
@ -19,9 +19,7 @@ animations = [ {
|
||||||
custom_solver_bias = 0.0
|
custom_solver_bias = 0.0
|
||||||
radius = 171.26
|
radius = 171.26
|
||||||
|
|
||||||
[node name="Bad1" type="Area2D" groups=[
|
[node name="Bad1" type="Area2D"]
|
||||||
"enemies",
|
|
||||||
]]
|
|
||||||
|
|
||||||
position = Vector2( 947.34, 293.528 )
|
position = Vector2( 947.34, 293.528 )
|
||||||
scale = Vector2( 0.15, 0.15 )
|
scale = Vector2( 0.15, 0.15 )
|
||||||
|
|
38
BadLaser.gd
|
@ -23,13 +23,12 @@ signal dead
|
||||||
export (int) var SPEED
|
export (int) var SPEED
|
||||||
export (PackedScene) var Laser
|
export (PackedScene) var Laser
|
||||||
var screensize
|
var screensize
|
||||||
var fire_speed = 15#0
|
var fire_speed = 15
|
||||||
var health = 400
|
var health = 400
|
||||||
var hit_timer = 1000
|
var hit_timer = 1000
|
||||||
var can_shoot = true
|
var can_shoot = true
|
||||||
var health_multi = 1
|
var health_multi = 1
|
||||||
var boss = false
|
var boss = false
|
||||||
var independent = true
|
|
||||||
func _on_Visibility_screen_exited():
|
func _on_Visibility_screen_exited():
|
||||||
prints("bye-bye, bad bad")
|
prints("bye-bye, bad bad")
|
||||||
queue_free()
|
queue_free()
|
||||||
|
@ -39,10 +38,9 @@ func _ready():
|
||||||
$Rotatable.rotation_degrees = -90
|
$Rotatable.rotation_degrees = -90
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func hit(who):
|
func hit(who):
|
||||||
health -= who.damage/health_multi
|
health -= who.damage/health_multi
|
||||||
#$AnimatedSprite.frame = 1
|
$AnimatedSprite.frame = 1
|
||||||
hit_timer = 0
|
hit_timer = 0
|
||||||
|
|
||||||
var velocity = Vector2()
|
var velocity = Vector2()
|
||||||
|
@ -50,11 +48,6 @@ var velocity = Vector2()
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if health <= 0:
|
if health <= 0:
|
||||||
emit_signal("dead", 100)
|
emit_signal("dead", 100)
|
||||||
if independent:
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
if position.x < -100 && independent:
|
|
||||||
emit_signal("dead", 0)
|
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
$Rotatable.rotation_degrees += delta*fire_speed
|
$Rotatable.rotation_degrees += delta*fire_speed
|
||||||
|
@ -98,25 +91,20 @@ func _process(delta):
|
||||||
velocity.x -= 1
|
velocity.x -= 1
|
||||||
else:
|
else:
|
||||||
velocity.x -= 1
|
velocity.x -= 1
|
||||||
#$AnimatedSprite.frame = 0
|
$AnimatedSprite.frame = 0
|
||||||
|
|
||||||
if velocity.length() > 0:
|
if velocity.length() > 0:
|
||||||
velocity = velocity.normalized() * SPEED
|
velocity = velocity.normalized() * SPEED
|
||||||
|
|
||||||
if independent == true:
|
var health_bar = Vector2(((health * 3.75) - 750), -1100)
|
||||||
#print(independent)
|
$Line2D.set_point_position( 1, health_bar )
|
||||||
position += velocity * delta
|
|
||||||
var health_bar = Vector2(((health * 3.75) - 750), -1100)
|
position += velocity * delta
|
||||||
$Line2D.set_point_position( 1, health_bar )
|
|
||||||
else:
|
|
||||||
$Line2D.visible = false
|
|
||||||
health = 99999
|
|
||||||
|
|
||||||
func shoot():
|
func shoot():
|
||||||
if $AnimatedSprite.frame != 1:
|
var laser = Laser.instance()
|
||||||
var laser = Laser.instance()
|
get_node("../").add_child(laser)
|
||||||
get_node("../").add_child(laser)
|
laser.friendly_laser = false
|
||||||
laser.friendly_laser = false
|
laser.rotation_degrees = 180
|
||||||
laser.rotation_degrees = 180
|
laser.position.y = position.y - 10
|
||||||
laser.position.y = position.y - 5
|
laser.position.x = position.x - 170
|
||||||
laser.position.x = position.x - 95
|
|
|
@ -1,16 +1,14 @@
|
||||||
[gd_scene load_steps=10 format=2]
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://BadLaser.gd" type="Script" id=1]
|
[ext_resource path="res://BadLaser.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/bad/laser/bad_laser_bg.png" type="Texture" id=3]
|
[ext_resource path="res://art/bad/laser/bad_laser_stationary.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://art/bad/laser/bad_laser_stationary.png" type="Texture" id=4]
|
[ext_resource path="res://art/bad/laser/bad_laser_rotatable.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://art/bad/laser/bad_laser_broken.png" type="Texture" id=5]
|
|
||||||
[ext_resource path="res://art/bad/laser/bad_laser_rotatable.png" type="Texture" id=6]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=1]
|
[sub_resource type="SpriteFrames" id=1]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 4 ), ExtResource( 5 ) ],
|
"frames": [ ExtResource( 3 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "New Anim",
|
"name": "New Anim",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
|
@ -19,7 +17,7 @@ animations = [ {
|
||||||
[sub_resource type="SpriteFrames" id=2]
|
[sub_resource type="SpriteFrames" id=2]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 6 ) ],
|
"frames": [ ExtResource( 4 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "default",
|
"name": "default",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
|
@ -30,9 +28,7 @@ animations = [ {
|
||||||
custom_solver_bias = 0.0
|
custom_solver_bias = 0.0
|
||||||
radius = 867.264
|
radius = 867.264
|
||||||
|
|
||||||
[node name="BadLaser" type="Area2D" index="0" groups=[
|
[node name="BadLaser" type="Area2D"]
|
||||||
"enemies",
|
|
||||||
]]
|
|
||||||
|
|
||||||
position = Vector2( 947.34, 293.528 )
|
position = Vector2( 947.34, 293.528 )
|
||||||
scale = Vector2( 0.07, 0.07 )
|
scale = Vector2( 0.07, 0.07 )
|
||||||
|
@ -43,7 +39,7 @@ gravity = 98.0
|
||||||
linear_damp = 0.1
|
linear_damp = 0.1
|
||||||
angular_damp = 1.0
|
angular_damp = 1.0
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
collision_mask = 0
|
collision_mask = 4
|
||||||
audio_bus_override = false
|
audio_bus_override = false
|
||||||
audio_bus_name = "Master"
|
audio_bus_name = "Master"
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -58,30 +54,23 @@ wait_time = 1.0
|
||||||
one_shot = false
|
one_shot = false
|
||||||
autostart = false
|
autostart = false
|
||||||
|
|
||||||
[node name="BG" type="Sprite" parent="." index="1"]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="1"]
|
||||||
|
|
||||||
position = Vector2( 3.5857, 9.035 )
|
|
||||||
scale = Vector2( 1.0195, 1.0195 )
|
|
||||||
texture = ExtResource( 3 )
|
|
||||||
|
|
||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="2"]
|
|
||||||
|
|
||||||
frames = SubResource( 1 )
|
frames = SubResource( 1 )
|
||||||
animation = "New Anim"
|
animation = "New Anim"
|
||||||
_sections_unfolded = [ "Transform" ]
|
|
||||||
|
|
||||||
[node name="Rotatable" type="AnimatedSprite" parent="." index="3"]
|
[node name="Rotatable" type="AnimatedSprite" parent="." index="2"]
|
||||||
|
|
||||||
frames = SubResource( 2 )
|
frames = SubResource( 2 )
|
||||||
animation = "default"
|
animation = "default"
|
||||||
_sections_unfolded = [ "Transform" ]
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="4"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="3"]
|
||||||
|
|
||||||
position = Vector2( 0, -14.2857 )
|
position = Vector2( 0, -14.2857 )
|
||||||
shape = SubResource( 3 )
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
[node name="Line2D" type="Line2D" parent="." index="5"]
|
[node name="Line2D" type="Line2D" parent="." index="4"]
|
||||||
|
|
||||||
position = Vector2( 9.15527e-05, 33.3334 )
|
position = Vector2( 9.15527e-05, 33.3334 )
|
||||||
points = PoolVector2Array( -750, -1100, 143, -1100 )
|
points = PoolVector2Array( -750, -1100, 143, -1100 )
|
||||||
|
|
56
BlackHole.gd
|
@ -1,62 +1,48 @@
|
||||||
extends "res://Bad.gd"
|
extends "res://Bad.gd"
|
||||||
|
|
||||||
|
# class member variables go here, for example:
|
||||||
|
# var a = 2
|
||||||
|
# var b = "textvar"
|
||||||
|
|
||||||
var rot_speed = 1
|
var rot_speed = 1
|
||||||
var dying = false
|
|
||||||
var splitting = false
|
|
||||||
|
|
||||||
signal flash
|
signal flash
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
starting_health = 5000
|
starting_health = 20000
|
||||||
health = starting_health
|
health = starting_health
|
||||||
speed = 10
|
speed = 10
|
||||||
kill_reward = 1000
|
kill_reward = 1000
|
||||||
boss = true
|
boss = true
|
||||||
|
|
||||||
|
var splitting = false
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
rotation += delta*rot_speed
|
rotation += delta*rot_speed
|
||||||
if rotation > 2*PI:
|
if rotation > 2*PI:
|
||||||
rotation = 0
|
rotation = 0
|
||||||
|
|
||||||
if dying == true:
|
if health < starting_health*0.88:
|
||||||
|
$MainSprite.frame = 1
|
||||||
|
if health < starting_health*0.76:
|
||||||
|
$MainSprite.frame = 2
|
||||||
|
if health < starting_health*0.64:
|
||||||
|
$MainSprite.frame = 3
|
||||||
|
if health < starting_health*0.52:
|
||||||
|
$MainSprite.frame = 4
|
||||||
|
if health < starting_health*0.40:
|
||||||
|
$MainSprite.frame = 5
|
||||||
|
if health < starting_health*0.28:
|
||||||
|
$MainSprite.frame = 6
|
||||||
|
if health < starting_health*0.16:
|
||||||
|
$CollisionBox.disabled = true
|
||||||
$TopHalf.visible = true
|
$TopHalf.visible = true
|
||||||
$BotHalf.visible = true
|
$BotHalf.visible = true
|
||||||
$MainSprite.visible = false
|
$MainSprite.visible = false
|
||||||
if rotation_degrees > 45 && rotation_degrees < 70:
|
if rotation_degrees > 45 && rotation_degrees < 70:
|
||||||
if rot_speed != 0:
|
|
||||||
emit_signal("flash")
|
|
||||||
splitting = true
|
splitting = true
|
||||||
health = 999999
|
|
||||||
elif health < starting_health*0.16:
|
|
||||||
dying = true
|
|
||||||
#$CollisionBox.disabled = true
|
|
||||||
elif health < starting_health*0.28:
|
|
||||||
if $MainSprite.frame != 6:
|
|
||||||
emit_signal("flash")
|
|
||||||
$MainSprite.frame = 6
|
|
||||||
elif health < starting_health*0.40:
|
|
||||||
if $MainSprite.frame != 5:
|
|
||||||
emit_signal("flash")
|
|
||||||
$MainSprite.frame = 5
|
|
||||||
elif health < starting_health*0.52:
|
|
||||||
if $MainSprite.frame != 4:
|
|
||||||
emit_signal("flash")
|
|
||||||
$MainSprite.frame = 4
|
|
||||||
elif health < starting_health*0.64:
|
|
||||||
if $MainSprite.frame != 3:
|
|
||||||
emit_signal("flash")
|
|
||||||
$MainSprite.frame = 3
|
|
||||||
elif health < starting_health*0.76:
|
|
||||||
if $MainSprite.frame != 2:
|
|
||||||
emit_signal("flash")
|
|
||||||
$MainSprite.frame = 2
|
|
||||||
elif health < starting_health*0.88:
|
|
||||||
if $MainSprite.frame != 1:
|
|
||||||
emit_signal("flash")
|
|
||||||
$MainSprite.frame = 1
|
|
||||||
|
|
||||||
if splitting:
|
if splitting:
|
||||||
$CollisionBox.disabled = true
|
|
||||||
rot_speed = 0
|
rot_speed = 0
|
||||||
$TopHalf.position.y -= delta*500
|
$TopHalf.position.y -= delta*500
|
||||||
$TopHalf.position.x -= delta*250
|
$TopHalf.position.x -= delta*250
|
||||||
|
|
|
@ -49,9 +49,8 @@ animations = [ {
|
||||||
|
|
||||||
position = Vector2( 1302.7, 306.846 )
|
position = Vector2( 1302.7, 306.846 )
|
||||||
scale = Vector2( 0.3, 0.3 )
|
scale = Vector2( 0.3, 0.3 )
|
||||||
z_index = -1
|
|
||||||
z_as_relative = false
|
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
_sections_unfolded = [ "Collision", "Transform" ]
|
||||||
|
|
||||||
[node name="CollisionBox" parent="." index="0"]
|
[node name="CollisionBox" parent="." index="0"]
|
||||||
|
|
||||||
|
|
9
Bloob.gd
|
@ -44,10 +44,7 @@ var velocity = Vector2()
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if health <= 0:
|
if health <= 0:
|
||||||
emit_signal("dead", 25) # was 40 # was 50
|
emit_signal("dead", 50)
|
||||||
queue_free()
|
|
||||||
if position.x < -100:
|
|
||||||
emit_signal("dead", 0)
|
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
if hit_timer < 0.15:
|
if hit_timer < 0.15:
|
||||||
|
@ -62,7 +59,7 @@ func _process(delta):
|
||||||
if velocity.length() > 0:
|
if velocity.length() > 0:
|
||||||
velocity = velocity.normalized() * SPEED
|
velocity = velocity.normalized() * SPEED
|
||||||
|
|
||||||
var health_bar = Vector2(((health * 2.5) - 157), -225)
|
# var health_bar = Vector2(((health * 3) - 157), -273)
|
||||||
$Line2D.set_point_position( 1, health_bar )
|
# $Line2D.set_point_position( 1, health_bar )
|
||||||
|
|
||||||
position += velocity * delta
|
position += velocity * delta
|
|
@ -18,9 +18,7 @@ animations = [ {
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="BadBlob" type="Area2D" groups=[
|
[node name="BadBlob" type="Area2D"]
|
||||||
"enemies",
|
|
||||||
]]
|
|
||||||
|
|
||||||
scale = Vector2( 0.25, 0.25 )
|
scale = Vector2( 0.25, 0.25 )
|
||||||
z_index = -1
|
z_index = -1
|
||||||
|
@ -50,8 +48,8 @@ animation = "default"
|
||||||
[node name="Line2D" type="Line2D" parent="." index="2"]
|
[node name="Line2D" type="Line2D" parent="." index="2"]
|
||||||
|
|
||||||
position = Vector2( 112, 65.3334 )
|
position = Vector2( 112, 65.3334 )
|
||||||
points = PoolVector2Array( -157, -225, 143, -225 )
|
points = PoolVector2Array( -157, -273, 143, -273 )
|
||||||
width = 8.0
|
width = 12.0
|
||||||
default_color = Color( 0, 1, 0.0390625, 1 )
|
default_color = Color( 0, 1, 0.0390625, 1 )
|
||||||
texture_mode = 31
|
texture_mode = 31
|
||||||
joint_mode = 2
|
joint_mode = 2
|
||||||
|
|
36
Brows.gd
|
@ -1,36 +0,0 @@
|
||||||
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
|
|
Before Width: | Height: | Size: 17 KiB |
|
@ -1,29 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Image Sources/bad1_base.png"
|
|
||||||
dest_files=[ "res://.import/bad1_base.png-56fd809a9711b2f0bdcea7bd3e329e73.stex" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_mode=0
|
|
||||||
compress/normal_map=0
|
|
||||||
flags/repeat=0
|
|
||||||
flags/filter=true
|
|
||||||
flags/mipmaps=false
|
|
||||||
flags/anisotropic=false
|
|
||||||
flags/srgb=2
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/HDR_as_SRGB=false
|
|
||||||
stream=false
|
|
||||||
size_limit=0
|
|
||||||
detect_3d=true
|
|
||||||
svg/scale=1.0
|
|
|
@ -1,96 +0,0 @@
|
||||||
#
|
|
||||||
# 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])
|
|
|
@ -1,224 +0,0 @@
|
||||||
[gd_scene load_steps=8 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://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"]
|
|
||||||
|
|
||||||
|
|
4
Laser.gd
|
@ -22,7 +22,6 @@ extends Area2D
|
||||||
signal hit
|
signal hit
|
||||||
|
|
||||||
const DEFAULT_DAMAGE = 10
|
const DEFAULT_DAMAGE = 10
|
||||||
const DEFAULT_FALLOFF = 1.2
|
|
||||||
|
|
||||||
export (int) var SPEED
|
export (int) var SPEED
|
||||||
export (int) var DAMAGE
|
export (int) var DAMAGE
|
||||||
|
@ -31,7 +30,6 @@ var current_pen = 0
|
||||||
var friendly_laser = true
|
var friendly_laser = true
|
||||||
var damage = DEFAULT_DAMAGE
|
var damage = DEFAULT_DAMAGE
|
||||||
var boss = false
|
var boss = false
|
||||||
var falloff = DEFAULT_FALLOFF
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
$AnimatedSprite.play()
|
$AnimatedSprite.play()
|
||||||
|
@ -43,8 +41,6 @@ func hit(who):
|
||||||
pass
|
pass
|
||||||
elif current_pen > 0:
|
elif current_pen > 0:
|
||||||
current_pen -= 1
|
current_pen -= 1
|
||||||
modulate=Color("ca4747")
|
|
||||||
damage = damage/falloff
|
|
||||||
else:
|
else:
|
||||||
hide()
|
hide()
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
|
@ -21,7 +21,6 @@ animations = [ {
|
||||||
|
|
||||||
[node name="Laser" type="Area2D"]
|
[node name="Laser" type="Area2D"]
|
||||||
|
|
||||||
z_as_relative = false
|
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
gravity_vec = Vector2( 0, 1 )
|
gravity_vec = Vector2( 0, 1 )
|
||||||
gravity = 98.0
|
gravity = 98.0
|
||||||
|
@ -32,7 +31,7 @@ collision_mask = 7
|
||||||
audio_bus_override = false
|
audio_bus_override = false
|
||||||
audio_bus_name = "Master"
|
audio_bus_name = "Master"
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
_sections_unfolded = [ "Collision", "Visibility", "Z Index" ]
|
_sections_unfolded = [ "Collision", "Z Index" ]
|
||||||
SPEED = 1200
|
SPEED = 1200
|
||||||
DAMAGE = 10
|
DAMAGE = 10
|
||||||
|
|
||||||
|
|
358
Main.gd
|
@ -24,7 +24,6 @@ export (PackedScene) var BlobBad
|
||||||
export (PackedScene) var LaserBad
|
export (PackedScene) var LaserBad
|
||||||
export (PackedScene) var Prison
|
export (PackedScene) var Prison
|
||||||
export (PackedScene) var RectangleBoss
|
export (PackedScene) var RectangleBoss
|
||||||
export (PackedScene) var RectangleReturn
|
|
||||||
export (PackedScene) var BlackHole
|
export (PackedScene) var BlackHole
|
||||||
|
|
||||||
var players = {}
|
var players = {}
|
||||||
|
@ -40,100 +39,34 @@ var player_info
|
||||||
var touchy_shooty = false
|
var touchy_shooty = false
|
||||||
var my_info = { name = "sagethesagesage", color = "FFFFFF" }
|
var my_info = { name = "sagethesagesage", color = "FFFFFF" }
|
||||||
var mainmenu
|
var mainmenu
|
||||||
var current_round = 1
|
|
||||||
|
|
||||||
var spawning_done = false
|
|
||||||
var not_loading = false
|
var not_loading = false
|
||||||
|
|
||||||
|
const BADDIE_WAIT_TIME_DEFAULT = 4
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# Prepare black rectangle for fading in
|
# Prepare black rectangle for fading in
|
||||||
$ColorRect.visible = true
|
$ColorRect.visible = true
|
||||||
|
|
||||||
|
randomize()
|
||||||
|
|
||||||
if OS.has_touchscreen_ui_hint():
|
if OS.has_touchscreen_ui_hint():
|
||||||
$HowTos/HowTo.visible = true
|
$HowTo.visible = true
|
||||||
else:
|
else:
|
||||||
$HowTos/HowToDesktop.visible = true
|
$HowToDesktop.visible = true
|
||||||
|
|
||||||
# Launch the main menu on boot and pause the game
|
# Launch the main menu on boot and pause the game
|
||||||
mainmenu = preload("res://MainMenu.tscn").instance()
|
mainmenu = preload("res://MainMenu.tscn").instance()
|
||||||
add_child(mainmenu)
|
add_child(mainmenu)
|
||||||
mainmenu.connect("multiplayer_menu", self, "_open_multiplayer_menu")
|
mainmenu.connect("multiplayer_menu", self, "_open_multiplayer_menu")
|
||||||
mainmenu.connect("start_game", self, "rounds")
|
|
||||||
get_tree().paused = true
|
get_tree().paused = true
|
||||||
|
|
||||||
|
# Prepare timer for spawning enemies
|
||||||
|
$BaddieTimer.wait_time = BADDIE_WAIT_TIME_DEFAULT
|
||||||
|
$BaddieTimer.start()
|
||||||
|
|
||||||
# Seed randi for randomizing enemy spawn locations
|
# Seed randi for randomizing enemy spawn locations
|
||||||
randomize()
|
randomize()
|
||||||
updatePoints()
|
|
||||||
|
|
||||||
const DEFAULT_SPAWN_SPEED = 5
|
|
||||||
func rounds(round_number):
|
|
||||||
$BG.visible = true
|
|
||||||
|
|
||||||
##### WEAKER, LESS VALUABLE ENEMIES, AT HIGHER VOLUME, MAY BE MORE ENGAGING
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
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", 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)
|
|
||||||
rpc("set_wave_name", "Wave 3: Money")
|
|
||||||
4:
|
|
||||||
roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.75,12,3,1,0)
|
|
||||||
rpc("set_wave_name", "Wave 4: YOU CAN BLOCK ENEMY LASERS WITH YOUR SHIP")
|
|
||||||
5:
|
|
||||||
roundOfEnemies(.6,DEFAULT_SPAWN_SPEED*.5,15,3,0,0)
|
|
||||||
rpc("set_wave_name", "Wave 5: One of These Days")
|
|
||||||
6:
|
|
||||||
roundOfEnemies(.7,DEFAULT_SPAWN_SPEED*.5,18,6,1,0)
|
|
||||||
rpc("set_wave_name", "Wave 6: Seamus")
|
|
||||||
7:
|
|
||||||
roundOfEnemies(.8,DEFAULT_SPAWN_SPEED*.5,21,7,1,0)
|
|
||||||
rpc("set_wave_name", "Wave 7: ")
|
|
||||||
8:
|
|
||||||
roundOfEnemies(.8,DEFAULT_SPAWN_SPEED*.75/(8/4),20,6,0,floor(8/8))
|
|
||||||
rpc("set_wave_name", "Wave 8: Free Four")
|
|
||||||
9:
|
|
||||||
roundOfEnemies(.9, DEFAULT_SPAWN_SPEED*(0.5), 9*3, 9, floor(9/4), floor(9/8))
|
|
||||||
rpc("set_wave_name", str("Wave 9"))
|
|
||||||
10:
|
|
||||||
rpc("set_wave_name", "Wave 10: What do you want from me?")
|
|
||||||
if get_tree().is_network_server() == true:
|
|
||||||
rpc("bossMode", 0)
|
|
||||||
else:
|
|
||||||
bossMode(0)
|
|
||||||
11:
|
|
||||||
roundOfEnemies(1,DEFAULT_SPAWN_SPEED*.75/(11/4),11*3,11,floor(11/4),floor(11/8))
|
|
||||||
$WaveLabel.text = str("Wave ", 11)
|
|
||||||
$BG/Sun.visible = true
|
|
||||||
15:
|
|
||||||
rpc("set_wave_name", "Wave 15: Eclipse")
|
|
||||||
if get_tree().is_network_server() == true:
|
|
||||||
rpc("bossMode", 1)
|
|
||||||
else:
|
|
||||||
bossMode(1)
|
|
||||||
20:
|
|
||||||
roundOfEnemies((1+(20-11)/10), (DEFAULT_SPAWN_SPEED*(0.5)), 20*3, 20, floor(20/4), floor(20/8))
|
|
||||||
var roundNo:
|
|
||||||
############### health ##### spawn speed #################### bad1s#### blobs # lasers ######### prisons ######
|
|
||||||
roundOfEnemies((1+(roundNo-11)/10), (DEFAULT_SPAWN_SPEED*(0.5)), roundNo*3, roundNo, floor(roundNo/4), floor(roundNo/8))
|
|
||||||
rpc("set_wave_name", str("Wave ", roundNo))
|
|
||||||
|
|
||||||
### Wave names ###
|
|
||||||
### on rectangle's return: The Hero's Return
|
|
||||||
### on Black boss appearance: Eclipse
|
|
||||||
|
|
||||||
sync func set_wave_name(name):
|
|
||||||
$WaveLabel.text = str(name)
|
|
||||||
|
|
||||||
# Open the multiplayer section of the menu and pause the game
|
# Open the multiplayer section of the menu and pause the game
|
||||||
func _open_multiplayer_menu():
|
func _open_multiplayer_menu():
|
||||||
|
@ -162,13 +95,15 @@ func _process(delta):
|
||||||
if Input.is_action_pressed("ui_accept"):
|
if Input.is_action_pressed("ui_accept"):
|
||||||
_on_HideHowTo_pressed()
|
_on_HideHowTo_pressed()
|
||||||
|
|
||||||
|
# Constantly update point display
|
||||||
|
updatePoints()
|
||||||
|
|
||||||
# If you're in multiplayer,
|
# If you're in multiplayer,
|
||||||
if get_tree().has_network_peer():
|
if get_tree().has_network_peer():
|
||||||
# and not the host
|
# and not the host
|
||||||
if !get_tree().is_network_server():
|
if !get_tree().is_network_server():
|
||||||
# Stop spawning bads
|
# Stop spawning bads
|
||||||
#$BaddieTimer.stop()
|
$BaddieTimer.stop()
|
||||||
pass
|
|
||||||
|
|
||||||
if (touchy_feely && (abs(touchy_feely.position.x - $Player.position.x) > 1)):
|
if (touchy_feely && (abs(touchy_feely.position.x - $Player.position.x) > 1)):
|
||||||
if (touchy_feely.position.x < 800):
|
if (touchy_feely.position.x < 800):
|
||||||
|
@ -184,12 +119,11 @@ func _process(delta):
|
||||||
if rectangle_opacity <= 0:
|
if rectangle_opacity <= 0:
|
||||||
booting = false
|
booting = false
|
||||||
$ColorRect.visible = false
|
$ColorRect.visible = false
|
||||||
$Music.playing = true
|
|
||||||
|
|
||||||
# Flash the screen white
|
# Flash the screen white
|
||||||
if screen_flashing == true:
|
if screen_flashing == true:
|
||||||
$ColorRect.color = Color(1, 1, 1, rectangle_opacity)
|
$ColorRect.color = Color(1, 1, 1, rectangle_opacity)
|
||||||
rectangle_opacity -= delta/3
|
rectangle_opacity -= delta/4
|
||||||
if rectangle_opacity <= 0:
|
if rectangle_opacity <= 0:
|
||||||
screen_flashing = false
|
screen_flashing = false
|
||||||
$ColorRect.visible = false
|
$ColorRect.visible = false
|
||||||
|
@ -198,94 +132,66 @@ func _process(delta):
|
||||||
func _on_bad_death(kill_money):
|
func _on_bad_death(kill_money):
|
||||||
# Give players appropriate money
|
# Give players appropriate money
|
||||||
$Player.money += kill_money
|
$Player.money += kill_money
|
||||||
updatePoints()
|
|
||||||
|
|
||||||
print(current_round)
|
|
||||||
|
|
||||||
if get_tree().is_network_server() || not get_tree().has_network_peer():
|
|
||||||
if get_tree().get_nodes_in_group("enemies").size() == 1 && spawning_done == true:
|
|
||||||
rpc("openPlayerMenu")
|
|
||||||
current_round +=1
|
|
||||||
|
|
||||||
sync func openPlayerMenu():
|
|
||||||
$Player.upgradeMenu()
|
|
||||||
|
|
||||||
func startNextRound():
|
|
||||||
if get_tree().is_network_server() || not get_tree().has_network_peer():
|
|
||||||
rounds(current_round)
|
|
||||||
|
|
||||||
func roundOfEnemies(bad_health_multi, spawn_time, bad1s, badblobs, badlasers, badprisons):
|
|
||||||
spawning_done = false
|
|
||||||
# each enemy type comes in as an integer
|
|
||||||
# randomly dole out enemies until each is at 0
|
|
||||||
yield(get_tree().create_timer(1), "timeout")
|
|
||||||
var enemiesToBeSpawned = bad1s+badblobs+badlasers+badprisons
|
|
||||||
if enemiesToBeSpawned == 0:
|
|
||||||
return false
|
|
||||||
|
|
||||||
var bad_type
|
|
||||||
var badposition = Vector2()
|
|
||||||
|
|
||||||
while enemiesToBeSpawned > 0:
|
|
||||||
var nextEnemy = randi()%5
|
|
||||||
if (nextEnemy == 0 || nextEnemy == 4) && bad1s > 0 && get_tree().paused == false:
|
|
||||||
bad_type = 0
|
|
||||||
bad1s -= 1
|
|
||||||
yield(get_tree().create_timer(spawn_time), "timeout")
|
|
||||||
elif (nextEnemy == 1) && badblobs > 0 && get_tree().paused == false:
|
|
||||||
bad_type = 1
|
|
||||||
badblobs -= 1
|
|
||||||
yield(get_tree().create_timer(spawn_time), "timeout")
|
|
||||||
elif (nextEnemy == 2) && badlasers > 0 && get_tree().paused == false:
|
|
||||||
bad_type = 2
|
|
||||||
badlasers -= 1
|
|
||||||
yield(get_tree().create_timer(spawn_time), "timeout")
|
|
||||||
elif (nextEnemy == 3) && badprisons > 0 && get_tree().paused == false:
|
|
||||||
bad_type = 3
|
|
||||||
badprisons -= 1
|
|
||||||
yield(get_tree().create_timer(spawn_time), "timeout")
|
|
||||||
else: bad_type = 50000
|
|
||||||
|
|
||||||
enemiesToBeSpawned = bad1s+badblobs+badlasers+badprisons
|
|
||||||
|
|
||||||
if get_tree().paused == true:
|
|
||||||
yield(get_tree().create_timer(1), "timeout")
|
|
||||||
|
|
||||||
if bad_type < 50000:
|
|
||||||
badposition.x = 1100
|
|
||||||
badposition.y = (randi()%410) + 50
|
|
||||||
rpc("spawnBad", bad_type, badposition, bad_health_multi)
|
|
||||||
|
|
||||||
spawning_done = true
|
|
||||||
#$Player.upgradeMenu()
|
|
||||||
|
|
||||||
func upgradeTurret(position):
|
|
||||||
print("upgradeTurret()")
|
|
||||||
rpc("remoteUpgradeTurret", position)
|
|
||||||
|
|
||||||
####################
|
|
||||||
# UPGRADE A TURRET #
|
|
||||||
remote func remoteUpgradeTurret(position):
|
|
||||||
for child in get_children():
|
|
||||||
if "turret" in child.get_name():
|
|
||||||
print("turret")
|
|
||||||
if child.position == position:
|
|
||||||
child.upgradeTurret()
|
|
||||||
#child.damage = damage
|
|
||||||
#child.get_node("Range").scale = t_range
|
|
||||||
#child.get_node("ReloadTimer").wait_time = reload_time
|
|
||||||
print(child.damage, child.get_node("Range").scale, child.get_node("ReloadTimer").wait_time)
|
|
||||||
break
|
|
||||||
# UPGRADE A TURRET #
|
|
||||||
####################
|
|
||||||
|
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# ENEMY SPAWNING SCRIPT #
|
# ENEMY SPAWNING SCRIPT #
|
||||||
#########################
|
#########################
|
||||||
|
var a_round_of_bads = 50
|
||||||
|
var sendblob = 1
|
||||||
var bad_health_multi = 1.5
|
var bad_health_multi = 1.5
|
||||||
|
var total_bads_spawned = 0
|
||||||
|
func BaddieTimer():
|
||||||
|
#if total_bads_spawned%6 == 0: # 75 default
|
||||||
|
# if get_tree().is_network_server():
|
||||||
|
# total_bads_spawned += 1
|
||||||
|
# rpc("bossMode")
|
||||||
|
# else:
|
||||||
|
# total_bads_spawned += 1
|
||||||
|
# bossMode()
|
||||||
|
#
|
||||||
|
if bads_this_round <= a_round_of_bads && bad_spawning_enabled:
|
||||||
|
var bad_type
|
||||||
|
var badposition = Vector2()
|
||||||
|
|
||||||
sync func spawnBad(bad_type, badposition, health_multi):
|
if sendblob%6 == 0:
|
||||||
|
if get_tree().is_network_server():
|
||||||
|
total_bads_spawned += 1
|
||||||
|
sendblob += 1
|
||||||
|
rpc("bossMode")
|
||||||
|
else:
|
||||||
|
total_bads_spawned += 1
|
||||||
|
sendblob += 1
|
||||||
|
bossMode()
|
||||||
|
else:
|
||||||
|
if sendblob%50 == 0:
|
||||||
|
bad_type = 3
|
||||||
|
sendblob += 1
|
||||||
|
elif sendblob%20 == 0:
|
||||||
|
bad_type = 2
|
||||||
|
sendblob += 1
|
||||||
|
elif sendblob%5 == 0:
|
||||||
|
bad_type = 1
|
||||||
|
sendblob += 1
|
||||||
|
else:
|
||||||
|
bad_type = 0
|
||||||
|
sendblob += 1
|
||||||
|
|
||||||
|
bads_this_round += 1
|
||||||
|
if $BaddieTimer.wait_time > 1:
|
||||||
|
$BaddieTimer.wait_time = $BaddieTimer.wait_time * 0.99
|
||||||
|
if bads_this_round == a_round_of_bads:
|
||||||
|
bad_health_multi *= 1.5
|
||||||
|
|
||||||
|
badposition.x = 1200
|
||||||
|
badposition.y = (randi()%410) + 50
|
||||||
|
if get_tree().is_network_server():
|
||||||
|
rpc("spawnBad", bad_type, badposition, bad_health_multi)
|
||||||
|
else:
|
||||||
|
spawnBad(bad_type, badposition, bad_health_multi)
|
||||||
|
else:
|
||||||
|
bads_this_round = 0
|
||||||
|
|
||||||
|
sync func spawnBad(bad_type, position, health_multi):
|
||||||
var bad
|
var bad
|
||||||
if bad_type == 0:
|
if bad_type == 0:
|
||||||
bad = FirstBad.instance()
|
bad = FirstBad.instance()
|
||||||
|
@ -299,52 +205,43 @@ sync func spawnBad(bad_type, badposition, health_multi):
|
||||||
# Increase BG speed with each enemy spawned
|
# Increase BG speed with each enemy spawned
|
||||||
$BG.fly_speed *= 1.01
|
$BG.fly_speed *= 1.01
|
||||||
|
|
||||||
|
# Add one to total of enemies spawned
|
||||||
|
total_bads_spawned += 1
|
||||||
|
|
||||||
add_child(bad)
|
add_child(bad)
|
||||||
bad.connect("dead", self, "_on_bad_death")
|
bad.connect("dead", self, "_on_bad_death")
|
||||||
if bad_type == 3:
|
if bad_type == 3:
|
||||||
bad.connect("health_up", self, "_on_health_up")
|
bad.connect("health_up", self, "_on_health_up")
|
||||||
bad.health_multi = health_multi
|
bad.health_multi = health_multi
|
||||||
bad.position = badposition
|
bad.position = position
|
||||||
|
|
||||||
func _on_health_up(hp_increase):
|
func _on_health_up(hp_increase):
|
||||||
$Mothership.health += hp_increase
|
$Mothership.health += hp_increase
|
||||||
$Mothership._update_health_bar()
|
$Mothership._update_health_bar()
|
||||||
|
|
||||||
func _on_PauseButton_pressed():
|
func _on_PauseButton_pressed():
|
||||||
$Player.pauseMenu()
|
$Player.upgradeMenu()
|
||||||
$ColorRect.visible = false
|
|
||||||
|
|
||||||
func updatePoints():
|
func updatePoints():
|
||||||
$MoneyDisplay.text = str("$", $Player.money)
|
$MoneyDisplay.text = str($Player.money, " points")
|
||||||
#$MoneyDisplay.text = str($Player.money, " points")
|
|
||||||
|
func _on_Player_update_display():
|
||||||
|
updatePoints()
|
||||||
|
|
||||||
func _on_Mothership_game_over():
|
func _on_Mothership_game_over():
|
||||||
for child in self.get_children():
|
$ShootButton.visible = false
|
||||||
print(child, child.name)
|
|
||||||
if ("Bad" in child.name):
|
|
||||||
child.queue_free()
|
|
||||||
elif (child.has_method("bossHealth")):
|
|
||||||
child.queue_free()
|
|
||||||
$Player.gameOver()
|
$Player.gameOver()
|
||||||
|
|
||||||
func _on_Player_restart_game():
|
func _on_Player_restart_game():
|
||||||
print("_on_Player_restart_game()")
|
|
||||||
"""
|
|
||||||
for child in self.get_children():
|
for child in self.get_children():
|
||||||
print(child, child.name)
|
if (child.has_method("_on_Visibility_screen_exited")):
|
||||||
if ("Bad" in child.name):
|
|
||||||
child.queue_free()
|
child.queue_free()
|
||||||
elif (child.has_method("bossHealth")):
|
if (child.has_method("bossHealth")):
|
||||||
child.queue_free()"""
|
child.queue_free()
|
||||||
current_round = 1
|
bads_this_round = 0
|
||||||
spawning_done = true
|
total_bads_spawned = 0
|
||||||
updatePoints()
|
$BaddieTimer.wait_time = BADDIE_WAIT_TIME_DEFAULT
|
||||||
if get_tree().is_network_server() || not get_tree().has_network_peer():
|
$ShootButton.visible = true
|
||||||
rpc("hideGameOver")
|
|
||||||
rpc("openPlayerMenu")
|
|
||||||
|
|
||||||
remote func hideGameOver():
|
|
||||||
$Player.restart_game()
|
|
||||||
|
|
||||||
var touchy_feely
|
var touchy_feely
|
||||||
|
|
||||||
|
@ -352,9 +249,10 @@ var touchscreen_on = false
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if (event is InputEventScreenTouch || event is InputEventScreenDrag):
|
if (event is InputEventScreenTouch || event is InputEventScreenDrag):
|
||||||
touchscreen_on = true
|
touchscreen_on = true
|
||||||
if event.position.x < 800:
|
if event.position.x < 800: #&& (abs (event.position.y - $Player.position.y) < 100) :
|
||||||
$Player.position.x = event.position.x + 100*(event.position.x/800)
|
$Player.position.x = event.position.x + 100*(event.position.x/800)
|
||||||
$Player.position.y = event.position.y - 100
|
$Player.position.y = event.position.y - 100
|
||||||
|
prints(event.index)
|
||||||
else:
|
else:
|
||||||
touchy_shooty = true
|
touchy_shooty = true
|
||||||
|
|
||||||
|
@ -362,12 +260,6 @@ func other_shooting_upgrade(id, other_bullet_delay):
|
||||||
prints("Other player shooting speed upgrade")
|
prints("Other player shooting speed upgrade")
|
||||||
get_node(str(id)).timer.set_wait_time(other_bullet_delay)
|
get_node(str(id)).timer.set_wait_time(other_bullet_delay)
|
||||||
|
|
||||||
func other_damage_upgrade(id, other_laser_damage):
|
|
||||||
get_node(str(id)).laser_damage = other_laser_damage
|
|
||||||
|
|
||||||
func other_laser_penetration_upgrade(id, other_laser_penetration):
|
|
||||||
get_node(str(id)).laser_penetration = other_laser_penetration
|
|
||||||
|
|
||||||
func other_ship_color_change(id, other_color):
|
func other_ship_color_change(id, other_color):
|
||||||
prints("Other player color change")
|
prints("Other player color change")
|
||||||
get_node(str(id)).modulate(other_color)
|
get_node(str(id)).modulate(other_color)
|
||||||
|
@ -379,54 +271,34 @@ func double_laser_upgrade(id):
|
||||||
# Show other player's movement
|
# Show other player's movement
|
||||||
func _on_Player_multiplayer_movement(id, pos, other_is_shooting):
|
func _on_Player_multiplayer_movement(id, pos, other_is_shooting):
|
||||||
get_node(str(id)).position = pos
|
get_node(str(id)).position = pos
|
||||||
get_node(str(id)).is_shooting = other_is_shooting
|
|
||||||
|
if other_is_shooting:
|
||||||
|
get_node(str(id)).shoot()
|
||||||
|
|
||||||
# BOSS MODE #
|
# BOSS MODE #
|
||||||
# Disable enemy spawning
|
# Disable enemy spawning
|
||||||
# Wait a few seconds for enemies to clear
|
# Wait a few seconds for enemies to clear
|
||||||
# Call for boss launch
|
# Call for boss launch
|
||||||
var bosstimer = null
|
var bosstimer = null
|
||||||
sync func bossMode(boss_type):
|
sync func bossMode():
|
||||||
prints("bossMode()")
|
prints("bossMode()")
|
||||||
|
bad_spawning_enabled = false
|
||||||
bosstimer = Timer.new()
|
bosstimer = Timer.new()
|
||||||
"""bosstimer.connect("timeout",self,"_launch_boss", boss_type)
|
bosstimer.connect("timeout",self,"_launch_boss")
|
||||||
add_child(bosstimer) #to process
|
add_child(bosstimer) #to process
|
||||||
bosstimer.wait_time = 3
|
bosstimer.wait_time = 15
|
||||||
bosstimer.one_shot = true
|
bosstimer.one_shot = true
|
||||||
bosstimer.start() #to start"""
|
bosstimer.start() #to start
|
||||||
yield(get_tree().create_timer(3), "timeout")
|
|
||||||
|
|
||||||
|
|
||||||
prints("_launch_boss(",boss_type,")")
|
|
||||||
var bad
|
|
||||||
if boss_type == 0:
|
|
||||||
bad = RectangleBoss.instance()
|
|
||||||
elif boss_type == 1:
|
|
||||||
bad = BlackHole.instance()
|
|
||||||
elif boss_type == 2:
|
|
||||||
bad = RectangleReturn.instance()
|
|
||||||
$Music.volume_db = -40
|
|
||||||
add_child(bad)
|
|
||||||
|
|
||||||
# Flash screen when signalled
|
|
||||||
bad.connect("flash", self, "_flash_screen")
|
|
||||||
bad.show_behind_parent = true
|
|
||||||
|
|
||||||
# Boss death functions the same as regular death
|
|
||||||
bad.connect("dead", self, "_on_boss_death")
|
|
||||||
|
|
||||||
# Get boss health
|
|
||||||
bad.connect("boss_health", self, "getBossHealth")
|
|
||||||
"""
|
|
||||||
# Spawn the first boss
|
# Spawn the first boss
|
||||||
func _launch_boss(boss_type):
|
func _launch_boss():
|
||||||
prints("_launch_boss(",boss_type,")")
|
prints("_launch_boss()")
|
||||||
var bad
|
var bad
|
||||||
if boss_type == 0:
|
var which_boss = randi()%2
|
||||||
|
if which_boss == 0:
|
||||||
bad = RectangleBoss.instance()
|
bad = RectangleBoss.instance()
|
||||||
elif boss_type == 1:
|
elif which_boss == 1:
|
||||||
bad = BlackHole.instance()
|
bad = BlackHole.instance()
|
||||||
$Music.volume_db = -20
|
|
||||||
add_child(bad)
|
add_child(bad)
|
||||||
|
|
||||||
# Flash screen when signalled
|
# Flash screen when signalled
|
||||||
|
@ -438,7 +310,7 @@ func _launch_boss(boss_type):
|
||||||
|
|
||||||
# Get boss health
|
# Get boss health
|
||||||
bad.connect("boss_health", self, "getBossHealth")
|
bad.connect("boss_health", self, "getBossHealth")
|
||||||
"""
|
|
||||||
func getBossHealth(currentHealth, totalHealth):
|
func getBossHealth(currentHealth, totalHealth):
|
||||||
totalHealth = float(totalHealth)
|
totalHealth = float(totalHealth)
|
||||||
var health_bar = Vector2(((currentHealth/totalHealth)*800)+100, 50)
|
var health_bar = Vector2(((currentHealth/totalHealth)*800)+100, 50)
|
||||||
|
@ -452,12 +324,8 @@ func getBossHealth(currentHealth, totalHealth):
|
||||||
func _on_boss_death(kill_money):
|
func _on_boss_death(kill_money):
|
||||||
# Give players appropriate money, and restart spawns
|
# Give players appropriate money, and restart spawns
|
||||||
$Player.money += kill_money
|
$Player.money += kill_money
|
||||||
updatePoints()
|
|
||||||
bad_spawning_enabled = true
|
bad_spawning_enabled = true
|
||||||
bosstimer.stop()
|
bosstimer.stop()
|
||||||
rpc("openPlayerMenu")
|
|
||||||
current_round +=1
|
|
||||||
$Music.volume_db = 0
|
|
||||||
|
|
||||||
# Begins screen-flashing process
|
# Begins screen-flashing process
|
||||||
func _flash_screen():
|
func _flash_screen():
|
||||||
|
@ -469,6 +337,7 @@ func _flash_screen():
|
||||||
func _load_players(id, info):
|
func _load_players(id, info):
|
||||||
player_info = info
|
player_info = info
|
||||||
prints("_load_players", player_info)
|
prints("_load_players", player_info)
|
||||||
|
#prints(player_info[id].name, "YEET", player_info[id].color)
|
||||||
|
|
||||||
func _start_multiplayer_game():
|
func _start_multiplayer_game():
|
||||||
print(player_info)
|
print(player_info)
|
||||||
|
@ -479,26 +348,15 @@ func _start_multiplayer_game():
|
||||||
player.set_name(str(peer_id))
|
player.set_name(str(peer_id))
|
||||||
prints(str(peer_id), "yeetert")
|
prints(str(peer_id), "yeetert")
|
||||||
add_child(player)
|
add_child(player)
|
||||||
|
#get_node("/").add_child(player)
|
||||||
player.setUsername(player_info[peer_id].name)
|
player.setUsername(player_info[peer_id].name)
|
||||||
if get_tree().is_network_server():
|
#$MultiplayerTimer.start()
|
||||||
rounds(1)
|
|
||||||
|
|
||||||
func _on_HideHowTo_pressed():
|
func _on_HideHowTo_pressed():
|
||||||
$HowTos.visible = false
|
$HowTo.visible = false
|
||||||
|
$HowToDesktop.visible = false
|
||||||
|
$HideHowTo.visible = false
|
||||||
|
|
||||||
func _on_Player_other_ship_enable_rainbow(id):
|
func _on_Player_other_ship_enable_rainbow(id):
|
||||||
prints("Other player entered rainbow mode")
|
prints("Other player entered rainbow mode")
|
||||||
get_node(str(id)).enable_the_rainbow()
|
get_node(str(id)).enable_the_rainbow()
|
||||||
|
|
||||||
func _on_Player_buy_turret(id, turret_position):
|
|
||||||
print("Main:buyTurret", turret_position)
|
|
||||||
var turret = preload("res://Turret.tscn").instance()
|
|
||||||
turret.connect("upgrade_turret", self, "upgradeTurret")
|
|
||||||
turret.set_name(str(id,"turret"))
|
|
||||||
add_child(turret)
|
|
||||||
turret.position = turret_position
|
|
||||||
turret.scale.x = 0.25
|
|
||||||
turret.scale.y = 0.25
|
|
||||||
|
|
||||||
func _exit_tree():
|
|
||||||
print("EXITING AND STUFF")
|
|
233
Main.tscn
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=22 format=2]
|
[gd_scene load_steps=20 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Main.gd" type="Script" id=1]
|
[ext_resource path="res://Main.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://Bad1.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://Bad1.tscn" type="PackedScene" id=2]
|
||||||
|
@ -6,30 +6,28 @@
|
||||||
[ext_resource path="res://BadLaser.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://BadLaser.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://Prison.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://Prison.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://RectangleBoss.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://RectangleBoss.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://RectangleReturn.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://BlackHole.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://BlackHole.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://BG.gd" type="Script" id=8]
|
||||||
[ext_resource path="res://BG.tscn" type="PackedScene" id=9]
|
[ext_resource path="res://art/bg.png" type="Texture" id=9]
|
||||||
[ext_resource path="res://Player.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://Player.tscn" type="PackedScene" id=10]
|
||||||
[ext_resource path="res://Mothership.tscn" type="PackedScene" id=11]
|
[ext_resource path="res://Mothership.tscn" type="PackedScene" id=11]
|
||||||
[ext_resource path="res://art/hand-numbs.ttf" type="DynamicFontData" id=12]
|
[ext_resource path="res://OtherPlayer.tscn" type="PackedScene" id=12]
|
||||||
[ext_resource path="res://OtherPlayer.tscn" type="PackedScene" id=13]
|
[ext_resource path="res://art/interface/how_to.png" type="Texture" id=13]
|
||||||
[ext_resource path="res://art/interface/pause.png" type="Texture" id=14]
|
[ext_resource path="res://art/interface/how_to_desktop.png" type="Texture" id=14]
|
||||||
[ext_resource path="res://art/interface/how_to.png" type="Texture" id=15]
|
[ext_resource path="res://art/interface/pause.png" type="Texture" id=15]
|
||||||
[ext_resource path="res://art/interface/how_to_desktop.png" type="Texture" id=16]
|
|
||||||
[ext_resource path="res://main_bg.ogg" type="AudioStream" id=17]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
[sub_resource type="ImageTexture" id=1]
|
||||||
|
|
||||||
size = 28
|
flags = 7
|
||||||
use_mipmaps = false
|
storage = 0
|
||||||
use_filter = false
|
lossy_quality = 0.7
|
||||||
font_data = ExtResource( 12 )
|
flags = 7
|
||||||
_sections_unfolded = [ "Font", "Settings" ]
|
size = Vector2( 0, 0 )
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=2]
|
[sub_resource type="SpriteFrames" id=2]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 14 ) ],
|
"frames": [ ExtResource( 13 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "default",
|
"name": "default",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
|
@ -38,7 +36,7 @@ animations = [ {
|
||||||
[sub_resource type="SpriteFrames" id=3]
|
[sub_resource type="SpriteFrames" id=3]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 15 ) ],
|
"frames": [ ExtResource( 14 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "default",
|
"name": "default",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
|
@ -47,13 +45,13 @@ animations = [ {
|
||||||
[sub_resource type="SpriteFrames" id=4]
|
[sub_resource type="SpriteFrames" id=4]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 16 ) ],
|
"frames": [ ExtResource( 15 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "default",
|
"name": "default",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="Main" type="Node"]
|
[node name="Main" type="Node" index="0"]
|
||||||
|
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
_sections_unfolded = [ "Pause" ]
|
_sections_unfolded = [ "Pause" ]
|
||||||
|
@ -62,48 +60,77 @@ BlobBad = ExtResource( 3 )
|
||||||
LaserBad = ExtResource( 4 )
|
LaserBad = ExtResource( 4 )
|
||||||
Prison = ExtResource( 5 )
|
Prison = ExtResource( 5 )
|
||||||
RectangleBoss = ExtResource( 6 )
|
RectangleBoss = ExtResource( 6 )
|
||||||
RectangleReturn = ExtResource( 7 )
|
BlackHole = ExtResource( 7 )
|
||||||
BlackHole = ExtResource( 8 )
|
|
||||||
|
|
||||||
[node name="BG" parent="." index="0" instance=ExtResource( 9 )]
|
[node name="BG" type="Node2D" parent="." index="0"]
|
||||||
|
|
||||||
[node name="Player" parent="." index="1" instance=ExtResource( 10 )]
|
z_index = -1
|
||||||
|
script = ExtResource( 8 )
|
||||||
|
_sections_unfolded = [ "Z Index" ]
|
||||||
|
|
||||||
[node name="Mothership" parent="." index="2" instance=ExtResource( 11 )]
|
[node name="bg1" type="Sprite" parent="BG" index="0"]
|
||||||
|
|
||||||
|
position = Vector2( 577.646, 365.663 )
|
||||||
|
scale = Vector2( 0.694364, 0.694364 )
|
||||||
|
texture = ExtResource( 9 )
|
||||||
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
|
[node name="bg2" type="Sprite" parent="BG" index="1"]
|
||||||
|
|
||||||
|
position = Vector2( 1823.66, 361.868 )
|
||||||
|
scale = Vector2( 0.6985, 0.6985 )
|
||||||
|
texture = ExtResource( 9 )
|
||||||
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite" parent="." index="1"]
|
||||||
|
|
||||||
|
visible = false
|
||||||
|
z_index = -5
|
||||||
|
texture = SubResource( 1 )
|
||||||
|
_sections_unfolded = [ "Z Index" ]
|
||||||
|
|
||||||
|
[node name="Player" parent="." index="2" instance=ExtResource( 10 )]
|
||||||
|
|
||||||
|
[node name="BaddieTimer" type="Timer" parent="." index="3"]
|
||||||
|
|
||||||
|
process_mode = 1
|
||||||
|
wait_time = 2.0
|
||||||
|
one_shot = false
|
||||||
|
autostart = false
|
||||||
|
|
||||||
|
[node name="Mothership" parent="." index="4" instance=ExtResource( 11 )]
|
||||||
|
|
||||||
position = Vector2( 18.327, 304.835 )
|
position = Vector2( 18.327, 304.835 )
|
||||||
|
|
||||||
[node name="MoneyDisplay" type="Label" parent="." index="3"]
|
[node name="MoneyDisplay" type="Label" parent="." index="5"]
|
||||||
|
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
anchor_top = 0.0
|
anchor_top = 0.0
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_left = 913.0
|
margin_left = 913.0
|
||||||
margin_top = 557.0
|
margin_top = 536.0
|
||||||
margin_right = 1006.0
|
margin_right = 1006.0
|
||||||
margin_bottom = 592.0
|
margin_bottom = 571.0
|
||||||
rect_pivot_offset = Vector2( 0, 0 )
|
rect_pivot_offset = Vector2( 0, 0 )
|
||||||
rect_clip_content = false
|
rect_clip_content = false
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
mouse_default_cursor_shape = 0
|
mouse_default_cursor_shape = 0
|
||||||
size_flags_horizontal = 1
|
size_flags_horizontal = 1
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
custom_fonts/font = SubResource( 1 )
|
|
||||||
custom_colors/font_color = Color( 1, 1, 1, 1 )
|
|
||||||
text = "$0"
|
text = "$0"
|
||||||
align = 2
|
align = 2
|
||||||
percent_visible = 1.0
|
percent_visible = 1.0
|
||||||
lines_skipped = 0
|
lines_skipped = 0
|
||||||
max_lines_visible = -1
|
max_lines_visible = -1
|
||||||
_sections_unfolded = [ "Size Flags", "custom_colors", "custom_fonts" ]
|
_sections_unfolded = [ "Size Flags", "custom_fonts" ]
|
||||||
|
|
||||||
[node name="OtherPlayer" parent="." index="4" instance=ExtResource( 13 )]
|
[node name="OtherPlayer" parent="." index="6" instance=ExtResource( 12 )]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
_sections_unfolded = [ "Material", "Transform", "Visibility" ]
|
_sections_unfolded = [ "Material", "Transform", "Visibility" ]
|
||||||
|
|
||||||
[node name="BossHealth" type="Line2D" parent="." index="5"]
|
[node name="BossHealth" type="Line2D" parent="." index="7"]
|
||||||
|
|
||||||
points = PoolVector2Array( 100, 50, 900, 50 )
|
points = PoolVector2Array( 100, 50, 900, 50 )
|
||||||
width = 15.0
|
width = 15.0
|
||||||
|
@ -112,7 +139,7 @@ texture_mode = 31
|
||||||
sharp_limit = 2.0
|
sharp_limit = 2.0
|
||||||
round_precision = 8
|
round_precision = 8
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="." index="6"]
|
[node name="ColorRect" type="ColorRect" parent="." index="8"]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
|
@ -130,26 +157,60 @@ size_flags_vertical = 1
|
||||||
color = Color( 0, 0, 0, 1 )
|
color = Color( 0, 0, 0, 1 )
|
||||||
_sections_unfolded = [ "Visibility" ]
|
_sections_unfolded = [ "Visibility" ]
|
||||||
|
|
||||||
[node name="Pausing" type="Node2D" parent="." index="7"]
|
[node name="HowTo" type="AnimatedSprite" parent="." index="9"]
|
||||||
|
|
||||||
editor/display_folded = true
|
visible = false
|
||||||
position = Vector2( 940, 36 )
|
position = Vector2( 482.397, 299.674 )
|
||||||
|
scale = Vector2( 0.42077, 0.42077 )
|
||||||
[node name="Pause" type="AnimatedSprite" parent="Pausing" index="0"]
|
|
||||||
|
|
||||||
position = Vector2( 32.128, 31.044 )
|
|
||||||
scale = Vector2( 0.199771, 0.199771 )
|
|
||||||
frames = SubResource( 2 )
|
frames = SubResource( 2 )
|
||||||
animation = "default"
|
animation = "default"
|
||||||
|
_sections_unfolded = [ "Transform", "Visibility" ]
|
||||||
|
|
||||||
[node name="PauseButton" type="Button" parent="Pausing" index="1"]
|
[node name="HowToDesktop" type="AnimatedSprite" parent="." index="10"]
|
||||||
|
|
||||||
|
visible = false
|
||||||
|
position = Vector2( 482, 300 )
|
||||||
|
scale = Vector2( 0.42, 0.42 )
|
||||||
|
frames = SubResource( 3 )
|
||||||
|
animation = "default"
|
||||||
|
_sections_unfolded = [ "Transform", "Visibility" ]
|
||||||
|
|
||||||
|
[node name="ShootButton" type="Button" parent="." index="11"]
|
||||||
|
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
anchor_top = 0.0
|
anchor_top = 0.0
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 61.0
|
margin_left = 785.0
|
||||||
margin_bottom = 64.0
|
margin_top = 269.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
|
||||||
|
disabled = true
|
||||||
|
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="12"]
|
||||||
|
|
||||||
|
anchor_left = 0.0
|
||||||
|
anchor_top = 0.0
|
||||||
|
anchor_right = 0.0
|
||||||
|
anchor_bottom = 0.0
|
||||||
|
margin_left = 940.0
|
||||||
|
margin_top = 36.0
|
||||||
|
margin_right = 1001.0
|
||||||
|
margin_bottom = 100.0
|
||||||
rect_pivot_offset = Vector2( 0, 0 )
|
rect_pivot_offset = Vector2( 0, 0 )
|
||||||
rect_clip_content = false
|
rect_clip_content = false
|
||||||
focus_mode = 2
|
focus_mode = 2
|
||||||
|
@ -164,39 +225,23 @@ group = null
|
||||||
flat = true
|
flat = true
|
||||||
align = 1
|
align = 1
|
||||||
|
|
||||||
[node name="HowTos" type="Node2D" parent="." index="8"]
|
[node name="Pause" type="AnimatedSprite" parent="." index="13"]
|
||||||
|
|
||||||
editor/display_folded = true
|
position = Vector2( 972.128, 67.044 )
|
||||||
_sections_unfolded = [ "Visibility", "Z Index" ]
|
scale = Vector2( 0.199771, 0.199771 )
|
||||||
|
|
||||||
[node name="HowTo" type="AnimatedSprite" parent="HowTos" index="0"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
position = Vector2( 482.397, 299.674 )
|
|
||||||
scale = Vector2( 0.42077, 0.42077 )
|
|
||||||
frames = SubResource( 3 )
|
|
||||||
animation = "default"
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
|
|
||||||
[node name="HowToDesktop" type="AnimatedSprite" parent="HowTos" index="1"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
position = Vector2( 482, 300 )
|
|
||||||
scale = Vector2( 0.42, 0.42 )
|
|
||||||
frames = SubResource( 4 )
|
frames = SubResource( 4 )
|
||||||
animation = "default"
|
animation = "default"
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
|
|
||||||
[node name="HideHowTo" type="Button" parent="HowTos" index="2"]
|
[node name="HideHowTo" type="Button" parent="." index="14"]
|
||||||
|
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
anchor_top = 0.0
|
anchor_top = 0.0
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_left = -55.0
|
margin_left = -50.0
|
||||||
margin_top = -29.0
|
margin_top = -15.0
|
||||||
margin_right = 1039.0
|
margin_right = 1044.0
|
||||||
margin_bottom = 609.0
|
margin_bottom = 623.0
|
||||||
rect_pivot_offset = Vector2( 0, 0 )
|
rect_pivot_offset = Vector2( 0, 0 )
|
||||||
rect_clip_content = false
|
rect_clip_content = false
|
||||||
focus_mode = 2
|
focus_mode = 2
|
||||||
|
@ -213,48 +258,12 @@ flat = true
|
||||||
align = 1
|
align = 1
|
||||||
_sections_unfolded = [ "Visibility" ]
|
_sections_unfolded = [ "Visibility" ]
|
||||||
|
|
||||||
[node name="WaveLabel" type="Label" parent="." index="9"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 61.0
|
|
||||||
margin_top = 19.0
|
|
||||||
margin_right = 108.0
|
|
||||||
margin_bottom = 33.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 = "Wave 1"
|
|
||||||
percent_visible = 1.0
|
|
||||||
lines_skipped = 0
|
|
||||||
max_lines_visible = -1
|
|
||||||
|
|
||||||
[node name="Music" type="AudioStreamPlayer" parent="." index="10"]
|
|
||||||
|
|
||||||
stream = ExtResource( 17 )
|
|
||||||
volume_db = 0.0
|
|
||||||
pitch_scale = 1.0
|
|
||||||
autoplay = false
|
|
||||||
mix_target = 0
|
|
||||||
bus = "Master"
|
|
||||||
|
|
||||||
[connection signal="body_entered" from="Player" to="Player" method="_on_Player_body_entered"]
|
[connection signal="body_entered" from="Player" to="Player" method="_on_Player_body_entered"]
|
||||||
|
|
||||||
[connection signal="buy_turret" from="Player" to="." method="_on_Player_buy_turret"]
|
|
||||||
|
|
||||||
[connection signal="double_laser_upgrade" from="Player" to="." method="double_laser_upgrade"]
|
[connection signal="double_laser_upgrade" from="Player" to="." method="double_laser_upgrade"]
|
||||||
|
|
||||||
[connection signal="multiplayer_movement" from="Player" to="." method="_on_Player_multiplayer_movement"]
|
[connection signal="multiplayer_movement" from="Player" to="." method="_on_Player_multiplayer_movement"]
|
||||||
|
|
||||||
[connection signal="other_damage_upgrade" from="Player" to="." method="other_damage_upgrade"]
|
|
||||||
|
|
||||||
[connection signal="other_laser_penetration_upgrade" from="Player" to="." method="other_laser_penetration_upgrade"]
|
|
||||||
|
|
||||||
[connection signal="other_ship_color_change" from="Player" to="." method="other_ship_color_change"]
|
[connection signal="other_ship_color_change" from="Player" to="." method="other_ship_color_change"]
|
||||||
|
|
||||||
[connection signal="other_ship_enable_rainbow" from="Player" to="." method="_on_Player_other_ship_enable_rainbow"]
|
[connection signal="other_ship_enable_rainbow" from="Player" to="." method="_on_Player_other_ship_enable_rainbow"]
|
||||||
|
@ -265,18 +274,20 @@ bus = "Master"
|
||||||
|
|
||||||
[connection signal="restart_game" from="Player" to="." 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="_on_Player_update_display"]
|
||||||
|
|
||||||
[connection signal="update_display" from="Player" to="." method="updatePoints"]
|
[connection signal="timeout" from="BaddieTimer" to="." method="BaddieTimer"]
|
||||||
|
|
||||||
[connection signal="upgrade_turret_range" from="Player" to="." method="upgradeTurretRange"]
|
|
||||||
|
|
||||||
[connection signal="body_shape_entered" from="Mothership" to="Mothership" method="_on_Mothership_body_shape_entered"]
|
[connection signal="body_shape_entered" from="Mothership" to="Mothership" method="_on_Mothership_body_shape_entered"]
|
||||||
|
|
||||||
[connection signal="game_over" from="Mothership" to="." method="_on_Mothership_game_over"]
|
[connection signal="game_over" from="Mothership" to="." method="_on_Mothership_game_over"]
|
||||||
|
|
||||||
[connection signal="pressed" from="Pausing/PauseButton" to="." method="_on_PauseButton_pressed"]
|
[connection signal="button_down" from="ShootButton" to="Player" method="shootDown"]
|
||||||
|
|
||||||
[connection signal="pressed" from="HowTos/HideHowTo" to="." method="_on_HideHowTo_pressed"]
|
[connection signal="button_up" from="ShootButton" to="Player" method="shootUp"]
|
||||||
|
|
||||||
|
[connection signal="pressed" from="PauseButton" to="." method="_on_PauseButton_pressed"]
|
||||||
|
|
||||||
|
[connection signal="pressed" from="HideHowTo" to="." method="_on_HideHowTo_pressed"]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
signal multiplayer_menu
|
signal multiplayer_menu
|
||||||
signal start_game
|
|
||||||
|
|
||||||
var clockwise = false
|
var clockwise = false
|
||||||
var rotation_multiplier = 1
|
var rotation_multiplier = 1
|
||||||
|
@ -74,12 +73,7 @@ func _process(delta):
|
||||||
|
|
||||||
func _on_Button_pressed():
|
func _on_Button_pressed():
|
||||||
#$Button.visible = false
|
#$Button.visible = false
|
||||||
emit_signal("start_game", 1)
|
|
||||||
now_quitting = true
|
now_quitting = true
|
||||||
|
|
||||||
func _on_Multiplayer_pressed():
|
func _on_Multiplayer_pressed():
|
||||||
emit_signal("multiplayer_menu")
|
emit_signal("multiplayer_menu")
|
||||||
|
|
||||||
func _on_Settings_pressed():
|
|
||||||
var settings = preload("res://Menus/Settings.tscn").instance()
|
|
||||||
add_child(settings)
|
|
|
@ -33,7 +33,7 @@ animations = [ {
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="Node" type="Node" index="0"]
|
[node name="Node" type="Node"]
|
||||||
|
|
||||||
pause_mode = 2
|
pause_mode = 2
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -50,7 +50,6 @@ 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"
|
||||||
|
@ -88,7 +87,7 @@ shortcut = null
|
||||||
group = null
|
group = null
|
||||||
flat = true
|
flat = true
|
||||||
align = 1
|
align = 1
|
||||||
_sections_unfolded = [ "Material", "Visibility", "custom_styles" ]
|
_sections_unfolded = [ "Material", "Visibility" ]
|
||||||
|
|
||||||
[node name="Menubutton" type="AnimatedSprite" parent="." index="4"]
|
[node name="Menubutton" type="AnimatedSprite" parent="." index="4"]
|
||||||
|
|
||||||
|
@ -140,36 +139,10 @@ size_flags_vertical = 1
|
||||||
color = Color( 0, 0, 0, 0 )
|
color = Color( 0, 0, 0, 0 )
|
||||||
_sections_unfolded = [ "Visibility" ]
|
_sections_unfolded = [ "Visibility" ]
|
||||||
|
|
||||||
[node name="Settings?" type="Node2D" parent="." index="7"]
|
[node name="Settings" type="Node2D" parent="." index="7"]
|
||||||
|
|
||||||
[node name="Settings" type="Button" parent="." index="8"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 650.0
|
|
||||||
margin_top = 400.0
|
|
||||||
margin_right = 850.0
|
|
||||||
margin_bottom = 570.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
|
|
||||||
|
|
||||||
[connection signal="pressed" from="StartEndlessMode" to="." method="_on_Button_pressed"]
|
[connection signal="pressed" from="StartEndlessMode" to="." method="_on_Button_pressed"]
|
||||||
|
|
||||||
[connection signal="pressed" from="Multiplayer" to="." method="_on_Multiplayer_pressed"]
|
[connection signal="pressed" from="Multiplayer" to="." method="_on_Multiplayer_pressed"]
|
||||||
|
|
||||||
[connection signal="pressed" from="Settings" to="." method="_on_Settings_pressed"]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
Menu.gd
|
@ -1,9 +0,0 @@
|
||||||
extends Node
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
# Called every time the node is added to the scene.
|
|
||||||
# Initialization here
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _on_BackButton_pressed():
|
|
||||||
queue_free()
|
|
|
@ -1,96 +0,0 @@
|
||||||
#
|
|
||||||
# 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])
|
|
|
@ -1,224 +0,0 @@
|
||||||
[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"]
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
extends Node2D
|
|
||||||
|
|
||||||
# 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 _on_BackButton_pressed():
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
func _on_PatreonLink_pressed():
|
|
||||||
OS.shell_open("https://www.patreon.com/fronter")
|
|
||||||
|
|
||||||
func _on_LiberaLink_pressed():
|
|
||||||
OS.shell_open("https://www.liberapay.com/fronter")
|
|
|
@ -1,59 +0,0 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://Menus/Menu.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://art/menu/back.png" type="Texture" id=2]
|
|
||||||
|
|
||||||
[node name="Menu" type="Node2D"]
|
|
||||||
|
|
||||||
z_index = 1
|
|
||||||
z_as_relative = false
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
_sections_unfolded = [ "Z Index" ]
|
|
||||||
|
|
||||||
[node name="BG" type="ColorRect" parent="." index="0"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 600.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 = [ "Rect" ]
|
|
||||||
|
|
||||||
[node name="BackButton" type="Button" parent="." index="1"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 4.0
|
|
||||||
margin_top = 453.0
|
|
||||||
margin_right = 279.0
|
|
||||||
margin_bottom = 659.0
|
|
||||||
rect_scale = Vector2( 0.7, 0.7 )
|
|
||||||
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
|
|
||||||
icon = ExtResource( 2 )
|
|
||||||
flat = true
|
|
||||||
align = 1
|
|
||||||
_sections_unfolded = [ "Rect" ]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="BackButton" to="." method="_on_BackButton_pressed"]
|
|
||||||
|
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
[gd_scene load_steps=5 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://Menus/Menu.tscn" type="PackedScene" id=1]
|
|
||||||
[ext_resource path="res://Menus/patreon.png" type="Texture" id=2]
|
|
||||||
[ext_resource path="res://Menus/libera.png" type="Texture" id=3]
|
|
||||||
[ext_resource path="res://Menus/opens_externally.png" type="Texture" id=4]
|
|
||||||
|
|
||||||
[node name="Menu" index="0" instance=ExtResource( 1 )]
|
|
||||||
|
|
||||||
[node name="PatreonLink" type="Button" parent="." index="2"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 641.0
|
|
||||||
margin_top = 446.0
|
|
||||||
margin_right = 1403.0
|
|
||||||
margin_bottom = 565.0
|
|
||||||
rect_scale = Vector2( 0.5, 0.5 )
|
|
||||||
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
|
|
||||||
icon = ExtResource( 2 )
|
|
||||||
flat = true
|
|
||||||
align = 1
|
|
||||||
_sections_unfolded = [ "Rect" ]
|
|
||||||
|
|
||||||
[node name="LiberaLink" type="Button" parent="." index="3"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 641.0
|
|
||||||
margin_top = 509.0
|
|
||||||
margin_right = 1403.0
|
|
||||||
margin_bottom = 628.0
|
|
||||||
rect_scale = Vector2( 0.5, 0.5 )
|
|
||||||
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
|
|
||||||
icon = ExtResource( 3 )
|
|
||||||
flat = true
|
|
||||||
align = 1
|
|
||||||
_sections_unfolded = [ "Rect" ]
|
|
||||||
|
|
||||||
[node name="OpensExternally" type="Sprite" parent="." index="4"]
|
|
||||||
|
|
||||||
position = Vector2( 824.133, 418.745 )
|
|
||||||
scale = Vector2( 0.3, 0.3 )
|
|
||||||
texture = ExtResource( 4 )
|
|
||||||
_sections_unfolded = [ "Transform" ]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="PatreonLink" to="." method="_on_PatreonLink_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="LiberaLink" to="." method="_on_LiberaLink_pressed"]
|
|
||||||
|
|
||||||
|
|
BIN
Menus/libera.png
Before Width: | Height: | Size: 17 KiB |
|
@ -1,29 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Menus/libera.png"
|
|
||||||
dest_files=[ "res://.import/libera.png-27e063214b4f726f791d546d7edbc18d.stex" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_mode=0
|
|
||||||
compress/normal_map=0
|
|
||||||
flags/repeat=0
|
|
||||||
flags/filter=true
|
|
||||||
flags/mipmaps=false
|
|
||||||
flags/anisotropic=false
|
|
||||||
flags/srgb=2
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/HDR_as_SRGB=false
|
|
||||||
stream=false
|
|
||||||
size_limit=0
|
|
||||||
detect_3d=true
|
|
||||||
svg/scale=1.0
|
|
Before Width: | Height: | Size: 18 KiB |
|
@ -1,29 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Menus/opens_externally.png"
|
|
||||||
dest_files=[ "res://.import/opens_externally.png-364ad320082cc6bf40f51de921f5c504.stex" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_mode=0
|
|
||||||
compress/normal_map=0
|
|
||||||
flags/repeat=0
|
|
||||||
flags/filter=true
|
|
||||||
flags/mipmaps=false
|
|
||||||
flags/anisotropic=false
|
|
||||||
flags/srgb=2
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/HDR_as_SRGB=false
|
|
||||||
stream=false
|
|
||||||
size_limit=0
|
|
||||||
detect_3d=true
|
|
||||||
svg/scale=1.0
|
|
Before Width: | Height: | Size: 20 KiB |
|
@ -1,29 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://Menus/patreon.png"
|
|
||||||
dest_files=[ "res://.import/patreon.png-a2732b6eb9dbd0ddc53941041f7804ab.stex" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/hdr_mode=0
|
|
||||||
compress/normal_map=0
|
|
||||||
flags/repeat=0
|
|
||||||
flags/filter=true
|
|
||||||
flags/mipmaps=false
|
|
||||||
flags/anisotropic=false
|
|
||||||
flags/srgb=2
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/HDR_as_SRGB=false
|
|
||||||
stream=false
|
|
||||||
size_limit=0
|
|
||||||
detect_3d=true
|
|
||||||
svg/scale=1.0
|
|
|
@ -34,7 +34,6 @@ var double_laser = false
|
||||||
var can_shoot = true
|
var can_shoot = true
|
||||||
var timer = null
|
var timer = null
|
||||||
var bullet_delay = 0.1
|
var bullet_delay = 0.1
|
||||||
var damage = 0
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
_update_health_bar()
|
_update_health_bar()
|
||||||
|
@ -44,26 +43,17 @@ func _process(delta):
|
||||||
#health = slave_health
|
#health = slave_health
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if $Line2D.default_color.r > 0:
|
|
||||||
$Line2D.default_color.r -= delta
|
|
||||||
if $Line2D.default_color.g < 180:
|
|
||||||
$Line2D.default_color.g += delta
|
|
||||||
if $Line2D.default_color.b > 0:
|
|
||||||
$Line2D.default_color.b -= delta
|
|
||||||
|
|
||||||
if health <= 100 && $BlownOut/WhoopsGuy.unit_offset < 1:
|
if health <= 100 && $BlownOut/WhoopsGuy.unit_offset < 1:
|
||||||
$BlownOut/WhoopsGuy.unit_offset += delta
|
$BlownOut/WhoopsGuy.unit_offset += delta
|
||||||
|
|
||||||
func _on_Mothership_area_shape_entered(area_id, area, area_shape, self_shape):
|
func _on_Mothership_area_shape_entered(area_id, area, area_shape, self_shape):
|
||||||
#if not get_tree().has_network_peer():
|
#if not get_tree().has_network_peer():
|
||||||
if get_tree().is_network_server() == false:
|
if not get_tree().is_network_server():
|
||||||
health -= 50
|
health -= 50
|
||||||
if get_tree().is_network_server() == true:
|
if get_tree().is_network_server():
|
||||||
health -= 50
|
health -= 50
|
||||||
rset("slave_health", health)
|
rset("slave_health", health)
|
||||||
|
|
||||||
$Line2D.default_color = Color("b70000")
|
|
||||||
|
|
||||||
if area.boss:
|
if area.boss:
|
||||||
emit_signal("flash")
|
emit_signal("flash")
|
||||||
health = 0
|
health = 0
|
||||||
|
@ -88,3 +78,4 @@ func _on_Player_restart_game():
|
||||||
func _update_health_bar():
|
func _update_health_bar():
|
||||||
var health_bar = Vector2(((health * (.8)) + 100), 300)
|
var health_bar = Vector2(((health * (.8)) + 100), 300)
|
||||||
$Line2D.set_point_position( 1, health_bar )
|
$Line2D.set_point_position( 1, health_bar )
|
||||||
|
print(health)
|
|
@ -31,7 +31,7 @@ _data = {
|
||||||
}
|
}
|
||||||
_sections_unfolded = [ "Resource" ]
|
_sections_unfolded = [ "Resource" ]
|
||||||
|
|
||||||
[node name="Mothership" type="Area2D" index="0"]
|
[node name="Mothership" type="Area2D"]
|
||||||
|
|
||||||
position = Vector2( 42.1613, 302.944 )
|
position = Vector2( 42.1613, 302.944 )
|
||||||
scale = Vector2( 0.263572, 0.240903 )
|
scale = Vector2( 0.263572, 0.240903 )
|
||||||
|
@ -90,7 +90,7 @@ position = Vector2( 32.7402, 101.849 )
|
||||||
scale = Vector2( 3.33333, 3.33333 )
|
scale = Vector2( 3.33333, 3.33333 )
|
||||||
points = PoolVector2Array( 100, 300, 900, 300 )
|
points = PoolVector2Array( 100, 300, 900, 300 )
|
||||||
width = 15.0
|
width = 15.0
|
||||||
default_color = Color( 0.0352941, 0.717647, 0, 1 )
|
default_color = Color( 0.037384, 0.683594, 0, 1 )
|
||||||
texture_mode = 31
|
texture_mode = 31
|
||||||
sharp_limit = 2.0
|
sharp_limit = 2.0
|
||||||
round_precision = 8
|
round_precision = 8
|
||||||
|
|
|
@ -419,8 +419,6 @@ animation = "default"
|
||||||
|
|
||||||
[node name="Lobby" type="Node" parent="." index="14"]
|
[node name="Lobby" type="Node" parent="." index="14"]
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
|
|
||||||
[node name="RichTextLabel" type="RichTextLabel" parent="Lobby" index="0"]
|
[node name="RichTextLabel" type="RichTextLabel" parent="Lobby" index="0"]
|
||||||
|
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
|
|
8
Node.gd
|
@ -23,9 +23,9 @@ signal restart
|
||||||
var rectangle_opacity = 0
|
var rectangle_opacity = 0
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
if get_tree().has_network_peer() && not get_tree().is_network_server():
|
# Called every time the node is added to the scene.
|
||||||
$Restart.visible = false
|
# Initialization here
|
||||||
$Button.disabled = true
|
pass
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
$ColorRect.color = Color(0, 0, 0, rectangle_opacity)
|
$ColorRect.color = Color(0, 0, 0, rectangle_opacity)
|
||||||
|
@ -37,7 +37,7 @@ func _process(delta):
|
||||||
|
|
||||||
func _on_Button_pressed():
|
func _on_Button_pressed():
|
||||||
emit_signal("restart")
|
emit_signal("restart")
|
||||||
#queue_free()
|
queue_free()
|
||||||
|
|
||||||
func _on_Button_button_down():
|
func _on_Button_button_down():
|
||||||
$Restart.frame = 1
|
$Restart.frame = 1
|
||||||
|
|
|
@ -85,10 +85,8 @@ func _ready():
|
||||||
|
|
||||||
var timer = null
|
var timer = null
|
||||||
|
|
||||||
var damage = 0
|
|
||||||
var can_shoot = false
|
var can_shoot = false
|
||||||
var shoot_down = false
|
var shoot_down = false
|
||||||
var is_shooting = false
|
|
||||||
|
|
||||||
func on_timeout_complete():
|
func on_timeout_complete():
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
|
@ -122,15 +120,11 @@ var rainbow_is_on = false
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
$Username.text = username
|
$Username.text = username
|
||||||
|
|
||||||
if is_shooting:
|
|
||||||
shoot()
|
|
||||||
|
|
||||||
if rainbow_is_on:
|
if rainbow_is_on:
|
||||||
rainbow(delta)
|
rainbow(delta)
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
var laser_damage = 10
|
|
||||||
func shoot():
|
func shoot():
|
||||||
if can_shoot:
|
if can_shoot:
|
||||||
var laser = Laser.instance()
|
var laser = Laser.instance()
|
||||||
|
@ -138,7 +132,6 @@ func shoot():
|
||||||
laser.current_pen = laser_penetration
|
laser.current_pen = laser_penetration
|
||||||
laser.position.y = position.y - 27
|
laser.position.y = position.y - 27
|
||||||
laser.position.x = position.x + 46
|
laser.position.x = position.x + 46
|
||||||
laser.damage = laser_damage
|
|
||||||
|
|
||||||
#MAYBE THE LASERS SHOULD BE THEIR OWN NODES
|
#MAYBE THE LASERS SHOULD BE THEIR OWN NODES
|
||||||
#Would allow for more simple additions in the future
|
#Would allow for more simple additions in the future
|
||||||
|
@ -148,7 +141,6 @@ func shoot():
|
||||||
laser2.position.y = position.y + 28
|
laser2.position.y = position.y + 28
|
||||||
laser2.position.x = position.x + 46
|
laser2.position.x = position.x + 46
|
||||||
laser2.current_pen = laser_penetration
|
laser2.current_pen = laser_penetration
|
||||||
laser2.damage = laser_damage
|
|
||||||
|
|
||||||
can_shoot = false
|
can_shoot = false
|
||||||
timer.start()
|
timer.start()
|
||||||
|
|
71
PauseMenu.gd
|
@ -1,71 +0,0 @@
|
||||||
#
|
|
||||||
# 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 taste_the_rainbow
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
$ColorRect.color = Color(0,0,0,1)
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
if (Input.is_action_pressed("ui_quit")):
|
|
||||||
get_tree().quit()
|
|
||||||
#if Input.is_action_pressed("ui_accept"):
|
|
||||||
# _on_Button_pressed())
|
|
||||||
|
|
||||||
func _on_Resume_pressed():
|
|
||||||
get_tree().paused = false
|
|
||||||
emit_signal("menu_closed")
|
|
||||||
queue_free()
|
|
||||||
|
|
||||||
func _on_Goldenrod_pressed():
|
|
||||||
emit_signal("change_color", "daa520")
|
|
||||||
|
|
||||||
func _on_Purple_pressed():
|
|
||||||
emit_signal("change_color", "800080")
|
|
||||||
|
|
||||||
func _on_SlateBlue_pressed():
|
|
||||||
emit_signal("change_color", "708090")
|
|
||||||
|
|
||||||
func _on_Salmon_pressed():
|
|
||||||
emit_signal("change_color", "e9967a")
|
|
||||||
|
|
||||||
func _on_Crimson_pressed():
|
|
||||||
emit_signal("change_color", "dc143c")
|
|
||||||
|
|
||||||
func _on_MediumSpringGreen_pressed():
|
|
||||||
emit_signal("change_color", "3cb371")
|
|
||||||
|
|
||||||
func _on_Tomato_pressed():
|
|
||||||
emit_signal("change_color", "ff3e2d")
|
|
||||||
prints("put tomato in dere")
|
|
||||||
|
|
||||||
func _on_DarkenedLawnGreen_pressed():
|
|
||||||
emit_signal("change_color", "7bd126")
|
|
||||||
|
|
||||||
func _on_DeepSkyBlue_pressed():
|
|
||||||
emit_signal("change_color", "00bfff")
|
|
||||||
|
|
||||||
#### NOT PAUSING GAME? ####
|
|
||||||
func _on_Rainbow_pressed():
|
|
||||||
get_tree().paused = false
|
|
||||||
emit_signal("taste_the_rainbow")
|
|
331
PauseMenu.tscn
|
@ -1,331 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://PauseMenu.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://art/ColorSelect.png" type="Texture" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="Theme" id=1]
|
|
||||||
|
|
||||||
|
|
||||||
[node name="PauseMenu" 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="Resume" type="Button" parent="." index="1"]
|
|
||||||
|
|
||||||
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 = "Continue"
|
|
||||||
flat = false
|
|
||||||
align = 1
|
|
||||||
|
|
||||||
[node name="ColorSelect" type="Node2D" parent="." index="2"]
|
|
||||||
|
|
||||||
position = Vector2( 21, 0 )
|
|
||||||
|
|
||||||
[node name="ColorSelectBG" type="Sprite" parent="ColorSelect" index="0"]
|
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
position = Vector2( 120, 210 )
|
|
||||||
scale = Vector2( 0.179688, 0.179687 )
|
|
||||||
texture = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="Goldenrod" type="Button" parent="ColorSelect/ColorSelectBG" index="0"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -501.0
|
|
||||||
margin_top = -390.0
|
|
||||||
margin_right = -167.0
|
|
||||||
margin_bottom = -56.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="Purple" type="Button" parent="ColorSelect/ColorSelectBG" index="1"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -167.0
|
|
||||||
margin_top = -390.0
|
|
||||||
margin_right = 167.0
|
|
||||||
margin_bottom = -56.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="SlateBlue" type="Button" parent="ColorSelect/ColorSelectBG" index="2"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 167.0
|
|
||||||
margin_top = -390.0
|
|
||||||
margin_right = 501.0
|
|
||||||
margin_bottom = -56.0001
|
|
||||||
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="Salmon" type="Button" parent="ColorSelect/ColorSelectBG" index="3"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -501.0
|
|
||||||
margin_top = -56.0
|
|
||||||
margin_right = -167.0
|
|
||||||
margin_bottom = 278.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="Crimson" type="Button" parent="ColorSelect/ColorSelectBG" index="4"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -167.0
|
|
||||||
margin_top = -56.0
|
|
||||||
margin_right = 167.0
|
|
||||||
margin_bottom = 278.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="MediumSpringGreen" type="Button" parent="ColorSelect/ColorSelectBG" index="5"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 167.0
|
|
||||||
margin_top = -56.0
|
|
||||||
margin_right = 501.0
|
|
||||||
margin_bottom = 278.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="Tomato" type="Button" parent="ColorSelect/ColorSelectBG" index="6"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 167.0
|
|
||||||
margin_top = 278.0
|
|
||||||
margin_right = 501.0
|
|
||||||
margin_bottom = 668.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="DarkenedLawnGreen" type="Button" parent="ColorSelect/ColorSelectBG" index="7"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -167.0
|
|
||||||
margin_top = 334.0
|
|
||||||
margin_right = 167.0
|
|
||||||
margin_bottom = 668.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="DeepSkyBlue" type="Button" parent="ColorSelect/ColorSelectBG" index="8"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -501.0
|
|
||||||
margin_top = 334.0
|
|
||||||
margin_right = -167.0
|
|
||||||
margin_bottom = 668.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="Rainbow" type="Button" parent="ColorSelect/ColorSelectBG" index="9"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -501.0
|
|
||||||
margin_top = 668.0
|
|
||||||
margin_right = 501.0
|
|
||||||
margin_bottom = 1002.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
|
|
||||||
|
|
||||||
[connection signal="pressed" from="Resume" to="." method="_on_Resume_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/Goldenrod" to="." method="_on_Goldenrod_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/Purple" to="." method="_on_Purple_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/SlateBlue" to="." method="_on_SlateBlue_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/Salmon" to="." method="_on_Salmon_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/Crimson" to="." method="_on_Crimson_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/MediumSpringGreen" to="." method="_on_MediumSpringGreen_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/Tomato" to="." method="_on_Tomato_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/DarkenedLawnGreen" to="." method="_on_DarkenedLawnGreen_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/DeepSkyBlue" to="." method="_on_DeepSkyBlue_pressed"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="ColorSelect/ColorSelectBG/Rainbow" to="." method="_on_Rainbow_pressed"]
|
|
||||||
|
|
||||||
|
|
359
Player.gd
|
@ -24,17 +24,12 @@ signal update_display # tells parent to update points display
|
||||||
signal refund # will tell parent a refund is occuring, for display
|
signal refund # will tell parent a refund is occuring, for display
|
||||||
signal shooting_speed_upgrade # signals that a shooting speed upgrade has occured
|
signal shooting_speed_upgrade # signals that a shooting speed upgrade has occured
|
||||||
signal other_shooting_upgrade
|
signal other_shooting_upgrade
|
||||||
signal other_damage_upgrade
|
|
||||||
signal double_laser_upgrade
|
signal double_laser_upgrade
|
||||||
signal other_laser_penetration_upgrade
|
|
||||||
signal other_ship_color_change
|
signal other_ship_color_change
|
||||||
signal other_ship_enable_rainbow
|
signal other_ship_enable_rainbow
|
||||||
signal shooting_speed_fully_upgraded
|
signal shooting_speed_fully_upgraded
|
||||||
signal restart_game
|
signal restart_game
|
||||||
signal multiplayer_movement
|
signal multiplayer_movement
|
||||||
signal start_next_round
|
|
||||||
signal buy_turret
|
|
||||||
signal upgrade_turret_range
|
|
||||||
|
|
||||||
export (PackedScene) var Laser
|
export (PackedScene) var Laser
|
||||||
|
|
||||||
|
@ -45,8 +40,12 @@ export (PackedScene) var Laser
|
||||||
var ship_speed = 500
|
var ship_speed = 500
|
||||||
|
|
||||||
# first 5 tiers of shooting speed
|
# first 5 tiers of shooting speed
|
||||||
#const BULLET_DELAY_DICT = {1:0.8, 2:0.5, 3:0.4, 4:0.2, 5:0.05} #original
|
const BULLET_DELAY_TIER1 = 0.8
|
||||||
const BULLET_DELAY_DICT = {1:0.8, 2:0.6, 3:0.4, 4:0.2, 5:0.1}
|
const BULLET_DELAY_TIER2 = 0.5
|
||||||
|
const BULLET_DELAY_TIER3 = 0.2
|
||||||
|
const BULLET_DELAY_TIER4 = 0.1
|
||||||
|
const BULLET_DELAY_TIER5 = 0.05
|
||||||
|
|
||||||
# starting cost of shooting speed upgrades after tier 5
|
# starting cost of shooting speed upgrades after tier 5
|
||||||
const SHOOTING_SPEED_UPGRADE_DEFAULT = 1500
|
const SHOOTING_SPEED_UPGRADE_DEFAULT = 1500
|
||||||
|
|
||||||
|
@ -54,31 +53,32 @@ const SHOOTING_SPEED_UPGRADE_DEFAULT = 1500
|
||||||
const BULLET_DELAY_MINIMUM = 0.01
|
const BULLET_DELAY_MINIMUM = 0.01
|
||||||
|
|
||||||
# costs of shooting speed upgrades
|
# costs of shooting speed upgrades
|
||||||
const BULLET_DELAY_COST = {2:100, 3:400, 4:1000, 5:4000, 6:0}
|
const BULLET_DELAY_TIER2_COST = 100
|
||||||
|
const BULLET_DELAY_TIER3_COST = 200
|
||||||
|
const BULLET_DELAY_TIER4_COST = 400
|
||||||
|
const BULLET_DELAY_TIER5_COST = 1000
|
||||||
|
|
||||||
# double laser cost
|
# double laser cost
|
||||||
const DOUBLE_LASER_COST = 6000
|
const DOUBLE_LASER_COST = 2000
|
||||||
|
|
||||||
# 5 tiers of laser damage
|
# 5 tiers of laser damage
|
||||||
const LASER_DAMAGE_DICT = {1:10, 2:15, 3:20, 4:40, 5:50}
|
const LASER_DAMAGE_TIER1 = 10
|
||||||
|
const LASER_DAMAGE_TIER2 = 12
|
||||||
|
const LASER_DAMAGE_TIER3 = 15
|
||||||
|
const LASER_DAMAGE_TIER4 = 20
|
||||||
|
const LASER_DAMAGE_TIER5 = 50
|
||||||
|
|
||||||
# costs of laser damage upgrades
|
# costs of laser damage upgrades
|
||||||
const LASER_DAMAGE_COST = {2:400, 3:1000, 4:2000, 5:6000, 6:0}
|
const LASER_DAMAGE_TIER2_COST = 200
|
||||||
|
const LASER_DAMAGE_TIER3_COST = 500
|
||||||
|
const LASER_DAMAGE_TIER4_COST = 1000
|
||||||
|
const LASER_DAMAGE_TIER5_COST = 2000
|
||||||
|
|
||||||
# costs of laser penetration upgrades
|
|
||||||
const LASER_PENETRATION_COST = {2:400, 3:1000, 4:2000, 5:6000, 6:0}
|
|
||||||
|
|
||||||
# 5 tiers of laser penetration
|
|
||||||
const LASER_PENETRATION_DICT = {1:0,2:1,3:2,4:3,5:5}
|
|
||||||
# the ship's starting position
|
# the ship's starting position
|
||||||
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 = 0
|
const STARTING_MONEY = 10000
|
||||||
const STARTING_MONEY = 100000
|
|
||||||
|
|
||||||
# cost to unlock turrets
|
|
||||||
const UNLOCK_TURRETS_COST = 1000
|
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
|
@ -95,19 +95,13 @@ var can_shoot = false
|
||||||
var timer = null
|
var timer = null
|
||||||
|
|
||||||
# sets the delay between shots to the default
|
# sets the delay between shots to the default
|
||||||
var bullet_delay = BULLET_DELAY_DICT[1]
|
var bullet_delay = BULLET_DELAY_TIER1
|
||||||
var bullet_delay_tier = 1
|
var bullet_delay_tier = 0
|
||||||
|
|
||||||
# sets other shooting settings to their defaults
|
# sets other shooting settings to their defaults
|
||||||
var laser_penetration = LASER_PENETRATION_DICT[1]
|
var laser_penetration = 0
|
||||||
var laser_penetration_tier = 1
|
|
||||||
var double_laser = false
|
var double_laser = false
|
||||||
var laser_damage = LASER_DAMAGE_DICT[1]
|
var laser_damage = LASER_DAMAGE_TIER1
|
||||||
var laser_damage_tier = 1
|
|
||||||
|
|
||||||
# turret settings
|
|
||||||
var turrets_unlocked = false
|
|
||||||
var has_turret = false
|
|
||||||
|
|
||||||
# gives the player their starting points
|
# gives the player their starting points
|
||||||
var money = STARTING_MONEY
|
var money = STARTING_MONEY
|
||||||
|
@ -122,210 +116,108 @@ var refund_percentage = 1
|
||||||
# only really relevant to touchscreens
|
# only really relevant to touchscreens
|
||||||
var menu_open = false
|
var menu_open = false
|
||||||
|
|
||||||
var boss = false
|
|
||||||
var damage = 0
|
|
||||||
|
|
||||||
# opens the upgrade menu
|
# opens the upgrade menu
|
||||||
func upgradeMenu():
|
func upgradeMenu():
|
||||||
var upgmenu = preload("res://UpgradeMenu.tscn").instance()
|
|
||||||
menu_open = true
|
menu_open = true
|
||||||
|
var upgmenu = preload("res://UpgradeMenu.tscn").instance()
|
||||||
add_child(upgmenu)
|
add_child(upgmenu)
|
||||||
upgmenu.connect("refund", self, "_refund_button")
|
upgmenu.connect("refund", self, "_refund_button")
|
||||||
upgmenu.connect("bullet_delay_upgrade", self, "upgradeBulletDelay")
|
upgmenu.connect("bullet_delay_upgrade", self, "upgradeBulletDelay_button")
|
||||||
upgmenu.connect("double_laser_upgrade", self, "doubleLaserUpgrade")
|
upgmenu.connect("double_laser_upgrade", self, "doubleLaserUpgrade_button")
|
||||||
upgmenu.connect("laser_penetration_upgrade", self, "laserPenetrationUpgrade")
|
upgmenu.connect("laser_penetration_upgrade", self, "laserPenetrationUpgrade_button")
|
||||||
|
upgmenu.connect("menu_closed", self, "menuClosed")
|
||||||
upgmenu.connect("change_color", self, "changeColor")
|
upgmenu.connect("change_color", self, "changeColor")
|
||||||
upgmenu.connect("taste_the_rainbow", self, "enable_the_rainbow")
|
upgmenu.connect("taste_the_rainbow", self, "enable_the_rainbow")
|
||||||
upgmenu.connect("laser_damage_upgrade", self, "upgradeLaserDamage")
|
|
||||||
upgmenu.connect("menu_closed", self, "upgradeMenuClosed")
|
|
||||||
upgmenu.connect("unlock_turrets", self, "unlockTurrets")
|
|
||||||
upgmenu.connect("buy_turret", self, "buyTurret")
|
|
||||||
upgmenu.connect("turret_menu", self, "openTurretMenu")
|
|
||||||
upgmenu.laser_damage_tier = laser_damage_tier
|
|
||||||
upgmenu.bullet_delay_tier = bullet_delay_tier
|
upgmenu.bullet_delay_tier = bullet_delay_tier
|
||||||
upgmenu.laser_penetration_tier = laser_penetration_tier
|
|
||||||
upgmenu.turrets_unlocked = turrets_unlocked
|
|
||||||
upgmenu.has_turret = has_turret
|
|
||||||
if !get_tree().has_network_peer():
|
if !get_tree().has_network_peer():
|
||||||
get_tree().paused = true
|
get_tree().paused = true
|
||||||
|
|
||||||
# signalled on close of UpgradeMenu
|
# signalled on close of UpgradeMenu
|
||||||
func upgradeMenuClosed():
|
func menuClosed():
|
||||||
menu_open = false
|
menu_open = false
|
||||||
emit_signal("start_next_round")
|
|
||||||
|
|
||||||
func pauseMenu():
|
|
||||||
menu_open = true
|
|
||||||
var pausemenu = preload("res://PauseMenu.tscn").instance()
|
|
||||||
add_child(pausemenu)
|
|
||||||
pausemenu.connect("change_color", self, "changeColor")
|
|
||||||
pausemenu.connect("menu_closed", self, "pauseMenuClosed")
|
|
||||||
pausemenu.connect("taste_the_rainbow", self, "enable_the_rainbow")
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
func pauseMenuClosed():
|
|
||||||
menu_open = false
|
|
||||||
|
|
||||||
func openTurretMenu():
|
|
||||||
var turretmenu = preload("res://TurretMenu.tscn").instance()
|
|
||||||
add_child(turretmenu)
|
|
||||||
turretmenu.connect("buy_turret", self, "buyTurret")
|
|
||||||
turretmenu.connect("turret_range_upgrade", self, "turretRangeUpgrade")
|
|
||||||
turretmenu.screensize = screensize
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
func makePurchaseFor(cost):
|
|
||||||
if money >= cost:
|
|
||||||
money -= cost
|
|
||||||
emit_signal("update_display")
|
|
||||||
return true
|
|
||||||
else:
|
|
||||||
return false
|
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# REQUESTING UPGRADES #
|
# REQUESTING UPGRADES #
|
||||||
#######################
|
#######################
|
||||||
# all will request their upgrade
|
# all will request their upgrade
|
||||||
# all will pause the game if not in multiplayer
|
# all will pause the game if not in multiplayer
|
||||||
|
|
||||||
|
func doubleLaserUpgrade_button():
|
||||||
|
doubleLaserUpgrade()
|
||||||
|
emit_signal("update_display")
|
||||||
|
if !get_tree().has_network_peer():
|
||||||
|
get_tree().paused = true
|
||||||
|
|
||||||
|
func laserPenetrationUpgrade_button():
|
||||||
|
laserPenetrationUpgrade()
|
||||||
|
emit_signal("update_display")
|
||||||
|
if !get_tree().has_network_peer():
|
||||||
|
get_tree().paused = true
|
||||||
|
|
||||||
|
func upgradeShipSpeed_button():
|
||||||
|
upgradeShipSpeed()
|
||||||
|
emit_signal("update_display")
|
||||||
|
if !get_tree().has_network_peer():
|
||||||
|
get_tree().paused = true
|
||||||
|
|
||||||
|
func upgradeBulletDelay_button():
|
||||||
|
upgradeBulletDelay()
|
||||||
|
emit_signal("update_display")
|
||||||
|
if !get_tree().has_network_peer():
|
||||||
|
get_tree().paused = true
|
||||||
|
|
||||||
|
#######################
|
||||||
|
|
||||||
|
|
||||||
|
######################
|
||||||
|
# PROVIDING UPGRADES #
|
||||||
|
######################
|
||||||
# checks which tier the player is already on, and if they have enough points
|
# checks which tier the player is already on, and if they have enough points
|
||||||
# upgrades and charges the player, if possible
|
# upgrades and charges the player, if possible
|
||||||
# increases the ship value by the amount spent, for refunds
|
# increases the ship value by the amount spent, for refunds
|
||||||
# sends an rpc message about current state for a given upgrade
|
# sends an rpc message about current state for a given upgrade
|
||||||
|
|
||||||
func unlockTurrets():
|
# upgrades shooting speed
|
||||||
if money >= UNLOCK_TURRETS_COST:# && turrets_unlocked == false:
|
|
||||||
money -= UNLOCK_TURRETS_COST
|
|
||||||
turrets_unlocked = true
|
|
||||||
emit_signal("update_display")
|
|
||||||
openTurretMenu()
|
|
||||||
# pause if not multiplayer
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
func buyTurret(turret_position, cost):
|
|
||||||
#money -= cost
|
|
||||||
emit_signal("update_display")
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
emit_signal("buy_turret", get_tree().get_network_unique_id(), turret_position)
|
|
||||||
has_turret = true
|
|
||||||
get_tree().paused = true
|
|
||||||
else:
|
|
||||||
rpc("net_buying_turret", get_tree().get_network_unique_id(), turret_position)
|
|
||||||
|
|
||||||
sync func net_buying_turret(id, turret_position):
|
|
||||||
emit_signal("buy_turret", id, turret_position)
|
|
||||||
|
|
||||||
func turretRangeUpgrade(cost, new_scale):
|
|
||||||
if makePurchaseFor(cost):
|
|
||||||
emit_signal("upgrade_turret_range", get_tree().get_network_unique_id(), new_scale)
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
#################################################
|
|
||||||
# ALLOWS THE PLAYER TO SHOOT TWO LASERS AT ONCE #
|
|
||||||
func doubleLaserUpgrade():
|
|
||||||
# if the user has enough money, take that money, and enable doubles
|
|
||||||
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())
|
|
||||||
|
|
||||||
# tell main to update the points display
|
|
||||||
emit_signal("update_display")
|
|
||||||
|
|
||||||
# pause if not multiplayer
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
# tell main about other ship's double_laser
|
|
||||||
remote func double_laser_upgrade(id):
|
|
||||||
emit_signal("double_laser_upgrade", id)
|
|
||||||
# ALLOWS THE PLAYER TO SHOOT TWO LASERS AT ONCE #
|
|
||||||
#################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################
|
|
||||||
# ALLOWS LASERS TO PENETRATE ENEMIES BEFORE EXPIRING #
|
|
||||||
var next_penetration_upgrade_cost = LASER_PENETRATION_COST[laser_penetration_tier + 1]
|
|
||||||
func laserPenetrationUpgrade():
|
|
||||||
if laser_penetration_tier < 5:
|
|
||||||
if money >= LASER_PENETRATION_COST[laser_penetration_tier + 1]:
|
|
||||||
laser_penetration_tier += 1
|
|
||||||
laser_penetration = LASER_PENETRATION_DICT[laser_penetration_tier]
|
|
||||||
money -= LASER_PENETRATION_COST[laser_penetration_tier]
|
|
||||||
ship_value += LASER_PENETRATION_COST[laser_penetration_tier]
|
|
||||||
next_penetration_upgrade_cost = LASER_PENETRATION_COST[laser_penetration_tier + 1]
|
|
||||||
print(laser_penetration)
|
|
||||||
emit_signal("update_display")
|
|
||||||
|
|
||||||
rpc("other_laser_penetration_upgrade", get_tree().get_network_unique_id(), laser_penetration)
|
|
||||||
# pause if not multiplayer
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
|
|
||||||
remote func other_laser_penetration_upgrade(id):
|
|
||||||
emit_signal("other_laser_penetration_upgrade", id)
|
|
||||||
|
|
||||||
# tell main about other ship's
|
|
||||||
# ALLOWS LASERS TO PENETRATE ENEMIES BEFORE EXPIRING #
|
|
||||||
######################################################
|
|
||||||
|
|
||||||
|
|
||||||
###############################################
|
|
||||||
# INCREASES THE FIRE RATE FOR PLAYERS' LASERS #
|
|
||||||
var next_bullet_delay_upgrade_cost = BULLET_DELAY_COST[bullet_delay_tier + 1]
|
|
||||||
func upgradeBulletDelay():
|
func upgradeBulletDelay():
|
||||||
if bullet_delay_tier < 5:
|
if (bullet_delay == BULLET_DELAY_TIER1 && money >= BULLET_DELAY_TIER2_COST):
|
||||||
if money >= BULLET_DELAY_COST[bullet_delay_tier + 1]:
|
bullet_delay = BULLET_DELAY_TIER2
|
||||||
bullet_delay_tier += 1
|
money -= BULLET_DELAY_TIER2_COST
|
||||||
bullet_delay = BULLET_DELAY_DICT[bullet_delay_tier]
|
ship_value += BULLET_DELAY_TIER2_COST
|
||||||
money -= BULLET_DELAY_COST[bullet_delay_tier]
|
bullet_delay_tier = 1
|
||||||
ship_value += BULLET_DELAY_COST[bullet_delay_tier]
|
elif (bullet_delay == BULLET_DELAY_TIER2 && money >= BULLET_DELAY_TIER3_COST):
|
||||||
next_bullet_delay_upgrade_cost = BULLET_DELAY_COST[bullet_delay_tier + 1]
|
bullet_delay = BULLET_DELAY_TIER3
|
||||||
print(bullet_delay)
|
money -= BULLET_DELAY_TIER3_COST
|
||||||
|
ship_value += BULLET_DELAY_TIER3_COST
|
||||||
|
bullet_delay_tier = 2
|
||||||
|
elif (bullet_delay == BULLET_DELAY_TIER3 && money >= BULLET_DELAY_TIER4_COST):
|
||||||
|
bullet_delay = BULLET_DELAY_TIER4
|
||||||
|
money -= BULLET_DELAY_TIER4_COST
|
||||||
|
ship_value += BULLET_DELAY_TIER4_COST
|
||||||
|
bullet_delay_tier = 3
|
||||||
|
elif (bullet_delay == BULLET_DELAY_TIER4 && money >= BULLET_DELAY_TIER5_COST):
|
||||||
|
bullet_delay = BULLET_DELAY_TIER5
|
||||||
|
money -= BULLET_DELAY_TIER5_COST
|
||||||
|
ship_value += BULLET_DELAY_TIER5_COST
|
||||||
|
bullet_delay_tier = 4
|
||||||
|
# elif (bullet_delay <= BULLET_DELAY_MINIMUM):
|
||||||
|
# emit_signal("bullet_delay_fully_upgraded")
|
||||||
|
# elif (bullet_delay <= BULLET_DELAY_TIER5 && money >= shooting_speed_upgrade):
|
||||||
|
# bullet_delay = bullet_delay*0.95
|
||||||
|
# money -= shooting_speed_upgrade
|
||||||
|
# ship_value += shooting_speed_upgrade
|
||||||
|
# shooting_speed_upgrade *= 1.1
|
||||||
|
# bullet_delay_tier += 1
|
||||||
|
|
||||||
timer.set_wait_time(bullet_delay)
|
timer.set_wait_time(bullet_delay)
|
||||||
rpc("other_shooting_speed_upgrade", get_tree().get_network_unique_id(), bullet_delay)
|
rpc("other_shooting_speed_upgrade", get_tree().get_network_unique_id(), bullet_delay)
|
||||||
emit_signal("update_display")
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
# tell main about other ship's bullet_delay upgrade
|
func doubleLaserUpgrade():
|
||||||
remote func other_shooting_speed_upgrade(id, bullet_delay):
|
if money >= DOUBLE_LASER_COST && double_laser == false:
|
||||||
emit_signal("other_shooting_upgrade", id, bullet_delay)
|
money -= DOUBLE_LASER_COST
|
||||||
# INCREASES THE FIRE RATE FOR PLAYERS' LASERS #
|
double_laser = true
|
||||||
###############################################
|
rpc("double_laser_upgrade", get_tree().get_network_unique_id())
|
||||||
|
|
||||||
|
######################
|
||||||
############################################
|
|
||||||
# INCREASES DAMAGE DONE BY EACH LASER SHOT #
|
|
||||||
var next_laser_damage_upgrade_cost = LASER_DAMAGE_COST[laser_damage_tier + 1]
|
|
||||||
func upgradeLaserDamage():
|
|
||||||
if laser_damage_tier < 5:
|
|
||||||
if money >= LASER_DAMAGE_COST[laser_damage_tier + 1]:
|
|
||||||
laser_damage_tier += 1
|
|
||||||
laser_damage = LASER_DAMAGE_DICT[laser_damage_tier]
|
|
||||||
money -= LASER_DAMAGE_COST[laser_damage_tier]
|
|
||||||
ship_value += LASER_DAMAGE_COST[laser_damage_tier]
|
|
||||||
next_laser_damage_upgrade_cost = LASER_DAMAGE_COST[laser_damage_tier + 1]
|
|
||||||
print(laser_damage)
|
|
||||||
|
|
||||||
rpc("other_laser_damage_upgrade", get_tree().get_network_unique_id(), laser_damage)
|
|
||||||
emit_signal("update_display")
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
# tell main about other ship's laser_damage upgrade
|
|
||||||
remote func other_laser_damage_upgrade(id, laser_damage):
|
|
||||||
emit_signal("other_damage_upgrade", id, laser_damage)
|
|
||||||
# INCREASES DAMAGE DONE BY EACH LASER SHOT #
|
|
||||||
############################################
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# for measuring time between lasers
|
# for measuring time between lasers
|
||||||
|
@ -347,37 +239,25 @@ func _ready():
|
||||||
|
|
||||||
# resets all upgrades to the default
|
# resets all upgrades to the default
|
||||||
# refunds them with adjustable percentage returned
|
# refunds them with adjustable percentage returned
|
||||||
# not currently 100%, so disabled
|
|
||||||
func _refund_button():
|
func _refund_button():
|
||||||
bullet_delay = BULLET_DELAY_DICT[1]
|
bullet_delay = BULLET_DELAY_TIER1
|
||||||
bullet_delay_tier = 1
|
bullet_delay_tier = 0
|
||||||
timer.set_wait_time(bullet_delay)
|
timer.set_wait_time(bullet_delay)
|
||||||
laser_penetration = 0
|
laser_penetration = 0
|
||||||
double_laser = false
|
double_laser = false
|
||||||
rainbow_is_on = false
|
|
||||||
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")
|
||||||
#get_tree().paused = true
|
get_tree().paused = true
|
||||||
|
|
||||||
############################
|
#Changes the ships color
|
||||||
# Changes the ship's color #
|
|
||||||
func changeColor(color):
|
func changeColor(color):
|
||||||
$AnimatedSprite.modulate = color
|
$AnimatedSprite.modulate = color
|
||||||
if get_tree().has_network_peer():
|
if get_tree().has_network_peer():
|
||||||
rpc("_change_color", get_tree().get_network_unique_id(), color)
|
rpc("_change_color", get_tree().get_network_unique_id(), color)
|
||||||
|
|
||||||
# tell main about other ship's color change
|
|
||||||
remote func _change_color(id, color):
|
|
||||||
emit_signal("other_ship_color_change", id, color)
|
|
||||||
|
|
||||||
# Changes the ship's color #
|
|
||||||
############################
|
|
||||||
|
|
||||||
func on_timeout_complete():
|
func on_timeout_complete():
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
|
|
||||||
|
@ -394,9 +274,22 @@ func moveto(finger_position):
|
||||||
if (position.y > finger_position.y - 100 && finger_position.x < 800):
|
if (position.y > finger_position.y - 100 && finger_position.x < 800):
|
||||||
velocity.y -= 1
|
velocity.y -= 1
|
||||||
|
|
||||||
|
|
||||||
remote func move_player(id, position, is_shooting):
|
remote func move_player(id, position, is_shooting):
|
||||||
emit_signal("multiplayer_movement", id, position, is_shooting)
|
emit_signal("multiplayer_movement", id, position, is_shooting)
|
||||||
|
|
||||||
|
remote func other_shooting_speed_upgrade(id, bullet_delay):
|
||||||
|
emit_signal("other_shooting_upgrade", id, bullet_delay)
|
||||||
|
|
||||||
|
remote func _change_color(id, color):
|
||||||
|
emit_signal("other_ship_color_change", id, color)
|
||||||
|
|
||||||
|
remote func _enable_rainbow(id):
|
||||||
|
emit_signal("other_ship_enable_rainbow", id)
|
||||||
|
|
||||||
|
remote func double_laser_upgrade(id):
|
||||||
|
emit_signal("double_laser_upgrade", id)
|
||||||
|
|
||||||
# the player's movement vector
|
# the player's movement vector
|
||||||
var velocity = Vector2()
|
var velocity = Vector2()
|
||||||
|
|
||||||
|
@ -436,8 +329,8 @@ func _process(delta):
|
||||||
is_shooting = true
|
is_shooting = true
|
||||||
|
|
||||||
# if in multiplayer mode, push position and shooting status as often as possible
|
# if in multiplayer mode, push position and shooting status as often as possible
|
||||||
#if get_tree().has_network_peer():
|
if get_tree().has_network_peer():
|
||||||
# rpc_unreliable("move_player", get_tree().get_network_unique_id(), position, is_shooting)
|
rpc("move_player", get_tree().get_network_unique_id(), position, is_shooting)
|
||||||
|
|
||||||
# if shoot button is pressed, try shooting
|
# if shoot button is pressed, try shooting
|
||||||
if Input.is_action_pressed("ui_accept"):
|
if Input.is_action_pressed("ui_accept"):
|
||||||
|
@ -464,10 +357,9 @@ 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 + 31
|
laser2.position.y = position.y + 28
|
||||||
laser2.position.x = position.x + 50
|
laser2.position.x = position.x + 46
|
||||||
laser2.current_pen = laser_penetration
|
laser2.current_pen = laser_penetration
|
||||||
laser2.damage = laser_damage
|
|
||||||
|
|
||||||
# don't shoot again until the timer resets
|
# don't shoot again until the timer resets
|
||||||
can_shoot = false
|
can_shoot = false
|
||||||
|
@ -478,16 +370,9 @@ func shoot():
|
||||||
func enable_the_rainbow():
|
func enable_the_rainbow():
|
||||||
if money >= 2000 && not rainbow_is_on:
|
if money >= 2000 && not rainbow_is_on:
|
||||||
money -= 2000
|
money -= 2000
|
||||||
emit_signal("update_display")
|
|
||||||
rainbow_is_on = true
|
rainbow_is_on = true
|
||||||
rpc("_enable_rainbow", get_tree().get_network_unique_id())
|
rpc("_enable_rainbow", get_tree().get_network_unique_id())
|
||||||
|
|
||||||
if !get_tree().has_network_peer():
|
|
||||||
get_tree().paused = true
|
|
||||||
|
|
||||||
remote func _enable_rainbow(id):
|
|
||||||
emit_signal("other_ship_enable_rainbow", id)
|
|
||||||
|
|
||||||
func rainbow(delta):
|
func rainbow(delta):
|
||||||
if rainbow.r < 1 && r_up:
|
if rainbow.r < 1 && r_up:
|
||||||
rainbow.r += rainbow_speed*delta/10
|
rainbow.r += rainbow_speed*delta/10
|
||||||
|
@ -512,10 +397,9 @@ func rainbow(delta):
|
||||||
|
|
||||||
$AnimatedSprite.modulate = rainbow
|
$AnimatedSprite.modulate = rainbow
|
||||||
|
|
||||||
var gameover
|
|
||||||
# displays endgame screen and pauses
|
# displays endgame screen and pauses
|
||||||
func gameOver():
|
func gameOver():
|
||||||
gameover = preload("res://GameOver.tscn").instance()
|
var gameover = preload("res://GameOver.tscn").instance()
|
||||||
add_child(gameover)
|
add_child(gameover)
|
||||||
gameover.connect("restart", self, "restart_game")
|
gameover.connect("restart", self, "restart_game")
|
||||||
# gameover.connect("bullet_delay_upgrade", self, "upgradeBulletDelay_button")
|
# gameover.connect("bullet_delay_upgrade", self, "upgradeBulletDelay_button")
|
||||||
|
@ -528,8 +412,3 @@ func restart_game():
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
money = STARTING_MONEY
|
money = STARTING_MONEY
|
||||||
emit_signal("restart_game")
|
emit_signal("restart_game")
|
||||||
gameover.queue_free()
|
|
||||||
|
|
||||||
func _on_Timer_timeout():
|
|
||||||
if get_tree().has_network_peer():
|
|
||||||
rpc_unreliable("move_player", get_tree().get_network_unique_id(), position, is_shooting)
|
|
||||||
|
|
35
Player.tscn
|
@ -1,15 +1,14 @@
|
||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=7 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/laserer2.png" type="Texture" id=3]
|
[ext_resource path="res://art/player/Rocket1.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=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( 4 ), ExtResource( 5 ) ],
|
"frames": [ ExtResource( 3 ), ExtResource( 4 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "default",
|
"name": "default",
|
||||||
"speed": 15.0
|
"speed": 15.0
|
||||||
|
@ -18,7 +17,7 @@ animations = [ {
|
||||||
[sub_resource type="CapsuleShape2D" id=2]
|
[sub_resource type="CapsuleShape2D" id=2]
|
||||||
|
|
||||||
custom_solver_bias = 0.0
|
custom_solver_bias = 0.0
|
||||||
radius = 25.7545
|
radius = 12.8998
|
||||||
height = 40.4125
|
height = 40.4125
|
||||||
|
|
||||||
[node name="Player" type="Area2D"]
|
[node name="Player" type="Area2D"]
|
||||||
|
@ -37,15 +36,7 @@ script = ExtResource( 1 )
|
||||||
_sections_unfolded = [ "Collision", "Z Index" ]
|
_sections_unfolded = [ "Collision", "Z Index" ]
|
||||||
Laser = ExtResource( 2 )
|
Laser = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="Gunner2" type="Sprite" parent="." index="0"]
|
[node name="AnimatedSprite" type="AnimatedSprite" 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 )
|
||||||
|
@ -53,20 +44,10 @@ frames = SubResource( 1 )
|
||||||
animation = "default"
|
animation = "default"
|
||||||
_sections_unfolded = [ "Transform" ]
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="2"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"]
|
||||||
|
|
||||||
position = Vector2( 5.85673, 1.31631 )
|
position = Vector2( 45.5518, -3.09424 )
|
||||||
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="3"]
|
|
||||||
|
|
||||||
process_mode = 1
|
|
||||||
wait_time = 0.02
|
|
||||||
one_shot = false
|
|
||||||
autostart = true
|
|
||||||
|
|
||||||
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
30
Prison.gd
|
@ -1,7 +1,7 @@
|
||||||
extends "res://Bad.gd"
|
extends "res://Bad.gd"
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
health = 500 #500
|
health = 500
|
||||||
speed = 50
|
speed = 50
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -20,20 +20,20 @@ func _process(delta):
|
||||||
if centered_x && centered_y:
|
if centered_x && centered_y:
|
||||||
$StarSprite.rotation += delta*10
|
$StarSprite.rotation += delta*10
|
||||||
position.x -= delta*500
|
position.x -= delta*500
|
||||||
if position.x < -50:
|
if position.x < 0:
|
||||||
emit_signal("health_up", 200)
|
emit_signal("health_up", 200)
|
||||||
queue_free()
|
queue_free()
|
||||||
else:
|
|
||||||
if position.x < 500:
|
|
||||||
position.x += delta*(544-position.x)+1
|
|
||||||
elif position.x > 524:
|
|
||||||
position.x -= delta*(position.x-480)+1
|
|
||||||
else:
|
|
||||||
centered_x = true
|
|
||||||
|
|
||||||
if position.y < 280:
|
if position.x < 500:
|
||||||
position.y += delta*(320-position.y)+1
|
position.x += delta*100
|
||||||
elif position.y > 320:
|
elif position.x > 524:
|
||||||
position.y -= delta*(position.y-280)+1
|
position.x -= delta*100
|
||||||
else:
|
else:
|
||||||
centered_y = true
|
centered_x = true
|
||||||
|
|
||||||
|
if position.y < 280:
|
||||||
|
position.y += delta*100
|
||||||
|
elif position.y > 320:
|
||||||
|
position.y -= delta*100
|
||||||
|
else:
|
||||||
|
centered_y = true
|
|
@ -30,12 +30,9 @@ animations = [ {
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="Prison" groups=[
|
[node name="Prison" instance=ExtResource( 1 )]
|
||||||
"enemies",
|
|
||||||
] instance=ExtResource( 1 )]
|
|
||||||
|
|
||||||
scale = Vector2( 0.2, 0.2 )
|
scale = Vector2( 0.2, 0.2 )
|
||||||
collision_layer = 4
|
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
_sections_unfolded = [ "Collision", "Transform" ]
|
_sections_unfolded = [ "Collision", "Transform" ]
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
Fronter is side-scrolling shooter game by sagethesagesage.
|
|
||||||
|
|
||||||
Fronter is very much in an alpha state, and many things need improvement, but it is quite playable, and supports LAN-based multiplayer.
|
|
||||||
|
|
||||||
Donations are accepted at patreon.com/fronter and liberapay.com/fronter, and the intention is to accept Ethereum at some point, as well.
|
|
4
Range.gd
|
@ -1,6 +1,8 @@
|
||||||
extends Area2D
|
extends Area2D
|
||||||
|
|
||||||
var damage = 20
|
# class member variables go here, for example:
|
||||||
|
# var a = 2
|
||||||
|
# var b = "textvar"
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# Called every time the node is added to the scene.
|
# Called every time the node is added to the scene.
|
||||||
|
|
|
@ -28,7 +28,7 @@ export (PackedScene) var Laser
|
||||||
#### MAYBE ADD A HEALTH BAR TO MAIN ITSELF ####
|
#### MAYBE ADD A HEALTH BAR TO MAIN ITSELF ####
|
||||||
#var health = 3000
|
#var health = 3000
|
||||||
# DEFAULT:
|
# DEFAULT:
|
||||||
var starting_health = 3000
|
var starting_health = 20000
|
||||||
var health = starting_health
|
var health = starting_health
|
||||||
|
|
||||||
var timer = null
|
var timer = null
|
||||||
|
@ -66,9 +66,29 @@ 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)
|
||||||
|
|
||||||
wobble(delta)
|
#### BIG WOBBLE ####
|
||||||
|
if position.y > 4:
|
||||||
|
move_down = false
|
||||||
|
if position.y <= -4:
|
||||||
|
move_down = true
|
||||||
|
|
||||||
if health < -1*(starting_health/10) && $Inside/InsideBadSprite.rotation_degrees < 180:
|
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 < -3000 && $Inside/InsideBadSprite.rotation_degrees < 180:
|
||||||
$Inside/InsideBadSprite.rotation_degrees += delta*20
|
$Inside/InsideBadSprite.rotation_degrees += delta*20
|
||||||
|
|
||||||
if $Inside/InsideBadSprite.rotation_degrees > 179 && $Inside/InsideBadSprite.rotation_degrees < 190:
|
if $Inside/InsideBadSprite.rotation_degrees > 179 && $Inside/InsideBadSprite.rotation_degrees < 190:
|
||||||
|
@ -100,6 +120,7 @@ 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()
|
||||||
|
|
||||||
|
@ -129,33 +150,33 @@ func _on_Inside_area_entered(area):
|
||||||
emit_signal("boss_health", health, starting_health)
|
emit_signal("boss_health", health, starting_health)
|
||||||
|
|
||||||
func updateOutsideSprite():
|
func updateOutsideSprite():
|
||||||
if health > starting_health*.9:
|
if health > 18000:
|
||||||
$BigBadSprite.frame = 0
|
$BigBadSprite.frame = 0
|
||||||
elif health > starting_health*.8:
|
elif health > 16000:
|
||||||
$BigBadSprite.frame = 1
|
$BigBadSprite.frame = 1
|
||||||
elif health > starting_health*.7:
|
elif health > 14000:
|
||||||
$BigBadSprite.frame = 2
|
$BigBadSprite.frame = 2
|
||||||
elif health > starting_health*.6:
|
elif health > 12000:
|
||||||
$BigBadSprite.frame = 3
|
$BigBadSprite.frame = 3
|
||||||
elif health > starting_health*.5:
|
elif health > 10000:
|
||||||
$BigBadSprite.frame = 4
|
$BigBadSprite.frame = 4
|
||||||
elif health > starting_health*.45:
|
elif health > 9000:
|
||||||
$BigBadSprite.frame = 5
|
$BigBadSprite.frame = 5
|
||||||
elif health > starting_health*.4:
|
elif health > 8000:
|
||||||
$BigBadSprite.frame = 6
|
$BigBadSprite.frame = 6
|
||||||
elif health > starting_health*.35:
|
elif health > 7000:
|
||||||
$BigBadSprite.frame = 7
|
$BigBadSprite.frame = 7
|
||||||
elif health > starting_health*.3:
|
elif health > 6000:
|
||||||
$BigBadSprite.frame = 8
|
$BigBadSprite.frame = 8
|
||||||
elif health > starting_health*.25:
|
elif health > 5000:
|
||||||
$BigBadSprite.frame = 9
|
$BigBadSprite.frame = 9
|
||||||
elif health > starting_health*.2:
|
elif health > 4000:
|
||||||
$BigBadSprite.frame = 10
|
$BigBadSprite.frame = 10
|
||||||
elif health > starting_health*.15:
|
elif health > 3000:
|
||||||
$BigBadSprite.frame = 11
|
$BigBadSprite.frame = 11
|
||||||
elif health > starting_health*.1:
|
elif health > 2000:
|
||||||
$BigBadSprite.frame = 12
|
$BigBadSprite.frame = 12
|
||||||
elif health > starting_health*.075:
|
elif health > 1500:
|
||||||
timer.stop()
|
timer.stop()
|
||||||
$BigBadSprite.frame = 13
|
$BigBadSprite.frame = 13
|
||||||
$Inside/InsideBadSprite.frame = 2
|
$Inside/InsideBadSprite.frame = 2
|
||||||
|
@ -165,28 +186,6 @@ 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()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=28 format=2]
|
[gd_scene load_steps=27 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://RectangleBoss.gd" type="Script" id=1]
|
[ext_resource path="res://RectangleBoss.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]
|
||||||
|
@ -22,7 +22,6 @@
|
||||||
[ext_resource path="res://art/bad/rectangle/rectangle_outside_cracked12.png" type="Texture" id=20]
|
[ext_resource path="res://art/bad/rectangle/rectangle_outside_cracked12.png" type="Texture" id=20]
|
||||||
[ext_resource path="res://art/bad/rectangle/rectangle_outside_cracked13.png" type="Texture" id=21]
|
[ext_resource path="res://art/bad/rectangle/rectangle_outside_cracked13.png" type="Texture" id=21]
|
||||||
[ext_resource path="res://art/bad/rectangle/rectangle_outside_cracked14.png" type="Texture" id=22]
|
[ext_resource path="res://art/bad/rectangle/rectangle_outside_cracked14.png" type="Texture" id=22]
|
||||||
[ext_resource path="res://boss_long_minor_key.ogg" type="AudioStream" id=23]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=1]
|
[sub_resource type="SpriteFrames" id=1]
|
||||||
|
|
||||||
|
@ -52,9 +51,7 @@ animations = [ {
|
||||||
custom_solver_bias = 0.0
|
custom_solver_bias = 0.0
|
||||||
extents = Vector2( 404.313, 217.774 )
|
extents = Vector2( 404.313, 217.774 )
|
||||||
|
|
||||||
[node name="RectangleBoss" type="Area2D" groups=[
|
[node name="RectangleBoss" type="Area2D"]
|
||||||
"enemies",
|
|
||||||
]]
|
|
||||||
|
|
||||||
position = Vector2( 336.401, -1.22772 )
|
position = Vector2( 336.401, -1.22772 )
|
||||||
scale = Vector2( 0.25, 0.25 )
|
scale = Vector2( 0.25, 0.25 )
|
||||||
|
@ -80,7 +77,6 @@ linear_damp = 0.1
|
||||||
angular_damp = 1.0
|
angular_damp = 1.0
|
||||||
audio_bus_override = false
|
audio_bus_override = false
|
||||||
audio_bus_name = "Master"
|
audio_bus_name = "Master"
|
||||||
_sections_unfolded = [ "Collision" ]
|
|
||||||
|
|
||||||
[node name="InsideBadSprite" type="AnimatedSprite" parent="Inside" index="0"]
|
[node name="InsideBadSprite" type="AnimatedSprite" parent="Inside" index="0"]
|
||||||
|
|
||||||
|
@ -121,15 +117,6 @@ shape = SubResource( 4 )
|
||||||
position = Vector2( 3427.85, 1866.16 )
|
position = Vector2( 3427.85, 1866.16 )
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
[node name="BossMusic" type="AudioStreamPlayer" parent="." index="5"]
|
|
||||||
|
|
||||||
stream = ExtResource( 23 )
|
|
||||||
volume_db = 4.0
|
|
||||||
pitch_scale = 1.0
|
|
||||||
autoplay = true
|
|
||||||
mix_target = 0
|
|
||||||
bus = "Master"
|
|
||||||
|
|
||||||
[connection signal="area_entered" from="Inside" to="." method="_on_Inside_area_entered"]
|
[connection signal="area_entered" from="Inside" to="." method="_on_Inside_area_entered"]
|
||||||
|
|
||||||
[connection signal="body_entered" from="Inside" to="." method="_on_Inside_body_entered"]
|
[connection signal="body_entered" from="Inside" to="." method="_on_Inside_body_entered"]
|
||||||
|
|
|
@ -1,142 +0,0 @@
|
||||||
extends "res://Bad.gd"
|
|
||||||
|
|
||||||
signal flash
|
|
||||||
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
|
|
||||||
position.x = 1200
|
|
||||||
starting_health = 2800
|
|
||||||
health = starting_health
|
|
||||||
$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/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/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):
|
|
||||||
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 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 flash():
|
|
||||||
emit_signal("flash")
|
|
||||||
|
|
||||||
func _exit_tree():
|
|
||||||
$LeftArm/BadLaser.queue_free()
|
|
||||||
$RightArm/BadLaser.queue_free()
|
|
1055
RectangleReturn.tscn
|
@ -1,21 +0,0 @@
|
||||||
[gd_scene format=2]
|
|
||||||
|
|
||||||
[node name="Node" type="Node" index="0"]
|
|
||||||
|
|
||||||
[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 = 1022.0
|
|
||||||
margin_bottom = 600.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 )
|
|
||||||
|
|
||||||
|
|
2
TODO
|
@ -1,6 +1,4 @@
|
||||||
* Get the game on F-Droid
|
* Get the game on F-Droid
|
||||||
* A more explicit "wave" system
|
|
||||||
* Different types of fire. Slow enemies down? Area of effect?
|
|
||||||
* More enemy variety
|
* More enemy variety
|
||||||
* A way of increasing difficulty without it suddenly becoming impossible
|
* A way of increasing difficulty without it suddenly becoming impossible
|
||||||
* Mothership art
|
* Mothership art
|
||||||
|
|
95
Turret.gd
|
@ -1,67 +1,32 @@
|
||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
signal upgrade_turret
|
var current_target
|
||||||
|
|
||||||
var can_shoot = true
|
var can_shoot = true
|
||||||
var damage = 15
|
|
||||||
var reload_time = 1.5
|
|
||||||
|
|
||||||
var current_bad_id
|
|
||||||
var current_bad = null
|
|
||||||
var current_bad_shape
|
|
||||||
|
|
||||||
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:"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():
|
func _ready():
|
||||||
$ReloadTimer.wait_time = RELOAD_TIER[tier]
|
|
||||||
damage = DAMAGE_TIER[tier]
|
|
||||||
$Range.scale = RANGE_TIER[tier]
|
|
||||||
$TurretSprite.animation = ANIMATION_TIER[tier]
|
|
||||||
$TurretSprite.scale = ANIMATION_SCALE_TIER[tier]
|
|
||||||
$Damage.text = str(damage)
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
var zeroPoint = Vector2(-60, -1015)
|
var zeroPoint = Vector2(-60, -1015)
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if current_bad:
|
pass
|
||||||
var wr = weakref(current_bad)
|
|
||||||
if wr.get_ref():
|
|
||||||
if current_bad != null:
|
|
||||||
var local_pos = Vector2()
|
|
||||||
local_pos = to_local(current_bad.position)
|
|
||||||
$Beam.set_point_position(1, local_pos)
|
|
||||||
$TurretSprite.rotation = ($Beam.get_point_position(0).angle_to($Beam.get_point_position(1))) + PI/5.3
|
|
||||||
|
|
||||||
if ("Bad" in current_bad.get_name()) && can_shoot:
|
|
||||||
$Beam.default_color.a = 200
|
|
||||||
$TurretSprite.frame = 1
|
|
||||||
if current_bad.health > damage:
|
|
||||||
current_bad.hit(self)
|
|
||||||
else:
|
|
||||||
current_bad.hit(self)
|
|
||||||
current_bad = null
|
|
||||||
$FlashTimer.start()
|
|
||||||
can_shoot = false
|
|
||||||
|
|
||||||
func entityEnteredRange(bad_id, bad, bad_shape, self_shape):
|
func entityEnteredRange(bad_id, bad, bad_shape, self_shape):
|
||||||
#print(bad.get_name())
|
print(bad.get_name())
|
||||||
if ("Bad" in bad.get_name() || "Black" in bad.get_name() || "Boss" in bad.get_name()) || "Prison" in bad.get_name():# && current_bad == null:
|
if ("Bad" in bad.get_name()) && can_shoot:
|
||||||
current_bad = bad
|
current_target = bad_id
|
||||||
current_bad_id = bad_id
|
#var local_pos = zeroPoint + area.position
|
||||||
current_bad_shape = bad_shape
|
var local_pos = Vector2()
|
||||||
enemy_count += 1
|
local_pos = to_local(bad.position)
|
||||||
#print(enemy_count)
|
$Beam.set_point_position(1, local_pos)
|
||||||
|
$TurretSprite.rotation = ($Beam.get_point_position(0).angle_to($Beam.get_point_position(1))) + PI/5.3
|
||||||
|
print($Beam.get_point_position(0).angle_to($Beam.get_point_position(1)))
|
||||||
|
$Beam.default_color.a = 200
|
||||||
|
$TurretSprite.frame = 1
|
||||||
|
bad.hit("turret")
|
||||||
|
$FlashTimer.start()
|
||||||
|
can_shoot = false
|
||||||
|
|
||||||
func _on_FlashTimer_timeout():
|
func _on_FlashTimer_timeout():
|
||||||
$Beam.default_color.a = 0
|
$Beam.default_color.a = 0
|
||||||
|
@ -71,31 +36,3 @@ func _on_FlashTimer_timeout():
|
||||||
func _on_ReloadTimer_timeout():
|
func _on_ReloadTimer_timeout():
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
pass # replace with function body
|
pass # replace with function body
|
||||||
|
|
||||||
func entityExitedRange(bad_id, bad, bad_shape, self_shape):
|
|
||||||
if weakref(bad):
|
|
||||||
if ("Bad" in bad.get_name()):
|
|
||||||
enemy_count -= 1
|
|
||||||
|
|
||||||
if bad_id == current_bad_id:
|
|
||||||
current_bad = null
|
|
||||||
current_bad_id = null
|
|
||||||
current_bad_shape = null
|
|
||||||
|
|
||||||
func _on_OpenMenuButton_pressed():
|
|
||||||
var menu = UMenu.instance()
|
|
||||||
add_child(menu)
|
|
||||||
menu.connect("turret_upgrade", self, "upgradeTurret")
|
|
||||||
pass
|
|
||||||
|
|
||||||
func upgradeTurret():
|
|
||||||
tier += 1
|
|
||||||
$ReloadTimer.wait_time = RELOAD_TIER[tier]
|
|
||||||
damage = DAMAGE_TIER[tier]
|
|
||||||
$Range.scale = RANGE_TIER[tier]
|
|
||||||
$TurretSprite.animation = ANIMATION_TIER[tier]
|
|
||||||
$TurretSprite.scale = ANIMATION_SCALE_TIER[tier]
|
|
||||||
|
|
||||||
func relayUpgrade():
|
|
||||||
print("relayUpgrade()")
|
|
||||||
emit_signal("upgrade_turret", position)
|
|
98
Turret.tscn
|
@ -1,14 +1,8 @@
|
||||||
[gd_scene load_steps=13 format=2]
|
[gd_scene load_steps=6 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://Menus/InherentTurretMenu.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://art/turret/turret.png" type="Texture" id=2]
|
||||||
[ext_resource path="res://art/turret/turret1.5.png" type="Texture" id=3]
|
[ext_resource path="res://art/turret/shootin.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]
|
[sub_resource type="CircleShape2D" id=1]
|
||||||
|
|
||||||
|
@ -18,35 +12,16 @@ radius = 32.0821
|
||||||
[sub_resource type="SpriteFrames" id=2]
|
[sub_resource type="SpriteFrames" id=2]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 3 ), ExtResource( 4 ) ],
|
"frames": [ ExtResource( 2 ), ExtResource( 3 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "point",
|
"name": "default",
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ ExtResource( 5 ), ExtResource( 6 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "plain",
|
|
||||||
"speed": 5.0
|
|
||||||
}, {
|
|
||||||
"frames": [ ExtResource( 7 ), ExtResource( 8 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "spike",
|
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=3]
|
|
||||||
|
|
||||||
size = 50
|
|
||||||
use_mipmaps = false
|
|
||||||
use_filter = false
|
|
||||||
font_data = ExtResource( 9 )
|
|
||||||
_sections_unfolded = [ "Font", "Settings" ]
|
|
||||||
|
|
||||||
[node name="Turret" type="Node2D"]
|
[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"]
|
||||||
|
|
||||||
|
@ -55,16 +30,13 @@ points = PoolVector2Array( 26.4234, -6.61987, 2000, 0 )
|
||||||
width = 10.0
|
width = 10.0
|
||||||
default_color = Color( 1, 0, 0, 0 )
|
default_color = Color( 1, 0, 0, 0 )
|
||||||
texture_mode = 31
|
texture_mode = 31
|
||||||
begin_cap_mode = 2
|
|
||||||
end_cap_mode = 2
|
|
||||||
sharp_limit = 2.0
|
sharp_limit = 2.0
|
||||||
round_precision = 8
|
round_precision = 8
|
||||||
_sections_unfolded = [ "Border", "Capping" ]
|
|
||||||
|
|
||||||
[node name="Range" type="Area2D" parent="." index="1"]
|
[node name="Range" type="Area2D" parent="." index="1"]
|
||||||
|
|
||||||
position = Vector2( -51.824, -18.5961 )
|
position = Vector2( -51.824, -18.5961 )
|
||||||
scale = Vector2( 30, 30 )
|
scale = Vector2( 30.8534, 30.8534 )
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
gravity_vec = Vector2( 0, 1 )
|
gravity_vec = Vector2( 0, 1 )
|
||||||
gravity = 98.0
|
gravity = 98.0
|
||||||
|
@ -75,16 +47,14 @@ collision_layer = 31
|
||||||
collision_mask = 31
|
collision_mask = 31
|
||||||
audio_bus_override = false
|
audio_bus_override = false
|
||||||
audio_bus_name = "Master"
|
audio_bus_name = "Master"
|
||||||
_sections_unfolded = [ "Collision", "Transform" ]
|
_sections_unfolded = [ "Collision" ]
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_group_": true
|
"_edit_group_": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="RangeCircle" type="CollisionShape2D" parent="Range" index="0"]
|
[node name="RangeCircle" type="CollisionShape2D" parent="Range" index="0"]
|
||||||
|
|
||||||
scale = Vector2( 0.5, 0.5 )
|
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
|
|
||||||
[node name="FlashTimer" type="Timer" parent="." index="2"]
|
[node name="FlashTimer" type="Timer" parent="." index="2"]
|
||||||
|
|
||||||
|
@ -105,65 +75,13 @@ autostart = true
|
||||||
rotation = 0.785398
|
rotation = 0.785398
|
||||||
scale = Vector2( 0.12, 0.12 )
|
scale = Vector2( 0.12, 0.12 )
|
||||||
frames = SubResource( 2 )
|
frames = SubResource( 2 )
|
||||||
animation = "plain"
|
animation = "default"
|
||||||
_sections_unfolded = [ "Transform" ]
|
_sections_unfolded = [ "Transform" ]
|
||||||
|
|
||||||
[node name="OpenMenuButton" type="Button" parent="." index="5"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -81.0
|
|
||||||
margin_top = -76.0
|
|
||||||
margin_right = 82.0
|
|
||||||
margin_bottom = 77.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="Damage" type="Label" parent="." index="6"]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -32.0
|
|
||||||
margin_top = -20.0
|
|
||||||
margin_right = 13.0
|
|
||||||
margin_bottom = 20.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
|
|
||||||
custom_fonts/font = SubResource( 3 )
|
|
||||||
text = "15"
|
|
||||||
percent_visible = 1.0
|
|
||||||
lines_skipped = 0
|
|
||||||
max_lines_visible = -1
|
|
||||||
_sections_unfolded = [ "custom_fonts" ]
|
|
||||||
|
|
||||||
[connection signal="area_shape_entered" from="Range" to="." method="entityEnteredRange"]
|
[connection signal="area_shape_entered" from="Range" to="." method="entityEnteredRange"]
|
||||||
|
|
||||||
[connection signal="area_shape_exited" from="Range" to="." method="entityExitedRange"]
|
|
||||||
|
|
||||||
[connection signal="timeout" from="FlashTimer" to="." method="_on_FlashTimer_timeout"]
|
[connection signal="timeout" from="FlashTimer" to="." method="_on_FlashTimer_timeout"]
|
||||||
|
|
||||||
[connection signal="timeout" from="ReloadTimer" to="." method="_on_ReloadTimer_timeout"]
|
[connection signal="timeout" from="ReloadTimer" to="." method="_on_ReloadTimer_timeout"]
|
||||||
|
|
||||||
[connection signal="pressed" from="OpenMenuButton" to="." method="_on_OpenMenuButton_pressed"]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
116
TurretMenu.gd
|
@ -1,116 +0,0 @@
|
||||||
#
|
|
||||||
# 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:
|
|
||||||
$Turret.visible = true
|
|
||||||
else:
|
|
||||||
$Upgrade/Button.text = str("Upgrade: $", TIER_COST[get_parent().tier+1])
|
|
||||||
if get_parent().tier >= 4:
|
|
||||||
$Upgrade/Button.visible = false
|
|
||||||
|
|
||||||
func _input(event):
|
|
||||||
if $Turret.visible == true:
|
|
||||||
if (event is InputEventScreenTouch || event is InputEventScreenDrag):
|
|
||||||
if event.position.x < 800:
|
|
||||||
$Turret.position.x = event.position.x + 100*(event.position.x/800)
|
|
||||||
$Turret.position.y = event.position.y - 100
|
|
||||||
|
|
||||||
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 $Turret.visible == true:
|
|
||||||
velocity = Vector2()
|
|
||||||
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"):
|
|
||||||
velocity.y += 1
|
|
||||||
if Input.is_action_pressed("ui_up"):
|
|
||||||
velocity.y -= 1
|
|
||||||
if (velocity.length() > 0):
|
|
||||||
velocity = velocity.normalized() * 500
|
|
||||||
$Turret.position += velocity * delta
|
|
||||||
|
|
||||||
if get_parent().has_method("upgradeTurret") == true:
|
|
||||||
$Upgrade.visible = true
|
|
||||||
$Turret.visible = false
|
|
||||||
|
|
||||||
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
|
|
||||||
emit_signal("buy_turret", $Turret.position, DEFAULT_TURRET_COST)
|
|
||||||
#get_parent().has_turret = true
|
|
||||||
$Accept.visible = false
|
|
||||||
$Back.visible = true
|
|
||||||
$Turret.visible = false
|
|
||||||
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])
|
|
231
TurretMenu.tscn
|
@ -1,231 +0,0 @@
|
||||||
[gd_scene load_steps=9 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://TurretMenu.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]
|
|
||||||
[ext_resource path="res://Turret.tscn" type="PackedScene" id=5]
|
|
||||||
|
|
||||||
[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="TurretMenu" 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="Turret" parent="." index="4" instance=ExtResource( 5 )]
|
|
||||||
|
|
||||||
visible = false
|
|
||||||
position = Vector2( 550, 300 )
|
|
||||||
scale = Vector2( 0.25, 0.25 )
|
|
||||||
|
|
||||||
[node name="Upgrade" type="Node2D" parent="." index="5"]
|
|
||||||
|
|
||||||
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"]
|
|
||||||
|
|
||||||
|
|
|
@ -22,60 +22,31 @@ extends Node
|
||||||
signal refund
|
signal refund
|
||||||
signal speed_upgrade
|
signal speed_upgrade
|
||||||
signal bullet_delay_upgrade
|
signal bullet_delay_upgrade
|
||||||
signal laser_damage_upgrade
|
|
||||||
signal double_laser_upgrade
|
signal double_laser_upgrade
|
||||||
signal laser_penetration_upgrade
|
|
||||||
signal add_laser
|
signal add_laser
|
||||||
signal plasma_lasers
|
signal plasma_lasers
|
||||||
signal menu_closed
|
signal menu_closed
|
||||||
signal change_color
|
signal change_color
|
||||||
signal taste_the_rainbow
|
signal taste_the_rainbow
|
||||||
signal unlock_turrets
|
|
||||||
signal buy_turret
|
|
||||||
signal turret_menu
|
|
||||||
|
|
||||||
const DEFAULT_TURRET_COST = 1000
|
|
||||||
var turret_cost = DEFAULT_TURRET_COST
|
|
||||||
|
|
||||||
var laser_damage_tier
|
|
||||||
var bullet_delay_tier
|
var bullet_delay_tier
|
||||||
var shooting_speed_tier
|
var shooting_speed_tier
|
||||||
var laser_penetration_tier
|
|
||||||
var double_lasers
|
var double_lasers
|
||||||
var turrets_unlocked = false
|
|
||||||
var has_turret
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
get_tree().paused = true
|
|
||||||
bullet_delay_tier = get_parent().bullet_delay_tier
|
bullet_delay_tier = get_parent().bullet_delay_tier
|
||||||
$ShootingSpeedUpgrade/Icon.frame = bullet_delay_tier
|
$ShootingSpeedUpgrade/Icon.frame = bullet_delay_tier
|
||||||
|
if get_tree().has_network_peer():
|
||||||
if get_parent().next_laser_damage_upgrade_cost == 0:
|
$ColorRect.color = Color(1,1,1,0.5)
|
||||||
$LaserDamageUpgrade/Cost.text = str("Sold Out!")
|
|
||||||
else:
|
else:
|
||||||
$LaserDamageUpgrade/Cost.text = str("$", get_parent().next_laser_damage_upgrade_cost)
|
$ColorRect.color = Color(0,0,0,1)
|
||||||
|
|
||||||
if get_parent().next_bullet_delay_upgrade_cost == 0:
|
|
||||||
$ShootingSpeedUpgrade/Cost.text = str("Sold Out!")
|
|
||||||
else:
|
|
||||||
$ShootingSpeedUpgrade/Cost.text = str("$", get_parent().next_bullet_delay_upgrade_cost)
|
|
||||||
|
|
||||||
if get_parent().next_penetration_upgrade_cost == 0:
|
|
||||||
$LaserPenetrationUpgrade/Cost.text = str("Sold Out!")
|
|
||||||
else:
|
|
||||||
$LaserPenetrationUpgrade/Cost.text = str("$", get_parent().next_penetration_upgrade_cost)
|
|
||||||
|
|
||||||
$ColorRect.color = Color(0,0,0,1)
|
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
$ShootingSpeedUpgrade/Icon.frame = bullet_delay_tier-1
|
$ShootingSpeedUpgrade/Icon.frame = bullet_delay_tier
|
||||||
$LaserDamageUpgrade/Icon.frame = laser_damage_tier-1
|
|
||||||
$LaserPenetrationUpgrade/Icon.frame = laser_penetration_tier-1
|
|
||||||
|
|
||||||
if (Input.is_action_pressed("ui_quit")):
|
if (Input.is_action_pressed("ui_quit")):
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
#if Input.is_action_pressed("ui_accept"):
|
if Input.is_action_pressed("ui_accept"):
|
||||||
# _on_Button_pressed()
|
_on_Button_pressed()
|
||||||
|
|
||||||
func _on_Button_pressed():
|
func _on_Button_pressed():
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
|
@ -92,10 +63,6 @@ func _on_ShootingSpeedUpgrade_pressed():
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
emit_signal("bullet_delay_upgrade")
|
emit_signal("bullet_delay_upgrade")
|
||||||
bullet_delay_tier = get_parent().bullet_delay_tier
|
bullet_delay_tier = get_parent().bullet_delay_tier
|
||||||
if get_parent().next_bullet_delay_upgrade_cost == 0:
|
|
||||||
$ShootingSpeedUpgrade/Cost.text = str("Sold Out!")
|
|
||||||
else:
|
|
||||||
$ShootingSpeedUpgrade/Cost.text = str("$", get_parent().next_bullet_delay_upgrade_cost)
|
|
||||||
|
|
||||||
func _on_DoubleLaserUpgrade_pressed():
|
func _on_DoubleLaserUpgrade_pressed():
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
|
@ -122,6 +89,7 @@ func _on_MediumSpringGreen_pressed():
|
||||||
|
|
||||||
func _on_Tomato_pressed():
|
func _on_Tomato_pressed():
|
||||||
emit_signal("change_color", "ff3e2d")
|
emit_signal("change_color", "ff3e2d")
|
||||||
|
prints("put tomato in dere")
|
||||||
|
|
||||||
func _on_DarkenedLawnGreen_pressed():
|
func _on_DarkenedLawnGreen_pressed():
|
||||||
emit_signal("change_color", "7bd126")
|
emit_signal("change_color", "7bd126")
|
||||||
|
@ -129,39 +97,7 @@ func _on_DarkenedLawnGreen_pressed():
|
||||||
func _on_DeepSkyBlue_pressed():
|
func _on_DeepSkyBlue_pressed():
|
||||||
emit_signal("change_color", "00bfff")
|
emit_signal("change_color", "00bfff")
|
||||||
|
|
||||||
|
#### NOT PAUSING GAME? ####
|
||||||
func _on_Rainbow_pressed():
|
func _on_Rainbow_pressed():
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
emit_signal("taste_the_rainbow")
|
emit_signal("taste_the_rainbow")
|
||||||
|
|
||||||
func _on_Laser_Damage_Upgrade():
|
|
||||||
get_tree().paused = false
|
|
||||||
emit_signal("laser_damage_upgrade")
|
|
||||||
laser_damage_tier = get_parent().laser_damage_tier
|
|
||||||
if get_parent().next_laser_damage_upgrade_cost == 0:
|
|
||||||
$LaserDamageUpgrade/Cost.text = str("Sold Out!")
|
|
||||||
else:
|
|
||||||
$LaserDamageUpgrade/Cost.text = str("$", get_parent().next_laser_damage_upgrade_cost)
|
|
||||||
|
|
||||||
func _on_Laser_Penetration_Upgrade():
|
|
||||||
get_tree().paused = false
|
|
||||||
emit_signal("laser_penetration_upgrade")
|
|
||||||
laser_penetration_tier = get_parent().laser_penetration_tier
|
|
||||||
$LaserPenetrationUpgrade/Icon.frame = laser_penetration_tier
|
|
||||||
if get_parent().next_penetration_upgrade_cost == 0:
|
|
||||||
$LaserPenetrationUpgrade/Cost.text = str("Sold Out!")
|
|
||||||
else:
|
|
||||||
$LaserPenetrationUpgrade/Cost.text = str("$", get_parent().next_penetration_upgrade_cost)
|
|
||||||
|
|
||||||
func openTurretMenu():
|
|
||||||
emit_signal("turret_menu")
|
|
||||||
|
|
||||||
func _on_TurretsButton_pressed():
|
|
||||||
get_tree().paused = false
|
|
||||||
emit_signal("unlock_turrets")
|
|
||||||
turrets_unlocked = get_parent().turrets_unlocked
|
|
||||||
"""
|
|
||||||
if get_parent().money >= turret_cost:
|
|
||||||
var turret = preload("res://Turret.tscn").instance()
|
|
||||||
turret.set_name(turret.get_name())
|
|
||||||
newTurret = turret.get_name()
|
|
||||||
"""
|
|
||||||
|
|
319
UpgradeMenu.tscn
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=35 format=2]
|
[gd_scene load_steps=18 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://UpgradeMenu.gd" type="Script" id=1]
|
[ext_resource path="res://UpgradeMenu.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingspeed1.png" type="Texture" id=2]
|
[ext_resource path="res://art/upgrade_menu/shootingspeed1.png" type="Texture" id=2]
|
||||||
|
@ -6,25 +6,13 @@
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingspeed3.png" type="Texture" id=4]
|
[ext_resource path="res://art/upgrade_menu/shootingspeed3.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingspeed4.png" type="Texture" id=5]
|
[ext_resource path="res://art/upgrade_menu/shootingspeed4.png" type="Texture" id=5]
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingspeed5.png" type="Texture" id=6]
|
[ext_resource path="res://art/upgrade_menu/shootingspeed5.png" type="Texture" id=6]
|
||||||
[ext_resource path="res://art/hand-numbs.ttf" type="DynamicFontData" id=7]
|
[ext_resource path="res://art/upgrade_menu/shipspeed1.png" type="Texture" id=7]
|
||||||
[ext_resource path="res://art/upgrade_menu/shipspeed1.png" type="Texture" id=8]
|
[ext_resource path="res://art/upgrade_menu/shipspeed2.png" type="Texture" id=8]
|
||||||
[ext_resource path="res://art/upgrade_menu/shipspeed2.png" type="Texture" id=9]
|
[ext_resource path="res://art/upgrade_menu/shipspeed3.png" type="Texture" id=9]
|
||||||
[ext_resource path="res://art/upgrade_menu/shipspeed3.png" type="Texture" id=10]
|
[ext_resource path="res://art/upgrade_menu/shipspeed4.png" type="Texture" id=10]
|
||||||
[ext_resource path="res://art/upgrade_menu/shipspeed4.png" type="Texture" id=11]
|
[ext_resource path="res://art/upgrade_menu/shipspeed5.png" type="Texture" id=11]
|
||||||
[ext_resource path="res://art/upgrade_menu/shipspeed5.png" type="Texture" id=12]
|
[ext_resource path="res://art/ColorSelect.png" type="Texture" id=12]
|
||||||
[ext_resource path="res://art/ColorSelect.png" type="Texture" id=13]
|
[ext_resource path="res://art/upgrade_menu/doublelasers.png" type="Texture" id=13]
|
||||||
[ext_resource path="res://art/upgrade_menu/doublelasers.png" type="Texture" id=14]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingdamage1.png" type="Texture" id=15]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingdamage2.png" type="Texture" id=16]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingdamage3.png" type="Texture" id=17]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingdamage4.png" type="Texture" id=18]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/shootingdamage5.png" type="Texture" id=19]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/laserpenetration1.png" type="Texture" id=20]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/laserpenetration2.png" type="Texture" id=21]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/laserpenetration3.png" type="Texture" id=22]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/laserpenetration4.png" type="Texture" id=23]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/laserpenetration5.png" type="Texture" id=24]
|
|
||||||
[ext_resource path="res://art/upgrade_menu/buyturrets.png" type="Texture" id=25]
|
|
||||||
|
|
||||||
[sub_resource type="Theme" id=1]
|
[sub_resource type="Theme" id=1]
|
||||||
|
|
||||||
|
@ -38,63 +26,20 @@ animations = [ {
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=3]
|
[sub_resource type="SpriteFrames" id=3]
|
||||||
|
|
||||||
size = 40
|
|
||||||
use_mipmaps = false
|
|
||||||
use_filter = true
|
|
||||||
font_data = ExtResource( 7 )
|
|
||||||
_sections_unfolded = [ "Font", "Settings" ]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=4]
|
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ) ],
|
"frames": [ ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "New Anim",
|
"name": "New Anim",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
} ]
|
} ]
|
||||||
_sections_unfolded = [ "Resource" ]
|
_sections_unfolded = [ "Resource" ]
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=5]
|
[sub_resource type="SpriteFrames" id=4]
|
||||||
|
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 14 ) ],
|
"frames": [ ExtResource( 13 ) ],
|
||||||
"loop": true,
|
|
||||||
"name": "default",
|
|
||||||
"speed": 5.0
|
|
||||||
} ]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=6]
|
|
||||||
|
|
||||||
animations = [ {
|
|
||||||
"frames": [ ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "default",
|
|
||||||
"speed": 5.0
|
|
||||||
} ]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=7]
|
|
||||||
|
|
||||||
size = 80
|
|
||||||
use_mipmaps = false
|
|
||||||
use_filter = true
|
|
||||||
font_data = ExtResource( 7 )
|
|
||||||
_sections_unfolded = [ "Font", "Settings" ]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=8]
|
|
||||||
|
|
||||||
animations = [ {
|
|
||||||
"frames": [ ExtResource( 20 ), ExtResource( 21 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 24 ) ],
|
|
||||||
"loop": true,
|
|
||||||
"name": "default",
|
|
||||||
"speed": 5.0
|
|
||||||
} ]
|
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=9]
|
|
||||||
|
|
||||||
animations = [ {
|
|
||||||
"frames": [ ExtResource( 25 ) ],
|
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "default",
|
"name": "default",
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
|
@ -145,21 +90,20 @@ toggle_mode = false
|
||||||
enabled_focus_mode = 2
|
enabled_focus_mode = 2
|
||||||
shortcut = null
|
shortcut = null
|
||||||
group = null
|
group = null
|
||||||
text = "Continue"
|
text = "Resume"
|
||||||
flat = false
|
flat = false
|
||||||
align = 1
|
align = 1
|
||||||
|
|
||||||
[node name="Refund" type="Button" parent="." index="2"]
|
[node name="Refund" type="Button" parent="." index="2"]
|
||||||
|
|
||||||
visible = false
|
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
anchor_top = 0.0
|
anchor_top = 0.0
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_left = 840.0
|
margin_left = 860.0
|
||||||
margin_top = 440.0
|
margin_top = 250.0
|
||||||
margin_right = 964.0
|
margin_right = 984.0
|
||||||
margin_bottom = 543.0
|
margin_bottom = 353.0
|
||||||
rect_pivot_offset = Vector2( 0, 0 )
|
rect_pivot_offset = Vector2( 0, 0 )
|
||||||
rect_clip_content = false
|
rect_clip_content = false
|
||||||
focus_mode = 2
|
focus_mode = 2
|
||||||
|
@ -177,17 +121,15 @@ align = 1
|
||||||
|
|
||||||
[node name="ShootingSpeedUpgrade" type="Node" parent="." index="3"]
|
[node name="ShootingSpeedUpgrade" type="Node" parent="." index="3"]
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="ShootingSpeedUpgrade" index="0"]
|
[node name="Button" type="Button" parent="ShootingSpeedUpgrade" index="0"]
|
||||||
|
|
||||||
anchor_left = 0.0
|
anchor_left = 0.0
|
||||||
anchor_top = 0.0
|
anchor_top = 0.0
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_left = 249.0
|
margin_left = 400.0
|
||||||
margin_top = 40.0
|
margin_top = 40.0
|
||||||
margin_right = 505.0
|
margin_right = 660.0
|
||||||
margin_bottom = 198.0
|
margin_bottom = 198.0
|
||||||
rect_pivot_offset = Vector2( 0, 0 )
|
rect_pivot_offset = Vector2( 0, 0 )
|
||||||
rect_clip_content = false
|
rect_clip_content = false
|
||||||
|
@ -205,41 +147,13 @@ align = 1
|
||||||
|
|
||||||
[node name="Icon" type="AnimatedSprite" parent="ShootingSpeedUpgrade" index="1"]
|
[node name="Icon" type="AnimatedSprite" parent="ShootingSpeedUpgrade" index="1"]
|
||||||
|
|
||||||
light_mask = 0
|
position = Vector2( 530, 120 )
|
||||||
position = Vector2( 375, 120 )
|
|
||||||
scale = Vector2( 0.392712, 0.392712 )
|
scale = Vector2( 0.392712, 0.392712 )
|
||||||
frames = SubResource( 2 )
|
frames = SubResource( 2 )
|
||||||
animation = "default"
|
animation = "default"
|
||||||
_sections_unfolded = [ "Visibility" ]
|
|
||||||
|
|
||||||
[node name="Cost" type="Label" parent="ShootingSpeedUpgrade" index="2"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = 327.0
|
|
||||||
margin_top = 22.0
|
|
||||||
margin_right = 536.0
|
|
||||||
margin_bottom = 85.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
|
|
||||||
custom_fonts/font = SubResource( 3 )
|
|
||||||
custom_colors/font_color = Color( 0.272552, 1, 0.230469, 1 )
|
|
||||||
text = "$100"
|
|
||||||
percent_visible = 1.0
|
|
||||||
lines_skipped = 0
|
|
||||||
max_lines_visible = -1
|
|
||||||
_sections_unfolded = [ "custom_colors", "custom_fonts" ]
|
|
||||||
|
|
||||||
[node name="ShipSpeedUpgrade" type="Node" parent="." index="4"]
|
[node name="ShipSpeedUpgrade" type="Node" parent="." index="4"]
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="ShipSpeedUpgrade" index="0"]
|
[node name="Button" type="Button" parent="ShipSpeedUpgrade" index="0"]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
|
@ -268,25 +182,18 @@ align = 1
|
||||||
[node name="Icon" type="AnimatedSprite" parent="ShipSpeedUpgrade" index="1"]
|
[node name="Icon" type="AnimatedSprite" parent="ShipSpeedUpgrade" index="1"]
|
||||||
|
|
||||||
visible = false
|
visible = false
|
||||||
light_mask = 0
|
|
||||||
position = Vector2( 530, 310 )
|
position = Vector2( 530, 310 )
|
||||||
scale = Vector2( 0.392712, 0.392712 )
|
scale = Vector2( 0.392712, 0.392712 )
|
||||||
frames = SubResource( 4 )
|
frames = SubResource( 3 )
|
||||||
animation = "New Anim"
|
animation = "New Anim"
|
||||||
_sections_unfolded = [ "Visibility" ]
|
|
||||||
|
|
||||||
[node name="ColorSelect" type="Node2D" parent="." index="5"]
|
[node name="ColorSelect" type="Node2D" parent="." index="5"]
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
light_mask = 0
|
|
||||||
position = Vector2( 21, 0 )
|
|
||||||
_sections_unfolded = [ "Material", "Visibility" ]
|
|
||||||
|
|
||||||
[node name="ColorSelectBG" type="Sprite" parent="ColorSelect" index="0"]
|
[node name="ColorSelectBG" type="Sprite" parent="ColorSelect" index="0"]
|
||||||
|
|
||||||
position = Vector2( 120, 210 )
|
position = Vector2( 150, 210 )
|
||||||
scale = Vector2( 0.179688, 0.179687 )
|
scale = Vector2( 0.179688, 0.179687 )
|
||||||
texture = ExtResource( 13 )
|
texture = ExtResource( 12 )
|
||||||
|
|
||||||
[node name="Goldenrod" type="Button" parent="ColorSelect/ColorSelectBG" index="0"]
|
[node name="Goldenrod" type="Button" parent="ColorSelect/ColorSelectBG" index="0"]
|
||||||
|
|
||||||
|
@ -531,9 +438,7 @@ align = 1
|
||||||
[node name="DoubleLaserUpgrade" type="Node2D" parent="." index="6"]
|
[node name="DoubleLaserUpgrade" type="Node2D" parent="." index="6"]
|
||||||
|
|
||||||
editor/display_folded = true
|
editor/display_folded = true
|
||||||
light_mask = 0
|
position = Vector2( -150, -10 )
|
||||||
position = Vector2( -320, -30 )
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_group_": true
|
"_edit_group_": true
|
||||||
}
|
}
|
||||||
|
@ -542,9 +447,9 @@ __meta__ = {
|
||||||
|
|
||||||
position = Vector2( 959, 151.811 )
|
position = Vector2( 959, 151.811 )
|
||||||
scale = Vector2( 0.154596, 0.154596 )
|
scale = Vector2( 0.154596, 0.154596 )
|
||||||
frames = SubResource( 5 )
|
frames = SubResource( 4 )
|
||||||
animation = "default"
|
animation = "default"
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
_sections_unfolded = [ "Visibility" ]
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="DoubleLaserUpgrade" index="1"]
|
[node name="Button" type="Button" parent="DoubleLaserUpgrade" index="1"]
|
||||||
|
|
||||||
|
@ -570,172 +475,6 @@ group = null
|
||||||
flat = true
|
flat = true
|
||||||
align = 1
|
align = 1
|
||||||
|
|
||||||
[node name="LaserDamageUpgrade" type="Node2D" parent="." index="7"]
|
|
||||||
|
|
||||||
light_mask = 0
|
|
||||||
position = Vector2( 371, 300 )
|
|
||||||
scale = Vector2( 0.4, 0.4 )
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Icon" type="AnimatedSprite" parent="LaserDamageUpgrade" index="0"]
|
|
||||||
|
|
||||||
frames = SubResource( 6 )
|
|
||||||
animation = "default"
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="LaserDamageUpgrade" index="1"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -320.0
|
|
||||||
margin_top = -200.0
|
|
||||||
margin_right = 320.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
|
|
||||||
flat = true
|
|
||||||
align = 1
|
|
||||||
|
|
||||||
[node name="Cost" type="Label" parent="LaserDamageUpgrade" index="2"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -79.0
|
|
||||||
margin_top = -228.0
|
|
||||||
margin_right = 161.0
|
|
||||||
margin_bottom = -165.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
|
|
||||||
custom_fonts/font = SubResource( 7 )
|
|
||||||
custom_colors/font_color = Color( 0.272552, 1, 0.230469, 1 )
|
|
||||||
text = "$400"
|
|
||||||
percent_visible = 1.0
|
|
||||||
lines_skipped = 0
|
|
||||||
max_lines_visible = -1
|
|
||||||
_sections_unfolded = [ "custom_colors", "custom_fonts" ]
|
|
||||||
|
|
||||||
[node name="LaserPenetrationUpgrade" type="Node2D" parent="." index="8"]
|
|
||||||
|
|
||||||
light_mask = 0
|
|
||||||
position = Vector2( 660, 300 )
|
|
||||||
scale = Vector2( 0.4, 0.4 )
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Icon" type="AnimatedSprite" parent="LaserPenetrationUpgrade" index="0"]
|
|
||||||
|
|
||||||
frames = SubResource( 8 )
|
|
||||||
animation = "default"
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="LaserPenetrationUpgrade" index="1"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -325.0
|
|
||||||
margin_top = -200.0
|
|
||||||
margin_right = 325.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
|
|
||||||
flat = true
|
|
||||||
align = 1
|
|
||||||
|
|
||||||
[node name="Cost" type="Label" parent="LaserPenetrationUpgrade" index="2"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -98.0
|
|
||||||
margin_top = -228.0
|
|
||||||
margin_right = 142.0
|
|
||||||
margin_bottom = -165.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
|
|
||||||
custom_fonts/font = SubResource( 7 )
|
|
||||||
custom_colors/font_color = Color( 0.272552, 1, 0.230469, 1 )
|
|
||||||
text = "$400"
|
|
||||||
percent_visible = 1.0
|
|
||||||
lines_skipped = 0
|
|
||||||
max_lines_visible = -1
|
|
||||||
_sections_unfolded = [ "custom_colors", "custom_fonts" ]
|
|
||||||
|
|
||||||
[node name="Turrets" type="Node2D" parent="." index="9"]
|
|
||||||
|
|
||||||
editor/display_folded = true
|
|
||||||
light_mask = 0
|
|
||||||
position = Vector2( 900, 200 )
|
|
||||||
scale = Vector2( 0.2, 0.2 )
|
|
||||||
_sections_unfolded = [ "Transform", "Visibility" ]
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Icon" type="AnimatedSprite" parent="Turrets" index="0"]
|
|
||||||
|
|
||||||
frames = SubResource( 9 )
|
|
||||||
animation = "default"
|
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="Turrets" index="1"]
|
|
||||||
|
|
||||||
anchor_left = 0.0
|
|
||||||
anchor_top = 0.0
|
|
||||||
anchor_right = 0.0
|
|
||||||
anchor_bottom = 0.0
|
|
||||||
margin_left = -500.0
|
|
||||||
margin_top = -500.0
|
|
||||||
margin_right = 550.0
|
|
||||||
margin_bottom = 450.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
|
|
||||||
|
|
||||||
[connection signal="pressed" from="Resume" to="." method="_on_Button_pressed"]
|
[connection signal="pressed" from="Resume" to="." method="_on_Button_pressed"]
|
||||||
|
|
||||||
[connection signal="pressed" from="Refund" to="." method="_on_Refund_pressed"]
|
[connection signal="pressed" from="Refund" to="." method="_on_Refund_pressed"]
|
||||||
|
@ -766,10 +505,4 @@ align = 1
|
||||||
|
|
||||||
[connection signal="pressed" from="DoubleLaserUpgrade/Button" to="." method="_on_DoubleLaserUpgrade_pressed"]
|
[connection signal="pressed" from="DoubleLaserUpgrade/Button" to="." method="_on_DoubleLaserUpgrade_pressed"]
|
||||||
|
|
||||||
[connection signal="pressed" from="LaserDamageUpgrade/Button" to="." method="_on_Laser_Damage_Upgrade"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="LaserPenetrationUpgrade/Button" to="." method="_on_Laser_Penetration_Upgrade"]
|
|
||||||
|
|
||||||
[connection signal="pressed" from="Turrets/Button" to="." method="_on_TurretsButton_pressed"]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 3.9 MiB |
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 202 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 146 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
art/bg.png
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 196 KiB |
|
@ -1,627 +0,0 @@
|
||||||
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
|
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 194 KiB |
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 204 KiB |
Before Width: | Height: | Size: 3.5 KiB |