Skip to content
This repository was archived by the owner on May 8, 2022. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion audio/audio_scene_singleton.gd
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
class_name AudioSceneSingleton
extends Node


onready var click_sound = $AudioStackingClick


func play_click():
if click_sound != null:
click_sound.play_sound()
1 change: 1 addition & 0 deletions config/development.tres
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ api_scheme = "http"
ws_scheme = "ws"
debug_activated = true
debug_auto_fill_lobby = true
show_debug_frame = false
10 changes: 10 additions & 0 deletions config/environment_config.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,20 @@ tool
class_name EnvironmentConfig
extends Resource

signal show_debug_frame_changed()

export(String) var api_dns = "127.0.0.1"
export(int, 0, 65535) var api_port = 8080
export(String, "http", "https") var api_scheme = "http"
export(String, "ws", "wss") var ws_scheme = "ws"

export(bool) var debug_activated = false
export(bool) var debug_auto_fill_lobby = false

export(bool) var show_debug_frame = false setget set_show_debug_frame


func set_show_debug_frame(new_boolean):
show_debug_frame = new_boolean
emit_signal("changed")
emit_signal("show_debug_frame_changed")
1 change: 1 addition & 0 deletions config/environment_config.tres
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ api_scheme = "http"
ws_scheme = "ws"
debug_activated = true
debug_auto_fill_lobby = true
show_debug_frame = false
30 changes: 30 additions & 0 deletions game/fade_animation.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[gd_resource type="Animation" format=2]

[resource]
resource_name = "fade"
length = 0.3
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.05, 0.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(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 0.04, 0.05, 0.3 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ false, false, true, true ]
}
62 changes: 56 additions & 6 deletions game/map/fleet_sailing.gd
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,41 @@ var destination_position = Vector2.ZERO
var fleet : Fleet = null setget set_fleet
var _game_data : GameData = Store.game_data

onready var sprite_container = $FleetPath/Follower/SpritesContainer
onready var sprite_crown = $FleetPath/Follower/SpritesContainer/CrownSprite
onready var fleet_sprite = $FleetPath/Follower/SpritesContainer/FleetIcon
onready var rotation_conatiner = $FleetPath/Follower/RotationContainer
onready var sprite_container = $FleetPath/Follower/RotationContainer/SpritesContainer
onready var sprite_crown = $FleetPath/Follower/RotationContainer/SpritesContainer/CrownSprite
onready var fleet_sprite = $FleetPath/Follower/RotationContainer/SpritesContainer/FleetIcon
onready var avatar = $FleetPath/Follower/PlayerAvatar
onready var timer_avatar = $FleetPath/Follower/PlayerAvatar/Timer
onready var animation_avatar = $FleetPath/Follower/PlayerAvatar/AnimationPlayer
onready var controle_hover = $FleetPath/Follower/RotationContainer/ControlHover
onready var reference_frame_hover = $FleetPath/Follower/RotationContainer/ControlHover/ReferenceRect
onready var _time_departure = OS.get_system_time_msecs()


func _ready():
timer_avatar.connect("timeout", self, "_on_timeout_avatar")
controle_hover.connect("mouse_entered", self, "_on_mouse_enter")
controle_hover.connect("mouse_exited", self, "_on_mouse_exited")
Config.config_environment.connect("show_debug_frame_changed", self, "_on_show_debug_frame_changed")
var curve = Curve2D.new()
curve.add_point(origin_position)
curve.add_point(destination_position)
rotation_conatiner.rotation = (destination_position - origin_position).angle() + PI / 2.0
$FleetPath.curve = curve
var color = _game_data.get_player_color(_game_data.get_player(fleet.player))
sprite_container.set_modulate(color)
_set_size_sprite()
_set_icone_texture()
_set_crown_state()
_set_avatar()
_update_show_frame()
update()


func _draw():
if Config.config_environment.show_debug_frame:
draw_polyline($FleetPath.curve.get_baked_points(), Color(0.0, 1.0, 0.0), 1.0)


func _process(_delta):
Expand All @@ -33,12 +52,13 @@ func _process(_delta):
func set_fleet(new_fleet):
fleet = new_fleet
_set_size_sprite()
_set_avatar()


func _set_size_sprite():
if fleet != null and sprite_container != null:
if fleet != null and rotation_conatiner != null:
var scale_sprite = _SCALE_CURRENT_PLAYER_FACTOR if _game_data.does_belong_to_current_player(fleet) else 1.0
sprite_container.scale = Vector2(BASE_SCALE * scale_sprite, BASE_SCALE * scale_sprite)
rotation_conatiner.scale = Vector2(BASE_SCALE * scale_sprite, BASE_SCALE * scale_sprite)


func _get_flight_time_ms():
Expand All @@ -47,7 +67,7 @@ func _get_flight_time_ms():


func _get_flight_ratio():
return ((OS.get_system_time_msecs () - _time_departure) as float / _get_flight_time_ms() as float) if _get_flight_time_ms() != 0 else 1.0
return ((OS.get_system_time_msecs() - _time_departure) as float / _get_flight_time_ms() as float) if _get_flight_time_ms() != 0 else 1.0


func _set_icone_texture():
Expand All @@ -59,3 +79,33 @@ func _set_crown_state():
sprite_crown.visible = is_current_player
if is_current_player:
sprite_crown.faction = _game_data.get_player(fleet.player).faction


func _on_timeout_avatar():
animation_avatar.play("fade", -1 , -1.0, not animation_avatar.is_playing())


func _on_mouse_enter():
if timer_avatar.is_stopped():
animation_avatar.play("fade", -1 , 1.0, false)
else:
timer_avatar.stop()


func _on_mouse_exited():
timer_avatar.start()


func _set_avatar():
if avatar != null:
avatar.player = _game_data.get_player(fleet.player)


func _update_show_frame():
if reference_frame_hover != null:
reference_frame_hover.editor_only = not Config.config_environment.show_debug_frame


func _on_show_debug_frame_changed():
_update_show_frame()
update()
62 changes: 55 additions & 7 deletions game/map/fleet_sailing.tscn
Original file line number Diff line number Diff line change
@@ -1,32 +1,80 @@
[gd_scene load_steps=6 format=2]
[gd_scene load_steps=8 format=2]

[ext_resource path="res://game/map/fleet_sailing.gd" type="Script" id=1]
[ext_resource path="res://game/map/sprites/fleet_sprite.tscn" type="PackedScene" id=2]
[ext_resource path="res://game/map/sprites/crown_sprite.tscn" type="PackedScene" id=3]
[ext_resource path="res://resources/assets/2d/map/kalankar/crown_bottom.png" type="Texture" id=4]
[ext_resource path="res://game/map/player_avatar.tscn" type="PackedScene" id=5]
[ext_resource path="res://game/fade_animation.tres" type="Animation" id=6]

[sub_resource type="Curve2D" id=1]
_data = {
"points": PoolVector2Array( )
}

[node name="fleetSailing" type="Node2D"]
[node name="FleetSailing" type="Node2D"]
script = ExtResource( 1 )

[node name="FleetPath" type="Path2D" parent="."]
curve = SubResource( 1 )

[node name="Follower" type="PathFollow2D" parent="FleetPath"]
rotate = false
loop = false

[node name="SpritesContainer" type="Node2D" parent="FleetPath/Follower"]
[node name="RotationContainer" type="Node2D" parent="FleetPath/Follower"]
rotation = 1.5708
scale = Vector2( 0.75, 0.75 )

[node name="FleetIcon" parent="FleetPath/Follower/SpritesContainer" instance=ExtResource( 2 )]
faction = null
[node name="SpritesContainer" type="Node2D" parent="FleetPath/Follower/RotationContainer"]

[node name="CrownSprite" parent="FleetPath/Follower/SpritesContainer" instance=ExtResource( 3 )]
[node name="FleetIcon" parent="FleetPath/Follower/RotationContainer/SpritesContainer" instance=ExtResource( 2 )]

[node name="CrownSprite" parent="FleetPath/Follower/RotationContainer/SpritesContainer" instance=ExtResource( 3 )]
position = Vector2( 0, 9 )
texture = ExtResource( 4 )
faction = null

[node name="ControlHover" type="Control" parent="FleetPath/Follower/RotationContainer"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -8.0
margin_top = -7.0
margin_right = 8.0
margin_bottom = 9.0
rect_min_size = Vector2( 16, 16 )
mouse_filter = 1
__meta__ = {
"_edit_use_anchors_": false
}

[node name="ReferenceRect" type="ReferenceRect" parent="FleetPath/Follower/RotationContainer/ControlHover"]
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 2
border_color = Color( 0, 0.713726, 0.992157, 1 )
__meta__ = {
"_edit_use_anchors_": false
}

[node name="PlayerAvatar" parent="FleetPath/Follower" instance=ExtResource( 5 )]
visible = false
modulate = Color( 1, 1, 1, 0 )
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -71.5
margin_top = -24.0
margin_right = 71.5
margin_bottom = 37.0
rect_scale = Vector2( 0.4, 0.4 )
rect_pivot_offset = Vector2( 71.5, 30.5 )

[node name="Timer" type="Timer" parent="FleetPath/Follower/PlayerAvatar"]
wait_time = 1.5
one_shot = true

[node name="AnimationPlayer" type="AnimationPlayer" parent="FleetPath/Follower/PlayerAvatar"]
anims/fade = ExtResource( 6 )
29 changes: 29 additions & 0 deletions game/map/player_avatar.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
extends PanelContainer

const ASSETS = preload("res://resources/assets.tres")

export(Resource) var player setget set_player

onready var label = $MarginContainer/VBoxContainer/PanelContainer/Label
onready var texture = $MarginContainer/VBoxContainer/HBoxContainer/CircularFrame/TextureRect
onready var frame = $MarginContainer/VBoxContainer/HBoxContainer/CircularFrame
onready var margin_container = $MarginContainer


func _ready():
_update_player_element()


func set_player(new_player):
player = new_player
_update_player_element()


func _update_player_element():
if label == null or texture == null or frame == null:
return
margin_container.visible = player != null
if player != null:
label.text = player.username
#texture.texture = player.avatar
frame.color = player.faction.get_color()
84 changes: 84 additions & 0 deletions game/map/player_avatar.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
[gd_scene load_steps=5 format=2]

[ext_resource path="res://game/map/player_avatar.gd" type="Script" id=1]
[ext_resource path="res://gui/circular_frame.gd" type="Script" id=3]

[sub_resource type="StyleBoxEmpty" id=1]

[sub_resource type="StreamTexture" id=2]
flags = 4
load_path = "res://.import/user_64px.png-787f84595703aca1f0dbfca3c34673cc.stex"

[node name="PlayerAvatar" type="PanelContainer"]
mouse_filter = 2
custom_styles/panel = SubResource( 1 )
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

[node name="MarginContainer" type="MarginContainer" parent="."]
margin_right = 143.0
margin_bottom = 61.0
mouse_filter = 2

[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
margin_right = 143.0
margin_bottom = 61.0
mouse_filter = 2
alignment = 1

[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
margin_right = 143.0
margin_bottom = 29.0
mouse_filter = 2
alignment = 1

[node name="CircularFrame" type="MarginContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"]
margin_left = 57.0
margin_right = 86.0
margin_bottom = 29.0
mouse_filter = 2
custom_constants/margin_right = 6
custom_constants/margin_top = 6
custom_constants/margin_left = 6
custom_constants/margin_bottom = 6
script = ExtResource( 3 )
color = Color( 1, 0.0235294, 0, 1 )
background_color = Color( 1, 1, 1, 0.784314 )
line_width = 2
number_of_edges = 14
blend = true
advance_blend = true

[node name="TextureRect" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer/CircularFrame"]
margin_left = 6.0
margin_top = 6.0
margin_right = 23.0
margin_bottom = 23.0
rect_min_size = Vector2( 17, 17 )
mouse_filter = 2
size_flags_horizontal = 5
size_flags_vertical = 5
texture = SubResource( 2 )
expand = true
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
}

[node name="PanelContainer" type="PanelContainer" parent="MarginContainer/VBoxContainer"]
margin_top = 33.0
margin_right = 143.0
margin_bottom = 61.0
mouse_filter = 2
size_flags_horizontal = 4

[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/PanelContainer"]
margin_left = 7.0
margin_top = 7.0
margin_right = 136.0
margin_bottom = 21.0
text = "no_translate.pseudo"
align = 1
valign = 1
Loading