Commit graph

54 commits

Author SHA1 Message Date
gmriggs
2d6f00b7ec
fix appraisal vital colors for buff/debuff (#4067) 2023-12-02 16:50:27 -05:00
gmriggs
dfbdd99a27
sync minimum attributes up with client - fixes chicken attributes (#3795)
* sync minimum attributes up with client - fixes chicken attributes

* sync minimum vitals up with client
2022-01-19 10:43:04 -05:00
gmriggs
0c4a45109f
fix edge case for drudgewoodtarget showing green attributes (#3730) 2021-11-07 08:10:19 -05:00
gmriggs
20ccf8e4d6
add support for shroud spells / multiplicative skill enchantments (#3711)
* add support for shroud spells / multiplicative skill enchantments

* v2

* fix vitae filter

* tested, added /castspell dev command
2021-10-24 17:28:43 -04:00
Ty Conner
a841422521
Aura of the Craftsman applies to all RecipeManager interactions that have difficulty (#3627) 2021-08-01 14:56:43 -04:00
gmriggs
7ef8b19467
further updates to base vs. current to sync up exactly with client (#3376)
* further updates to base vs. current to sync up exactly with client

* add MinVital to match client

* avoid underflow

* .
2020-11-29 05:10:47 -05:00
gmriggs
0bc2c99b09
sync Enlightenment and GearMaxHealth calcs up to client more closely (#3374) 2020-11-26 21:10:57 -05:00
gmriggs
c0cb15a20c
updating GearRatingCache for latest requirements (#3278)
* adding end of retail mutation filters for melee weapon damage, wield difficulty, damage variance, weapondefense, and weaponoffense

* .

* adding 4eyebiped credit

* adding end of retail mutation filters for missile weapon DamageMod, ElementalDamageBonus, WieldRequirements, and WeaponDefense

* adding end of retail mutation filters for caster weapon ManaConversionMod, ElementalDamageMod, WieldRequirements, and WeaponDefense

* update melee scripts

* resolve merge

* .

* add missing lines

* adding weapon speed mutations

* appending LongDesc with ' of <first spell name w/ descriptor>'

* .

* adding some missing spell descs from magloot logs

* adding SpellDIDs to isMagical casters

* wip

* finalizing

* updating qualityMod

* modifying qualityMod again, to align with data + magloot logs for legendary chests

* ConcurrentDictionary.TryAdd

* updating Clothing spells w/ latest data

* porting *_cantrip_drop_rate server config options to updated cantrips system

* update CreateRandomScroll() to eor chances and ranges

* update

* spacing

* adding retail chance tables for level 8 spell components, adding quality mod to more rolls

* small adjustments

* wip

* adding PetDevice and EncapsulatedSpirit to updated loot system

* adding Aetheria to CreateRandomLootObjects_New w/ chances from magloot logs

* add 2 missing glyphs

* adding Cloaks to updated loot system w/ retail chances for drop rates and ItemMaxLevel

* adding trinkets to jewelry wcid tables w/ eor chances

* adding retail process and chances for rolling for coalesced mana

* adding support for society armor to updated loot system

* updating spell selection tables to eor data

* adding comment for clarity

* updating cantrip selection tables to eor chances / data

* linking to new cantrip tables in updated loot system

* adding GetSpellCode_Dynamic alt method

* adding chance table verification, fixing 2 chance tables

* updating threshold

* adding some missing wcids

* adding ArmorModVsType mutations

* adding TryMutateGearRating() to updated T8 loot

* adding missing logic for TreasureItemType.Cloak

* cleanup

* updating GearRatingCache for latest requirements

* adding GearMaxHealth to jewelry roll

* adding support for GearMaxHealth
2020-10-09 00:50:53 -04:00
gmriggs
4a537b47ca
LumAugSkilledSpec base -> current (#3150) 2020-08-22 18:47:58 -04:00
gmriggs
f01ab4bdfd
enlightenment doesn't boost untrained / unusable skills (#3115) 2020-08-13 07:25:47 -04:00
Mag-nus
75fc1ce23c
Step 3. Convert ShardDatabase/WorldObjects biota from the ACE.Database model to the new ACE.Entity model (#2731)
* Step 1. Add new adapter classes and models

All classes and objects added are in new namespaces.

This add has 0 interraction on existing ACE code.

This sets the groundwork for Step 2. Moving World DB caching to the new models

* first part of the world entity usage

* almost there

* final part

* update WeenieExtensions

* fix

* merge fixes and improvements

* ACE.Database new code

* it compiles

* InitializePropertyDictionaries

* WOrldDatabaseWithEntityCache cleanup

* ShardDatabaseWithCaching

* ShardDatabase Cleanup

* todo

* cache counts reported in serverstatus

* House InitializePropertyDictionaries

* improve ServerStatus

* BiotaModel change HousePermissions to Dictionary<uint, bool>

* PropertiesAllegiance to dictionary

* BiotaUpdater improvements

* Shard Database Cache Reporting

* More code ported from Step 3

* Remove stub CharacterCache

* Update WorldDatabaseWithEntityCache.cs

* build fixes

* code audit

* Remove non-callback functions from SerializedShardDatabase

* BiotaUpdater progress.. only emote left

* Emotes done... now need to test

* fix

* Burden/Value fix for containers

* fat fingered EncumbranceVal

* add some safety

* Don't cache player biotas for initial PlayerManager load

* fix null spellbook

* Add another null check

This is redundant as the check is also upstream.

This is to prevent an exception in the future if this function is called from another source.
2020-04-02 22:40:27 -05:00
Ty Conner
69bf1a42a7
Hook up WoundedTaunt emoting (#2745)
* Updates for WoundedTaunt

* Update Player_Combat.cs

* Update Player_Combat.cs

* Update WorldObject_Magic.cs

* Update Creature_Death.cs

* changes

* Update WorldObject_Magic.cs

* Update WorldObject_Magic.cs

* Update WorldObject_Magic.cs

* .
2020-02-29 16:31:48 -05:00
gmriggs
3de0b1d5dd
update enlightenment vitality formula for max health (#2517) 2019-12-09 15:17:32 -05:00
gmriggs
eb6579d01f
refactoring raise attribute/vital/skill, fixing security issues with them (#2483)
* cleanup playscript

* refactoring raise attribute/vital/skill, fixing security issues with them

* fixing some issues with proficiency xp
2019-12-05 02:54:58 -05:00
gmriggs
d67fd3d8e3
fixing some teleport issues (#2232) 2019-08-14 23:02:57 -04:00
gmriggs
677db4b70c
fix various vital enchantment calc errors (#2180) 2019-08-03 11:51:01 -04:00
gmriggs
7666ba116c
scale srcVital to destVital for life transfer spells (#2129) 2019-07-19 02:20:34 -04:00
gmriggs
d7ac481c7b
negative skill clamp (#1920)
* negative skill clamp

* adding "just in case" warning message
2019-05-23 00:03:04 -04:00
bryan
0a9e52745b adding dispells, summon inepts, calming gaze, flame bolts to scroll loot table, also fix raise vital message (#1900)
* add in some of the missing spells to drop as scrolls, still need inepts and a few others

* finish off adding all spells to scroll loot

* initial

* adding dispells, summon inepts, calming gaze to scroll loot table

* reverting

* vitals now show base when raised, even if buffed

* update vital MaxValue as well

* adding back in cantrip modifiers
2019-05-17 18:32:18 -04:00
gmriggs
0acc4aabf0
adjusting some aug bonus calcs (#1857) 2019-05-07 00:10:55 -04:00
gmriggs
9a17c99557
removing deprecated skill check formula (#1732) 2019-04-15 00:36:42 -04:00
gmriggs
3cae69b921
Adding support for Asheron's Benediction (#1615) 2019-03-31 15:28:51 -04:00
gmriggs
69e4800691
Adding enlightenment (#1558)
* Adding aetheria

* adjusting surge proc rate, dividing all proc rates up between self/target

* adjusting procs for multistrike

* adding surge proc rate modifier for attack type

* reverting to caster source for item procs (has duration)

* Preliminary fields for Luminance augs

* Additional ratings on appraisal panel

* more ratings restructuring

* updating WorldObject_Weapon

* Adding hooks for all luminance augs

* Adding enlightenment

* updating msg

* moving ManaConsumersTick to Player_Tick, changing linq .ForEach/return to foreach/continue for clarity
2019-03-22 18:21:32 -04:00
gmriggs
5be76e1887
Additional ratings on appraisal panel (#1556)
* Adding aetheria

* adjusting surge proc rate, dividing all proc rates up between self/target

* adjusting procs for multistrike

* adding surge proc rate modifier for attack type

* reverting to caster source for item procs (has duration)

* Preliminary fields for Luminance augs

* Additional ratings on appraisal panel

* more ratings restructuring

* updating WorldObject_Weapon

* Adding hooks for all luminance augs

* 1 more note for rating appraisals
2019-03-20 21:49:21 -04:00
gmriggs
84b59e2619
Adding AugmentationDevice (#1494)
* Adding AugmentationDevice

* removing debug line

* Adding skill specialization augs

* adjusting attribute augs

* adding remaining specific logic

* adding pack slot note
2019-03-06 22:48:14 -05:00
gmriggs
4d3d53fb66
Adjusting augs and slots armor + adding RNG create lists (#1437) 2019-02-11 18:25:36 -05:00
gmriggs
57a95c03ee
Adding remaining augs (#1411)
* Adding heritage augs

* appveyor rebuild

* .

* Adding remaining augs

* Adding TwoHandedCombat

* Improved /getproperty and /setproperty

* common GetLastAppraisedObject

* GetLastAppraisedObject cleanup
2019-02-04 13:26:28 -05:00
gmriggs
df03c23b83
Adding heritage augs (#1409)
* Adding heritage augs

* appveyor rebuild

* .
2019-02-04 13:13:47 -05:00
Mag-nus
3e836a6cbb
Profiling based improvements (#1115)
* Use PortalDat skill table instead of reflection properties

* Update showstats comments

* remove attributes from Skill enum (Values now come from dat)

* Remove attributes from PropertyAttribute2nd (Values come from dat now)

* Landblock, worldObjects to private and adjacents->Adjacents

* Landblock remove PhysicsObj != null check. No need. 6% CPU savings

* showstats shows [Unusable] for untrained skills which are unusable

* Improve performance of GetWorldObjectsForPhysicsHandling

* Improve Skill IsUsable

* Updating showstats

* Fixing null pointer exception in IsUsable
2018-12-03 17:53:32 -06:00
gmriggs
4619970f80
Refactoring LandblockManager, improving VitalTick performance (#1079)
* Physics Cache cleanup (Mostly cosmetic)

* Vertex/Polygon/BSP CacneEnabled flags added, default to false

Testing results:

Debug mode, loading 31,329 landblocks (x = 0x20-0xD0, y = 0x20-0xD0)

With Vertex, Polygon & BSP Cache:
2018-10-25 10:05:12,121 DEBUG: Loaded Landblocks in 120.39 seconds
2018-10-25 10:05:12,218 DEBUG: 13759 MB used

2018-10-25 10:08:00,330 DEBUG: Loaded Landblocks in 101.11 seconds
2018-10-25 10:08:00,427 DEBUG: 13667 MB used

2018-10-25 10:13:08,448 DEBUG: Loaded Landblocks in 104.36 seconds
2018-10-25 10:13:08,507 DEBUG: 13666 MB used

With Vertex, Polygon & BSP Cache Disabled:
2018-10-25 10:17:55,339 DEBUG: Loaded Landblocks in 100.63 seconds
2018-10-25 10:17:55,404 DEBUG: 14175 MB used

2018-10-25 10:21:11,596 DEBUG: Loaded Landblocks in 89.23 seconds
2018-10-25 10:21:11,666 DEBUG: 14220 MB used

2018-10-25 10:27:22,145 DEBUG: Loaded Landblocks in 93.74 seconds
2018-10-25 10:27:22,200 DEBUG: 14206 MB used

* PhysicsCaches, remove redundant null check

* Improved GfxObjCache model

* DBObj Boxing/Unboxing improvements

* Add thread safety to GfxObjCache

* Landblock phsyics loading async

* Adding setup "caching"

* Redirecting properties to DatLoader

* Refactoring LandblockManager, resolving Physics Landblock loading bug

* Tabs vs. spaces

* Improving VitalTick performance

* Adding refactored AttributeFormula to CreatureSkill

* Disabling BSP cache
2018-10-28 09:56:48 -04:00
Mag-nus
884e0a28e4 VitalHeartBeat performance optimizations (#1059)
* VitalTick had duplicate Current != MaxValue checks

* Reduce duplicate calls to HasVitae

* cosmetic

* Avoid duplicate calls to vital.Current and vital.MaxValue in a single fn call

* Rename VitalTick to VitalHeartBeat
2018-10-13 03:57:57 -04:00
gmriggs
a797269656
Adding proficiency points, and skills increasing through usage (#1014)
* Adding proficiency points, and skills increasing through usage

* Adding missile defense
2018-09-17 01:57:52 -04:00
kdmxp256
e50a2dbd16
Weapon Bonuses (#982)
* Weapon Bonuses

* Rename file and change CritMultiplierBonus

* Magic honors Player.Invincible property

* Adjust MeleeDef modifier application

* Weapon damage bonus reviewed

* Fix offenseMod in WeaponProfile

* Fixing variance calcs for physical weapon damage

* Fixing retired skills
2018-08-31 23:19:12 -07:00
Mag-nus
09e1c68135
Migrate Character tables over to similar caching/threading model as Biota (#979)
* First batch of Character refactor

Characters are now cached with their dbContext, exactly like we do for Biotas. This greatly simplifies the way characters are pulled and saved, and is much more efficient.

Deleting and restoring characters have been migrated to the new SaveCharacter function. There is no need for separate functions to handle those specific tasks.

IsPlussed column added to Character. This removes the need to query the biota to see if we should display the + in front of the name at the character screen.

Character.LastLoginTimestamp, TotalLogins, CharacterOptions1, and CharacterOptions2 are now used. These property types were removed from the ACE.Entity.enum. (the 9000+ types)

Fixed a few places where ChangesDetected was being set insetad of CharacterChangesDetected. There is still more work to do to improve this pattern.

* Player_Client renamed to Player_Character

Plus some cleanup on the way CharacterOptions were get

* Remove duplicate appearance DID properties from WorldObject_Properties

* Removed the duplicate HairTexture DID properties

* Migrate HairTexture from biota property to Character property

* Forgot a CharacterChangesDetected

* Migrate Character specific functions to Player_Character

* Some more Biota wrappers added to BiotaExtensions

* CharacterPropertiesShortcutBar wrapped

* CharacterPropertiesSpellBar migrated to CharacterExtensions

* CharacterPropertiesTitleBook migrated to CharacterExtensions

* CharacterPropertiesFriendList migrated to CharacterExtensions

* drop AccountId from CharacterPropertiesFriendList
2018-08-30 07:11:25 -05:00
Slushnas
d186930857 Spell range check update, correct ring spell projectile destruction and a couple of small fixes. (#975)
* Adding ring spell max range / explode

* Fix typo.

* Add unknown flag.

* Change magic out of range message to match retail.

* Change magic casting range check to match the client.
2018-08-26 17:03:11 -07:00
Mag-nus
12c9eea68a
Shard Biota Save & Threading Model Rework (#960)
* SaveBiota major changes

SaveBiota now only updates values in the database that have changed instead of updating every single value.

In addition. SaveBiota detects added and removed linked entities.

* Replace AddBiota(s) with SaveBiota(s)

* This improves the way a few places referenced the biota

* SaveBiota switched to a diff method. Still some work to do

* More notes + fixes

* SaveBiota move GetBiota to before EnterWriteLock

* Added a note about the lock performance

* More summary improvements for BiotaDatabaseLock

* Thread safety added to the SaveBiotas and AddBiotas functions

SavePlayer also switched to use the SaveBiotas bulk action instead of saving each biota individually.

* Biota.Clone() added

* BiotaExtensions cosmetic only

* DbUpdateException fixed

If there were multiple new records in a collection, the first one was attached but with the last new records values.

This would end up resulting in property records with duplicate types id's.

* ReoveBiota check if biota actually exists in db before removal.

* /databasequeueinfo added

* New From-Weenie Containers should not be searching the shard for inventory

* DeveloperDatabaseCommands removed RequiresWorld flag

* Improved DatabasePerfTest results.
2018-08-20 18:30:38 -05:00
gmriggs
c3e919f08c
Improved stamina usage, added DamageHistory system, refactored death system, monster attributeMod (#916)
* Improved stamina usage, added DamageHistory system, refactored death system, monster attributeMod

* Update changelog

* Updating changelog
2018-08-02 19:20:32 -04:00
Mag-nus
fb5c1999a4
Rename SkillStatus to SkillAdvancementClass (#911)
* Rename SkillStatus to SkillAdvancementClass

SkillStatus and SkillAdvancementClass are neither the perfect names for what this value represents.

However, the client calls it SkillAdvancementClass. We call it SAC in the database. And GDLE also uses the SAC naming.

I think switching this name helps align ACE with the pdb without adding any additional confusion, meaning, this new name is equally as confusing as the previous, but at last its aligned with the pdb and gdle.

* changelog
2018-07-31 07:16:24 -05:00
gmriggs
609a19c782
Improved vital regeneration, stamina usage (#907)
* WIP

* Improve vital regen formulas

* Adding jump stamina usage

* Improved healing formulas

* Updating EnchantmentManager to use SpellBase instead of Spell where appropriate. This fixes Blood Drinker / Spirit Drinker stacking bug
2018-07-30 01:35:48 -04:00
gmriggs
3354274dbc Updating appraisal system / refactoring (#833)
* Fixing specialized skill calcs

* Fix InitLevel on login

* Updating appraisal system / refactoring

* Adding weapon/armor/clothing appraisals

* Cleanup
2018-06-29 11:54:37 -07:00
gmriggs
f1f77046b2 Fixing specialized skill calcs (#832)
* Fixing specialized skill calcs

* Fix InitLevel on login
2018-06-28 00:19:42 -07:00
gmriggs
cafa53a6f6
Adding monster melee combat (#789)
* Adding monster melee combat

* Fixing Speed -> RunRate, DamageType message

* Removing duplicate MoveTo

* Adding IsAttackable flag
2018-05-15 00:34:53 -04:00
gmriggs
b744caefba Adding shortcut manager (#750) 2018-04-19 03:30:17 -04:00
gmriggs
326946d85b Adding creature enchantment buffs/debuffs (#749) 2018-04-18 17:25:08 -05:00
gmriggs
0633a1db81 Adding vitae, and enchantment registry (#743) 2018-04-15 10:06:50 -05:00
gmriggs
8447b0c68e Adding EmoteManager (#722)
* Adding EmoteManager

* This should fix the renamed funcitons I hope
2018-04-06 07:10:20 -05:00
Ty Conner
e75d212fe4 Reintroduce basic vital ticking for players only currently 2018-03-27 00:27:14 -04:00
Ty Conner
1194f78f69 Fixing Issues with Skills and Vitals (#677)
* Change to AppVeyor script

This also fixes I think an issue with our gitignore

* Fixed Skills and Vital calculations

* Fix for AppVeyor
2018-03-07 06:04:24 -06:00
Ty Conner
f025d0b01f Fix Attributes 2018-03-06 04:40:15 -05:00
Mag-nus
5134a1973a starter spells now work 2018-03-06 04:37:45 -05:00