Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct npc_trilliax_sludgerax : public ScriptedAI
- {
- npc_trilliax_sludgerax(Creature* creature) : ScriptedAI(creature), putridDies(0)
- {
- instance = me->GetInstanceScript();
- me->SetReactState(REACT_PASSIVE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_ATTACKABLE_1);
- }
- InstanceScript* instance;
- uint8 putridDies = 0;
- void Reset() override {}
- void IsSummonedBy(Unit* summoner) override
- {
- for (const auto & sludgeraxSumPo : sludgeraxSumPos)
- me->SummonCreature(NPC_PUTRID_SLUDGE, sludgeraxSumPo);
- putridDies = 0;
- DoCast(me, SPELL_BURSTING_SLIME, true);
- DoCast(me, SPELL_DEATH_COSMETIC_2, true);
- }
- void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) override
- {
- if (summon->GetEntry() == NPC_PUTRID_SLUDGE)
- {
- if (++putridDies == 8)
- {
- me->SetReactState(REACT_AGGRESSIVE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_ATTACKABLE_1);
- me->RemoveAurasDueToSpell(SPELL_DEATH_COSMETIC_2);
- }
- }
- }
- void JustDied(Unit* /*killer*/) override
- {
- if (instance->GetData(DATA_TRILLIAX_INTRO) != DONE)
- {
- instance->SetData(DATA_TRILLIAX_INTRO, DONE);
- if (Unit* owner = me->GetAnyOwner())
- owner->GetAI()->DoAction(ACTION_1);
- }
- }
- void UpdateAI(uint32 diff) override
- {
- if (!UpdateVictim())
- return;
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
- DoMeleeAttackIfReady();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement