Collin Smith
63c17b0e17
Created com.riiablo.util.Pool thread safe pool ( closes #116 )
2020-09-22 13:22:24 -07:00
Collin Smith
6d8cefb2c8
Committing tests of mpq_bytebuf package
2020-09-22 12:37:09 -07:00
Collin Smith
bd9b30a33d
Upgraded mpq_bytebuf library
...
Created MPQFileHandleResolver to resolve a filename to an MPQ
Greatly improved efficiency of MPQInputStream and reduced overhead
Added support for fast-path ByteBufInputStream for a native memory read
MPQFileHandle now supports key/offset caching for faster lookup
MPQ now initializes using a FileChannel instead of a RandomAccessFile
MPQ hash and block tables are read using a buffer
Moved MPQFileHandle file operations to MPQFileHandle from MPQ
Added ability to retrieve MPQ block table entry from an MPQ hash table entry
Inlined Exploder#TRUNCATE
Decryptor now works using arrays directly (asserted input is a heap byte buf)
Decryptor returns a long tuple consisting of key and seed state for buffered calls
2020-09-22 12:36:40 -07:00
Collin Smith
35504fccdc
Improved logger throughput
...
Added initial size and pool object init
AsyncAppender now releases events more reliably
Workaround for #116
2020-09-21 13:36:12 -07:00
Collin Smith
24f8c764bb
Created var-arg alternative methods
2020-09-21 02:32:19 -07:00
Collin Smith
368f2f71bf
Deferred log message creation until enabled is evaluated
2020-09-21 02:25:44 -07:00
Collin Smith
6117efc25e
Created AsyncOutputStreamAppender to support logging output on separate threads
2020-09-21 02:02:16 -07:00
Collin Smith
bb4efb7967
Created Pooled variations of message factory implementations
...
Created Pooled variations of message factory implementations
Set logger to default to use these pooled message factories
2020-09-21 01:45:23 -07:00
Collin Smith
aa04ebd132
Changed LogEvent to support pooling
2020-09-21 01:32:55 -07:00
Collin Smith
703be01ceb
Created Message#release()
2020-09-21 01:30:56 -07:00
Collin Smith
dd0707a759
Created methods for non-varargs log functions
2020-09-21 01:25:10 -07:00
Collin Smith
5b22902b10
Changed varargs to array
2020-09-21 01:10:16 -07:00
Collin Smith
68ada6121f
Added virtuals for newMessage without var args
2020-09-21 01:09:26 -07:00
Collin Smith
bd0752cc6a
Created Message#numParameters()
2020-09-21 00:54:47 -07:00
Collin Smith
f2816b24ab
Removed AbstractLogger and implemented functionality directly into Logger class
2020-09-21 00:42:56 -07:00
Collin Smith
2e4f7f6690
Created Actioneer#canInterrupt(int) to check whether an entity action can be interrupted
...
Implemented interruption checking into CursorMovementSystem#updateLeft()
2020-09-20 21:41:53 -07:00
Collin Smith
b8756bbe8d
MPQ library implemented with ByteBuf and MappedByteBuffer (see #8 )
2020-09-19 22:23:27 -07:00
Collin Smith
9009cdcfd9
Resolved a concurrency issue regarding shared state within static decompress method
2020-09-18 22:36:18 -07:00
Collin Smith
303e063586
Tested charclass sound against local player component
2020-09-13 19:46:10 -07:00
Collin Smith
aa948b9b1f
Resetting Animation instances clears Animation#cof reference (see #113 )
2020-09-13 13:46:27 -07:00
Collin Smith
28fb71de85
Fixed radial spells to 64 directions
2020-09-13 13:21:59 -07:00
Collin Smith
add2ea22b5
Added support for per-layer shadow flag
...
Added support for per-layer shadow flag
Set automatically for now based on blendMode
2020-09-13 13:15:50 -07:00
Collin Smith
c98c3dc2c8
Added support for cltdofunc 25 (shouts / novas)
...
Added support for cltdofunc 25 (shouts / novas)
Changed animation frame delta for missiles to 256 from Missile.Entry.animrate
Disabled Missie.Entry.TravelSound audio until it can be figured out better
Added Skills.Entry.cltmissile(a-d)
2020-09-12 15:31:45 -07:00
Collin Smith
372f501b4b
Created RADIANS_64
...
Created RADIANS_64
Redefined RADIANS_X tables mathematically to improve readability
2020-09-12 15:19:35 -07:00
Collin Smith
54216795f6
Enabled bullet flag for missiles and changed to sensors to disable collision
2020-09-12 14:48:39 -07:00
Collin Smith
efc6a5c0e4
Created MissileHandler to dispose of missile entities past their range
...
Created MissileHandler to dispose of missile entities past their range
MissileLoader now resets direction to 0 when missile is loaded
2020-09-12 14:21:48 -07:00
Collin Smith
b01f5180b2
Changed monster placement algorithm to distribute grouped monsters across an area
2020-09-11 13:26:59 -07:00
Collin Smith
0dccc53c44
Monster label now shows first non-empty hitpoints monster
2020-09-11 13:24:01 -07:00
Collin Smith
8eb29c9cfb
Monster label will hide itself if the target monster is dead
2020-09-11 13:20:46 -07:00
Collin Smith
8be6bee27a
Increased default mele range to 3 units
2020-09-11 13:20:00 -07:00
Collin Smith
143634858d
Fixed encoding for negative fixed point numbers
2020-09-11 13:08:35 -07:00
Collin Smith
6cc41eb633
Assigned missiles a physics body (see #113 )
2020-09-10 23:46:27 -07:00
Collin Smith
63bfa85173
Resolved the actual crash this time
...
It would appear that a valid targetId is given that has a position, except that the position is null? This will be looked into later.
2020-09-10 23:31:17 -07:00
Collin Smith
0590ddc166
Fixed crash caused resulting by a previous fix which incorrectly unset target entity
2020-09-10 23:28:02 -07:00
Collin Smith
30f4190ead
Added support for MonsterLabelManager to draw monster health
...
Added support for MonsterLabelManager to draw monster health
Added percent and modal params to PaletteIndexedColorDrawable to allow use as a progress bar
2020-09-10 23:27:22 -07:00
Collin Smith
c906a20817
Added sound effect for hit impact
2020-09-10 22:50:47 -07:00
Collin Smith
39f3d5aaca
Added attack range check for left click
...
Added attack range check for left click
Added null check for dangling target
2020-09-10 22:41:02 -07:00
Collin Smith
c64042bafe
Created DamageHandler and implemented hit sounds
2020-09-10 19:16:08 -07:00
Collin Smith
4e0e2c142a
Created DamageEvent and dispatching
2020-09-10 19:11:28 -07:00
Collin Smith
7b227fe2ed
Committing DeathEvent
2020-09-10 19:09:14 -07:00
Collin Smith
61985ed440
Checks if target is still valid (some trailing event target ids?)
2020-09-10 18:40:27 -07:00
Collin Smith
28d6eddcb6
Another workaround for #113
2020-09-10 18:39:59 -07:00
Collin Smith
83c0e87a9a
Unset killer target if target was victim
2020-09-10 18:32:05 -07:00
Collin Smith
52edd64327
Fixed spelling error DC.Direction#toReadDir -> #toRealDir
2020-09-10 18:31:42 -07:00
Collin Smith
0087e832c2
Implemented monster deaths
...
Added AI death state and AI#kill() virtual method
DeathHandler handles state transition and entity disposal
2020-09-10 18:22:44 -07:00
Collin Smith
bfcee599bf
Increased damage and added death event with subscriber to play death sequence
2020-09-10 17:31:41 -07:00
Collin Smith
f3c9ff82aa
Fixed an issue where consecutive stat gets were corrupting previous values
2020-09-10 16:59:22 -07:00
Collin Smith
d77a109be2
Added support for getting a stat from Attributes into a provided tuple
2020-09-10 16:58:44 -07:00
Collin Smith
8acfe5bc1f
Created temp function to add support for negative float encoding until properly implemented
2020-09-10 16:46:19 -07:00
Collin Smith
a86b338dfa
Only draw hitpoints if greater than 0
2020-09-10 16:45:39 -07:00
Collin Smith
ff24b9f516
Created Attributes#getCopy(short) to return a (temp) copy of the specified stat
2020-09-10 16:45:00 -07:00
Collin Smith
00f75d014c
Added support for setting stat to sibling stat value
...
Changed order of hp,mp,stamina adjustments so they match again
2020-09-10 16:21:55 -07:00
Collin Smith
a9f4e35016
Disabled hitpoints background (was making hitpoints foreground hard to see)
2020-09-10 14:06:22 -07:00
Collin Smith
484e5b867f
Actioneer now changes hitpoints of target for attack spell
2020-09-10 14:03:22 -07:00
Collin Smith
7d507f0501
Refactored from StatRef to float
...
Refactored from StatRef to float
Added label with hitpoints and maxhp values
2020-09-10 14:03:00 -07:00
Collin Smith
f2d16a8c50
Created Stat#decode(short,int) to perform val shift
...
Changed val shift operatios to use Stat#encode and #decode
2020-09-10 14:01:09 -07:00
Collin Smith
0ba173404c
Added support for stat subtraction
2020-09-10 13:54:47 -07:00
Collin Smith
d11303fb61
Added health bar above entities with health in debug render mode
2020-09-10 13:29:23 -07:00
Collin Smith
eca9ba9908
Created Attributes#contains(short)
2020-09-10 13:28:49 -07:00
Collin Smith
6592ef0291
Added bounds check on Attributes list to prevent an IOOBE
...
I considered allowing null returns and handling gracefully, however I prefer seeing that error message for the time being, as this should be addressed
2020-09-10 13:11:50 -07:00
Collin Smith
15d2b13bff
Changed visibility of some StatList methods to public
...
Exposed #numLists(), #maxLists(), #contains(int) and #get(int)
2020-09-10 13:09:22 -07:00
Collin Smith
e7d868106d
Successfully replaced com.riiablo.item.Attributes with com.riiablo.attributes.Attributes
...
Completed coupling systems to use new attributes package
Hopefully I didn't miss anything, because this sucked
2020-09-10 02:20:43 -07:00
Collin Smith
1a84778164
Temporary workaround for #113
2020-09-10 02:13:33 -07:00
Collin Smith
5935314a44
Fixed bug where bit shit was as an int and not a long
2020-09-10 01:35:24 -07:00
Collin Smith
7f5149baa7
Committing test parent class
2020-09-09 23:55:27 -07:00
Collin Smith
92d0728e07
Replaced com.riiablo.attributes with com.riiablo.attrs
2020-09-09 18:52:41 -07:00
Collin Smith
531aa9323c
Committing next iteration of attributes package
2020-09-09 18:41:22 -07:00
Collin Smith
2f58fbd5cc
Moved Fixed to com.riiablo.math
2020-09-09 17:55:49 -07:00
Collin Smith
9efc2bb5c3
Fixed issue where encoding was passed an incorrect parameter
2020-09-09 03:18:03 -07:00
Collin Smith
94c30110de
Implemented basic stat mod tracking support
2020-09-08 13:13:55 -07:00
Collin Smith
13fc89b9f8
StatListReader will apply ValShift to read stats that aren't cs
2020-09-08 13:02:20 -07:00
Collin Smith
f45168a133
Improved Fixed utils
...
Made class final
Changed from bit shift to lookup table
2020-09-08 13:01:51 -07:00
Collin Smith
73e1be417a
op stats now add with agg stats
2020-09-08 13:00:54 -07:00
Collin Smith
027f923409
Implemented StatListBuilder#add(short,int)
2020-09-07 13:58:21 -07:00
Collin Smith
92a4061173
Implemented stat mod flag and checking
2020-09-07 13:57:42 -07:00
Collin Smith
bbf3fa1eb6
Exposed exposed param() as params() to avoid misuse
2020-09-07 13:57:15 -07:00
Collin Smith
5115403733
Created StatList#put(short,StatGetter) to copy other stats into a stat
2020-09-07 13:23:08 -07:00
Collin Smith
fc23ab05b5
Added copy method for StatGetter to preserve a reference
2020-09-07 13:22:12 -07:00
Collin Smith
1c9e858798
Updated test with interleaved update sequences
2020-09-07 01:35:34 -07:00
Collin Smith
f215a7f191
Added support for pooling UpdateSequence instances to allow asynchronous sequencing
2020-09-07 01:28:19 -07:00
Collin Smith
aadc9d2de8
Removed requirement for AttributesUpdater to be stateful
...
Used a clever trick on StatList.StatIterator, where read stats can be pushed onto the list starting from the front. The result is a sorted list not containing elements which were not added back.
2020-09-07 01:15:55 -07:00
Collin Smith
f121cc8a7a
Replaced AttributesUpdater with Updater and renamed it
...
Replaced AttributesUpdater with Updater and renamed it
Fixed existing StatListLabeler tests
2020-09-07 00:12:42 -07:00
Collin Smith
7ccebec402
Created boolean parameter to determine stat list capacity
...
Created boolean parameter to determine stat list capacity for AggregateAttributes initialization
2020-09-06 23:48:44 -07:00
Collin Smith
d69de2b357
Added experimental iteration of AttributeUpdater called Updater
2020-09-06 21:29:35 -07:00
Collin Smith
e6f97c2025
Added support for larger StatList instances
...
Aggregate lists may contain many stats, added special instance
2020-09-06 20:40:11 -07:00
Collin Smith
b7bf3ca62a
Disabled warning message for StatListGetter#get(short)
...
assigning #get() and checking null is a common usage
2020-09-06 16:16:18 -07:00
Collin Smith
947862be1a
Changed visibility of item flag management static functions to public
...
Created StatListFlags#getAggItemFlags to update flags for agg list
2020-09-06 16:06:18 -07:00
Collin Smith
d55eb801d8
Added assertion trigger if undefined case ever occurs
2020-09-06 15:41:29 -07:00
Collin Smith
f47c949101
Tightened up AttributesUpdater
...
Renamed opAttrs to opBase
Reorganized params more logically to function
Added note regarding possibly deficiency from original impl and op stats
2020-09-06 15:39:04 -07:00
Collin Smith
d0e69cf74c
Added additional check on gem attributes listFlags
2020-09-06 13:06:38 -07:00
Collin Smith
fc1b7a73a1
Created StatListGetter#getValue(short,int) to retrieve a default int or value if non-null
2020-09-06 12:42:31 -07:00
Collin Smith
f21bf0339a
Renamed Attributes#update methods to #aggregate
2020-09-06 12:31:03 -07:00
Collin Smith
5cb04016cc
Changed attributes log level to debug
2020-09-06 05:09:14 -07:00
Collin Smith
c127475007
Significantly tightened up code
...
Touched about every line of code to validate behavior
2020-09-06 05:05:47 -07:00
Collin Smith
f69db25728
Changed from instanceof to check if attrs is simple
2020-09-06 01:41:42 -07:00
Collin Smith
b5c33a313f
Removed unneeded block -- managed by StatListReader
2020-09-06 01:29:44 -07:00
Collin Smith
85303c28cc
Replaced Attributes in com.riiablo.item with com.riiablo.attributes for D2SReader
2020-09-06 01:28:31 -07:00
Collin Smith
a72b317dc9
Added logging for all value modifications and set to info level
2020-09-06 01:22:44 -07:00
Collin Smith
96069e98e2
Fixed GemGenerator not checking attrs type properly
2020-09-06 00:59:06 -07:00
Collin Smith
9ed7b82c08
Added type marker to Attributes
...
Added byte type value to represent what kind of attrs it is
Rolled GemAttributes into AggregateAttributes
GemAttributes are now marked using added marker
`Complex` attribute lists have types > 0
StatListWrapper set to type 0
2020-09-06 00:42:20 -07:00
Collin Smith
1dabb6f6b8
Removed content, ultimately not needed
2020-09-06 00:20:45 -07:00
Collin Smith
6f86f4048c
Added method for accessing gem attribute selected flag
2020-09-06 00:18:03 -07:00
Collin Smith
49f293c494
Added method to validate flags for gem stat lists
2020-09-06 00:17:25 -07:00
Collin Smith
57e1052e9f
Created consts for gem list flags
2020-09-06 00:06:58 -07:00
Collin Smith
ec802d7c04
Changed visibility of StatListGetter#builder to public
2020-09-05 19:50:04 -07:00
Collin Smith
fd07613913
Created stat constants for synthetic reqstr and reqdex
2020-09-05 19:49:38 -07:00
Collin Smith
03d7e9a458
Added int flags parameter to AttributesUpdater to specify which lists to include
...
Added int flags parameter to AttributesUpdater to specify which lists to include
AttributesUpdater checks and logs if flags includes more than 1 set (unusual)
Renamed set item constants and methods within SetListFlags to be more consistent
Added Aldur's Advance StatListLabeler test
Added runes to Grief StatListLabeler test
2020-09-05 19:48:53 -07:00
Collin Smith
181cd3eb6f
Renamed field to correct name
2020-09-05 19:36:40 -07:00
Collin Smith
f3fc76e366
Added better descriptors for StatList toString methods
2020-09-05 19:35:49 -07:00
Collin Smith
938064bcbd
Fixed log message format
2020-09-05 19:03:03 -07:00
Collin Smith
fa9add8e6f
Fixed log message format
2020-09-05 19:01:46 -07:00
Collin Smith
670d6c5e1b
Fixed log message format
2020-09-05 19:00:53 -07:00
Collin Smith
3025f4d05d
Fixed log message format
2020-09-05 19:00:23 -07:00
Collin Smith
0bfa47bd83
Changed GemAttributes to be a subclass of AggregatedAttributes
...
Gems require item_levelreq stat in their base and are more complex than originally thought
2020-09-05 18:29:31 -07:00
Collin Smith
eb011ed471
Changed ItemReader#readSingleItem to package-private
...
readSingleItem visibility was provided for backcompat which is no longer needed
2020-09-05 17:45:11 -07:00
Collin Smith
c96f787cf9
Removed Item#loadFromStream(BitStream)
...
ClientNetworkReceiver requires injection of ItemReader
Changed ClientNetworkReceiver to read item instead of single item
Removed workaround comment for ItemReader
2020-09-05 17:43:44 -07:00
Collin Smith
4571f8ce18
Fixed crash on android due to missing control panel buttons
2020-09-05 17:11:43 -07:00
Collin Smith
b522365d25
Fixed crash on android
...
Moved Actioneer and related systems outside of desktop restriction
MobileControls will cast spells 12 units in front of player target angle
2020-09-05 16:59:19 -07:00
Collin Smith
9c33689b35
Added some comments for fields that will require injection
...
Added some comments for fields that will require injection (or looked into for plausibility of injection)
2020-09-05 16:42:51 -07:00
Collin Smith
de8f81db47
Made AttributesUpdater#update on non-AggregateAttributes to be a no-op
2020-09-05 14:57:42 -07:00
Collin Smith
77e58a72b1
Generated StatList for gems is now frozen
2020-09-05 14:56:29 -07:00
Collin Smith
03484882d3
Added more tests
2020-09-05 14:49:21 -07:00
Collin Smith
37ea64921c
Fixed incorrect stat assignment
2020-09-05 14:48:01 -07:00
Collin Smith
1734b90bf9
Implemented structured logging
2020-09-05 14:43:33 -07:00
Collin Smith
e81af4dece
Added assertion validations to GemGenerator
...
Added assertion validations to GemGenerator to make sure property list indexes are correct
Renamed StatListBuilder#index() to #listIndex() to clarify
2020-09-05 14:38:45 -07:00
Collin Smith
273b434c7c
Renamed GemUtils to GemGenerator
2020-09-05 14:33:17 -07:00
Collin Smith
d5b6f74a61
Made params final
2020-09-05 14:32:00 -07:00
Collin Smith
f61af7414e
Added AttributesUpdater#add to append StatList lists to an aggregate
2020-09-05 14:30:10 -07:00
Collin Smith
d59dcd625b
Added some placeholder documentation
2020-09-05 14:25:26 -07:00
Collin Smith
8cfcc2195d
Fixed spelling error
2020-09-05 02:37:29 -07:00
Collin Smith
e9b3d69c81
Fixed cache not clearing after consecutive calls
2020-09-05 02:34:34 -07:00
Collin Smith
554553888c
Created PropertiesGenerator, GemUtils and tests
...
GemUtils may be rolled into PropertiesGenerator
PropertiesGenerator may belong with item generation
More validation for behavior on a larger variety of items required
Disabled an assertion in StatListLabeler which prevented creating labels for Attributes#list()
Above assertion only necessary to enforce label creation only works for Attribute collections
2020-09-05 02:20:03 -07:00
Collin Smith
f1246f5aea
Added getter for ItemStatCost entry using String stat code
2020-09-05 02:15:10 -07:00
Collin Smith
82d08989d1
Added type-safe version of Item#getBase
2020-09-04 21:54:40 -07:00
Collin Smith
e0f977f8a0
Replaced comment to reference Item#data repurpose
2020-09-04 21:54:13 -07:00
Collin Smith
0548514a9e
Added improved support for injection during tests
2020-09-04 21:48:26 -07:00
Collin Smith
b7dcf0f4fe
Modified logging parameters to show only StatListLabeler trace
2020-09-04 20:44:31 -07:00
Collin Smith
030564a5a6
Created StatListLabeler and tests
...
Encoded stats may require StatGetter#asString instead of value
Changed visibility of StatList#MAX_LISTS and StatList#MAX_STATS to package-private
2020-09-04 20:42:23 -07:00
Collin Smith
7c54483e12
Created AttributesUpdater and tests to fold attributes into each other
2020-09-04 20:40:43 -07:00
Collin Smith
3b34642c0d
Created StatFormatter#formatEncoded to format encoded stats
2020-09-04 20:39:14 -07:00
Collin Smith
2bd5f217a4
Changed return type for StatFormatter methods to String from CharSequence
2020-09-04 20:38:39 -07:00
Collin Smith
2fd51347bf
Fixed issues with StatList#add and StatList#ensureCapacity
...
Add functions now validate they are adding to same stat, else they put a new one
Moved arraycopy copies into static function
StatList#ensureCapacity will correctly copy arrays
Moved any offsets modification operations into StatList#ensureCapacity
2020-09-04 18:29:48 -07:00
Collin Smith
db04f49fba
Added support for StatListGetter#get(int) index
2020-09-04 15:54:40 -07:00
Collin Smith
a839560e6a
Implemented StatListBuilder#toString()
2020-09-04 15:53:01 -07:00
Collin Smith
b45f770478
Changed StatList.IndexIterator to support pushback(int)
...
StatList.IndexIterator can now pushback n indexes (up to list start index)
2020-09-04 15:52:41 -07:00
Collin Smith
79a9409a75
Fixed and issue where StatList#ensureCapacity(int,int) was only shifting next list
...
Added int index to StatList#ensureCapacity so that it shifts after index
Added additional validation within StatList#ensureCapacity
Added assertion that clearList does not result in a negative size
StatList#copy(int,StatList,int) now copies #maxLists as well
Added additional logging for StatList#copy
2020-09-04 15:51:49 -07:00
Collin Smith
e892970ef8
Added constants and getters for encoded and grouped stats
2020-09-04 15:47:47 -07:00
Collin Smith
ecd6946ffe
Fixed StatList#add where stat did not exist
2020-09-03 21:20:53 -07:00
Collin Smith
61ba1248e1
Fixed bug where adding stat that didn't exist resulted in an IOOBE
2020-09-03 20:52:14 -07:00
Collin Smith
04b9ed785c
Created StatFormatter and tests, testing as-needed
2020-09-03 20:43:28 -07:00
Collin Smith
8b06f92f54
Added getter and checker for stat ids
2020-09-03 18:53:13 -07:00
Collin Smith
fa7e066ee1
Created StatList#isEmpty() to check if there are any stats in any list
2020-09-03 18:37:30 -07:00
Collin Smith
948f1a189c
Added static getter Stat#index(String) to get stat id from String name
2020-09-03 18:34:34 -07:00
Collin Smith
a3b3840b20
Added support for iterating over StatList lists
2020-09-03 18:33:55 -07:00
Collin Smith
b17f528611
Changed signatures for StatListBuilder#add(StatGetter) and #addAll(StatListGetter)
...
Changed signatures for StatListBuilder#add(StatGetter) and #addAll(StatListGetter) to match sibling methods
Changed StatList#addAll(int,StatList,int) to return the last index added
Above change is so that StatListBuilder index remains valid and calling #addAll does not result in undefined behavior
2020-09-03 18:02:05 -07:00
Collin Smith
bf5b0677cc
Moved modification functions #add(StatGetter) and #addAll(StatListGetter)
...
Moved modification functions #add(StatGetter) and #addAll(StatListGetter) from StatListGetter to StatListBuilder
StatListGetter should contain read-only operations
2020-09-03 17:57:20 -07:00
Collin Smith
4c96af70d3
Changed Attriutes#remaining() to return StatListGetter instead of StatList
...
Changed Attriutes#remaining() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
Creation of StatList delegated, or in the case of AggregateAttributes, lazily initialized
2020-09-03 17:54:24 -07:00
Collin Smith
bd278e3c82
Changed Attriutes#base() to return StatListGetter instead of StatList
...
Changed Attriutes#base() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
StatList is by default delegated, or in the case of AggregatedAttributes, lazily initialized
Added support for retrieving StatListGetter parent StatList
Added support for creating a StatListBuilder from StatListGetter
Added support for clearing a StatList list from StatListGetter
2020-09-03 17:52:36 -07:00
Collin Smith
5d9420a659
Moved aggregate list creation to Attributes#aggregate() to lazily init
2020-09-03 17:47:57 -07:00
Collin Smith
e26b22c1ba
Changed Attriutes#aggregate() to return StatListGetter instead of StatList
...
Changed Attriutes#aggregate() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
2020-09-03 17:32:58 -07:00
Collin Smith
eddd0e9b0a
Created StatList#add(int,StatGetter) to add stats
2020-09-03 17:14:11 -07:00
Collin Smith
cac5236225
Added support for using StatGetter on StatListGetter operations
...
Added support for using StatGetter on StatListGetter operations
Created StatList#contains(int,short,int) to check a specific stat with param
2020-09-03 14:26:35 -07:00
Collin Smith
07ad2d4af2
Created package-private StatList#forceClear() to allow clearing frozen list
...
StatList#clear() did not allow clearing when frozen for external APIs
Attributes re-uses stat lists, and requires the ability to force clear
Renamed Attributes#resetToBase() to #reset() (functionality is documented)
Attributes#reset() no longer clears Attributes#list
2020-09-03 14:08:17 -07:00
Collin Smith
2b07fcc3d0
Added logged warning when StatListGetter#get(short) returns null
2020-09-03 03:12:04 -07:00
Collin Smith
61eca6070f
Changed return type of Attributes#resetToBase() to support chaining
2020-09-03 03:11:22 -07:00
Collin Smith
534df98623
Renamed StatListBuilder#list() to #build()
2020-09-03 02:16:38 -07:00
Collin Smith
f929a99ab4
Renamed StatListBuilder#build() to #index()
2020-09-03 02:16:06 -07:00
Collin Smith
5313629f27
Committing item writer test cases
2020-09-02 20:34:15 -07:00
Collin Smith
2193040a6d
Added println to help differentiate between hex dumps
2020-09-02 20:33:43 -07:00
Collin Smith
f0ea202ff3
Implemented character save writing and tests
2020-09-02 20:31:21 -07:00
Collin Smith
3e5a49943c
Additional tests to validate StatListWriter
...
Validation that a reasonable number of item stat lists write correctly
2020-09-02 20:13:51 -07:00
Collin Smith
e8601ec692
Fixed case where item prop lists was empty (stat termination required)
2020-09-02 20:11:09 -07:00
Collin Smith
6b9a97949a
Changed access to static package from public local
2020-09-02 20:10:37 -07:00
Collin Smith
d3cbca6b6f
Added boolean parameter to read/write StatList functions
...
entry.Saved was not appropriate for determining this feature
Implemented prop list flags into StatListWriterTest tests
Added additional logging to help with organizing encoded stats
2020-09-02 19:47:05 -07:00
Collin Smith
57c12bd781
Renamed StatListFlags constants and added getter for gem property list names
2020-09-02 19:29:49 -07:00
Collin Smith
ddd7b7d07f
Implemented MDC property for propList name
2020-09-02 18:57:55 -07:00
Collin Smith
da9acd5977
Created StatListFlags to store stat list flags (copied from Item)
2020-09-02 18:55:35 -07:00
Collin Smith
ca829a4025
Created StatListWriter and tests
...
Additional testing required, but workable code
2020-09-02 18:20:30 -07:00
Collin Smith
e6f4a8b222
Changed to skip bits only (bytes included)
2020-09-02 18:19:22 -07:00
Collin Smith
4ed61438db
Added bit mask for Long#Size
...
Reverted previous change
writeRaw performs logical-and with bit mask to ensure cache correctness
2020-09-02 18:18:26 -07:00
Collin Smith
63e3cc0e8b
Fixed issue where flush would write more bits than cached
2020-09-02 18:03:15 -07:00
Collin Smith
4ccce1dabf
StatListGetter now implements iterator to iterate over stat list
2020-09-02 17:30:48 -07:00
Collin Smith
c3693a8761
Added put method in StatList to put a stat with all fields filled
2020-09-02 17:30:01 -07:00
Collin Smith
9bcf4e2693
Added util for encoding stat params and values
2020-09-02 17:29:23 -07:00
Collin Smith
1932c0fcd2
Added getter for StatGetter stat entry
2020-09-02 17:28:00 -07:00
Collin Smith
4397ee742a
Removed extra test case
2020-09-02 17:09:28 -07:00
Collin Smith
0daa272752
Fixed formatting
2020-09-02 17:08:35 -07:00
Collin Smith
8cbcb814d1
inlined NUM_GEMPROPS so Item can remain unchanged for the time being
2020-09-02 16:27:55 -07:00
Collin Smith
d4102d7fa7
Removed specific stat value getters (should use #get(short) instead)
2020-09-02 16:25:55 -07:00
Collin Smith
1872c3e00c
Documented parent methods
2020-09-02 16:25:02 -07:00
Collin Smith
a5b90dc868
Added test case for decoding grief stat list
2020-09-02 16:20:34 -07:00
Collin Smith
1a6a522d37
Additional logging
2020-09-02 16:20:11 -07:00
Collin Smith
ca170f7cfb
Added documentation regarding method intended use-case
2020-09-02 16:19:58 -07:00
Collin Smith
251a691bd5
Added support for retrieving first entry of a stat regardless of params
2020-09-02 16:18:59 -07:00
Collin Smith
03503a8f79
Added basic check for if stat required params
2020-09-02 16:13:14 -07:00
Collin Smith
294d69ddc9
Removed unused params
2020-09-02 16:04:57 -07:00
Collin Smith
0338325b26
Improved logging
2020-09-02 02:22:32 -07:00
Collin Smith
a9cdd18309
Created StatListReader
2020-09-02 02:16:40 -07:00
Collin Smith
74055272dc
Created StatList#maxLists getter
2020-09-02 02:16:01 -07:00
Collin Smith
daf2314bac
Changed return type of StatList#clear to support chaining
2020-09-02 02:15:38 -07:00
Collin Smith
4cc595da29
Renamed static factory method to match return type
2020-09-02 01:41:03 -07:00
Collin Smith
28a219d5cd
Added support within StatListBuilder to retrieve previously put stat
2020-09-02 01:29:24 -07:00
Collin Smith
294bb1ea61
Moved stat entry query methods to Stat
2020-09-02 00:47:54 -07:00
Collin Smith
fc01a7dea9
First iteration of attributes revision
2020-09-01 23:47:16 -07:00
Collin Smith
b1ddb912fe
Added tracef variant of traceEntry
2020-08-30 19:09:36 -07:00
Collin Smith
8fb6bb5fa5
Added support for assigning float to stat
...
Created Stat#encodeFloat(float,int) to encode floats into fixed point int
Added maxhp stat to monster attributes
Changed debugging to output float stat
2020-08-30 15:51:44 -07:00
Collin Smith
b4a77e02a2
Added debugging for attack action
2020-08-30 02:37:13 -07:00
Collin Smith
2557ba2458
Created AttributesWrapper component to wrap an entities attributes
...
Player attributes (already existing) are assigned to the wrapper
Monster attributes are created in-engine and assigned to the wrapper
Added basic code to set a monster's health attribute
2020-08-30 02:36:36 -07:00
Collin Smith
d3c06188a7
Combined stand still and right click casting into one block
...
Combined stand still and right click casting into one block
Moved vars into final fields to improve readability
Implemented getHovered(int) to get targetId (if any)
2020-08-29 02:08:19 -07:00
Collin Smith
45825b8a3d
Removed hovered target id code into getHovered(int)
2020-08-29 02:06:52 -07:00
Collin Smith
d7c4d478a8
Implemented target entity id and Vector2 into casting events
2020-08-29 01:47:08 -07:00
Collin Smith
51de82df58
Removed unnecessary code
...
Can only load from existing preference keys
2020-08-28 22:45:24 -07:00
Collin Smith
872f2e732e
Loading now loads existing contexts as well
...
Loading now loads contexts created before manager created
Added additional trace logging
2020-08-28 21:33:25 -07:00
Collin Smith
6012bee436
Use local logs instead of Riiablo.logs
2020-08-28 21:25:34 -07:00
Collin Smith
9af239eab9
Created GdxLoggerManager to manage logger contexts
...
Decorates a LoggerRegistry
Handles loading and saving of logger contexts
Created commands for getting contexts, loggers, and changing contexts
2020-08-28 21:25:00 -07:00
Collin Smith
533db1ff50
Added accessors to contexts and loggers via an unmodifiable trie
2020-08-28 21:20:16 -07:00
Collin Smith
090edf78e2
Changed trace logging to traceEntry and improved message formats
2020-08-28 04:41:48 -07:00
Collin Smith
16cf4a9572
Defined AbstractLogger#traceEntry() and #traceEntry(String,Object...)
2020-08-28 04:28:23 -07:00
Collin Smith
055c2173e4
Added check because Reflections api doesn't work on android (see todo)
2020-08-28 01:19:18 -07:00
Collin Smith
05be705363
Added temporary check to prevent attacking interactable entities
2020-08-28 00:44:01 -07:00
Collin Smith
c12ea88b6e
Added Reflections library to LoggerSuggester
2020-08-28 00:16:26 -07:00
Collin Smith
8f2037a874
Configured default log level for root logger correctly
2020-08-28 00:14:59 -07:00
Collin Smith
685349fe01
Replaced Log4j2 with com.riiablo.logger (see #105 )
...
Log4j2 removed as a dependency
2020-08-27 23:21:24 -07:00
Collin Smith
216b1ed6df
Removed constraint on appender being null
2020-08-27 23:12:35 -07:00
Collin Smith
2c2f9f9109
Created static valueOf overload to return default value if one doesn't exist
2020-08-27 23:11:52 -07:00
Collin Smith
4db52a5e39
Renamed INSTANCE to DEFAULT_REGISTRY
2020-08-27 22:57:49 -07:00
Collin Smith
05d4c935c5
Added accessor for default registry
2020-08-27 22:57:13 -07:00
Collin Smith
14f78e0ca3
Added support for automatically flushing MDC after each entry
...
Riiablo's console was not written to handle multiline -- this seems easier
2020-08-27 22:45:36 -07:00
Collin Smith
ba78d5d487
MDC different prints up one level only if depths not equal
2020-08-27 21:37:52 -07:00
Collin Smith
f28e9b9f3f
Implemented MDC difference checking to reduce printing as many non-dirty entries
2020-08-27 21:23:23 -07:00
Collin Smith
a10f124803
Immutable copy only cleared if a mutation takes place
2020-08-27 04:52:14 -07:00
Collin Smith
3939aee4c3
Introduced concept of dirty depth
...
`dirty depth` used to track earliest tree divergence for children
2020-08-27 04:40:08 -07:00
Collin Smith
42d0b7ab4e
Cleaned up logic slightly to improve readability
2020-08-27 04:34:09 -07:00
Collin Smith
9f8bd1d612
Added invariants that StringMap#put key and value must be non-null
2020-08-27 04:33:17 -07:00
Collin Smith
28bb1c2ae5
Filled remaining methods and reduced visibility of INSTANCE to private
2020-08-27 04:30:40 -07:00
Collin Smith
7f79bbbc9a
Refactored LogManager instance methods into LoggerRegistry
...
LogManager was having method name conflicts
LogManager delegates static methods to a LoggerRegistry instance
2020-08-27 04:28:04 -07:00
Collin Smith
c4839f5e7e
Simplified logIfEnabled calls
2020-08-27 01:39:09 -07:00
Collin Smith
e7f225f887
Flipped enabled level check result
2020-08-27 01:34:12 -07:00
Collin Smith
e142308112
Added Logger#fatal* methods
2020-08-27 01:33:28 -07:00
Collin Smith
4214696808
Added Logger#error* methods
2020-08-27 01:32:44 -07:00
Collin Smith
2b457e3c3a
Added Logger#info* methods
2020-08-27 01:31:51 -07:00
Collin Smith
4101724d3d
Reorganized code
2020-08-27 01:30:36 -07:00
Collin Smith
a3c99b6e66
Added warn methods
2020-08-27 01:29:16 -07:00
Collin Smith
834d44ca3b
Code formatting adjustment
2020-08-27 01:18:24 -07:00
Collin Smith
d9232b3593
Created StringMap class to manage thread context
...
Created StringMap class to manage thread context
StringMap is ordered and optimized for my use-case
Engineered compact encoding mode to track thread context
2020-08-27 01:17:25 -07:00
Collin Smith
60d50fa15d
Added support for compact mdc output
2020-08-26 12:14:01 -07:00
Collin Smith
5e3ecbe8d5
Added support for encoding stack traces
2020-08-26 11:52:15 -07:00
Collin Smith
4d0ea7188f
Implemented API for controlling full vs compact encoder modes
2020-08-26 11:46:28 -07:00
Collin Smith
ddae4b9f75
Implemented basic MDC encoding
2020-08-26 11:40:43 -07:00
Collin Smith
290160d93d
Implemented thread context map
2020-08-26 11:39:34 -07:00