Commit graph

15 commits

Author SHA1 Message Date
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
Mag-nus
c1d480a01a
Step 2. Convert WorldDatabase Weenie Cache from the ACE.Database model to the new ACE.Entity model (#2702)
* 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

* More code ported from Step 3

* Update WorldDatabaseWithEntityCache.cs

* GetCachedCookbooks(recpieId) -> GetCookbooksByRecipeId(recpieId)

* build fix

* changelog
2020-03-02 08:03:50 -06:00
gmriggs
174184bf71
ObjectDescriptionFlags cleanup (#2078)
* removing duplicate defaults for Attackable and Tolerance

* ObjectDescriptionFlags refactoring

* fixing container bug

* adding comments

* adding comments, fixing typo

* CombatPet Attackable

* GetCleaveTarget()

* ensuring contained containers are openable

* do not persist adminVision

* suggested openable fix

* simplify openable

* IsOpen
2019-07-10 13:07:52 -04:00
Ty Conner
89dee0d2a6
Update for quest changes (#1728)
* Update for quest changes

* Fix issue with Emote.Motion and MotionCommand.Dead

* Fix FellowPortalSending spells

* Update WorldObject_Magic.cs

* things

* updates

* update house permissions checks

* Update WorldManager.cs

* further improvements

* Update Player_House.cs

* Update Player_Tick.cs

* update chargen stuff

* Update Player_Tracking.cs

* channel work

* .

* Update PlayerManager.cs

* channel stuff

* Update WorldObject_Magic.cs

* audits

* Update AdminCommands.cs

* Update AdminCommands.cs

* Update PlayerManager.cs

* fix a bool
2019-04-15 02:15:18 -05:00
Ty Conner
51a87815cb
Minor fixes (#1714)
* Add null for book

* Fix issue with Hidden Entrance portal

* upgrade cloak

* undo double fix
2019-04-13 15:07:30 -05:00
Ty Conner
1eb41f4ef7
Several Command Updates (#1614)
* GameMessageServerName tweak

* Update acehelp and acecommands

* Add pop command

* Add watchmen command

* Add finger command

* Update changelog

* .

* cleanup

* cleanup

* Load Account when Player is Onlined

* .

* Hide launcher pings and pongs.

* Add null check for @telereturn
2019-03-31 04:52:09 -05:00
Ty Conner
c2923cf38b
Rework Name and IsPlussed (#1510)
* Rework Name and IsPlussed a bit

* Add basic support for player weenie changes when accesslevel changes

* Cleanup

* Update changelog

* cleanup

* clean up returns

* Return to Virtual + Override

* cleanup

* Restore @rename functionality

* Strip + from killer's name in Corpse.LongDesc for VTank compatiblity

* Add @pk command

* Add in support for PlayerKillerStatus.Free

* Add Chorzite to comps list

* If Level is greater than maxlevel, do not crash

* Fix @morph command
2019-03-10 22:15:43 -05:00
Mag-nus
4d770dd407
PlayerFactory (#1031)
* PlayerFactory initial

* PlayerFactory Create275HeavyWeapons

* Better check for PlayerFactory.Create failure

* PlayerFactory todo notes added

* Add spendallxp developer command

* Improve PlayerFactory code

* Add comment to AuthenticaitonHandler for spot to atuo create characters
2018-10-01 09:23:08 -05: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
Mag-nus
81fc08040e
Character refactor (#928)
This removes Character as the parent of a Biota, and instead, makes them side by side objects that are owned by Player.

Session no longer owns Character.

Session maintains a list of the Characters for the account.

Session holds a reference to the current Player being used.

Player holds a reference to Biota and Character objects.

What I said in discord:

We have the Player object (our god class).

To put a player in the world, it requires a biota. It doesn't require a character or session.
To manipulate the player, we need a session (but not a character).
To give the player a user interface, we need a character.

The character holds all the user progress of the particular biota it's associated with.

So, a session holds a link to the current player the session is managing.

Player holds a link to the biota and character that represent the player.

The biota represents the player from the worlds pov.
The character represents the player from the users pov.
2018-08-07 21:08:22 -05:00
Ty Conner
aab1ac5eef More Cloaking WIP 2018-03-20 02:47:47 -04:00
Ty Conner
b1945220a1 WIP: Better cloaking 2018-03-19 03:50:40 -04:00
Mag-nus
128d084886 Inventory/EquippedObjects model progress 2018-03-06 04:40:06 -05:00
Ty Conner
bd5cdd3353 Fix Base Description Flags 2018-03-06 04:40:01 -05:00
Ty Conner
44b9906cba Some Character Creation changes 2018-03-06 04:39:57 -05:00