commit cba1d36005c1c9c3bc0b20ce43ea81bd19c89f0b Author: Michaël Lemaire Date: Mon Feb 3 22:59:43 2020 +0100 First godot prototype diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..77637dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.import/ +exports/ diff --git a/arenas/anchor.gd b/arenas/anchor.gd new file mode 100644 index 0000000..0f63147 --- /dev/null +++ b/arenas/anchor.gd @@ -0,0 +1,38 @@ +extends Sprite + +class_name Anchor + +export var selectable = false +export var selected = false +export(String, "normal", "attack_start", "defend_start") var anchor_type = "normal" +var content + +func _process(delta): + if selected: + modulate = Color(1, 0.4, 0.4) + elif selectable: + modulate = Color(1, 0.8, 0.2) + else: + modulate = Color(1, 1, 1) + +func _ready(): + add_to_group("anchors") + +func is_connected_to(other: Anchor) -> bool: + for route in get_tree().get_nodes_in_group("routes"): + if route is Route and route.is_connecting(self, other): + return true + return false + +func set_content(val): + if val is Node: + var old_parent = val.get_parent() + if old_parent: + if old_parent.has_method("set_content"): + old_parent.set_content(null) + old_parent.remove_child(val) + self.add_child(val) + content = val + +func is_empty() -> bool: + return not content diff --git a/arenas/anchor.png b/arenas/anchor.png new file mode 100644 index 0000000..61fab14 Binary files /dev/null and b/arenas/anchor.png differ diff --git a/arenas/anchor.png.import b/arenas/anchor.png.import new file mode 100644 index 0000000..e6859aa --- /dev/null +++ b/arenas/anchor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/anchor.png-7e2397122cc30d939130d75ca5246363.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://arenas/anchor.png" +dest_files=[ "res://.import/anchor.png-7e2397122cc30d939130d75ca5246363.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/arenas/anchor.svg b/arenas/anchor.svg new file mode 100644 index 0000000..4fe2494 --- /dev/null +++ b/arenas/anchor.svg @@ -0,0 +1,67 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/arenas/anchor.svg.import b/arenas/anchor.svg.import new file mode 100644 index 0000000..113fc89 --- /dev/null +++ b/arenas/anchor.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/anchor.svg-8be5a4424459bcf87ceca457e666f7f6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://arenas/anchor.svg" +dest_files=[ "res://.import/anchor.svg-8be5a4424459bcf87ceca457e666f7f6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/arenas/anchor.tscn b/arenas/anchor.tscn new file mode 100644 index 0000000..6bf7f66 --- /dev/null +++ b/arenas/anchor.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://arenas/anchor.png" type="Texture" id=1] +[ext_resource path="res://arenas/anchor.gd" type="Script" id=2] + +[node name="anchor" type="Sprite"] +position = Vector2( 367.813, 896.351 ) +texture = ExtResource( 1 ) +script = ExtResource( 2 ) diff --git a/arenas/normal1.tscn b/arenas/normal1.tscn new file mode 100644 index 0000000..a1a80b7 --- /dev/null +++ b/arenas/normal1.tscn @@ -0,0 +1,349 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://arenas/anchor.tscn" type="PackedScene" id=1] +[ext_resource path="res://arenas/route.tscn" type="PackedScene" id=2] + +[node name="arena_normal1" type="Node2D"] + +[node name="routes" type="Node2D" parent="."] + +[node name="route" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1500, 780, 1380 ) +start = NodePath("../../anchors/anchor") +end = NodePath("../../anchors/anchor4") + +[node name="route7" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1260, 780, 1380 ) +start = NodePath("../../anchors/anchor3") +end = NodePath("../../anchors/anchor4") + +[node name="route8" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 900, 1200, 780, 1380 ) +start = NodePath("../../anchors/anchor6") +end = NodePath("../../anchors/anchor4") + +[node name="route9" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 900, 1200, 540, 1260 ) +start = NodePath("../../anchors/anchor6") +end = NodePath("../../anchors/anchor3") + +[node name="route10" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 900, 1200, 720, 1080 ) +start = NodePath("../../anchors/anchor6") +end = NodePath("../../anchors/anchor9") + +[node name="route16" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 900, 1200, 960, 960 ) +start = NodePath("../../anchors/anchor6") +end = NodePath("../../anchors/anchor11") + +[node name="route17" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 720, 1080, 960, 960 ) +start = NodePath("../../anchors/anchor9") +end = NodePath("../../anchors/anchor11") + +[node name="route22" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 780, 840, 960, 960 ) +start = NodePath("../../anchors/anchor24") +end = NodePath("../../anchors/anchor11") + +[node name="route26" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 960, 720, 960, 960 ) +start = NodePath("../../anchors/anchor17") +end = NodePath("../../anchors/anchor11") + +[node name="route31" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 960, 720, 900, 480 ) +start = NodePath("../../anchors/anchor17") +end = NodePath("../../anchors/anchor14") + +[node name="route32" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 780, 300, 900, 480 ) +start = NodePath("../../anchors/anchor12") +end = NodePath("../../anchors/anchor14") + +[node name="route53" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 420, 900, 480 ) +start = NodePath("../../anchors/anchor20") +end = NodePath("../../anchors/anchor14") + +[node name="route33" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 780, 300, 544, 184 ) +start = NodePath("../../anchors/anchor12") +end = NodePath("../../anchors/anchor16") + +[node name="route49" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 780, 300, 540, 420 ) +start = NodePath("../../anchors/anchor12") +end = NodePath("../../anchors/anchor20") + +[node name="route43" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 420, 544, 184 ) +start = NodePath("../../anchors/anchor20") +end = NodePath("../../anchors/anchor16") + +[node name="route48" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 420, 720, 600 ) +start = NodePath("../../anchors/anchor20") +end = NodePath("../../anchors/anchor19") + +[node name="route47" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 420, 360, 600 ) +start = NodePath("../../anchors/anchor20") +end = NodePath("../../anchors/anchor21") + +[node name="route28" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 960, 720, 780, 840 ) +start = NodePath("../../anchors/anchor17") +end = NodePath("../../anchors/anchor24") + +[node name="route41" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 960, 720, 720, 600 ) +start = NodePath("../../anchors/anchor17") +end = NodePath("../../anchors/anchor19") + +[node name="route42" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 900, 480, 720, 600 ) +start = NodePath("../../anchors/anchor14") +end = NodePath("../../anchors/anchor19") + +[node name="route24" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 780, 840, 540, 960 ) +start = NodePath("../../anchors/anchor24") +end = NodePath("../../anchors/anchor7") + +[node name="route30" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 780, 840, 540, 720 ) +start = NodePath("../../anchors/anchor24") +end = NodePath("../../anchors/anchor22") + +[node name="route37" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 960, 540, 720 ) +start = NodePath("../../anchors/anchor7") +end = NodePath("../../anchors/anchor22") + +[node name="route11" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1260, 720, 1080 ) +start = NodePath("../../anchors/anchor3") +end = NodePath("../../anchors/anchor9") + +[node name="route2" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1500, 300, 1380 ) +start = NodePath("../../anchors/anchor") +end = NodePath("../../anchors/anchor2") + +[node name="route3" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1500, 540, 1260 ) +start = NodePath("../../anchors/anchor") +end = NodePath("../../anchors/anchor3") + +[node name="route4" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 300, 1380, 180, 1200 ) +start = NodePath("../../anchors/anchor2") +end = NodePath("../../anchors/anchor5") + +[node name="route5" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1260, 180, 1200 ) +start = NodePath("../../anchors/anchor3") +end = NodePath("../../anchors/anchor5") + +[node name="route12" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 1080, 180, 1200 ) +start = NodePath("../../anchors/anchor8") +end = NodePath("../../anchors/anchor5") + +[node name="route15" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 120, 960, 180, 1200 ) +start = NodePath("../../anchors/anchor10") +end = NodePath("../../anchors/anchor5") + +[node name="route18" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 120, 960, 360, 1080 ) +start = NodePath("../../anchors/anchor10") +end = NodePath("../../anchors/anchor8") + +[node name="route21" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 120, 960, 300, 840 ) +start = NodePath("../../anchors/anchor10") +end = NodePath("../../anchors/anchor23") + +[node name="route25" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 120, 960, 120, 720 ) +start = NodePath("../../anchors/anchor10") +end = NodePath("../../anchors/anchor18") + +[node name="route34" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 180, 480, 120, 720 ) +start = NodePath("../../anchors/anchor15") +end = NodePath("../../anchors/anchor18") + +[node name="route38" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 600, 120, 720, 120, 720 ) +start = NodePath("../../anchors/anchor21") +end = NodePath("../../anchors/anchor18") + +[node name="route39" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 600, 120, 720 ) +start = NodePath("../../anchors/anchor21") +end = NodePath("../../anchors/anchor18") + +[node name="route40" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 600, 180, 480 ) +start = NodePath("../../anchors/anchor21") +end = NodePath("../../anchors/anchor15") + +[node name="route44" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 600, 720, 600 ) +start = NodePath("../../anchors/anchor21") +end = NodePath("../../anchors/anchor19") + +[node name="route46" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 720, 720, 600 ) +start = NodePath("../../anchors/anchor22") +end = NodePath("../../anchors/anchor19") + +[node name="route45" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 600, 540, 720 ) +start = NodePath("../../anchors/anchor21") +end = NodePath("../../anchors/anchor22") + +[node name="route35" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 180, 480, 300, 300 ) +start = NodePath("../../anchors/anchor15") +end = NodePath("../../anchors/anchor13") + +[node name="route36" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 544, 184, 300, 300 ) +start = NodePath("../../anchors/anchor16") +end = NodePath("../../anchors/anchor13") + +[node name="route50" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 544, 184, 300, 300 ) +start = NodePath("../../anchors/anchor16") +end = NodePath("../../anchors/anchor13") + +[node name="route51" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 420, 300, 300 ) +start = NodePath("../../anchors/anchor20") +end = NodePath("../../anchors/anchor13") + +[node name="route52" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 420, 180, 480 ) +start = NodePath("../../anchors/anchor20") +end = NodePath("../../anchors/anchor15") + +[node name="route27" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 300, 840, 120, 720 ) +start = NodePath("../../anchors/anchor23") +end = NodePath("../../anchors/anchor18") + +[node name="route23" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 960, 300, 840 ) +start = NodePath("../../anchors/anchor7") +end = NodePath("../../anchors/anchor23") + +[node name="route29" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 720, 300, 840 ) +start = NodePath("../../anchors/anchor22") +end = NodePath("../../anchors/anchor23") + +[node name="route13" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 1080, 540, 1260 ) +start = NodePath("../../anchors/anchor8") +end = NodePath("../../anchors/anchor3") + +[node name="route14" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 1080, 720, 1080 ) +start = NodePath("../../anchors/anchor8") +end = NodePath("../../anchors/anchor9") + +[node name="route20" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 360, 1080, 540, 960 ) +start = NodePath("../../anchors/anchor8") +end = NodePath("../../anchors/anchor7") + +[node name="route19" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 960, 720, 1080 ) +start = NodePath("../../anchors/anchor7") +end = NodePath("../../anchors/anchor9") + +[node name="route6" parent="routes" instance=ExtResource( 2 )] +points = PoolVector2Array( 540, 1260, 300, 1380 ) +start = NodePath("../../anchors/anchor3") +end = NodePath("../../anchors/anchor2") + +[node name="anchors" type="Node2D" parent="."] + +[node name="anchor" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 540, 1500 ) + +[node name="anchor2" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 300, 1380 ) + +[node name="anchor3" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 540, 1260 ) +anchor_type = "attack_start" + +[node name="anchor4" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 780, 1380 ) + +[node name="anchor5" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 180, 1200 ) + +[node name="anchor6" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 900, 1200 ) + +[node name="anchor7" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 540, 960 ) + +[node name="anchor8" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 360, 1080 ) + +[node name="anchor9" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 720, 1080 ) + +[node name="anchor10" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 120, 960 ) + +[node name="anchor11" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 960, 960 ) + +[node name="anchor12" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 780, 300 ) + +[node name="anchor13" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 300, 300 ) + +[node name="anchor14" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 900, 480 ) + +[node name="anchor15" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 180, 480 ) + +[node name="anchor16" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 544, 184 ) + +[node name="anchor17" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 960, 720 ) + +[node name="anchor18" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 120, 720 ) + +[node name="anchor19" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 720, 600 ) + +[node name="anchor20" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 540, 420 ) +anchor_type = "defend_start" + +[node name="anchor21" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 360, 600 ) + +[node name="anchor22" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 540, 720 ) + +[node name="anchor23" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 300, 840 ) + +[node name="anchor24" parent="anchors" instance=ExtResource( 1 )] +position = Vector2( 780, 840 ) diff --git a/arenas/route.gd b/arenas/route.gd new file mode 100644 index 0000000..843e615 --- /dev/null +++ b/arenas/route.gd @@ -0,0 +1,34 @@ +tool +extends Line2D + +class_name Route + +export (NodePath) var start setget set_start +export (NodePath) var end setget set_end + +func _ready(): + set_start(start) + set_end(end) + add_to_group("routes") + +func set_start(val): + start = val + if start: + var node = get_node_or_null(start) + if node: + set_point_position(0, node.position) + +func set_end(val): + end = val + if end: + var node = get_node_or_null(end) + if node: + set_point_position(1, node.position) + +func is_connecting(anchor1, anchor2) -> bool: + if start and end: + var start_node = get_node_or_null(start) + var end_node = get_node_or_null(end) + return start_node and end_node and ((start_node == anchor1 and end_node == anchor2) or (start_node == anchor2 and end_node == anchor1)) + else: + return false diff --git a/arenas/route.tscn b/arenas/route.tscn new file mode 100644 index 0000000..f91d845 --- /dev/null +++ b/arenas/route.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://arenas/route.gd" type="Script" id=1] + +[node name="route" type="Line2D"] +points = PoolVector2Array( 0, 0, 240, 0 ) +default_color = Color( 0.227451, 0.392157, 0.47451, 1 ) +begin_cap_mode = 2 +end_cap_mode = 2 +antialiased = true +script = ExtResource( 1 ) diff --git a/cards/base_card.gd b/cards/base_card.gd new file mode 100644 index 0000000..d9dcd62 --- /dev/null +++ b/cards/base_card.gd @@ -0,0 +1,81 @@ +tool +extends Panel + +const AnimHelper = preload("res://helpers/anims.gd") +const BattleHelper = preload("res://helpers/battle.gd") + +export var title = "Card" setget set_title +export(Texture) var portrait setget set_portrait +export(PackedScene) var spawned_unit setget set_spawned_unit + +var dragged = false +var base_position +var selected_anchor + +func _ready(): + set_portrait(portrait) + set_title(title) + set_spawned_unit(spawned_unit) + base_position = rect_position + +func set_title(val): + title = val + if has_node("title"): + $title.text = title + +func set_portrait(val): + portrait = val + if has_node("portrait"): + $portrait.texture = portrait + +func set_spawned_unit(val): + spawned_unit = val + if has_node("points"): + if spawned_unit: + var unit = spawned_unit.instance() + $points.move = unit.base_move_points + $points.hull = unit.base_hull_points + $points.shield = unit.base_shield_points + $points.damage = unit.base_damage_points + $points.visible = true + else: + $points.visible = false + +func can_be_used_on_anchor(anchor): + if anchor is Anchor: + if spawned_unit and not anchor.is_empty(): + return false + return true + else: + return false + +func update_anchors(): + var position = rect_global_position + rect_size / 2 if dragged else null + selected_anchor = BattleHelper.update_anchors(get_tree(), position, funcref(self, "can_be_used_on_anchor")) + +func play(anchor): + if spawned_unit: + anchor.set_content(spawned_unit.instance()) + queue_free() + +func return_to_base(): + AnimHelper.linear_goto(self, base_position, 0.3) + +func _gui_input(event): + if event is InputEventMouseButton and event.button_index == 1: + if event.pressed: + dragged = true + modulate = Color(1, 1, 1, 0.5) + elif dragged: + dragged = false + modulate = Color(1, 1, 1, 1) + if selected_anchor: + play(selected_anchor) + else: + return_to_base() + + if event is InputEventMouseMotion: + if event.button_mask == BUTTON_LEFT: + set_position(rect_position + event.relative) + + update_anchors() diff --git a/cards/base_card.png b/cards/base_card.png new file mode 100644 index 0000000..1e93c4b Binary files /dev/null and b/cards/base_card.png differ diff --git a/cards/base_card.png.import b/cards/base_card.png.import new file mode 100644 index 0000000..fd73b11 --- /dev/null +++ b/cards/base_card.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/base_card.png-cd04ba4d2a73d84b4f772c5746fcd8d7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/base_card.png" +dest_files=[ "res://.import/base_card.png-cd04ba4d2a73d84b4f772c5746fcd8d7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/base_card.svg b/cards/base_card.svg new file mode 100644 index 0000000..8507d9a --- /dev/null +++ b/cards/base_card.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/cards/base_card.svg.import b/cards/base_card.svg.import new file mode 100644 index 0000000..f32b3b1 --- /dev/null +++ b/cards/base_card.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/base_card.svg-e065e5cedab311295214645ae915fc10.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/base_card.svg" +dest_files=[ "res://.import/base_card.svg-e065e5cedab311295214645ae915fc10.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/base_card.tscn b/cards/base_card.tscn new file mode 100644 index 0000000..0ba07e4 --- /dev/null +++ b/cards/base_card.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://cards/base_card.png" type="Texture" id=1] +[ext_resource path="res://cards/base_card.gd" type="Script" id=2] +[ext_resource path="res://theme/ui.tres" type="Theme" id=3] +[ext_resource path="res://theme/fonts/daggersquare.regular.otf" type="DynamicFontData" id=4] +[ext_resource path="res://cards/base_card_portrait.png" type="Texture" id=5] +[ext_resource path="res://units/points.tscn" type="PackedScene" id=6] + +[sub_resource type="DynamicFont" id=1] +size = 22 +font_data = ExtResource( 4 ) + +[node name="card" type="Panel"] +self_modulate = Color( 1, 1, 1, 0 ) +margin_left = -90.0 +margin_top = -120.0 +margin_right = 90.0 +margin_bottom = 120.0 +mouse_default_cursor_shape = 6 +theme = ExtResource( 3 ) +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} +portrait = ExtResource( 5 ) + +[node name="background" type="Sprite" parent="."] +position = Vector2( 90, 120 ) +texture = ExtResource( 1 ) + +[node name="title" type="Label" parent="."] +margin_left = 30.0 +margin_top = 10.0 +margin_right = 150.0 +margin_bottom = 45.0 +theme = ExtResource( 3 ) +custom_fonts/font = SubResource( 1 ) +custom_colors/font_color = Color( 0, 0, 0, 1 ) +text = "Card" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="portrait" type="Sprite" parent="."] +position = Vector2( 90, 140 ) +scale = Vector2( 0.6, 0.6 ) +texture = ExtResource( 5 ) + +[node name="points" parent="." instance=ExtResource( 6 )] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_top = 78.0 +margin_bottom = 123.0 +rect_scale = Vector2( 0.5, 0.5 ) diff --git a/cards/base_card_portrait.png b/cards/base_card_portrait.png new file mode 100644 index 0000000..5c34788 Binary files /dev/null and b/cards/base_card_portrait.png differ diff --git a/cards/base_card_portrait.png.import b/cards/base_card_portrait.png.import new file mode 100644 index 0000000..c6eea07 --- /dev/null +++ b/cards/base_card_portrait.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/base_card_portrait.png-266eea43badfb75b1d95a5faaed31962.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/base_card_portrait.png" +dest_files=[ "res://.import/base_card_portrait.png-266eea43badfb75b1d95a5faaed31962.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_avenger.png b/cards/spawn_avenger.png new file mode 100644 index 0000000..8b99142 Binary files /dev/null and b/cards/spawn_avenger.png differ diff --git a/cards/spawn_avenger.png.import b/cards/spawn_avenger.png.import new file mode 100644 index 0000000..ecd2295 --- /dev/null +++ b/cards/spawn_avenger.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_avenger.png-0e9b42e111ad47348fa2bb54082d25af.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_avenger.png" +dest_files=[ "res://.import/spawn_avenger.png-0e9b42e111ad47348fa2bb54082d25af.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_avenger.tscn b/cards/spawn_avenger.tscn new file mode 100644 index 0000000..cb4b8bf --- /dev/null +++ b/cards/spawn_avenger.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://units/avenger.tscn" type="PackedScene" id=1] +[ext_resource path="res://cards/spawn_avenger.png" type="Texture" id=2] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=3] + +[node name="spawn_avenger" instance=ExtResource( 3 )] +title = "Avenger" +portrait = ExtResource( 2 ) +spawned_unit = ExtResource( 1 ) + +[node name="title" parent="." index="1"] +text = "Avenger" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="3"] +visible = true +move = 1 +hull = 2 +damage = 3 diff --git a/cards/spawn_breeze.png b/cards/spawn_breeze.png new file mode 100644 index 0000000..0451b18 Binary files /dev/null and b/cards/spawn_breeze.png differ diff --git a/cards/spawn_breeze.png.import b/cards/spawn_breeze.png.import new file mode 100644 index 0000000..af963ac --- /dev/null +++ b/cards/spawn_breeze.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_breeze.png-a26105160ca2c20c3fe2cbf5112a5e38.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_breeze.png" +dest_files=[ "res://.import/spawn_breeze.png-a26105160ca2c20c3fe2cbf5112a5e38.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_breeze.tscn b/cards/spawn_breeze.tscn new file mode 100644 index 0000000..69a5191 --- /dev/null +++ b/cards/spawn_breeze.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cards/spawn_breeze.png" type="Texture" id=1] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=2] +[ext_resource path="res://units/breeze.tscn" type="PackedScene" id=3] + +[node name="spawn_breeze" instance=ExtResource( 2 )] +title = "Breeze" +portrait = ExtResource( 1 ) +spawned_unit = ExtResource( 3 ) + +[node name="title" parent="." index="1"] +text = "Breeze" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 1 ) + +[node name="points" parent="." index="3"] +visible = true +move = 2 +hull = 1 +shield = 2 +damage = 2 diff --git a/cards/spawn_commodore.png b/cards/spawn_commodore.png new file mode 100644 index 0000000..459bddf Binary files /dev/null and b/cards/spawn_commodore.png differ diff --git a/cards/spawn_commodore.png.import b/cards/spawn_commodore.png.import new file mode 100644 index 0000000..79c7ba1 --- /dev/null +++ b/cards/spawn_commodore.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_commodore.png-66add408bdd33b45607203ba7d601c08.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_commodore.png" +dest_files=[ "res://.import/spawn_commodore.png-66add408bdd33b45607203ba7d601c08.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_commodore.tscn b/cards/spawn_commodore.tscn new file mode 100644 index 0000000..47636d9 --- /dev/null +++ b/cards/spawn_commodore.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cards/spawn_commodore.png" type="Texture" id=1] +[ext_resource path="res://units/commodore.tscn" type="PackedScene" id=2] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=3] + +[node name="spawn_commorode" instance=ExtResource( 3 )] +title = "Commodore" +portrait = ExtResource( 1 ) +spawned_unit = ExtResource( 2 ) + +[node name="title" parent="." index="1"] +text = "Commodore" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 1 ) + +[node name="points" parent="." index="3"] +visible = true +move = 2 +hull = 2 +damage = 3 diff --git a/cards/spawn_creeper.png b/cards/spawn_creeper.png new file mode 100644 index 0000000..f521c76 Binary files /dev/null and b/cards/spawn_creeper.png differ diff --git a/cards/spawn_creeper.png.import b/cards/spawn_creeper.png.import new file mode 100644 index 0000000..2311069 --- /dev/null +++ b/cards/spawn_creeper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_creeper.png-519e7a442f8730fa5b853c6fa7b94b52.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_creeper.png" +dest_files=[ "res://.import/spawn_creeper.png-519e7a442f8730fa5b853c6fa7b94b52.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_creeper.tscn b/cards/spawn_creeper.tscn new file mode 100644 index 0000000..4380562 --- /dev/null +++ b/cards/spawn_creeper.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/creeper.tscn" type="PackedScene" id=2] +[ext_resource path="res://cards/spawn_creeper.png" type="Texture" id=3] + +[node name="spawn_creeper" instance=ExtResource( 1 )] +title = "Creeper" +portrait = ExtResource( 3 ) +spawned_unit = ExtResource( 2 ) + +[node name="title" parent="." index="1"] +text = "Creeper" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 3 ) + +[node name="points" parent="." index="3"] +visible = true +move = 3 +hull = 3 +damage = 2 diff --git a/cards/spawn_falcon.png b/cards/spawn_falcon.png new file mode 100644 index 0000000..33cebf9 Binary files /dev/null and b/cards/spawn_falcon.png differ diff --git a/cards/spawn_falcon.png.import b/cards/spawn_falcon.png.import new file mode 100644 index 0000000..182a2d9 --- /dev/null +++ b/cards/spawn_falcon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_falcon.png-0848e156a2fe111dbd3ccc9fed8dc60b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_falcon.png" +dest_files=[ "res://.import/spawn_falcon.png-0848e156a2fe111dbd3ccc9fed8dc60b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_falcon.tscn b/cards/spawn_falcon.tscn new file mode 100644 index 0000000..6dd101f --- /dev/null +++ b/cards/spawn_falcon.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=1] +[ext_resource path="res://cards/spawn_falcon.png" type="Texture" id=2] +[ext_resource path="res://units/falcon.tscn" type="PackedScene" id=3] + +[node name="spawn_falcon" instance=ExtResource( 1 )] +title = "Falcon" +portrait = ExtResource( 2 ) +spawned_unit = ExtResource( 3 ) + +[node name="title" parent="." index="1"] +text = "Falcon" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="3"] +visible = true +move = 2 +hull = 2 +shield = 1 +damage = 2 diff --git a/cards/spawn_flea.png b/cards/spawn_flea.png new file mode 100644 index 0000000..f28f3fd Binary files /dev/null and b/cards/spawn_flea.png differ diff --git a/cards/spawn_flea.png.import b/cards/spawn_flea.png.import new file mode 100644 index 0000000..3bf8f88 --- /dev/null +++ b/cards/spawn_flea.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_flea.png-be5a9d99544b57d747f6693041905b91.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_flea.png" +dest_files=[ "res://.import/spawn_flea.png-be5a9d99544b57d747f6693041905b91.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_flea.tscn b/cards/spawn_flea.tscn new file mode 100644 index 0000000..188ce61 --- /dev/null +++ b/cards/spawn_flea.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cards/spawn_flea.png" type="Texture" id=1] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=2] +[ext_resource path="res://units/flea.tscn" type="PackedScene" id=3] + +[node name="spawn_flea" instance=ExtResource( 2 )] +title = "Flea" +portrait = ExtResource( 1 ) +spawned_unit = ExtResource( 3 ) + +[node name="title" parent="." index="1"] +text = "Flea" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 1 ) + +[node name="points" parent="." index="3"] +visible = true +move = 4 +hull = 1 +shield = 1 +damage = 1 diff --git a/cards/spawn_jumper.png b/cards/spawn_jumper.png new file mode 100644 index 0000000..e05b875 Binary files /dev/null and b/cards/spawn_jumper.png differ diff --git a/cards/spawn_jumper.png.import b/cards/spawn_jumper.png.import new file mode 100644 index 0000000..d81857e --- /dev/null +++ b/cards/spawn_jumper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_jumper.png-1f71a23fcc95a1c9b7932dc015425dc1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_jumper.png" +dest_files=[ "res://.import/spawn_jumper.png-1f71a23fcc95a1c9b7932dc015425dc1.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_jumper.tscn b/cards/spawn_jumper.tscn new file mode 100644 index 0000000..a2ce477 --- /dev/null +++ b/cards/spawn_jumper.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://units/jumper.tscn" type="PackedScene" id=1] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=2] +[ext_resource path="res://cards/spawn_jumper.png" type="Texture" id=3] + +[node name="spawn_jumper" instance=ExtResource( 2 )] +title = "Jumper" +portrait = ExtResource( 3 ) +spawned_unit = ExtResource( 1 ) + +[node name="title" parent="." index="1"] +text = "Jumper" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 3 ) + +[node name="points" parent="." index="3"] +visible = true +move = 3 +hull = 1 +shield = 2 +damage = 2 diff --git a/cards/spawn_trapper.png b/cards/spawn_trapper.png new file mode 100644 index 0000000..9141e75 Binary files /dev/null and b/cards/spawn_trapper.png differ diff --git a/cards/spawn_trapper.png.import b/cards/spawn_trapper.png.import new file mode 100644 index 0000000..4441ab6 --- /dev/null +++ b/cards/spawn_trapper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_trapper.png-b66f0ec37cb8dddf6d2a59ce3a093aef.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_trapper.png" +dest_files=[ "res://.import/spawn_trapper.png-b66f0ec37cb8dddf6d2a59ce3a093aef.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_trapper.tscn b/cards/spawn_trapper.tscn new file mode 100644 index 0000000..3d99b88 --- /dev/null +++ b/cards/spawn_trapper.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://cards/spawn_trapper.png" type="Texture" id=1] +[ext_resource path="res://units/trapper.tscn" type="PackedScene" id=2] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=3] + +[node name="spawn_trapper" instance=ExtResource( 3 )] +title = "Trapper" +portrait = ExtResource( 1 ) +spawned_unit = ExtResource( 2 ) + +[node name="title" parent="." index="1"] +text = "Trapper" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 1 ) + +[node name="points" parent="." index="3"] +visible = true +move = 2 +hull = 2 +shield = 1 +damage = 2 diff --git a/cards/spawn_xander.png b/cards/spawn_xander.png new file mode 100644 index 0000000..09a4907 Binary files /dev/null and b/cards/spawn_xander.png differ diff --git a/cards/spawn_xander.png.import b/cards/spawn_xander.png.import new file mode 100644 index 0000000..5226872 --- /dev/null +++ b/cards/spawn_xander.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spawn_xander.png-e850114739e91765be24759f7e950cde.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/spawn_xander.png" +dest_files=[ "res://.import/spawn_xander.png-e850114739e91765be24759f7e950cde.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cards/spawn_xander.tscn b/cards/spawn_xander.tscn new file mode 100644 index 0000000..05fb64c --- /dev/null +++ b/cards/spawn_xander.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://units/xander.tscn" type="PackedScene" id=1] +[ext_resource path="res://cards/spawn_xander.png" type="Texture" id=2] +[ext_resource path="res://cards/base_card.tscn" type="PackedScene" id=3] + +[node name="spawn_xander" instance=ExtResource( 3 )] +title = "Xander" +portrait = ExtResource( 2 ) +spawned_unit = ExtResource( 1 ) + +[node name="title" parent="." index="1"] +text = "Xander" + +[node name="portrait" parent="." index="2"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="3"] +visible = true +move = 2 +hull = 2 +shield = 1 +damage = 2 diff --git a/env.tres b/env.tres new file mode 100644 index 0000000..c167127 --- /dev/null +++ b/env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_sky = SubResource( 1 ) +background_energy = 0.0 diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..292d6ff --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,248 @@ +[preset.0] + +name="HTML5" +platform="HTML5" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="exports/web/index.html" +patch_list=PoolStringArray( ) +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=true +html/custom_html_shell="" +html/head_include="" +custom_template/release="" +custom_template/debug="" + +[preset.1] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="exports/linux/spacetac.x86_64" +patch_list=PoolStringArray( ) +script_export_mode=1 +script_encryption_key="" + +[preset.1.options] + +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true +binary_format/64_bits=true +binary_format/embed_pck=false +custom_template/release="" +custom_template/debug="" + +[preset.2] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="exports/android/spacetac.apk" +patch_list=PoolStringArray( ) +script_export_mode=1 +script_encryption_key="" + +[preset.2.options] + +graphics/32_bits_framebuffer=true +xr_features/xr_mode=0 +xr_features/degrees_of_freedom=0 +xr_features/hand_tracking=0 +one_click_deploy/clear_previous_install=false +custom_template/debug="" +custom_template/release="" +custom_template/use_custom_build=false +command_line/extra_args="" +version/code=1 +version/name="1.0" +package/unique_name="org.godotengine.$genname" +package/name="" +package/signed=true +screen/immersive_mode=true +screen/orientation=1 +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +screen/opengl_debug=false +launcher_icons/main_192x192="res://icon192.png" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +keystore/debug="" +keystore/debug_user="" +keystore/debug_password="" +keystore/release="" +keystore/release_user="" +keystore/release_password="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +architectures/armeabi-v7a=true +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +permissions/custom_permissions=PoolStringArray( ) +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false diff --git a/helpers/anims.gd b/helpers/anims.gd new file mode 100644 index 0000000..3296f1b --- /dev/null +++ b/helpers/anims.gd @@ -0,0 +1,8 @@ +static func linear_goto(node: Node, dest: Vector2, duration=0.5, easing=true): + var tween = Tween.new() + node.add_child(tween) + tween.interpolate_property( + node, "rect_position" if node is Control else "position", + node.rect_position if node is Control else node.position, dest, duration, + Tween.TRANS_LINEAR, Tween.EASE_IN_OUT if easing else null) + tween.start() diff --git a/helpers/battle.gd b/helpers/battle.gd new file mode 100644 index 0000000..e773a52 --- /dev/null +++ b/helpers/battle.gd @@ -0,0 +1,27 @@ +static func update_anchors(tree: SceneTree, position, acceptability) -> Anchor: + """ Update anchor visual hint, and return selected one + """ + var anchors = tree.get_nodes_in_group("anchors") + for anchor in anchors: + anchor.selectable = position and acceptability.call_func(anchor) + + var selected_anchor = null + var selected_distance = INF + for anchor in anchors: + if anchor.selectable: + var distance = anchor.global_position.distance_to(position) + if distance < 150 and distance < selected_distance: + selected_anchor = anchor + selected_distance = distance + + for anchor in anchors: + anchor.selected = (anchor == selected_anchor) + + return selected_anchor + +static func spawn_unit(name: String, anchor: Anchor): + """ Spawn a unit on an empty anchor + """ + var scene = load("res://units/" + name + ".tscn") + var node = scene.instance() + anchor.set_content(node) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..dda6479 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/icon192.png b/icon192.png new file mode 100644 index 0000000..3c3cae9 Binary files /dev/null and b/icon192.png differ diff --git a/icon192.png.import b/icon192.png.import new file mode 100644 index 0000000..bb17b46 --- /dev/null +++ b/icon192.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon192.png-314ef95b0ddbdc5122a821dfa6e2f4ee.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon192.png" +dest_files=[ "res://.import/icon192.png-314ef95b0ddbdc5122a821dfa6e2f4ee.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..52276fe --- /dev/null +++ b/project.godot @@ -0,0 +1,48 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "Sprite", +"class": "Anchor", +"language": "GDScript", +"path": "res://arenas/anchor.gd" +}, { +"base": "Line2D", +"class": "Route", +"language": "GDScript", +"path": "res://arenas/route.gd" +} ] +_global_script_class_icons={ +"Anchor": "", +"Route": "" +} + +[application] + +config/name="SpaceTac" +config/description="A tactical game set in space" +run/main_scene="res://screens/title/title.tscn" +config/icon="res://icon.png" + +[display] + +window/size/width=1080 +window/size/height=1920 +window/handheld/orientation="portrait" +window/stretch/mode="2d" +window/stretch/aspect="keep" + +[gui] + +theme/custom="res://theme/ui.tres" + +[rendering] + +environment/default_environment="res://env.tres" diff --git a/screens/battle/background.jpg b/screens/battle/background.jpg new file mode 100644 index 0000000..e173d5b Binary files /dev/null and b/screens/battle/background.jpg differ diff --git a/screens/battle/background.jpg.import b/screens/battle/background.jpg.import new file mode 100644 index 0000000..919203a --- /dev/null +++ b/screens/battle/background.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/background.jpg-b242a9a3a53a88ebb2be30535ce63dae.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/battle/background.jpg" +dest_files=[ "res://.import/background.jpg-b242a9a3a53a88ebb2be30535ce63dae.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/battle/battle.gd b/screens/battle/battle.gd new file mode 100644 index 0000000..df68e64 --- /dev/null +++ b/screens/battle/battle.gd @@ -0,0 +1,21 @@ +extends Panel + +const BattleHelper = preload("res://helpers/battle.gd") + +func _ready(): + create_hero_units() + +func find_free_anchor(anchor_type: String): + for anchor in get_tree().get_nodes_in_group("anchors"): + if anchor.anchor_type == anchor_type and anchor.is_empty(): + return anchor + return null + +func create_hero_unit(name: String, anchor_type: String): + var anchor = find_free_anchor(anchor_type) + if anchor: + BattleHelper.spawn_unit("heroes/" + name, anchor) + +func create_hero_units(): + create_hero_unit("tomahawk", "attack_start") + create_hero_unit("rhino", "defend_start") diff --git a/screens/battle/battle.tscn b/screens/battle/battle.tscn new file mode 100644 index 0000000..85c6e0e --- /dev/null +++ b/screens/battle/battle.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://screens/battle/mechanolith.ogg" type="AudioStream" id=1] +[ext_resource path="res://cards/spawn_falcon.tscn" type="PackedScene" id=2] +[ext_resource path="res://arenas/normal1.tscn" type="PackedScene" id=3] +[ext_resource path="res://screens/battle/background.jpg" type="Texture" id=4] +[ext_resource path="res://screens/battle/battle.gd" type="Script" id=5] +[ext_resource path="res://cards/spawn_jumper.tscn" type="PackedScene" id=6] +[ext_resource path="res://cards/spawn_flea.tscn" type="PackedScene" id=7] +[ext_resource path="res://cards/spawn_creeper.tscn" type="PackedScene" id=8] + +[node name="view" type="Panel"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 5 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="background" type="Sprite" parent="."] +position = Vector2( 540, 970 ) +rotation = -4.71238 +texture = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="arena_normal1" parent="." instance=ExtResource( 3 )] + +[node name="bgm" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 1 ) +volume_db = -15.891 +autoplay = true + +[node name="spawn_falcon" parent="." instance=ExtResource( 2 )] +self_modulate = Color( 1, 1, 1, 1 ) +margin_left = 240.0 +margin_top = 1660.0 +margin_right = 420.0 +margin_bottom = 1900.0 +theme = null + +[node name="spawn_jumper" parent="." instance=ExtResource( 6 )] +margin_left = 450.0 +margin_top = 1660.0 +margin_right = 630.0 +margin_bottom = 1900.0 + +[node name="spawn_creeper" parent="." instance=ExtResource( 8 )] +margin_left = 660.0 +margin_top = 1660.0 +margin_right = 840.0 +margin_bottom = 1900.0 + +[node name="spawn_flea" parent="." instance=ExtResource( 7 )] +margin_left = 870.0 +margin_top = 1660.0 +margin_right = 1050.0 +margin_bottom = 1900.0 diff --git a/screens/battle/mechanolith.ogg b/screens/battle/mechanolith.ogg new file mode 100644 index 0000000..4a86329 Binary files /dev/null and b/screens/battle/mechanolith.ogg differ diff --git a/screens/battle/mechanolith.ogg.import b/screens/battle/mechanolith.ogg.import new file mode 100644 index 0000000..bdd863e --- /dev/null +++ b/screens/battle/mechanolith.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/mechanolith.ogg-bf9ddc5505122c79bf0aa5c88c56cec9.oggstr" + +[deps] + +source_file="res://screens/battle/mechanolith.ogg" +dest_files=[ "res://.import/mechanolith.ogg-bf9ddc5505122c79bf0aa5c88c56cec9.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/screens/intro/division.ogg b/screens/intro/division.ogg new file mode 100644 index 0000000..a6c7e61 Binary files /dev/null and b/screens/intro/division.ogg differ diff --git a/screens/intro/division.ogg.import b/screens/intro/division.ogg.import new file mode 100644 index 0000000..bb2f150 --- /dev/null +++ b/screens/intro/division.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/division.ogg-42dfa3d17c6db6047174ccffe6267651.oggstr" + +[deps] + +source_file="res://screens/intro/division.ogg" +dest_files=[ "res://.import/division.ogg-42dfa3d17c6db6047174ccffe6267651.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/screens/intro/flash.png b/screens/intro/flash.png new file mode 100644 index 0000000..2c5fb62 Binary files /dev/null and b/screens/intro/flash.png differ diff --git a/screens/intro/flash.png.import b/screens/intro/flash.png.import new file mode 100644 index 0000000..84b226a --- /dev/null +++ b/screens/intro/flash.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/flash.png-435554d310d29ea75c70e925984043f0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/intro/flash.png" +dest_files=[ "res://.import/flash.png-435554d310d29ea75c70e925984043f0.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/intro/fleet.png b/screens/intro/fleet.png new file mode 100644 index 0000000..9f0f619 Binary files /dev/null and b/screens/intro/fleet.png differ diff --git a/screens/intro/fleet.png.import b/screens/intro/fleet.png.import new file mode 100644 index 0000000..8d310fc --- /dev/null +++ b/screens/intro/fleet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/fleet.png-b0f89e68141f798cc723fcf415fd6cfe.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/intro/fleet.png" +dest_files=[ "res://.import/fleet.png-b0f89e68141f798cc723fcf415fd6cfe.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/intro/galaxy1.png b/screens/intro/galaxy1.png new file mode 100644 index 0000000..4c0c92e Binary files /dev/null and b/screens/intro/galaxy1.png differ diff --git a/screens/intro/galaxy1.png.import b/screens/intro/galaxy1.png.import new file mode 100644 index 0000000..cda64bd --- /dev/null +++ b/screens/intro/galaxy1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/galaxy1.png-b335839180a6aa75bb7532422a042eea.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/intro/galaxy1.png" +dest_files=[ "res://.import/galaxy1.png-b335839180a6aa75bb7532422a042eea.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/intro/galaxy2.png b/screens/intro/galaxy2.png new file mode 100644 index 0000000..6ba358a Binary files /dev/null and b/screens/intro/galaxy2.png differ diff --git a/screens/intro/galaxy2.png.import b/screens/intro/galaxy2.png.import new file mode 100644 index 0000000..642e000 --- /dev/null +++ b/screens/intro/galaxy2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/galaxy2.png-919dfb17caeed477321539935ba2c94d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/intro/galaxy2.png" +dest_files=[ "res://.import/galaxy2.png-919dfb17caeed477321539935ba2c94d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/intro/intro.tscn b/screens/intro/intro.tscn new file mode 100644 index 0000000..6d36c86 --- /dev/null +++ b/screens/intro/intro.tscn @@ -0,0 +1,807 @@ +[gd_scene load_steps=25 format=2] + +[ext_resource path="res://theme/ui.tres" type="Theme" id=1] +[ext_resource path="res://screens/intro/galaxy1.png" type="Texture" id=2] +[ext_resource path="res://screens/intro/galaxy2.png" type="Texture" id=3] +[ext_resource path="res://screens/intro/division.ogg" type="AudioStream" id=4] +[ext_resource path="res://screens/intro/fleet.png" type="Texture" id=5] +[ext_resource path="res://screens/intro/flash.png" type="Texture" id=6] + +[sub_resource type="GDScript" id=1] +script/source = "extends Panel + +func _gui_input(event): + if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and event.pressed: + $caption.next() + +func _ready(): + $caption.next() + +func skip(): + get_tree().change_scene(\"res://screens/map/map.tscn\") +" + +[sub_resource type="GDScript" id=2] +script/source = "extends Node2D + +func _on_steps_animation_started(anim_name): + if anim_name == \"step4\": + $fadein.play(\"main\") + elif anim_name == \"step9\": + $arrival.play(\"main\") +" + +[sub_resource type="Animation" id=3] +resource_name = "init" +tracks/0/type = "value" +tracks/0/path = NodePath("galaxy:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ) ] +} + +[sub_resource type="Animation" id=4] +length = 3.0 +tracks/0/type = "value" +tracks/0/path = NodePath("galaxy:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=5] +resource_name = "loop" +length = 60.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("galaxy/galaxy2:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 60 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -360.0, 360.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("galaxy/galaxy1:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 60 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -180.0, 180.0 ] +} + +[sub_resource type="Animation" id=6] +resource_name = "init" +length = 6.0 +tracks/0/type = "value" +tracks/0/path = NodePath("galaxy/fleet:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 761.331, -374.784 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("galaxy/flash:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("galaxy/fleet:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("galaxy/fleet:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 2, 2 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("galaxy/flash:scale") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ) ] +} + +[sub_resource type="Animation" id=7] +length = 6.0 +tracks/0/type = "value" +tracks/0/path = NodePath("galaxy/fleet:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.8, 4 ), +"transitions": PoolRealArray( 1, 1, 1.00001 ), +"update": 0, +"values": [ Vector2( 757.014, -290.604 ), Vector2( 206.221, 5.72168 ), Vector2( -87.0764, 206.765 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("galaxy/flash:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 3.8, 4, 4.3 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("galaxy/fleet:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 4, 4.3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("galaxy/fleet:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 2, 2 ), Vector2( 1.5, 1.5 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("galaxy/flash:scale") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 3.7, 4, 4.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 3, 3 ), Vector2( 0.1, 0.1 ) ] +} + +[sub_resource type="StyleBoxFlat" id=8] +content_margin_left = 20.0 +content_margin_right = 20.0 +content_margin_top = 20.0 +content_margin_bottom = 20.0 +bg_color = Color( 0.105882, 0.231373, 0.294118, 0.862745 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.227451, 0.392157, 0.47451, 1 ) + +[sub_resource type="GDScript" id=9] +script/source = "extends PanelContainer + +signal finished + +var step = 1 + +func next(): + var anim = \"step%d\" % step + if $steps.is_playing(): + $steps.seek(10) + else: + if $steps.has_animation(anim): + $steps.play(anim) + else: + emit_signal(\"finished\") + step += 1 +" + +[sub_resource type="Animation" id=10] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "In a not-so-distant future, Artifical Intelligence has become the most prominent species in the universe." ] +} + +[sub_resource type="Animation" id=11] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "Obsolete and outsmarted, humans have been defeated in their pitiful rebellions, and parked inside reservations." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=12] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "With the secrets of faster-than-light travel unveiled in only a handful of decades, AIs uploaded themselves in spaceships, and quickly colonized nearby galaxies." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=13] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "But now, the Terranax galaxy is in turmoil." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=14] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "After centuries of unmatched peace and prosperous trading, the FTC (Federal Terranaxan Council), a group of elected representants in charge of edicting laws and organizing the Terranax Security Force, has been overtaken by forces unknown." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=15] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "No official communication has been issued since, and numerous rogue fleets have taken position in key sectors of the galaxy, forbidding passage or harassing merchants." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=16] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "The Master Merchant Guild, a powerful group that spans several galaxies, is worried about the profit loss those events incurred, and after many debates, decided to send several investigation teams to Terranax." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=17] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "Their task is to discreetly uncover the origin of the invasion, and to bring back intel that may be used by the Guild to plan an appropriate response." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[sub_resource type="Animation" id=18] +length = 5.0 +tracks/0/type = "value" +tracks/0/path = NodePath("text:percent_visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.5, 0.8, 5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 0.6, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("text:text") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "Your team has been sent through the Expeller jump system based in the Eros-MC galaxy, and just left quantum space in orbit of a Terranaxan star..." ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("text:custom_colors/font_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.4, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0.00392157 ), Color( 0.858824, 0.937255, 0.976471, 1 ) ] +} + +[node name="view" type="Panel"] +anchor_right = 1.0 +anchor_bottom = 1.0 +theme = ExtResource( 1 ) +script = SubResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="galaxy" type="Node2D" parent="."] +position = Vector2( 540, 800 ) +script = SubResource( 2 ) + +[node name="galaxy1" type="Sprite" parent="galaxy"] +rotation = -3.14159 +scale = Vector2( 1.9609, 1.9609 ) +texture = ExtResource( 2 ) + +[node name="galaxy2" type="Sprite" parent="galaxy"] +modulate = Color( 1, 1, 1, 0.4 ) +rotation = -6.28319 +scale = Vector2( 1.34889, 1.34889 ) +texture = ExtResource( 3 ) + +[node name="fleet" type="Sprite" parent="galaxy"] +position = Vector2( 761.331, -290.604 ) +scale = Vector2( 2, 2 ) +texture = ExtResource( 5 ) + +[node name="flash" type="Sprite" parent="galaxy"] +modulate = Color( 1, 1, 1, 0 ) +position = Vector2( -87.3383, 208.042 ) +texture = ExtResource( 6 ) + +[node name="fadein" type="AnimationPlayer" parent="galaxy"] +root_node = NodePath("../..") +autoplay = "init" +anims/init = SubResource( 3 ) +anims/main = SubResource( 4 ) + +[node name="rotation" type="AnimationPlayer" parent="galaxy"] +root_node = NodePath("../..") +autoplay = "loop" +anims/loop = SubResource( 5 ) + +[node name="arrival" type="AnimationPlayer" parent="galaxy"] +root_node = NodePath("../..") +autoplay = "init" +anims/init = SubResource( 6 ) +anims/main = SubResource( 7 ) + +[node name="skip" type="Button" parent="."] +anchor_left = 1.0 +anchor_right = 1.0 +margin_left = -360.0 +margin_top = 40.0 +margin_right = -38.0 +margin_bottom = 129.0 +text = "skip" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="caption" type="PanelContainer" parent="."] +modulate = Color( 1, 1, 1, 0 ) +anchor_left = 0.1 +anchor_top = 0.9 +anchor_right = 0.9 +anchor_bottom = 0.95 +grow_vertical = 0 +mouse_filter = 1 +custom_styles/panel = SubResource( 8 ) +script = SubResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="text" type="Label" parent="caption"] +margin_left = 20.0 +margin_top = 20.0 +margin_right = 844.0 +margin_bottom = 173.0 +custom_colors/font_color = Color( 0.858824, 0.937255, 0.976471, 1 ) +text = "In a not-so-distant future, Artifical Intelligence has become the most prominent species in the universe." +align = 1 +valign = 1 +autowrap = true +percent_visible = 0.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="steps" type="AnimationPlayer" parent="caption"] +playback_speed = 2.0 +anims/step1 = SubResource( 10 ) +anims/step2 = SubResource( 11 ) +anims/step3 = SubResource( 12 ) +anims/step4 = SubResource( 13 ) +anims/step5 = SubResource( 14 ) +anims/step6 = SubResource( 15 ) +anims/step7 = SubResource( 16 ) +anims/step8 = SubResource( 17 ) +anims/step9 = SubResource( 18 ) + +[node name="bgm" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 4 ) +autoplay = true +[connection signal="pressed" from="skip" to="." method="skip"] +[connection signal="finished" from="caption" to="." method="skip"] +[connection signal="animation_started" from="caption/steps" to="galaxy" method="_on_steps_animation_started"] diff --git a/screens/intro/star.png b/screens/intro/star.png new file mode 100644 index 0000000..439ce38 Binary files /dev/null and b/screens/intro/star.png differ diff --git a/screens/intro/star.png.import b/screens/intro/star.png.import new file mode 100644 index 0000000..83396fd --- /dev/null +++ b/screens/intro/star.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/star.png-654fb4dc1ff83d85a5b785d01167a7ad.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/intro/star.png" +dest_files=[ "res://.import/star.png-654fb4dc1ff83d85a5b785d01167a7ad.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/map/map.tscn b/screens/map/map.tscn new file mode 100644 index 0000000..2622c24 --- /dev/null +++ b/screens/map/map.tscn @@ -0,0 +1,8 @@ +[gd_scene format=2] + +[node name="view" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/screens/title/background.jpg b/screens/title/background.jpg new file mode 100644 index 0000000..a25fd38 Binary files /dev/null and b/screens/title/background.jpg differ diff --git a/screens/title/background.jpg.import b/screens/title/background.jpg.import new file mode 100644 index 0000000..320c819 --- /dev/null +++ b/screens/title/background.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/background.jpg-47c6a2a849cd2e6e87ff89ff623bea4c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/title/background.jpg" +dest_files=[ "res://.import/background.jpg-47c6a2a849cd2e6e87ff89ff623bea4c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/title/supernatural.ogg b/screens/title/supernatural.ogg new file mode 100644 index 0000000..5401e64 Binary files /dev/null and b/screens/title/supernatural.ogg differ diff --git a/screens/title/supernatural.ogg.import b/screens/title/supernatural.ogg.import new file mode 100644 index 0000000..3e1e419 --- /dev/null +++ b/screens/title/supernatural.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/supernatural.ogg-71ab97efbc92c4e7f346047eedcbb48f.oggstr" + +[deps] + +source_file="res://screens/title/supernatural.ogg" +dest_files=[ "res://.import/supernatural.ogg-71ab97efbc92c4e7f346047eedcbb48f.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/screens/title/title.png b/screens/title/title.png new file mode 100644 index 0000000..349dfbc Binary files /dev/null and b/screens/title/title.png differ diff --git a/screens/title/title.png.import b/screens/title/title.png.import new file mode 100644 index 0000000..7b18ef4 --- /dev/null +++ b/screens/title/title.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/title.png-3b76bedfa57d0c5854c64827cc99f033.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/title/title.png" +dest_files=[ "res://.import/title.png-3b76bedfa57d0c5854c64827cc99f033.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/title/title.svg b/screens/title/title.svg new file mode 100644 index 0000000..042f70c --- /dev/null +++ b/screens/title/title.svg @@ -0,0 +1,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + SpaceTac + SpaceTac + SpaceTac + + + a tactical turn-based RPG + a tactical turn-based RPG + + + diff --git a/screens/title/title.svg.import b/screens/title/title.svg.import new file mode 100644 index 0000000..04d7988 --- /dev/null +++ b/screens/title/title.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/title.svg-22a2dc08e177802429036fa8569e30cd.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screens/title/title.svg" +dest_files=[ "res://.import/title.svg-22a2dc08e177802429036fa8569e30cd.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/screens/title/title.tscn b/screens/title/title.tscn new file mode 100644 index 0000000..cad1318 --- /dev/null +++ b/screens/title/title.tscn @@ -0,0 +1,185 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://screens/title/supernatural.ogg" type="AudioStream" id=1] +[ext_resource path="res://theme/ui.tres" type="Theme" id=2] +[ext_resource path="res://screens/title/title.png" type="Texture" id=3] +[ext_resource path="res://screens/title/background.jpg" type="Texture" id=4] + +[sub_resource type="GDScript" id=1] +script/source = "extends Panel + +export var interactive = false + +func _input(event): + if event is InputEventMouseButton: + if event.button_index == BUTTON_LEFT and not event.pressed: + $anims.seek(10) + +func _on_skirmish_pressed(): + if interactive: + get_tree().change_scene(\"res://screens/battle/battle.tscn\") + +func _on_story_pressed(): + if interactive: + get_tree().change_scene(\"res://screens/intro/intro.tscn\") +" + +[sub_resource type="Animation" id=2] +length = 10.0 +tracks/0/type = "value" +tracks/0/path = NodePath("title_background:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1.5, 5.3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("title:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.5, 5.3, 6.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("menu:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1.5, 5.3, 6.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("bgm:playing") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 2, +"values": [ false, true ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("presents:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 0.3, 0.6, 1.2, 1.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("title_background:position") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1.5, 5.3 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 540, 2480 ), Vector2( 540, 2480 ), Vector2( 540, 1600 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath(".:interactive") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 5.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ false, true ] +} + +[node name="view" type="Panel"] +anchor_right = 1.0 +anchor_bottom = 1.0 +theme = ExtResource( 2 ) +script = SubResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="title" type="Sprite" parent="."] +modulate = Color( 1, 1, 1, 0.555556 ) +position = Vector2( 540, 392.205 ) +texture = ExtResource( 3 ) + +[node name="title_background" type="Sprite" parent="."] +position = Vector2( 540, 1600 ) +texture = ExtResource( 4 ) + +[node name="presents" type="Label" parent="."] +modulate = Color( 1, 1, 1, 0 ) +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -155.0 +margin_top = -76.5 +margin_right = 155.0 +margin_bottom = 76.5 +text = "Michaël Lemaire + +presents" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="menu" type="CenterContainer" parent="."] +modulate = Color( 1, 1, 1, 0.555556 ) +anchor_right = 1.0 +margin_top = 550.0 +margin_bottom = 1250.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="menu_buttons" type="VBoxContainer" parent="menu"] +margin_left = 336.0 +margin_top = 221.0 +margin_right = 744.0 +margin_bottom = 479.0 +custom_constants/separation = 80 +alignment = 1 + +[node name="skirmish" type="Button" parent="menu/menu_buttons"] +margin_right = 408.0 +margin_bottom = 89.0 +text = "Skirmish" + +[node name="story" type="Button" parent="menu/menu_buttons"] +margin_top = 169.0 +margin_right = 408.0 +margin_bottom = 258.0 +text = "Story" + +[node name="bgm" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 1 ) + +[node name="anims" type="AnimationPlayer" parent="."] +autoplay = "bg fade in" +"anims/bg fade in" = SubResource( 2 ) +[connection signal="pressed" from="menu/menu_buttons/skirmish" to="." method="_on_skirmish_pressed"] +[connection signal="pressed" from="menu/menu_buttons/story" to="." method="_on_story_pressed"] diff --git a/theme/buttons/large.png b/theme/buttons/large.png new file mode 100644 index 0000000..f6e15b5 Binary files /dev/null and b/theme/buttons/large.png differ diff --git a/theme/buttons/large.png.import b/theme/buttons/large.png.import new file mode 100644 index 0000000..a3771e1 --- /dev/null +++ b/theme/buttons/large.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/large.png-6ac135c7cd973d606949f70ecfe18d9b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://theme/buttons/large.png" +dest_files=[ "res://.import/large.png-6ac135c7cd973d606949f70ecfe18d9b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/theme/buttons/large.svg b/theme/buttons/large.svg new file mode 100644 index 0000000..742a74a --- /dev/null +++ b/theme/buttons/large.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/theme/buttons/large.svg.import b/theme/buttons/large.svg.import new file mode 100644 index 0000000..bdb8a16 --- /dev/null +++ b/theme/buttons/large.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/large.svg-083e1f0530c075a27860153a1271d927.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://theme/buttons/large.svg" +dest_files=[ "res://.import/large.svg-083e1f0530c075a27860153a1271d927.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/theme/buttons/large_hover.png b/theme/buttons/large_hover.png new file mode 100644 index 0000000..9e7dfce Binary files /dev/null and b/theme/buttons/large_hover.png differ diff --git a/theme/buttons/large_hover.png.import b/theme/buttons/large_hover.png.import new file mode 100644 index 0000000..ba18616 --- /dev/null +++ b/theme/buttons/large_hover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/large_hover.png-adefd5c79158192bb1001d1c06288bdc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://theme/buttons/large_hover.png" +dest_files=[ "res://.import/large_hover.png-adefd5c79158192bb1001d1c06288bdc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/theme/buttons/large_on.png b/theme/buttons/large_on.png new file mode 100644 index 0000000..71c9dc0 Binary files /dev/null and b/theme/buttons/large_on.png differ diff --git a/theme/buttons/large_on.png.import b/theme/buttons/large_on.png.import new file mode 100644 index 0000000..d7d89df --- /dev/null +++ b/theme/buttons/large_on.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/large_on.png-8d1bb4fb4b851bcb7cc3ec78356efd43.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://theme/buttons/large_on.png" +dest_files=[ "res://.import/large_on.png-8d1bb4fb4b851bcb7cc3ec78356efd43.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/theme/fonts/daggersquare.regular.otf b/theme/fonts/daggersquare.regular.otf new file mode 100644 index 0000000..a0326fa Binary files /dev/null and b/theme/fonts/daggersquare.regular.otf differ diff --git a/theme/fonts/daggersquare.tres b/theme/fonts/daggersquare.tres new file mode 100644 index 0000000..7cd73a8 --- /dev/null +++ b/theme/fonts/daggersquare.tres @@ -0,0 +1,7 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://theme/fonts/daggersquare.regular.otf" type="DynamicFontData" id=1] + +[resource] +size = 40 +font_data = ExtResource( 1 ) diff --git a/theme/ui.tres b/theme/ui.tres new file mode 100644 index 0000000..85a6407 --- /dev/null +++ b/theme/ui.tres @@ -0,0 +1,54 @@ +[gd_resource type="Theme" load_steps=9 format=2] + +[ext_resource path="res://theme/fonts/daggersquare.tres" type="DynamicFont" id=1] +[ext_resource path="res://theme/buttons/large.png" type="Texture" id=2] +[ext_resource path="res://theme/buttons/large_hover.png" type="Texture" id=3] +[ext_resource path="res://theme/buttons/large_on.png" type="Texture" id=4] + +[sub_resource type="StyleBoxTexture" id=1] +content_margin_left = 120.0 +content_margin_right = 120.0 +content_margin_top = 20.0 +content_margin_bottom = 20.0 +texture = ExtResource( 3 ) +region_rect = Rect2( 0, 0, 460, 112 ) +margin_left = 65.0 +margin_right = 65.0 + +[sub_resource type="StyleBoxTexture" id=2] +content_margin_left = 120.0 +content_margin_right = 120.0 +content_margin_top = 20.0 +content_margin_bottom = 20.0 +texture = ExtResource( 2 ) +region_rect = Rect2( 0, 0, 460, 112 ) +margin_left = 65.0 +margin_right = 65.0 + +[sub_resource type="StyleBoxTexture" id=3] +content_margin_left = 120.0 +content_margin_right = 120.0 +content_margin_top = 20.0 +content_margin_bottom = 20.0 +texture = ExtResource( 4 ) +region_rect = Rect2( 0, 0, 460, 112 ) +margin_left = 65.0 +margin_right = 65.0 + +[sub_resource type="StyleBoxFlat" id=4] +bg_color = Color( 0, 0, 0, 1 ) + +[resource] +default_font = ExtResource( 1 ) +Button/colors/font_color = Color( 0.623529, 0.768627, 0.839216, 1 ) +Button/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +Button/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +Button/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +Button/constants/hseparation = 20 +Button/fonts/font = null +Button/styles/disabled = null +Button/styles/focus = null +Button/styles/hover = SubResource( 1 ) +Button/styles/normal = SubResource( 2 ) +Button/styles/pressed = SubResource( 3 ) +Panel/styles/panel = SubResource( 4 ) diff --git a/units/all.tscn b/units/all.tscn new file mode 100644 index 0000000..6def9ea --- /dev/null +++ b/units/all.tscn @@ -0,0 +1,81 @@ +[gd_scene load_steps=12 format=2] + +[ext_resource path="res://units/avenger.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/breeze.tscn" type="PackedScene" id=2] +[ext_resource path="res://units/commodore.tscn" type="PackedScene" id=3] +[ext_resource path="res://units/creeper.tscn" type="PackedScene" id=4] +[ext_resource path="res://units/flea.tscn" type="PackedScene" id=5] +[ext_resource path="res://units/jumper.tscn" type="PackedScene" id=6] +[ext_resource path="res://units/falcon.tscn" type="PackedScene" id=7] +[ext_resource path="res://units/xander.tscn" type="PackedScene" id=8] +[ext_resource path="res://units/trapper.tscn" type="PackedScene" id=9] +[ext_resource path="res://units/heroes/rhino.tscn" type="PackedScene" id=10] +[ext_resource path="res://units/heroes/tomahawk.tscn" type="PackedScene" id=11] + +[node name="Node2D" type="Node2D"] + +[node name="xander" parent="." instance=ExtResource( 8 )] +margin_left = 100.0 +margin_top = 730.0 +margin_right = 200.0 +margin_bottom = 830.0 + +[node name="falcon" parent="." instance=ExtResource( 7 )] +margin_left = 390.0 +margin_top = 730.0 +margin_right = 490.0 +margin_bottom = 830.0 + +[node name="trapper" parent="." instance=ExtResource( 9 )] +margin_left = 680.0 +margin_top = 730.0 +margin_right = 780.0 +margin_bottom = 830.0 + +[node name="avenger" parent="." instance=ExtResource( 1 )] +margin_left = 100.0 +margin_top = 300.0 +margin_right = 200.0 +margin_bottom = 400.0 + +[node name="breeze" parent="." instance=ExtResource( 2 )] +margin_left = 390.0 +margin_top = 300.0 +margin_right = 490.0 +margin_bottom = 400.0 + +[node name="commodore" parent="." instance=ExtResource( 3 )] +margin_left = 680.0 +margin_top = 300.0 +margin_right = 780.0 +margin_bottom = 400.0 + +[node name="creeper" parent="." instance=ExtResource( 4 )] +margin_left = 100.0 +margin_top = 510.0 +margin_right = 200.0 +margin_bottom = 610.0 + +[node name="flea" parent="." instance=ExtResource( 5 )] +margin_left = 390.0 +margin_top = 510.0 +margin_right = 490.0 +margin_bottom = 610.0 + +[node name="jumper" parent="." instance=ExtResource( 6 )] +margin_left = 680.0 +margin_top = 510.0 +margin_right = 780.0 +margin_bottom = 610.0 + +[node name="rhino" parent="." instance=ExtResource( 10 )] +margin_left = 100.0 +margin_top = 20.0 +margin_right = 200.0 +margin_bottom = 120.0 + +[node name="tomahawk" parent="." instance=ExtResource( 11 )] +margin_left = 390.0 +margin_top = 20.0 +margin_right = 490.0 +margin_bottom = 120.0 diff --git a/units/avenger.png b/units/avenger.png new file mode 100644 index 0000000..360c9e7 Binary files /dev/null and b/units/avenger.png differ diff --git a/units/avenger.png.import b/units/avenger.png.import new file mode 100644 index 0000000..8a54bcc --- /dev/null +++ b/units/avenger.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/avenger.png-c24cc4b776734cf8e4025d27b04aec04.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/avenger.png" +dest_files=[ "res://.import/avenger.png-c24cc4b776734cf8e4025d27b04aec04.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/avenger.tscn b/units/avenger.tscn new file mode 100644 index 0000000..5594044 --- /dev/null +++ b/units/avenger.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/avenger.png" type="Texture" id=2] + +[node name="avenger" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 1 +base_hull_points = 2 +base_damage_points = 3 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 1 +hull = 2 +damage = 3 diff --git a/units/base_unit.gd b/units/base_unit.gd new file mode 100644 index 0000000..4f59a8a --- /dev/null +++ b/units/base_unit.gd @@ -0,0 +1,82 @@ +tool +extends Panel + +const AnimHelper = preload("res://helpers/anims.gd") +const BattleHelper = preload("res://helpers/battle.gd") + +export(Texture) var sprite setget set_sprite +export var base_move_points = 0 setget set_base_move_points +export var base_hull_points = 0 setget set_base_hull_points +export var base_shield_points = 0 setget set_base_shield_points +export var base_damage_points = 0 setget set_base_damage_points + +var dragged = false +var base_position +var selected_anchor + +func _ready(): + set_sprite(sprite) + base_position = rect_position + + set_base_damage_points(base_damage_points) + set_base_move_points(base_move_points) + set_base_hull_points(base_hull_points) + set_base_shield_points(base_shield_points) + +func set_sprite(val): + sprite = val + if has_node("sprite"): + $sprite.texture = sprite + +func set_base_move_points(val): + base_move_points = val + if has_node("points"): + $points.move = val + +func set_base_hull_points(val): + base_hull_points = val + if has_node("points"): + $points.hull = val + +func set_base_shield_points(val): + base_shield_points = val + if has_node("points"): + $points.shield = val + +func set_base_damage_points(val): + base_damage_points = val + if has_node("points"): + $points.damage = val + +func can_be_used_on_anchor(anchor): + return anchor is Anchor and anchor.is_empty() and anchor.is_connected_to(get_parent()) + +func update_anchors(): + var position = rect_global_position + rect_size / 2 if dragged else null + selected_anchor = BattleHelper.update_anchors(get_tree(), position, funcref(self, "can_be_used_on_anchor")) + +func play(anchor): + anchor.set_content(self) + rect_position = base_position + +func return_to_base(): + AnimHelper.linear_goto(self, base_position, 0.3) + +func _gui_input(event): + if event is InputEventMouseButton and event.button_index == 1: + if event.pressed: + dragged = true + modulate = Color(1, 1, 1, 0.5) + elif dragged: + dragged = false + modulate = Color(1, 1, 1, 1) + if selected_anchor: + play(selected_anchor) + else: + return_to_base() + + if event is InputEventMouseMotion: + if event.button_mask == BUTTON_LEFT: + set_position(rect_position + event.relative) + + update_anchors() diff --git a/units/base_unit.tscn b/units/base_unit.tscn new file mode 100644 index 0000000..fef12f3 --- /dev/null +++ b/units/base_unit.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://units/base_unit.gd" type="Script" id=1] +[ext_resource path="res://units/falcon.png" type="Texture" id=2] +[ext_resource path="res://units/points.tscn" type="PackedScene" id=3] +[ext_resource path="res://theme/ui.tres" type="Theme" id=4] + +[node name="unit" type="Panel"] +self_modulate = Color( 1, 1, 1, 0 ) +margin_left = -50.0 +margin_top = -50.0 +margin_right = 50.0 +margin_bottom = 50.0 +theme = ExtResource( 4 ) +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +sprite = ExtResource( 2 ) + +[node name="sprite" type="Sprite" parent="."] +position = Vector2( 50, 50 ) +texture = ExtResource( 2 ) + +[node name="points" parent="." instance=ExtResource( 3 )] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_top = 70.0 +margin_bottom = 115.0 diff --git a/units/breeze.png b/units/breeze.png new file mode 100644 index 0000000..bbec8ae Binary files /dev/null and b/units/breeze.png differ diff --git a/units/breeze.png.import b/units/breeze.png.import new file mode 100644 index 0000000..38b56fc --- /dev/null +++ b/units/breeze.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/breeze.png-51b708eef4889210a47e43c23c1c0b34.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/breeze.png" +dest_files=[ "res://.import/breeze.png-51b708eef4889210a47e43c23c1c0b34.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/breeze.tscn b/units/breeze.tscn new file mode 100644 index 0000000..2f5ba21 --- /dev/null +++ b/units/breeze.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/breeze.png" type="Texture" id=2] + +[node name="breeze" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 2 +base_hull_points = 1 +base_shield_points = 2 +base_damage_points = 2 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 2 +hull = 1 +shield = 2 +damage = 2 diff --git a/units/commodore.png b/units/commodore.png new file mode 100644 index 0000000..ea2e9ce Binary files /dev/null and b/units/commodore.png differ diff --git a/units/commodore.png.import b/units/commodore.png.import new file mode 100644 index 0000000..912c471 --- /dev/null +++ b/units/commodore.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/commodore.png-309668d953db2def92c74e842e8de22e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/commodore.png" +dest_files=[ "res://.import/commodore.png-309668d953db2def92c74e842e8de22e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/commodore.tscn b/units/commodore.tscn new file mode 100644 index 0000000..38e092f --- /dev/null +++ b/units/commodore.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/commodore.png" type="Texture" id=2] + +[node name="commodore" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 2 +base_hull_points = 2 +base_damage_points = 3 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 2 +hull = 2 +damage = 3 diff --git a/units/creeper.png b/units/creeper.png new file mode 100644 index 0000000..175137b Binary files /dev/null and b/units/creeper.png differ diff --git a/units/creeper.png.import b/units/creeper.png.import new file mode 100644 index 0000000..196ef8d --- /dev/null +++ b/units/creeper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/creeper.png-7243157a11730d7a85a5ddbef32e54aa.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/creeper.png" +dest_files=[ "res://.import/creeper.png-7243157a11730d7a85a5ddbef32e54aa.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/creeper.tscn b/units/creeper.tscn new file mode 100644 index 0000000..a9d4d9e --- /dev/null +++ b/units/creeper.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/creeper.png" type="Texture" id=2] + +[node name="creeper" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 3 +base_hull_points = 3 +base_damage_points = 2 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 3 +hull = 3 +damage = 2 diff --git a/units/falcon.png b/units/falcon.png new file mode 100644 index 0000000..73af669 Binary files /dev/null and b/units/falcon.png differ diff --git a/units/falcon.png.import b/units/falcon.png.import new file mode 100644 index 0000000..d673438 --- /dev/null +++ b/units/falcon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/falcon.png-a37cb90a2a263a68c1af0aead2c56a53.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/falcon.png" +dest_files=[ "res://.import/falcon.png-a37cb90a2a263a68c1af0aead2c56a53.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/falcon.tscn b/units/falcon.tscn new file mode 100644 index 0000000..b2ab2a2 --- /dev/null +++ b/units/falcon.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] + +[node name="falcon" instance=ExtResource( 1 )] +base_move_points = 2 +base_hull_points = 2 +base_shield_points = 1 +base_damage_points = 2 + +[node name="points" parent="." index="1"] +move = 2 +hull = 2 +shield = 1 +damage = 2 diff --git a/units/flea.png b/units/flea.png new file mode 100644 index 0000000..3e56212 Binary files /dev/null and b/units/flea.png differ diff --git a/units/flea.png.import b/units/flea.png.import new file mode 100644 index 0000000..474a9fb --- /dev/null +++ b/units/flea.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/flea.png-1ef8cd01da711d2d64d018c24cc2bcbd.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/flea.png" +dest_files=[ "res://.import/flea.png-1ef8cd01da711d2d64d018c24cc2bcbd.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/flea.tscn b/units/flea.tscn new file mode 100644 index 0000000..36bdb34 --- /dev/null +++ b/units/flea.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/flea.png" type="Texture" id=2] + +[node name="flea" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 4 +base_hull_points = 1 +base_shield_points = 1 +base_damage_points = 1 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 4 +hull = 1 +shield = 1 +damage = 1 diff --git a/units/heroes/rhino.png b/units/heroes/rhino.png new file mode 100644 index 0000000..3513f90 Binary files /dev/null and b/units/heroes/rhino.png differ diff --git a/units/heroes/rhino.png.import b/units/heroes/rhino.png.import new file mode 100644 index 0000000..bb02ab9 --- /dev/null +++ b/units/heroes/rhino.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/rhino.png-b1a2969c5b991f87b5842da5fff5b03b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/heroes/rhino.png" +dest_files=[ "res://.import/rhino.png-b1a2969c5b991f87b5842da5fff5b03b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/heroes/rhino.tscn b/units/heroes/rhino.tscn new file mode 100644 index 0000000..7eb065a --- /dev/null +++ b/units/heroes/rhino.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/heroes/rhino.png" type="Texture" id=2] + +[node name="rhino" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 1 +base_hull_points = 5 +base_shield_points = 2 +base_damage_points = 2 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 1 +hull = 5 +shield = 2 +damage = 2 diff --git a/units/heroes/tomahawk.png b/units/heroes/tomahawk.png new file mode 100644 index 0000000..98245b8 Binary files /dev/null and b/units/heroes/tomahawk.png differ diff --git a/units/heroes/tomahawk.png.import b/units/heroes/tomahawk.png.import new file mode 100644 index 0000000..7e5d989 --- /dev/null +++ b/units/heroes/tomahawk.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/tomahawk.png-4838fe777557761bdd8549b9829622d7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/heroes/tomahawk.png" +dest_files=[ "res://.import/tomahawk.png-4838fe777557761bdd8549b9829622d7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/heroes/tomahawk.tscn b/units/heroes/tomahawk.tscn new file mode 100644 index 0000000..6a2d842 --- /dev/null +++ b/units/heroes/tomahawk.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/heroes/tomahawk.png" type="Texture" id=2] + +[node name="tomahawk" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 1 +base_hull_points = 5 +base_shield_points = 2 +base_damage_points = 2 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 1 +hull = 5 +shield = 2 +damage = 2 diff --git a/units/hud.png b/units/hud.png new file mode 100644 index 0000000..7673312 Binary files /dev/null and b/units/hud.png differ diff --git a/units/hud.png.import b/units/hud.png.import new file mode 100644 index 0000000..fd073c9 --- /dev/null +++ b/units/hud.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/hud.png-81b2095000eff2aaff89fa5ac94eef20.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/hud.png" +dest_files=[ "res://.import/hud.png-81b2095000eff2aaff89fa5ac94eef20.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/hud.svg b/units/hud.svg new file mode 100644 index 0000000..e30b5f6 --- /dev/null +++ b/units/hud.svg @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/units/hud.svg.import b/units/hud.svg.import new file mode 100644 index 0000000..b607a39 --- /dev/null +++ b/units/hud.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/hud.svg-0ab3dd6fb4565d101841f893cc3bf3e2.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/hud.svg" +dest_files=[ "res://.import/hud.svg-0ab3dd6fb4565d101841f893cc3bf3e2.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/jumper.png b/units/jumper.png new file mode 100644 index 0000000..6ee372d Binary files /dev/null and b/units/jumper.png differ diff --git a/units/jumper.png.import b/units/jumper.png.import new file mode 100644 index 0000000..a7faa98 --- /dev/null +++ b/units/jumper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/jumper.png-393aa159bf8cb8acca1a340a25112080.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/jumper.png" +dest_files=[ "res://.import/jumper.png-393aa159bf8cb8acca1a340a25112080.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/jumper.tscn b/units/jumper.tscn new file mode 100644 index 0000000..f295736 --- /dev/null +++ b/units/jumper.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/jumper.png" type="Texture" id=2] + +[node name="jumper" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 3 +base_hull_points = 1 +base_shield_points = 2 +base_damage_points = 2 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 3 +hull = 1 +shield = 2 +damage = 2 diff --git a/units/points.gd b/units/points.gd new file mode 100644 index 0000000..902c44b --- /dev/null +++ b/units/points.gd @@ -0,0 +1,34 @@ +tool +extends Control + +export var move = 0 setget set_move +export var hull = 0 setget set_hull +export var shield = 0 setget set_shield +export var damage = 0 setget set_damage + +func _ready(): + set_move(move) + set_hull(hull) + set_shield(shield) + set_damage(damage) + +func set_move(val): + move = val + if has_node("hud/move"): + $hud/move.text = String(val) + +func set_hull(val): + hull = val + if has_node("hud/hull"): + $hud/hull.text = String(val) + +func set_shield(val): + shield = val + if has_node("hud/shield"): + $hud/shield.text = String(val) + +func set_damage(val): + damage = val + if has_node("hud/damage"): + $hud/damage.text = String(val) + diff --git a/units/points.tscn b/units/points.tscn new file mode 100644 index 0000000..63e4d9a --- /dev/null +++ b/units/points.tscn @@ -0,0 +1,91 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://units/hud.png" type="Texture" id=1] +[ext_resource path="res://theme/ui.tres" type="Theme" id=2] +[ext_resource path="res://units/points.gd" type="Script" id=3] + +[node name="points" type="Control"] +margin_left = -150.0 +margin_right = 150.0 +margin_bottom = 45.0 +rect_pivot_offset = Vector2( 150, 22.5 ) +theme = ExtResource( 2 ) +script = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="hud" type="Sprite" parent="."] +position = Vector2( 150, 23 ) +texture = ExtResource( 1 ) +__meta__ = { +"_edit_group_": true +} + +[node name="move" type="Label" parent="hud"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -250.635 +margin_top = -47.0 +margin_right = -210.635 +margin_bottom = 2.0 +custom_colors/font_color = Color( 0.858824, 0.937255, 0.976471, 1 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="hull" type="Label" parent="hud"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -185.889 +margin_top = -47.3972 +margin_right = -145.889 +margin_bottom = 1.60278 +custom_colors/font_color = Color( 0.858824, 0.937255, 0.976471, 1 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="shield" type="Label" parent="hud"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -122.334 +margin_top = -47.0 +margin_right = -82.3343 +margin_bottom = 2.0 +custom_colors/font_color = Color( 0.858824, 0.937255, 0.976471, 1 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="damage" type="Label" parent="hud"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -57.1911 +margin_top = -47.0 +margin_right = -17.1911 +margin_bottom = 2.0 +custom_colors/font_color = Color( 0.858824, 0.937255, 0.976471, 1 ) +text = "0" +align = 1 +valign = 1 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/units/trapper.png b/units/trapper.png new file mode 100644 index 0000000..8f49c3d Binary files /dev/null and b/units/trapper.png differ diff --git a/units/trapper.png.import b/units/trapper.png.import new file mode 100644 index 0000000..3b4d30e --- /dev/null +++ b/units/trapper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/trapper.png-9257d6025ae78c0be8fcae80f8047320.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/trapper.png" +dest_files=[ "res://.import/trapper.png-9257d6025ae78c0be8fcae80f8047320.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/trapper.tscn b/units/trapper.tscn new file mode 100644 index 0000000..3aa0bb7 --- /dev/null +++ b/units/trapper.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/trapper.png" type="Texture" id=2] + +[node name="trapper" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 2 +base_hull_points = 3 +base_shield_points = 2 +base_damage_points = 1 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 2 +hull = 3 +shield = 2 +damage = 1 diff --git a/units/xander.png b/units/xander.png new file mode 100644 index 0000000..4c69733 Binary files /dev/null and b/units/xander.png differ diff --git a/units/xander.png.import b/units/xander.png.import new file mode 100644 index 0000000..bc96330 --- /dev/null +++ b/units/xander.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/xander.png-6d49d6ba9cc285330014dd8a8c2d2cff.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://units/xander.png" +dest_files=[ "res://.import/xander.png-6d49d6ba9cc285330014dd8a8c2d2cff.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=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 +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/units/xander.tscn b/units/xander.tscn new file mode 100644 index 0000000..432ba21 --- /dev/null +++ b/units/xander.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://units/base_unit.tscn" type="PackedScene" id=1] +[ext_resource path="res://units/xander.png" type="Texture" id=2] + +[node name="xander" instance=ExtResource( 1 )] +sprite = ExtResource( 2 ) +base_move_points = 1 +base_hull_points = 2 +base_shield_points = 2 +base_damage_points = 2 + +[node name="sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="points" parent="." index="1"] +move = 1 +hull = 2 +shield = 2 +damage = 2