@@ -133,6 +133,7 @@ struct NoggenfoggerElixirScript : public SpellScript
133133
134134 pPlayer->CastSpell (pPlayer, randomSpellId, true , nullptr );
135135 }
136+ return true ;
136137 }
137138};
138139
@@ -141,6 +142,113 @@ SpellScript* GetScript_NoggenfoggerElixir(SpellEntry const*)
141142 return new NoggenfoggerElixirScript ();
142143}
143144
145+ // 15712 - Linken's Boomerang
146+ struct LinkensBoomerangScript : public SpellScript
147+ {
148+ bool OnEffectExecute (Spell* spell, SpellEffectIndex effIdx) const final
149+ {
150+ // 10% chance to proc stun, 3% chance to proc disarm (dubious numbers)
151+ if (effIdx == EFFECT_INDEX_1)
152+ {
153+ if (urand (0 , 30 ))
154+ return false ;
155+ }
156+ else if (effIdx == EFFECT_INDEX_2)
157+ {
158+ if (urand (0 , 10 ))
159+ return false ;
160+ }
161+ return true ;
162+ }
163+ };
164+
165+ SpellScript* GetScript_LinkensBoomerang (SpellEntry const *)
166+ {
167+ return new LinkensBoomerangScript ();
168+ }
169+
170+ // 6410 - Food (Scorpid Surprise)
171+ struct ScorpidSurpriseScript : public SpellScript
172+ {
173+ bool OnEffectExecute (Spell* spell, SpellEffectIndex effIdx) const final
174+ {
175+ if (effIdx == EFFECT_INDEX_1)
176+ {
177+ // Heals 294 damage over 21 sec, assuming you don't bite down on a poison sac.
178+ // 10% proc rate (no source !)
179+ if (urand (0 , 10 ))
180+ return false ;
181+ }
182+ return true ;
183+ }
184+ };
185+
186+ SpellScript* GetScript_ScorpidSurprise (SpellEntry const *)
187+ {
188+ return new ScorpidSurpriseScript ();
189+ }
190+
191+ // 29284 - Brittle Armor (Zandalarian Hero Badge)
192+ struct BrittleArmorDummyScript : public SpellScript
193+ {
194+ bool OnEffectExecute (Spell* spell, SpellEffectIndex effIdx) const final
195+ {
196+ if (effIdx == EFFECT_INDEX_0 && spell->GetUnitTarget ())
197+ {
198+ spell->m_caster ->CastSpell (spell->GetUnitTarget (), 24575 , true );
199+ }
200+ return true ;
201+ }
202+ };
203+
204+ SpellScript* GetScript_BrittleArmorDummy (SpellEntry const *)
205+ {
206+ return new BrittleArmorDummyScript ();
207+ }
208+
209+ // 29286 - Mercurial Shield (Petrified Scarab)
210+ struct MercurialShieldDummyScript : public SpellScript
211+ {
212+ bool OnEffectExecute (Spell* spell, SpellEffectIndex effIdx) const final
213+ {
214+ if (effIdx == EFFECT_INDEX_0 && spell->GetUnitTarget ())
215+ {
216+ spell->m_caster ->CastSpell (spell->GetUnitTarget (), 26464 , true );
217+ }
218+ return true ;
219+ }
220+ };
221+
222+ SpellScript* GetScript_MercurialShieldDummy (SpellEntry const *)
223+ {
224+ return new MercurialShieldDummyScript ();
225+ }
226+
227+ // 23442 - Everlook Transporter (Dimensional Ripper - Everlook)
228+ struct EverlookTransporterScript : public SpellScript
229+ {
230+ bool OnEffectExecute (Spell* spell, SpellEffectIndex effIdx) const final
231+ {
232+ if (effIdx == EFFECT_INDEX_0 && spell->m_casterUnit )
233+ {
234+ int32 r = irand (0 , 119 );
235+ if (r >= 70 ) // 7/12 success
236+ {
237+ if (r < 100 ) // 4/12 evil twin
238+ spell->m_casterUnit ->CastSpell (spell->m_casterUnit , 23445 , true );
239+ else // 1/12 fire
240+ spell->m_casterUnit ->CastSpell (spell->m_casterUnit , 23449 , true );
241+ }
242+ }
243+ return true ;
244+ }
245+ };
246+
247+ SpellScript* GetScript_EverlookTransporter (SpellEntry const *)
248+ {
249+ return new EverlookTransporterScript ();
250+ }
251+
144252void AddSC_item_spell_scripts ()
145253{
146254 Script* newscript;
@@ -164,4 +272,29 @@ void AddSC_item_spell_scripts()
164272 newscript->Name = " spell_noggenfogger_elixir" ;
165273 newscript->GetSpellScript = &GetScript_NoggenfoggerElixir;
166274 newscript->RegisterSelf ();
275+
276+ newscript = new Script;
277+ newscript->Name = " spell_linkens_boomerang" ;
278+ newscript->GetSpellScript = &GetScript_LinkensBoomerang;
279+ newscript->RegisterSelf ();
280+
281+ newscript = new Script;
282+ newscript->Name = " spell_scorpid_surprise" ;
283+ newscript->GetSpellScript = &GetScript_ScorpidSurprise;
284+ newscript->RegisterSelf ();
285+
286+ newscript = new Script;
287+ newscript->Name = " spell_brittle_armor_dummy" ;
288+ newscript->GetSpellScript = &GetScript_BrittleArmorDummy;
289+ newscript->RegisterSelf ();
290+
291+ newscript = new Script;
292+ newscript->Name = " spell_mercurial_shield_dummy" ;
293+ newscript->GetSpellScript = &GetScript_MercurialShieldDummy;
294+ newscript->RegisterSelf ();
295+
296+ newscript = new Script;
297+ newscript->Name = " spell_everlook_transporter" ;
298+ newscript->GetSpellScript = &GetScript_EverlookTransporter;
299+ newscript->RegisterSelf ();
167300}
0 commit comments