Skip to content

Commit

Permalink
Merge branch 'master' into ft/configurable-battleground
Browse files Browse the repository at this point in the history
  • Loading branch information
valsan-azerty-boi authored Jan 29, 2025
2 parents 81b40c2 + 2809f70 commit a3d8bfe
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 19 deletions.
8 changes: 8 additions & 0 deletions data/sql/updates/db_world/2025_01_28_00.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- DB update 2025_01_27_02 -> 2025_01_28_00

UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 23774;

DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 23774);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(23774, 0, 0, 0, 0, 0, 100, 0, 5000, 8000, 12000, 15000, 0, 0, 11, 43292, 0, 0, 0, 0, 0, 19, 23834, 30, 0, 0, 0, 0, 0, 0, 'Amani\'shi Trainer - In Combat - Cast \'Incite Rage\''),
(23774, 0, 1, 0, 0, 0, 100, 0, 10000, 12000, 20000, 25000, 0, 0, 11, 20989, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Amani\'shi Trainer - In Combat - Cast \'Sleep\'');
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,12 @@ enum Spells
SPELL_GRAVITY_LAPSE_FLY = 44227,
SPELL_GRAVITY_LAPSE_DOT = 44226,
SPELL_GRAVITY_LAPSE_CHANNEL = 44251,
SPELL_POWER_FEEDBACK = 44233
SPELL_POWER_FEEDBACK = 44233,
SPELL_CLEAR_FLIGHT = 44232, // Does nothing currently

SPELL_EMOTE_EXCLAMATION = 48348,
SPELL_EMOTE_POINT = 48349,
SPELL_EMOTE_ROAR = 48350
};

enum Misc
Expand All @@ -72,7 +77,6 @@ struct boss_felblood_kaelthas : public BossAI
void Reset() override
{
BossAI::Reset();
_OOCScheduler.CancelAll();
_gravityLapseCounter = 0;
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);

Expand Down Expand Up @@ -169,11 +173,12 @@ struct boss_felblood_kaelthas : public BossAI

Talk(SAY_AGGRO_2, 20s);
me->SetImmuneToAll(true);
_OOCScheduler.Schedule(35s, [this](TaskContext) {

me->m_Events.AddEventAtOffset([&] {
me->ClearEmoteState();
me->SetReactState(REACT_AGGRESSIVE);
me->SetImmuneToAll(false);
});
}, 35s);
}
}
}
Expand All @@ -185,19 +190,35 @@ struct boss_felblood_kaelthas : public BossAI
damage = me->GetHealth() - 1;
if (me->isRegeneratingHealth())
{
me->CombatStop();
me->CastStop();
me->SetRegeneratingHealth(false);
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
me->SetImmuneToAll(true);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->CombatStop();
me->SetReactState(REACT_PASSIVE);
LapseAction(ACTION_REMOVE_FLY);
scheduler.CancelAll();
_OOCScheduler.Schedule(6s, [this](TaskContext){
me->KillSelf();
});
summons.DespawnAll();

Talk(SAY_DEATH);
DoCastSelf(SPELL_EMOTE_EXCLAMATION);

me->m_Events.AddEventAtOffset([&] {
DoCastSelf(SPELL_EMOTE_POINT);
}, 3s);

me->m_Events.AddEventAtOffset([&] {
DoCastSelf(SPELL_EMOTE_ROAR);
}, 7s);

me->m_Events.AddEventAtOffset([&] {
DoCastSelf(SPELL_EMOTE_ROAR);
DoCastSelf(SPELL_CLEAR_FLIGHT);
}, 9s);

me->m_Events.AddEventAtOffset([&] {
me->KillSelf();
}, 11s);
}
}
BossAI::DamageTaken(attacker, damage, damagetype, damageSchoolMask);
Expand All @@ -208,6 +229,9 @@ struct boss_felblood_kaelthas : public BossAI
_gravityLapseCounter = 0;
me->GetMap()->DoForAllPlayers([&](Player* player)
{
if (player->IsGameMaster())
return;

if (action == ACTION_TELEPORT_PLAYERS)
DoCast(player, SPELL_GRAVITY_LAPSE_PLAYER + _gravityLapseCounter, true);
else if (action == ACTION_KNOCKUP)
Expand All @@ -222,14 +246,7 @@ struct boss_felblood_kaelthas : public BossAI
++_gravityLapseCounter;
});
}

void UpdateAI(uint32 diff) override
{
_OOCScheduler.Update(diff);
BossAI::UpdateAI(diff);
}
private:
TaskScheduler _OOCScheduler;
uint8 _gravityLapseCounter;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ DoorData const doorData[] =
{ GO_SELIN_ENCOUNTER_DOOR, DATA_SELIN_FIREHEART, DOOR_TYPE_ROOM },
{ GO_VEXALLUS_DOOR, DATA_VEXALLUS, DOOR_TYPE_PASSAGE },
{ GO_DELRISSA_DOOR, DATA_DELRISSA, DOOR_TYPE_PASSAGE },
{ GO_KAEL_DOOR, DATA_KAELTHAS, DOOR_TYPE_ROOM },
{ 0, 0, DOOR_TYPE_ROOM } // END
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,10 +189,12 @@ struct npc_madrigosa : public NullCreatureAI
{
if (param == ACTION_START_EVENT)
{
me->NearTeleportTo(1570.97f, 725.51f, 79.77f, 3.82f);
me->SetDisableGravity(true);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->RemoveDynamicFlag(UNIT_DYNFLAG_DEAD);
me->NearTeleportTo(1570.97f, 725.51f, 79.77f, 3.82f);
me->SendMovementFlagUpdate();

events.ScheduleEvent(EVENT_MAD_1, 2000);
}
else if (param == ACTION_SPAWN_FELMYST)
Expand All @@ -212,9 +214,9 @@ struct npc_madrigosa : public NullCreatureAI
brutallus->SetReactState(REACT_PASSIVE);
brutallus->setActive(true);
}
me->GetMotionMaster()->MovePoint(1, 1477.94f, 643.22f, 21.21f);
me->GetMotionMaster()->MoveTakeoff(1, 1477.94f, 643.22f, 21.21f);
me->AddUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
events.ScheduleEvent(EVENT_MAD_2, 6000);
events.ScheduleEvent(EVENT_MAD_2, 4000);
break;
case EVENT_MAD_2:
Talk(SAY_MAD_1);
Expand Down

0 comments on commit a3d8bfe

Please # to comment.