Skip to content

Commit

Permalink
Merge pull request #16262 from sirikfoll/Torch
Browse files Browse the repository at this point in the history
Core/Scripts Script Npc needed for Quest Torch Tossing, Part 2
  • Loading branch information
MitchesD committed Feb 4, 2016
2 parents 8b6954e + 8b74038 commit ccad18b
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 0 deletions.
54 changes: 54 additions & 0 deletions sql/updates/world/2016_01_14_99_world.sql
@@ -0,0 +1,54 @@
UPDATE `quest_template` SET `AllowableRaces`=1101 WHERE `ID`=11921;
UPDATE `quest_template` SET `AllowableRaces`=690 WHERE `ID`=11926;
UPDATE `quest_template` SET `TimeAllowed`=45 WHERE `ID` IN (11922,11731);
UPDATE `quest_template` SET `TimeAllowed`=90 WHERE `ID` IN (11921,11926);
UPDATE `quest_template_addon` SET `PrevQuestId`=11731 WHERE `ID`=11921; -- More Torch Tossing(A) requires Torch Tossing
UPDATE `quest_template_addon` SET `PrevQuestId`=11922 WHERE `ID`=11926; -- More Torch Tossing(H) requires Torch Tossing
UPDATE `quest_template_addon` SET `PrevQuestId`=11731 WHERE `ID`=11657; -- Torch Catching(A) requires Torch Tossing(A)
UPDATE `quest_template_addon` SET `PrevQuestId`=11922 WHERE `ID`=11923; -- Torch Catching(H) requires Torch Tossing(H)
UPDATE `quest_template_addon` SET `PrevQuestId`=11657 WHERE `ID`=11924; -- More Torch Catching(A) requires Torch Catching
UPDATE `quest_template_addon` SET `PrevQuestId`=11923 WHERE `ID`=11925; -- More Torch Catching(H) requires Torch Catching

DELETE FROM `creature_queststarter` WHERE `id` IN (26113,25975);
-- Master Flame/Fire Eater SAI
UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN (25975,26113);
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`IN (25975,26113);
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`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(25975,0,0,0,19,0,100,0,11731,0,0,0,11,45716,2,0,0,0,0,7,0,0,0,0,0,0,0,'Master Fire Eater - On Quest \'Torch Tossing\' Accepted - Cast \'Torch Tossing Training\''),
(25975,0,1,0,19,0,100,0,11921,0,0,0,11,46630,2,0,0,0,0,7,0,0,0,0,0,0,0,'Master Fire Eater - On Quest \'More Torch Tossing\' Accepted - Cast \'Torch Tossing Practice\''),
(26113,0,0,0,19,0,100,0,11922,0,0,0,11,45716,2,0,0,0,0,7,0,0,0,0,0,0,0,'Master Flame Eater - On Quest \'Torch Tossing\' Accepted - Cast \'Torch Tossing Training\''),
(26113,0,1,0,19,0,100,0,11926,0,0,0,11,46630,2,0,0,0,0,7,0,0,0,0,0,0,0,'Master Flame Eater - On Quest \'More Torch Tossing\' Accepted - Cast \'Torch Tossing Practice\'');

-- [DNT] Torch Tossing Target Bunny
DELETE FROM `creature_template_addon` WHERE `entry`=25535;
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(25535,0,0,0,0,0,45720);

UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry`=25535;
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=25535;
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`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(25535,0,0,0,8,0,100,0,45732,0,0,0,11,45724,2,0,0,0,0,7,0,0,0,0,0,0,0,'[DNT] Torch Tossing Target Bunny - On Spellhit \'Torch Land\' - Cast \'Brazzier Hit\'');

-- [DNT] Torch Tossing Target Bunny Controller
UPDATE `creature_template` SET `ScriptName`='npc_torch_tossing_target_bunny_controller' WHERE `entry`=25536;

DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (45732);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition` ,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(13,1,45732,0,0,1,0,45723,0,0,0,0,'','Spell \'Torch Toss\' can only hit targets with Aura \'Target Indicator\'');

DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (45719,46651,46630,45723,-46630,45716,-45716);
INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
(45719,-46630,0,'Torch Tossing Success remove Torch Tossing Practice'),
(46651,-45716,0,'Torch Tossing Success remove Torch Tossing Training'),
(46630,45725 ,2,'Torch Tossing Practice trigger Detect Invisibility'),
(45716,45725 ,2,'Torch Tossing Training trigger Detect Invisibility'),
(46630,-45724,0,'Torch Tossing Practice remove Brazier Hit'),
(45716,-45724,0,'Torch Tossing Training remove Brazier Hit'),
(-46630,-45724,0,'Torch Tossing Practice expired - clear Braziers Hit!'),
(-45716,-45724,0,'Torch Tossing Training expired - clear Braziers Hit!'),
(45723,43313,2,'Target Indicator(duration) trigger Target Indicator(visual)');

-- Fix A Thief's Reward
DELETE FROM `creature_queststarter` WHERE `quest` IN (9365, 9339);
UPDATE `quest_template_addon` SET `NextQuestID`=9365 WHERE `ID` IN (9324,9325,9326,11935);
UPDATE `quest_template_addon` SET `NextQuestID`=9339 WHERE `ID` IN (9330,9331,9332,11933);
62 changes: 62 additions & 0 deletions src/server/scripts/World/npcs_special.cpp
Expand Up @@ -518,6 +518,67 @@ class npc_dancing_flames : public CreatureScript
}
};

/*######
## npc_torch_tossing_target_bunny_controller
######*/

enum TorchTossingTarget
{
NPC_TORCH_TOSSING_TARGET_BUNNY = 25535,
SPELL_TARGET_INDICATOR = 45723
};

class npc_torch_tossing_target_bunny_controller : public CreatureScript
{
public:
npc_torch_tossing_target_bunny_controller() : CreatureScript("npc_torch_tossing_target_bunny_controller") { }

struct npc_torch_tossing_target_bunny_controllerAI : public ScriptedAI
{
npc_torch_tossing_target_bunny_controllerAI(Creature* creature) : ScriptedAI(creature)
{
_targetTimer = 3000;
}

ObjectGuid DoSearchForTargets(ObjectGuid lastTargetGUID)
{
std::list<Creature*> targets;
me->GetCreatureListWithEntryInGrid(targets, NPC_TORCH_TOSSING_TARGET_BUNNY, 60.0f);
targets.remove_if([lastTargetGUID](Creature* creature) { return creature->GetGUID() == lastTargetGUID; });

if (!targets.empty())
{
_lastTargetGUID = Trinity::Containers::SelectRandomContainerElement(targets)->GetGUID();

return _lastTargetGUID;
}
return ObjectGuid::Empty;
}

void UpdateAI(uint32 diff) override
{
if (_targetTimer < diff)
{
if (Unit* target = ObjectAccessor::GetUnit(*me, DoSearchForTargets(_lastTargetGUID)))
target->CastSpell(target, SPELL_TARGET_INDICATOR, true);

_targetTimer = 3000;
}
else
_targetTimer -= diff;
}

private:
uint32 _targetTimer;
ObjectGuid _lastTargetGUID;
};

CreatureAI* GetAI(Creature* creature) const override
{
return new npc_torch_tossing_target_bunny_controllerAI(creature);
}
};

/*######
## Triage quest
######*/
Expand Down Expand Up @@ -2393,6 +2454,7 @@ void AddSC_npcs_special()
new npc_lunaclaw_spirit();
new npc_chicken_cluck();
new npc_dancing_flames();
new npc_torch_tossing_target_bunny_controller();
new npc_doctor();
new npc_injured_patient();
new npc_garments_of_quests();
Expand Down

0 comments on commit ccad18b

Please sign in to comment.