Commit Graph

783 Commits

Author SHA1 Message Date
Shauren
abac1b34bc Core/Utilities: Rename RandomResizeList->RandomResize as it is no longer restricted to a list
* Also fix gcc build

(cherry picked from commit f097e341f5)
2017-06-03 02:27:48 -03:00
ForesterDev
abea8bf4cb Core/Defines: define faction templates and replace magic numbers from scripts 2017-05-23 12:30:27 +02:00
TecDian
4b8644d6e6 Scripts/Events: Add missing line for "Love is in the air" boss fight (#19521) 2017-05-14 11:30:02 +02:00
ccrs
17579f8d91 Core/Creature: drop method SetPosition
eeeevil, use UpdatePosition. It was there just for old scripts compatibility.
2017-05-02 14:18:42 +02:00
ariel-
aa0b7dd152 Core/Misc: build fixes 2017-05-01 18:52:15 -03:00
ariel-
f913f3bb89 Core/Scripts: unified scripted gossip/quest api
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)
2017-05-01 18:19:36 -03:00
ariel-
4c4dca6d69 Core/Misc: camelize GetFaction/SetFaction properly 2017-04-28 18:37:38 -03:00
ccrs
229444b74a Core/Misc: cleanup SetInFront uses
Set in front modifies only the serverside orientation, use with care.
Also check for current focus to prevent things like incorrect damage on casting creatures (ie dragon breath direction change in your face because of some taunt missclick)
2017-04-27 15:34:01 +02:00
ccrs
c7a57e2a09 Core/Unit: 2170541a51 followup
use true as default value since pretty much all the script calls will expect that
2017-04-27 14:55:06 +02:00
ariel-
e478434146 Core/Misc: fix static analysis issues
CID 1373466
CID 1373481
CID 1373482
2017-04-09 19:18:22 -03:00
tkrokli
f6f36be004 Scripts: minimize duplicated enum names in header files (#19377)
* Scripts: Minimize duplicated enum names in header files

This reduces the number of cache resets with the Zapcc compiler

- Standard followed is instance/raid TLA + DataTypes/CreaturesIds/etc
- Partial cherry-pick of master commit 7eb4512eee
- Removed unused defines in sunken_temple.h (the core scripts using these have been moved to SAI)
2017-03-29 10:06:06 +02:00
Chaouki Dhib
a1f2f30c14 Core/Spells: fix wrong distance calculations in AoE spells [Needs testing] (#16290)
Core/Spells: Fix wrong distance calculations in AoE spells.
Pull request #16290 by chaodhib.
God bless, finally.
2017-03-23 00:43:04 +01:00
ariel-
6f69f67f78 Core/Scripts: Updated Zul'Aman instance model
- Codestyle/indent fixes
- Use of DoorData and ObjectData
- Added GetZulamanAI for creatures
- Moved bosses to BossAI
2017-03-20 01:04:21 -03:00
Gustavo
8c6fa411e8 Core/Scripts: implement boss Apothecary Hummel ("Love is in the Air" event boss) (#19076)
Closes #5114
2017-03-13 10:30:32 -03:00
ariel-
c69a7d1223 Core/Auras: reworked multiplicative AuraEffects calculation
- Splitted containers for flat modifiers and pct modifiers, as they now have different handling
- Amount is now multiplied only on apply; on unapply, iterate through auras and reset the counter
- Fixes many cases of rounding error due to applying/unapplying of small factors
- Allows amounts to be zeroed (ie with an AuraEffect of amount -100)
- Do a partial revert of 6dc37a9add, auras should update amounts only for items allowed (ie no more giving crit to a sword while having an axe in the other hand and being Poleaxe spec'd)
- SPELL_AURA_MOD_SCALE now scales additively, rather than multiplicatively (checked in sniffs)

Closes #18687
2017-02-27 14:24:20 -03:00
Gustavo
87f2cb04ca Core/Scripts Rework boss Terestian Illhoof (Karazhan) (#19057) 2017-02-09 23:01:39 -03:00
Gustavo
d06391d062 Core/Scripts Update boss Maiden of Virtue (#19058) 2017-02-05 19:45:13 -03:00
xinef1
14dfc377b4 Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes

* Correction
2017-02-05 23:42:31 +01:00
Gustavo
169e150628 Core/Scripts: boss The Curator (Karazhan) rework (#19040)
Closes #16099
2017-02-05 17:52:14 -03:00
xinef1
e1f14215d8 Core/Creatures: Various fixes for creatures, regarding combat conditions, despawning, and few others (#18998)
* Made some changes to kiting mechanics, simplified code and made taunt auras prolong combat no matter the distance from the spawn
Unified some creature despawning code, removed some brutal direct calls in scripts
Don't play death anim on forced despawn
Removed some redundant visibility changes on creature despawn
Fixed possible problem with pet initializing template info from difficulty greater than normal
Properly keep UNIT_FLAG_IN_COMBAT on UpdateEntry call
Moved RegenerateMana function to general Regenerate(Power) function
Fixed increased health regeneration from polymorph for pets
Implemented CREATURE_TYPE_FLAG_GHOST_VISIBLE, those creatures will be properly seen when player is dead also
Removed hackfix from Gaeriyan and Franclorn Forgewright, fixed properly
Simplified ForcedRespawnTime code in ForcedDespawn
Do not allow to assist unit while evading or when enemy is evading
Do not allow to attack other units when evading or when the unit is evading
Corrected distance checking code before creature is allowed to evade, should fix some common problems
Properly return summon position for summoned creatures as their respawn position
Properly stop all moving units on gossip hello, no matter their npc flags
2017-02-05 15:39:22 +01:00
xinef1
86da1a19bb Core/Misc: Fix various crashes, also related to multithreading (#19012)
* When iterating groups we have to either do it not in multithreaded context (map updates) or start with checking maps (they are guaranteed to change in single thread update).
* Properly clear ComboPoint references on player remove 
* remove some possible references item may have when it is deleted during save. 
* Also clear all hostile references when unit is removed from map.
2017-02-04 22:37:16 +01:00
Gustavo
ad8a71c084 Core/Scripts: boss Nightbane rework (Karazhan) (#18899)
Closes #10017
2017-02-04 11:56:00 -03:00
ariel-
f6dc66e55f Core/Script: PCH issues 2017-01-07 13:27:43 -03:00
ariel-
db34f6480f DB/Script: The Only Cure is More Green Glow
Closes #1723

SQL by Staleness89, corrections by Killyana
Script by Keader, corrections by sirikfoll and me
2017-01-07 13:23:20 -03:00
tkrokli
6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
Gustavo
d6a5477407 Core/Scripts: Implement Boss Coren Direbrew (#18137) 2017-01-02 10:55:39 -02:00
Shauren
618cf0e1c2 Core/Units: Cleanup hardcoded magic numbers for byte field offsets
(cherry picked from commit ac1dc758b9)
2016-12-15 08:16:01 -03:00
Andrew Blakely
60ac53ff07 Core/Scripts: Fixed Vaelastrasz bomb mechanic (#18260)
* Core/Scripts: Fixed Vaelastrasz bomb mechanic

Vaelstraz was suppose to bomb raid members that are mana users every 15
seconds. He was not doing that with the current implementation.

This implementation allows him to bomb the raid and to select the proper
targets. This is also done in a cleaner way.

* Added AuraScript for SPELL_BURNINGADRENALINE

Needed to define an AuraScript for custom behavior that would denatonate
the damaging aura when the debuff falls off.

SpellId - 18173

* Added SQL for Burning Adrenaline Script Ref

* Fixed Multiple Application of BA

* Add unit null check in lambda

* Remove DB name from sql query

* Added Newline in SQL update file.

* Added SQL delete query for potential existing spell

* Fix SQL newline again.

* As suggested a simpler SpellCast overload works

I don't know if there are any consequences but it seems to function fine
in in-game.

I'd like more information on the overload that involves an AuraEffect.

* Remove duplicate Unit null check in lambda

* Update boss_vaelastrasz.cpp
2016-11-25 11:54:38 -02:00
tkrokli
2b26894eb1 Core/Scripts: Archmage Arugal event script (#17922)
Implement boss script for Archmage Arugal
- add yells used in boss event to DB
- use proper spells instead of only melee fighting
- add DataType in shadowfang_keep.h
- add event scheduling in the script

By Riztazz
Closes issue #17916
2016-11-03 06:50:03 +01:00
Dr-J
1fc8e2d5f2 Remove reference to eastern plaguelands script 2016-11-01 13:10:16 +00:00
Dr-J
9be0362606 Remove obsolete file 2016-11-01 12:59:18 +00:00
SnapperRy
ec023c3032 Codestyle. 2016-10-29 16:49:10 +02:00
SnapperRy
fdc4ab4ab4 Script/Creature: Scarshield Infiltrator/Vaelan. 2016-10-14 17:49:55 +02:00
Treeston
cf628880d5 Map/Instances: Greatly simplify PermBindAllPlayers logic. (#17940) 2016-09-16 13:09:16 +02:00
treeston
ed83a35fbe Drycoding is bad, mmkay? 2016-09-03 17:29:50 +02:00
treeston
ac62d7156f Scripts/Events: Globally fix all ExecuteEvent loops to check UNIT_STATE_CASTING after each iteration, instead of just checking it once initially.
Fixes and closes #17892.
2016-09-03 17:21:22 +02:00
treeston
d55426f5b4 Entities/Gossip: The Big One™ that gets rid of all uses of The Bad™ and The Ugly™, e.g. gossip preprocessor macros, and replaces them with the new-and-shiny gossip functions. 2016-08-31 00:59:04 +02:00
tkrokli
068656af06 Core/Scripts: remove forgotten #define in boss_kalecgos.cpp
This #define was originally supposed to be removed in my PR #17832,
but for some reason it remained undeleted. This commit corrects it.

Also aligned all the enum values to the same column for readability,
based on a common multiple of 4 spaces.
2016-08-30 23:34:28 +02:00
Gustavo
6ee35734e4 Whitespace clean-up 2016-08-29 01:11:04 +02:00
tkrokli
8bc00e8952 Core/Scripts: move #define to enum in boss_kalecgos.cpp 2016-08-25 09:03:41 +02:00
tkrokli
f3dc97f263 Core/Scripts: set correct unit_flags on Scarlet Mine Car (#17844)
Closes #17816
2016-08-23 20:07:16 -03:00
Alan Deutscher
061b62a97d Scripts: UNIT_FLAG_REMOVE_CLIENT_CONTROL no longer used as a method for preventing a unit from moving
UNIT_FLAG_REMOVE_CLIENT_CONTROL (formerly UNIT_FLAG_DISABLE_MOVE) is a client-only feature that should not be used for NPC scripting. All applications of this flag in scripts/ have been replaced with applications/removals of the UNIT_STATE_ROOT state.

Closes #17311
2016-08-21 11:04:59 +02:00
tkrokli
3c5b5f56f0 Core/Scripts: remove #define text in pyrewood_ambush
- remove #define text from script
- move say text to DB table creature_text
- add enum names and values
- move values in code to enum
2016-08-04 18:13:55 +02:00
treeston
4030e4d780 ScriptedAI/Creature: Fix a bug where a std::chrono overload was counting milliseconds instead of seconds. 2016-08-04 15:32:24 +02:00
tkrokli
2125c12609 Core/Scripts: move npc_kharan_mighthammer to DB/SAI
This PR affects the following 2 quests:
Quest ID 4001 "What Is Going On?" - part 2 (Horde)
Quest ID 4342 "Kharan's Tale" (Alliance)

Target of this PR:
Move core script npc_kharan_mighthammer to DB/SAI
(thereby removing 10 lines of hardcoded text).

* DB/conditions: extra gossip conditions

- added conditions for gossip before quest taken and after quest completed.
- removed redundant core script SAY_GET_ME_OUT_OF_HERE comment

* DB/creature: add more text to Kharan

- add all missing creature_text lines to entry 9021 Kharan Mighthammer
- add SAI duration to wait before TEXT_OVER is triggered (3000 ms)
2016-08-04 02:34:51 +02:00
ariel-
62bfee37cb Core/Entities: debloat SummonGameObject parameter list using proper wrappers and enable GO rotation in scripts
- There's still an overload allowing for x, y, z, o to be passed directly
- Fixed default animstate for GameObject creation in many places, it should be 255, not 100 (checked in sniffs)
2016-07-30 18:50:44 -03:00
Nyeriah
2d0fa2d020 Scripts/Karazhan: Register Midnight's summons
* Solves issue with bosses not despawning after encounter
2016-07-28 03:12:35 -03:00
Nyeriah
0cc33b5a42 Scripts/Karazhan: Fix a warning 2016-07-28 01:19:57 -03:00
Nyeriah
4c4d92faa3 Scripts/Karazhan: Rework Attumen the Huntsman's script
Change log:
- Timers are more accurate
- Corrected Charge ability ID based on 6.x researches
- Added Midnight's missing emotes
- Fixed issue with instance being stuck in combat in case of wipes
- Solved the rare scenario where Attumen would be summoned multiple times
- Visual spell on 3rd phase transition added
- Attumen and Midnight can now be damaged during 3rd phase transition
- Midnight calls for the aid of every horse still alive in the stables
- Use proper spells to summon Attumen and handle transitions
- Now despawns on evade
Video of encounter after changes: https://www.youtube.com/watch?v=KX0rqaBeSzw
2016-07-28 00:48:20 -03:00
Snapper
ebb33bbfc1 Core/Misc: use enum for UNIIT_NPC_FLAGS' zero values 2016-07-10 09:33:55 +02:00