mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-12 14:47:13 +08:00
feat(游戏模式): 添加游戏模式选择功能并优化UI状态管理
实现游戏模式选择功能,包括无尽波次、Boss Rush和割草模式 添加游戏模式与波次数据的映射关系 优化UI状态管理,新增selectingFeed状态控制UI元素显示 重构Starter面板布局,添加游戏模式选项 为EnergyBlock添加掉落物品配置
This commit is contained in:
@@ -28,6 +28,9 @@ size = Vector2(112, 112)
|
|||||||
[node name="EnergyBlock" unique_id=247617339 instance=ExtResource("1_n2ng1")]
|
[node name="EnergyBlock" unique_id=247617339 instance=ExtResource("1_n2ng1")]
|
||||||
script = ExtResource("2_h3ykr")
|
script = ExtResource("2_h3ykr")
|
||||||
displayName = "稻草人"
|
displayName = "稻草人"
|
||||||
|
drops = Array[int]([0, 1])
|
||||||
|
dropCounts = Array[Vector2]([Vector2(20, 40), Vector2(30, 60)])
|
||||||
|
appleCount = Vector2i(2, 4)
|
||||||
|
|
||||||
[node name="texture" parent="." index="3"]
|
[node name="texture" parent="." index="3"]
|
||||||
sprite_frames = SubResource("SpriteFrames_8do1r")
|
sprite_frames = SubResource("SpriteFrames_8do1r")
|
||||||
|
|||||||
@@ -197,39 +197,59 @@ theme_override_constants/separation = 30
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/separation = 20
|
theme_override_constants/separation = 20
|
||||||
|
|
||||||
[node name="diffs" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer" index="0" unique_id=526058063]
|
[node name="playConfig" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer" index="0" unique_id=1132195820]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 6
|
||||||
|
|
||||||
|
[node name="diffs" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig" index="0" unique_id=526058063]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/diffs" index="0" unique_id=1507689450]
|
[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/diffs" index="0" unique_id=1507689450]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "选择难度:"
|
text = "选择难度:"
|
||||||
|
|
||||||
[node name="diffEdit" type="HSlider" parent="content/wrapper/wrapper/start/starter/singleplayer/diffs" index="1" unique_id=1308866785]
|
[node name="diffEdit" type="HSlider" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/diffs" index="1" unique_id=1308866785]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(100, 0)
|
custom_minimum_size = Vector2(100, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
max_value = 0.0
|
max_value = 0.0
|
||||||
|
|
||||||
[node name="levelShow" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/diffs" index="2" unique_id=1102279314]
|
[node name="levelShow" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/diffs" index="2" unique_id=1102279314]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "0 ∈ [0, 0]"
|
text = "0 ∈ [0, 0]"
|
||||||
|
|
||||||
[node name="start" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer" index="1" unique_id=1119283819]
|
[node name="gamemode" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig" index="1" unique_id=1396041711]
|
||||||
layout_mode = 2
|
|
||||||
theme_override_constants/separation = 10
|
|
||||||
alignment = 1
|
|
||||||
|
|
||||||
[node name="player" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="0" unique_id=656225175]
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/start/player" index="0" unique_id=1899542373]
|
[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/gamemode" index="0" unique_id=1975146551]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "游戏模式:"
|
||||||
|
|
||||||
|
[node name="gamemodeOption" type="OptionButton" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/gamemode" index="1" unique_id=620219949]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
theme = ExtResource("4_lfxcn")
|
||||||
|
selected = 0
|
||||||
|
allow_reselect = true
|
||||||
|
item_count = 3
|
||||||
|
popup/item_0/text = "无尽波次"
|
||||||
|
popup/item_0/id = 0
|
||||||
|
popup/item_1/text = "Boss Rush"
|
||||||
|
popup/item_1/id = 1
|
||||||
|
popup/item_2/text = "割草"
|
||||||
|
popup/item_2/id = 2
|
||||||
|
|
||||||
|
[node name="player" type="HBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig" index="2" unique_id=656225175]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="tip" type="Label" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/player" index="0" unique_id=1899542373]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "角色名:"
|
text = "角色名:"
|
||||||
|
|
||||||
[node name="playerNameInput" type="LineEdit" parent="content/wrapper/wrapper/start/starter/singleplayer/start/player" index="1" unique_id=1401004968]
|
[node name="playerNameInput" type="LineEdit" parent="content/wrapper/wrapper/start/starter/singleplayer/playConfig/player" index="1" unique_id=1401004968]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
@@ -242,14 +262,19 @@ expand_to_text_length = true
|
|||||||
select_all_on_focus = true
|
select_all_on_focus = true
|
||||||
virtual_keyboard_type = 7
|
virtual_keyboard_type = 7
|
||||||
|
|
||||||
[node name="startSingleplayerBtn" type="Button" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="1" unique_id=935895475]
|
[node name="start" type="VBoxContainer" parent="content/wrapper/wrapper/start/starter/singleplayer" index="1" unique_id=1119283819]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 10
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="startSingleplayerBtn" type="Button" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="0" unique_id=935895475]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
theme = ExtResource("4_lfxcn")
|
theme = ExtResource("4_lfxcn")
|
||||||
text = "单人游戏"
|
text = "单人游戏"
|
||||||
|
|
||||||
[node name="startMultiplayerBtn" type="Button" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="2" unique_id=1874616219]
|
[node name="startMultiplayerBtn" type="Button" parent="content/wrapper/wrapper/start/starter/singleplayer/start" index="1" unique_id=1874616219]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
|
|||||||
+20
-18
@@ -134,7 +134,8 @@ grow_vertical = 2
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
||||||
[node name="items" type="PanelContainer" parent="root" unique_id=889148256]
|
[node name="itemsContainer" type="PanelContainer" parent="root" unique_id=889148256]
|
||||||
|
unique_name_in_owner = true
|
||||||
z_index = 1
|
z_index = 1
|
||||||
z_as_relative = false
|
z_as_relative = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@@ -150,36 +151,37 @@ grow_vertical = 0
|
|||||||
theme_override_styles/panel = SubResource("StyleBoxFlat_k2y4g")
|
theme_override_styles/panel = SubResource("StyleBoxFlat_k2y4g")
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="items" type="HBoxContainer" parent="root/items" unique_id=1102895760]
|
[node name="items" type="HBoxContainer" parent="root/itemsContainer" unique_id=1102895760]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="baseball" parent="root/items/items" unique_id=222901100 instance=ExtResource("3_o2oi4")]
|
[node name="baseball" parent="root/itemsContainer/items" unique_id=222901100 instance=ExtResource("3_o2oi4")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="basketball" parent="root/items/items" unique_id=1586914104 instance=ExtResource("3_o2oi4")]
|
[node name="basketball" parent="root/itemsContainer/items" unique_id=1586914104 instance=ExtResource("3_o2oi4")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
type = 1
|
type = 1
|
||||||
|
|
||||||
[node name="apple" parent="root/items/items" unique_id=895524937 instance=ExtResource("3_o2oi4")]
|
[node name="apple" parent="root/itemsContainer/items" unique_id=895524937 instance=ExtResource("3_o2oi4")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
type = 2
|
type = 2
|
||||||
|
|
||||||
[node name="beachball" parent="root/items/items" unique_id=23220525 instance=ExtResource("3_o2oi4")]
|
[node name="beachball" parent="root/itemsContainer/items" unique_id=23220525 instance=ExtResource("3_o2oi4")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
type = 3
|
type = 3
|
||||||
|
|
||||||
[node name="soul" parent="root/items/items" unique_id=1287636941 instance=ExtResource("3_o2oi4")]
|
[node name="soul" parent="root/itemsContainer/items" unique_id=1287636941 instance=ExtResource("3_o2oi4")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
type = 4
|
type = 4
|
||||||
|
|
||||||
[node name="energy" type="PanelContainer" parent="root" unique_id=1886165069]
|
[node name="energyContainer" type="PanelContainer" parent="root" unique_id=1886165069]
|
||||||
|
unique_name_in_owner = true
|
||||||
z_index = 1
|
z_index = 1
|
||||||
z_as_relative = false
|
z_as_relative = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@@ -195,39 +197,39 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
theme_override_styles/panel = ExtResource("5_3hym1")
|
theme_override_styles/panel = ExtResource("5_3hym1")
|
||||||
|
|
||||||
[node name="wrapper" type="VBoxContainer" parent="root/energy" unique_id=1356612647]
|
[node name="wrapper" type="VBoxContainer" parent="root/energyContainer" unique_id=1356612647]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/separation = 10
|
theme_override_constants/separation = 10
|
||||||
|
|
||||||
[node name="skills" type="PanelContainer" parent="root/energy/wrapper" unique_id=1694782078]
|
[node name="skills" type="PanelContainer" parent="root/energyContainer/wrapper" unique_id=1694782078]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_12otr")
|
theme_override_styles/panel = SubResource("StyleBoxEmpty_12otr")
|
||||||
|
|
||||||
[node name="skillContainer" type="HBoxContainer" parent="root/energy/wrapper/skills" unique_id=51208875]
|
[node name="skillContainer" type="HBoxContainer" parent="root/energyContainer/wrapper/skills" unique_id=51208875]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/separation = 10
|
theme_override_constants/separation = 10
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="SkillIconBase" parent="root/energy/wrapper/skills/skillContainer" unique_id=1090815103 instance=ExtResource("5_k2y4g")]
|
[node name="SkillIconBase" parent="root/energyContainer/wrapper/skills/skillContainer" unique_id=1090815103 instance=ExtResource("5_k2y4g")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="SkillIconBase2" parent="root/energy/wrapper/skills/skillContainer" unique_id=592440106 instance=ExtResource("5_k2y4g")]
|
[node name="SkillIconBase2" parent="root/energyContainer/wrapper/skills/skillContainer" unique_id=592440106 instance=ExtResource("5_k2y4g")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="SkillIconBase3" parent="root/energy/wrapper/skills/skillContainer" unique_id=1424612490 instance=ExtResource("5_k2y4g")]
|
[node name="SkillIconBase3" parent="root/energyContainer/wrapper/skills/skillContainer" unique_id=1424612490 instance=ExtResource("5_k2y4g")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="container" type="HBoxContainer" parent="root/energy/wrapper" unique_id=1689009576]
|
[node name="container" type="HBoxContainer" parent="root/energyContainer/wrapper" unique_id=1689009576]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/separation = 10
|
theme_override_constants/separation = 10
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="energy" type="HBoxContainer" parent="root/energy/wrapper/container" unique_id=1568060205]
|
[node name="energy" type="HBoxContainer" parent="root/energyContainer/wrapper/container" unique_id=1568060205]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="icon" type="TextureRect" parent="root/energy/wrapper/container/energy" unique_id=920175670]
|
[node name="icon" type="TextureRect" parent="root/energyContainer/wrapper/container/energy" unique_id=920175670]
|
||||||
custom_minimum_size = Vector2(16, 16)
|
custom_minimum_size = Vector2(16, 16)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
@@ -235,7 +237,7 @@ size_flags_vertical = 4
|
|||||||
texture = ExtResource("7_2om12")
|
texture = ExtResource("7_2om12")
|
||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
|
|
||||||
[node name="percent" parent="root/energy/wrapper/container" unique_id=1940891290 instance=ExtResource("6_oy0yg")]
|
[node name="percent" parent="root/energyContainer/wrapper/container" unique_id=1940891290 instance=ExtResource("6_oy0yg")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(200, 0)
|
custom_minimum_size = Vector2(200, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|||||||
@@ -8,7 +8,11 @@ extends FullscreenPanelBase
|
|||||||
@onready var title2: Label = $%title2
|
@onready var title2: Label = $%title2
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
startBtn.pressed.connect(func(): UIState.closeCurrentPanel())
|
startBtn.pressed.connect(
|
||||||
|
func():
|
||||||
|
UIState.closeCurrentPanel()
|
||||||
|
StarterPanel.selectingFeed = false
|
||||||
|
)
|
||||||
|
|
||||||
func beforeOpen(_args: Array = []):
|
func beforeOpen(_args: Array = []):
|
||||||
clearFeeds()
|
clearFeeds()
|
||||||
|
|||||||
@@ -2,24 +2,29 @@
|
|||||||
extends FullscreenPanelBase
|
extends FullscreenPanelBase
|
||||||
class_name StarterPanel
|
class_name StarterPanel
|
||||||
|
|
||||||
@onready var diffEdit: HSlider = $"%diffEdit"
|
@onready var diffEdit: HSlider = $%diffEdit
|
||||||
@onready var startSingleplayerBtn: Button = $"%startSingleplayerBtn"
|
@onready var playerNameInput: LineEdit = $%playerNameInput
|
||||||
@onready var startMultiplayerBtn: Button = $"%startMultiplayerBtn"
|
@onready var gamemodeOption: OptionButton = $%gamemodeOption
|
||||||
@onready var levelShow: Label = $"%levelShow"
|
|
||||||
@onready var hostInput: LineEdit = $"%hostInput"
|
@onready var startSingleplayerBtn: Button = $%startSingleplayerBtn
|
||||||
@onready var portInput: LineEdit = $"%portInput"
|
@onready var startMultiplayerBtn: Button = $%startMultiplayerBtn
|
||||||
@onready var launchBtn: Button = $"%launchBtn"
|
@onready var levelShow: Label = $%levelShow
|
||||||
@onready var connectBtn: Button = $"%connectBtn"
|
@onready var hostInput: LineEdit = $%hostInput
|
||||||
@onready var maxPlayerInput: LineEdit = $"%maxPlayerInput"
|
@onready var portInput: LineEdit = $%portInput
|
||||||
@onready var connectionState: Label = $"%connectionState"
|
@onready var launchBtn: Button = $%launchBtn
|
||||||
@onready var disconnectBtn: Button = $"%disconnectBtn"
|
@onready var connectBtn: Button = $%connectBtn
|
||||||
@onready var playerNameInput: LineEdit = $"%playerNameInput"
|
@onready var maxPlayerInput: LineEdit = $%maxPlayerInput
|
||||||
|
@onready var connectionState: Label = $%connectionState
|
||||||
|
@onready var disconnectBtn: Button = $%disconnectBtn
|
||||||
|
@onready var serverConfig: VBoxContainer = $%serverConfig
|
||||||
|
@onready var players: VBoxContainer = $%players
|
||||||
|
@onready var playersList: VBoxContainer = $%list
|
||||||
|
|
||||||
var historyStack
|
var historyStack
|
||||||
@onready var serverConfig: VBoxContainer = $"%serverConfig"
|
|
||||||
@onready var players: VBoxContainer = $"%players"
|
|
||||||
@onready var playersList: VBoxContainer = $"%list"
|
|
||||||
|
|
||||||
static var buildingShader: bool = true
|
static var buildingShader: bool = true
|
||||||
|
static var selectingFeed: bool = true
|
||||||
|
static var GAMEMODE_MAP_WAVE = [Wave.WAVE_NORMAL, Wave.WAVE_BOSSRUSH, Wave.WAVE_MOWING]
|
||||||
|
|
||||||
@rpc("any_peer")
|
@rpc("any_peer")
|
||||||
func mutexPlayer(player: String):
|
func mutexPlayer(player: String):
|
||||||
@@ -66,6 +71,7 @@ func startMultiplayerGame():
|
|||||||
func startSingleplayerGame():
|
func startSingleplayerGame():
|
||||||
MultiplayerState.isMultiplayer = false
|
MultiplayerState.isMultiplayer = false
|
||||||
MultiplayerState.playerName = playerNameInput.text
|
MultiplayerState.playerName = playerNameInput.text
|
||||||
|
Wave.usingWaveData = GAMEMODE_MAP_WAVE[gamemodeOption.selected]
|
||||||
UIState.player = EntityBase.generatePlayer(playerNameInput.text)
|
UIState.player = EntityBase.generatePlayer(playerNameInput.text)
|
||||||
WorldManager.rootNode.spawnWave(Vector2.ZERO)
|
WorldManager.rootNode.spawnWave(Vector2.ZERO)
|
||||||
UIState.setPanel("CompilingTip")
|
UIState.setPanel("CompilingTip")
|
||||||
|
|||||||
+12
-21
@@ -22,6 +22,8 @@ func duplicate() -> Wave:
|
|||||||
wave.per = per
|
wave.per = per
|
||||||
return wave
|
return wave
|
||||||
|
|
||||||
|
static var GAME_BOSSES = ["Chick", "Deepsea", "KukeMC", "CyberCat", "Kernyr", "EnergyBlock", "Bear"]
|
||||||
|
|
||||||
static var WAVE_NORMAL = [
|
static var WAVE_NORMAL = [
|
||||||
Wave.create("Hen", 1, 3, false, 2, INF, 1),
|
Wave.create("Hen", 1, 3, false, 2, INF, 1),
|
||||||
Wave.create("Cat", 1, 5, false, 0, INF, 1),
|
Wave.create("Cat", 1, 5, false, 0, INF, 1),
|
||||||
@@ -31,19 +33,7 @@ static var WAVE_NORMAL = [
|
|||||||
Wave.create("KukeMC", 0, 0, true, 19, INF, 20),
|
Wave.create("KukeMC", 0, 0, true, 19, INF, 20),
|
||||||
Wave.create("Bear", 0, 0, true, 29, INF, 23),
|
Wave.create("Bear", 0, 0, true, 29, INF, 23),
|
||||||
]
|
]
|
||||||
static var WAVE_TESTBOSS = [
|
static var WAVE_BOSSRUSH = ArrayTool.betterMap(GAME_BOSSES, func(x: String, i: int, _arr: Array): return Wave.create(x, 0, 0, true, i, INF, len(GAME_BOSSES)))
|
||||||
Wave.create("Deepsea", 0, 0, true, 0, INF, 6),
|
|
||||||
Wave.create("Kernyr", 0, 0, true, 1, INF, 6),
|
|
||||||
Wave.create("CyberCat", 0, 0, true, 2, INF, 6),
|
|
||||||
Wave.create("Chick", 0, 0, true, 3, INF, 6),
|
|
||||||
Wave.create("KukeMC", 0, 0, true, 4, INF, 6),
|
|
||||||
Wave.create("Bear", 0, 0, true, 5, INF, 6),
|
|
||||||
]
|
|
||||||
static var WAVE_JUSTJOKE = [
|
|
||||||
Wave.create("Kernyr", 0, 0, true, 0, INF, 1),
|
|
||||||
Wave.create("CyberCat", 0, 0, true, 0, INF, 1),
|
|
||||||
Wave.create("Deepsea", 0, 0, true, 0, INF, 1)
|
|
||||||
]
|
|
||||||
static var WAVE_MOWING = [
|
static var WAVE_MOWING = [
|
||||||
Wave.create("Hen", 15, 30, false, 0, INF, 1),
|
Wave.create("Hen", 15, 30, false, 0, INF, 1),
|
||||||
Wave.create("Cat", 15, 30, false, 0, INF, 1),
|
Wave.create("Cat", 15, 30, false, 0, INF, 1),
|
||||||
@@ -51,16 +41,17 @@ static var WAVE_MOWING = [
|
|||||||
Wave.create("MTY", 0, 2, false, 0, INF, 1),
|
Wave.create("MTY", 0, 2, false, 0, INF, 1),
|
||||||
Wave.create("EnergyBlock", 0, 1, true, 0, INF, 1),
|
Wave.create("EnergyBlock", 0, 1, true, 0, INF, 1),
|
||||||
]
|
]
|
||||||
static var WAVE_TESTMOB = [
|
static var WAVE_TESTBOSS = [
|
||||||
Wave.create("EnergyBlock", 1, 1, true, 0, INF, 1),
|
Wave.create("EnergyBlock", 0, 0, true, 0, INF, 1),
|
||||||
# Wave.create("MTY", 1, 1, false, 0, INF, 1),
|
|
||||||
]
|
]
|
||||||
|
static var WAVE_TESTMOB = []
|
||||||
static var WAVE_EMPTY = []
|
static var WAVE_EMPTY = []
|
||||||
|
|
||||||
static var waveReleaseConfig = [WAVE_TESTBOSS, 1]
|
static var waveReleaseConfig = [WAVE_TESTBOSS, 1]
|
||||||
static var waveDebugConfig = [WAVE_TESTMOB, 1]
|
static var waveDebugConfig = [WAVE_TESTMOB, 1]
|
||||||
|
|
||||||
static var current: int = startWith(waveReleaseConfig[1]) if WorldManager.isRelease() else startWith(waveDebugConfig[1])
|
static var current: int = startWith(waveReleaseConfig[1]) if WorldManager.isRelease() else startWith(waveDebugConfig[1])
|
||||||
static var data = waveReleaseConfig[0] if WorldManager.isRelease() else waveDebugConfig[0]
|
static var usingWaveData = waveReleaseConfig[0] if WorldManager.isRelease() else waveDebugConfig[0]
|
||||||
|
|
||||||
static func create(
|
static func create(
|
||||||
entity_: String,
|
entity_: String,
|
||||||
@@ -81,7 +72,7 @@ static func create(
|
|||||||
wave.per = per_
|
wave.per = per_
|
||||||
return wave
|
return wave
|
||||||
static func hasBoss() -> bool:
|
static func hasBoss() -> bool:
|
||||||
for wave in data:
|
for wave in usingWaveData:
|
||||||
if canSpawn(wave):
|
if canSpawn(wave):
|
||||||
if wave.isBoss:
|
if wave.isBoss:
|
||||||
return true
|
return true
|
||||||
@@ -98,7 +89,7 @@ static func entityCountOf(wave: Wave) -> int:
|
|||||||
static func getNextBossInfo() -> Array:
|
static func getNextBossInfo() -> Array:
|
||||||
var nextBossName = ""
|
var nextBossName = ""
|
||||||
var minWavesLeft = INF
|
var minWavesLeft = INF
|
||||||
for wave in data:
|
for wave in usingWaveData:
|
||||||
if wave.isBoss:
|
if wave.isBoss:
|
||||||
var wavesLeft = wave.from - current
|
var wavesLeft = wave.from - current
|
||||||
if wavesLeft > 0 and wavesLeft < minWavesLeft:
|
if wavesLeft > 0 and wavesLeft < minWavesLeft:
|
||||||
@@ -109,8 +100,8 @@ static func getNextBossInfo() -> Array:
|
|||||||
return []
|
return []
|
||||||
static func spawn(center: Vector2) -> Array:
|
static func spawn(center: Vector2) -> Array:
|
||||||
var result: Array = []
|
var result: Array = []
|
||||||
for i in range(len(data)):
|
for i in range(len(usingWaveData)):
|
||||||
var wave: Wave = data[i]
|
var wave: Wave = usingWaveData[i]
|
||||||
for j in range(entityCountOf(wave)):
|
for j in range(entityCountOf(wave)):
|
||||||
var currentWave = wave.duplicate()
|
var currentWave = wave.duplicate()
|
||||||
currentWave.entityPosition = MathTool.sampleInRing(400, 800) + center
|
currentWave.entityPosition = MathTool.sampleInRing(400, 800) + center
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ func _ready():
|
|||||||
for i in weaponStore.get_children():
|
for i in weaponStore.get_children():
|
||||||
i.free()
|
i.free()
|
||||||
weaponStore.add_child(ComponentManager.getWeapon("PurpleCrystal").instantiate())
|
weaponStore.add_child(ComponentManager.getWeapon("PurpleCrystal").instantiate())
|
||||||
weaponStore.add_child(MathTool.randomChoiceFrom(ComponentManager.weapons.values()).instantiate())
|
|
||||||
for i in weaponStore.get_children():
|
for i in weaponStore.get_children():
|
||||||
i.hide()
|
i.hide()
|
||||||
weapons.append(i)
|
weapons.append(i)
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ static var energyPercent: ColorBar
|
|||||||
static var itemCollect: VBoxContainer
|
static var itemCollect: VBoxContainer
|
||||||
static var skillIconContainer: HBoxContainer
|
static var skillIconContainer: HBoxContainer
|
||||||
static var tips: VBoxContainer
|
static var tips: VBoxContainer
|
||||||
|
static var itemsContainer: Control
|
||||||
|
static var energyContainer: Control
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
bossbar = $%bossbar
|
bossbar = $%bossbar
|
||||||
@@ -23,6 +25,8 @@ func _ready():
|
|||||||
items = $%items
|
items = $%items
|
||||||
fields = $%fields
|
fields = $%fields
|
||||||
fieldsAnimator = $%fieldsAnimator
|
fieldsAnimator = $%fieldsAnimator
|
||||||
|
itemsContainer = $%itemsContainer
|
||||||
|
energyContainer = $%energyContainer
|
||||||
await get_tree().process_frame
|
await get_tree().process_frame
|
||||||
for panel in ComponentManager.panels:
|
for panel in ComponentManager.panels:
|
||||||
panel = ComponentManager.getPanel(panel).instantiate() as FullscreenPanelBase
|
panel = ComponentManager.getPanel(panel).instantiate() as FullscreenPanelBase
|
||||||
@@ -32,10 +36,17 @@ func _ready():
|
|||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
bossbar.visible = !!bossbar.entity
|
bossbar.visible = !!bossbar.entity
|
||||||
func _physics_process(_delta):
|
func _physics_process(_delta):
|
||||||
if is_instance_valid(player):
|
if is_instance_valid(player) && !StarterPanel.selectingFeed:
|
||||||
for i in items.get_children():
|
for i in items.get_children():
|
||||||
var item = i as ItemShow
|
var item = i as ItemShow
|
||||||
item.count = player.inventory.get(item.type)
|
item.count = player.inventory.get(item.type)
|
||||||
|
bossbar.visible = true
|
||||||
|
itemsContainer.visible = true
|
||||||
|
energyContainer.visible = true
|
||||||
|
else:
|
||||||
|
bossbar.visible = false
|
||||||
|
itemsContainer.visible = false
|
||||||
|
energyContainer.visible = false
|
||||||
if currentPanel:
|
if currentPanel:
|
||||||
WorldManager.rootNode.process_mode = Node.PROCESS_MODE_DISABLED
|
WorldManager.rootNode.process_mode = Node.PROCESS_MODE_DISABLED
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -19,3 +19,8 @@ static func parseEncodedObject(arr: Array) -> Array:
|
|||||||
else:
|
else:
|
||||||
result.append(item)
|
result.append(item)
|
||||||
return result
|
return result
|
||||||
|
static func betterMap(arr: Array, executor: Callable) -> Array:
|
||||||
|
var result = []
|
||||||
|
for index in len(arr):
|
||||||
|
result.append(executor.call(arr[index], index, arr))
|
||||||
|
return result
|
||||||
|
|||||||
@@ -159,5 +159,7 @@ LineEdit/icons/clear = SubResource("DPITexture_7d6gw")
|
|||||||
LineEdit/styles/focus = SubResource("StyleBoxEmpty_wc0q8")
|
LineEdit/styles/focus = SubResource("StyleBoxEmpty_wc0q8")
|
||||||
LineEdit/styles/normal = SubResource("StyleBoxFlat_kx4sy")
|
LineEdit/styles/normal = SubResource("StyleBoxFlat_kx4sy")
|
||||||
LineEdit/styles/read_only = SubResource("StyleBoxFlat_k5u3e")
|
LineEdit/styles/read_only = SubResource("StyleBoxFlat_k5u3e")
|
||||||
|
OptionButton/constants/arrow_margin = 8
|
||||||
|
OptionButton/icons/arrow = ExtResource("1_0avsd")
|
||||||
ProgressBar/styles/background = SubResource("StyleBoxFlat_a507o")
|
ProgressBar/styles/background = SubResource("StyleBoxFlat_a507o")
|
||||||
ProgressBar/styles/fill = SubResource("StyleBoxFlat_ef7vq")
|
ProgressBar/styles/fill = SubResource("StyleBoxFlat_ef7vq")
|
||||||
|
|||||||
Reference in New Issue
Block a user