Compare commits
No commits in common. "main" and "master" have entirely different histories.
@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="SpriteFrames" load_steps=204 format=3 uid="uid://cr61adma36kgc"]
|
[gd_resource type="SpriteFrames" load_steps=204 format=3 uid="uid://b5whpr2mq8mqp"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://q84plpxvvgjv" path="res://Sprites/Portraits/feisty.png" id="1"]
|
[ext_resource type="Texture2D" uid="uid://q84plpxvvgjv" path="res://Sprites/Portraits/feisty.png" id="1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://duqy7swwclrta" path="res://Sprites/Portraits/axis.png" id="2"]
|
[ext_resource type="Texture2D" uid="uid://duqy7swwclrta" path="res://Sprites/Portraits/axis.png" id="2"]
|
||||||
|
@ -5,11 +5,6 @@
|
|||||||
<RootNamespace>DeltaruneYellow</RootNamespace>
|
<RootNamespace>DeltaruneYellow</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="GodotSharp">
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<HintPath>.\GodotSharp.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Newtonsoft.Json">
|
|
||||||
<HintPath>.\Newtonsoft.Json.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,6 +1,6 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2012
|
# Visual Studio 2012
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Deltarune Yellow", "Deltarune Yellow.csproj", "{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Deltarune Yellow", "Deltarune Yellow.csproj", "{48A220B2-D101-4CCF-8D8D-835E62B3B133}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -9,11 +9,11 @@ Global
|
|||||||
ExportRelease|Any CPU = ExportRelease|Any CPU
|
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{48A220B2-D101-4CCF-8D8D-835E62B3B133}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{48A220B2-D101-4CCF-8D8D-835E62B3B133}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
{48A220B2-D101-4CCF-8D8D-835E62B3B133}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||||
{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
{48A220B2-D101-4CCF-8D8D-835E62B3B133}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||||
{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
{48A220B2-D101-4CCF-8D8D-835E62B3B133}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||||
{07CA73A8-ADA8-4477-B40C-5B259E1DFF34}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
{48A220B2-D101-4CCF-8D8D-835E62B3B133}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
Binary file not shown.
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://dqhr68jmo4onx"
|
uid="uid://bm33w5vaxemm1"
|
||||||
path="res://.godot/imported/DTM-Mono.otf-c9a8ba02f7a0d1306b72871e16a0e9fd.fontdata"
|
path="res://.godot/imported/DTM-Mono.otf-c9a8ba02f7a0d1306b72871e16a0e9fd.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
@ -29,7 +29,12 @@ Fallbacks=null
|
|||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
Compress=null
|
Compress=null
|
||||||
compress=true
|
compress=true
|
||||||
preload=[]
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
language_support={}
|
language_support={}
|
||||||
script_support={}
|
script_support={}
|
||||||
opentype_features={}
|
opentype_features={}
|
||||||
|
Binary file not shown.
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="font_data_dynamic"
|
importer="font_data_dynamic"
|
||||||
type="FontFile"
|
type="FontFile"
|
||||||
uid="uid://d8jw11wrln33"
|
uid="uid://ds5fuu4nvfqdb"
|
||||||
path="res://.godot/imported/DTM-Sans.otf-5ac6ba21314eda620a402d113cdc1558.fontdata"
|
path="res://.godot/imported/DTM-Sans.otf-5ac6ba21314eda620a402d113cdc1558.fontdata"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
@ -29,7 +29,12 @@ Fallbacks=null
|
|||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
Compress=null
|
Compress=null
|
||||||
compress=true
|
compress=true
|
||||||
preload=[]
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
language_support={}
|
language_support={}
|
||||||
script_support={}
|
script_support={}
|
||||||
opentype_features={}
|
opentype_features={}
|
||||||
|
BIN
Fonts/Determination-Regular.otf
Normal file
BIN
Fonts/Determination-Regular.otf
Normal file
Binary file not shown.
40
Fonts/Determination-Regular.otf.import
Normal file
40
Fonts/Determination-Regular.otf.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://di8a4wt1feejl"
|
||||||
|
path="res://.godot/imported/Determination-Regular.otf-d3642ed4258f21e36280aafddc4afd4d.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Fonts/Determination-Regular.otf"
|
||||||
|
dest_files=["res://.godot/imported/Determination-Regular.otf-d3642ed4258f21e36280aafddc4afd4d.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=0
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
BIN
Fonts/DiaryOfAn8BitMage-lYDD.ttf
Normal file
BIN
Fonts/DiaryOfAn8BitMage-lYDD.ttf
Normal file
Binary file not shown.
40
Fonts/DiaryOfAn8BitMage-lYDD.ttf.import
Normal file
40
Fonts/DiaryOfAn8BitMage-lYDD.ttf.import
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://1dhd5nsf1n0q"
|
||||||
|
path="res://.godot/imported/DiaryOfAn8BitMage-lYDD.ttf-70b6bea3583e45766fc22983645c4276.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Fonts/DiaryOfAn8BitMage-lYDD.ttf"
|
||||||
|
dest_files=["res://.godot/imported/DiaryOfAn8BitMage-lYDD.ttf-70b6bea3583e45766fc22983645c4276.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=0
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
35
Fonts/Dotumche.ttf.import
Normal file
35
Fonts/Dotumche.ttf.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://ixdw6qaouj68"
|
||||||
|
path="res://.godot/imported/Dotumche.ttf-72689bfe288537e7801443429c305889.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Fonts/Dotumche.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Dotumche.ttf-72689bfe288537e7801443429c305889.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/OrangeKid2.ttf-52463fe9bc5212222296213054caa5
|
|||||||
[params]
|
[params]
|
||||||
|
|
||||||
Rendering=null
|
Rendering=null
|
||||||
antialiasing=1
|
antialiasing=0
|
||||||
generate_mipmaps=false
|
generate_mipmaps=false
|
||||||
disable_embedded_bitmaps=true
|
disable_embedded_bitmaps=true
|
||||||
multichannel_signed_distance_field=false
|
multichannel_signed_distance_field=false
|
||||||
@ -29,7 +29,12 @@ Fallbacks=null
|
|||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
Compress=null
|
Compress=null
|
||||||
compress=true
|
compress=true
|
||||||
preload=[]
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
language_support={}
|
language_support={}
|
||||||
script_support={}
|
script_support={}
|
||||||
opentype_features={}
|
opentype_features={}
|
||||||
|
@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/TroubleBeneathTheDome.ttf-59cf589607b0e34b5ac
|
|||||||
[params]
|
[params]
|
||||||
|
|
||||||
Rendering=null
|
Rendering=null
|
||||||
antialiasing=1
|
antialiasing=0
|
||||||
generate_mipmaps=false
|
generate_mipmaps=false
|
||||||
disable_embedded_bitmaps=true
|
disable_embedded_bitmaps=true
|
||||||
multichannel_signed_distance_field=false
|
multichannel_signed_distance_field=false
|
||||||
@ -29,7 +29,12 @@ Fallbacks=null
|
|||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
Compress=null
|
Compress=null
|
||||||
compress=true
|
compress=true
|
||||||
preload=[]
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
language_support={}
|
language_support={}
|
||||||
script_support={}
|
script_support={}
|
||||||
opentype_features={}
|
opentype_features={}
|
||||||
|
BIN
Fonts/Yulong-Regular.otf
Normal file
BIN
Fonts/Yulong-Regular.otf
Normal file
Binary file not shown.
35
Fonts/Yulong-Regular.otf.import
Normal file
35
Fonts/Yulong-Regular.otf.import
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://ddvr8flumu7e6"
|
||||||
|
path="res://.godot/imported/Yulong-Regular.otf-b633c94bea33fe8b965f5abc6acfc2e6.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Fonts/Yulong-Regular.otf"
|
||||||
|
dest_files=["res://.godot/imported/Yulong-Regular.otf-b633c94bea33fe8b965f5abc6acfc2e6.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
@ -13,7 +13,7 @@ dest_files=["res://.godot/imported/dotumche-pixel.ttf-4b7534a3b510211ca01320872d
|
|||||||
[params]
|
[params]
|
||||||
|
|
||||||
Rendering=null
|
Rendering=null
|
||||||
antialiasing=1
|
antialiasing=0
|
||||||
generate_mipmaps=false
|
generate_mipmaps=false
|
||||||
disable_embedded_bitmaps=true
|
disable_embedded_bitmaps=true
|
||||||
multichannel_signed_distance_field=false
|
multichannel_signed_distance_field=false
|
||||||
@ -29,7 +29,12 @@ Fallbacks=null
|
|||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
Compress=null
|
Compress=null
|
||||||
compress=true
|
compress=true
|
||||||
preload=[]
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "新建配置",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
language_support={}
|
language_support={}
|
||||||
script_support={}
|
script_support={}
|
||||||
opentype_features={}
|
opentype_features={}
|
||||||
|
11
Fonts/dotumcheFixRus.tres
Normal file
11
Fonts/dotumcheFixRus.tres
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[gd_resource type="FontVariation" load_steps=2 format=4]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" path="res://Fonts/Yulong-Regular.otf" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
base_font = ExtResource("1")
|
||||||
|
variation_embolden = -0.5
|
||||||
|
variation_transform = Transform2D(2.53, 0, 0, 1.56, 0, 0)
|
||||||
|
spacing_glyph = 4
|
||||||
|
spacing_top = -1
|
||||||
|
baseline_offset = 0.33000001311302185
|
@ -1,6 +1,6 @@
|
|||||||
[gd_resource type="FontVariation" load_steps=2 format=4 uid="uid://cud87apd51vqd"]
|
[gd_resource type="FontVariation" load_steps=2 format=4]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://dnnxmwpetnwst" path="res://Fonts/DTM-Mono.otf" id="1"]
|
[ext_resource type="FontFile" path="res://Fonts/DTM-Mono.otf" id="1"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
base_font = ExtResource("1")
|
base_font = ExtResource("1")
|
||||||
|
7
Fonts/dtmonofixRus.tres
Normal file
7
Fonts/dtmonofixRus.tres
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[gd_resource type="FontVariation" load_steps=2 format=4]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" path="res://Fonts/Determination-Regular.otf" id="1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
base_font = ExtResource("1")
|
||||||
|
spacing_top = -1
|
BIN
GodotSharp.dll
BIN
GodotSharp.dll
Binary file not shown.
120
Main.tscn
120
Main.tscn
@ -1,18 +1,22 @@
|
|||||||
[gd_scene load_steps=44 format=3 uid="uid://dad1dy05x2pso"]
|
[gd_scene load_steps=48 format=3 uid="uid://bl5b0bl5pbewo"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cqejt8xpuq0we" path="res://Scripts/Main.cs" id="1"]
|
[ext_resource type="Script" uid="uid://cqejt8xpuq0we" path="res://Scripts/Main.cs" id="1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ca4ame0uqm16i" path="res://Sprites/Menus/dwbox.png" id="2"]
|
[ext_resource type="Texture2D" uid="uid://ca4ame0uqm16i" path="res://Sprites/Menus/dwbox.png" id="2"]
|
||||||
[ext_resource type="Script" uid="uid://dcaadyrf44f2s" path="res://Scripts/Common/TextSystem.cs" id="3"]
|
[ext_resource type="Script" uid="uid://dcaadyrf44f2s" path="res://Scripts/Common/TextSystem.cs" id="3"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://cr61adma36kgc" path="res://Animations/Portraits.tres" id="4"]
|
[ext_resource type="SpriteFrames" uid="uid://b5whpr2mq8mqp" path="res://Animations/Portraits.tres" id="4"]
|
||||||
[ext_resource type="FontFile" uid="uid://dqhr68jmo4onx" path="res://Fonts/DTM-Mono.otf" id="5"]
|
[ext_resource type="FontFile" uid="uid://bm33w5vaxemm1" path="res://Fonts/DTM-Mono.otf" id="5"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/Soul.tres" id="6"]
|
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/Soul.tres" id="6"]
|
||||||
[ext_resource type="Script" uid="uid://c6tb02l2w3pkf" path="res://Scripts/CameraController.cs" id="7"]
|
[ext_resource type="Script" uid="uid://c6tb02l2w3pkf" path="res://Scripts/CameraController.cs" id="7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://borwa3xavq2yq" path="res://Sprites/Menus/Mobile/ButtonZ.png" id="7_ny7u2"]
|
||||||
[ext_resource type="Script" uid="uid://bpgi5e11le8ft" path="res://Scripts/DebugMenu.cs" id="8"]
|
[ext_resource type="Script" uid="uid://bpgi5e11le8ft" path="res://Scripts/DebugMenu.cs" id="8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://diiegqyqmfse8" path="res://Sprites/Menus/Mobile/ButtonX.png" id="8_x3yn0"]
|
||||||
[ext_resource type="Script" uid="uid://cjh5kwd7xrs7d" path="res://Scripts/UI/LWMenu.cs" id="9"]
|
[ext_resource type="Script" uid="uid://cjh5kwd7xrs7d" path="res://Scripts/UI/LWMenu.cs" id="9"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://beun6iki5130q" path="res://Sprites/Menus/Mobile/ButtonC.png" id="9_1w2xm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dnm66f5ii885g" path="res://Sprites/Menus/gui.png" id="10"]
|
[ext_resource type="Texture2D" uid="uid://dnm66f5ii885g" path="res://Sprites/Menus/gui.png" id="10"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dhcfih1gqgfdt" path="res://Sprites/Menus/Mobile/buttonR.png" id="10_x3yn0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dvcauf0wkk8je" path="res://Sprites/Menus/utbox.png" id="11"]
|
[ext_resource type="Texture2D" uid="uid://dvcauf0wkk8je" path="res://Sprites/Menus/utbox.png" id="11"]
|
||||||
[ext_resource type="FontFile" uid="uid://benu2xtgythyn" path="res://Fonts/TroubleBeneathTheDome.ttf" id="12"]
|
[ext_resource type="FontFile" uid="uid://benu2xtgythyn" path="res://Fonts/TroubleBeneathTheDome.ttf" id="12"]
|
||||||
[ext_resource type="FontFile" uid="uid://d8jw11wrln33" path="res://Fonts/DTM-Sans.otf" id="13"]
|
[ext_resource type="FontFile" uid="uid://ds5fuu4nvfqdb" path="res://Fonts/DTM-Sans.otf" id="13"]
|
||||||
[ext_resource type="Script" uid="uid://dtk1i5ahr1pab" path="res://Scripts/UI/DWMenu.cs" id="14"]
|
[ext_resource type="Script" uid="uid://dtk1i5ahr1pab" path="res://Scripts/UI/DWMenu.cs" id="14"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/TPBar.tres" id="15"]
|
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/TPBar.tres" id="15"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/TP.tres" id="16"]
|
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/TP.tres" id="16"]
|
||||||
@ -76,10 +80,17 @@ exitMes = NodePath("CanvasLayer/Exit")
|
|||||||
metadata/_edit_vertical_guides_ = [-160.0, 160.0]
|
metadata/_edit_vertical_guides_ = [-160.0, 160.0]
|
||||||
metadata/_edit_horizontal_guides_ = [-120.0, 120.0]
|
metadata/_edit_horizontal_guides_ = [-120.0, 120.0]
|
||||||
|
|
||||||
|
[node name="BlackBackground" type="ColorRect" parent="."]
|
||||||
|
offset_left = -200.0
|
||||||
|
offset_top = -147.0
|
||||||
|
offset_right = 914.0
|
||||||
|
offset_bottom = 480.0
|
||||||
|
color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
offset = Vector2(320, 240)
|
offset = Vector2(384, 240)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
transform = Transform2D(2, 0, 0, 2, 320, 240)
|
transform = Transform2D(2, 0, 0, 2, 384, 240)
|
||||||
|
|
||||||
[node name="Textbox" type="NinePatchRect" parent="CanvasLayer" node_paths=PackedStringArray("portrait", "text", "promptText", "soul")]
|
[node name="Textbox" type="NinePatchRect" parent="CanvasLayer" node_paths=PackedStringArray("portrait", "text", "promptText", "soul")]
|
||||||
visible = false
|
visible = false
|
||||||
@ -201,6 +212,72 @@ theme_override_font_sizes/font_size = 13
|
|||||||
text = "Exiting..."
|
text = "Exiting..."
|
||||||
horizontal_alignment = 2
|
horizontal_alignment = 2
|
||||||
vertical_alignment = 2
|
vertical_alignment = 2
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="MobileControl" type="Node2D" parent="CanvasLayer"]
|
||||||
|
modulate = Color(1, 1, 1, 0.501961)
|
||||||
|
position = Vector2(30.5, -0.5)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="Joystick" type="Node2D" parent="CanvasLayer/MobileControl"]
|
||||||
|
position = Vector2(-92, 20)
|
||||||
|
|
||||||
|
[node name="Up" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Joystick"]
|
||||||
|
rotation = -1.5708
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("10_x3yn0")
|
||||||
|
action = "Up"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
|
[node name="Down" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Joystick"]
|
||||||
|
position = Vector2(19, 19)
|
||||||
|
rotation = 1.5708
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("10_x3yn0")
|
||||||
|
action = "Down"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
|
[node name="Left" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Joystick"]
|
||||||
|
position = Vector2(0, 19)
|
||||||
|
rotation = 3.14159
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("10_x3yn0")
|
||||||
|
action = "Left"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
|
[node name="Right" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Joystick"]
|
||||||
|
position = Vector2(19, 0)
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("10_x3yn0")
|
||||||
|
action = "Right"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
|
[node name="Buttons" type="Node2D" parent="CanvasLayer/MobileControl"]
|
||||||
|
position = Vector2(21, 25)
|
||||||
|
|
||||||
|
[node name="Z" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Buttons"]
|
||||||
|
position = Vector2(0, 8)
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("7_ny7u2")
|
||||||
|
passby_press = true
|
||||||
|
action = "Confirm"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
|
[node name="X" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Buttons"]
|
||||||
|
position = Vector2(20, -8)
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("8_x3yn0")
|
||||||
|
passby_press = true
|
||||||
|
action = "Cancel"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
|
[node name="C" type="TouchScreenButton" parent="CanvasLayer/MobileControl/Buttons"]
|
||||||
|
position = Vector2(40, -24)
|
||||||
|
scale = Vector2(0.25, 0.25)
|
||||||
|
texture_normal = ExtResource("9_1w2xm")
|
||||||
|
passby_press = true
|
||||||
|
action = "Menu"
|
||||||
|
visibility_mode = 1
|
||||||
|
|
||||||
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("contents", "cover")]
|
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("contents", "cover")]
|
||||||
zoom = Vector2(2, 2)
|
zoom = Vector2(2, 2)
|
||||||
@ -230,6 +307,7 @@ anchor_right = 1.0
|
|||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
[node name="LWMenu" type="Control" parent="Camera2D/GUI" node_paths=PackedStringArray("mainText", "statText", "mainOpt", "mainText2", "itemOpt", "soul", "bigBox")]
|
[node name="LWMenu" type="Control" parent="Camera2D/GUI" node_paths=PackedStringArray("mainText", "statText", "mainOpt", "mainText2", "itemOpt", "soul", "bigBox")]
|
||||||
visible = false
|
visible = false
|
||||||
@ -279,7 +357,7 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_constants/line_separation = -1
|
theme_override_constants/line_separation = -1
|
||||||
theme_override_fonts/normal_font = ExtResource("12")
|
theme_override_fonts/normal_font = ExtResource("12")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "Cole
|
text = "Cole
|
||||||
LV 1
|
LV 1
|
||||||
@ -788,7 +866,7 @@ offset_top = -75.0
|
|||||||
offset_right = -43.0
|
offset_right = -43.0
|
||||||
offset_bottom = -59.0
|
offset_bottom = -59.0
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]Clover"
|
text = "[center]Clover"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -800,7 +878,7 @@ offset_right = 122.0
|
|||||||
offset_bottom = -22.0
|
offset_bottom = -22.0
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "Weapon
|
text = "Weapon
|
||||||
Armor1
|
Armor1
|
||||||
@ -814,7 +892,7 @@ offset_right = 6.0
|
|||||||
offset_bottom = 72.0
|
offset_bottom = 72.0
|
||||||
theme_override_constants/line_separation = -1
|
theme_override_constants/line_separation = -1
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "Attack: 999
|
text = "Attack: 999
|
||||||
Defense: 999
|
Defense: 999
|
||||||
@ -833,7 +911,7 @@ offset_right = 197.0
|
|||||||
offset_bottom = 73.0
|
offset_bottom = 73.0
|
||||||
theme_override_constants/line_separation = -1
|
theme_override_constants/line_separation = -1
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "Weapon
|
text = "Weapon
|
||||||
Armor1
|
Armor1
|
||||||
@ -871,7 +949,7 @@ offset_right = 261.0
|
|||||||
offset_bottom = 157.0
|
offset_bottom = 157.0
|
||||||
theme_override_constants/line_separation = 2
|
theme_override_constants/line_separation = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
@ -885,7 +963,7 @@ offset_right = 261.0
|
|||||||
offset_bottom = 53.0
|
offset_bottom = 53.0
|
||||||
theme_override_constants/line_separation = 2
|
theme_override_constants/line_separation = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "USE"
|
text = "USE"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -899,7 +977,7 @@ offset_right = 247.0
|
|||||||
offset_bottom = 32.0
|
offset_bottom = 32.0
|
||||||
theme_override_constants/line_separation = 2
|
theme_override_constants/line_separation = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "TOSS"
|
text = "TOSS"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -913,7 +991,7 @@ offset_right = 247.0
|
|||||||
offset_bottom = 32.0
|
offset_bottom = 32.0
|
||||||
theme_override_constants/line_separation = 2
|
theme_override_constants/line_separation = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "KEY"
|
text = "KEY"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -970,7 +1048,7 @@ offset_right = 318.0
|
|||||||
offset_bottom = 33.0
|
offset_bottom = 33.0
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "D$ 9999"
|
text = "D$ 9999"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -983,7 +1061,7 @@ offset_bottom = 23.0
|
|||||||
scale = Vector2(0.665, 2)
|
scale = Vector2(0.665, 2)
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("31")
|
theme_override_fonts/normal_font = ExtResource("31")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "SETTINGS"
|
text = "SETTINGS"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -996,7 +1074,7 @@ offset_top = 8.0
|
|||||||
offset_right = 320.0
|
offset_right = 320.0
|
||||||
offset_bottom = 37.0
|
offset_bottom = 37.0
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "aaa
|
text = "aaa
|
||||||
aaaa"
|
aaaa"
|
||||||
@ -1075,7 +1153,7 @@ offset_right = 325.0
|
|||||||
offset_bottom = 55.0
|
offset_bottom = 55.0
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "aaaa
|
text = "aaaa
|
||||||
aaaa"
|
aaaa"
|
||||||
@ -1090,7 +1168,7 @@ offset_right = 429.0
|
|||||||
offset_bottom = 55.0
|
offset_bottom = 55.0
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "aaaa
|
text = "aaaa
|
||||||
aaaa"
|
aaaa"
|
||||||
@ -1118,7 +1196,7 @@ offset_right = 320.0
|
|||||||
offset_bottom = 55.0
|
offset_bottom = 55.0
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("13")
|
theme_override_fonts/normal_font = ExtResource("13")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "aaaa
|
text = "aaaa
|
||||||
aaaa"
|
aaaa"
|
||||||
|
Binary file not shown.
@ -96,7 +96,7 @@ offset_top = -73.0
|
|||||||
offset_right = 78.0
|
offset_right = 78.0
|
||||||
offset_bottom = -33.0
|
offset_bottom = -33.0
|
||||||
theme_override_fonts/normal_font = ExtResource("8")
|
theme_override_fonts/normal_font = ExtResource("8")
|
||||||
theme_override_font_sizes/normal_font_size = 12
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[shake]Cole...!"
|
text = "[shake]Cole...!"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -137,7 +137,7 @@ offset_top = 6.0
|
|||||||
offset_right = 142.0
|
offset_right = 142.0
|
||||||
offset_bottom = 68.0
|
offset_bottom = 68.0
|
||||||
theme_override_fonts/normal_font = ExtResource("10")
|
theme_override_fonts/normal_font = ExtResource("10")
|
||||||
theme_override_font_sizes/normal_font_size = 16
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "* . . ."
|
text = "* . . ."
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -174,7 +174,7 @@ offset_top = 74.0
|
|||||||
offset_right = 142.0
|
offset_right = 142.0
|
||||||
offset_bottom = 94.0
|
offset_bottom = 94.0
|
||||||
theme_override_fonts/normal_font = ExtResource("11")
|
theme_override_fonts/normal_font = ExtResource("11")
|
||||||
theme_override_font_sizes/normal_font_size = 12
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "COLE LV 1 HP [img=7 color=#ffff00]res://Sprites/Menus/Menu Sprites/HPBar3.tres[/img][img=7 color=#ffff00]res://Sprites/Menus/Menu Sprites/HPBar3.tres[/img] 20 / 20"
|
text = "COLE LV 1 HP [img=7 color=#ffff00]res://Sprites/Menus/Menu Sprites/HPBar3.tres[/img][img=7 color=#ffff00]res://Sprites/Menus/Menu Sprites/HPBar3.tres[/img] 20 / 20"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
[gd_scene load_steps=10 format=4]
|
[gd_scene load_steps=10 format=3 uid="uid://dil1lmhskfcbj"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Bullets/MoveAhead.cs" id="1"]
|
[ext_resource type="Script" uid="uid://cms7aciv3ajt" path="res://Scripts/Bullets/MoveAhead.cs" id="1"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Bullets/Smoke.tres" id="2"]
|
[ext_resource type="Texture2D" path="res://Sprites/Bullets/Smoke.tres" id="2"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_k6xqa"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_k6xqa"]
|
||||||
radius = 17.0
|
radius = 17.0
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_6iwuj"]
|
[sub_resource type="Animation" id="Animation_6iwuj"]
|
||||||
length = 0.0010000000474974513
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@ -43,7 +43,7 @@ _data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_bwenb"]
|
[sub_resource type="Animation" id="Animation_bwenb"]
|
||||||
length = 0.0010000000474974513
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
[gd_scene load_steps=19 format=4]
|
[gd_scene load_steps=19 format=3 uid="uid://bnven10apnbkj"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Room.cs" id="1"]
|
[ext_resource type="Script" uid="uid://4qnuo8uar060" path="res://Scripts/Room.cs" id="1"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/nothing_but_the_truth.ogg" id="2"]
|
[ext_resource type="AudioStream" uid="uid://g75ctmjof4hy" path="res://Audio/Music/nothing_but_the_truth.ogg" id="2"]
|
||||||
[ext_resource type="TileSet" path="res://Sprites/Tileset.tres" id="3"]
|
[ext_resource type="TileSet" uid="uid://kjbjarxy0x15" path="res://Sprites/Tileset.tres" id="3"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/ChujinDWEvents.cs" id="4"]
|
[ext_resource type="Script" uid="uid://drm77u8ytskv7" path="res://Scripts/Events/ChujinDWEvents.cs" id="4"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Common/CanSpawn.cs" id="5"]
|
[ext_resource type="Script" uid="uid://dwqe4ft584vio" path="res://Scripts/Common/CanSpawn.cs" id="5"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/KanakoPC.tscn" id="6"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/KanakoPC.tscn" id="6"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Entities/NPC.cs" id="7"]
|
[ext_resource type="Script" uid="uid://c3sqc5ivg1mtv" path="res://Scripts/Entities/NPC.cs" id="7"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Actions/PlayDialogue.cs" id="8"]
|
[ext_resource type="Script" uid="uid://17m84i3bovc2" path="res://Scripts/Actions/PlayDialogue.cs" id="8"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/EventCaller.cs" id="9"]
|
[ext_resource type="Script" uid="uid://bja8iltcbmvrn" path="res://Scripts/Events/EventCaller.cs" id="9"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Loadzone.cs" id="10"]
|
[ext_resource type="Script" uid="uid://jnhf46l2j8xf" path="res://Scripts/Loadzone.cs" id="10"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Sounds/snd_dooropen_ch1.wav" id="11"]
|
[ext_resource type="AudioStream" uid="uid://djevh6m6xd8r7" path="res://Audio/Sounds/snd_dooropen_ch1.wav" id="11"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Sounds/snd_doorclose_ch1.wav" id="12"]
|
[ext_resource type="AudioStream" uid="uid://cj1nx5mbp8teg" path="res://Audio/Sounds/snd_doorclose_ch1.wav" id="12"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Check.cs" id="13"]
|
[ext_resource type="Script" uid="uid://cmth1k2shrt3t" path="res://Scripts/Check.cs" id="13"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lcv38"]
|
[sub_resource type="Resource" id="Resource_lcv38"]
|
||||||
script = ExtResource("8")
|
script = ExtResource("8")
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
[gd_scene load_steps=20 format=4]
|
[gd_scene load_steps=20 format=3 uid="uid://bv4p0i227opt5"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Room.cs" id="1"]
|
[ext_resource type="Script" uid="uid://4qnuo8uar060" path="res://Scripts/Room.cs" id="1"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/computer_ambience.ogg" id="2"]
|
[ext_resource type="AudioStream" uid="uid://ch7rricuxm4d" path="res://Audio/Music/computer_ambience.ogg" id="2"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/enter_axis.ogg" id="3"]
|
[ext_resource type="AudioStream" uid="uid://bn573nxhuws27" path="res://Audio/Music/enter_axis.ogg" id="3"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/guns_blazing_geno.ogg" id="4"]
|
[ext_resource type="AudioStream" uid="uid://dhu8kqi855lw1" path="res://Audio/Music/guns_blazing_geno.ogg" id="4"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/steamworks_overworld.ogg" id="5"]
|
[ext_resource type="AudioStream" uid="uid://d0x01vtygk2sq" path="res://Audio/Music/steamworks_overworld.ogg" id="5"]
|
||||||
[ext_resource type="TileSet" path="res://Sprites/Tileset.tres" id="6"]
|
[ext_resource type="TileSet" uid="uid://kjbjarxy0x15" path="res://Sprites/Tileset.tres" id="6"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/ChujinDWEvents.cs" id="7"]
|
[ext_resource type="Script" uid="uid://drm77u8ytskv7" path="res://Scripts/Events/ChujinDWEvents.cs" id="7"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Axis.tscn" id="8"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Axis.tscn" id="8"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Entities/NPC.cs" id="9"]
|
[ext_resource type="Script" uid="uid://c3sqc5ivg1mtv" path="res://Scripts/Entities/NPC.cs" id="9"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Props/SavePoint.tscn" id="10"]
|
[ext_resource type="PackedScene" path="res://Objects/Props/SavePoint.tscn" id="10"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Loadzone.cs" id="11"]
|
[ext_resource type="Script" uid="uid://jnhf46l2j8xf" path="res://Scripts/Loadzone.cs" id="11"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Check.cs" id="12"]
|
[ext_resource type="Script" uid="uid://cmth1k2shrt3t" path="res://Scripts/Check.cs" id="12"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/TILES.png" id="13"]
|
[ext_resource type="Texture2D" uid="uid://by6qx200nrtq1" path="res://Sprites/TILES.png" id="13"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bop7k"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bop7k"]
|
||||||
size = Vector2(20, 40)
|
size = Vector2(20, 40)
|
||||||
@ -21,7 +21,7 @@ size = Vector2(20, 40)
|
|||||||
size = Vector2(27, 258)
|
size = Vector2(27, 258)
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_od6p4"]
|
[sub_resource type="Animation" id="Animation_od6p4"]
|
||||||
length = 0.0010000000474974513
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
[gd_scene load_steps=9 format=4]
|
[gd_scene load_steps=9 format=3 uid="uid://dw04bnil2fg48"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Room.cs" id="1"]
|
[ext_resource type="Script" uid="uid://4qnuo8uar060" path="res://Scripts/Room.cs" id="1"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Sounds/snd_step1.wav" id="2"]
|
[ext_resource type="AudioStream" uid="uid://bwx0pl0lknc7x" path="res://Audio/Sounds/snd_step1.wav" id="2"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/computer_ambience.ogg" id="3"]
|
[ext_resource type="AudioStream" uid="uid://ch7rricuxm4d" path="res://Audio/Music/computer_ambience.ogg" id="3"]
|
||||||
[ext_resource type="TileSet" path="res://Sprites/Tileset.tres" id="4"]
|
[ext_resource type="TileSet" uid="uid://kjbjarxy0x15" path="res://Sprites/Tileset.tres" id="4"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Props/SavePoint.tscn" id="5"]
|
[ext_resource type="PackedScene" path="res://Objects/Props/SavePoint.tscn" id="5"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Props/Boxes.tres" id="6"]
|
[ext_resource type="Texture2D" path="res://Sprites/Props/Boxes.tres" id="6"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Loadzone.cs" id="7"]
|
[ext_resource type="Script" uid="uid://jnhf46l2j8xf" path="res://Scripts/Loadzone.cs" id="7"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f15l6"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f15l6"]
|
||||||
size = Vector2(20, 40)
|
size = Vector2(20, 40)
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
[gd_scene load_steps=17 format=4]
|
[gd_scene load_steps=17 format=3 uid="uid://b627jxlfivt65"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Room.cs" id="1"]
|
[ext_resource type="Script" uid="uid://4qnuo8uar060" path="res://Scripts/Room.cs" id="1"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/steamworks_overworld.ogg" id="2"]
|
[ext_resource type="AudioStream" uid="uid://d0x01vtygk2sq" path="res://Audio/Music/steamworks_overworld.ogg" id="2"]
|
||||||
[ext_resource type="TileSet" path="res://Sprites/Tileset.tres" id="3"]
|
[ext_resource type="TileSet" uid="uid://kjbjarxy0x15" path="res://Sprites/Tileset.tres" id="3"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/ChujinDWEvents.cs" id="4"]
|
[ext_resource type="Script" uid="uid://drm77u8ytskv7" path="res://Scripts/Events/ChujinDWEvents.cs" id="4"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Props/bg stuff.png" id="5"]
|
[ext_resource type="Texture2D" uid="uid://3mc0ocko1cag" path="res://Sprites/Props/bg stuff.png" id="5"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Check.cs" id="6"]
|
[ext_resource type="Script" uid="uid://cmth1k2shrt3t" path="res://Scripts/Check.cs" id="6"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Props/chujindwbg.png" id="7"]
|
[ext_resource type="Texture2D" uid="uid://b7a3vklyry1tn" path="res://Sprites/Props/chujindwbg.png" id="7"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Loadzone.cs" id="8"]
|
[ext_resource type="Script" uid="uid://jnhf46l2j8xf" path="res://Scripts/Loadzone.cs" id="8"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Wrench.tscn" id="9"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Wrench.tscn" id="9"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Entities/NPC.cs" id="10"]
|
[ext_resource type="Script" uid="uid://c3sqc5ivg1mtv" path="res://Scripts/Entities/NPC.cs" id="10"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Actions/PlayDialogue.cs" id="11"]
|
[ext_resource type="Script" uid="uid://17m84i3bovc2" path="res://Scripts/Actions/PlayDialogue.cs" id="11"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/EventCaller.cs" id="12"]
|
[ext_resource type="Script" uid="uid://bja8iltcbmvrn" path="res://Scripts/Events/EventCaller.cs" id="12"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ited8"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ited8"]
|
||||||
size = Vector2(9, 13)
|
size = Vector2(9, 13)
|
||||||
|
@ -701,7 +701,7 @@ offset_right = 151.0
|
|||||||
offset_bottom = 171.0
|
offset_bottom = 171.0
|
||||||
theme_override_colors/default_color = Color(1, 1, 1, 0.501961)
|
theme_override_colors/default_color = Color(1, 1, 1, 0.501961)
|
||||||
theme_override_fonts/normal_font = ExtResource("18")
|
theme_override_fonts/normal_font = ExtResource("18")
|
||||||
theme_override_font_sizes/normal_font_size = 12
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "INTERACT: Punch
|
text = "INTERACT: Punch
|
||||||
CANCEL: Defend
|
CANCEL: Defend
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
[gd_scene load_steps=25 format=4]
|
[gd_scene load_steps=25 format=3 uid="uid://ccsk6i208lria"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Room.cs" id="1"]
|
[ext_resource type="Script" uid="uid://4qnuo8uar060" path="res://Scripts/Room.cs" id="1"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/basement.ogg" id="2"]
|
[ext_resource type="AudioStream" uid="uid://cxul7aplxggby" path="res://Audio/Music/basement.ogg" id="2"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/kanako.ogg" id="3"]
|
[ext_resource type="AudioStream" uid="uid://cmwngw61w3lh6" path="res://Audio/Music/kanako.ogg" id="3"]
|
||||||
[ext_resource type="TileSet" path="res://Sprites/Tileset.tres" id="4"]
|
[ext_resource type="TileSet" uid="uid://kjbjarxy0x15" path="res://Sprites/Tileset.tres" id="4"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Check.cs" id="5"]
|
[ext_resource type="Script" uid="uid://cmth1k2shrt3t" path="res://Scripts/Check.cs" id="5"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/TILES.png" id="6"]
|
[ext_resource type="Texture2D" uid="uid://by6qx200nrtq1" path="res://Sprites/TILES.png" id="6"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Common/CanSpawn.cs" id="7"]
|
[ext_resource type="Script" uid="uid://dwqe4ft584vio" path="res://Scripts/Common/CanSpawn.cs" id="7"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/SchoolDWEvents.cs" id="8"]
|
[ext_resource type="Script" uid="uid://dyugjcaqve1ol" path="res://Scripts/Events/SchoolDWEvents.cs" id="8"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Kanako.tscn" id="9"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Kanako.tscn" id="9"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Entities/NPC.cs" id="10"]
|
[ext_resource type="Script" uid="uid://c3sqc5ivg1mtv" path="res://Scripts/Entities/NPC.cs" id="10"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Warden.tscn" id="11"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Warden.tscn" id="11"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Loadzone.cs" id="12"]
|
[ext_resource type="Script" uid="uid://jnhf46l2j8xf" path="res://Scripts/Loadzone.cs" id="12"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Penceller.tscn" id="13"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Penceller.tscn" id="13"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Actions/PlayDialogue.cs" id="14"]
|
[ext_resource type="Script" uid="uid://17m84i3bovc2" path="res://Scripts/Actions/PlayDialogue.cs" id="14"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Bearing.tscn" id="15"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Bearing.tscn" id="15"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yyc40"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yyc40"]
|
||||||
@ -292,7 +292,7 @@ pos = Vector2(-368, -8)
|
|||||||
position = Vector2(390, 0)
|
position = Vector2(390, 0)
|
||||||
shape = SubResource("RectangleShape2D_a2dvu")
|
shape = SubResource("RectangleShape2D_a2dvu")
|
||||||
|
|
||||||
[node name="Penceller" parent="." node_paths=PackedStringArray("extras") instance=ExtResource("13")]
|
[node name="Penceller" parent="." instance=ExtResource("13")]
|
||||||
position = Vector2(-216, 27)
|
position = Vector2(-216, 27)
|
||||||
script = ExtResource("10")
|
script = ExtResource("10")
|
||||||
spawn = null
|
spawn = null
|
||||||
@ -301,7 +301,6 @@ neededVar = PackedInt32Array()
|
|||||||
neededCapture = 17
|
neededCapture = 17
|
||||||
behaviours = [SubResource("Resource_hxo6x"), SubResource("Resource_imf0a")]
|
behaviours = [SubResource("Resource_hxo6x"), SubResource("Resource_imf0a")]
|
||||||
direction = 3
|
direction = 3
|
||||||
extras = []
|
|
||||||
|
|
||||||
[node name="Bearing" parent="." instance=ExtResource("15")]
|
[node name="Bearing" parent="." instance=ExtResource("15")]
|
||||||
position = Vector2(-54, -49)
|
position = Vector2(-54, -49)
|
||||||
|
@ -1,33 +1,33 @@
|
|||||||
[gd_scene load_steps=68 format=4]
|
[gd_scene load_steps=68 format=3 uid="uid://c5awcrhcbt2ty"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Room.cs" id="1"]
|
[ext_resource type="Script" uid="uid://4qnuo8uar060" path="res://Scripts/Room.cs" id="1"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/the_wild_east.ogg" id="2"]
|
[ext_resource type="AudioStream" uid="uid://c2soa53ka86lw" path="res://Audio/Music/the_wild_east.ogg" id="2"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/birdsofafeather.ogg" id="3"]
|
[ext_resource type="AudioStream" uid="uid://cyiqndrtn7472" path="res://Audio/Music/birdsofafeather.ogg" id="3"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/acquittal.ogg" id="4"]
|
[ext_resource type="AudioStream" uid="uid://dy45av85jxh0" path="res://Audio/Music/acquittal.ogg" id="4"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/delivery.ogg" id="5"]
|
[ext_resource type="AudioStream" uid="uid://tw64qrl7djoe" path="res://Audio/Music/delivery.ogg" id="5"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Music/mixin_it_up.ogg" id="6"]
|
[ext_resource type="AudioStream" uid="uid://bqo1caalxce7d" path="res://Audio/Music/mixin_it_up.ogg" id="6"]
|
||||||
[ext_resource type="TileSet" path="res://Sprites/Tileset.tres" id="7"]
|
[ext_resource type="TileSet" uid="uid://kjbjarxy0x15" path="res://Sprites/Tileset.tres" id="7"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/LWDay1Events.cs" id="8"]
|
[ext_resource type="Script" uid="uid://dhcedeox12us1" path="res://Scripts/Events/LWDay1Events.cs" id="8"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Sounds/snd_phone.wav" id="9"]
|
[ext_resource type="AudioStream" uid="uid://cdo0g7e8lkm26" path="res://Audio/Sounds/snd_phone.wav" id="9"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Props/bg stuff.png" id="10"]
|
[ext_resource type="Texture2D" uid="uid://3mc0ocko1cag" path="res://Sprites/Props/bg stuff.png" id="10"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Common/CanSpawn.cs" id="11"]
|
[ext_resource type="Script" uid="uid://dwqe4ft584vio" path="res://Scripts/Common/CanSpawn.cs" id="11"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Check.cs" id="12"]
|
[ext_resource type="Script" uid="uid://cmth1k2shrt3t" path="res://Scripts/Check.cs" id="12"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Events/LWDay2Events.cs" id="13"]
|
[ext_resource type="Script" uid="uid://dk0p008j3ftk1" path="res://Scripts/Events/LWDay2Events.cs" id="13"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/TILES.png" id="14"]
|
[ext_resource type="Texture2D" uid="uid://by6qx200nrtq1" path="res://Sprites/TILES.png" id="14"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Buildings/spr_martlets_house.png" id="15"]
|
[ext_resource type="Texture2D" uid="uid://bfcp1obflnrcp" path="res://Sprites/Buildings/spr_martlets_house.png" id="15"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Buildings/spr_martlets_houseLight.png" id="16"]
|
[ext_resource type="Texture2D" uid="uid://clx7xdtxt5wj8" path="res://Sprites/Buildings/spr_martlets_houseLight.png" id="16"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Loadzone.cs" id="17"]
|
[ext_resource type="Script" uid="uid://jnhf46l2j8xf" path="res://Scripts/Loadzone.cs" id="17"]
|
||||||
[ext_resource type="AudioStream" path="res://Audio/Sounds/snd_escaped.wav" id="18"]
|
[ext_resource type="AudioStream" uid="uid://diry686f6lv8c" path="res://Audio/Sounds/snd_escaped.wav" id="18"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Buildings/ts_starlo_house.png" id="19"]
|
[ext_resource type="Texture2D" uid="uid://dxw1bpiimjky3" path="res://Sprites/Buildings/ts_starlo_house.png" id="19"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Buildings/ts_starlo_houseLight.png" id="20"]
|
[ext_resource type="Texture2D" uid="uid://bdebtg5ep0p2h" path="res://Sprites/Buildings/ts_starlo_houseLight.png" id="20"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Buildings/spr_wild_east_feisty_house.png" id="21"]
|
[ext_resource type="Texture2D" uid="uid://csnfu1v8y8ggv" path="res://Sprites/Buildings/spr_wild_east_feisty_house.png" id="21"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Buildings/spr_wild_east_feisty_houseLight.png" id="22"]
|
[ext_resource type="Texture2D" uid="uid://cuadlx7njti0f" path="res://Sprites/Buildings/spr_wild_east_feisty_houseLight.png" id="22"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Props/Bench.tscn" id="23"]
|
[ext_resource type="PackedScene" path="res://Objects/Props/Bench.tscn" id="23"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Props/nightbg.png" id="24"]
|
[ext_resource type="Texture2D" uid="uid://dnanfdhjq4k4n" path="res://Sprites/Props/nightbg.png" id="24"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Martlet.tscn" id="25"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Martlet.tscn" id="25"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/CactusGirl.tscn" id="26"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/CactusGirl.tscn" id="26"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Entities/NPC.cs" id="27"]
|
[ext_resource type="Script" uid="uid://c3sqc5ivg1mtv" path="res://Scripts/Entities/NPC.cs" id="27"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Actions/PlayDialogue.cs" id="28"]
|
[ext_resource type="Script" uid="uid://17m84i3bovc2" path="res://Scripts/Actions/PlayDialogue.cs" id="28"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Ed.tscn" id="29"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Ed.tscn" id="29"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/MailWhale.tscn" id="30"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/MailWhale.tscn" id="30"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/Characters/Kanako.tscn" id="31"]
|
[ext_resource type="PackedScene" path="res://Objects/Characters/Kanako.tscn" id="31"]
|
||||||
@ -60,7 +60,7 @@ size = Vector2(20, 120)
|
|||||||
size = Vector2(59, 14)
|
size = Vector2(59, 14)
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_ns6o8"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_ns6o8"]
|
||||||
radius = 14.580599784851074
|
radius = 14.5806
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_d138w"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_d138w"]
|
||||||
size = Vector2(18, 53)
|
size = Vector2(18, 53)
|
||||||
@ -105,8 +105,8 @@ needs = [7]
|
|||||||
limit = null
|
limit = null
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_sr8hc"]
|
[sub_resource type="Resource" id="Resource_sr8hc"]
|
||||||
script = ExtResource("28")
|
|
||||||
resource_name = "Day1"
|
resource_name = "Day1"
|
||||||
|
script = ExtResource("28")
|
||||||
id = "EdD1"
|
id = "EdD1"
|
||||||
isEvent = false
|
isEvent = false
|
||||||
facePlayer = false
|
facePlayer = false
|
||||||
@ -117,8 +117,8 @@ needs = null
|
|||||||
limit = null
|
limit = null
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_5l5kx"]
|
[sub_resource type="Resource" id="Resource_5l5kx"]
|
||||||
script = ExtResource("28")
|
|
||||||
resource_name = "Day 1 - 2"
|
resource_name = "Day 1 - 2"
|
||||||
|
script = ExtResource("28")
|
||||||
id = "EdD1-2"
|
id = "EdD1-2"
|
||||||
isEvent = false
|
isEvent = false
|
||||||
facePlayer = false
|
facePlayer = false
|
||||||
@ -649,9 +649,9 @@ follow_viewport = false
|
|||||||
[node name="night" type="TextureRect" parent="BG"]
|
[node name="night" type="TextureRect" parent="BG"]
|
||||||
modulate = Color(1, 0.744154, 0.609087, 1)
|
modulate = Color(1, 0.744154, 0.609087, 1)
|
||||||
z_index = -3000
|
z_index = -3000
|
||||||
offset_top = 52.79999923706055
|
offset_top = 52.8
|
||||||
offset_right = 2025.0
|
offset_right = 2025.0
|
||||||
offset_bottom = 243.8000030517578
|
offset_bottom = 243.8
|
||||||
texture = ExtResource("24")
|
texture = ExtResource("24")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 1
|
stretch_mode = 1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=4 format=4]
|
[gd_scene load_steps=4 format=3 uid="uid://d1jn0d3ie61l"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/ActionCommand.tres" id="1"]
|
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/ActionCommand.tres" id="1"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Battle/AttackActionCommand.cs" id="2"]
|
[ext_resource type="Script" uid="uid://bclgqdjomqe1n" path="res://Scripts/Battle/AttackActionCommand.cs" id="2"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/ActionCommand2.tres" id="3"]
|
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/ActionCommand2.tres" id="3"]
|
||||||
|
|
||||||
[node name="ActionCommand" type="Sprite2D" node_paths=PackedStringArray("bar")]
|
[node name="ActionCommand" type="Sprite2D" node_paths=PackedStringArray("bar")]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
[gd_scene load_steps=4 format=3]
|
[gd_scene load_steps=4 format=3 uid="uid://du31ha8pnahkk"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/bubblebox.png" id="1"]
|
[ext_resource type="Texture2D" uid="uid://dvlhpjphue0yl" path="res://Sprites/Menus/bubblebox.png" id="1"]
|
||||||
[ext_resource type="FontFile" path="res://Fonts/dotumche-pixel.ttf" id="2"]
|
[ext_resource type="FontFile" uid="uid://ytkax5t82t5" path="res://Fonts/dotumche-pixel.ttf" id="2"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/bubbletail.png" id="3"]
|
[ext_resource type="Texture2D" uid="uid://dymka7gu5opca" path="res://Sprites/Menus/bubbletail.png" id="3"]
|
||||||
|
|
||||||
[node name="Control" type="Control"]
|
[node name="Control" type="Control"]
|
||||||
z_index = 3000
|
z_index = 3000
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=3 format=4]
|
[gd_scene load_steps=3 format=3 uid="uid://c8ksni5hsd22l"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Characters/clover battle.png" id="1"]
|
[ext_resource type="Texture2D" uid="uid://ltba3mmowfa2" path="res://Sprites/Characters/clover battle.png" id="1"]
|
||||||
[ext_resource type="FontFile" path="res://Fonts/DTM-Sans.otf" id="2"]
|
[ext_resource type="FontFile" uid="uid://ds5fuu4nvfqdb" path="res://Fonts/DTM-Sans.otf" id="2"]
|
||||||
|
|
||||||
[node name="GameOverOpt" type="Control"]
|
[node name="GameOverOpt" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=5 format=4]
|
[gd_scene load_steps=5 format=3 uid="uid://c8vmsrfaqfm56"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" path="res://Fonts/DTM-Sans.otf" id="1"]
|
[ext_resource type="FontFile" uid="uid://ds5fuu4nvfqdb" path="res://Fonts/DTM-Sans.otf" id="1"]
|
||||||
[ext_resource type="Script" path="res://Scripts/UI/GenericList.cs" id="2"]
|
[ext_resource type="Script" uid="uid://b00mj8vjvkgs0" path="res://Scripts/UI/GenericList.cs" id="2"]
|
||||||
[ext_resource type="PackedScene" path="res://Objects/UI/ScrollBar.tscn" id="3"]
|
[ext_resource type="PackedScene" path="res://Objects/UI/ScrollBar.tscn" id="3"]
|
||||||
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/Soul.tres" id="4"]
|
[ext_resource type="Texture2D" path="res://Sprites/Menus/Menu Sprites/Soul.tres" id="4"]
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ clip_contents = false
|
|||||||
offset_right = 175.0
|
offset_right = 175.0
|
||||||
offset_bottom = 152.0
|
offset_bottom = 152.0
|
||||||
theme_override_fonts/normal_font = ExtResource("1")
|
theme_override_fonts/normal_font = ExtResource("1")
|
||||||
theme_override_font_sizes/normal_font_size = 12
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
script = ExtResource("2")
|
script = ExtResource("2")
|
||||||
soul = NodePath("Sprite2D")
|
soul = NodePath("Sprite2D")
|
||||||
|
@ -324,7 +324,7 @@ offset_bottom = 23.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]Cole LV 1 DLV 1
|
text = "[center]Cole LV 1 DLV 1
|
||||||
Location
|
Location
|
||||||
@ -358,7 +358,7 @@ offset_bottom = 23.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]Cole LV 1 DLV 1
|
text = "[center]Cole LV 1 DLV 1
|
||||||
Location
|
Location
|
||||||
@ -392,7 +392,7 @@ offset_bottom = 23.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme_override_fonts/normal_font = ExtResource("5")
|
theme_override_fonts/normal_font = ExtResource("5")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]Cole LV 1 DLV 1
|
text = "[center]Cole LV 1 DLV 1
|
||||||
Location
|
Location
|
||||||
|
@ -15,6 +15,6 @@ offset_top = -20.0
|
|||||||
offset_right = 184.0
|
offset_right = 184.0
|
||||||
offset_bottom = 26.0
|
offset_bottom = 26.0
|
||||||
theme_override_fonts/normal_font = ExtResource("2")
|
theme_override_fonts/normal_font = ExtResource("2")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
|
@ -90,7 +90,7 @@ offset_bottom = 20.0
|
|||||||
scale = Vector2(0.63, 0.98)
|
scale = Vector2(0.63, 0.98)
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("4")
|
theme_override_fonts/normal_font = ExtResource("4")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "COLE"
|
text = "COLE"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
|
@ -10,7 +10,7 @@ clip_contents = false
|
|||||||
offset_right = 175.0
|
offset_right = 175.0
|
||||||
offset_bottom = 152.0
|
offset_bottom = 152.0
|
||||||
theme_override_fonts/normal_font = ExtResource("1")
|
theme_override_fonts/normal_font = ExtResource("1")
|
||||||
theme_override_font_sizes/normal_font_size = 12
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "Music
|
text = "Music
|
||||||
Sound
|
Sound
|
||||||
|
@ -48,7 +48,7 @@ theme_override_constants/shadow_offset_y = 1
|
|||||||
theme_override_constants/shadow_offset_x = 1
|
theme_override_constants/shadow_offset_x = 1
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("4")
|
theme_override_fonts/normal_font = ExtResource("4")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]Storage"
|
text = "[center]Storage"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -65,7 +65,7 @@ theme_override_constants/shadow_offset_y = 1
|
|||||||
theme_override_constants/shadow_offset_x = 1
|
theme_override_constants/shadow_offset_x = 1
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("4")
|
theme_override_fonts/normal_font = ExtResource("4")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]On Hand"
|
text = "[center]On Hand"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@ -82,7 +82,7 @@ theme_override_constants/shadow_offset_y = 1
|
|||||||
theme_override_constants/shadow_offset_x = 1
|
theme_override_constants/shadow_offset_x = 1
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("4")
|
theme_override_fonts/normal_font = ExtResource("4")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "item1
|
text = "item1
|
||||||
item2
|
item2
|
||||||
@ -105,7 +105,7 @@ theme_override_constants/shadow_offset_y = 1
|
|||||||
theme_override_constants/shadow_offset_x = 1
|
theme_override_constants/shadow_offset_x = 1
|
||||||
theme_override_constants/line_separation = 3
|
theme_override_constants/line_separation = 3
|
||||||
theme_override_fonts/normal_font = ExtResource("4")
|
theme_override_fonts/normal_font = ExtResource("4")
|
||||||
theme_override_font_sizes/normal_font_size = 11
|
theme_override_font_sizes/normal_font_size = 13
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "item1
|
text = "item1
|
||||||
item2
|
item2
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
[gd_scene load_steps=3 format=3]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/UI/TouchControls.cs" id="1_42104"]
|
|
||||||
[ext_resource type="Script" path="res://Scripts/UI/Joystick.cs" id="2_fufkg"]
|
|
||||||
|
|
||||||
[node name="TouchControls" type="CanvasLayer"]
|
|
||||||
script = ExtResource("1_42104")
|
|
||||||
|
|
||||||
[node name="Joystick" type="Control" parent="."]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
script = ExtResource("2_fufkg")
|
|
||||||
|
|
||||||
[node name="OuterCircle" type="TextureRect" parent="Joystick"]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_top = -1.0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 39.0
|
|
||||||
|
|
||||||
[node name="DeadzoneCircle" type="TextureRect" parent="Joystick"]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="HandleCircle" type="TextureRect" parent="Joystick"]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="Buttons" type="Control" parent="."]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="ButtonZ" type="TextureButton" parent="Buttons"]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="ButtonX" type="TextureButton" parent="Buttons"]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="ButtonC" type="TextureButton" parent="Buttons"]
|
|
||||||
layout_mode = 0
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
|
|
1568
Scripts-new/Acts.cs
1568
Scripts-new/Acts.cs
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
uid://cu7yf03tw6v3w
|
|
@ -1,113 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Battle/AttackActionCommand.cs")]
|
|
||||||
public partial class AttackActionCommand : Sprite2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Sprite2D bar;
|
|
||||||
|
|
||||||
public Battlers linked;
|
|
||||||
|
|
||||||
public static bool same;
|
|
||||||
|
|
||||||
public bool active;
|
|
||||||
|
|
||||||
private AttackActionCommand together;
|
|
||||||
|
|
||||||
private const float speed = 2f;
|
|
||||||
|
|
||||||
public static float actionCD;
|
|
||||||
|
|
||||||
private static List<AttackActionCommand> all = new List<AttackActionCommand>();
|
|
||||||
|
|
||||||
private static List<AttackActionCommand> other = new List<AttackActionCommand>();
|
|
||||||
|
|
||||||
public const float dist = 15f;
|
|
||||||
|
|
||||||
public const float missX = -45f;
|
|
||||||
|
|
||||||
private static readonly Color bright = new Color(20f, 20f, 20f, 0f);
|
|
||||||
|
|
||||||
private static readonly Color critical = new Color(1f, 20f, 1f, 0f);
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
base.Modulate = Main.instance.partyColors[linked.internalID];
|
|
||||||
bar.Position = new Vector2(Main.RandomRange(75, 150), 0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
bar.Position += Vector2.Left * Main.deltaTime * 2f;
|
|
||||||
if (bar.Position.X <= -45f)
|
|
||||||
{
|
|
||||||
Activate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Activate()
|
|
||||||
{
|
|
||||||
if (!active)
|
|
||||||
{
|
|
||||||
active = true;
|
|
||||||
Coroutine.Start(DoAttack());
|
|
||||||
base.ProcessMode = ProcessModeEnum.Disabled;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator DoAttack()
|
|
||||||
{
|
|
||||||
linked.entity.anim.Play();
|
|
||||||
bool miss = !active || bar.Position.X >= 35f || bar.Position.X <= -45f;
|
|
||||||
bool part = false;
|
|
||||||
float p = 1f - Mathf.Clamp(Mathf.Abs(-28f - bar.Position.X), 0f, 60f) / 60f;
|
|
||||||
if (actionCD <= 0f)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_laz_c_ch1.wav");
|
|
||||||
}
|
|
||||||
if (p >= 0.9f)
|
|
||||||
{
|
|
||||||
if (actionCD <= 0f)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_criticalswing_ch1.wav");
|
|
||||||
}
|
|
||||||
p *= 1.15f;
|
|
||||||
}
|
|
||||||
actionCD = 3f;
|
|
||||||
for (float a = 0f; a < 15f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
if (!miss)
|
|
||||||
{
|
|
||||||
bar.Scale = Vector2.One.Lerp(new Vector2(1.5f, 2f), a / 10f);
|
|
||||||
}
|
|
||||||
if (a >= 5f && !part)
|
|
||||||
{
|
|
||||||
if (linked.selectedAction[1] < BattleDR.current.enemies.Count)
|
|
||||||
{
|
|
||||||
Main.Particle("AttackShine", linked.atkPartOffset, 4086, linked.entity);
|
|
||||||
Main.Particle(Party.party[linked.internalID].hitPart, BattleDR.current.enemies[linked.selectedAction[1]].GetCenter(), 4086, BattleDR.current.enemies[linked.selectedAction[1]].entity);
|
|
||||||
}
|
|
||||||
part = true;
|
|
||||||
}
|
|
||||||
bar.SelfModulate = Main.colorWhite.Lerp(miss ? Main.colorClear : ((p >= 0.9f) ? critical : bright), a / 15f);
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
bar.Visible = false;
|
|
||||||
if (linked.selectedAction[1] < BattleDR.current.enemies.Count)
|
|
||||||
{
|
|
||||||
BattleDR.current.DoDamage(linked, BattleDR.current.enemies[linked.selectedAction[1]], p, miss);
|
|
||||||
}
|
|
||||||
for (float a = 0f; a < 30f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
linked.entity.currentAnim = Entity.Animations.BattleIdle;
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cj55ml1t758xv
|
|
@ -1,34 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Envirioment/AudioOnTouch.cs")]
|
|
||||||
public partial class AudioOnTouch : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStreamPlayer player;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private VisibleOnScreenNotifier2D screen;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float screenShake = 1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float shakeTime = 20f;
|
|
||||||
|
|
||||||
public void Sound()
|
|
||||||
{
|
|
||||||
if ((screen == null || screen.IsOnScreen()) && !TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
if (screenShake > 0f)
|
|
||||||
{
|
|
||||||
CameraController.Shake(shakeTime, screenShake);
|
|
||||||
}
|
|
||||||
player?.Play();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cqnsh8631iv6o
|
|
@ -1,148 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/AxisPunch.cs")]
|
|
||||||
public partial class AxisPunch : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D hand;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D impactFX;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D smoke;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Sprite2D handSpr;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Texture2D[] anim;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private CollisionShape2D collider;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float time = 60f;
|
|
||||||
|
|
||||||
private int state;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float scd;
|
|
||||||
|
|
||||||
private float multi = 1f;
|
|
||||||
|
|
||||||
private Vector2 temp;
|
|
||||||
|
|
||||||
private const float y = -60f;
|
|
||||||
|
|
||||||
private const float ty = 25f;
|
|
||||||
|
|
||||||
private bool canSmoke;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
if (BattleDR.current.enemies[0].HPPercent() <= 0.5f || BattleDR.current.enemies[0].spare >= 50)
|
|
||||||
{
|
|
||||||
time /= 1.5f;
|
|
||||||
canSmoke = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
switch (state)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
if (cd < time / 2f)
|
|
||||||
{
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
hand.Position = hand.Position.Lerp(new Vector2(ToLocal(BattleDR.current.soul.GlobalPosition).X, -60f), Main.deltaTime * 0.15f);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
((Blank)hand).grazed = false;
|
|
||||||
temp = hand.GlobalPosition;
|
|
||||||
state = 1;
|
|
||||||
cd = 0f;
|
|
||||||
handSpr.Texture = anim[1];
|
|
||||||
Audio.PlaySound("snd_boost.wav");
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
if (cd < time / 2f)
|
|
||||||
{
|
|
||||||
hand.GlobalPosition = temp.Lerp(temp + Vector2.Up * 60f, cd / time / 2f);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (cd < time)
|
|
||||||
{
|
|
||||||
hand.Modulate = ((Common.SinOverTime(2.5f) > 0f) ? Main.colorDark : Main.colorWhite);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
state = 2;
|
|
||||||
hand.Modulate = Main.colorWhite;
|
|
||||||
temp = hand.GlobalPosition;
|
|
||||||
cd = 0f;
|
|
||||||
collider.SetDeferred("disabled", false);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
if (cd < time / 2.2f)
|
|
||||||
{
|
|
||||||
hand.GlobalPosition = temp.Lerp(new Vector2(hand.GlobalPosition.X, base.GlobalPosition.Y + BattleDR.current.activeBoard.boardSize.Y / 2f - 15f), cd / (time / 2.2f));
|
|
||||||
if (canSmoke)
|
|
||||||
{
|
|
||||||
if (scd <= 0f)
|
|
||||||
{
|
|
||||||
scd = 5f;
|
|
||||||
SpawnSmoke(multi);
|
|
||||||
multi += 0.1f;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
scd = 0f;
|
|
||||||
state = 3;
|
|
||||||
cd = 0f;
|
|
||||||
CameraController.Shake(15f);
|
|
||||||
Audio.PlaySound("snd_impact_ch1.wav");
|
|
||||||
Node2D node2D;
|
|
||||||
AddChild(node2D = (Node2D)impactFX.Duplicate(), forceReadableName: false, InternalMode.Disabled);
|
|
||||||
node2D.Position = new Vector2(hand.Position.X, BattleDR.current.activeBoard.boardSize.Y / 2f + -4f);
|
|
||||||
node2D.ProcessMode = ProcessModeEnum.Inherit;
|
|
||||||
if (canSmoke)
|
|
||||||
{
|
|
||||||
SpawnSmoke(multi);
|
|
||||||
}
|
|
||||||
multi = 1f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
if (cd >= time / 2f)
|
|
||||||
{
|
|
||||||
cd = 0f;
|
|
||||||
state = 0;
|
|
||||||
handSpr.Texture = anim[0];
|
|
||||||
collider.SetDeferred("disabled", true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SpawnSmoke(float m = 1f)
|
|
||||||
{
|
|
||||||
MoveAhead moveAhead = (MoveAhead)BattleDR.NewBullet(in smoke, hand.GlobalPosition, this);
|
|
||||||
moveAhead.speed = new Vector2(((moveAhead.GlobalPosition.X < BattleDR.current.soul.GlobalPosition.X) ? 0.25f : (-0.25f)) * m, -0.15f);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://d0j5m83sgav7h
|
|
@ -1,108 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/AxisSmoke.cs")]
|
|
||||||
public partial class AxisSmoke : Node2D
|
|
||||||
{
|
|
||||||
public partial class BulletData
|
|
||||||
{
|
|
||||||
public Node2D obj;
|
|
||||||
|
|
||||||
public float time;
|
|
||||||
|
|
||||||
public Vector2 startP;
|
|
||||||
|
|
||||||
public Vector2 targetP;
|
|
||||||
|
|
||||||
public Vector2 midP;
|
|
||||||
|
|
||||||
public Vector2 scale;
|
|
||||||
|
|
||||||
public const float bulTime = 80f;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D[] bullet;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float delay = 20f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream sound;
|
|
||||||
|
|
||||||
private List<BulletData> bullets = new List<BulletData>();
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float x;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
x = BattleDR.current.activeBoard.boardSize.X / 2.15f;
|
|
||||||
entity.anim.Play("SpinAtk");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _ExitTree()
|
|
||||||
{
|
|
||||||
entity.anim.Play("Idle");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (bullets.Count > 0)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < bullets.Count; i++)
|
|
||||||
{
|
|
||||||
bullets[i].time += Main.deltaTime;
|
|
||||||
if (bullets[i].time <= 80f)
|
|
||||||
{
|
|
||||||
bullets[i].obj.Scale = bullets[i].obj.Scale.Lerp(bullets[i].scale, Main.deltaTime * 0.1f);
|
|
||||||
bullets[i].obj.GlobalPosition = Common.Beizier(bullets[i].startP, bullets[i].midP, bullets[i].targetP, Mathf.SmoothStep(0f, 1f, bullets[i].time / 80f));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bullets[i].obj.GlobalPosition += Vector2.Up * Main.deltaTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cd = delay;
|
|
||||||
if (sound != null)
|
|
||||||
{
|
|
||||||
Audio.PlaySound(sound);
|
|
||||||
}
|
|
||||||
bullets.Add(new BulletData());
|
|
||||||
List<BulletData> list = bullets;
|
|
||||||
list[list.Count - 1].obj = BattleDR.NewBullet(in bullet[Main.RandomRange(0, bullet.Length - 1)], entity.GlobalPosition + Vector2.Up * 16f, this);
|
|
||||||
List<BulletData> list2 = bullets;
|
|
||||||
BulletData bulletData = list2[list2.Count - 1];
|
|
||||||
List<BulletData> list3 = bullets;
|
|
||||||
bulletData.scale = list3[list3.Count - 1].obj.Scale;
|
|
||||||
List<BulletData> list4 = bullets;
|
|
||||||
list4[list4.Count - 1].obj.Scale *= 0.5f;
|
|
||||||
List<BulletData> list5 = bullets;
|
|
||||||
BulletData bulletData2 = list5[list5.Count - 1];
|
|
||||||
List<BulletData> list6 = bullets;
|
|
||||||
bulletData2.startP = list6[list6.Count - 1].obj.GlobalPosition;
|
|
||||||
List<BulletData> list7 = bullets;
|
|
||||||
list7[list7.Count - 1].targetP = new Vector2(Main.RandomRange(0f - x, x), 0f);
|
|
||||||
List<BulletData> list8 = bullets;
|
|
||||||
BulletData bulletData3 = list8[list8.Count - 1];
|
|
||||||
List<BulletData> list9 = bullets;
|
|
||||||
float num = list9[list9.Count - 1].startP.X;
|
|
||||||
List<BulletData> list10 = bullets;
|
|
||||||
bulletData3.midP = new Vector2(Mathf.Lerp(num, list10[list10.Count - 1].targetP.X, 0.5f), BattleDR.current.activeBoard.boardSize.Y / 1.75f);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://djc4mp7a0mhd
|
|
@ -1,131 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/AxisSphere.cs")]
|
|
||||||
public partial class AxisSphere : Node2D
|
|
||||||
{
|
|
||||||
public partial class Sphere
|
|
||||||
{
|
|
||||||
public AxisSphereSphere obj;
|
|
||||||
|
|
||||||
public Area2D area;
|
|
||||||
|
|
||||||
public bool inside;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D sphere;
|
|
||||||
|
|
||||||
private List<Sphere> spheres = new List<Sphere>();
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private bool weak;
|
|
||||||
|
|
||||||
private bool done;
|
|
||||||
|
|
||||||
private Coroutine shoot;
|
|
||||||
|
|
||||||
private Rect2 rect;
|
|
||||||
|
|
||||||
private const float spd = 1.1f;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
rect = new Rect2(base.GlobalPosition, BattleDR.current.activeBoard.boardSize * 0.9f);
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
weak = entity.battleData.HPPercent() <= 0.5f || entity.battleData.spare >= 50;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
if (weak)
|
|
||||||
{
|
|
||||||
BattleDR.current.activeBoard.timer *= 1.35f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (done)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Coroutine coroutine = shoot;
|
|
||||||
if (coroutine == null || coroutine.done)
|
|
||||||
{
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
shoot = Coroutine.Start(Shoot());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator Shoot()
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_electric_talk.wav");
|
|
||||||
entity.anim.Play("Shoot1");
|
|
||||||
for (float a = 0f; a < 30f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Audio.PlaySound("snd_swing.wav");
|
|
||||||
entity.anim.Play("Shoot2");
|
|
||||||
for (float a = 0f; a < 7f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
NewSphere(spheres.Count > 0);
|
|
||||||
for (float a = 0f; a < 20f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
if (spheres.Count == ((!weak) ? 1 : 2))
|
|
||||||
{
|
|
||||||
done = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cd = 25f;
|
|
||||||
}
|
|
||||||
entity.anim.Play("Idle");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SphereHit(Node other)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_ceroba_shield_impact.wav", 1f, 0.9f);
|
|
||||||
spheres[0].obj.speed = -spheres[0].obj.GlobalPosition.DirectionTo(spheres[1].obj.GlobalPosition);
|
|
||||||
spheres[1].obj.speed = -spheres[1].obj.GlobalPosition.DirectionTo(spheres[0].obj.GlobalPosition);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void NewSphere(bool blue = false)
|
|
||||||
{
|
|
||||||
AxisSphereSphere axisSphereSphere = (AxisSphereSphere)BattleDR.NewBullet(in this.sphere, entity.GlobalPosition + new Vector2(-10f, -35f), this);
|
|
||||||
Sphere sphere = new Sphere
|
|
||||||
{
|
|
||||||
obj = axisSphereSphere,
|
|
||||||
area = axisSphereSphere.GetChild<Area2D>(0)
|
|
||||||
};
|
|
||||||
sphere.area.BodyEntered += axisSphereSphere.WallHit;
|
|
||||||
axisSphereSphere.data = sphere;
|
|
||||||
if (spheres.Count == 0)
|
|
||||||
{
|
|
||||||
sphere.area.AreaEntered += SphereHit;
|
|
||||||
}
|
|
||||||
spheres.Add(sphere);
|
|
||||||
axisSphereSphere.speed = Vector2.Left.Rotated(Mathf.DegToRad(Main.RandomRange(-25, 25))) * 1.1f * ((!blue) ? 1.2f : 1f);
|
|
||||||
if (blue)
|
|
||||||
{
|
|
||||||
axisSphereSphere.Modulate = Main.colorCyan;
|
|
||||||
axisSphereSphere.type = IBullet.Type.Blue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://beqn0eh2v8ggf
|
|
@ -1,37 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/AxisSphereSphere.cs")]
|
|
||||||
public partial class AxisSphereSphere : MoveAhead
|
|
||||||
{
|
|
||||||
public AxisSphere.Sphere data;
|
|
||||||
|
|
||||||
public void WallHit(Node other)
|
|
||||||
{
|
|
||||||
if (!other.HasMeta("Side"))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!data.inside)
|
|
||||||
{
|
|
||||||
data.inside = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Audio.PlaySound("snd_impact_ch1.wav", 1f, 1.1f);
|
|
||||||
switch ((DWMenu.BoardSides)(int)other.GetMeta("Side"))
|
|
||||||
{
|
|
||||||
case DWMenu.BoardSides.Up:
|
|
||||||
case DWMenu.BoardSides.Down:
|
|
||||||
speed = new Vector2(speed.X, 0f - speed.Y);
|
|
||||||
break;
|
|
||||||
case DWMenu.BoardSides.Left:
|
|
||||||
case DWMenu.BoardSides.Right:
|
|
||||||
speed = new Vector2(0f - speed.X, speed.Y);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://dq2ph5tywlk8v
|
|
@ -1,69 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/AxisSpin.cs")]
|
|
||||||
public partial class AxisSpin : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D[] bullet;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream sound;
|
|
||||||
|
|
||||||
private float cd = 30f;
|
|
||||||
|
|
||||||
private float current;
|
|
||||||
|
|
||||||
private int z;
|
|
||||||
|
|
||||||
private const float time = 150f;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
entity.anim.Play("SpinAtk");
|
|
||||||
z = entity.ZIndex;
|
|
||||||
entity.ZIndex = 4000;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
float s = Mathf.DegToRad(Mathf.Lerp(0f, 360f, current / 150f));
|
|
||||||
entity.GlobalPosition = entity.GlobalPosition.Lerp(base.GlobalPosition + new Vector2(Mathf.Cos(s) * BattleDR.current.activeBoard.boardSize.X, Mathf.Sin(s) * (BattleDR.current.activeBoard.boardSize.Y / 1.25f) + 20f), Main.deltaTime * 0.1f);
|
|
||||||
current = Main.Repeat(current + Main.deltaTime, 150f);
|
|
||||||
if (cd <= 0f)
|
|
||||||
{
|
|
||||||
Audio.PlaySound(sound, 1f, 1.1f);
|
|
||||||
for (int i = 0; i < 2; i++)
|
|
||||||
{
|
|
||||||
MoveAhead moveAhead = (MoveAhead)BattleDR.NewBullet(in bullet[Main.RandomRange(0, bullet.Length - 1)], entity.GlobalPosition + Vector2.Up * 16f, this);
|
|
||||||
if (i == 0)
|
|
||||||
{
|
|
||||||
moveAhead.speed = moveAhead.GlobalPosition.DirectionTo(BattleDR.current.soul.GlobalPosition) * 0.7f;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
moveAhead.speed = Vector2.Up.Rotated(Mathf.DegToRad(Main.RandomRange(0, 360))) * 1f;
|
|
||||||
moveAhead.Scale *= 0.75f;
|
|
||||||
moveAhead.lifeTime *= 0.5f;
|
|
||||||
}
|
|
||||||
cd = Main.RandomRange(20, 40);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _ExitTree()
|
|
||||||
{
|
|
||||||
entity.anim.Play("Idle");
|
|
||||||
entity.ZIndex = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://dv42yuje8vn1c
|
|
@ -1,57 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BasicGravity.cs")]
|
|
||||||
public partial class BasicGravity : Node2D, IBullet
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 direction;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 gravity = new Vector2(0f, 0.05f);
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float time = -100f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float rotate;
|
|
||||||
|
|
||||||
public bool grazed { get; set; }
|
|
||||||
|
|
||||||
public Node2D node { get; set; }
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int HP { get; set; } = 1;
|
|
||||||
|
|
||||||
public AnimationPlayer anim { get; set; }
|
|
||||||
|
|
||||||
public BulletGenerator generatedFrom { get; set; }
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public IBullet.Type type { get; set; }
|
|
||||||
|
|
||||||
public Action<Node> onShot { get; set; }
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (time > -50f)
|
|
||||||
{
|
|
||||||
time -= Main.deltaTime;
|
|
||||||
if (time <= 0f)
|
|
||||||
{
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (rotate != 0f)
|
|
||||||
{
|
|
||||||
base.RotationDegrees += rotate * Main.deltaTime;
|
|
||||||
}
|
|
||||||
direction += gravity * Main.deltaTime;
|
|
||||||
base.GlobalPosition += direction * Main.deltaTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cxwy6r4gajaq2
|
|
@ -1,66 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.Collections;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[GlobalClass]
|
|
||||||
[ScriptPath("res://Scripts/Data/BattleBlurbs.cs")]
|
|
||||||
public partial class BattleBlurbs : Resource
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool cant;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int turn = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int lastAct = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int weight = 1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int bulletBoardID = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int overrideIndex = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float hpPercent = -1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 size = new Vector2(55f, 32f);
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 offset = new Vector2(-15f, 0f);
|
|
||||||
|
|
||||||
[ExportSubgroup("Flags", "")]
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> internalNeed;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> internalLimit;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> battleNeed;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> battleLimit;
|
|
||||||
|
|
||||||
public bool Can(Battlers caller)
|
|
||||||
{
|
|
||||||
if (!cant && (turn <= -1 || BattleDR.current.turn == turn) && (hpPercent <= 0f || caller.HPPercent() <= hpPercent) && (lastAct <= -1 || caller.lastestAct.Contains(lastAct)) && (bulletBoardID <= -1 || bulletBoardID == BattleDR.current.lastBoard) && (internalNeed == null || internalNeed.Count == 0 || internalNeed.All((StringName x) => caller.internalFlags.Contains(x))) && (internalLimit == null || internalLimit.Count == 0 || !internalLimit.All((StringName x) => caller.internalFlags.Contains(x))) && (battleNeed == null || battleNeed.Count == 0 || battleNeed.All((StringName x) => BattleDR.current.tempFlags.Contains(x))))
|
|
||||||
{
|
|
||||||
if (battleLimit != null && battleLimit.Count != 0)
|
|
||||||
{
|
|
||||||
return !battleLimit.All((StringName x) => BattleDR.current.tempFlags.Contains(x));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://dminjgamfoxlb
|
|
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
uid://bs0gycxghi731
|
|
@ -1,14 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[GlobalClass]
|
|
||||||
[ScriptPath("res://Scripts/Resources/BattleData.cs")]
|
|
||||||
public partial class BattleData : Resource
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Battlers[] enemies;
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cefh6fj2ylnee
|
|
@ -1,8 +0,0 @@
|
|||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Battle/BattleUT.cs")]
|
|
||||||
public partial class BattleUT : Node
|
|
||||||
{
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://bqlqaq6on6j3n
|
|
@ -1,343 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.Collections;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[GlobalClass]
|
|
||||||
[ScriptPath("res://Scripts/Data/Battlers.cs")]
|
|
||||||
public partial class Battlers : Resource, BattleStats
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public string name;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<int> partyAction = new Array<int> { 0 };
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<Acts.IDs> acts;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 center = new Vector2(0f, -16f);
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 positionOffset;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 defaultBubbleSize;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 cageSize = Vector2.One;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Acts.IDs callEventOnDefeat = Acts.IDs.None;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Acts.IDs callOnFullMercy = Acts.IDs.None;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Acts.IDs callEventOnExecution = Acts.IDs.None;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool isOutlaw;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool noMercy;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool spareMax;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool dontFlee;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float resistArrest = -1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int hasSpecial = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public BulletConds[] bulletBoards;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public string diagSound;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int[] blurbOrder;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int[] randomBlurbs;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<Array<Variant>> animOverrides;
|
|
||||||
|
|
||||||
public int[] atkMod;
|
|
||||||
|
|
||||||
public int[] defMod;
|
|
||||||
|
|
||||||
public float bulletSpeedMod = 1f;
|
|
||||||
|
|
||||||
public HashSet<StringName> internalFlags = new HashSet<StringName>();
|
|
||||||
|
|
||||||
public Coroutine animRoutine;
|
|
||||||
|
|
||||||
public Entity.IDs id;
|
|
||||||
|
|
||||||
public Entity.Animations defaultIdle = Entity.Animations.BattleIdle;
|
|
||||||
|
|
||||||
public bool acted;
|
|
||||||
|
|
||||||
public bool enemy;
|
|
||||||
|
|
||||||
public bool doMagicMenu;
|
|
||||||
|
|
||||||
public bool fleeing;
|
|
||||||
|
|
||||||
public bool skipAttack;
|
|
||||||
|
|
||||||
public bool lockAnim;
|
|
||||||
|
|
||||||
public StringName splitPart;
|
|
||||||
|
|
||||||
public int[] selectedAction;
|
|
||||||
|
|
||||||
public SaveFile.Flags partyFlag;
|
|
||||||
|
|
||||||
public int spare;
|
|
||||||
|
|
||||||
public int internalID;
|
|
||||||
|
|
||||||
public int posID;
|
|
||||||
|
|
||||||
public int actFrame;
|
|
||||||
|
|
||||||
public int blurbOverride = -1;
|
|
||||||
|
|
||||||
public int title;
|
|
||||||
|
|
||||||
public int MAGIC;
|
|
||||||
|
|
||||||
public int hpLastTurn;
|
|
||||||
|
|
||||||
public int blurbCount;
|
|
||||||
|
|
||||||
public List<int> lastestAct = new List<int>();
|
|
||||||
|
|
||||||
public Vector2 atkPartOffset;
|
|
||||||
|
|
||||||
public Vector2 startPos;
|
|
||||||
|
|
||||||
public StringName hitPart = "KanakoHit";
|
|
||||||
|
|
||||||
public Texture2D weaponIcon;
|
|
||||||
|
|
||||||
public Entity entity;
|
|
||||||
|
|
||||||
public Entity oEntity;
|
|
||||||
|
|
||||||
private static readonly StringName specialString = "Special";
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public BattleBlurbs[] blurbs;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int HP { get; set; } = 100;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int MAXHP { get; set; } = 100;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int ATK { get; set; } = 25;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int DEF { get; set; } = 10;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int LV { get; set; }
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int MONEY { get; set; }
|
|
||||||
|
|
||||||
public int ATKBONUS { get; set; }
|
|
||||||
|
|
||||||
public int HPBONUS { get; set; }
|
|
||||||
|
|
||||||
public int DEFBONUS { get; set; }
|
|
||||||
|
|
||||||
public int[] EQUIP { get; set; } = new int[3] { -1, -1, -1 };
|
|
||||||
|
|
||||||
public bool CanAct()
|
|
||||||
{
|
|
||||||
if (HP > 0)
|
|
||||||
{
|
|
||||||
return !acted;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float HPPercent()
|
|
||||||
{
|
|
||||||
return (float)HP / (float)MAXHP;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vector2 GetCenter()
|
|
||||||
{
|
|
||||||
return entity.sprite.RegionRect.Size.Y / 2f * Vector2.Up;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool HasEquip(Items.IDs[] equip)
|
|
||||||
{
|
|
||||||
bool flag = false;
|
|
||||||
for (int i = 0; i < 3; i++)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < equip.Length; j++)
|
|
||||||
{
|
|
||||||
if (EQUIP[i] == (int)equip[j])
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!flag)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float GetProgress()
|
|
||||||
{
|
|
||||||
return Mathf.Max(1f - HPPercent(), (float)spare / 100f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanSpare()
|
|
||||||
{
|
|
||||||
if (noMercy)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (spare < 95)
|
|
||||||
{
|
|
||||||
if (!spareMax)
|
|
||||||
{
|
|
||||||
return HPPercent() < 0.2f;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanSpecial()
|
|
||||||
{
|
|
||||||
if (hasSpecial > -1 && (spare >= 80 || HPPercent() <= 0.2f))
|
|
||||||
{
|
|
||||||
HashSet<StringName> hashSet = internalFlags;
|
|
||||||
if (hashSet == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return !hashSet.Contains(specialString);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddBonus(bool increaseLV = false)
|
|
||||||
{
|
|
||||||
ATKBONUS += 5;
|
|
||||||
HPBONUS += 10;
|
|
||||||
HP += 10;
|
|
||||||
DEFBONUS += 5;
|
|
||||||
if (increaseLV)
|
|
||||||
{
|
|
||||||
LV++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Heal(int amt = -1, bool playSound = true)
|
|
||||||
{
|
|
||||||
if (amt == -1)
|
|
||||||
{
|
|
||||||
HP = MAXHP;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HP = Mathf.Clamp(HP + amt, 0, MAXHP);
|
|
||||||
}
|
|
||||||
if (playSound)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_power.wav");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Delete()
|
|
||||||
{
|
|
||||||
entity?.QueueFree();
|
|
||||||
Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetTitle()
|
|
||||||
{
|
|
||||||
if (LV == 0)
|
|
||||||
{
|
|
||||||
LV = 1;
|
|
||||||
}
|
|
||||||
switch (id)
|
|
||||||
{
|
|
||||||
case Entity.IDs.Clover:
|
|
||||||
if (SaveFile.HasFlag(SaveFile.Flags.WeirdStart))
|
|
||||||
{
|
|
||||||
title = 5;
|
|
||||||
}
|
|
||||||
else if (SaveFile.HasFlag(SaveFile.Flags.AteMoss))
|
|
||||||
{
|
|
||||||
title = 4;
|
|
||||||
}
|
|
||||||
else if (SaveFile.HasFlag(SaveFile.Flags.WardenExposited))
|
|
||||||
{
|
|
||||||
title = 3;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
title = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case Entity.IDs.Kanako:
|
|
||||||
if (SaveFile.HasFlag(SaveFile.Flags.WeirdStart))
|
|
||||||
{
|
|
||||||
title = 6;
|
|
||||||
}
|
|
||||||
else if (SaveFile.HasFlag(SaveFile.Flags.WardenExposited))
|
|
||||||
{
|
|
||||||
title = 7;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
title = 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case Entity.IDs.Axis:
|
|
||||||
if (SaveFile.HasFlag(SaveFile.Flags.AxisTrashEvent))
|
|
||||||
{
|
|
||||||
title = 8;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
title = 2;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case Entity.IDs.Melody:
|
|
||||||
title = 0;
|
|
||||||
break;
|
|
||||||
case Entity.IDs.June:
|
|
||||||
title = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://dpob8slsd3d78
|
|
@ -1,610 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Events/BearFortDuoMinigame.cs")]
|
|
||||||
public partial class BearFortDuoMinigame : EventCaller
|
|
||||||
{
|
|
||||||
public partial class Balls
|
|
||||||
{
|
|
||||||
public Sprite2D obj;
|
|
||||||
|
|
||||||
public BearFortDuoMinigame parent;
|
|
||||||
|
|
||||||
public Vector2 target;
|
|
||||||
|
|
||||||
public Vector2 mid;
|
|
||||||
|
|
||||||
public Vector2 start;
|
|
||||||
|
|
||||||
public float time;
|
|
||||||
|
|
||||||
private Area2D area;
|
|
||||||
|
|
||||||
private bool delete;
|
|
||||||
|
|
||||||
private float current;
|
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
BearFortDuoMinigame bearFortDuoMinigame = parent;
|
|
||||||
Sprite2D obj = new Sprite2D
|
|
||||||
{
|
|
||||||
Texture = parent.ball.Texture,
|
|
||||||
Position = parent.baller.Position + new Vector2(20f, -50f)
|
|
||||||
};
|
|
||||||
Sprite2D node = obj;
|
|
||||||
this.obj = obj;
|
|
||||||
bearFortDuoMinigame.AddChild(node, forceReadableName: false, InternalMode.Disabled);
|
|
||||||
time = Main.RandomRange(180, 300);
|
|
||||||
start = this.obj.GlobalPosition;
|
|
||||||
if (Main.RandomRange(0, 10) < 2)
|
|
||||||
{
|
|
||||||
target = new Vector2(parent.kanako.GlobalPosition.X, 30f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
target = new Vector2(Main.RandomRange(-170, -72), 30f);
|
|
||||||
}
|
|
||||||
mid = new Vector2(target.X, -550f);
|
|
||||||
this.obj.AddChild(area = new Area2D
|
|
||||||
{
|
|
||||||
CollisionLayer = 4u,
|
|
||||||
CollisionMask = 4u
|
|
||||||
}, forceReadableName: false, InternalMode.Disabled);
|
|
||||||
area.AddChild(new CollisionShape2D
|
|
||||||
{
|
|
||||||
Shape = new CircleShape2D()
|
|
||||||
}, forceReadableName: false, InternalMode.Disabled);
|
|
||||||
area.SetMeta(parent.ballTag, this.obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Delete()
|
|
||||||
{
|
|
||||||
delete = true;
|
|
||||||
current = 0f;
|
|
||||||
area.SetDeferred("monitorable", false);
|
|
||||||
area.SetDeferred("monitoring", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update()
|
|
||||||
{
|
|
||||||
if (delete)
|
|
||||||
{
|
|
||||||
if (current < 30f)
|
|
||||||
{
|
|
||||||
current += Main.deltaTime;
|
|
||||||
obj.Modulate = Main.colorWhite.Lerp(Main.colorClear, current / 30f);
|
|
||||||
obj.Scale = Vector2.One.Lerp(Vector2.One * 1.2f, current / 30f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
parent.balls.Remove(this);
|
|
||||||
obj.QueueFree();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
obj.GlobalPosition = Common.Beizier(start, mid, target, current / time);
|
|
||||||
current += Main.deltaTime;
|
|
||||||
obj.RotationDegrees += Main.deltaTime;
|
|
||||||
if (current >= time)
|
|
||||||
{
|
|
||||||
Delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private RichTextLabel indicator;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private RichTextLabel help;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Sprite2D ball;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Sprite2D shootLine;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Entity baller;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D[] kPoints;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D[] cPoints;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Area2D[] collider;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D ballerMove;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D camPos;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D pencil;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D bridge;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D penceller;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D bridgeBlocker;
|
|
||||||
|
|
||||||
public Entity player;
|
|
||||||
|
|
||||||
public Entity kanako;
|
|
||||||
|
|
||||||
private int state = -1;
|
|
||||||
|
|
||||||
private int lives;
|
|
||||||
|
|
||||||
private int score;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float iframes;
|
|
||||||
|
|
||||||
private float pencilCD;
|
|
||||||
|
|
||||||
private Coroutine shoot;
|
|
||||||
|
|
||||||
private Coroutine tossing;
|
|
||||||
|
|
||||||
private Vector2 ballerpos;
|
|
||||||
|
|
||||||
private int[] pos = new int[2];
|
|
||||||
|
|
||||||
private static readonly Dictionary<int, int> count = new Dictionary<int, int>
|
|
||||||
{
|
|
||||||
{ 2, 3 },
|
|
||||||
{ 3, 2 },
|
|
||||||
{ 4, 1 }
|
|
||||||
};
|
|
||||||
|
|
||||||
private List<Balls> balls = new List<Balls>();
|
|
||||||
|
|
||||||
public const float height = -300f;
|
|
||||||
|
|
||||||
private readonly Vector2 colOffset = new Vector2(0f, -20f);
|
|
||||||
|
|
||||||
public readonly StringName ballTag = "BBall";
|
|
||||||
|
|
||||||
public void StartEvent()
|
|
||||||
{
|
|
||||||
Main.inEvent = Coroutine.Start(BBallTalk());
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerator BBallTalk()
|
|
||||||
{
|
|
||||||
if (SaveFile.HasFlag(SaveFile.Flags.BBallPity2) && !SaveFile.HasFlag(SaveFile.Flags.BBallPitied))
|
|
||||||
{
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallPitied);
|
|
||||||
Room.current.eventPointers[0].QueueFree();
|
|
||||||
TextSystem.GetText("BBallPity");
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BearFortLeftMinigame);
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Coroutine w = Coroutine.Start(BridgeOpen());
|
|
||||||
while (!w.done)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
if (!SaveFile.HasFlag(SaveFile.Flags.BBallTalk1))
|
|
||||||
{
|
|
||||||
TextSystem.GetText("BearFortBBall1");
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
if (!SaveFile.HasFlag(SaveFile.Flags.WeirdStart) && TextSystem.lastPrompt == 0)
|
|
||||||
{
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!SaveFile.HasFlag(SaveFile.Flags.BBallTalk2))
|
|
||||||
{
|
|
||||||
TextSystem.GetText("BBallTalk1.5");
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
if (TextSystem.lastPrompt == 0)
|
|
||||||
{
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (SaveFile.HasFlag(SaveFile.Flags.BearFortLeftMinigame))
|
|
||||||
{
|
|
||||||
TextSystem.GetText("BBallAfter");
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
TextSystem.GetText("BBallRepeat");
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
if (TextSystem.lastPrompt == 1)
|
|
||||||
{
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
StartGame();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void StartGame()
|
|
||||||
{
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallPlayedOnce);
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallTalk2);
|
|
||||||
state = 0;
|
|
||||||
pos[0] = 1;
|
|
||||||
score = 0;
|
|
||||||
lives = 3;
|
|
||||||
pencilCD = 150f;
|
|
||||||
help.Text = "[center][color=gray]" + Texts.FindDiag("BBallInstructions")[0].text;
|
|
||||||
pos[1] = 1;
|
|
||||||
ballerpos = baller.GlobalPosition;
|
|
||||||
player = Player.instance;
|
|
||||||
kanako = Player.instance.followers[0];
|
|
||||||
kanako.anim.Play(SaveFile.HasFlag(SaveFile.Flags.WeirdStart) ? "Stand" : "Surprise");
|
|
||||||
kanako.sprite.FlipH = true;
|
|
||||||
player.sprite.FlipH = true;
|
|
||||||
baller.sprite.FlipH = true;
|
|
||||||
baller.anim.Play("Idle");
|
|
||||||
player.anim.Play("BattleIdle");
|
|
||||||
CameraController.instance.follow = null;
|
|
||||||
kanako.doTrail = true;
|
|
||||||
player.doTrail = true;
|
|
||||||
Audio.PlaySound("snd_weaponpull.wav");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
if (iframes > 0f)
|
|
||||||
{
|
|
||||||
iframes -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
switch (state)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
Audio.ChangeMusic(null);
|
|
||||||
cd = 60f;
|
|
||||||
state = 1;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (cd <= 0f)
|
|
||||||
{
|
|
||||||
help.Visible = true;
|
|
||||||
Room.current.DoMusic(1);
|
|
||||||
IndicatorCD();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5:
|
|
||||||
if (cd <= 0f)
|
|
||||||
{
|
|
||||||
IndicatorCD();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
{
|
|
||||||
if (!Audio.music.Playing)
|
|
||||||
{
|
|
||||||
Main.inEvent = Coroutine.Start(End(score >= 10));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (pencilCD > 0f)
|
|
||||||
{
|
|
||||||
pencilCD -= Main.deltaTime;
|
|
||||||
if (pencil.Visible)
|
|
||||||
{
|
|
||||||
pencil.GlobalPosition += Vector2.Right * Main.deltaTime * 2f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_arrow.wav");
|
|
||||||
Main.SetActive(pencil, state: true);
|
|
||||||
pencil.GlobalPosition = new Vector2(-300f, player.GlobalPosition.Y - 16f);
|
|
||||||
pencilCD = Main.RandomRange(180, 250);
|
|
||||||
}
|
|
||||||
if (help.Visible)
|
|
||||||
{
|
|
||||||
help.Visible = false;
|
|
||||||
shootLine.Visible = true;
|
|
||||||
}
|
|
||||||
if (shoot == null || shoot.done)
|
|
||||||
{
|
|
||||||
if (Input.IsActionJustPressed(Main.keys[4]))
|
|
||||||
{
|
|
||||||
shoot = Coroutine.Start(Shoot());
|
|
||||||
}
|
|
||||||
if (Input.IsActionJustPressed(Main.keys[0]))
|
|
||||||
{
|
|
||||||
if (pos[0] > 0)
|
|
||||||
{
|
|
||||||
pos[0]--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (Input.IsActionJustPressed(Main.keys[1]) && pos[0] < 2)
|
|
||||||
{
|
|
||||||
pos[0]++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Input.IsActionJustPressed(Main.keys[2]))
|
|
||||||
{
|
|
||||||
if (pos[1] > 0)
|
|
||||||
{
|
|
||||||
pos[1]--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (Input.IsActionJustPressed(Main.keys[3]) && pos[1] < 2)
|
|
||||||
{
|
|
||||||
pos[1]++;
|
|
||||||
}
|
|
||||||
if (cd <= 0f && (tossing == null || tossing.done))
|
|
||||||
{
|
|
||||||
tossing = Coroutine.Start(TossBall());
|
|
||||||
}
|
|
||||||
for (int num = balls.Count - 1; num >= 0; num--)
|
|
||||||
{
|
|
||||||
balls[num].Update();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (state > -1)
|
|
||||||
{
|
|
||||||
Player.instance.canInput = false;
|
|
||||||
CameraController.instance.GlobalPosition = CameraController.instance.GlobalPosition.Lerp(camPos.GlobalPosition, 0.2f * Main.deltaTime);
|
|
||||||
kanako.GlobalPosition = kanako.GlobalPosition.Lerp(kPoints[pos[1]].GlobalPosition, 0.2f * Main.deltaTime);
|
|
||||||
player.GlobalPosition = player.GlobalPosition.Lerp(cPoints[pos[0]].GlobalPosition, 0.2f * Main.deltaTime);
|
|
||||||
baller.GlobalPosition = baller.GlobalPosition.Lerp(ballerMove.GlobalPosition, 0.2f * Main.deltaTime);
|
|
||||||
collider[0].GlobalPosition = kanako.GlobalPosition + colOffset;
|
|
||||||
collider[1].GlobalPosition = player.GlobalPosition + colOffset;
|
|
||||||
shootLine.GlobalPosition = new Vector2(shootLine.GlobalPosition.X, player.GlobalPosition.Y - 16f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator Shoot()
|
|
||||||
{
|
|
||||||
bool hit = false;
|
|
||||||
player.anim.Play("AttackReady");
|
|
||||||
for (float a = 0f; a < 7f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < balls.Count; i++)
|
|
||||||
{
|
|
||||||
if (balls[i].obj.GlobalPosition.X > -170f && Mathf.Abs(balls[i].obj.GlobalPosition.Y - shootLine.GlobalPosition.Y) < 17f)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_bomb.wav");
|
|
||||||
balls[i].Delete();
|
|
||||||
score++;
|
|
||||||
indicator.Text = score.ToString().PadLeft(2, '0');
|
|
||||||
hit = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!hit)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_curtgunshot.ogg");
|
|
||||||
BattleDR.ShowFloatingText("MISS", player.GlobalPosition);
|
|
||||||
}
|
|
||||||
for (float a = 0f; a < 25f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
player.anim.Play("BattleIdle");
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator End(bool won = false)
|
|
||||||
{
|
|
||||||
Main.SetActive(pencil, state: false);
|
|
||||||
shootLine.Visible = false;
|
|
||||||
Coroutine coroutine = tossing;
|
|
||||||
if (coroutine != null && !coroutine.done)
|
|
||||||
{
|
|
||||||
Coroutine.Stop(tossing);
|
|
||||||
}
|
|
||||||
Coroutine coroutine2 = shoot;
|
|
||||||
if (coroutine2 != null && !coroutine2.done)
|
|
||||||
{
|
|
||||||
Coroutine.Stop(shoot);
|
|
||||||
}
|
|
||||||
Audio.ChangeMusic(null);
|
|
||||||
state = -1;
|
|
||||||
for (int num = balls.Count - 1; num >= 0; num--)
|
|
||||||
{
|
|
||||||
balls[num].Delete();
|
|
||||||
}
|
|
||||||
if (won)
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_won.wav");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_error.wav");
|
|
||||||
}
|
|
||||||
baller.anim.Play("Idle");
|
|
||||||
while (balls.Count > 0)
|
|
||||||
{
|
|
||||||
for (int num2 = balls.Count - 1; num2 >= 0; num2--)
|
|
||||||
{
|
|
||||||
balls[num2].Update();
|
|
||||||
}
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
player.LookAt(baller.GlobalPosition);
|
|
||||||
player.UpdateAnim(force: true);
|
|
||||||
kanako.LookAt(baller.GlobalPosition);
|
|
||||||
kanako.UpdateAnim(force: true);
|
|
||||||
if (won)
|
|
||||||
{
|
|
||||||
TextSystem.GetText("BBallWon");
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BearFortLeftMinigame);
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Coroutine w = Coroutine.Start(BridgeOpen());
|
|
||||||
while (w.done)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallKanakoTalk1);
|
|
||||||
if (!SaveFile.HasFlag(SaveFile.Flags.BBallPity1))
|
|
||||||
{
|
|
||||||
TextSystem.GetText("BBallLost");
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallPity1);
|
|
||||||
}
|
|
||||||
else if (!SaveFile.HasFlag(SaveFile.Flags.BBallPity2))
|
|
||||||
{
|
|
||||||
TextSystem.GetText("BBallLost2");
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallPity2);
|
|
||||||
}
|
|
||||||
while (TextSystem.instance.Visible)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Coroutine c = Coroutine.Start(CameraController.PanToObj(kanako));
|
|
||||||
while (!c.done)
|
|
||||||
{
|
|
||||||
baller.GlobalPosition = baller.GlobalPosition.Lerp(ballerpos, 0.1f * Main.deltaTime);
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
if (won)
|
|
||||||
{
|
|
||||||
penceller.GlobalPosition = new Vector2(-300f, -100f);
|
|
||||||
}
|
|
||||||
indicator.Text = "";
|
|
||||||
Room.current.DoMusic();
|
|
||||||
baller.Position = ballerpos;
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator BridgeOpen()
|
|
||||||
{
|
|
||||||
Audio.PlaySound("snd_shadowpendant_ch1.wav");
|
|
||||||
Main.SetActive(bridge, state: true);
|
|
||||||
for (float a = 0f; a < 60f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
bridge.Modulate = Main.colorClear.Lerp(Main.colorWhite, a / 60f);
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
bridgeBlocker.QueueFree();
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallKanakoTalk1);
|
|
||||||
SaveFile.AddFlag(SaveFile.Flags.BBallKanakoTalk2);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void KanakoHit(Node other)
|
|
||||||
{
|
|
||||||
if ((!other.HasMeta(ballTag) && other.GetParent() != pencil) || !(iframes <= 0f))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
iframes = 30f;
|
|
||||||
Audio.PlaySound("snd_hurt1.wav");
|
|
||||||
CameraController.Shake(10f);
|
|
||||||
bool flag = false;
|
|
||||||
for (int i = 0; i < balls.Count; i++)
|
|
||||||
{
|
|
||||||
if (other.GetParent() == balls[i].obj)
|
|
||||||
{
|
|
||||||
balls[i].Delete();
|
|
||||||
flag = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
BattleDR.ShowFloatingText("-1", kanako.GlobalPosition);
|
|
||||||
kanako.Shake(10f, 1f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
BattleDR.ShowFloatingText("-1", player.GlobalPosition);
|
|
||||||
player.Shake(10f, 1f);
|
|
||||||
}
|
|
||||||
lives--;
|
|
||||||
if (score > 0)
|
|
||||||
{
|
|
||||||
score--;
|
|
||||||
indicator.Text = score.ToString().PadLeft(2, '0');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerator TossBall()
|
|
||||||
{
|
|
||||||
cd = Main.RandomRange(80, 120);
|
|
||||||
baller.anim.Play("TossReady");
|
|
||||||
baller.Shake(Main.RandomRange(20, 40), 1f);
|
|
||||||
while (baller.shake > 0f)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
baller.anim.Play("TossDo");
|
|
||||||
balls.Add(new Balls
|
|
||||||
{
|
|
||||||
parent = this
|
|
||||||
});
|
|
||||||
List<Balls> list = balls;
|
|
||||||
list[list.Count - 1].Start();
|
|
||||||
for (float a = 0f; a < 30f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
baller.anim.Play("Idle");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void IndicatorCD()
|
|
||||||
{
|
|
||||||
player.doTrail = false;
|
|
||||||
kanako.doTrail = false;
|
|
||||||
state++;
|
|
||||||
if (state == 5)
|
|
||||||
{
|
|
||||||
cd = 60f;
|
|
||||||
indicator.Text = "GO";
|
|
||||||
}
|
|
||||||
else if (state == 6)
|
|
||||||
{
|
|
||||||
indicator.Text = "00";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cd = 60f;
|
|
||||||
indicator.Text = "0" + count[state];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://s4wyrur04jfq
|
|
@ -1,129 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BearingCart.cs")]
|
|
||||||
public partial class BearingCart : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D cartBase;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D entityPos;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D cartPos;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private int amt;
|
|
||||||
|
|
||||||
private int state;
|
|
||||||
|
|
||||||
private float delay;
|
|
||||||
|
|
||||||
private float cartSpeed;
|
|
||||||
|
|
||||||
private bool allDone;
|
|
||||||
|
|
||||||
private const float fallTime = 35f;
|
|
||||||
|
|
||||||
private Coroutine routine;
|
|
||||||
|
|
||||||
private List<Node2D> carts = new List<Node2D>();
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
entity.GlobalPosition = entityPos.GlobalPosition;
|
|
||||||
float progress = entity.battleData.GetProgress();
|
|
||||||
amt = ((progress > 0.5f) ? 5 : 3);
|
|
||||||
delay = ((progress > 0.5f) ? 20 : 40);
|
|
||||||
cartSpeed = ((progress > 0.5f) ? 2.75f : 2f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
BattleDR.current.activeBoard.timer = 999999f;
|
|
||||||
for (int num = carts.Count - 1; num >= 0; num--)
|
|
||||||
{
|
|
||||||
carts[num].GlobalPosition += Vector2.Left * Main.deltaTime * cartSpeed;
|
|
||||||
if (carts[num].Position.X < -200f)
|
|
||||||
{
|
|
||||||
carts[num].QueueFree();
|
|
||||||
carts.RemoveAt(num);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!GodotObject.IsInstanceValid(BattleDR.current.activeBoard))
|
|
||||||
{
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (routine != null && !routine.done)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (allDone)
|
|
||||||
{
|
|
||||||
if (carts.Count == 0)
|
|
||||||
{
|
|
||||||
BattleDR.current.activeBoard.timer = 0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
routine = Coroutine.Start(CartPunch());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator CartPunch()
|
|
||||||
{
|
|
||||||
Vector2 cs = cartPos.GlobalPosition + Vector2.Up * 300f;
|
|
||||||
Node2D cart = BattleDR.NewBullet(in cartBase, cs, this);
|
|
||||||
int idx = Main.RandomRange(2, 4);
|
|
||||||
IBullet child = cart.GetChild<IBullet>(idx);
|
|
||||||
child.node.Modulate = Main.colorYellow;
|
|
||||||
child.type = IBullet.Type.Yellow;
|
|
||||||
Audio.PlaySound("snd_arrow.wav");
|
|
||||||
float a = 0f;
|
|
||||||
for (float b = 35f; a <= b; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
cart.GlobalPosition = cs.Lerp(cartPos.GlobalPosition, a / b);
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
cart.GlobalPosition = cartPos.GlobalPosition;
|
|
||||||
Audio.PlaySound("snd_bump_ch1.wav");
|
|
||||||
for (float b = 0f; b < 5f; b += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Audio.PlaySound("snd_noise.wav").Bus = "Reverb";
|
|
||||||
entity.anim.Play("Punch0");
|
|
||||||
entity.Shake(delay);
|
|
||||||
while (entity.shake > 0f)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
entity.anim.Play("Punch1");
|
|
||||||
Audio.PlaySound("snd_impact_ch1.wav");
|
|
||||||
CameraController.Shake();
|
|
||||||
carts.Add(cart);
|
|
||||||
for (float b = 0f; b < 20f; b += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
entity.anim.Play("Idle");
|
|
||||||
amt--;
|
|
||||||
if (amt <= 0)
|
|
||||||
{
|
|
||||||
allDone = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://c3wiml62s3wb3
|
|
@ -1,197 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BearingJump.cs")]
|
|
||||||
public partial class BearingJump : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D bullet;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream jump;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream charge;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream impact;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float waitDelay = 30f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float fallTime = 15f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float bulletSpeedMod = 0.65f;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private Vector2 sp;
|
|
||||||
|
|
||||||
private Vector2 bp;
|
|
||||||
|
|
||||||
private int state;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float wait;
|
|
||||||
|
|
||||||
private bool bul;
|
|
||||||
|
|
||||||
private Vector2[] pos;
|
|
||||||
|
|
||||||
private List<MoveAhead> bullets = new List<MoveAhead>();
|
|
||||||
|
|
||||||
private readonly StringName jumpAnim = "Fall";
|
|
||||||
|
|
||||||
private readonly StringName punchAnim = "Land";
|
|
||||||
|
|
||||||
private readonly StringName chargeAnim = "Charge";
|
|
||||||
|
|
||||||
private readonly Color glow = new Color(2.5f, 2.5f, 2.5f);
|
|
||||||
|
|
||||||
private readonly Vector2[] bspd = new Vector2[4]
|
|
||||||
{
|
|
||||||
new Vector2(0.7f, 1.7f),
|
|
||||||
new Vector2(-0.7f, 1.7f),
|
|
||||||
new Vector2(0.7f, -0.7f),
|
|
||||||
new Vector2(-0.7f, -0.7f)
|
|
||||||
};
|
|
||||||
|
|
||||||
private readonly Vector2 grav = new Vector2(0f, -0.02f);
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
sp = entity.GlobalPosition;
|
|
||||||
entity.doTrail = true;
|
|
||||||
bp = BattleDR.current.activeBoard.GlobalPosition;
|
|
||||||
entity.Reparent(this);
|
|
||||||
entity.CollisionLayer = 4u;
|
|
||||||
if (BattleDR.current.enemies[0].HPPercent() <= 0.5f || BattleDR.current.enemies[0].spare >= 50)
|
|
||||||
{
|
|
||||||
wait = fallTime * 2f;
|
|
||||||
waitDelay = Mathf.RoundToInt(waitDelay * 0.75f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wait = fallTime * 3f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _ExitTree()
|
|
||||||
{
|
|
||||||
entity.doTrail = false;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
entity.Reparent(BattleDR.current);
|
|
||||||
entity.shake = 0f;
|
|
||||||
entity.CollisionLayer = 1u;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
for (int num = bullets.Count - 1; num >= 0; num--)
|
|
||||||
{
|
|
||||||
if (!GodotObject.IsInstanceValid(bullets[num]))
|
|
||||||
{
|
|
||||||
bullets.RemoveAt(num);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bullets[num].speed += grav * Main.deltaTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switch (state)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
if (pos == null)
|
|
||||||
{
|
|
||||||
pos = new Vector2[3]
|
|
||||||
{
|
|
||||||
entity.GlobalPosition,
|
|
||||||
new Vector2(BattleDR.current.soul.GlobalPosition.X, bp.Y - 55f),
|
|
||||||
Vector2.Zero
|
|
||||||
};
|
|
||||||
pos[2] = new Vector2(Mathf.Lerp(pos[0].X, pos[1].X, 0.5f), bp.Y - 80f);
|
|
||||||
Audio.PlaySound(jump);
|
|
||||||
entity.anim.Play(jumpAnim);
|
|
||||||
}
|
|
||||||
if (cd < 40f)
|
|
||||||
{
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
entity.GlobalPosition = Common.Beizier(pos[0], pos[2], pos[1], cd / 40f);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
state = 1;
|
|
||||||
cd = 0f;
|
|
||||||
pos = new Vector2[2]
|
|
||||||
{
|
|
||||||
entity.GlobalPosition,
|
|
||||||
new Vector2(pos[1].X, bp.Y + BattleDR.current.activeBoard.boardSize.Y / 2f)
|
|
||||||
};
|
|
||||||
entity.Shake(waitDelay, 1f);
|
|
||||||
entity.anim.Play(chargeAnim);
|
|
||||||
Audio.PlaySound(charge);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (cd < waitDelay)
|
|
||||||
{
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
entity.Modulate = ((Common.SinOverTime(1.25f) > 0f) ? Main.colorWhite : glow);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
state = 2;
|
|
||||||
cd = 0f;
|
|
||||||
entity.anim.Play(punchAnim);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
cd += Main.deltaTime;
|
|
||||||
if (cd <= fallTime)
|
|
||||||
{
|
|
||||||
entity.GlobalPosition = pos[0].Lerp(pos[1], cd / fallTime);
|
|
||||||
}
|
|
||||||
else if (cd < wait)
|
|
||||||
{
|
|
||||||
if (bul)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
entity.GlobalPosition = pos[1];
|
|
||||||
Audio.PlaySound(impact);
|
|
||||||
CameraController.Shake(15f, 2f);
|
|
||||||
entity.Shake(10f, 2f);
|
|
||||||
bul = true;
|
|
||||||
if (!(BattleDR.current.activeBoard.timer > 10f))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < 4; i++)
|
|
||||||
{
|
|
||||||
MoveAhead moveAhead = (MoveAhead)BattleDR.NewBullet(in bullet, entity.GlobalPosition + Vector2.Up * 32f, this);
|
|
||||||
moveAhead.speed = bspd[i] * bulletSpeedMod;
|
|
||||||
bullets.Add(moveAhead);
|
|
||||||
moveAhead.RotationDegrees = Main.RandomRange(0, 360);
|
|
||||||
if (bspd[i].X > 0f)
|
|
||||||
{
|
|
||||||
moveAhead.rotation *= -1f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bul = false;
|
|
||||||
cd = 0f;
|
|
||||||
state = 0;
|
|
||||||
pos = null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cjkjm3umwrw85
|
|
@ -1,167 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BearingPush.cs")]
|
|
||||||
public partial class BearingPush : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private MoveAhead bullet;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Blank hitbox;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AnimationPlayer bite;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float pushSpd = 0.05f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float bulletCD = 120f;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private bool weak;
|
|
||||||
|
|
||||||
private bool started;
|
|
||||||
|
|
||||||
private bool end;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float pushing;
|
|
||||||
|
|
||||||
private float hitcd;
|
|
||||||
|
|
||||||
private float sporeCD;
|
|
||||||
|
|
||||||
private Vector2 start;
|
|
||||||
|
|
||||||
private Vector2 mid;
|
|
||||||
|
|
||||||
private Vector2 targetp;
|
|
||||||
|
|
||||||
private readonly Vector2 offset = new Vector2(20f, -40f);
|
|
||||||
|
|
||||||
private const float maxX = 120f;
|
|
||||||
|
|
||||||
private const float bulletAngle = 30f;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
weak = entity.battleData.HPPercent() <= 0.5f || entity.battleData.spare >= 50;
|
|
||||||
if (weak)
|
|
||||||
{
|
|
||||||
pushSpd *= 1.1f;
|
|
||||||
bulletCD *= 0.75f;
|
|
||||||
hitbox.HP = Mathf.RoundToInt((float)hitbox.HP * 1.15f);
|
|
||||||
}
|
|
||||||
entity.Reparent(DWMenu.instance.bulletBoard);
|
|
||||||
cd = 30f;
|
|
||||||
Blank blank = hitbox;
|
|
||||||
blank.onShot = (Action<Node>)Delegate.Combine(blank.onShot, new Action<Node>(Shot));
|
|
||||||
start = entity.Position;
|
|
||||||
mid = start + Vector2.Right * 20f;
|
|
||||||
targetp = new Vector2(BattleDR.current.activeBoard.boardSize.X * 1.5f, BattleDR.current.activeBoard.boardSize.Y - 10f);
|
|
||||||
entity.anim.Play("Walk");
|
|
||||||
CallDeferred("reparent", DWMenu.instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (!GodotObject.IsInstanceValid(BattleDR.current.activeBoard))
|
|
||||||
{
|
|
||||||
QueueFree();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
entity.Modulate = entity.Modulate.Lerp(Main.colorWhite, Main.deltaTime * 0.1f);
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
if (hitcd > 0f)
|
|
||||||
{
|
|
||||||
hitcd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
if (sporeCD > 0f)
|
|
||||||
{
|
|
||||||
sporeCD -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
if (!started)
|
|
||||||
{
|
|
||||||
entity.Position = Common.Beizier(start, mid, targetp, 1f - cd / 30f);
|
|
||||||
if (cd <= 0f)
|
|
||||||
{
|
|
||||||
entity.Position = targetp;
|
|
||||||
Audio.PlaySound("snd_impact_ch1.wav");
|
|
||||||
entity.anim.Play("Push");
|
|
||||||
cd = bulletCD / 2f;
|
|
||||||
started = true;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (end)
|
|
||||||
{
|
|
||||||
entity.GlobalPosition = entity.GlobalPosition.Lerp(mid, Main.deltaTime * 0.1f);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (hitcd <= 0f && pushing > (0f - pushSpd) * 3f)
|
|
||||||
{
|
|
||||||
pushing -= pushSpd * Main.deltaTime * ((hitcd > 0f) ? 0.75f : 1f);
|
|
||||||
}
|
|
||||||
hitbox.GlobalPosition = entity.GlobalPosition;
|
|
||||||
BattleDR.current.activeBoard.timer = 100f;
|
|
||||||
if (DWMenu.instance.bulletBoard.Position.X > -120f && DWMenu.instance.bulletBoard.Position.X < 120f)
|
|
||||||
{
|
|
||||||
DWMenu.instance.bulletBoard.Position += Vector2.Right * pushing * Main.deltaTime;
|
|
||||||
}
|
|
||||||
if (cd <= 0f)
|
|
||||||
{
|
|
||||||
SpawnBullet();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _ExitTree()
|
|
||||||
{
|
|
||||||
entity.Reparent(BattleDR.current);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SpawnBullet()
|
|
||||||
{
|
|
||||||
if (sporeCD <= 0f)
|
|
||||||
{
|
|
||||||
cd = bulletCD;
|
|
||||||
Node2D type = bullet;
|
|
||||||
MoveAhead obj = (MoveAhead)BattleDR.NewBullet(in type, entity.GlobalPosition + offset, this);
|
|
||||||
obj.speed = obj.speed.Rotated(Mathf.DegToRad(Main.RandomRange(-15f, 30f)));
|
|
||||||
obj.RotationDegrees = Main.RandomRange(0, 360);
|
|
||||||
sporeCD = 15f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Shot(Node node)
|
|
||||||
{
|
|
||||||
entity.Modulate = Main.colorGlow;
|
|
||||||
if (hitcd <= 10f)
|
|
||||||
{
|
|
||||||
SpawnBullet();
|
|
||||||
}
|
|
||||||
hitcd = 20f;
|
|
||||||
if (((IBullet)node).HP <= 0)
|
|
||||||
{
|
|
||||||
end = true;
|
|
||||||
entity.anim.Play("Hurt");
|
|
||||||
bite.Play("Stop");
|
|
||||||
mid = entity.GlobalPosition + Vector2.Right * 40f;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
entity.CallDeferred("reparent", BattleDR.current);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://5ph0qwmmk017
|
|
@ -1,113 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BearingStuffing.cs")]
|
|
||||||
public partial class BearingStuffing : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Node2D bulletBase;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float cooldown = 40f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float variance = 8f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float tossSpd = 1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float angleVariance = 15f;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private Coroutine toss;
|
|
||||||
|
|
||||||
private List<MoveAhead> pool = new List<MoveAhead>();
|
|
||||||
|
|
||||||
private readonly StringName size = "Size";
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
cd = 5f;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetCD()
|
|
||||||
{
|
|
||||||
cd = cooldown + Main.RandomRange(0f - variance, variance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
Coroutine coroutine = toss;
|
|
||||||
if ((coroutine == null || coroutine.done) && !(BattleDR.current.activeBoard.timer < 20f))
|
|
||||||
{
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SetCD();
|
|
||||||
toss = Coroutine.Start(Spawn(), this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Break(Node node)
|
|
||||||
{
|
|
||||||
pool.RemoveAll((MoveAhead x) => !GodotObject.IsInstanceValid(x));
|
|
||||||
MoveAhead moveAhead = (MoveAhead)node;
|
|
||||||
if (moveAhead.HP != 1)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int num = (int)moveAhead.GetMeta(size) - 1;
|
|
||||||
if (num <= 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (int num2 = 0; num2 < 2; num2++)
|
|
||||||
{
|
|
||||||
MoveAhead moveAhead2 = (MoveAhead)BattleDR.NewBullet(in bulletBase, moveAhead.GlobalPosition, this);
|
|
||||||
moveAhead2.homing = 0.015f;
|
|
||||||
moveAhead2.speed = ((num2 == 0) ? Vector2.Up : Vector2.Down) * 0.75f;
|
|
||||||
moveAhead2.Scale = moveAhead.Scale * 0.65f;
|
|
||||||
if (num > 1)
|
|
||||||
{
|
|
||||||
pool.Add(moveAhead2);
|
|
||||||
moveAhead2.onShot = (Action<Node>)Delegate.Combine(moveAhead2.onShot, new Action<Node>(Break));
|
|
||||||
moveAhead2.SetMeta(size, num);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
moveAhead2.HP = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
moveAhead.QueueFree();
|
|
||||||
pool.Remove(moveAhead);
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator Spawn()
|
|
||||||
{
|
|
||||||
entity.anim.Play("Stuffing1");
|
|
||||||
for (float a = 0f; a < 15f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Audio.PlaySound("snd_swing.wav");
|
|
||||||
MoveAhead moveAhead = (MoveAhead)BattleDR.NewBullet(in bulletBase, entity.GlobalPosition + new Vector2(-50f, -25f), this);
|
|
||||||
moveAhead.speed = Vector2.Left.Rotated(Mathf.DegToRad(Main.RandomRange(0f - angleVariance, angleVariance))) * tossSpd;
|
|
||||||
moveAhead.homing = 0.005f;
|
|
||||||
moveAhead.onShot = (Action<Node>)Delegate.Combine(moveAhead.onShot, new Action<Node>(Break));
|
|
||||||
pool.Add(moveAhead);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://o8tcsim42pph
|
|
@ -1,137 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BellCircleSwap.cs")]
|
|
||||||
public partial class BellCircleSwap : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private MoveAhead bullet;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Blank hitbox;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream noise;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float time = 60f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float variance = 5f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float expansionRate = 1.025f;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private List<MoveAhead> bullets = new List<MoveAhead>();
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float shotCD;
|
|
||||||
|
|
||||||
private Vector2 offset;
|
|
||||||
|
|
||||||
private bool alter;
|
|
||||||
|
|
||||||
private bool anim;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
hitbox.GlobalPosition = entity.GlobalPosition + new Vector2(0f, -32f);
|
|
||||||
Blank blank = hitbox;
|
|
||||||
blank.onShot = (Action<Node>)Delegate.Combine(blank.onShot, new Action<Node>(Shot));
|
|
||||||
offset = entity.GlobalPosition + new Vector2(0f, -40f);
|
|
||||||
if (BattleDR.current.enemies[0].HPPercent() <= 0.5f || BattleDR.current.enemies[0].spare >= 50)
|
|
||||||
{
|
|
||||||
time = 45f;
|
|
||||||
variance = 12f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < bullets.Count; i++)
|
|
||||||
{
|
|
||||||
if (GodotObject.IsInstanceValid(bullets[i]) && !bullets[i].IsQueuedForDeletion())
|
|
||||||
{
|
|
||||||
bullets[i].Scale *= expansionRate * Main.deltaTime;
|
|
||||||
if (bullets[i].ProcessMode == ProcessModeEnum.Disabled)
|
|
||||||
{
|
|
||||||
bullets[i]._Process(delta);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (shotCD > 0f)
|
|
||||||
{
|
|
||||||
shotCD -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
else if (BattleDR.current.activeBoard.timer > 40f)
|
|
||||||
{
|
|
||||||
Audio.PlaySound(noise);
|
|
||||||
bullets.RemoveAll((MoveAhead x) => !GodotObject.IsInstanceValid(x));
|
|
||||||
Node2D type = bullet;
|
|
||||||
MoveAhead item = (MoveAhead)BattleDR.NewBullet(in type, offset, this);
|
|
||||||
bullets.Add(item);
|
|
||||||
if (alter)
|
|
||||||
{
|
|
||||||
Alter(item);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
alter = !alter;
|
|
||||||
}
|
|
||||||
entity.anim.Play(anim ? "Ring1" : "Ring2");
|
|
||||||
anim = !anim;
|
|
||||||
cd = time + Main.RandomRange(0f - variance, variance);
|
|
||||||
}
|
|
||||||
entity.Modulate = entity.Modulate.Lerp(Main.colorWhite, Main.deltaTime * 0.2f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Shot(Node node)
|
|
||||||
{
|
|
||||||
if (shotCD > 0f)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Audio.PlaySound(noise);
|
|
||||||
entity.Modulate = Main.colorGlow;
|
|
||||||
for (int i = 0; i < bullets.Count; i++)
|
|
||||||
{
|
|
||||||
if (GodotObject.IsInstanceValid(bullets[i]))
|
|
||||||
{
|
|
||||||
Alter(bullets[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Alter(MoveAhead bullet)
|
|
||||||
{
|
|
||||||
if (bullet.ProcessMode == ProcessModeEnum.Inherit)
|
|
||||||
{
|
|
||||||
bullet.ProcessMode = ProcessModeEnum.Disabled;
|
|
||||||
bullet.Modulate = Main.colorDark;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bullet.ProcessMode = ProcessModeEnum.Inherit;
|
|
||||||
bullet.Modulate = Main.colorWhite;
|
|
||||||
}
|
|
||||||
alter = !alter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _ExitTree()
|
|
||||||
{
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cf3i1nx2fan3u
|
|
@ -1,113 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BellFall.cs")]
|
|
||||||
public partial class BellFall : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D[] bullets;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream audio;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream hit;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float time = 50f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float variance = 5f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float pitchVar = 0.1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float playerChance = 20f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float fallSpd = 0.8f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private int amt = 2;
|
|
||||||
|
|
||||||
private List<Blank> bulletObj = new List<Blank>();
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private float limit;
|
|
||||||
|
|
||||||
private float soundCD;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
limit = BattleDR.current.activeBoard.boardSize.Y / 2f - 3f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (soundCD > 0f)
|
|
||||||
{
|
|
||||||
soundCD -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
for (int num = bulletObj.Count - 1; num >= 0; num--)
|
|
||||||
{
|
|
||||||
bulletObj[num].Modulate = bulletObj[num].Modulate.Lerp(Main.colorWhite, Main.deltaTime * 0.25f);
|
|
||||||
bulletObj[num].GlobalPosition += Vector2.Down * fallSpd * Main.deltaTime;
|
|
||||||
if (bulletObj[num].Position.Y >= limit)
|
|
||||||
{
|
|
||||||
if (soundCD <= 0f)
|
|
||||||
{
|
|
||||||
Audio.PlaySound(hit);
|
|
||||||
soundCD = 5f;
|
|
||||||
}
|
|
||||||
BattleDR.NewBullet(in bullets[1], new Vector2(bulletObj[num].GlobalPosition.X, limit + base.GlobalPosition.Y), this);
|
|
||||||
bulletObj[num].QueueFree();
|
|
||||||
bulletObj.RemoveAt(num);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!(BattleDR.current.activeBoard.timer > 10f))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cd = time + Main.RandomRange(0f - variance, variance);
|
|
||||||
Audio.PlaySound(audio, 1f, 1f + Main.RandomRange(0f - pitchVar, pitchVar));
|
|
||||||
for (int i = 0; i < amt; i++)
|
|
||||||
{
|
|
||||||
Vector2 pos = new Vector2(0f, base.GlobalPosition.Y - 80f);
|
|
||||||
int num2 = 0;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
pos = ((i != 0 || !(playerChance > 0f) || !((float)Main.RandomRange(0, 100) <= playerChance)) ? new Vector2(base.GlobalPosition.X + Main.RandomRange(0f - BattleDR.current.activeBoard.boardSize.X, BattleDR.current.activeBoard.boardSize.X) / 2.15f, pos.Y) : new Vector2(BattleDR.current.soul.GlobalPosition.X, pos.Y));
|
|
||||||
num2++;
|
|
||||||
}
|
|
||||||
while (AnyClose(pos.X) && num2 < 10);
|
|
||||||
Blank blank = (Blank)BattleDR.NewBullet(in bullets[0], pos, this);
|
|
||||||
blank.Modulate = Main.colorClear;
|
|
||||||
bulletObj.Add(blank);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool AnyClose(float x)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < bulletObj.Count; i++)
|
|
||||||
{
|
|
||||||
if (Mathf.Abs(x - bulletObj[i].GlobalPosition.X) < 15f)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cvpr8tygny85j
|
|
@ -1,85 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BellShoot.cs")]
|
|
||||||
public partial class BellShoot : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private MoveAhead bullet;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float time = 35f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float variance = 8f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float bulletSpeed = 0.9f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream sound;
|
|
||||||
|
|
||||||
private Entity entity;
|
|
||||||
|
|
||||||
private Vector2 point;
|
|
||||||
|
|
||||||
private Vector2 start;
|
|
||||||
|
|
||||||
private float cd;
|
|
||||||
|
|
||||||
private bool anim;
|
|
||||||
|
|
||||||
private bool weak;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
entity = BattleDR.current.enemies[0].entity;
|
|
||||||
entity.Modulate = Main.colorWhite;
|
|
||||||
start = entity.GlobalPosition;
|
|
||||||
point = Vector2.Up * 40f;
|
|
||||||
weak = BattleDR.current.enemies[0].HPPercent() <= 0.5f || BattleDR.current.enemies[0].spare >= 50;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
entity.GlobalPosition = entity.GlobalPosition.Lerp(start + Vector2.Up * Common.SinOverTime(0.15f) * 70f, Main.deltaTime * 0.15f);
|
|
||||||
if (cd > 0f)
|
|
||||||
{
|
|
||||||
cd -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
else if (BattleDR.current.activeBoard.timer > 10f)
|
|
||||||
{
|
|
||||||
cd = time + Main.RandomRange(0f - variance, variance);
|
|
||||||
entity.anim.Play(anim ? "Ring1" : "Ring2");
|
|
||||||
anim = !anim;
|
|
||||||
Audio.PlaySound(sound);
|
|
||||||
Vector2 pos = entity.GlobalPosition + point;
|
|
||||||
Node2D type = bullet;
|
|
||||||
MoveAhead moveAhead = (MoveAhead)BattleDR.NewBullet(in type, pos, this);
|
|
||||||
moveAhead.speed = bulletSpeed * pos.DirectionTo(BattleDR.current.soul.GlobalPosition);
|
|
||||||
moveAhead.LookAt(BattleDR.current.soul.GlobalPosition);
|
|
||||||
moveAhead.RotationDegrees += 180f;
|
|
||||||
moveAhead.onShot = (Action<Node>)Delegate.Combine(moveAhead.onShot, new Action<Node>(Shot));
|
|
||||||
if (weak && Main.RandomRange(0, 100) <= 30)
|
|
||||||
{
|
|
||||||
moveAhead.Modulate = Main.colorWhite;
|
|
||||||
moveAhead.type = IBullet.Type.Normal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Shot(Node node)
|
|
||||||
{
|
|
||||||
IBullet bullet = (IBullet)node;
|
|
||||||
if (bullet.HP > 0)
|
|
||||||
{
|
|
||||||
node.GetChild(3).GetChild(0).QueueFree();
|
|
||||||
Main.SetActive(node.GetChild<Node2D>(2 - bullet.HP), state: false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://dblx6fgkgb1ny
|
|
@ -1,110 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Envirioment/Bench.cs")]
|
|
||||||
public partial class Bench : Area2D, Interacteable
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private SaveFile.Flags flag = SaveFile.Flags.None;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private AudioStream sound;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float volume = 0.7f;
|
|
||||||
|
|
||||||
private Vector2[] pos;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
pos = new Vector2[GetChildCount() - 1];
|
|
||||||
for (int i = 0; i < pos.Length; i++)
|
|
||||||
{
|
|
||||||
pos[i] = GetChild<Node2D>(i + 1).GlobalPosition;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Interact()
|
|
||||||
{
|
|
||||||
if (Player.instance.GlobalPosition.Y > base.GlobalPosition.Y)
|
|
||||||
{
|
|
||||||
Main.inEvent = Coroutine.Start(SitEvent());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Player.instance.canInput = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator SitEvent()
|
|
||||||
{
|
|
||||||
AudioStream m = Audio.music.Stream;
|
|
||||||
Party.ChangeCollider(state: false);
|
|
||||||
Audio.FadeSound(Audio.music, 1f);
|
|
||||||
Party.MoveTo(pos, 0.5f, align: true, Entity.Direction.South);
|
|
||||||
while (!Party.IsStopped())
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Party.UpdateFollowerEntities();
|
|
||||||
PartyAnim();
|
|
||||||
if (sound != null)
|
|
||||||
{
|
|
||||||
Audio.ChangeMusic(sound, 0.5f, volume);
|
|
||||||
}
|
|
||||||
for (float a = 0f; a < 60f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
while (!Input.IsActionJustPressed(Main.keys[4]))
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Audio.FadeSound(Audio.music, 0.5f);
|
|
||||||
for (float a = 0f; a < 30f; a += Main.deltaTime)
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Audio.ChangeMusic(m);
|
|
||||||
Party.LookAt(Entity.Direction.South);
|
|
||||||
Party.UpdateAnim();
|
|
||||||
Party.ChangeCollider(state: true);
|
|
||||||
Player.instance.ResetFollowStep();
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void PartyAnim()
|
|
||||||
{
|
|
||||||
for (int i = 0; i < SaveFile.current.activeParty.Count; i++)
|
|
||||||
{
|
|
||||||
Party.party[SaveFile.current.activeParty[i]].oEntity.sprite.FlipH = false;
|
|
||||||
Entity.IDs id = Party.party[SaveFile.current.activeParty[i]].oEntity.id;
|
|
||||||
if (id != Entity.IDs.Clover)
|
|
||||||
{
|
|
||||||
if (id == Entity.IDs.Axis)
|
|
||||||
{
|
|
||||||
Party.party[SaveFile.current.activeParty[i]].oEntity.anim.Play("TramSit");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (Player.instance.animMod == Entity.AnimMods.Hat)
|
|
||||||
{
|
|
||||||
Party.party[SaveFile.current.activeParty[i]].oEntity.anim.Play("SitBenchHat");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (SaveFile.HasFlag(SaveFile.Flags.IsInDW))
|
|
||||||
{
|
|
||||||
Party.party[SaveFile.current.activeParty[i]].oEntity.anim.Play("SitBenchDW");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Party.party[SaveFile.current.activeParty[i]].oEntity.anim.Play("SitBench");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://crec8gg68pqvh
|
|
@ -1,69 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/Blank.cs")]
|
|
||||||
public partial class Blank : Node2D, IBullet
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float randomRotation;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float rotationOverTime;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float easeIn;
|
|
||||||
|
|
||||||
private float easing;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool grazed { get; set; }
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int HP { get; set; } = 1;
|
|
||||||
|
|
||||||
public Node2D node { get; set; }
|
|
||||||
|
|
||||||
public Action<Node> onShot { get; set; }
|
|
||||||
|
|
||||||
public AnimationPlayer anim { get; set; }
|
|
||||||
|
|
||||||
public BulletGenerator generatedFrom { get; set; }
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public IBullet.Type type { get; set; }
|
|
||||||
|
|
||||||
public override void _Ready()
|
|
||||||
{
|
|
||||||
if (randomRotation > 0f)
|
|
||||||
{
|
|
||||||
base.RotationDegrees = Main.RandomRange(0f, randomRotation);
|
|
||||||
}
|
|
||||||
node = this;
|
|
||||||
if (easeIn == 0f)
|
|
||||||
{
|
|
||||||
easing = 1f;
|
|
||||||
easeIn = 1f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (rotationOverTime != 0f)
|
|
||||||
{
|
|
||||||
base.RotationDegrees += rotationOverTime * Main.deltaTime * easing / easeIn;
|
|
||||||
}
|
|
||||||
if (easing < easeIn)
|
|
||||||
{
|
|
||||||
easing += Main.deltaTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShotAt()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cb8rksd6v3te0
|
|
@ -1,56 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/BridgeSort.cs")]
|
|
||||||
public partial class BridgeSort : Node2D
|
|
||||||
{
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Area2D triggerDown;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Area2D triggerUp;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private int downSort;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private int upSort = 50;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D upCol;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D downCol;
|
|
||||||
|
|
||||||
public override void _Ready()
|
|
||||||
{
|
|
||||||
triggerDown.BodyEntered += Down;
|
|
||||||
triggerUp.BodyEntered += Up;
|
|
||||||
base.ZIndex = downSort;
|
|
||||||
downCol.ProcessMode = ProcessModeEnum.Disabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Up(Node other)
|
|
||||||
{
|
|
||||||
if (other is Player)
|
|
||||||
{
|
|
||||||
base.ZIndex = upSort;
|
|
||||||
upCol.ProcessMode = ProcessModeEnum.Disabled;
|
|
||||||
downCol.ProcessMode = ProcessModeEnum.Inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Down(Node other)
|
|
||||||
{
|
|
||||||
if (other is Player)
|
|
||||||
{
|
|
||||||
base.ZIndex = downSort;
|
|
||||||
downCol.ProcessMode = ProcessModeEnum.Disabled;
|
|
||||||
upCol.ProcessMode = ProcessModeEnum.Inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://7i6v1wbu611w
|
|
@ -1,106 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Battle/BulletBoards.cs")]
|
|
||||||
public partial class BulletBoards : Node2D
|
|
||||||
{
|
|
||||||
public enum SoulType
|
|
||||||
{
|
|
||||||
Current = -1,
|
|
||||||
Yellow,
|
|
||||||
Blue,
|
|
||||||
Shoot
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Target
|
|
||||||
{
|
|
||||||
OnlyOne,
|
|
||||||
RandomAll,
|
|
||||||
All
|
|
||||||
}
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float damageMult = 1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int id;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool cantKill;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool noReparent;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool special;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool flipRandomly;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float timer = 300f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float randomRotation;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float growTime = 20f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Target target;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public SoulType soulType = SoulType.Current;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float[] data;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 boardSize = new Vector2(80f, 80f);
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 soulStartOffset;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 boardStartOffset;
|
|
||||||
|
|
||||||
public int[] targeted;
|
|
||||||
|
|
||||||
public Battlers caller;
|
|
||||||
|
|
||||||
private bool first;
|
|
||||||
|
|
||||||
private List<IBullet> bullets = new List<IBullet>();
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
base.Visible = true;
|
|
||||||
base.ZIndex = 4096;
|
|
||||||
base.RotationDegrees = Main.RandomRange(0f, randomRotation);
|
|
||||||
foreach (Node child in GetChildren())
|
|
||||||
{
|
|
||||||
if (child is IBullet item)
|
|
||||||
{
|
|
||||||
bullets.Add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (flipRandomly && Main.RandomRange(0, 100) < 50)
|
|
||||||
{
|
|
||||||
base.Scale = new Vector2(-1f, 1f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void UpdateCenter()
|
|
||||||
{
|
|
||||||
DWMenu.instance.bulletBoard.PivotOffset = DWMenu.instance.bulletBoard.Size / 2f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void End()
|
|
||||||
{
|
|
||||||
timer = 0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://3u26wg5x1328
|
|
@ -1,181 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.Collections;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[GlobalClass]
|
|
||||||
[ScriptPath("res://Scripts/Resources/BulletConds.cs")]
|
|
||||||
public partial class BulletConds : Resource
|
|
||||||
{
|
|
||||||
public enum HPPercentCheck
|
|
||||||
{
|
|
||||||
Average,
|
|
||||||
OnlyOne
|
|
||||||
}
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int weight = 1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int lastAct = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int onlyOnTurn = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int order = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int orderLimit = 9999;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int everyXTurns = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int turnBelow = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public int turnAbove = -1;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float hpPercentGreater = -1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public float hpPercentLower = -1f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<Entity.IDs> neededGroup;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool exactMatch;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool special;
|
|
||||||
|
|
||||||
[ExportSubgroup("Flags", "")]
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<SaveFile.Flags> need;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<SaveFile.Flags> limit;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> battleFlagNeed;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> battleFlagLimit;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> internalNeeds;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> internalLimit;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Array<StringName> setInternal;
|
|
||||||
|
|
||||||
public bool CanDo(Battlers caller = null)
|
|
||||||
{
|
|
||||||
if (special)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (onlyOnTurn > -1 && BattleDR.current.turn != onlyOnTurn)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (order > -1 && (int)Main.Repeat(BattleDR.current.turn, orderLimit) != order)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (everyXTurns > 0 && BattleDR.current.turn % everyXTurns != 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (turnBelow > -1 && BattleDR.current.turn > turnBelow)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (turnAbove > -1 && BattleDR.current.turn < turnAbove)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Array<Entity.IDs> array = neededGroup;
|
|
||||||
if (array != null && array.Count > 0)
|
|
||||||
{
|
|
||||||
List<Entity.IDs> h = new List<Entity.IDs>();
|
|
||||||
if (BattleDR.current.enemies.Count < neededGroup.Count)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < BattleDR.current.enemies.Count; i++)
|
|
||||||
{
|
|
||||||
h.Add(BattleDR.current.enemies[i].entity.id);
|
|
||||||
}
|
|
||||||
if (exactMatch && BattleDR.current.enemies.Count != neededGroup.Count)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!neededGroup.All((Entity.IDs x) => h.Remove(x)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (need != null && need.Count != 0 && SaveFile.HasFlags(need))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (limit != null && limit.Count != 0 && !SaveFile.HasFlags(limit))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Array<StringName> array2 = battleFlagNeed;
|
|
||||||
if (array2 != null && array2.Count > 0 && !battleFlagNeed.All((StringName x) => BattleDR.current.tempFlags.Contains(x)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Array<StringName> array3 = battleFlagLimit;
|
|
||||||
if (array3 != null && array3.Count > 0 && battleFlagLimit.All((StringName x) => BattleDR.current.tempFlags.Contains(x)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (caller != null)
|
|
||||||
{
|
|
||||||
if (lastAct > -1 && !caller.lastestAct.Contains(lastAct))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (hpPercentGreater > 0f && caller.HPPercent() < hpPercentGreater)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (hpPercentLower > 0f && caller.HPPercent() > hpPercentLower)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Array<StringName> array4 = internalNeeds;
|
|
||||||
if (array4 != null && array4.Count > 0 && !internalNeeds.All((StringName x) => caller.internalFlags.Contains(x)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Array<StringName> array5 = internalLimit;
|
|
||||||
if (array5 != null && array5.Count > 0 && internalLimit.All((StringName x) => caller.internalFlags.Contains(x)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Array<StringName> array6 = setInternal;
|
|
||||||
if (array6 != null && array6.Count > 0)
|
|
||||||
{
|
|
||||||
for (int num = 0; num < setInternal.Count; num++)
|
|
||||||
{
|
|
||||||
caller.internalFlags.Add(setInternal[num]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://b3daxrd0dmvll
|
|
@ -1,148 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Bullets/BulletGenerator.cs")]
|
|
||||||
public partial class BulletGenerator : Node2D
|
|
||||||
{
|
|
||||||
public enum GenType
|
|
||||||
{
|
|
||||||
None,
|
|
||||||
Direction,
|
|
||||||
DirectionFromThisToPoints
|
|
||||||
}
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public GenType genType;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 randomizePos;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Vector2 speed;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float startDelay = 60f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float delayInbetween = 60f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float delayRandom = 20f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private float bulletTimeSec = 5f;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public Node2D[] spawnPoints;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Node2D[] bulletBase;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private int maxBullets = 10;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
public bool start = true;
|
|
||||||
|
|
||||||
private int last;
|
|
||||||
|
|
||||||
private float cooldown;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
for (int i = 0; i < bulletBase.Length; i++)
|
|
||||||
{
|
|
||||||
Main.SetActive(bulletBase[i], state: false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (startDelay > 0f)
|
|
||||||
{
|
|
||||||
startDelay -= Main.deltaTime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!start || GetChildCount() >= maxBullets)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (cooldown > 0f)
|
|
||||||
{
|
|
||||||
cooldown -= Main.deltaTime;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Node2D node2D;
|
|
||||||
AddChild(node2D = (Node2D)bulletBase[Main.RandomRange(0, bulletBase.Length - 1)].Duplicate(), forceReadableName: false, InternalMode.Disabled);
|
|
||||||
Timer obj = new Timer
|
|
||||||
{
|
|
||||||
WaitTime = bulletTimeSec,
|
|
||||||
Autostart = true
|
|
||||||
};
|
|
||||||
Timer timer = obj;
|
|
||||||
node2D.AddChild(obj, forceReadableName: false, InternalMode.Disabled);
|
|
||||||
if (node2D is IBullet bullet)
|
|
||||||
{
|
|
||||||
bullet.generatedFrom = this;
|
|
||||||
timer.Timeout += ((IBullet)node2D).ResetBullet;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
timer.Timeout += node2D.QueueFree;
|
|
||||||
}
|
|
||||||
ResetBullet(node2D);
|
|
||||||
cooldown = delayInbetween + Main.RandomRange(0f, delayRandom);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResetBullet(Node2D node)
|
|
||||||
{
|
|
||||||
if (genType != GenType.DirectionFromThisToPoints)
|
|
||||||
{
|
|
||||||
Node2D[] array = spawnPoints;
|
|
||||||
if (array != null && array.Length != 0)
|
|
||||||
{
|
|
||||||
int num;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
num = Main.RandomRange(0, spawnPoints.Length - 1);
|
|
||||||
}
|
|
||||||
while (last == num);
|
|
||||||
node.GlobalPosition = spawnPoints[num].GlobalPosition;
|
|
||||||
last = num;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
node.GlobalPosition = base.GlobalPosition;
|
|
||||||
}
|
|
||||||
node.GlobalPosition += new Vector2(Main.RandomRange(0f - randomizePos.X, randomizePos.X), Main.RandomRange(0f - randomizePos.Y, randomizePos.Y));
|
|
||||||
if (speed.LengthSquared() > 0f && node is MoveAhead moveAhead)
|
|
||||||
{
|
|
||||||
moveAhead.speed = speed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
node.GlobalPosition = base.GlobalPosition;
|
|
||||||
Vector2 globalPosition = spawnPoints[Main.RandomRange(0, spawnPoints.Length - 1)].GlobalPosition;
|
|
||||||
node.LookAt(globalPosition);
|
|
||||||
if (node is MoveAhead moveAhead2)
|
|
||||||
{
|
|
||||||
if (speed.LengthSquared() > 0f)
|
|
||||||
{
|
|
||||||
moveAhead2.speed = node.GlobalPosition.DirectionTo(globalPosition) * speed;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
moveAhead2.speed = node.GlobalPosition.DirectionTo(globalPosition);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Main.SetActive(node, state: true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cegvlychcm6k2
|
|
@ -1,48 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Bridge;
|
|
||||||
using Godot.Collections;
|
|
||||||
using Godot.NativeInterop;
|
|
||||||
|
|
||||||
[ScriptPath("res://Scripts/Puzzles/ButtonCheck.cs")]
|
|
||||||
public partial class ButtonCheck : Node2D
|
|
||||||
{
|
|
||||||
[Signal]
|
|
||||||
public delegate void TriggerEventHandler();
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private PuzzleButton[] buttons;
|
|
||||||
|
|
||||||
[Export(PropertyHint.None, "")]
|
|
||||||
private Array<SaveFile.Flags> flag;
|
|
||||||
|
|
||||||
|
|
||||||
public override void _Ready()
|
|
||||||
{
|
|
||||||
if (SaveFile.HasFlags(flag))
|
|
||||||
{
|
|
||||||
base.ProcessMode = ProcessModeEnum.Disabled;
|
|
||||||
QueueFree();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < buttons.Length; i++)
|
|
||||||
{
|
|
||||||
if (!buttons[i].active)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach (SaveFile.Flags item in flag)
|
|
||||||
{
|
|
||||||
SaveFile.AddFlag(item);
|
|
||||||
}
|
|
||||||
EmitSignal(SignalName.Trigger);
|
|
||||||
_Ready();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
uid://cc1mqq2hajwdp
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user