diff --git a/Celestium/18-Midsummer_Night's_Explosion.cs b/Celestium/Celestium.cs similarity index 64% rename from Celestium/18-Midsummer_Night's_Explosion.cs rename to Celestium/Celestium.cs index 885a77d..ede040c 100644 --- a/Celestium/18-Midsummer_Night's_Explosion.cs +++ b/Celestium/Celestium.cs @@ -18,26 +18,47 @@ using ECommons.GameFunctions; using ECommons.MathHelpers; using System.Threading.Tasks; -namespace Midsummer_Night_s_Explosion; +namespace Celestium; -[ScriptType(guid: "7703f1a9-5698-4896-8908-bb8e415c1321", name: "天青斗场18 - 爆破死斗", territorys: [796], - version: "0.0.0.3", author: "Tetora", note: noteStr)] +[ScriptType(guid: "7703f1a9-5698-4896-8908-bb8e415c1321", name: "天青斗场", territorys: [796], + version: "0.0.0.4", author: "Tetora", note: noteStr)] -public class Midsummer_Night_s_Explosion { +public class Celestium { const string noteStr = """ - v0.0.0.3: - 天青斗场第18层 爆破死斗绘制 + v0.0.0.4: + 天青斗场绘制,随缘更新中 + 若无法更新请删除后刷新重新下载 + 目前支持层数:18 [爆破死斗] """; + + #region 基础控制 + + [UserSetting("TTS开关(TTS请二选一开启)")] + public bool isTTS { get; set; } = false; + + [UserSetting("EdgeTTS开关(TTS请二选一开启)")] + public bool isEdgeTTS { get; set; } = true; + + [UserSetting("弹窗文本提示开关")] + public bool isText { get; set; } = true; + + #endregion + #region 18:爆破死斗 + + [ScriptMethod(name: "—————— 18:爆破死斗 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第18层(Event @event, ScriptAccessory accessory) { } + [ScriptMethod(name: "狂野冲锋(直线击退)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15055"])] public void 狂野冲锋(Event @event, ScriptAccessory accessory) { - accessory.Method.EdgeTTS("冲锋击退"); + if(isTTS) accessory.Method.TTS("冲锋击退"); + if(isEdgeTTS) accessory.Method.EdgeTTS("冲锋击退"); var dp = accessory.Data.GetDefaultDrawProperties(); - dp.Name = "狂野冲锋"; + dp.Name = $"狂野冲锋{@event.SourceId()}"; dp.Scale = new (8f); dp.ScaleMode |= ScaleMode.YByDistance; dp.Owner = @event.SourceId(); @@ -47,11 +68,17 @@ public class Midsummer_Night_s_Explosion { accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp); } + [ScriptMethod(name: "狂野冲锋销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:15055"],userControl: false)] + public void 狂野冲锋销毁(Event @event, ScriptAccessory accessory) + { + accessory.Method.RemoveDraw($"狂野冲锋{@event.SourceId()}"); + } + [ScriptMethod(name: "撕裂利爪(顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15050"])] public void 撕裂利爪(Event @event, ScriptAccessory accessory) { var dp = accessory.Data.GetDefaultDrawProperties(); - dp.Name = "撕裂利爪"; + dp.Name = $"撕裂利爪{@event.SourceId()}"; dp.Color = accessory.Data.DefaultDangerColor; dp.Owner = @event.SourceId(); dp.Scale = new Vector2(8f); @@ -60,11 +87,37 @@ public class Midsummer_Night_s_Explosion { accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); } + [ScriptMethod(name: "撕裂利爪销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:15050"],userControl: false)] + public void 撕裂利爪销毁(Event @event, ScriptAccessory accessory) + { + accessory.Method.RemoveDraw($"撕裂利爪{@event.SourceId()}"); + } + + [ScriptMethod(name: "尾部碎击(扫尾)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15052"])] + public void 尾部碎击(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = $"尾部碎击{@event.SourceId()}"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(15f); + dp.Radian = 90f.DegToRad(); + dp.Rotation = 180f.DegToRad(); + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "尾部碎击销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:15052"],userControl: false)] + public void 尾部碎击销毁(Event @event, ScriptAccessory accessory) + { + accessory.Method.RemoveDraw($"尾部碎击{@event.SourceId()}"); + } + [ScriptMethod(name: "火球(面前圆形)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15051"])] public void 火球(Event @event, ScriptAccessory accessory) { var dp = accessory.Data.GetDefaultDrawProperties(); - dp.Name = "火球"; + dp.Name = $"火球{@event.SourceId()}"; dp.Color = accessory.Data.DefaultDangerColor; dp.Position = @event.EffectPosition(); dp.Scale = new Vector2(6f); @@ -72,6 +125,14 @@ public class Midsummer_Night_s_Explosion { accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); } + [ScriptMethod(name: "火球销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:15051"],userControl: false)] + public void 火球销毁(Event @event, ScriptAccessory accessory) + { + accessory.Method.RemoveDraw($"火球{@event.SourceId()}"); + } + + #endregion + } public static class EventExtensions { @@ -187,18 +248,3 @@ public static class EventExtensions } } - -public static class Extensions -{ - public static void TTS(this ScriptAccessory accessory, string text, bool isTTS, bool isDRTTS) - { - if (isDRTTS) - { - accessory.Method.SendChat($"/pdr tts {text}"); - } - else if (isTTS) - { - accessory.Method.TTS(text); - } - } -}