diff --git a/components/Abstracts/WeaponCardBase.tscn b/components/Abstracts/WeaponCardBase.tscn index ebd1b6a..639833e 100644 --- a/components/Abstracts/WeaponCardBase.tscn +++ b/components/Abstracts/WeaponCardBase.tscn @@ -28,6 +28,7 @@ offset_right = 350.0 offset_bottom = 304.0 theme_override_styles/panel = SubResource("StyleBoxFlat_n2ewr") script = ExtResource("1_g802t") +debugRebuild = true metadata/_edit_lock_ = true [node name="sounds" type="Node2D" parent="."] @@ -111,7 +112,7 @@ displayName = "未命名饲料" unique_name_in_owner = true layout_mode = 2 bbcode_enabled = true -text = "[center]造成[color=cyan]10.00[/color]点伤害。[/center]" +text = "[center]造成[color=cyan]10[/color]点伤害。[/center]" fit_content = true [node name="costs" type="GridContainer" parent="container"] diff --git a/components/Bullets/BossAttack/KukeMC/HeavyCrystal.tscn b/components/Bullets/BossAttack/KukeMC/HeavyCrystal.tscn new file mode 100644 index 0000000..0e8f914 --- /dev/null +++ b/components/Bullets/BossAttack/KukeMC/HeavyCrystal.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=5 format=3 uid="uid://dxd6ikymj0fge"] + +[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_mf7ha"] +[ext_resource type="Script" path="res://scripts/Statemachine/ShaderStage.gd" id="2_75div"] +[ext_resource type="Shader" path="res://shaders/Ring.gdshader" id="2_utujj"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1i43q"] +shader = ExtResource("2_utujj") +shader_parameter/inner = 0.5 +shader_parameter/outer = 0.75 + +[node name="BulletBase" instance=ExtResource("1_mf7ha")] + +[node name="track" type="Node2D" parent="texture" index="1"] +material = SubResource("ShaderMaterial_1i43q") +script = ExtResource("2_75div") diff --git a/components/Weapons/BigLaser.tscn b/components/Weapons/BigLaser.tscn index 582417a..4e25ae1 100644 --- a/components/Weapons/BigLaser.tscn +++ b/components/Weapons/BigLaser.tscn @@ -20,9 +20,8 @@ storeType = { "time": 0.0 } descriptionTemplate = "每$time秒造成$atk点伤害。" -needEnergy = 100.0 +needEnergy = 200.0 cooldown = 6000.0 -debugRebuild = true [node name="attack" parent="sounds" index="0"] stream = ExtResource("4_cb5nh") @@ -31,10 +30,7 @@ stream = ExtResource("4_cb5nh") texture = ExtResource("2_qe8gb") [node name="energy" parent="container/info/infos/energyInfo" index="1"] -text = "100.0" - -[node name="beachball" parent="container/info/infos/beachballInfo" index="1"] -text = "500" +text = "200.0" [node name="name" parent="container/info" index="2"] displayName = "湮灭激光" diff --git a/scripts/Contents/Characters/KukeChild.gd b/scripts/Contents/Characters/KukeChild.gd index 6938cfa..4296ca0 100644 --- a/scripts/Contents/Characters/KukeChild.gd +++ b/scripts/Contents/Characters/KukeChild.gd @@ -4,8 +4,7 @@ var masterMine: KukeMC func register(): fields[FieldStore.Entity.MAX_HEALTH] = 25 - fields[FieldStore.Entity.OFFSET_SHOOT] = 5 - fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.25 + fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.35 attackCooldownMap[0] = 50 func ai(): PresetEntityAI.follow(self, currentFocusedBoss, 700) diff --git a/scripts/Contents/Characters/KukeMC.gd b/scripts/Contents/Characters/KukeMC.gd index 5fc0d7b..7563f5a 100644 --- a/scripts/Contents/Characters/KukeMC.gd +++ b/scripts/Contents/Characters/KukeMC.gd @@ -3,7 +3,6 @@ class_name KukeMC func register(): fields[FieldStore.Entity.MAX_HEALTH] = 2500 - fields[FieldStore.Entity.OFFSET_SHOOT] = 25 fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.5 attackCooldownMap[0] = 2000 attackCooldownMap[1] = 5000 @@ -30,6 +29,7 @@ func ai(): func attack(type): if type == 0: for i in randi_range(8, 16): + fields[FieldStore.Entity.OFFSET_SHOOT] = 25 BulletBase.generate(preload("res://components/Bullets/PurpleCrystal.tscn"), self, findWeaponAnchor("normal"), position.angle_to_point(currentFocusedBoss.position)) await TickTool.millseconds(randi_range(10, 50)) elif type == 1: @@ -38,9 +38,10 @@ func attack(type): child.currentFocusedBoss = currentFocusedBoss child.masterMine = self elif type == 2: - var count = randi_range(50, 60) + var count = randi_range(60, 80) for i in count: var count1 = 3 for j in count1: + fields[FieldStore.Entity.OFFSET_SHOOT] = 0 BulletBase.generate(preload("res://components/Bullets/PurpleCrystal.tscn"), self, findWeaponAnchor("normal"), 360.0 / count * i + 360.0 / count1 * j) await TickTool.millseconds(50) diff --git a/scripts/Contents/Wave.gd b/scripts/Contents/Wave.gd index c5c3a46..869bd03 100644 --- a/scripts/Contents/Wave.gd +++ b/scripts/Contents/Wave.gd @@ -17,7 +17,7 @@ static var WAVE_NORMAL = [ ] static var WAVE_TESTBOSS = [ # Wave.create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 0, INF, 10), - Wave.create(preload("res://components/Characters/KukeMC.tscn"), 0, 0, true, 1, INF, 10), + Wave.create(preload("res://components/Characters/KukeMC.tscn"), 0, 0, true, 0, INF, 10), # Wave.create(preload("res://components/Characters/Bear.tscn"), 0, 0, true, 2, INF, 10), ] static var data = WAVE_TESTBOSS diff --git a/scripts/Structs/Weapon.gd b/scripts/Structs/Weapon.gd index 8fe4fa8..6439e9a 100644 --- a/scripts/Structs/Weapon.gd +++ b/scripts/Structs/Weapon.gd @@ -11,7 +11,7 @@ class_name Weapon "atk": 10 } @export var storeType: Dictionary = { - "atk": FieldStore.DataType.VALUE + "atk": FieldStore.DataType.INTEGER } @export var descriptionTemplate: String = "造成$atk点伤害。" @export var needEnergy: float = 0 diff --git a/shaders/Ring.gdshader b/shaders/Ring.gdshader new file mode 100644 index 0000000..3d24b2f --- /dev/null +++ b/shaders/Ring.gdshader @@ -0,0 +1,8 @@ +shader_type canvas_item; +uniform float inner:hint_range(0.0, 1.0, 0.01)=0.5; +uniform float outer:hint_range(0.0, 1.0, 0.01)=0.75; +void fragment() { + vec2 center=vec2(0.5); + float dist=distance(UV,center)*2.0; + COLOR.a=float(inner