Commit graph

68 commits

Author SHA1 Message Date
Coldeve-ACE
f5a514beb9
Null Catches (#4341)
* Update Position.cs

* Update DamageEvent.cs

* Update GameEventFellowshipFullUpdate.cs

* Update EmoteManager.cs

* Update Monster_Combat.cs

* Update DamageEvent.cs
2025-08-11 22:36:48 -04:00
FlaggAC
7f1b58ab24
Change static readonly fields to const fields. (#4211)
This will at least somewhat improve performance, as confirmed through microbenchmark testing.

const fields are replaced with literal values in the Assembly's IL code, while static readonly fields may be optimized by the JIT, and is not guaranteed to happen. const fields may also lend themselves to stronger optimizations at runtime.
2024-08-24 14:32:35 +00:00
Ty Conner
c7830fd537
Fix issue with RelativeDestination data and Position class (#3807)
* Fix issue with RelativeDestination data and Position class

* Update Position.cs
2022-02-11 14:16:40 -05:00
gmriggs
9dad7c222c
update vloc to more accurately reflect the coordinate space w/out the previous anomaly, update /tele to support high precision radar coordinates, with no changes to previous /tele locations (#3803)
* tele accuracy

* updates
2022-02-08 00:03:42 -05:00
Ty Conner
57087db32c
Wire up vloc2loc command (#3743)
* Squashed commit of the following:

commit fd22196a5e93ef3b1e83696900475f674f6f285b
Merge: 1b6aa6aca b051129b5
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Fri Nov 19 18:56:09 2021 -0500

    Merge branch 'master' into telev2

commit 1b6aa6aca8fff594d380643a3c704d295f1d509c
Merge: d0645c74b 9d915f069
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Wed Aug 11 17:26:54 2021 -0400

    Merge branch 'master' into telev2

commit d0645c74bc6dfc45fd35f720bf758fa2c71c16c9
Merge: d7c31f9eb efef90444
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Tue Mar 2 01:31:50 2021 -0500

    Merge master

commit d7c31f9eb764d64f69140ddc25ee4d687546f68f
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Tue Mar 2 00:27:25 2021 -0500

    ..

commit 0f1ae29b917af3440d7e1512dbb758544b4a1233
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Sat Feb 20 17:15:59 2021 -0500

    .

commit 883a34bef979ec96f52bd4a1534cc33267419ec2
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Fri Sep 18 13:41:08 2020 -0400

    hardcoded vloc.txt output

commit 87915f70ff3bbb826d44e98069be078123083561
Merge: 61f026059 599c865f5
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Sun Sep 13 14:23:26 2020 -0400

    Merge branch 'master' into telev

commit 61f0260594928540b5f3fc73223b71630c63d301
Merge: 854b7fcae 0ec7ddca9
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Thu Sep 10 03:17:06 2020 -0400

    Merge branch 'master' into telev

commit 854b7fcae5d546cae3a0a6b7e6b7ab29803d292c
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Tue Sep 8 18:59:07 2020 -0400

    .

commit 3f9c8f9914879a5c241a0ca256ae9d68fc99f1d7
Author: Ty Conner <tyconner@itcproductions.com>
Date:   Sun Aug 30 17:48:43 2020 -0400

    Add `telev` command

* Wire up vloc2loc command

* Update PositionExtensions.cs

* Update DeveloperContentCommands.cs
2021-11-28 13:11:12 -05:00
gmriggs
64cc088442
replacing MapScope concept with Indoors to fix Ancient Caves dungeon... MapScope wasn't a thing, afaik (#3141)
* fixing mapscope for son of pooky dungeon

* MapScope -> Indoors
2020-08-21 01:42:52 -04:00
Ty Conner
cda43b0321
Sync LOC string format output with client (#3124) 2020-08-15 17:19:41 -04:00
gmriggs
2307c00da7
better usage of body part quadrants for physical attacks (#2571)
* adding preliminary support for dual-wielding monsters

* fixing monster special attack fx

* improved monster combat maneuvers table

* adding dual wield speed modifier for mobs

* fixing mobs casting flame wave

* adding support for EmoteManager.CastSpell untargeted spell projectiles

* fixing untargeted Blast spells

* fixing blast spells

* fixing spell z-angle

* re-add Emote.Move* physics position sync w/ valid rotation check

* wip

* latest wip

* cleanup

* small position adjustments

* matching create.Y formula up to retail pcaps

* refactoring spell projectiles

* startPos based on targetPos instead of casterPos for strike spells?

* improved strike spawn position

* add error logging

* add support for peturbation, improve ring positioning for even # of projectiles

* adding /clearcache for content developers

* fixing boost variance

* adding quadrant stuff

* splatter dir

* better usage of body part quadrants for physical attacks

* found CMTs with multiple entries per lookup key, cycle through anims

* fixing portal gems
2019-12-31 01:56:07 -05:00
gmriggs
23a005a763
multihouse decommission (#2067)
* prototype: adding account-wide house recall

* updating restriction db / has permissions

* additional ObjMaint refactoring

* re-adding CheckPlayers()

* the call to GetVisibleObjects() in Monster.FindNextTarget() is no longer needed in new design

* removing more unused code

* very preliminary testing

* prevent 1 character from purchasing multiple houses

* adding account/character houses

* further work on AccountHouses / CharacterHouses

* latest updates, account/character multihouse polish, apartment deed location

* adding /house-select process

* HouseManager refactoring, removing async, fixing PlayerHouse.CompareTo equals, fixed InventoryLoaded for weenies, added Player_House.GetHouseInstance()

* first posted draft

* wiring up the remaining HouseInstance -> GetHouseInstance()

* preventing maintenance items from being added for houses owned by players in multihouse state

* cleaning up log messages, handling some edge cases
2019-07-10 13:39:10 -04:00
gmriggs
173d64455e
fixing AllegianceUpdate parsing for decal (#1861) 2019-05-07 00:22:11 -04:00
gmriggs
2e46e7b89e
ce patches (#1659) 2019-04-07 01:44:55 -04:00
gmriggs
823e1b894c
Adding max distance for CreateObject (#1391)
* Adding max distance for CreateObject

* ...

* Reverting last change, the original was correct

* Update from testing, for objects re-entering visibility
2019-01-30 08:28:09 -05:00
gmriggs
353579eadf Improved chest generators (#1322)
* Improved chest generators

* v2

* .

* Handling regeneration for treasure sets

* Cleanup / comments

* updating comment

* Adjusting /create InFrontOf height

* fine-tuning reset intervals

* .

* unblocking vendor LoadInventory

* backporting dual wield patch

* Fixing lock/key case sensitivity

* Fixing chest closing bug

* Adding wielded treasure tables for generators

* .
2019-01-20 21:02:34 -08:00
gmriggs
b7afd8653a
Adding physics simulation for corpses (#1316) 2019-01-18 16:46:59 -05:00
gmriggs
841f0c2094
Improving monster AI to send alerts to nearby friends (#1169)
* Improving monster AI to send alerts to nearby friends

* Adding monster max home distance
2018-12-23 17:31:57 -05:00
Mag-nus
502e716e8e
Landblock item saving + Much more (#1071)
* Landblock EnqueueBroadcast cleanup

Avoid double cast by using OfType

Change excludeList from IEnumerable to ICollection because it was being enumerated more than once.

* SerializedShard handle OperationCancledException

* SerializedShard break on the exceptions

* Landblock save progress

* Landblock merge fix

* Decayable -> Dynamic

* Improved ShutdownServer to include landblock unload and db queue wait

* Sleep during shutdown instead of using up all the CPU

* Shard GetDynamic was comparing against the wrong id... woops

* Fix shard biota caching

* Improve shutdown logging and actions

* cosmetic code order

* Fix crash when trying to add a bad wo to a landblock

* This fixes reloading dynamic objects

* Don't save item on pickup

* Don't save item on pickup from chest

* Don't save items on drop

* Set Home Position only for creatures (Used for navigation)

* Improve the landblock SaveDB code

* Don't save player corpse on death. Landblock will do that for us in bulk.

* Add the housing objects to statics that persist to the shard

* WorldObjectFactory dont overwrite location if object came from database

* Improved IsStaticThatShouldPersistToShard

* This should fix player dropped missiles

* Move PositionType into ACE.Entity.Enum.Properties

* Ephemeral support for Positions

* Decay code/saving works much better

* Filter out contained and wielded items from shard GetDynamicsByLandblock

* TimeToRot provision for -1 (No rot)

* Corpse decay is now controlled by landblock and uses the same decay code

* ShardDatabase: Fix add/remove biota bug

* WorldObject.Destroy now destroys contained and equipped items as well

* TryRemoveFromInventoryWithNetworking no longer removes the object from the db

* Player corpse items now remain when the corpse decays

* Cleaned up SetPropertiesForWorld
2018-10-23 15:52:09 -05:00
gmriggs
7622d272fd
Fixing jump in multiplayer, refactoring movement and animation systems for network and game layers (#1070)
* Fixing jump in multiplayer, refactoring movement and animation systems for network and game layers

* Fixing stamina dropping to 0 while running

* Fixing some monsters getting stuck if they wakeup during idle emote

* Reverting position

* Fixing magic aftercast speed
2018-10-23 00:16:53 -04:00
gmriggs
eb2eb029f1 Adding two-handed weapons cleaving (#1044)
* Adding multistrike weapons

* Adding two-handed weapons cleaving

* Adding PropertyInt.Cleaving, and support for multiple cleave targets

* Adding no weapon check
2018-10-03 15:03:05 -04:00
gmriggs
d6fa8b7988
Improved monster timing / server animation sync (#1029)
* Improved monster timing / server animation sync

* Improving accuracy of mob archers

* Changing default creature stance from Invalid to NonCombat

* Fixing some emote stuff

* Fixing player launching last arrow in stack
2018-09-30 12:44:12 -04:00
Slushnas
c1e1177bd8 WIP - Add new spells and some refactoring (#953)
* Removed unused properties and added a couple more to support the new refactoring.

* Lots of refactoring and adding layers of abstraction to make addition of new spell types easier.

* Fixed global positioning system to use IsDungeon instead of Indoors

* Adding support for projectiles launched from inside buildings

* Adding PositionExtensions

* Fix EnqueueBroadcast line.

* Add ACE.Server.Entity namespace.

* Add support for untargeted war spells.

* Add support for ring and wall spells and a couple of fixes.

* Add supoort for ring, wall, and blast spells plus some refactoring.

* Small fix to wall padding.

* Remove ParentWorldObject property as it is a duplicate of ProjectileSource.

* Fix some physics bitfield issues for Volley, Blast, Ring and Wall spells.

* Remove redundant PlayScriptIntensity calculation.
2018-08-21 12:25:26 -05:00
gmriggs
08a67ff7ad
Major overhaul of player visibility / broadcast system (#954)
* Major overhaul of player visibility / broadcast system

* Removing some debug lines

* Fixing /telepoi

* Removing CreateObj != newlyVisible from debug msgs

* Update for adding objects to landblocks

* Fixing projectile spawning

* Fixing portals for multiplayer

* Fixing /telepoi for multiplayer, and successive item pickup from landblock

* Fixing pink bubble state for multiplayer

* Fixing double broadcast bug

* Adding ObjMaint destructor

* Voyeur cleanup

* Fixing wielded items lingering around after player logout
2018-08-18 21:58:49 -04:00
gmriggs
1db49dbd09
Refactor generators a bit, fixing some bugs with spawning/respawning items (#951) 2018-08-13 18:07:21 -04:00
gmriggs
3363a48cd3
Adding object spawning / initial placement system (#929)
* Adding object spawning / initial placement system

* Disabling initial physics updates

* Fixing some crashes
2018-08-08 22:43:24 -04: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
gmriggs
719246da54 Adding Allegiance system (#825)
* Allegiance WIP

* Ranks, XP passup calcs

* Granting Allegiance XP passup to patrons

* Commenting debug messages

* Fixing Allegiance tab

* Adding Allegiance exceptions

* Adding break allegiance

* add ability to /tele players by name (#823)

* add ability to /tele players by name

* command parsing resiliency

* Give Request fix (#824)

* Give Request fix

Selected Wielded Objects as well as Inventory Objects. This fixes crash of gioving wielded objects to the town crier.

* Deleted unnecessary semicolons

* requested return for null

* UI panel refresh, apply XP earned by vassals on login

* Unequip and burden correction (#826)

* Add a configurable property storing database to resolve issue #753 (#820)

* Added the configuration database base script.

This should initialize the config database to hold different values that can be changed during the server operation.

* Added database models and connection.

This should begin to add in the new configuration database and its models so that it can be accessed from the server.

* Added boolean statistic access methods.

Modified the database file so that it was properly casting to a boolean and added the methods into the server configuration database API.

* Added the ability to access/modify integers in the config database.

* Added the ability to access/modify floating point variables in the configuration database

* Added the ability to access/modify string values in the configuration database

* Added the ServerConfigurationDatabase to the DatabaseManager.

* Added in the initial caching layer for configuration

* Added the ability to modify cached items.

* Changed from regular dictionaries to concurrent dictionaries.

* Added in the ability for the ConfigurationManager to self-update from the database.

* Added fallback parameters instead of forcing a default

* Added customizable vitae statistics.

This is the first big stat that can be modified. It is a float, so more floats should now work when they have support added.

* Updated the configuration manager to separate methods and ensure semantics are correct.

* Added command to fetch float value from server

* Add property for XP/Lum multipler.

* Welcome message/MOTD is now configurable from the database.

* Added string modification commands

* Database is no longer required for server configuration.

* Added in all modification/fetch commands and a resync command

* Renamed ConfigurationManager -> PropertyManager as this removes ambiguity

* Changed logging string to be more consistent

* Pass w/ StyleCop

* Added comments to the property manager

* Added the ability to disable caching fallback values.

This can be used for default settings or if a fetch with the default fallback should not cache (ie fetching xp_multipler before xp_multiplier has been fetched from the DB/the default value has been given, and therefore xp_multiplier is fetched as 0 and cached as 0). This functionality should be used for server commands.

* The admin commands now properly obey cacheFallback restrictions

* Added initial default property handling.

* Moved to using constant values as defaults.

* Switched to using a Dictionary for resolution of default properties

* Added warning when the server configuration database is not loaded.

* Corrected MOTD default string

* Renamed some of the database connection objects and changed float -> double and int -> long

* Fixed admin commands not being named correctly

* Fixed spelling error

* Config tables now lie in the shard database

* Added descriptions to properties across the board that can be analyzed through admin commands

* Removed property from PlayerXP file

* Removed vitae properties from EnchantmentManager

* Added null checks to make output nicer

* Added command to modify property descriptions

* Fixed string not being stored properly in the DB and crashing the server

* Wrapped the old ServerPropertyDatabase into SerializedShardDatabase

* Fixed ShardDbContext having a modified OnConfiguring method

* Allegiance WIP

* Ranks, XP passup calcs

* Granting Allegiance XP passup to patrons

* Commenting debug messages

* Fixing Allegiance tab

* Adding Allegiance exceptions

* Adding break allegiance

* UI panel refresh, apply XP earned by vassals on login
2018-06-22 17:33:06 -07:00
gmriggs
a0bf5018d6
Adding projectile physics (#816)
* Projectile physics collisions

* Removing some debug messages, restoring monster RunSpeed

* Copying ACE physics state to PhysicsObj

* Fixing encounter cell IDs

* Re-implementing Player_Tracking the previous way again, to fix Dungeon monsters de-spawning

Note that outdoor landblocks still suffer from oversending, and client possibly crashes due to this

* Fixing indoor arrows, hotspot collisions

* Physics adjustments

* Removing debug messages

* Projectile physics collisions

* Removing some debug messages, restoring monster RunSpeed

* Copying ACE physics state to PhysicsObj

* Fixing encounter cell IDs

* Re-implementing Player_Tracking the previous way again, to fix Dungeon monsters de-spawning

Note that outdoor landblocks still suffer from oversending, and client possibly crashes due to this

* Fixing indoor arrows, hotspot collisions

* Physics adjustments

* Removing debug messages

* Updating SphereTest

* Merging missile combat fixes/additions

* Removing duplicate message from changelog

* Updating changelog

* Merging Hotspot PR
2018-06-08 04:08:53 -04:00
gmriggs
530e1ae3b1 Adding monster spell casting (#794)
* Adding monster spell casting

* vital.Current -> UpdateVital

* Fixing point-blank projectile speed
2018-05-18 06:37:46 -07:00
gmriggs
e1a11d58c3 Adding monster movement (#777)
* Monster movement

* Fixing corpse rotation

* Updated corpse positions, and monster re-chase players

* Fixing animation break

* Updating landblock for monsters (not working)

* Fix typo

* Fix typo 2

* Adding PVS code to indoor monster wake up

* Some landblock transition updates

* Fixing the cross-landblock inconsistencies w/ correct cell IDs

* Adding DeltaTime check to avoid ActionChain state

* Cleanup

* Fixing monster corpses in dungeons

* Monsters sleep when target exceeds max chase range
2018-05-02 15:35:41 -07:00
gmriggs
e58cbf30fe Additional bow/crossbow polish (#757)
* Additional bow/crossbow polish

* Adding missing Local->Global
2018-04-23 19:59:16 -05:00
gmriggs
5bad209053 Adding bow/crossbow combat (#754) 2018-04-22 06:36:32 -05:00
gmriggs
0633a1db81 Adding vitae, and enchantment registry (#743) 2018-04-15 10:06:50 -05:00
gmriggs
d11424acb9 Basic unarmed melee combat (#726) 2018-04-09 01:52:05 -04:00
gmriggs
7b73fc4740 Objects navigating dungeons and sliding along walls/obstacles (#711)
* Objects navigating dungeons and sliding along walls/obstacles

* Fixing objects loading into dungeon
2018-03-31 03:15:05 -04:00
gmriggs
7b05832f52 Fixed object visibility across multiple landblocks (#699) 2018-03-24 21:44:28 -04:00
gmriggs
1b0ce1e28a Portal collisions from physics engine (#694)
![ACE has Portal Collisions!](https://media.discordapp.net/attachments/261242462972936192/421730007702962187/ace-logo-2018-portal.gif)

* portal wip

* Moving enqueue to outside if block

* Indoor/dungeon portals working

* collision with spawned portals

* Fixing pink bubbles

* Fixing appveyor

* Fixing ObjCell init

* Removing call to HandleActionOnCollide from Portal ActOnUse (thanks Jyrus!)
2018-03-22 21:54:44 -04:00
Ty Conner
a5808df642 Tweak for create command 2018-03-17 20:02:12 -04:00
Ty Conner
00e0ff4abc
Smite + Corpse Spawning (#688)
* Smite + Corpse Spawning

* Changing GameEventSequence to 1

* Better corpse placement

* Pixel perfect corpse drop

* WIP: /smite all

* Creature Corpses with Clothing appear correctly

* Corpses are in fact Containers

* cleanup

* more cleanup

* even more cleanup
2018-03-16 04:29:35 -04:00
Ty Conner
5b63c37c99 WIP teleporting. Has issues but sort of works. Character saving at intervals disabled currently 2018-03-06 04:37:57 -05:00
Mag-nus
39ecc40b05 remove AceObjectPropertiesPosition 2018-03-06 04:37:53 -05:00
Mag-nus
99fb8bcc55
All this does is cleanup a bunch of style issues that Resharper complains about (#629)
* Removed unused using statements

* Removed redudnant ToString()'s

* Removed some redundant type casts

* Removed redundant bool comparisons

* remove redundant initializers

* xml summary in invalid place switched to comments

* Use string interpolation

* use format separators

* Removed redundant parenths

* remove redundant else

* direct cast when safe

* redundant string interpolation

* xml summary fixes

* removed empty ctors

* fix modifier order

* Convert to auto property

* Convert some getters to method bodies

* use format separators

* changelog

* Auto-properties that can made to get-only

* fixed some references in XML comments

* remove redundant base()

* Revert "Auto-properties that can made to get-only"

This reverts commit 32a1225ce8.

* fix starter gear json

* Use collections count property

* simplify conditional ternary expression

* remove redundant return statements

* Constructors for abstract classes changed to protected

* Moved declarations to inner scopes

* Join declaration and assignments

* inline out variables

* Use enum extension methods instead of static methods

* inline out more variables

* more unused usings

* Remove specifying enums as ints
2018-02-09 06:46:49 -06:00
Mag-nus
bacd751d8a
ACE.DatLoader more IUnpackable work (#610)
* ACE.DatLoader: XpTable updated

* ACE.DatLoader physics and environment using new unpack pattern
2018-01-31 21:09:08 -06:00
Mag-nus
337ac517b2
More dat refactoring, this time based on SetupModel and Hooks. (#603) 2018-01-27 19:39:07 -06:00
Ty Conner
78c203b1ff
Second attempt at 16PY fixes (#587)
* Clean up sql scripts

* Cleanup sql scripts

* Calculate correct ObjCell

* Missing Weenies in DB catches

* Changes for ObjectDescriptionFlag, PhysicsState and a few defaults for Lifestone/Bindstone

* Add Shade, Palette and StackSize to Create command

* Slight SQL script adjustment

* trying to find problem with AppVeyor

* Restore TryToBond

* Invert...

* clearly modifying this file is the cause....

* Restore removed fields

* Revert "Restore removed fields"

This reverts commit 9f2ea0c808.

* Add Shade and Palette to WorldObjects

* Remove WieldObject Hack

* Wielding Clothes and Face Randomization

* Update changelog

* Testing Json attribute

* Stupid appveyor

* I give up

* Fixing a really dumb error which lead to the problem as well as improving the AppVeyor output

* Clean up some left over code

* Adjust code to match changes upstream
2018-01-24 22:13:53 -06:00
Mag-nus
6fe177a600
ACE.DatLoader refactoring (#594)
* Change >> 1) & 1 to & 2

Cosmetic change pointed out by Rawaho.

* Better fix of the Portal Flags in the dat code

* ACE.DatLoader refactoring

This new code format uses extention methods to re-use code. It allows decouples object unpacking from DatReader and reduces the dependancy to a simple BinaryReader.

* Forgot to remove the temp StarterAreas code from the transition

* Some files were ignored, not sure why. This should fix
2018-01-23 04:02:39 -06:00
spazmodica
ea426fd16f Fellowships (#588)
* Fellowships

* Fellowship updates for most actions

* * Added saving of "ignore" and "auto accept" of fellowship requests
* Added functionality to GetCharacterOptions

* Confirmation processing - Need to clean up contextID gen

* Fellowship checkpoint

* Adding corrected GameEvent

* New method to create contextID for confirmations
Fix to assignnew leader
Added Change Openness of fellowship

* Adding missing Gamemessage

* Added EarnXP with two bool for fixed and to share xp to handle earning non-sharable xp while in fellowship as well as fixed xp amounts for certain quests
Refactored Grantxp to use new method that other xp earning methods can use
Added X & Y only distance calc to Position for fellowship distance calc

* Update changelog.md

* Adding fellow full handling
2018-01-16 02:05:37 -05:00
Ty Conner
06781256d1 Add a few basic Chess elements (#567)
* Fake Chess

* Add very basic Chess minigame foundation

* Update Protocol doc location for Zegeger's site

* Cleanup
2017-11-22 15:49:58 -05:00
Ty Conner
ef62342eab
Convert PropertyInt properties from uint to int (#559)
* Update EmoteCategory, EmoteType and SpellType enums

* Add CombatStyle enum

* Rebase SQL scripts

* Change uint to int in SQL

* Adjust SpellType

* Changed all PropertyInt properties from uint to int

* Some CombatStance work + StyleCop clean up

* Update README

* Updated ACE-World requirement and appveyor
2017-11-01 13:53:08 -04:00
Mogwai-TheFurry
529247b3a1 New api definitions, tagging properties for JSON naming standards (#555)
* WIP for fantoms to take a peek

* more API WIP

* always forget the stupid changelog

* fix for swagger built-in auth

* more WIP for ace.web - cookie stuff stubbed in.  also fix for large tickets exploding the server.
2017-10-27 19:03:24 -04:00
Charles
fee5550987 Added the ability to learn spells / unlearn spells. (#475)
* * Refactored debug command learn spell.
* Made spells persist to the database.
* Added abilty to delete spell from spell book and send that persistantly to the database on character save.
* TODO: Put in the abilty to use scrolls to learn spells.

* Update comments

* typo in method name
2017-07-26 17:25:47 -04:00
Charles
fc3ec71a89 Fight Club - Initial working code - ready for review and merge. (#466)
* * Initial work on combat mode.   System now will move into and out of the correct combat mode depending on what items you have equipped.
* TODO: There are some edge cases I still need to implement and additional testing.   I would like to get this in so that I do not run into huge merge issues later on.
* Testing - you can log in - run @weapons after log in.   This will get you various weapons based on weapon type.   You can go into and out of combat mode
* Melee, missile - both bow and xbow, thrown, sword, UA, two handed as well as dual wield.    I also implemented if you remove your weapon while in combat mode,
* you will drop into unarmed.   If you equip an item and you are not in peace mode, you will assume the correct combat mode.   There may be some tweaking needed
* for changing combat mode in combat mode - I think it did some slower animation - but the basics are in and I can tweak the sequence once I talk to players or If
* I can find a pcap with that behavior.

* Updated per ddevec's feedback.
2017-07-19 02:03:37 -04:00