Fronter/OtherPlayer.tscn

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