Fixes startup

This commit is contained in:
hondacrx
2021-10-10 19:24:01 -04:00
parent 50e8fb802e
commit b0528d1ad3
5 changed files with 78 additions and 92 deletions
+18
View File
@@ -368,6 +368,24 @@ namespace Game.Scripting
public virtual GameObjectAI GetAI(GameObject go) { return null; } public virtual GameObjectAI GetAI(GameObject go) { return null; }
} }
public class GenericAreaTriggerScript<AI> : AreaTriggerEntityScript where AI : AreaTriggerAI
{
public GenericAreaTriggerScript(string name, object[] args) : base(name)
{
_args = args;
}
public override AreaTriggerAI GetAI(AreaTrigger me)
{
if (me.GetInstanceScript() != null)
return GetInstanceAI<AI>(me);
else
return (AI)Activator.CreateInstance(typeof(AI), new object[] { me }.Combine(_args));
}
object[] _args;
}
public class AreaTriggerScript : ScriptObject public class AreaTriggerScript : ScriptObject
{ {
public AreaTriggerScript(string name) : base(name) public AreaTriggerScript(string name) : base(name)
+3
View File
@@ -133,6 +133,9 @@ namespace Game.Scripting
case nameof(GameObjectAI): case nameof(GameObjectAI):
genericType = typeof(GenericGameObjectScript<>).MakeGenericType(type); genericType = typeof(GenericGameObjectScript<>).MakeGenericType(type);
break; break;
case nameof(AreaTriggerAI):
genericType = typeof(GenericAreaTriggerScript<>).MakeGenericType(type);
break;
case "SpellScriptLoader": case "SpellScriptLoader":
case "AuraScriptLoader": case "AuraScriptLoader":
case "WorldScript": case "WorldScript":
+2 -17
View File
@@ -64,20 +64,11 @@ namespace Scripts.Spells.DemonHunter
[Script("areatrigger_dh_sigil_of_silence", SpellIds.SigilOfSilenceAoe)] [Script("areatrigger_dh_sigil_of_silence", SpellIds.SigilOfSilenceAoe)]
[Script("areatrigger_dh_sigil_of_misery", SpellIds.SigilOfMiseryAoe)] [Script("areatrigger_dh_sigil_of_misery", SpellIds.SigilOfMiseryAoe)]
[Script("areatrigger_dh_sigil_of_flame", SpellIds.SigilOfFlameAoe)] [Script("areatrigger_dh_sigil_of_flame", SpellIds.SigilOfFlameAoe)]
class areatrigger_dh_generic_sigil : AreaTriggerEntityScript class areatrigger_dh_generic_sigil : AreaTriggerAI
{ {
uint _trigger; uint _trigger;
public areatrigger_dh_generic_sigil(string script, uint trigger) : base(script) public areatrigger_dh_generic_sigil(AreaTrigger at, uint trigger) : base(at)
{
_trigger = trigger;
}
class areatrigger_dh_generic_sigilAI : AreaTriggerAI
{
uint _trigger;
public areatrigger_dh_generic_sigilAI(AreaTrigger at, uint trigger) : base(at)
{ {
_trigger = trigger; _trigger = trigger;
} }
@@ -90,12 +81,6 @@ namespace Scripts.Spells.DemonHunter
} }
} }
public override AreaTriggerAI GetAI(AreaTrigger at)
{
return new areatrigger_dh_generic_sigilAI(at, _trigger);
}
}
[Script] // 208673 - Sigil of Chains [Script] // 208673 - Sigil of Chains
class spell_dh_sigil_of_chains : SpellScript class spell_dh_sigil_of_chains : SpellScript
{ {
+2 -12
View File
@@ -1015,13 +1015,9 @@ namespace Scripts.Spells.Priest
} }
[Script] // Angelic Feather areatrigger - created by SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER [Script] // Angelic Feather areatrigger - created by SPELL_PRIEST_ANGELIC_FEATHER_AREATRIGGER
class areatrigger_pri_angelic_feather : AreaTriggerEntityScript class areatrigger_pri_angelic_feather : AreaTriggerAI
{ {
public areatrigger_pri_angelic_feather() : base("areatrigger_pri_angelic_feather") { } public areatrigger_pri_angelic_feather(AreaTrigger areatrigger) : base(areatrigger) { }
class areatrigger_pri_angelic_featherAI : AreaTriggerAI
{
public areatrigger_pri_angelic_featherAI(AreaTrigger areatrigger) : base(areatrigger) { }
// Called when the AreaTrigger has just been initialized, just before added to map // Called when the AreaTrigger has just been initialized, just before added to map
public override void OnInitialize() public override void OnInitialize()
@@ -1050,10 +1046,4 @@ namespace Scripts.Spells.Priest
} }
} }
} }
public override AreaTriggerAI GetAI(AreaTrigger areatrigger)
{
return new areatrigger_pri_angelic_featherAI(areatrigger);
}
}
} }
+2 -12
View File
@@ -1044,17 +1044,13 @@ namespace Scripts.Spells.Shaman
// 192078 - Wind Rush Totem (Spell) // 192078 - Wind Rush Totem (Spell)
[Script] // 12676 - AreaTriggerId [Script] // 12676 - AreaTriggerId
class areatrigger_sha_wind_rush_totem : AreaTriggerEntityScript class areatrigger_sha_wind_rush_totem : AreaTriggerAI
{
public areatrigger_sha_wind_rush_totem() : base("areatrigger_sha_wind_rush_totem") { }
class areatrigger_sha_wind_rush_totemAI : AreaTriggerAI
{ {
static int REFRESH_TIME = 4500; static int REFRESH_TIME = 4500;
int _refreshTimer; int _refreshTimer;
public areatrigger_sha_wind_rush_totemAI(AreaTrigger areatrigger) : base(areatrigger) public areatrigger_sha_wind_rush_totem(AreaTrigger areatrigger) : base(areatrigger)
{ {
_refreshTimer = REFRESH_TIME; _refreshTimer = REFRESH_TIME;
} }
@@ -1095,10 +1091,4 @@ namespace Scripts.Spells.Shaman
} }
} }
} }
public override AreaTriggerAI GetAI(AreaTrigger areatrigger)
{
return new areatrigger_sha_wind_rush_totemAI(areatrigger);
}
}
} }