Commit Graph

2245 Commits

Author SHA1 Message Date
Keader fc2872e16c Core/Scripts: Fixed Volatile Ooze/Gas Cloud issues in Professor Putricide
Closes #18925

(cherry picked from commit 8d198cb360)
2020-04-27 12:25:52 +02:00
Xinef 6f7ff9a3ef Core/Achievements: Optimized resetting achievement criteria by condition and changed the functionality to properly reset all possible criteria with given condition
Closes #18905

(cherry picked from commit 7c7b877c3f)
2020-04-26 22:58:51 +02:00
tkrokli b259614778 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)

(cherry picked from commit f6f36be004)
2020-04-24 17:18:51 +02:00
ariel- cbcc4601ad Core/AI: Build fix
- Stop exposing DoublePosition constructor versions, they're only used for internal representation
- Moved IsInBounds function to public scope

(cherry picked from commit 83162fafa4)
2020-04-24 17:18:51 +02:00
ariel- 3f79c9f696 Core/AI: AreaBoundary refactor
- Added an auxiliary function IsInBounds to base CreatureAI
- Changed container to vector. Set had no sense because we're storing new pointers, they have different addresses even if the boundary is the same

(cherry picked from commit 2f99fa09c9)
2020-04-24 17:18:51 +02:00
Gustavo 6f523b4fb6 Core/Scripts: minor fixes in boss_the_lich_king (#19311)
Closes #4427
Closes #7091

(cherry picked from commit 2792046dc7)
2020-04-24 17:18:49 +02:00
ariel- 7a561ad045 Core/Scripts: Updated Ulduar instance model
- Codestyle/indent fixes
- Added ObjectData for some GOs
- Added GetUlduarAI to creatures
- Fixed possible out-of-bounds access in boss_razorscale_controllerAI (boss AI number beyond allocated boss size)

(cherry picked from commit b74cc80859)
2020-04-24 17:18:49 +02:00
Chaouki Dhib 5d076cfe29 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.

(cherry picked from commit a1f2f30c14)
2020-04-24 17:18:49 +02:00
ariel- ebc06b1d04 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

(cherry picked from commit c69a7d1223)
2020-04-24 17:18:47 +02:00
Aokromes b0bf1275ee New Year 2020-01-02 06:44:10 +01:00
Shauren 3ac790287a Core/DataStores: Updated db2 structures to 8.2.5 2019-10-27 00:12:45 +02:00
ariel- 56ba22ea98 Core/Scripts: add condition check for npc_wyrmrest_defender
minor code refactors

Closes #19299

(cherrypicked from f7758954f7)
2019-08-17 20:04:14 +02:00
Keader dbf3225d45 Core/Scripts: Fixed Ingvar evade issue
(cherrypicked from bf5661e2fd)
2019-08-17 20:04:14 +02:00
xinef1 60663d1374 Ensure that all actions are compared to fixed point in time (ie. world update start) (#18910)
- Actions will not be dependent on processing moment
- Increased GameObjects cooldown resolution to milliseconds, fixes arming time of traps to be exactly one second and not something from range (1000, 1999)
- Created GameTime namespace and UpdateTime class and moved there some code out of world

(cherrypicked from 7567cafec8)
2019-08-17 20:04:14 +02:00
ariel- aaefda6100 Core/Scripts: Change null-check to assert
- ToPlayer() should never be null in this context

(cherrypicked from 12c680f9b1)
2019-08-17 20:04:14 +02:00
Keader f087fbbcc6 Core/Scripts: Fixed crash in Sindragosa
Closes #19227

(cherrypicked from ecfb346d1a)
2019-08-17 20:04:14 +02:00
ariel- e050a7444e Core/Scripts: kill a warning
(cherrypicked from ace2a75197)
2019-08-17 20:04:14 +02:00
ariel- beda1c2466 Core/Scripts: Thrusting Hodir's Spear
- Everything is sniffed, enjoy this hell of a quest!

Closes #12808

(cherrypicked from 01f5befcec)
2019-08-17 20:04:14 +02:00
Gustavo 1d2f20d59a Core/Unit: Correct speed calculus when affected by SPELL_AURA_MOD_MINIMUM_SPEED (#18136)
(cherrypicked from 4224259d83)
2019-08-17 20:04:14 +02:00
xinef1 a32d5cfa17 Core/SmartAI: Various fixes and extensions for smart scripts: (#18673)
- Possible crashes fixed
- Memory leak fixed
- Implemented checking of vehicle conditions
- Extended eventphasemask to 12 bits (sql required to change DB field type)
- SMART_EVENT_GOSSIP_HELLO - added possibility to detect for gameobject reportUse call
- Renamed action SMART_ACTION_SET_FLY to SMART_ACTION_SET_DISABLE_GRAVITY (to reflect actual functionality)
- Added targetsLimit to action SMART_ACTION_CAST and SMART_ACTION_INVOKER_CAST to limit max amount of targets (selected randomly)
- Action SMART_ACTION_TALK corrected to always work as intended
- Properly call GroupEventHappens in action SMART_ACTION_CALL_GROUPEVENTHAPPENS if invoker was charmed or owned by the player
- Properly utilize followAngle in action SMART_ACTION_FOLLOW (db orientation should be in degrees), but keep backward compatibility
- Added action SMART_ACTION_SET_CAN_FLY (119) 0/1
- Added action SMART_ACTION_REMOVE_AURAS_BY_TYPE (120) AuraType, can be used to exit vehicle for example
- Added action SMART_ACTION_SET_SIGHT_DIST (121) sightDist
- Added action SMART_ACTION_FLEE (122) fleeTime
- Added action SMART_ACTION_ADD_THREAT (123) +threat, -threat
- Added action SMART_ACTION_LOAD_EQUIPMENT (124) equipmentId
- Added action SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT (125) minId, maxId
- Added action SMART_ACTION_REMOVE_ALL_GAMEOBJECTS (126), removes all owned gameobjects
- Added action SMART_ACTION_STOP_MOTION (127), stopMoving, movementExpired
- Extended target SMART_TARGET_HOSTILE_SECOND_AGGRO with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_LAST_AGGRO with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_RANDOM with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_RANDOM_NOT_TOP with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_THREAT_LIST with maxdist
- Extended target SMART_TARGET_OWNER_OR_SUMMONER to be able to get charmer/owner of current owner
- Added new target SMART_TARGET_FARTHEST with maxDist, playerOnly, isInLos restrictions
- Added SpellHit hook to GameObjectAI and extended SmartGameObjectAI to call SMART_EVENT_SPELLHIT when gameobject is hit by spell
- Call GameObjectAI Reset hook on gameobject respawn (for ex. to reset one time events in smart scripts)
- Fixed some logic errors in code
- SmartAI Escorts properly despawn escortee if no players are in range
- Disable Evading while charming creature with SmartAI
- Don't call SMART_EVENT_RESPAWN for dead units before they actually respawn
- Don't call SMART_EVENT_RESPAWN for not spawned gameobjects
- Properly call SMART_EVENT_RESPAWN for gameobject respawn
- Allow action SMART_ACTION_SET_IN_COMBAT_WITH_ZONE to utilize targetlist
- Allow action SMART_ACTION_CALL_FOR_HELP to utilize targetList
- Allow action SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL to utilize targetList
- Allow action SMART_ACTION_SET_VISIBILITY to utilize targetList
- Allow action SMART_ACTION_SET_ACTIVE to utilize targetList
- Allow action SMART_ACTION_ATTACK_START to select random attack target instead of first on the list
- Allow gameobjects to summon gameobjects with action SMART_ACTION_SUMMON_GO
- Properly store action invokers for action SMART_ACTION_WP_START, if no player invokers are found, distance despawn check won't be used
- Allow action SMART_ACTION_WP_RESUME to compensate for the state the unit actually is in (eg. combat)
- Allow action SMART_ACTION_MOVE_TO_POS to select random of the avaiable targets, not only the first one.
- Allow action SMART_ACTION_MOVE_TO_POS to utilize x, y, z parameters as an offset to calculated coordinates
- Action SMART_ACTION_RESPAWN_TARGET should never modify respawntime of already spawned gameobjects, use dedicated function
- Properly delete ontime events created by SMART_ACTION_CREATE_TIMED_EVENT
- If action could not be started because conditions were not satisfied, do not recalculate the waittime to action repeattime, use smaller value to recheck more frequently
- Allow target SMART_TARGET_CLOSEST_PLAYER to be used by gameobjects
- Allow target SMART_TARGET_OWNER_OR_SUMMONER to be used by gameobjects
- Fixed SMART_EVENT_COUNTER_SET to be only called for the id that was incremented
- Changed the way counters work
- Protect PhaseInc from surpassing maximum phase
- Added loading checks for missing NON_REPEATABLE flag if no repeatmin, repeatmax is set
- Added spell validation for SMART_ACTION_CROSS_CAST

(cherrypicked from b0ae5fadd1)
2019-08-17 20:04:14 +02:00
Riztazz 2caec4f4d2 Revert "[3.3.5][master] Core/Movement: Smooth movement #13467 (#18020)"
This reverts commit 05fb27dae4.

(cherrypicked from a3c6880579)
2019-08-17 20:04:14 +02:00
Shauren f6e2b8cdc1 Core/DBLayer: Prevent committing transactions started on a different database 2019-07-27 10:52:33 +02:00
Gustavo c860522ecf Core/Scripts Update boss Skadi the Ruthless (#19114)
(cherrypicked from 4536846d7d)
2019-07-21 21:06:54 +02:00
jackpoz 5b78f19879 Core/Misc: Fix static analysis issues
(cherrypicked from 865a3a47ea)
2019-07-21 21:06:54 +02:00
xinef1 fe63cd3dbb 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

(cherrypicked from e1f14215d8)
2019-07-21 21:06:54 +02:00
xinef1 ad008c43b7 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.

(cherrypicked from 86da1a19bb)
2019-07-21 21:06:54 +02:00
Keader 9bd8ca0e5f Core/Scripts: Palehoof rewritten & Utgarde Pinnacle updated (#18712)
Closes #15405

(cherrypicked from ba1df45d36)
2019-07-21 21:06:54 +02:00
Shauren 1ce8bf22fc Nopch fix 2019-06-15 19:04:21 +02:00
Keader 77a73a737c Build fix and codestyle
(cherrypicked from 8f00aa92de)
2019-06-15 18:41:09 +02:00
Afgann afade22ffb Core/Scripts: Moorabi encounter updated. (#19013)
(cherrypicked from 21b5a377e4)
2019-06-15 18:41:09 +02:00
Keader a73713b348 Core/Scripts: Updated Ruby Sanctum instance model
(cherrypicked from ce774918a7)
2019-06-15 18:41:09 +02:00
Keader 732f3ce377 Core/Ruby Sanctum: Improved General Zarithrian encounter
* Fixed spell timers
* Improved Codestyle
* Fixed minions number in 25 man
* Fixed movement
* Implemented DespawnAtEvade
*
(cherrypicked from c58dd6c166)
2019-06-15 18:41:09 +02:00
ariel- 3d30140e45 Core/Scripts: remove GMs from Sindragosa's Fury's targetlist
By Keader
Ref #18452
(cherrypicked from 317efd51ec)
2019-06-15 18:41:09 +02:00
Keader 83523177b2 Core/Scripts: Removed double check of CheckRequiredBosses in Sindragosa
(cherrypicked from 3c4dc3ec4f)
2019-06-15 18:41:09 +02:00
Gustavo 1ddb9515eb Core/Scripts Fix issue with Lady Deathwhisper's door
(cherrypicked from f57132b795)
2019-06-15 18:41:09 +02:00
Keader 6e3ce8cf8b Core/Scripts: Fixed Crok event not starting
[*] Fixed Svalna entering in combat with people ouside of room
Closes #8186

(cherrypicked from 591a25500d)
2019-06-15 18:41:09 +02:00
Keader 7c760ad992 Core/Scripts: Fixed issues in Gal'darah fight
Closes #16219

* Added DespawnAtEvadeMethod
* Fixed Agro
* Implemented Stampede
* Fixed Rhino Spirit flags
* Updated codestyle

(cherrypicked from a884660d50)
2019-06-15 18:41:09 +02:00
Shauren 455959c606 Core/PacketIO: Rewrite updatefield handling 2019-06-08 17:06:57 +02:00
vincent-michael 5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Shauren e9bcae1fad Core/Misc: Fixed nopch and clang 6.0 warnings 2018-12-09 16:07:38 +01:00
Shauren f94deace76 Merge branch 'bfa' 2018-12-09 14:45:03 +01:00
HelloKitty 46c69df3a7 Core/Vmaps: Stop M2s from occluding for spellcast LoS
Closes #18528

(cherry-picked from 01d715eaef)
2018-12-09 14:18:42 +01:00
Keader a31a828a40 Core/Scripts: Removed unneeded check in Blood Prince Council
(cherry-picked from 55c3eb66d7)
2018-12-09 14:18:42 +01:00
Keader 7653d24072 Core/RubySanctum: Updates in Saviana Ragefire encounter
* Fixed Codestyle
* Fixed Spell timers
* Added DespawnAtEvade Method

(cherry-picked from bef8a6dee5)
2018-12-09 14:18:42 +01:00
Traesh 9d210476e5 Core/Creatures: Update creature model handling with new display scale (#22567) 2018-11-07 20:23:30 +01:00
Shauren 7512ffb058 Core/Entities: Update updatefields to 8.0.1.27980 2018-10-10 22:11:41 +02:00
Shauren 738f37d3cf Core/Maps: Replaced spawnmask with difficulty list 2018-09-15 17:55:26 +02:00
Shauren 9ffabae6bf Scripts/Misc: Use InstanceMap* in InstanceScript instead of Map* 2018-06-16 17:24:10 +02:00
Shauren 921235b3e9 Core/Misc: Fixed rotation of many gameobjects summoned in tol barad, garrison and various scripts 2018-05-07 17:45:09 +02:00
Shauren 91be2332e2 Core/Entities: Phasing rewrite
* Optimized phase visibility checking
* Handle all phase flags

Closes #16758
Closes #21119
2018-03-25 19:28:36 +03:00