fix(Scripts/Misc): Replace some AddItem/CreateItem with spells (#9006)

Co-authored-by: offl <11556157+offl@users.noreply.github.com>
This commit is contained in:
Kitzunu
2021-11-20 13:59:52 +01:00
committed by GitHub
parent efe999309a
commit 6a430cd2f9
6 changed files with 157 additions and 114 deletions

View File

@@ -1728,83 +1728,52 @@ class spell_item_make_a_wish : public SpellScript
}
};
enum MingoFortune
{
SPELL_CREATE_FORTUNE_1 = 40804,
SPELL_CREATE_FORTUNE_2 = 40805,
SPELL_CREATE_FORTUNE_3 = 40806,
SPELL_CREATE_FORTUNE_4 = 40807,
SPELL_CREATE_FORTUNE_5 = 40808,
SPELL_CREATE_FORTUNE_6 = 40809,
SPELL_CREATE_FORTUNE_7 = 40908,
SPELL_CREATE_FORTUNE_8 = 40910,
SPELL_CREATE_FORTUNE_9 = 40911,
SPELL_CREATE_FORTUNE_10 = 40912,
SPELL_CREATE_FORTUNE_11 = 40913,
SPELL_CREATE_FORTUNE_12 = 40914,
SPELL_CREATE_FORTUNE_13 = 40915,
SPELL_CREATE_FORTUNE_14 = 40916,
SPELL_CREATE_FORTUNE_15 = 40918,
SPELL_CREATE_FORTUNE_16 = 40919,
SPELL_CREATE_FORTUNE_17 = 40920,
SPELL_CREATE_FORTUNE_18 = 40921,
SPELL_CREATE_FORTUNE_19 = 40922,
SPELL_CREATE_FORTUNE_20 = 40923
};
std::array<uint32, 20> const CreateFortuneSpells =
{
SPELL_CREATE_FORTUNE_1, SPELL_CREATE_FORTUNE_2, SPELL_CREATE_FORTUNE_3, SPELL_CREATE_FORTUNE_4, SPELL_CREATE_FORTUNE_5,
SPELL_CREATE_FORTUNE_6, SPELL_CREATE_FORTUNE_7, SPELL_CREATE_FORTUNE_8, SPELL_CREATE_FORTUNE_9, SPELL_CREATE_FORTUNE_10,
SPELL_CREATE_FORTUNE_11, SPELL_CREATE_FORTUNE_12, SPELL_CREATE_FORTUNE_13, SPELL_CREATE_FORTUNE_14, SPELL_CREATE_FORTUNE_15,
SPELL_CREATE_FORTUNE_16, SPELL_CREATE_FORTUNE_17, SPELL_CREATE_FORTUNE_18, SPELL_CREATE_FORTUNE_19, SPELL_CREATE_FORTUNE_20
};
// http://www.wowhead.com/item=32686 Mingo's Fortune Giblets
// 40802 Mingo's Fortune Generator
class spell_item_mingos_fortune_generator : public SpellScript
{
PrepareSpellScript(spell_item_mingos_fortune_generator);
void HandleDummy(SpellEffIndex effIndex)
bool Validate(SpellInfo const* /*spellInfo*/) override
{
// Selecting one from Bloodstained Fortune item
uint32 newitemid;
switch (urand(1, 20))
{
case 1:
newitemid = 32688;
break;
case 2:
newitemid = 32689;
break;
case 3:
newitemid = 32690;
break;
case 4:
newitemid = 32691;
break;
case 5:
newitemid = 32692;
break;
case 6:
newitemid = 32693;
break;
case 7:
newitemid = 32700;
break;
case 8:
newitemid = 32701;
break;
case 9:
newitemid = 32702;
break;
case 10:
newitemid = 32703;
break;
case 11:
newitemid = 32704;
break;
case 12:
newitemid = 32705;
break;
case 13:
newitemid = 32706;
break;
case 14:
newitemid = 32707;
break;
case 15:
newitemid = 32708;
break;
case 16:
newitemid = 32709;
break;
case 17:
newitemid = 32710;
break;
case 18:
newitemid = 32711;
break;
case 19:
newitemid = 32712;
break;
case 20:
newitemid = 32713;
break;
default:
return;
}
return ValidateSpellInfo(CreateFortuneSpells);
}
CreateItem(effIndex, newitemid);
void HandleDummy(SpellEffIndex /*effIndex*/)
{
GetCaster()->CastSpell(GetCaster(), Acore::Containers::SelectRandomContainerElement(CreateFortuneSpells), true);
}
void Register() override