diff --git a/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs b/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs
index 9d5a950..10ccbeb 100644
--- a/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs
+++ b/DungeonShooting_Godot/addons/dungeonShooting_plugin/Plugin.cs
@@ -45,27 +45,16 @@
{
RemoveCustomType("ActivityObjectTemplate");
RemoveCustomType("DungeonRoomTemplate");
+ RemoveCustomType("ActivityMark");
+ RemoveCustomType("EnemyMark");
+ RemoveCustomType("WeaponMark");
+
if (dock != null)
{
RemoveControlFromDocks(dock);
dock.Free();
}
}
-
- /*public override bool Handles(Object @object)
- {
- if (@object is Node node)
- {
- node.
- GD.Print("node: " + (node.GetScript() == activityObjectTemplateScript));
- /*GD.Print("---------------------- 1: " + objectTemplate.Name);
- var sp = new Sprite2D();
- sp.Name = "Sprite2D";
- objectTemplate.AddChild(sp);
- sp.Owner = objectTemplate.Owner;#1#
- }
- return base.Handles(@object);
- }*/
}
}
diff --git a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs
index d3a167e..d41dc9f 100644
--- a/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs
+++ b/DungeonShooting_Godot/src/framework/map/mark/ActivityMark.cs
@@ -31,6 +31,12 @@
///
[Export]
public int WaveNumber = 1;
+
+ ///
+ /// 延时执行时间,单位:秒
+ ///
+ [Export]
+ public float DelayTime = 0;
///
/// 绘制的颜色
@@ -46,18 +52,34 @@
}
///
+ /// 标记准备好了
+ ///
+ public void BeReady(RoomInfo roomInfo)
+ {
+ OnBeReady(roomInfo);
+ }
+
+ ///
/// 调用该函数表示该标记可以生成物体了, 使用标记创建实例必须调用 CreateInstance(id)
///
- public virtual void BeReady(RoomInfo roomInfo)
+ public virtual void OnBeReady(RoomInfo roomInfo)
{
- var instance = ActivityObject.Create(GetItemId());
- instance.PutDown(GlobalPosition, Layer);
+ CreateInstance(GetItemId());
Visible = false;
}
+ ///
+ /// 创建实例,并放入场景中,使用标记创建实例必须调用 CreateInstance(id)
+ ///
protected T CreateInstance(string id) where T : ActivityObject
{
- return default;
+ var instance = ActivityObject.Create(id);
+ instance.PutDown(GlobalPosition, Layer);
+ if (instance is Enemy)
+ {
+
+ }
+ return instance;
}
public override void _Draw()
diff --git a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs
index 7c8dba4..6175083 100644
--- a/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs
+++ b/DungeonShooting_Godot/src/framework/map/mark/EnemyMark.cs
@@ -55,7 +55,7 @@
Layer = RoomLayerEnum.YSortLayer;
}
- public override void BeReady(RoomInfo roomInfo)
+ public override void OnBeReady(RoomInfo roomInfo)
{
var pos = GlobalPosition;
//创建敌人
diff --git a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs
index 7d2d3bd..4bd95da 100644
--- a/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs
+++ b/DungeonShooting_Godot/src/framework/map/mark/WeaponMark.cs
@@ -26,7 +26,7 @@
Layer = RoomLayerEnum.NormalLayer;
}
- public override void BeReady(RoomInfo roomInfo)
+ public override void OnBeReady(RoomInfo roomInfo)
{
//创建武器
var instance = ActivityObject.Create(GetItemId());