Skip to content

Commit b4d1c78

Browse files
committed
[Event AI] Event AI editor
1 parent 96c83b6 commit b4d1c78

169 files changed

Lines changed: 12381 additions & 24 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LoaderAvalonia/LoaderAvalonia.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
<ProjectReference Include="..\WDE.Conditions\WDE.Conditions.csproj" />
3131
<ProjectReference Include="..\WDE.DatabaseEditors.Avalonia\WDE.DatabaseEditors.Avalonia.csproj" />
3232
<ProjectReference Include="..\WDE.DatabaseEditors\WDE.DatabaseEditors.csproj" />
33+
<ProjectReference Include="..\WDE.EventAiEditor.Avalonia\WDE.EventAiEditor.Avalonia.csproj" />
34+
<ProjectReference Include="..\WDE.MangosEventAiEditor\WDE.MangosEventAiEditor.csproj" />
3335
<ProjectReference Include="..\WDE.MVVM\WDE.MVVM.csproj" />
3436
<ProjectReference Include="..\WDE.Parameters\WDE.Parameters.csproj" />
3537
<ProjectReference Include="..\WDE.SourceCodeIntegrationEditor\WDE.SourceCodeIntegrationEditor.csproj" />

LoaderAvalonia/Program.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
using WDE.WorldMap;
3030
using WDE.WoWHeadConnector;
3131
using WDE.AnniversaryInfo;
32+
using WDE.EventAiEditor.Avalonia;
3233
using WDE.EventScriptsEditor;
34+
using WDE.MangosEventAiEditor;
3335
using WDE.MapSpawns;
3436
using WDE.PathPreviewTool;
3537

@@ -74,7 +76,9 @@ public static void Main(string[] args)
7476
typeof(AnniversaryModule),
7577
typeof(EventScriptsModule),
7678
typeof(MapSpawnsModule),
77-
typeof(PathPreviewToolModule)
79+
typeof(PathPreviewToolModule),
80+
typeof(EventAiModule),
81+
typeof(EventAiAvaloniaModule)
7882
};
7983
WoWDatabaseEditorCore.Avalonia.Program.PreloadedModules = modules;
8084
WoWDatabaseEditorCore.Avalonia.Program.Main(args);

WDE.AzerothCore/AzerothCoreVersion.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ namespace WDE.AzerothCore
88
{
99
[AutoRegister]
1010
[SingleInstance]
11-
public class AzerothCoreVersion : ICoreVersion, IDatabaseFeatures, ISmartScriptFeatures, IConditionFeatures, IGameVersionFeatures
11+
public class AzerothCoreVersion : ICoreVersion, IDatabaseFeatures, ISmartScriptFeatures, IConditionFeatures, IGameVersionFeatures, IEventAiFeatures
1212
{
1313
public string Tag => "Azeroth";
1414
public string FriendlyName => "AzerothCore Wrath of the Lich King";
1515
public ISmartScriptFeatures SmartScriptFeatures => this;
1616
public IConditionFeatures ConditionFeatures => this;
1717
public IGameVersionFeatures GameVersionFeatures => this;
18+
public IEventAiFeatures EventAiFeatures => this;
1819
public IDatabaseFeatures DatabaseFeatures => this;
1920
public bool SupportsRbac => false;
2021
public bool SupportsConditionTargetVictim => true;

WDE.CMaNGOS/CMaNGOSVersion.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ namespace WDE.CMaNGOS
88
{
99
[AutoRegister]
1010
[SingleInstance]
11-
public class CMaNGOSCoreVersion : ICoreVersion, IDatabaseFeatures, ISmartScriptFeatures, IConditionFeatures, IGameVersionFeatures
11+
public class CMaNGOSCoreVersion : ICoreVersion, IDatabaseFeatures, ISmartScriptFeatures, IConditionFeatures, IGameVersionFeatures, IEventAiFeatures
1212
{
1313
public string Tag => "CMaNGOS-WoTLK";
1414
public string FriendlyName => "CMaNGOS Wrath of the Lich King";
1515
public ISmartScriptFeatures SmartScriptFeatures => this;
1616
public IConditionFeatures ConditionFeatures => this;
1717
public IGameVersionFeatures GameVersionFeatures => this;
18+
public IEventAiFeatures EventAiFeatures => this;
1819
public IDatabaseFeatures DatabaseFeatures => this;
1920
public bool SupportsRbac => false;
2021
public bool SupportsConditionTargetVictim => false;

WDE.DatabaseEditors/DatabaseEditorsModule.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,12 @@ public override void OnInitialized(IContainerProvider containerProvider)
3838
this.containerProvider = containerProvider;
3939
containerProvider.Resolve<ILoadingEventAggregator>().OnEvent<EditorLoaded>().SubscribeOnce(_ =>
4040
{
41+
var parameterPickerService = containerProvider.Resolve<IParameterPickerService>();
4142
containerProvider.Resolve<IContextualParametersProvider>();
4243
var factory = containerProvider.Resolve<IParameterFactory>();
4344
factory.Register("BroadcastTextParameter", containerProvider.Resolve<BroadcastTextParameter>());
45+
factory.RegisterDepending("CreatureTemplateSpellListIdParameter", "CreatureParameter", (a) => new CreatureTemplateSpellListIdParameter(a, parameterPickerService));
46+
factory.RegisterDepending("DbScriptRandomTemplateTargetValueParameter", "BroadcastTextParameter", bcast => new DbScriptRandomTemplateTargetValueParameter(containerProvider.Resolve<IParameterPickerService>(), bcast));
4447
factory.Register("LootReferenceParameter", containerProvider.Resolve<LootReferenceParameter>());
4548
factory.Register("EquipmentCreatureGuidParameter", containerProvider.Resolve<EquipmentCreatureGuidParameter>());
4649
factory.Register("CreatureGUIDParameter", factory.Factory("TableReference(creature#guid)Parameter"));
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"id": "creature_ai_summons",
3+
"compatibility": [
4+
"CMaNGOS-WoTLK"
5+
],
6+
"name": "Creature Ai Summons",
7+
"description": "Positions for summons in Event AI",
8+
"table_name": "creature_ai_summons",
9+
"table_index_name": "id",
10+
"record_mode": "SingleRow",
11+
"group_name": "Event AI",
12+
"icon_path": "Icons/document_creature_summon_groups.png",
13+
"reload_command": "reload creature_ai_summons",
14+
"primary_key": [
15+
"id"
16+
],
17+
"groups": [
18+
{
19+
"group_name": "group",
20+
"fields": [
21+
{
22+
"name": "Id",
23+
"db_column_name": "id",
24+
"value_type": "uint"
25+
},
26+
{
27+
"name": "Position X",
28+
"db_column_name": "position_x",
29+
"value_type": "float"
30+
},
31+
{
32+
"name": "Position Y",
33+
"db_column_name": "position_y",
34+
"value_type": "float"
35+
},
36+
{
37+
"name": "Position Z",
38+
"db_column_name": "position_z",
39+
"value_type": "float"
40+
},
41+
{
42+
"name": "Orientation",
43+
"db_column_name": "orientation",
44+
"value_type": "float"
45+
},
46+
{
47+
"name": "Spawntimesecs",
48+
"db_column_name": "spawntimesecs",
49+
"value_type": "uint",
50+
"default": 120
51+
},
52+
{
53+
"name": "Comment",
54+
"db_column_name": "comment",
55+
"value_type": "string",
56+
"default": ""
57+
}
58+
]
59+
}
60+
]
61+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{
2+
"id": "creature_spell_list",
3+
"compatibility": [
4+
"CMaNGOS-WoTLK"
5+
],
6+
"name": "Creature Spell List",
7+
"description": "Used to define spells per creature.",
8+
"table_name": "creature_spell_list",
9+
"table_index_name": "Id",
10+
"record_mode": "SingleRow",
11+
"group_name": "Combat",
12+
"icon_path": "Icons/document_creature_spell.png",
13+
"picker": "Parameter",
14+
"primary_key": [
15+
"Id",
16+
"Position"
17+
],
18+
"groups": [
19+
{
20+
"group_name": "group",
21+
"fields": [
22+
{
23+
"name": "Id",
24+
"db_column_name": "Id",
25+
"value_type": "CreatureTemplateSpellListIdParameter"
26+
},
27+
{
28+
"name": "Position",
29+
"db_column_name": "Position",
30+
"value_type": "int"
31+
},
32+
{
33+
"name": "Spell",
34+
"db_column_name": "SpellId",
35+
"value_type": "SpellParameter"
36+
},
37+
{
38+
"name": "Initial Min",
39+
"db_column_name": "InitialMin",
40+
"value_type": "int"
41+
},
42+
{
43+
"name": "Initial Max",
44+
"db_column_name": "InitialMax",
45+
"value_type": "int"
46+
},
47+
{
48+
"name": "Repeat Min",
49+
"db_column_name": "RepeatMin",
50+
"value_type": "int"
51+
},
52+
{
53+
"name": "Repeat Max",
54+
"db_column_name": "RepeatMax",
55+
"value_type": "int"
56+
},
57+
{
58+
"name": "Flags",
59+
"db_column_name": "Flags",
60+
"value_type": "MangosSpellListFlagsParameter"
61+
},
62+
{
63+
"name": "Target",
64+
"db_column_name": "TargetId",
65+
"value_type": "TableReference(creature_spell_targeting#Id)Parameter"
66+
},
67+
{
68+
"name": "Relay Script Id",
69+
"db_column_name": "ScriptId",
70+
"value_type": "int",
71+
"zero_is_blank": true
72+
},
73+
{
74+
"name": "Availability",
75+
"db_column_name": "Availability",
76+
"value_type": "PercentageParameter"
77+
},
78+
{
79+
"name": "Probability",
80+
"db_column_name": "Probability",
81+
"value_type": "int"
82+
},
83+
{
84+
"name": "Comment",
85+
"db_column_name": "Comments",
86+
"value_type": "string"
87+
}
88+
]
89+
}
90+
]
91+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"id": "creature_spell_list_entry",
3+
"compatibility": [
4+
"CMaNGOS-WoTLK"
5+
],
6+
"name": "Creature Spell List Entry",
7+
"description": "Holds basic chance of a ai to perform either a SPELL_LIST_FLAG_SUPPORT_ACTION or SPELL_LIST_FLAG_RANGED_ACTION.",
8+
"table_name": "creature_spell_list_entry",
9+
"table_index_name": "Id",
10+
"record_mode": "SingleRow",
11+
"group_name": "Combat",
12+
"skip_quick_load": true,
13+
"icon_path": "Icons/document_creature_spell_group.png",
14+
"reload_command": "reload creature_spell_list_entry",
15+
"primary_key": [
16+
"Id"
17+
],
18+
"groups": [
19+
{
20+
"group_name": "group",
21+
"fields": [
22+
{
23+
"name": "Id",
24+
"db_column_name": "Id",
25+
"value_type": "int",
26+
"read_only": true
27+
},
28+
{
29+
"name": "Name",
30+
"db_column_name": "Name",
31+
"value_type": "string"
32+
},
33+
{
34+
"name": "Chance Support Action",
35+
"db_column_name": "ChanceSupportAction",
36+
"value_type": "int"
37+
},
38+
{
39+
"name": "Chance Ranged Attack",
40+
"db_column_name": "ChanceRangedAttack",
41+
"value_type": "int"
42+
}
43+
]
44+
}
45+
]
46+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"id": "creature_spell_targeting",
3+
"compatibility": [
4+
"CMaNGOS-WoTLK"
5+
],
6+
"name": "Creature Spell Targeting",
7+
"description": "Spell targeting data",
8+
"table_name": "creature_spell_targeting",
9+
"table_index_name": "Id",
10+
"record_mode": "SingleRow",
11+
"group_name": "Combat",
12+
"skip_quick_load": true,
13+
"icon_path": "Icons/document_creature_spell_group.png",
14+
"reload_command": "reload creature_spell_targeting",
15+
"primary_key": [
16+
"Id"
17+
],
18+
"groups": [
19+
{
20+
"group_name": "group",
21+
"fields": [
22+
{
23+
"name": "Id",
24+
"db_column_name": "Id",
25+
"value_type": "int",
26+
"read_only": true
27+
},
28+
{
29+
"name": "Type",
30+
"db_column_name": "Type",
31+
"value_type": "CreatureSpellTargetingTypeParameter"
32+
},
33+
{
34+
"name": "Param 1",
35+
"db_column_name": "Param1",
36+
"value_type": "int"
37+
},
38+
{
39+
"name": "Param 2",
40+
"db_column_name": "Param2",
41+
"value_type": "int"
42+
},
43+
{
44+
"name": "Param 3",
45+
"db_column_name": "Param3",
46+
"value_type": "int"
47+
},
48+
{
49+
"name": "Comments",
50+
"db_column_name": "Comments",
51+
"value_type": "string"
52+
}
53+
]
54+
}
55+
]
56+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"id": "dbscript_random_templates",
3+
"compatibility": [
4+
"CMaNGOS-WoTLK"
5+
],
6+
"name": "Db script Random Templates",
7+
"description": "Random templates used to define random texts or relay script IDs",
8+
"table_name": "dbscript_random_templates",
9+
"table_index_name": "id",
10+
"record_mode": "SingleRow",
11+
"group_name": "Database scripts",
12+
"icon_path": "Icons/document_dice.png",
13+
"primary_key": [
14+
"id",
15+
"type",
16+
"target_id"
17+
],
18+
"groups": [
19+
{
20+
"group_name": "group",
21+
"fields": [
22+
{
23+
"name": "Id",
24+
"db_column_name": "id",
25+
"value_type": "uint",
26+
"preferred_width": 40.0
27+
},
28+
{
29+
"name": "Type",
30+
"db_column_name": "type",
31+
"value_type": "MangosDbScriptRandomTemplateTypeParameter",
32+
"preferred_width": 55.0
33+
},
34+
{
35+
"name": "Target Value",
36+
"db_column_name": "target_id",
37+
"value_type": "DbScriptRandomTemplateTargetValueParameter",
38+
"preferred_width": 200.0
39+
},
40+
{
41+
"name": "Chance",
42+
"db_column_name": "chance",
43+
"value_type": "PercentageParameter",
44+
"preferred_width": 40.0,
45+
"zero_is_blank": true
46+
},
47+
{
48+
"name": "Comment",
49+
"db_column_name": "comments",
50+
"value_type": "string",
51+
"default": "",
52+
"can_be_null": true
53+
}
54+
]
55+
}
56+
]
57+
}

0 commit comments

Comments
 (0)