Compare commits
No commits in common. "91e55a170983322497328be6a448aba353b26b58" and "72c6e49a06afc3bbf066c570a11840a6b6a25bcc" have entirely different histories.
91e55a1709
...
72c6e49a06
15 changed files with 56 additions and 265 deletions
Binary file not shown.
|
@ -1,42 +0,0 @@
|
||||||
extends Object
|
|
||||||
|
|
||||||
class_name CardInfo
|
|
||||||
|
|
||||||
var id := "unknown"
|
|
||||||
var name := "Unknown card"
|
|
||||||
var subname := "--"
|
|
||||||
var colors := []
|
|
||||||
var keywords := []
|
|
||||||
var traits := []
|
|
||||||
var requirements := {}
|
|
||||||
var cost := 0
|
|
||||||
var power := 0
|
|
||||||
var type := "None"
|
|
||||||
var text := "This card does not exist, if you see it it's because something failed loading"
|
|
||||||
var rarity := "UR"
|
|
||||||
var bonus := 0
|
|
||||||
var opponentPower := 0
|
|
||||||
|
|
||||||
func _init(cardEntry: Dictionary):
|
|
||||||
if not cardEntry.empty():
|
|
||||||
id = cardEntry.ID
|
|
||||||
name = cardEntry.Name
|
|
||||||
subname = cardEntry.Subname
|
|
||||||
colors = cardEntry.Element
|
|
||||||
keywords = cardEntry.Keywords
|
|
||||||
traits = cardEntry.Traits
|
|
||||||
type = cardEntry.Type
|
|
||||||
text = cardEntry.Text
|
|
||||||
rarity = cardEntry.Rarity
|
|
||||||
if cardEntry.has("Power"):
|
|
||||||
power = cardEntry.Power
|
|
||||||
if cardEntry.has("Cost"):
|
|
||||||
cost = cardEntry.Cost
|
|
||||||
if cardEntry.has("ProblemBonus"):
|
|
||||||
bonus = cardEntry.ProblemBonus
|
|
||||||
if cardEntry.has("Requirement"):
|
|
||||||
requirements = cardEntry.Requirement
|
|
||||||
elif cardEntry.has("ProblemRequirement"):
|
|
||||||
requirements = cardEntry.ProblemRequirement
|
|
||||||
if cardEntry.has("ProblemOpponentPower"):
|
|
||||||
opponentPower = cardEntry.ProblemOpponentPower
|
|
|
@ -36,12 +36,12 @@ scroll_horizontal_enabled = false
|
||||||
|
|
||||||
[node name="PickedCardList" parent="PickedCardListScroll" instance=ExtResource( 3 )]
|
[node name="PickedCardList" parent="PickedCardListScroll" instance=ExtResource( 3 )]
|
||||||
|
|
||||||
[node name="PlayerList" type="VBoxContainer" parent="."]
|
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_left = 20.0
|
margin_left = 20.0
|
||||||
margin_top = 20.0
|
margin_top = 20.0
|
||||||
margin_right = 220.0
|
margin_right = 220.0
|
||||||
margin_bottom = -20.0
|
margin_bottom = 20.0
|
||||||
|
|
||||||
[node name="Cards" type="GridContainer" parent="."]
|
[node name="Cards" type="GridContainer" parent="."]
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
extends Panel
|
|
||||||
|
|
||||||
export var isBot: bool = false
|
|
||||||
export var playerName: String = "Nobody"
|
|
||||||
|
|
||||||
export var pickedColor: Color
|
|
||||||
export var pickingColor: Color
|
|
||||||
|
|
||||||
onready var playerIcon := $PlayerIcon
|
|
||||||
onready var playerNameLabel := $PlayerName
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
if isBot:
|
|
||||||
var atl := (playerIcon.texture as AtlasTexture).duplicate()
|
|
||||||
atl.region.position.x = 0
|
|
||||||
playerIcon.texture = atl
|
|
||||||
playerNameLabel.text = playerName
|
|
||||||
|
|
||||||
func set_picked(picked: bool):
|
|
||||||
if picked:
|
|
||||||
playerNameLabel.add_color_override("font_color", pickedColor)
|
|
||||||
else:
|
|
||||||
playerNameLabel.add_color_override("font_color", pickingColor)
|
|
|
@ -1,43 +0,0 @@
|
||||||
[gd_scene load_steps=6 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://Scenes/Draft/PlayerItem.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://UIAssets/Draft/playericons.png" type="Texture" id=2]
|
|
||||||
[ext_resource path="res://UIAssets/Fonts/Catamaran-Bold.ttf" type="DynamicFontData" id=3]
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=1]
|
|
||||||
flags = 13
|
|
||||||
atlas = ExtResource( 2 )
|
|
||||||
region = Rect2( 64, 0, 64, 64 )
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=2]
|
|
||||||
size = 12
|
|
||||||
extra_spacing_top = 2
|
|
||||||
font_data = ExtResource( 3 )
|
|
||||||
|
|
||||||
[node name="PlayerItem" type="Panel"]
|
|
||||||
margin_right = 150.0
|
|
||||||
margin_bottom = 23.0
|
|
||||||
rect_min_size = Vector2( 150, 23 )
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
pickedColor = Color( 0.380392, 0.984314, 0.372549, 1 )
|
|
||||||
pickingColor = Color( 1, 0.243137, 0.278431, 1 )
|
|
||||||
|
|
||||||
[node name="PlayerIcon" type="TextureRect" parent="."]
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_top = 2.0
|
|
||||||
margin_right = 30.0
|
|
||||||
margin_bottom = -2.0
|
|
||||||
texture = SubResource( 1 )
|
|
||||||
expand = true
|
|
||||||
stretch_mode = 6
|
|
||||||
|
|
||||||
[node name="PlayerName" type="Label" parent="."]
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
margin_left = 30.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
custom_fonts/font = SubResource( 2 )
|
|
||||||
text = "Nobody"
|
|
||||||
valign = 1
|
|
|
@ -3,6 +3,46 @@ extends Node
|
||||||
var loadedSets := {}
|
var loadedSets := {}
|
||||||
var loadedCards := {}
|
var loadedCards := {}
|
||||||
|
|
||||||
|
class CardInfo:
|
||||||
|
var id := "unknown"
|
||||||
|
var name := "Unknown card"
|
||||||
|
var subname := "--"
|
||||||
|
var colors := []
|
||||||
|
var keywords := []
|
||||||
|
var traits := []
|
||||||
|
var requirements := {}
|
||||||
|
var cost := 0
|
||||||
|
var power := 0
|
||||||
|
var type := "None"
|
||||||
|
var text := "This card does not exist, if you see it it's because something failed loading"
|
||||||
|
var rarity := "UR"
|
||||||
|
var bonus := 0
|
||||||
|
var opponentPower := 0
|
||||||
|
|
||||||
|
func _init(cardEntry: Dictionary):
|
||||||
|
if not cardEntry.empty():
|
||||||
|
id = cardEntry.ID
|
||||||
|
name = cardEntry.Name
|
||||||
|
subname = cardEntry.Subname
|
||||||
|
colors = cardEntry.Element
|
||||||
|
keywords = cardEntry.Keywords
|
||||||
|
traits = cardEntry.Traits
|
||||||
|
type = cardEntry.Type
|
||||||
|
text = cardEntry.Text
|
||||||
|
rarity = cardEntry.Rarity
|
||||||
|
if cardEntry.has("Power"):
|
||||||
|
power = cardEntry.Power
|
||||||
|
if cardEntry.has("Cost"):
|
||||||
|
cost = cardEntry.Cost
|
||||||
|
if cardEntry.has("ProblemBonus"):
|
||||||
|
bonus = cardEntry.ProblemBonus
|
||||||
|
if cardEntry.has("Requirement"):
|
||||||
|
requirements = cardEntry.Requirement
|
||||||
|
elif cardEntry.has("ProblemRequirement"):
|
||||||
|
requirements = cardEntry.ProblemRequirement
|
||||||
|
if cardEntry.has("ProblemOpponentPower"):
|
||||||
|
opponentPower = cardEntry.ProblemOpponentPower
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# Search for sets in MLPData
|
# Search for sets in MLPData
|
||||||
var dir := Directory.new()
|
var dir := Directory.new()
|
||||||
|
|
|
@ -2,23 +2,8 @@ extends Control
|
||||||
|
|
||||||
signal loaded()
|
signal loaded()
|
||||||
|
|
||||||
onready var roomList := $RoomScroll/RoomList
|
|
||||||
|
|
||||||
var RoomItem := preload("res://Scenes/Lobby/RoomEntry.tscn")
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
# Load bgm
|
# Load bgm
|
||||||
BGM.load_music("lobby")
|
BGM.load_music("lobby")
|
||||||
|
|
||||||
emit_signal("loaded")
|
emit_signal("loaded")
|
||||||
|
|
||||||
add_room("test", "Unnamed room")
|
|
||||||
|
|
||||||
func add_room(id: String, name: String):
|
|
||||||
var item := RoomItem.instance()
|
|
||||||
item.roomName = name
|
|
||||||
item.connect("clicked", self, "_room_clicked", [id])
|
|
||||||
roomList.add_child(item)
|
|
||||||
|
|
||||||
func _room_clicked(id: String):
|
|
||||||
print(id)
|
|
|
@ -1,14 +1,15 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Scenes/Lobby.gd" type="Script" id=1]
|
[ext_resource path="res://Scenes/Lobby.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://MLPAssets/Background/menubg.webp" type="Texture" id=2]
|
[ext_resource path="res://MLPAssets/Background/menubg.webp" type="Texture" id=2]
|
||||||
|
[ext_resource path="res://Scenes/Lobby/RoomEntry.tscn" type="PackedScene" id=3]
|
||||||
|
|
||||||
[node name="Lobby" type="Control"]
|
[node name="Lobby" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="Background" type="TextureRect" parent="."]
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_left = -1.29236
|
margin_left = -1.29236
|
||||||
|
@ -17,17 +18,20 @@ texture = ExtResource( 2 )
|
||||||
expand = true
|
expand = true
|
||||||
stretch_mode = 7
|
stretch_mode = 7
|
||||||
|
|
||||||
[node name="RoomScroll" type="ScrollContainer" parent="."]
|
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_left = 30.0
|
margin_left = 30.0
|
||||||
margin_top = 100.0
|
margin_top = 100.0
|
||||||
margin_right = -30.0
|
margin_right = -30.0
|
||||||
margin_bottom = -300.0
|
margin_bottom = -300.0
|
||||||
scroll_horizontal_enabled = false
|
|
||||||
|
|
||||||
[node name="RoomList" type="VBoxContainer" parent="RoomScroll"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
|
||||||
margin_right = 1220.0
|
margin_right = 1220.0
|
||||||
margin_bottom = 400.0
|
margin_bottom = 400.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
|
[node name="Control" parent="ScrollContainer/VBoxContainer" instance=ExtResource( 3 )]
|
||||||
|
anchor_right = 0.0
|
||||||
|
margin_right = 1220.0
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
extends Panel
|
|
||||||
|
|
||||||
signal clicked()
|
|
||||||
|
|
||||||
export var roomName: String = "Unnamed room"
|
|
||||||
|
|
||||||
onready var roomNameLabel := $RoomName
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
roomNameLabel.text = roomName
|
|
||||||
|
|
||||||
func _gui_input(event: InputEvent):
|
|
||||||
# Left double click
|
|
||||||
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT:
|
|
||||||
accept_event()
|
|
||||||
if event.doubleclick:
|
|
||||||
emit_signal("clicked")
|
|
||||||
else:
|
|
||||||
#TODO Fade in
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _mouse_exited():
|
|
||||||
#TODO if faded in, fade out
|
|
||||||
pass
|
|
|
@ -1,14 +1,4 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Scenes/Lobby/RoomEntry.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://UIAssets/Fonts/Catamaran-Bold.ttf" type="DynamicFontData" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
|
||||||
size = 26
|
|
||||||
use_mipmaps = true
|
|
||||||
use_filter = true
|
|
||||||
extra_spacing_top = 2
|
|
||||||
font_data = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="RoomEntry" type="Panel"]
|
[node name="RoomEntry" type="Panel"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -16,14 +6,3 @@ margin_right = -280.0
|
||||||
margin_bottom = 50.0
|
margin_bottom = 50.0
|
||||||
rect_min_size = Vector2( 0, 50 )
|
rect_min_size = Vector2( 0, 50 )
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
script = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="RoomName" type="Label" parent="."]
|
|
||||||
margin_left = 20.0
|
|
||||||
margin_right = 411.0
|
|
||||||
margin_bottom = 50.0
|
|
||||||
custom_fonts/font = SubResource( 1 )
|
|
||||||
text = "Unnamed Room"
|
|
||||||
valign = 1
|
|
||||||
[connection signal="gui_input" from="." to="." method="_gui_input"]
|
|
||||||
[connection signal="mouse_exited" from="RoomName" to="." method="_mouse_exited"]
|
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
onready var CardList = $PickedCardListScroll/PickedCardList
|
onready var CardList = $PickedCardListScroll/PickedCardList
|
||||||
onready var PlayerList = $PlayerList
|
|
||||||
|
|
||||||
var players = {}
|
|
||||||
|
|
||||||
var CardUI := preload("res://Scenes/DeckBuilder/UICard.tscn")
|
var CardUI := preload("res://Scenes/DeckBuilder/UICard.tscn")
|
||||||
var PlayerItem := preload("res://Scenes/Draft/PlayerItem.tscn")
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
add_card("pr1")
|
add_card("pr1")
|
||||||
|
@ -21,8 +17,6 @@ func _ready():
|
||||||
add_card("pr10")
|
add_card("pr10")
|
||||||
add_card("pr20")
|
add_card("pr20")
|
||||||
add_card("pr30")
|
add_card("pr30")
|
||||||
add_player("Player 1", false)
|
|
||||||
add_player("Bot 1", true)
|
|
||||||
|
|
||||||
func add_card(cardID: String):
|
func add_card(cardID: String):
|
||||||
var card := CardUI.instance()
|
var card := CardUI.instance()
|
||||||
|
@ -46,17 +40,8 @@ func _card_unselected():
|
||||||
|
|
||||||
func _card_picked(cardID: String):
|
func _card_picked(cardID: String):
|
||||||
CardList.add_card(cardID)
|
CardList.add_card(cardID)
|
||||||
players["Player 1"].set_picked(true)
|
|
||||||
$CardZoom.fadeout()
|
$CardZoom.fadeout()
|
||||||
clear_cards()
|
#clear_cards()
|
||||||
|
|
||||||
func add_player(playerName: String, isBot: bool):
|
|
||||||
var item := PlayerItem.instance()
|
|
||||||
item.playerName = playerName
|
|
||||||
item.isBot = isBot
|
|
||||||
players[playerName] = item
|
|
||||||
$PlayerList.add_child(item)
|
|
||||||
item.set_picked(false)
|
|
||||||
|
|
||||||
const yMargin = 5
|
const yMargin = 5
|
||||||
const xEdge = 200
|
const xEdge = 200
|
||||||
|
|
|
@ -30,36 +30,8 @@ func add_card(cardID: String):
|
||||||
item.cardSubname = data.subname
|
item.cardSubname = data.subname
|
||||||
item.showCost = has_cost(data.type)
|
item.showCost = has_cost(data.type)
|
||||||
item.cardCost = data.cost
|
item.cardCost = data.cost
|
||||||
if data.type == "Problem":
|
item.color = to_color_ids(data.colors)
|
||||||
item.color = to_color_ids(data.requirements.keys())
|
blocks["entry"].add_child(item)
|
||||||
else:
|
|
||||||
item.color = to_color_ids(data.colors)
|
|
||||||
var cat := get_card_group(data)
|
|
||||||
add_to_card_group(cat, item)
|
|
||||||
|
|
||||||
func get_card_group(item: CardInfo) -> String:
|
|
||||||
match item.type:
|
|
||||||
"Friend":
|
|
||||||
# Entry if req is 0, friend otherwise
|
|
||||||
if item.requirements.size() < 1:
|
|
||||||
return "entry"
|
|
||||||
return "friend"
|
|
||||||
"Event":
|
|
||||||
#TODO some events are entry (color-fixing)
|
|
||||||
return "event"
|
|
||||||
"Resource":
|
|
||||||
#TODO some resources are entry (color-fixing)
|
|
||||||
return "resource"
|
|
||||||
"Troublemaker":
|
|
||||||
return "troublemaker"
|
|
||||||
"Problem":
|
|
||||||
return "problem"
|
|
||||||
"Mane Character":
|
|
||||||
return "mane"
|
|
||||||
|
|
||||||
func add_to_card_group(cat: String, item: Node):
|
|
||||||
blocks[cat].add_child(item)
|
|
||||||
labels[cat].visible = true
|
|
||||||
|
|
||||||
var colorTable = {
|
var colorTable = {
|
||||||
"Loyalty": "blue",
|
"Loyalty": "blue",
|
||||||
|
@ -73,7 +45,6 @@ var colorTable = {
|
||||||
func to_color_ids(ogcolors: Array) -> String:
|
func to_color_ids(ogcolors: Array) -> String:
|
||||||
var newcol := []
|
var newcol := []
|
||||||
for ogcol in ogcolors:
|
for ogcol in ogcolors:
|
||||||
ogcol = (ogcol as String).trim_prefix("Not ")
|
|
||||||
if colorTable.has(ogcol):
|
if colorTable.has(ogcol):
|
||||||
newcol.push_back(colorTable[ogcol])
|
newcol.push_back(colorTable[ogcol])
|
||||||
match newcol.size():
|
match newcol.size():
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.3 KiB |
|
@ -1,34 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/playericons.png-eeeb153289558a7b4ae89e3caa9a0b44.stex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://UIAssets/Draft/playericons.png"
|
|
||||||
dest_files=[ "res://.import/playericons.png-eeeb153289558a7b4ae89e3caa9a0b44.stex" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=1
|
|
||||||
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=true
|
|
||||||
flags/anisotropic=true
|
|
||||||
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
|
|
|
@ -19,11 +19,6 @@ _global_script_classes=[ {
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://Scenes/Board/Card.gd"
|
"path": "res://Scenes/Board/Card.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "Object",
|
|
||||||
"class": "CardInfo",
|
|
||||||
"language": "GDScript",
|
|
||||||
"path": "res://Classes/CardInfo.gd"
|
|
||||||
}, {
|
|
||||||
"base": "Reference",
|
"base": "Reference",
|
||||||
"class": "Resources",
|
"class": "Resources",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
|
@ -42,7 +37,6 @@ _global_script_classes=[ {
|
||||||
_global_script_class_icons={
|
_global_script_class_icons={
|
||||||
"Board": "",
|
"Board": "",
|
||||||
"Card": "",
|
"Card": "",
|
||||||
"CardInfo": "",
|
|
||||||
"Resources": "",
|
"Resources": "",
|
||||||
"ScatterCard": "",
|
"ScatterCard": "",
|
||||||
"Stack": ""
|
"Stack": ""
|
||||||
|
@ -77,7 +71,6 @@ gdscript/warnings/unsafe_call_argument=true
|
||||||
|
|
||||||
window/size/width=1280
|
window/size/width=1280
|
||||||
window/size/height=800
|
window/size/height=800
|
||||||
window/dpi/allow_hidpi=true
|
|
||||||
window/stretch/mode="2d"
|
window/stretch/mode="2d"
|
||||||
window/stretch/aspect="expand"
|
window/stretch/aspect="expand"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue