252 lines
5.7 KiB
Plaintext
252 lines
5.7 KiB
Plaintext
[gd_scene load_steps=7 format=2]
|
|
|
|
[ext_resource path="res://Laser.tscn" type="PackedScene" id=1]
|
|
[ext_resource path="res://art/player/Rocket1.png" type="Texture" id=2]
|
|
[ext_resource path="res://art/player/Rocket2.png" type="Texture" id=3]
|
|
|
|
[sub_resource type="GDScript" id=1]
|
|
|
|
script/source = "extends Area2D
|
|
|
|
|
|
signal update_display # tells parent to update points 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 ship_speed_upgrade
|
|
signal shooting_speed_fully_upgraded
|
|
signal ship_speed_fully_upgraded
|
|
signal restart_game
|
|
signal multiplayer_movement
|
|
|
|
export (PackedScene) var Laser
|
|
|
|
################################
|
|
#THINGS THAT MAY NEED ADJUSTING
|
|
#################################
|
|
#Default ship strengths and costs
|
|
const BULLET_DELAY_TIER1 = 0.8
|
|
const BULLET_DELAY_TIER2 = 0.5
|
|
const BULLET_DELAY_TIER3 = 0.2
|
|
const BULLET_DELAY_TIER4 = 0.1
|
|
const BULLET_DELAY_TIER5 = 0.05
|
|
const SHOOTING_SPEED_UPGRADE_DEFAULT = 1500
|
|
const BULLET_DELAY_MINIMUM = 0.01
|
|
const BULLET_DELAY_TIER2_COST = 100
|
|
const BULLET_DELAY_TIER3_COST = 200
|
|
const BULLET_DELAY_TIER4_COST = 400
|
|
const BULLET_DELAY_TIER5_COST = 1000
|
|
|
|
const SHIP_SPEED_TIER1 = 150
|
|
const SHIP_SPEED_TIER2 = 200
|
|
const SHIP_SPEED_TIER3 = 300
|
|
const SHIP_SPEED_TIER4 = 500
|
|
const SHIP_SPEED_TIER5 = 800
|
|
const SHIP_SPEED_UPGRADE_DEFAULT = 1500
|
|
const SHIP_SPEED_MAXIMUM = 1200
|
|
const SHIP_SPEED_TIER2_COST = 200
|
|
const SHIP_SPEED_TIER3_COST = 400
|
|
const SHIP_SPEED_TIER4_COST = 600
|
|
const SHIP_SPEED_TIER5_COST = 800
|
|
|
|
const STARTING_MONEY = 100
|
|
|
|
#################################
|
|
|
|
var screensize
|
|
|
|
var ship_speed = SHIP_SPEED_TIER1
|
|
var ship_speed_tier = 0
|
|
|
|
var bullet_delay = BULLET_DELAY_TIER1
|
|
var bullet_delay_tier = 0
|
|
var laser_penetration = 0
|
|
var double_laser = false
|
|
|
|
var ship_value = 0
|
|
var refund_percentage = 1
|
|
var money = STARTING_MONEY
|
|
|
|
var shooting_speed_upgrade = SHOOTING_SPEED_UPGRADE_DEFAULT
|
|
var ship_speed_upgrade = SHIP_SPEED_UPGRADE_DEFAULT
|
|
|
|
func _ready():
|
|
timer = Timer.new()
|
|
timer.set_one_shot(true)
|
|
timer.set_wait_time(bullet_delay)
|
|
timer.connect(\"timeout\", self, \"on_timeout_complete\")
|
|
add_child(timer)
|
|
timer.start()
|
|
|
|
position.x = 100
|
|
position.y = 250
|
|
|
|
screensize = get_viewport_rect().size
|
|
$AnimatedSprite.play()
|
|
|
|
var timer = null
|
|
|
|
var damage = 0
|
|
var can_shoot = false
|
|
var shoot_down = false
|
|
var is_shooting = false
|
|
|
|
func on_timeout_complete():
|
|
can_shoot = true
|
|
|
|
#func _unhandled_input(event):
|
|
# if (event is InputEventScreenTouch):
|
|
# gravity_point = true
|
|
# gravity_vec = Vector2(0.5, 0.5)
|
|
|
|
var x_up = false
|
|
var y_up = false
|
|
var x_down = false
|
|
var y_down = false
|
|
|
|
var username = \"username\"
|
|
|
|
func setUsername(name):
|
|
username = name
|
|
|
|
func modulate(color):
|
|
if !rainbow_is_on:
|
|
$AnimatedSprite.modulate = color
|
|
|
|
var rainbow = Color(0,0,0,1)
|
|
var r_up = true
|
|
var g_up = true
|
|
var b_up = true
|
|
var rainbow_speed = 30
|
|
var rainbow_is_on = false
|
|
|
|
func _process(delta):
|
|
$Username.text = username
|
|
|
|
if is_shooting:
|
|
shoot()
|
|
|
|
if rainbow_is_on:
|
|
rainbow(delta)
|
|
|
|
pass
|
|
|
|
var laser_damage = 10
|
|
func shoot():
|
|
if can_shoot:
|
|
var laser = Laser.instance()
|
|
get_node(\"../\").add_child(laser)
|
|
laser.current_pen = laser_penetration
|
|
laser.position.y = position.y - 27
|
|
laser.position.x = position.x + 46
|
|
laser.damage = laser_damage
|
|
|
|
#MAYBE THE LASERS SHOULD BE THEIR OWN NODES
|
|
#Would allow for more simple additions in the future
|
|
if double_laser == true:
|
|
var laser2 = Laser.instance()
|
|
get_node(\"../\").add_child(laser2)
|
|
laser2.position.y = position.y + 28
|
|
laser2.position.x = position.x + 46
|
|
laser2.current_pen = laser_penetration
|
|
laser2.damage = laser_damage
|
|
|
|
can_shoot = false
|
|
timer.start()
|
|
|
|
# Funky colors #
|
|
func enable_the_rainbow():
|
|
rainbow_is_on = true
|
|
|
|
func rainbow(delta):
|
|
if rainbow.r < 1 && r_up:
|
|
rainbow.r += rainbow_speed*delta/10
|
|
if rainbow.r >= 1: r_up = false
|
|
else:
|
|
rainbow.r -= rainbow_speed*delta/10
|
|
if rainbow.r <= 0.2: r_up = true
|
|
|
|
if rainbow.g < 1 && g_up:
|
|
rainbow.g += rainbow_speed*delta/9
|
|
if rainbow.g >= 1: g_up = false
|
|
else:
|
|
rainbow.g -= rainbow_speed*delta/9
|
|
if rainbow.g <= 0.2: g_up = true
|
|
|
|
if rainbow.b < 1 && b_up:
|
|
rainbow.b += rainbow_speed*delta/8
|
|
if rainbow.b >= 1: b_up = false
|
|
else:
|
|
rainbow.b -= rainbow_speed*delta/8
|
|
if rainbow.b <= 0.2: b_up = true
|
|
|
|
$AnimatedSprite.modulate = rainbow"
|
|
_sections_unfolded = [ "Resource" ]
|
|
|
|
[sub_resource type="SpriteFrames" id=2]
|
|
|
|
animations = [ {
|
|
"frames": [ ExtResource( 2 ), ExtResource( 3 ) ],
|
|
"loop": true,
|
|
"name": "default",
|
|
"speed": 15.0
|
|
} ]
|
|
|
|
[sub_resource type="CapsuleShape2D" id=3]
|
|
|
|
custom_solver_bias = 0.0
|
|
radius = 12.8998
|
|
height = 40.4125
|
|
|
|
[node name="OtherPlayer" type="Area2D"]
|
|
|
|
input_pickable = true
|
|
gravity_point = true
|
|
gravity_vec = Vector2( 10, 10 )
|
|
gravity = 1000.0
|
|
linear_damp = 0.1
|
|
angular_damp = 1.0
|
|
collision_layer = 29
|
|
collision_mask = 29
|
|
audio_bus_override = false
|
|
audio_bus_name = "Master"
|
|
script = SubResource( 1 )
|
|
_sections_unfolded = [ "Material" ]
|
|
Laser = ExtResource( 1 )
|
|
|
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"]
|
|
|
|
position = Vector2( 1.01175, 7.07602 )
|
|
scale = Vector2( 0.2, 0.2 )
|
|
frames = SubResource( 2 )
|
|
animation = "default"
|
|
_sections_unfolded = [ "Visibility" ]
|
|
|
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"]
|
|
|
|
position = Vector2( 45.5518, -3.09424 )
|
|
shape = SubResource( 3 )
|
|
|
|
[node name="Username" type="Label" parent="." index="2"]
|
|
|
|
anchor_left = 0.0
|
|
anchor_top = 0.0
|
|
anchor_right = 0.0
|
|
anchor_bottom = 0.0
|
|
margin_left = -87.0
|
|
margin_top = -55.0
|
|
margin_right = 87.0
|
|
margin_bottom = -41.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 = "username"
|
|
align = 1
|
|
percent_visible = 1.0
|
|
lines_skipped = 0
|
|
max_lines_visible = -1
|
|
|
|
|