diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx index 10deb1a..ed8d65f 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx index 8d9efc9..63374e9 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx index 717252f..39e31d9 100644 --- a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx index 30c616f..7d13e52 100644 --- a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx index adbcf30..70020d3 100644 --- a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx index 56dd8b6..b952713 100644 --- a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx index b8161de..9ba4926 100644 --- a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx index 595e022..3f64326 100644 --- a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn index 6b0b303..ef1081d 100644 --- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0005.tscn @@ -1,8 +1,8 @@ [gd_scene load_steps=7 format=3 uid="uid://cjgnw37tqiqh7"] -[ext_resource type="Script" path="res://src/game/activity/bullet/normal/Bullet.cs" id="1_vpnof"] +[ext_resource type="Script" path="res://src/game/activity/bullet/normal/BrushBullet.cs" id="1_13wdl"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_v0al6"] -[ext_resource type="SpriteFrames" uid="uid://bcnhyin0aufl1" path="res://resource/spriteFrames/bullet/Bullet0003.tres" id="3_8mltb"] +[ext_resource type="SpriteFrames" uid="uid://jj8oh76pi53j" path="res://resource/spriteFrames/bullet/Bullet0005.tres" id="3_mmvqn"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_v77gw"] resource_local_to_scene = true @@ -14,6 +14,7 @@ shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 [sub_resource type="ShaderMaterial" id="ShaderMaterial_p0wfd"] resource_local_to_scene = true @@ -25,13 +26,16 @@ shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 [sub_resource type="RectangleShape2D" id="RectangleShape2D_c0onq"] -size = Vector2(6, 3.125) +size = Vector2(6, 3.5625) [node name="Bullet0005" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 -script = ExtResource("1_vpnof") +script = ExtResource("1_13wdl") +BrushId = "0004" +EffectiveAltitude = 1.0 CollisionArea = NodePath("AnimatedSprite/CollisionArea") CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D") ShadowSprite = NodePath("ShadowSprite") @@ -43,9 +47,8 @@ material = SubResource("ShaderMaterial_v77gw") [node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -modulate = Color(1.6, 1.6, 1.6, 1) material = SubResource("ShaderMaterial_p0wfd") -sprite_frames = ExtResource("3_8mltb") +sprite_frames = ExtResource("3_mmvqn") [node name="CollisionArea" type="Area2D" parent="AnimatedSprite"] visible = false diff --git a/DungeonShooting_Godot/prefab/test/TestActivity.tscn b/DungeonShooting_Godot/prefab/test/TestActivity.tscn deleted file mode 100644 index 203f1e7..0000000 --- a/DungeonShooting_Godot/prefab/test/TestActivity.tscn +++ /dev/null @@ -1,42 +0,0 @@ -[gd_scene load_steps=7 format=3] - -[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1"] -[ext_resource type="Script" path="res://src/framework/activity/ActivityObjectTemplate.cs" id="2"] -[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="3"] - - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_rxkv3"] -resource_local_to_scene = true -shader = ExtResource("1") -shader_parameter/blend = Color(0, 0, 0, 0.470588) -shader_parameter/schedule = 1 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_aaga8"] -resource_local_to_scene = true -shader = ExtResource("1") -shader_parameter/blend = Color(1, 1, 1, 1) -shader_parameter/schedule = 0 - -[sub_resource type="SpriteFrames" id="SpriteFrames_kkdcb"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("3") -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] - -[node name="TestActivity" type="Node"] -script = ExtResource("2") - -[node name="ShadowSprite" type="Sprite2D" parent="."] -z_index = -5 -material = SubResource("ShaderMaterial_rxkv3") - -[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] -material = SubResource("ShaderMaterial_aaga8") -sprite_frames = SubResource("SpriteFrames_kkdcb") - -[node name="Collision" type="CollisionShape2D" parent="."] diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json index 8d049da..93c1152 100644 --- a/DungeonShooting_Godot/resource/config/ActivityBase.json +++ b/DungeonShooting_Godot/resource/config/ActivityBase.json @@ -194,7 +194,7 @@ { "Id": "bullet0005", "Type": 6, - "Name": "\u654C\u65B9\u4E13\u7528\u5B50\u5F39", + "Name": "\u629B\u7269\u7EBF\u7C98\u6DB2\u5B50\u5F39", "Intro": "", "Details": "", "IsStatic": false, diff --git a/DungeonShooting_Godot/resource/config/BulletBase.json b/DungeonShooting_Godot/resource/config/BulletBase.json index 1d45efc..dff8861 100644 --- a/DungeonShooting_Godot/resource/config/BulletBase.json +++ b/DungeonShooting_Godot/resource/config/BulletBase.json @@ -177,7 +177,7 @@ }, { "Id": "0006", - "Name": "\u654C\u65B9\u4E13\u7528\u5B50\u5F39", + "Name": "\u629B\u7269\u7EBF\u7C98\u6DB2\u5B50\u5F39", "Type": 1, "Prefab": "bullet0005", "HarmRange": [ diff --git a/DungeonShooting_Godot/resource/config/LiquidMaterial.json b/DungeonShooting_Godot/resource/config/LiquidMaterial.json index bd94e3b..ba10e25 100644 --- a/DungeonShooting_Godot/resource/config/LiquidMaterial.json +++ b/DungeonShooting_Godot/resource/config/LiquidMaterial.json @@ -17,10 +17,18 @@ }, { "Id": "0003", - "Remark": "\u8840\u6DB2", + "Remark": "\u8840\u6DB2(\u6700\u5C0F\u7B14\u5237)", "BurshTexture": "res://resource/sprite/brush/Brush4.png", "Ffm": 0.5, - "Duration": 6, + "Duration": 12, + "WriteOffSpeed": 0.2 + }, + { + "Id": "0004", + "Remark": "\u7C98\u6DB2(\u6700\u5C0F\u7B14\u5237)", + "BurshTexture": "res://resource/sprite/brush/Brush5.png", + "Ffm": 0.5, + "Duration": 5, "WriteOffSpeed": 0.2 } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/sprite/brush/Brush5.png b/DungeonShooting_Godot/resource/sprite/brush/Brush5.png new file mode 100644 index 0000000..0d36bb0 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/brush/Brush5.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/brush/Brush5.png.import b/DungeonShooting_Godot/resource/sprite/brush/Brush5.png.import new file mode 100644 index 0000000..cb793aa --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/brush/Brush5.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsqowv1dswkci" +path="res://.godot/imported/Brush5.png-ad7fa73ae4dca0a5e86aca7805550870.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/brush/Brush5.png" +dest_files=["res://.godot/imported/Brush5.png-ad7fa73ae4dca0a5e86aca7805550870.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0005.png b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0005.png new file mode 100644 index 0000000..7844c54 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0005.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0005.png.import b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0005.png.import new file mode 100644 index 0000000..3791292 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwk72cqlmii5b" +path="res://.godot/imported/bullet0005.png-140cec2433af182a66a845defdf21e80.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/normal/bullet0005.png" +dest_files=["res://.godot/imported/bullet0005.png-140cec2433af182a66a845defdf21e80.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0005.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0005.tres new file mode 100644 index 0000000..49e5677 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0005.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://jj8oh76pi53j"] + +[ext_resource type="Texture2D" uid="uid://cwk72cqlmii5b" path="res://resource/sprite/bullet/normal/bullet0005.png" id="1_qmb1b"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_qmb1b") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs index 02b1b5e..79056c5 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs @@ -89,7 +89,7 @@ /// public const string Id_bullet0004 = "bullet0004"; /// - /// 名称: 敌方专用子弹
+ /// 名称: 抛物线粘液子弹
/// 简介: ///
public const string Id_bullet0005 = "bullet0005"; diff --git a/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs b/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs index 2a03b61..bff2c40 100644 --- a/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs +++ b/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs @@ -51,7 +51,7 @@ { if (_prevRoomInfo != roomInfo) { - Debug.Log($"切换房间: {_prevRoomInfo?.Id} => {roomInfo.Id}"); + //Debug.Log($"切换房间: {_prevRoomInfo?.Id} => {roomInfo.Id}"); if (_prevRoomInfo != null) { //房间变暗 @@ -88,7 +88,7 @@ _prevRoomInfo = roomInfo; } - Debug.Log("RefreshRoomFog: " + roomInfo.Id); + //Debug.Log("RefreshRoomFog: " + roomInfo.Id); var fogMask = roomInfo.RoomFogMask; if (!fogMask.IsExplored) //未探索该区域 @@ -139,7 +139,7 @@ private static void _RefreshAisleFog(RoomDoorInfo doorInfo) { - Debug.Log("RefreshAisleFog: " + doorInfo.RoomInfo.Id + doorInfo.Direction); + //Debug.Log("RefreshAisleFog: " + doorInfo.RoomInfo.Id + doorInfo.Direction); var fogMask = doorInfo.AisleFogMask; var connectDoor = doorInfo.ConnectDoor; diff --git a/DungeonShooting_Godot/src/framework/map/liquid/LiquidCanvas.cs b/DungeonShooting_Godot/src/framework/map/liquid/LiquidCanvas.cs index 0cebaec..374e64f 100644 --- a/DungeonShooting_Godot/src/framework/map/liquid/LiquidCanvas.cs +++ b/DungeonShooting_Godot/src/framework/map/liquid/LiquidCanvas.cs @@ -189,7 +189,7 @@ var len = offset.Length(); if (len > maxL) //距离太大了, 需要补间 { - Debug.Log($"距离太大了, 启用补间: len: {len}, maxL: {maxL}"); + //Debug.Log($"距离太大了, 启用补间: len: {len}, maxL: {maxL}"); var count = Mathf.CeilToInt(len / maxL); var step = new Vector2(offset.X / count, offset.Y / count); var prevPos = prevPosition.Value - center; diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/BrushBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/BrushBullet.cs new file mode 100644 index 0000000..15809f5 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/BrushBullet.cs @@ -0,0 +1,48 @@ + +using Godot; + +/// +/// 带笔刷的子弹 +/// +[Tool] +public partial class BrushBullet : Bullet +{ + /// + /// 笔刷 id + /// + [Export] + public string BrushId { get; set; } + + /// + /// 生效高度, 当物体离地高度小于这个值时生效, 当值小于 0 时一直生效 + /// + [Export] + public float EffectiveAltitude { get; set; } = -1; + + private BrushImageData _brushData; + private Vector2I? _prevPosition; + + public override void OnInit() + { + base.OnInit(); + _brushData = LiquidBrushManager.GetBrush(BrushId); + } + + protected override void Process(float delta) + { + base.Process(delta); + //测试笔刷 + if ((EffectiveAltitude < 0 || Altitude <= EffectiveAltitude)&& AffiliationArea != null) + { + var pos = AffiliationArea.RoomInfo.LiquidCanvas.ToLiquidCanvasPosition(Position); + AffiliationArea.RoomInfo.LiquidCanvas.DrawBrush(_brushData, _prevPosition, pos, 0); + _prevPosition = pos; + } + } + + public override void OnLeavePool() + { + base.OnLeavePool(); + _prevPosition = null; + } +} \ No newline at end of file