Add set loading and parsing, also minor things

This commit is contained in:
Hamcha 2019-06-29 11:46:33 +02:00
parent c8cc26cbce
commit 72c6e49a06
Signed by: hamcha
GPG key ID: A40413D21021EAEE
23 changed files with 643 additions and 134 deletions

2
.gitignore vendored
View file

@ -1,2 +1,4 @@
.import .import
*.zip *.zip
Cards/*
Music/*

Binary file not shown.

11
CREDITS.md Normal file
View file

@ -0,0 +1,11 @@
Some assets come from fellow MLP fans and artists:
- [**Ninja Applejack** by Yetioner](https://www.deviantart.com/yetioner/art/Ninja-Applejack-663088882)
- [**Fluttershy is best singer!** by MacTavish1996](https://www.deviantart.com/mactavish1996/art/Fluttershy-is-best-singer-435068869)
- [**Pinkie: 'Tall ceilings' (S05E03)** by DJDavid98](https://www.deviantart.com/djdavid98/art/Pinkie-Tall-ceilings-S05E03-532855027)
- [**excited Rainbow Dash** by CloudyGlow](https://www.deviantart.com/cloudyglow/art/excited-Rainbow-Dash-730032632)
- [**Rarity Falling in joy** by Yetioner](https://www.deviantart.com/yetioner/art/Rarity-Falling-in-joy-600727887)
The following Sound effects from Freesound were used:
- [**long wispy woosh1.wav** by newagesoup](https://freesound.org/people/newagesoup/sounds/377830/)

View file

@ -21,7 +21,8 @@ func _ready():
func _gui_input(event): func _gui_input(event):
# Left click # Left click
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT: if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and event.pressed:
accept_event()
emit_signal("card_clicked") emit_signal("card_clicked")
if event is InputEventMouseMotion: if event is InputEventMouseMotion:
emit_signal("card_hover", event.position) emit_signal("card_hover", event.position)

View file

@ -4,14 +4,14 @@
[ext_resource path="res://UIAssets/Effects/FadeBorder.shader" type="Shader" id=2] [ext_resource path="res://UIAssets/Effects/FadeBorder.shader" type="Shader" id=2]
[ext_resource path="res://MLPAssets/Placeholders/unknowncard.jpg" type="Texture" id=3] [ext_resource path="res://MLPAssets/Placeholders/unknowncard.jpg" type="Texture" id=3]
[sub_resource type="ShaderMaterial" id=4] [sub_resource type="ShaderMaterial" id=1]
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource( 2 ) shader = ExtResource( 2 )
shader_param/effect_color = Color( 0.0117647, 0.768627, 1, 0 ) shader_param/effect_color = Color( 0.0117647, 0.768627, 1, 0 )
shader_param/effect_width = 0.1 shader_param/effect_width = 0.1
shader_param/effect_offset = 0.0 shader_param/effect_offset = 0.0
[sub_resource type="Animation" id=3] [sub_resource type="Animation" id=2]
resource_name = "glow" resource_name = "glow"
length = 0.1 length = 0.1
step = 0.05 step = 0.05
@ -48,7 +48,7 @@ rect_pivot_offset = Vector2( 172, 240 )
script = ExtResource( 1 ) script = ExtResource( 1 )
[node name="ColorRect" type="ColorRect" parent="."] [node name="ColorRect" type="ColorRect" parent="."]
material = SubResource( 4 ) material = SubResource( 1 )
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = -20.0 margin_left = -20.0
@ -64,7 +64,7 @@ expand = true
stretch_mode = 6 stretch_mode = 6
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/glow = SubResource( 3 ) anims/glow = SubResource( 2 )
[connection signal="gui_input" from="." to="." method="_gui_input"] [connection signal="gui_input" from="." to="." method="_gui_input"]
[connection signal="mouse_entered" from="." to="." method="_mouse_entered"] [connection signal="mouse_entered" from="." to="." method="_mouse_entered"]
[connection signal="mouse_exited" from="." to="." method="_mouse_exited"] [connection signal="mouse_exited" from="." to="." method="_mouse_exited"]

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://Scenes/Scripts/Draft.gd" type="Script" id=1] [ext_resource path="res://Scenes/Scripts/Draft.gd" type="Script" id=1]
[ext_resource path="res://MLPAssets/Background/hall.png" type="Texture" id=2] [ext_resource path="res://MLPAssets/Background/hall.png" type="Texture" id=2]
[ext_resource path="res://Scenes/DeckBuilder/CardZoom.tscn" type="PackedScene" id=3] [ext_resource path="res://Scenes/Shared/CardList.tscn" type="PackedScene" id=3]
[ext_resource path="res://Scenes/DeckBuilder/CardZoom.tscn" type="PackedScene" id=4]
[node name="Control" type="Control"] [node name="Control" type="Control"]
anchor_right = 1.0 anchor_right = 1.0
@ -23,7 +24,6 @@ expand = true
stretch_mode = 6 stretch_mode = 6
[node name="PickedCardListScroll" type="ScrollContainer" parent="."] [node name="PickedCardListScroll" type="ScrollContainer" parent="."]
editor/display_folded = true
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@ -34,107 +34,15 @@ margin_bottom = -20.0
mouse_filter = 1 mouse_filter = 1
scroll_horizontal_enabled = false scroll_horizontal_enabled = false
[node name="PickedCardList" type="VBoxContainer" parent="PickedCardListScroll"] [node name="PickedCardList" parent="PickedCardListScroll" instance=ExtResource( 3 )]
margin_right = 220.0
margin_bottom = 761.0
rect_min_size = Vector2( 220, 0 )
size_flags_vertical = 3
[node name="ManeLabel" type="Label" parent="PickedCardListScroll/PickedCardList"] [node name="VBoxContainer" type="VBoxContainer" parent="."]
visible = false anchor_bottom = 1.0
margin_right = 220.0 margin_left = 20.0
margin_bottom = 23.0
rect_min_size = Vector2( 0, 23 )
text = "Mane"
valign = 1
[node name="Mane" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
margin_right = 220.0
[node name="EntryLabel" type="Label" parent="PickedCardListScroll/PickedCardList"]
visible = false
margin_top = 4.0
margin_right = 220.0
margin_bottom = 27.0
rect_min_size = Vector2( 0, 23 )
text = "Entry"
valign = 1
[node name="Entry" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
margin_top = 4.0
margin_right = 220.0
margin_bottom = 4.0
[node name="FriendsLabel" type="Label" parent="PickedCardListScroll/PickedCardList"]
visible = false
margin_top = 8.0
margin_right = 220.0
margin_bottom = 31.0
rect_min_size = Vector2( 0, 23 )
text = "Friends"
valign = 1
[node name="Friends" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
margin_top = 8.0
margin_right = 220.0
margin_bottom = 8.0
[node name="ResourcesLabel" type="Label" parent="PickedCardListScroll/PickedCardList"]
visible = false
margin_top = 12.0
margin_right = 220.0
margin_bottom = 35.0
rect_min_size = Vector2( 0, 23 )
text = "Resources"
valign = 1
[node name="Resources" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
margin_top = 12.0
margin_right = 220.0
margin_bottom = 12.0
[node name="EventsLabel" type="Label" parent="PickedCardListScroll/PickedCardList"]
visible = false
margin_top = 16.0
margin_right = 220.0
margin_bottom = 39.0
rect_min_size = Vector2( 0, 23 )
text = "Events"
valign = 1
[node name="Events" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
margin_top = 16.0
margin_right = 220.0
margin_bottom = 16.0
[node name="TroublemakersLabel" type="Label" parent="PickedCardListScroll/PickedCardList"]
visible = false
margin_top = 20.0
margin_right = 220.0
margin_bottom = 43.0
rect_min_size = Vector2( 0, 23 )
text = "Troublemakers"
valign = 1
[node name="Troublemakers" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
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="ProblemsLabel" type="Label" parent="PickedCardListScroll/PickedCardList"]
visible = false
margin_top = 24.0
margin_right = 220.0
margin_bottom = 47.0
rect_min_size = Vector2( 0, 23 )
text = "Problems"
valign = 1
[node name="Problems" type="VBoxContainer" parent="PickedCardListScroll/PickedCardList"]
margin_top = 24.0
margin_right = 220.0
margin_bottom = 24.0
[node name="Cards" type="GridContainer" parent="."] [node name="Cards" type="GridContainer" parent="."]
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
@ -151,5 +59,5 @@ custom_constants/vseparation = 10
custom_constants/hseparation = 10 custom_constants/hseparation = 10
columns = 4 columns = 4
[node name="CardZoom" parent="." instance=ExtResource( 3 )] [node name="CardZoom" parent="." instance=ExtResource( 4 )]
rect_scale = Vector2( 0.8, 0.8 ) rect_scale = Vector2( 0.8, 0.8 )

77
Scenes/Global/CardData.gd Normal file
View file

@ -0,0 +1,77 @@
extends Node
var loadedSets := {}
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():
# Search for sets in MLPData
var dir := Directory.new()
var err := dir.change_dir("res://MLPData/Sets")
if err != OK:
print(err)
dir.list_dir_begin(true, true)
while true:
var next := dir.get_next()
if next == "":
break
# Check for cached resource
var file := File.new()
file.open("res://MLPData/Sets/" + next, File.READ)
var result = parse_json(file.get_as_text())
if typeof(result) == TYPE_DICTIONARY:
loadedSets[next] = result.Name
add_to_dict(result.Cards)
print("Loaded set: ", result.Name, " (", next, ", ", len(result.Cards), " cards)")
else:
breakpoint
func add_to_dict(cards: Array):
for card in cards:
loadedCards[card.ID] = CardInfo.new(card)
func get_by_id(id: String) -> CardInfo:
if not loadedCards.has(id):
print("[WARN] Trying to get unknown card: ", id)
#TODO return error or something
return CardInfo.new({})
return loadedCards[id]

View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://Scenes/Global/CardData.gd" type="Script" id=1]
[node name="Node" type="Node"]
script = ExtResource( 1 )

View file

@ -3,4 +3,7 @@ extends Control
signal loaded() signal loaded()
func _ready(): func _ready():
# Load bgm
BGM.load_music("lobby")
emit_signal("loaded") emit_signal("loaded")

View file

@ -1,7 +1,8 @@
[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
@ -11,6 +12,26 @@ script = ExtResource( 1 )
[node name="TextureRect" 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_right = -1.29236
texture = ExtResource( 2 ) texture = ExtResource( 2 )
expand = true expand = true
stretch_mode = 7 stretch_mode = 7
[node name="ScrollContainer" type="ScrollContainer" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 30.0
margin_top = 100.0
margin_right = -30.0
margin_bottom = -300.0
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
margin_right = 1220.0
margin_bottom = 400.0
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="Control" parent="ScrollContainer/VBoxContainer" instance=ExtResource( 3 )]
anchor_right = 0.0
margin_right = 1220.0

View file

@ -0,0 +1,8 @@
[gd_scene format=2]
[node name="RoomEntry" type="Panel"]
anchor_right = 1.0
margin_right = -280.0
margin_bottom = 50.0
rect_min_size = Vector2( 0, 50 )
size_flags_horizontal = 3

View file

@ -1,24 +1,6 @@
extends Control extends Control
var blocks = { onready var CardList = $PickedCardListScroll/PickedCardList
"mane": $PickedCardListScroll/PickedCardList/Mane,
"entry": $PickedCardListScroll/PickedCardList/Entry,
"friend": $PickedCardListScroll/PickedCardList/Friends,
"resource": $PickedCardListScroll/PickedCardList/Resources,
"event": $PickedCardListScroll/PickedCardList/Events,
"troublemaker": $PickedCardListScroll/PickedCardList/Troublemakers,
"problem": $PickedCardListScroll/PickedCardList/Problems
}
var labels = {
"mane": $PickedCardListScroll/PickedCardList/ManeLabel,
"entry": $PickedCardListScroll/PickedCardList/EntryLabel,
"friend": $PickedCardListScroll/PickedCardList/FriendsLabel,
"resource": $PickedCardListScroll/PickedCardList/ResourcesLabel,
"event": $PickedCardListScroll/PickedCardList/EventsLabel,
"troublemaker": $PickedCardListScroll/PickedCardList/TroublemakersLabel,
"problem": $PickedCardListScroll/PickedCardList/ProblemsLabel
}
var CardUI := preload("res://Scenes/DeckBuilder/UICard.tscn") var CardUI := preload("res://Scenes/DeckBuilder/UICard.tscn")
@ -42,8 +24,13 @@ func add_card(cardID: String):
card.connect("card_selected", self, "_card_selected", [cardID]) card.connect("card_selected", self, "_card_selected", [cardID])
card.connect("card_unselected", self, "_card_unselected") card.connect("card_unselected", self, "_card_unselected")
card.connect("card_hover", self, "_mouse_on_card", [card]) card.connect("card_hover", self, "_mouse_on_card", [card])
card.connect("card_clicked", self, "_card_picked", [cardID])
$Cards.add_child(card) $Cards.add_child(card)
func clear_cards():
for card in $Cards.get_children():
card.queue_free()
func _card_selected(cardID: String): func _card_selected(cardID: String):
$CardZoom.cardID = cardID $CardZoom.cardID = cardID
$CardZoom.fadein() $CardZoom.fadein()
@ -51,6 +38,11 @@ func _card_selected(cardID: String):
func _card_unselected(): func _card_unselected():
$CardZoom.fadeout() $CardZoom.fadeout()
func _card_picked(cardID: String):
CardList.add_card(cardID)
$CardZoom.fadeout()
#clear_cards()
const yMargin = 5 const yMargin = 5
const xEdge = 200 const xEdge = 200
const yEdge = 10 const yEdge = 10

66
Scenes/Shared/CardList.gd Normal file
View file

@ -0,0 +1,66 @@
extends VBoxContainer
onready var blocks = {
"mane": $Mane,
"entry": $Entry,
"friend": $Friends,
"resource": $Resources,
"event": $Events,
"troublemaker": $Troublemakers,
"problem": $Problems
}
onready var labels = {
"mane": $ManeLabel,
"entry": $EntryLabel,
"friend": $FriendsLabel,
"resource": $ResourcesLabel,
"event": $EventsLabel,
"troublemaker": $TroublemakersLabel,
"problem": $ProblemsLabel
}
var CardListItem := preload("res://Scenes/Shared/CardList/CardListItem.tscn")
func add_card(cardID: String):
# Get card data from ID
var data := CardData.get_by_id(cardID)
var item := CardListItem.instance()
item.cardName = data.name
item.cardSubname = data.subname
item.showCost = has_cost(data.type)
item.cardCost = data.cost
item.color = to_color_ids(data.colors)
blocks["entry"].add_child(item)
var colorTable = {
"Loyalty": "blue",
"Generosity": "white",
"Magic": "purple",
"Laughter": "pink",
"Kindness": "yellow",
"Honesty": "orange"
}
func to_color_ids(ogcolors: Array) -> String:
var newcol := []
for ogcol in ogcolors:
if colorTable.has(ogcol):
newcol.push_back(colorTable[ogcol])
match newcol.size():
0:
return "none"
1:
return newcol[0]
_:
var multistr := "multi|"
for col in newcol:
multistr += col+"+"
return multistr.trim_suffix("+")
func has_cost(type: String) -> bool:
match type:
"Friend", "Resource", "Event":
return true
_:
return false

105
Scenes/Shared/CardList.tscn Normal file
View file

@ -0,0 +1,105 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://Scenes/Shared/CardList.gd" type="Script" id=1]
[node name="PickedCardList" type="VBoxContainer"]
margin_right = 220.0
margin_bottom = 761.0
rect_min_size = Vector2( 220, 0 )
size_flags_vertical = 3
script = ExtResource( 1 )
[node name="ManeLabel" type="Label" parent="."]
visible = false
margin_right = 220.0
margin_bottom = 23.0
rect_min_size = Vector2( 0, 23 )
text = "Mane"
valign = 1
[node name="Mane" type="VBoxContainer" parent="."]
margin_right = 220.0
[node name="EntryLabel" type="Label" parent="."]
visible = false
margin_top = 4.0
margin_right = 220.0
margin_bottom = 27.0
rect_min_size = Vector2( 0, 23 )
text = "Entry"
valign = 1
[node name="Entry" type="VBoxContainer" parent="."]
margin_top = 4.0
margin_right = 220.0
margin_bottom = 4.0
[node name="FriendsLabel" type="Label" parent="."]
visible = false
margin_top = 8.0
margin_right = 220.0
margin_bottom = 31.0
rect_min_size = Vector2( 0, 23 )
text = "Friends"
valign = 1
[node name="Friends" type="VBoxContainer" parent="."]
margin_top = 8.0
margin_right = 220.0
margin_bottom = 8.0
[node name="ResourcesLabel" type="Label" parent="."]
visible = false
margin_top = 12.0
margin_right = 220.0
margin_bottom = 35.0
rect_min_size = Vector2( 0, 23 )
text = "Resources"
valign = 1
[node name="Resources" type="VBoxContainer" parent="."]
margin_top = 12.0
margin_right = 220.0
margin_bottom = 12.0
[node name="EventsLabel" type="Label" parent="."]
visible = false
margin_top = 16.0
margin_right = 220.0
margin_bottom = 39.0
rect_min_size = Vector2( 0, 23 )
text = "Events"
valign = 1
[node name="Events" type="VBoxContainer" parent="."]
margin_top = 16.0
margin_right = 220.0
margin_bottom = 16.0
[node name="TroublemakersLabel" type="Label" parent="."]
visible = false
margin_top = 20.0
margin_right = 220.0
margin_bottom = 43.0
rect_min_size = Vector2( 0, 23 )
text = "Troublemakers"
valign = 1
[node name="Troublemakers" type="VBoxContainer" parent="."]
margin_top = 20.0
margin_right = 220.0
margin_bottom = 20.0
[node name="ProblemsLabel" type="Label" parent="."]
visible = false
margin_top = 24.0
margin_right = 220.0
margin_bottom = 47.0
rect_min_size = Vector2( 0, 23 )
text = "Problems"
valign = 1
[node name="Problems" type="VBoxContainer" parent="."]
margin_top = 24.0
margin_right = 220.0
margin_bottom = 24.0

View file

@ -1,11 +1,10 @@
[gd_scene load_steps=8 format=2] [gd_scene load_steps=8 format=2]
[ext_resource path="res://Scenes/DeckBuilder/CardListItem.gd" type="Script" id=1] [ext_resource path="res://Scenes/Shared/CardList/CardListItem.gd" type="Script" id=1]
[ext_resource path="res://UIAssets/Fonts/Catamaran-Bold.ttf" type="DynamicFontData" id=2] [ext_resource path="res://UIAssets/Fonts/Catamaran-Bold.ttf" type="DynamicFontData" id=2]
[ext_resource path="res://UIAssets/Fonts/Catamaran-Light.ttf" type="DynamicFontData" id=3] [ext_resource path="res://UIAssets/Fonts/Catamaran-Light.ttf" type="DynamicFontData" id=3]
[ext_resource path="res://MLPAssets/Icons/flat-cost.png" type="Texture" id=4] [ext_resource path="res://MLPAssets/Icons/flat-cost.png" type="Texture" id=4]
[sub_resource type="DynamicFont" id=1] [sub_resource type="DynamicFont" id=1]
size = 12 size = 12
use_mipmaps = true use_mipmaps = true

254
Scenes/TitleScreen.tscn Normal file
View file

@ -0,0 +1,254 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://UIAssets/mane6start.png" type="Texture" id=1]
[ext_resource path="res://UIAssets/Sounds/low_woosh.wav" type="AudioStream" id=2]
[sub_resource type="Animation" id=1]
resource_name = "FadeIn"
length = 3.5
tracks/0/type = "value"
tracks/0/path = NodePath("TS: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.5, 2.9 ),
"transitions": PoolRealArray( 0.450625, 0.450625, 0.999999 ),
"update": 0,
"values": [ Vector2( 655.393, 702.101 ), Vector2( 655.393, 702.101 ), Vector2( 656.979, 500 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("TS:modulate")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 1.5, 2.3 ),
"transitions": PoolRealArray( 1, 0.392292, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("PP:position")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 0.9, 1.2 ),
"transitions": PoolRealArray( 1, 0.5, 1 ),
"update": 0,
"values": [ Vector2( 599.236, 504.842 ), Vector2( 599.236, 504.842 ), Vector2( 319.982, 603.216 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("PP:modulate")
tracks/3/interp = 2
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0, 0.9, 1.2 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("FS:position")
tracks/4/interp = 2
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0, 0.3, 0.6 ),
"transitions": PoolRealArray( 1, 0.5, 1 ),
"update": 0,
"values": [ Vector2( 559.227, 368.769 ), Vector2( 559.227, 368.769 ), Vector2( 299.012, 292.608 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("FS:modulate")
tracks/5/interp = 2
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0, 0.3, 0.6 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("RD:position")
tracks/6/interp = 2
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0, 0.7, 1 ),
"transitions": PoolRealArray( 1, 0.5, 1 ),
"update": 0,
"values": [ Vector2( 630.323, 392.166 ), Vector2( 630.323, 392.166 ), Vector2( 630.323, 247.779 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("RD:modulate")
tracks/7/interp = 2
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0, 0.7, 1 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("AJ:position")
tracks/8/interp = 2
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0, 1.2, 1.5 ),
"transitions": PoolRealArray( 1, 0.5, 1 ),
"update": 0,
"values": [ Vector2( 767.327, 325.855 ), Vector2( 767.327, 325.855 ), Vector2( 1008.5, 278.254 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath("AJ:modulate")
tracks/9/interp = 2
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0, 1.2, 1.5 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/10/type = "value"
tracks/10/path = NodePath("RR:position")
tracks/10/interp = 2
tracks/10/loop_wrap = true
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/keys = {
"times": PoolRealArray( 0, 0.5, 0.8 ),
"transitions": PoolRealArray( 1, 0.5, 1 ),
"update": 0,
"values": [ Vector2( 744.717, 476.045 ), Vector2( 744.717, 476.045 ), Vector2( 1008.5, 598.14 ) ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("RR:modulate")
tracks/11/interp = 2
tracks/11/loop_wrap = true
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/keys = {
"times": PoolRealArray( 0, 0.5, 0.8 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
tracks/12/type = "audio"
tracks/12/path = NodePath("Channel1")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/keys = {
"clips": [ {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource( 2 )
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource( 2 )
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource( 2 )
} ],
"times": PoolRealArray( 0.2, 0.7, 1.1 )
}
tracks/13/type = "audio"
tracks/13/path = NodePath("Channel2")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/keys = {
"clips": [ {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource( 2 )
}, {
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource( 2 )
} ],
"times": PoolRealArray( 0.4, 0.9 )
}
[node name="TitleScreen" type="Control"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -640.0
margin_top = -400.0
margin_right = 640.0
margin_bottom = 400.0
[node name="RD" type="Sprite" parent="."]
position = Vector2( 630.323, 247.779 )
scale = Vector2( 0.8, 0.8 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 3.0625, -0.241745, 357.39, 576.697 )
[node name="FS" type="Sprite" parent="."]
position = Vector2( 299.012, 292.608 )
scale = Vector2( 0.8, 0.8 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 850.711, 1.36916, 538.217, 391.606 )
[node name="AJ" type="Sprite" parent="."]
position = Vector2( 1008.5, 278.254 )
scale = Vector2( 0.8, 0.8 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( -7.22717, 592.3, 422.556, 379.131 )
[node name="RR" type="Sprite" parent="."]
position = Vector2( 1008.5, 598.14 )
scale = Vector2( 0.8, 0.8 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 362.65, -8.27631, 466.841, 383.89 )
[node name="PP" type="Sprite" parent="."]
position = Vector2( 319.982, 603.216 )
scale = Vector2( 0.8, 0.8 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 846.772, 430.27, 542.718, 340.81 )
[node name="TS" type="Sprite" parent="."]
position = Vector2( 656.979, 500 )
scale = Vector2( 0.8, 0.8 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 429.027, 395.82, 401.907, 578.254 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "FadeIn"
anims/FadeIn = SubResource( 1 )
[node name="Channel1" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 2 )
[node name="Channel2" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 2 )

Binary file not shown.

View file

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/low_woosh.wav-f25971f094bce7f745ac9ca56d1a164c.sample"
[deps]
source_file="res://UIAssets/Sounds/low_woosh.wav"
dest_files=[ "res://.import/low_woosh.wav-f25971f094bce7f745ac9ca56d1a164c.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

BIN
UIAssets/mane6start.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/mane6start.png-71c53d560a5118cb5ac4a8c98b71f0b8.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://UIAssets/mane6start.png"
dest_files=[ "res://.import/mane6start.png-71c53d560a5118cb5ac4a8c98b71f0b8.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

View file

@ -5,9 +5,9 @@ platform="HTML5"
runnable=true runnable=true
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter="*.json"
exclude_filter="" exclude_filter=""
export_path="C:/VC/mlpcardgame-out/index.html" export_path="C:/VC/mlpcardgame-out/index-nosfw.html"
patch_list=PoolStringArray( ) patch_list=PoolStringArray( )
script_export_mode=1 script_export_mode=1
script_encryption_key="" script_encryption_key=""
@ -28,7 +28,7 @@ platform="Android"
runnable=true runnable=true
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter="*.json"
exclude_filter="" exclude_filter=""
export_path="B:/OneDrive/Documenti/VC/mlpcardgame-html/index.apk" export_path="B:/OneDrive/Documenti/VC/mlpcardgame-html/index.apk"
patch_list=PoolStringArray( ) patch_list=PoolStringArray( )
@ -249,7 +249,7 @@ platform="Linux/X11"
runnable=true runnable=true
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter="*.json"
exclude_filter="" exclude_filter=""
export_path="C:/VC/mlpcardgame-out/mcg.x86_64" export_path="C:/VC/mlpcardgame-out/mcg.x86_64"
patch_list=PoolStringArray( ) patch_list=PoolStringArray( )
@ -274,7 +274,7 @@ platform="Windows Desktop"
runnable=true runnable=true
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter="*.json"
exclude_filter="" exclude_filter=""
export_path="C:/VC/mlpcardgame-out/mcg-hp.exe" export_path="C:/VC/mlpcardgame-out/mcg-hp.exe"
patch_list=PoolStringArray( ) patch_list=PoolStringArray( )

View file

@ -53,10 +53,11 @@ config/icon="res://icon.png"
[autoload] [autoload]
CardData="*res://Scenes/Global/CardData.tscn"
Remote="*res://Scenes/Global/Remote.tscn" Remote="*res://Scenes/Global/Remote.tscn"
Mods="*res://Scenes/Global/Mods.tscn"
Loader="*res://Scenes/Global/Loader.tscn" Loader="*res://Scenes/Global/Loader.tscn"
BGM="*res://Scenes/BGMusic.tscn" BGM="*res://Scenes/BGMusic.tscn"
Mods="*res://Scenes/Global/Mods.tscn"
[debug] [debug]