Commit Graph

1155 Commits

Author SHA1 Message Date
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
Collin Smith
8bb866d3b3 Changed design slightly to only defer message contents encoding 2020-08-26 11:31:22 -07:00
Collin Smith
2c9ca02f27 Changed responsibility chain s.t. RiiabloEncoder defers to SimpleEncoder for message content 2020-08-26 11:20:28 -07:00
Collin Smith
85b57a7ed0 Renamed Layouter to Encoder 2020-08-26 11:17:29 -07:00
Collin Smith
39cfd57368 Committing experimental code of logger package implementation (see #105) 2020-08-26 03:17:51 -07:00
Collin Smith
5868465bb6 Added placeholder code to allow casting using mobile controls 2020-08-24 00:59:58 -07:00
Collin Smith
579476df2f Added targetted left click casting
Left clicking a non-interactable entity will cast left action
Changed target clear calls to setTarget(src, INVALID_ENTITY)
2020-08-24 00:51:15 -07:00
Collin Smith
25ef0918f0 Added jump table entries for attack function 2020-08-24 00:40:36 -07:00
Collin Smith
7ccc32b9c7 Added cast(int,int,int) to cast on entity 2020-08-24 00:39:47 -07:00
Collin Smith
b404e9eb40 Made null cltstfunc case a no-op 2020-08-23 20:17:01 -07:00
Collin Smith
42378cf3be Removed comments 2020-08-23 20:08:06 -07:00
Collin Smith
b56eec0dda Fixed barbarian stomp sound playing for nova
Implemented client-side callbacks for srvstfunc and srvdofunc
Changed stomp sound to play for client-side srvdofunc callback
2020-08-23 19:23:24 -07:00
Collin Smith
25885b46fe Added additional trace logging 2020-08-23 19:16:21 -07:00
Collin Smith
a0fbf52690 Disabled pathing when casting 2020-08-23 19:12:24 -07:00
Collin Smith
97f5707100 Added comment for playing stsoundclass when implementing becomes possible 2020-08-23 17:22:54 -07:00
Collin Smith
d30593cc9b Implemented skill dosound and added stsoundclass 2020-08-23 17:18:48 -07:00
Collin Smith
92ac85ee8f Created event dispatching for skill stfunc and dofunc
Implemented cltstfunc and cltdofunc into client SkillCastHandler
Added shout skill sound trigger
2020-08-23 17:03:14 -07:00
Collin Smith
3a8d49534f Key mappings now clear when skills changed 2020-08-23 17:00:31 -07:00
Collin Smith
8032b65077 Casting a spell will make caster look at target 2020-08-23 13:13:35 -07:00
Collin Smith
55cae9cc8b Added teleport spell code
Spells may require encapsulation to allow easier management
2020-08-23 02:27:03 -07:00
Collin Smith
7a1c32105e Appended target Vector2 to cast function parameters and Casting component 2020-08-23 02:21:57 -07:00
Collin Smith
f93b44fb9c Created constants for invalid component and mode
These values will never be set internally and are used as return checks
2020-08-22 16:55:01 -07:00
Collin Smith
6a904f7131 Renamed event callback functions closer to their event data types 2020-08-22 16:44:18 -07:00
Collin Smith
f91fd2d4ac Created Casting component
Created Casting component to track casted spell and events
Actioneer manages Casting component
Implemented AnimDataFinishedEvent handler into Actioneer
2020-08-22 16:42:58 -07:00
Collin Smith
a51e4f0b47 Created AnimDataKeyframeEvent
AnimStepper will generate Keyframe events for non-zero keyframes
Created constants for keyframe values and debug toString method
Added logging to AnimStepper
2020-08-22 14:54:04 -07:00
Collin Smith
37a4df94d9 Assigned class type to variable 2020-08-22 14:43:43 -07:00
Collin Smith
66d1427a9e Added stubs for srvstfunc and srvdofunc 2020-08-21 18:33:51 -07:00
Collin Smith
ee62188c91 Added additional fields to Skills excel 2020-08-21 18:33:06 -07:00
Collin Smith
28dffc917f Removed resolved comment 2020-08-21 15:07:31 -07:00
Collin Smith
9b874036b8 Made clicking a button in quickpanel assign it to the correct action id 2020-08-21 14:59:47 -07:00
Collin Smith
46bdd1f94a Created CharData#setAction(int,int) which passes current alternate id
Created CharData#setAction(int,int) which passes current alternate id
Created SpellsQuickPanel#buttonId field to store Input.Buttons.LEFT or Input.Buttons.RIGHT
2020-08-21 14:58:20 -07:00
Collin Smith
5061c10b69 Move skill consts to com.riiablo.skill.SkillCodes 2020-08-21 12:43:42 -07:00
Collin Smith
c155b7bacb Renamed Spellcast to SkillCast to be consistent 2020-08-21 12:37:16 -07:00
Collin Smith
a1bc6c48fb Decoupled client-side code from Actioneer
Created SpellcastEvent and SpellcastHandler to handle client-side effects
2020-08-21 01:42:08 -07:00
Collin Smith
e42288f8f6 Added rudimentary support for animation overlays 2020-08-21 01:14:17 -07:00
Collin Smith
cf410fc64d Added audio playback of spell cast 2020-08-20 22:48:10 -07:00
Collin Smith
0159615dba Added workaround for invalid spell cast modes
SQ defaults to SC when encountered until implemented
SpellsQuickPanel changes CharData actions for the time being
2020-08-20 22:47:26 -07:00
Collin Smith
8a820effc8 Created Actioneer system to manage entity actions such as spell casting 2020-08-20 22:39:02 -07:00
Collin Smith
885df8f4e2 Updated comment to clarify what I think I meant when I wrote it 2020-08-20 22:05:10 -07:00
Collin Smith
8d7677cf50 Replaced ControlPanel specific code with an observer copy 2020-08-20 22:03:34 -07:00
Collin Smith
392889b030 Replace ControlPanel specific code with an observer copy 2020-08-20 22:02:57 -07:00
Collin Smith
dee6066306 Switching weapons will now change control panel skills to active skills 2020-08-20 21:54:50 -07:00
Collin Smith
57107ea0d1 Moved command suggesters into com.riiablo.suggesters package 2020-08-20 12:25:26 -07:00
Collin Smith
320ea8d28f Implemented structured logging into gem props 2020-08-19 22:23:24 -07:00
Collin Smith
e0da8aaa02 Improved logging of stat values 2020-08-19 22:19:43 -07:00
Collin Smith
3b6c1f81dc Fixed bug where reqdex was indexed as reqstr id 2020-08-19 22:19:01 -07:00
Collin Smith
6c5269c61e Greatly improved logging of property lists and attributes for items 2020-08-19 22:00:02 -07:00
Collin Smith
0c883a9bc8 Created synthetic stats for reqstr and reqdex 2020-08-19 21:48:53 -07:00
Collin Smith
ddb4351fb7 Deprecated serialized item data fields until they are refactored 2020-08-19 21:20:06 -07:00
Collin Smith
2beecb35a8 Implemented ItemReader and ItemWriter into Item component serializer 2020-08-19 21:16:52 -07:00
Collin Smith
1bd32e777d Created ByteInput#wrap(ByteBuf) 2020-08-19 21:15:45 -07:00
Collin Smith
c7123a63f4 Workaround for #99 2020-08-19 21:14:58 -07:00
Collin Smith
56e6eb4802 Replaced com.riiablo.save.D2S with com.riiablo.save.d2s package contents
Removed dangling byte[] data refs within CharData for serialization
Removed dangling FileHandle file refs within CharData and D2S
Removed some methods within D2S which should not be required anymore
Reduced visibility of D2SReader96#readD2S -- should be package-private
Created D2SWriter with D2SWriterStub to temp hold D2S data refs until serialization is finished
D2SWriter will eventually contain code to serialize CharData to byte[]
Changed D2S.MercData int xp to long experience (is really a uint32)
Created some public accessor fields within D2S to grab basic version agnostic info
Created some deprecated public accessor fields within D2S until CharacterPreview is fixed
2020-08-19 20:43:14 -07:00
Collin Smith
8c3c304dcd Created ByteOutput#writeString(CharSequence,int)
writeString writes a string and either truncates or pads it with zeros to len
2020-08-19 20:27:05 -07:00
Collin Smith
8506cc4324 Fixed bug specific to socketed misc items
Custom Tome of TP I have that has socket flag set and game still works
This fix allows socketing of non armor or weapon items (as in original game)
2020-08-19 18:13:04 -07:00
Collin Smith
3c56558e9c Fixed bug reading string where null characters were included within content 2020-08-18 01:57:18 -07:00
Collin Smith
7667cfdff2 Fixed bug where readSafe64u was reading 32u 2020-08-18 01:41:46 -07:00
Collin Smith
00caad594c Added log message for deserialized item object 2020-08-17 20:39:51 -07:00
Collin Smith
d4a4c87b38 Added assertion to validate item list includes expected number of entries (even if some errored) 2020-08-17 20:38:24 -07:00
Collin Smith
447fc70ad2 Stubbed out D2SReader#copyTo(D2S,CharData) 2020-08-17 20:31:28 -07:00
Collin Smith
daaf6773c2 Disallows rendering of empty content within console (log4j messages were outputting extra blank lines) 2020-08-17 20:05:34 -07:00
Collin Smith
575ba39b2d Updated API calls to not cast raw int types 2020-08-17 19:26:25 -07:00
Collin Smith
28fbed711b Renamed Riiablo#MAX_ACTS to Riiablo#NUM_ACTS and Riiablo#MAX_CLASSES to Riiablo#NUM_CLASSES 2020-08-17 19:19:57 -07:00
Collin Smith
a5e83ede40 Renamed Riiablo#MAX_ACTS to Riiablo#NUM_ACTS 2020-08-17 19:19:10 -07:00
Collin Smith
6ccb2a5d02 Renamed Riiablo#MAX_DIFFS to Riiablo#NUM_DIFFS 2020-08-17 19:18:09 -07:00
Collin Smith
91f0971f79 Created const for num classes 2020-08-17 19:15:51 -07:00
Collin Smith
0e71f0b635 Created consts for act indexes 2020-08-17 19:15:11 -07:00
Collin Smith
6e01e4d11b Changed WS to raw bytes 2020-08-16 20:33:02 -07:00
Collin Smith
938fea3375 Improved readability and added recovery for items list 2020-08-16 20:06:55 -07:00
Collin Smith
41d484217b Created recover method 2020-08-16 19:27:12 -07:00
Collin Smith
3c53303d1b Added support for reading corpse item list 2020-08-16 13:40:43 -07:00
Collin Smith
506773d25c Added missing assertions 2020-08-16 02:33:47 -07:00
Collin Smith
2eb773633a Added D2S#getTownsString() and implemented it into D2S Reader logging 2020-08-16 01:18:21 -07:00
Collin Smith
c85f1b9e44 Added comment 2020-08-16 01:14:50 -07:00
Collin Smith
97a3265e05 Changed D2SReader into a singleton 2020-08-16 01:04:52 -07:00
Collin Smith
4af5aac494 Improved comment regarding why a check is made 2020-08-16 01:02:24 -07:00
Collin Smith
1d173c605f Moved Riiablo#getDifficultyString to DebugUtils and created DebugUtils#getClassString
These methods are meant for debugging and quick lookups
2020-08-16 00:59:01 -07:00