提交BA测试绘制

This commit is contained in:
南沢响也
2025-08-07 16:43:57 +08:00
parent 3485212c99
commit 527c698fbd

View File

@@ -22,20 +22,56 @@ namespace The_Baldesion_Arsenal_Eureka;
[ScriptType(guid: "cb001385-81e0-4c16-8bb3-fb51fd70336a", name: "禁地优雷卡 - 巴尔德西昂兵武塔", territorys: [827], [ScriptType(guid: "cb001385-81e0-4c16-8bb3-fb51fd70336a", name: "禁地优雷卡 - 巴尔德西昂兵武塔", territorys: [827],
version: "0.0.0.2", author: "Tetora", note: noteStr)] version: "0.0.0.3", author: "Tetora", note: noteStr)]
public class The_Baldesion_Arsenal public class The_Baldesion_Arsenal
{ {
const string noteStr = const string noteStr =
""" """
v0.0.0.2: v0.0.0.3:
- 西 - 西
"""; """;
#region #region
//全局
//7538 插言 7551 伤头 7540 下踢 7863 扫腿 25880 催眠 16560 沉静 [UserSetting("TTS开关TTS请二选一开启")]
public bool isTTS { get; set; } = false;
[UserSetting("EdgeTTS开关TTS请二选一开启")]
public bool isEdgeTTS { get; set; } = true;
[UserSetting("关闭与ACT冲突的TTS")]
public bool isACT { get; set; } = true;
[UserSetting("弹窗文本提示开关")]
public bool isText { get; set; } = true;
[UserSetting("开发者模式")]
public bool isDeveloper { get; set; } = false;
#endregion
#region
uint AstralEssence = 0; // 光之腕
uint UmbralEssence = 0; // 暗之腕
uint ball = 0; // 球形态
uint Cube = 0; // 立方体形态
uint Pyramid = 0; // 三角锥形态
uint Stellation = 0; // 星形多面体状态
public void Init(ScriptAccessory accessory) {
AstralEssence = 0;
UmbralEssence = 0;
ball = 0;
Cube = 0;
Pyramid = 0;
Stellation = 0;
}
// ActionId: 7538 插言 7551 伤头 7540 下踢 7863 扫腿 25880 催眠 16560 沉静 ; 139 神圣
[ScriptMethod(name: "伤头 & 插言 打断销毁", eventType: EventTypeEnum.ActionEffect, userControl: false, [ScriptMethod(name: "伤头 & 插言 打断销毁", eventType: EventTypeEnum.ActionEffect, userControl: false,
eventCondition: ["ActionId:regex:^(7538|7551)$"] )] eventCondition: ["ActionId:regex:^(7538|7551)$"] )]
@@ -45,7 +81,7 @@ public class The_Baldesion_Arsenal
} }
[ScriptMethod(name: "眩晕打断销毁", eventType: EventTypeEnum.ActionEffect, userControl: false, [ScriptMethod(name: "眩晕打断销毁", eventType: EventTypeEnum.ActionEffect, userControl: false,
eventCondition: ["ActionId:regex:^(7540|7863)$"] )] eventCondition: ["ActionId:regex:^(139|7540|7863)$"] )]
public void (Event @event, ScriptAccessory accessory) public void (Event @event, ScriptAccessory accessory)
{ {
accessory.Method.RemoveDraw($"兵武元精_强放逐{@event.SourceId()}"); accessory.Method.RemoveDraw($"兵武元精_强放逐{@event.SourceId()}");
@@ -57,11 +93,110 @@ public class The_Baldesion_Arsenal
{ {
// accessory.Method.RemoveDraw($"暂时还没有{@event.TargetId()}"); // accessory.Method.RemoveDraw($"暂时还没有{@event.TargetId()}");
} }
[ScriptMethod(name: "防击退销毁", eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:regex:^(7548|7559)$"],userControl: false)]
public void 退(Event @event, ScriptAccessory accessory)
{
if ( @event.TargetId() != accessory.Data.Me) return;
accessory.Method.RemoveDraw(".*击退.*");
}
#endregion #endregion
#region #region
// 入口小怪
[ScriptMethod(name: "兵武比布鲁斯 尾部碎击", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15356"])] [ScriptMethod(name: "—————— 小怪基础提示(此选项并无意义)——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:0"])]
public void (Event @event, ScriptAccessory accessory) { }
[ScriptMethod(name: "兵武智蛙_玩具锤 沉静提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15363"])]
public void _玩具锤(Event @event, ScriptAccessory accessory)
{
var isHealer = accessory.Data.MyObject?.IsHealer() ?? false;
if (isHealer || isDeveloper)
{
if (isText)accessory.Method.TextInfo("沉静 <兵武智蛙>", duration: 3000, true);
if (isACT) return;
if (isTTS)accessory.Method.TTS("沉静 <兵武智蛙>");
if (isEdgeTTS)accessory.Method.EdgeTTS("沉静 <兵武智蛙>");
}
}
[ScriptMethod(name: "兵武元精_强放逐 打断提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15383"])]
public void _强放逐提示(Event @event, ScriptAccessory accessory)
{
var isTank = accessory.Data.MyObject?.IsTank() ?? false;
if (isTank || isDeveloper)
{
if (isText)accessory.Method.TextInfo("打断 <兵武元精>", duration: 5300, true);
if (isACT) return;
if (isTTS)accessory.Method.TTS("打断 <兵武元精>");
if (isEdgeTTS)accessory.Method.EdgeTTS("打断 <兵武元精>");
}
}
[ScriptMethod(name: "兵武半人马_狂暴 沉静提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15358"])]
public void _狂暴(Event @event, ScriptAccessory accessory)
{
var isHealer = accessory.Data.MyObject?.IsHealer() ?? false;
if (isHealer || isDeveloper)
{
if (isText)accessory.Method.TextInfo("沉静 <兵武半人马>", duration: 3000, true);
if (isACT) return;
if (isTTS)accessory.Method.TTS("沉静 <半人马>");
if (isEdgeTTS)accessory.Method.EdgeTTS("沉静 <半人马>");
}
}
[ScriptMethod(name: "兵武卡尔克布莉娜_闹剧 沉静提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15368"])]
public void _闹剧(Event @event, ScriptAccessory accessory)
{
var isHealer = accessory.Data.MyObject?.IsHealer() ?? false;
if (isHealer || isDeveloper)
{
if (isText)accessory.Method.TextInfo("沉静 <兵武卡尔克布莉娜>", duration: 3000, true);
if (isACT) return;
if (isTTS)accessory.Method.TTS("沉静 <卡尔克布莉娜>");
if (isEdgeTTS)accessory.Method.EdgeTTS("沉静 <卡尔克布莉娜>");
}
}
[ScriptMethod(name: "兵武魔导书_沉默&麻痹 打断提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^153(21|76)$"])]
public void _沉默麻痹(Event @event, ScriptAccessory accessory)
{
var isTank = accessory.Data.MyObject?.IsTank() ?? false;
if (isTank || isDeveloper)
{
if (isText)accessory.Method.TextInfo("打断 <兵武魔导书>", duration: 4300, true);
if (isACT) return;
if (isTTS)accessory.Method.TTS("打断 <兵武魔导书>");
if (isEdgeTTS)accessory.Method.EdgeTTS("打断 <兵武魔导书>");
}
}
[ScriptMethod(name: "兵武博学林鸠_昏暗之章 打断提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15373"])]
public void _昏暗之章(Event @event, ScriptAccessory accessory)
{
// 实际上应该是博学林鸮,但是界面显示不出来鸮字所以找个形近字替代.jpg
var isTank = accessory.Data.MyObject?.IsTank() ?? false;
if (isTank || isDeveloper)
{
if (isText)accessory.Method.TextInfo("打断 <兵武博学林鸮>", duration: 2300, true);
if (isACT) return;
if (isTTS)accessory.Method.TTS("打断 <博学林鸮>");
if (isEdgeTTS)accessory.Method.EdgeTTS("打断 <博学林鸮>");
}
}
#endregion
#region
[ScriptMethod(name: "—————— 技能绘制(此选项并无意义)——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:0"])]
public void (Event @event, ScriptAccessory accessory) { }
[ScriptMethod(name: "兵武比布鲁斯_尾部碎击扫尾", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15356"])]
public void _尾部碎击(Event @event, ScriptAccessory accessory) public void _尾部碎击(Event @event, ScriptAccessory accessory)
{ {
var dp = accessory.Data.GetDefaultDrawProperties(); var dp = accessory.Data.GetDefaultDrawProperties();
@@ -76,8 +211,8 @@ public class The_Baldesion_Arsenal
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp);
} }
[ScriptMethod(name: "兵武元精 强放逐", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15383"])] [ScriptMethod(name: "兵武元精_强放逐(点名圆形)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15383"])]
public void _强放逐(Event @event, ScriptAccessory accessory) public void _强放逐绘制(Event @event, ScriptAccessory accessory)
{ {
var dp = accessory.Data.GetDefaultDrawProperties(); var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = $"兵武元精_强放逐{@event.SourceId()}"; dp.Name = $"兵武元精_强放逐{@event.SourceId()}";
@@ -88,8 +223,7 @@ public class The_Baldesion_Arsenal
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
} }
// BOSS1后 [ScriptMethod(name: "兵武卡尔克布莉娜_恐惧之瞳石化顺劈", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15366"])]
[ScriptMethod(name: "兵武卡尔克布莉娜 恐惧之瞳(石化顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15366"])]
public void _恐惧之瞳(Event @event, ScriptAccessory accessory) public void _恐惧之瞳(Event @event, ScriptAccessory accessory)
{ {
var dp = accessory.Data.GetDefaultDrawProperties(); var dp = accessory.Data.GetDefaultDrawProperties();
@@ -102,10 +236,25 @@ public class The_Baldesion_Arsenal
dp.DestoryAt = 4700; dp.DestoryAt = 4700;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp);
} }
[ScriptMethod(name: "兵武扇_古代暴风击退连线", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15372"])]
public void _古代暴风(Event @event, ScriptAccessory accessory)
{
accessory.Method.TextInfo("靠近 <兵武扇> 击退", duration: 4300, true);
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "古代暴风击退";
dp.Owner = accessory.Data.Me;
dp.Color = accessory.Data.DefaultSafeColor;
dp.ScaleMode |= ScaleMode.YByDistance;
dp.TargetObject = @event.SourceId();
dp.Scale = new(1);
dp.DestoryAt = 4700;
accessory.Method.SendDraw(DrawModeEnum.Imgui, DrawTypeEnum.Displacement, dp);
}
#endregion #endregion
#region BOSS1 /
#region BOSS1
// 14632本体读条 [妖枪振]钢铁 14633本体读条 [妖枪旋]月环 14631幻枪招来 // 14632本体读条 [妖枪振]钢铁 14633本体读条 [妖枪旋]月环 14631幻枪招来
//幻枪招来后BOSSDataID9818会连线4根 烈焰金枪DataID9819并读条随机[妖枪振]钢铁月环随后烈焰金枪将瞬发BOSS的钢铁月环 [幻枪振] 14634 / 14635 //幻枪招来后BOSSDataID9818会连线4根 烈焰金枪DataID9819并读条随机[妖枪振]钢铁月环随后烈焰金枪将瞬发BOSS的钢铁月环 [幻枪振] 14634 / 14635
/* /*
@@ -136,10 +285,37 @@ public class The_Baldesion_Arsenal
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp);
} }
*/ */
#endregion
[ScriptMethod(name: "BOSS1_欧文_红颈妖枪 元素魔法(钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^1465[01]$"])]
public void 元素魔法(Event @event, ScriptAccessory accessory)
{
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "";
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(10f); // 表格为13m待实战验证
dp.DestoryAt = 4700;
dp.ScaleMode = ScaleMode.ByTime;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
[ScriptMethod(name: "BOSS1_欧文 连装魔_血之魔术孤独感提示", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:1753"])]
public void _血之魔术(Event @event, ScriptAccessory accessory)
{
if (@event.TargetId() != accessory.Data.Me) return;
if (isText)accessory.Method.TextInfo("孤独感集合", duration: 2300, true);
if (!isACT && isTTS) accessory.Method.TTS("孤独感集合");
if (!isACT && isEdgeTTS) accessory.Method.TTS("孤独感集合");
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "连装魔_血之魔术";
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(0.5f);
dp.DestoryAt = 2300;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
#region BOSS1
#endregion #endregion
#region BOSS2 #region BOSS2
@@ -156,7 +332,7 @@ public class The_Baldesion_Arsenal
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
} }
[ScriptMethod(name: "BOSS2_莱丁 旋斩铁剑(月环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:14442"])] [ScriptMethod(name: "BOSS2_莱丁 旋斩铁剑(月环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:14442"])]
public void (Event @event, ScriptAccessory accessory) public void (Event @event, ScriptAccessory accessory)
{ {
var dp = accessory.Data.GetDefaultDrawProperties(); var dp = accessory.Data.GetDefaultDrawProperties();
@@ -171,22 +347,38 @@ public class The_Baldesion_Arsenal
} }
[ScriptMethod(name: "BOSS2_莱丁 片斩铁剑(直线)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^1444[34]$"])] [ScriptMethod(name: "BOSS2_莱丁 片斩铁剑(直线)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^1444[34]$"])]
public void 片斩铁剑(Event @event, ScriptAccessory accessory) public void 片斩铁剑(Event @event, ScriptAccessory accessory)
{ {
var dp=accessory.Data.GetDefaultDrawProperties();
dp.Name="";
dp.Scale=new(70,39);
dp.Owner=@event.SourceId();
dp.Color=accessory.Data.DefaultDangerColor;
dp.DestoryAt=6200;
switch (@event.ActionId())
{
case 14444: // 左刀
dp.Rotation=90f.DegToRad();
dp.Offset=new Vector3(3.5f,0,0);
break;
case 14443: // 右刀
dp.Rotation=-90f.DegToRad();
dp.Offset=new Vector3(-3.5f,0,0);
break;
}
/*
bool isLeft=true; bool isLeft=true;
//14444 左 14443右 //14444 左 14443右
if(@event["ActionId"].Equals("14444")) { if(@event["ActionId"].Equals("14444")) {
isLeft=true; isLeft=true;
} }
if(@event["ActionId"].Equals("14443")) { if(@event["ActionId"].Equals("14443")) {
isLeft=false; isLeft=false;
} }
var dp=accessory.Data.GetDefaultDrawProperties(); var dp=accessory.Data.GetDefaultDrawProperties();
@@ -197,18 +389,15 @@ public class The_Baldesion_Arsenal
dp.DestoryAt=6200; dp.DestoryAt=6200;
if(isLeft) { if(isLeft) {
dp.Rotation=90f.DegToRad(); dp.Rotation=90f.DegToRad();
dp.Offset=new Vector3(3.5f,0,0); dp.Offset=new Vector3(3.5f,0,0);
} }
else { else {
dp.Rotation=-90f.DegToRad(); dp.Rotation=-90f.DegToRad();
dp.Offset=new Vector3(-3.5f,0,0); dp.Offset=new Vector3(-3.5f,0,0);
} }
*/
//dp.Offset=new Vector3(0,0,3.5f); //dp.Offset=new Vector3(0,0,3.5f);
// 向后移动3.5f // 向后移动3.5f
@@ -227,13 +416,239 @@ public class The_Baldesion_Arsenal
dp.Name = "战死击"; dp.Name = "战死击";
dp.Color = accessory.Data.DefaultDangerColor; dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = @event.SourceId(); dp.Owner = @event.SourceId();
dp.Scale = new Vector2(10.4f); dp.Scale = new Vector2(10.4f); // 6m + 目标圈 4.4m
dp.DestoryAt = 4200; dp.DestoryAt = 4200;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
} }
#endregion #endregion
#region BOSS3
[ScriptMethod(name:"光暗之腕记录", eventType:EventTypeEnum.StatusAdd, eventCondition: ["StatusID:regex:^171[01]$"], userControl:false)]
public void 光暗之腕记录(Event @event, ScriptAccessory accessory)
{
switch (@event.StatusID())
{
case 1710: //光之腕
AstralEssence = 1;
if (isDeveloper) accessory.Method.SendChat($"/e [DEBUG]: <>");
break;
case 1711: // 暗之腕
UmbralEssence = 1;
if (isDeveloper) accessory.Method.SendChat($"/e [DEBUG]: 已记录 <暗之腕>");
break;
}
}
[ScriptMethod(name: "BOSS3_绝对的美德 极性波动(钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^1422[0-3]$"])]
public void 极性波动(Event @event, ScriptAccessory accessory)
{
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "";
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(15f);
dp.DestoryAt = 4200;
switch (@event.ActionId())
{
case 14220: // 光之波动
dp.Color = new Vector4(1f, 1f, 1f, 1f); // Omen: m0531_light_o0v
break;
case 14221: // 光之波动
dp.Color = new Vector4(1f, 1f, 1f, 1f); // Omen: m0531_light_o0v
break;
case 14222: // 暗之波动
dp.Color = new Vector4(0f, 0f, 0f, 1f); // Omen: m0531_dark_o0v
break;
case 14223: // 暗之波动
dp.Color = new Vector4(0f, 0f, 0f, 1f); // Omen: m0531_dark_o0v
break;
}
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
[ScriptMethod(name: "BOSS3_绝对的美德 光明/黑暗极光(强化半场)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^142(17|18|30|31)$"])]
public void (Event @event, ScriptAccessory accessory)
{
var dp=accessory.Data.GetDefaultDrawProperties();
dp.Name="半场极光";
dp.Scale=new(50,30);
dp.Owner=@event.SourceId();
switch (@event.ActionId())
{
case 14217: // 光明极光
dp.Color = new Vector4(1f, 1f, 1f, 1f); // Omen: m0531_sp03l_o0v
dp.DestoryAt=2700;
break;
case 14218: // 黑暗极光
dp.Color = new Vector4(0f, 0f, 0f, 1f); // Omen: m0531_sp03d_o0v
dp.DestoryAt=2700;
break;
case 14230: // 光明极光
dp.Color = new Vector4(1f, 1f, 1f, 1f); // Omen: m0531_sp03l_o0v
dp.DestoryAt=4700;
break;
case 14231: // 黑暗极光
dp.Color = new Vector4(0f, 0f, 0f, 1f); // Omen: m0531_sp03d_o0v
dp.DestoryAt=4700;
break;
}
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp);
}
[ScriptMethod(name: "BOSS3_绝对的美德 极光之风(圆形死刑)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:14234"])]
public void (Event @event, ScriptAccessory accessory)
{
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "极光之风";
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = @event.SourceId;
dp.CentreResolvePattern = PositionResolvePatternEnum.OwnerEnmityOrder;
dp.CentreOrderIndex = 1;
dp.Scale = new Vector2(5);
dp.Radian = float.Pi * 2;
dp.DestoryAt = 4700;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
[ScriptMethod(name: "BOSS3_相对的美德 冲击流12点查找", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:14229"])]
public void (Event @event, ScriptAccessory accessory)
{
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "相对冲击流";
dp.Color = new Vector4(1f, 0f, 0f, 1f);
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(3);
dp.DestoryAt = 4700;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
#endregion
#region BOSS4
[ScriptMethod(name: "BOSS4_奥兹玛原形 形态变化重置", eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:"])]
public async void (Event @event, ScriptAccessory accessory)
{
// await Task.Delay(2000);
ball = 0;
Cube = 0;
Pyramid = 0;
Stellation = 0;
if(isDeveloper) accessory.Method.SendChat($"/e [DEBUG]: 形态变化已重置");
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 球形态转换(黑洞)", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:"])]
public void _球形态(Event @event, ScriptAccessory accessory)
{
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 立方体形态转换(月环)", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:1070"])]
public void _立方体形态(Event @event, ScriptAccessory accessory)
{
Cube = 1;
if (isText) accessory.Method.TextInfo("<立方体> 普攻:一仇直线", duration: 10000, true);
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "耀星";
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(38f); // 表格38m + 目标圈 m
dp.InnerScale = new Vector2(32f);
dp.Radian = float.Pi * 2;
dp.DestoryAt = 3000;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp);
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 三角锥形态转换(直线)", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:1071"])]
public void _三角锥形态(Event @event, ScriptAccessory accessory)
{
Pyramid = 0;
if (isText) accessory.Method.TextInfo("<三角锥> 普攻: 最远圆形AOE带出血", duration: 10000, true);
for(int axisRotation=0;axisRotation<360;axisRotation+=120) {
var dp=accessory.Data.GetDefaultDrawProperties();
dp.Name="缩小射线";
dp.Color = accessory.Data.DefaultDangerColor;
dp.Scale = new(5.5f,40f); // 长度为40m + 目标圈 m
dp.Owner = @event.SourceId();
dp.DestoryAt = 3000;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp);
}
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 星形多面体形态转换(钢铁)", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:1744"])]
public void _星形多面体形态(Event @event, ScriptAccessory accessory)
{
Stellation = 1;
if (isText) accessory.Method.TextInfo("<圣晶石> 普攻: 圆形分摊(随机点名)", duration: 10000, true);
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "启明星";
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(27f);
dp.DestoryAt = 3000;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 神圣(击退预测)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:17394"])]
public void (Event @event, ScriptAccessory accessory)
{
if (isText) accessory.Method.TextInfo("靠近击退", duration: 3300, true);
if (!isACT && isTTS) accessory.Method.TTS("靠近击退");
if (!isACT && isEdgeTTS) accessory.Method.TTS("靠近击退");
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "神圣击退预测";
dp.Scale = new(1f, 3f);
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = accessory.Data.Me;
dp.TargetObject = @event.SourceId();
dp.Rotation = float.Pi;
dp.DestoryAt = 3700;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Displacement, dp);
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 流星(击退预测)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:17394"])]
public void (Event @event, ScriptAccessory accessory)
{
if (isText) accessory.Method.TextInfo("靠近击退", duration: 4300, true);
if (!isACT && isTTS) accessory.Method.TTS("靠近击退");
if (!isACT && isEdgeTTS) accessory.Method.TTS("靠近击退");
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "流星击退预测";
dp.Scale = new(1f, 8f);
dp.Color = accessory.Data.DefaultDangerColor;
dp.Owner = accessory.Data.Me;
dp.TargetObject = @event.SourceId();
dp.Rotation = float.Pi;
dp.DestoryAt = 4700;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Displacement, dp);
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 流星(击退源)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:17394"])]
public void 退(Event @event, ScriptAccessory accessory)
{
var dp = accessory.Data.GetDefaultDrawProperties();
dp.Name = "流星击退源";
dp.Color = accessory.Data.DefaultSafeColor;
dp.Owner = @event.SourceId();
dp.Scale = new Vector2(0.1f);
dp.DestoryAt = 4700;
accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp);
}
[ScriptMethod(name: "BOSS4_奥兹玛原形 加速度炸弹 提示", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:1072"])]
public async void (Event @event, ScriptAccessory accessory)
{
if ( @event.TargetId() != accessory.Data.Me) return;
await Task.Delay(13500);
accessory.Method.TextInfo("停止行动", duration: 800, true);
accessory.Method.TTS("停止行动");
}
#endregion
} }
public static class EventExtensions public static class EventExtensions
@@ -334,9 +749,9 @@ public static class EventExtensions
return ParseHexId(@event["DirectorId"], out var id) ? id : 0; return ParseHexId(@event["DirectorId"], out var id) ? id : 0;
} }
public static uint StatusId(this Event @event) public static uint StatusID(this Event @event)
{ {
return JsonConvert.DeserializeObject<uint>(@event["StatusId"]); return JsonConvert.DeserializeObject<uint>(@event["StatusID"]);
} }
public static uint StackCount(this Event @event) public static uint StackCount(this Event @event)
@@ -349,19 +764,3 @@ public static class EventExtensions
return JsonConvert.DeserializeObject<uint>(@event["Param"]); return JsonConvert.DeserializeObject<uint>(@event["Param"]);
} }
} }
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);
}
}
}