Commit Graph

515 Commits

Author SHA1 Message Date
Collin Smith
b7778c4398 Added MonsterComponent and support for dynamic entities 2019-11-01 14:46:20 -07:00
Collin Smith
6be326e362 Removed debug messages 2019-11-01 14:18:41 -07:00
Collin Smith
02347dc66a Backported separate draw call to roofs (will render on top of wall/ent layer) 2019-11-01 14:02:44 -07:00
Collin Smith
88d829a82f Added support for poppads
Added support for poppads
Moved drawRoofs to separate draw method (named drawForeground)
Renamed previous drawForeground method to drawMiddleground
2019-10-31 16:51:59 -07:00
Collin Smith
6ea1b919d9 Disabled debug on AnimationLoaderSystem 2019-10-31 16:04:00 -07:00
Collin Smith
090389a80c Implemented ecs render system
Added RenderSystem which is essentially MapRenderer using IsometricCamera and ecs entities
Added builder method for IsometricCamera to perform aggregate operations
Improved Animation getKeyFrameIndex to return a valid result for an uninit animation
Added various components
Added support for Animation#updateBox in AnimationLoaderSystem
Added AnimationSystem to update animation frames
Added ObjectSystem to initialize Object entities
Created Engine subclass which will be used to create Riiablo-specific entities with preconfig components
Hacked Riiablo.engine2 which will eventually replace Riiablo.engine when completed
2019-10-31 02:12:08 -07:00
Collin Smith
0a9b4c5b8e Minor bugfixes
Removed redundant method call from drawDebugSpecial
Fixed issue where resizing MapRenderer was not forcing update
2019-10-27 23:30:02 -07:00
Collin Smith
0c4c4a5fb1 Fixed issue with camera toScreen coordinates applying pixel offset at incorrect time
Fixed issue with camera toScreen coordinates applying pixel offset at incorrect time
Added debug render of iso boundary rect
2019-10-24 00:32:43 -07:00
Collin Smith
43c9f14799 Temp fix to hide labels under certain circumstances on mobile before that gets flushed out 2019-10-22 22:35:34 -07:00
Collin Smith
019257511d Changes resulting from #62 2019-10-22 22:27:04 -07:00
Collin Smith
c2883766f6 Added support for previewing DT1 tiles 2019-10-22 21:53:51 -07:00
Collin Smith
104042471f Fixed issue on android where audio doesn't play on the same frame it's loaded
Fixed issue on android where audio doesn't play on the same frame it's loaded
SFX audio that doesn't play will remain deferred until subsequent frame
Small optimization with audio instance creation
2019-10-20 22:53:54 -07:00
Collin Smith
4e374c946d Set conditional for debug rendering to improve performance on mobile 2019-10-20 17:15:35 -07:00
Collin Smith
7b70ff819b Removed possible vector for errors by calling reset in constructor to set initial values
Removed possible vector for errors by calling reset in constructor to set initial values
I do not expect issues here, but this component is complex enough to warrant it
2019-10-20 17:02:02 -07:00
Collin Smith
a596c88a1f Added transform field
Added transform field
Changed component implementation to use cloning/copying of a default array
2019-10-20 16:57:11 -07:00
Collin Smith
c394ed178e Added annotation type DependsOn to try and document system dependencies 2019-10-20 16:48:02 -07:00
Collin Smith
69b607324e Implemented system priorities and created SystemPriority to store them 2019-10-20 16:41:53 -07:00
Collin Smith
c09160230f Changed byte fields to int fields
Changed byte fields to int fields -- space/performance change negligible and improves readability
2019-10-20 15:24:16 -07:00
Collin Smith
1a8738fc93 Added support for async audio loading and playing on subsequent frames 2019-10-20 01:36:34 -07:00
Collin Smith
d6105d9f9a Improved isometric camera API
Documented isometric camera API
Implemented pix and tile offsets instead of just offset
Made pix and tile offsets private -- pix offset set via offset and tile offset set automatically
toTile50 may be deprecated in the future if I cannot find a use for it (tile offset may have superseded it)
2019-10-19 15:04:41 -07:00
Collin Smith
1d6365dcbe Implemented asset streaming to remove much of the hitching
Implemented asset streaming to remove much of the hitching
Added millis to asset manager update function to load as much as possible
2019-10-19 02:04:11 -07:00
Collin Smith
dfbf132063 Fixed translation issue for mouse movement caused by not applying offset 2019-10-17 16:52:43 -07:00
Collin Smith
04ebeb1a61 Added wrld field to track cursor tile position
Added wrld field to track cursor tile position
Added 0.5f offset to world tile position to account for camera offset
2019-10-17 16:23:24 -07:00
Collin Smith
7ca9e73941 Added private default constructor to enforce non-instantiation 2019-10-17 16:17:18 -07:00
Collin Smith
d2eb8bca07 Fixed variable name 2019-10-17 02:02:25 -07:00
Collin Smith
cb1b53d390 Started rewriting engine using ECS
Added COF/animation related components and systems for streaming assets
Added additional factory method to Animation for empty constructor
2019-10-17 02:01:09 -07:00
Collin Smith
ef0b641fae Added some controls to disable debug rendering 2019-10-06 05:54:13 -07:00
Collin Smith
d2b48b8119 Implemented slightly improved parser for TXTs (see #26) 2019-09-29 03:47:15 -07:00
Collin Smith
0416c93abf Updated ClassUtils and fixed some minor warnings with Excel 2019-09-28 03:45:38 -07:00
Collin Smith
761c6f8447 Implemented support for binary excel loading (see #26) 2019-09-28 03:35:07 -07:00
Collin Smith
3fe5d9bc58 Fixed issue with Components column within MonStats2 2019-09-25 01:46:21 -07:00
Collin Smith
814925d76c Added annotation field to allow bin generator to ignore certain columns 2019-09-23 17:42:40 -07:00
Collin Smith
d9b701901d Added var to force using txt instead of bin for benchmarking later on 2019-09-23 17:20:16 -07:00
Collin Smith
ec4b8e5d2e Removed unused method 2019-09-23 04:05:33 -07:00
Collin Smith
6bb974e711 Added support for binary excel loading (see #26)
Refactored Excel parse factory methods to load methods
Added tentative serialization code to MonStats
2019-09-23 03:51:55 -07:00
Collin Smith
d7f2a42e9c Removed AssetManager reference usage (no plans on using)
Removed AssetManager reference usage (no plans on using)
Leaving original constructor intact for now (added TODO to remove later on)
Added default constructor which creates Files with null AssetManager
2019-09-23 03:23:15 -07:00
Collin Smith
7e3a17cd33 Added debug logging for time it takes to load excel tables 2019-09-23 03:08:06 -07:00
Collin Smith
807d67292f Corrected some columns (El2Mode, El2Type, El3Mode, El3Type) 2019-09-19 01:24:25 -07:00
Collin Smith
7495aff11d Added support for multiple client connections to BNLS
Added support for multiple client connections to BNLS
Added support for ConnectionClosed packet to politely close connection
2019-09-12 02:23:53 -07:00
Collin Smith
3b24c3a58b Created BNLS (login service) skeleton 2019-08-27 22:37:16 -07:00
Collin Smith
cc2ea8ba00 Removed eclipse stuff from gradle (was giving warnings and completely unused) 2019-06-24 03:25:43 -07:00
Collin Smith
b8660a5458 Removed cache field 2019-05-28 01:33:42 -07:00
Collin Smith
f7bdf363dc Simplified implementation 2019-05-10 02:00:32 -07:00
Collin Smith
2ae55d9eb8 Changed translation amount
Changed translation amount
Added support for toTile50 for position coords because of centering
Display iso position and tile position
Changed access of offset and position
2019-05-10 00:20:58 -07:00
Collin Smith
a7682d8743 Added support for isometric offsets 2019-05-09 23:46:44 -07:00
Collin Smith
eaf97baf6e Added translation support
Added translation support
Changed IsometricCamera to use tile coordinates for position coords
2019-05-09 16:00:07 -07:00
Collin Smith
7b4b58ee2d Algebraic simplifications 2019-05-08 23:43:14 -07:00
Collin Smith
a5ff6233c9 Removed unneeded qualification 2019-05-08 23:37:38 -07:00
Collin Smith
fe1e15d1fc Committing new camera classes 2019-05-08 23:34:44 -07:00
Collin Smith
06b91341bf int pixel coords to float 2019-05-07 02:52:23 -07:00
Collin Smith
c10af745b9 Small optimization for mobile to limit updates to entities about 1-2 screen away 2019-05-04 03:20:22 -07:00
Collin Smith
60ecc72fca Fixed quillrat missile
Fixed quillrat missile initial direction
Exposed Entity.screen vector
Integrated EngineUtils into Missile updates
2019-05-04 02:07:28 -07:00
Collin Smith
b9b74768ee Added entity debug size support to monsters 2019-05-03 18:11:00 -07:00
Collin Smith
274e756cce Bugfix for NPE thrown by layers -- creating issue #51 2019-05-03 17:54:24 -07:00
Collin Smith
e672466200 Added support for draw debug entity sizes
Added support for draw debug entity sizes
Fixed bug with debug shape type in draw walkable tiles
Assigned Player entities to size 2
2019-05-03 17:50:10 -07:00
Collin Smith
1b7b7ed350 Added drawDiamond functionality to DebugUtils
Added drawDiamond functionality to DebugUtils
Propagated change to classes
Added drawDiamond2 variation to interpret x,y as bottom left corner
2019-05-03 17:37:32 -07:00
Collin Smith
00c7a6c31a Fixed issue where engine entities weren't cleared after exiting GameScreen 2019-05-02 22:02:55 -07:00
Collin Smith
801df645a3 Added check for param equality (will result in invalid value if same reference for both params) 2019-05-02 21:25:20 -07:00
Collin Smith
058d7e9944 Integrated EngineUtils into MapRenderer 2019-05-02 21:23:38 -07:00
Collin Smith
f2941cc9ca Deprecated DirectionUtils and removed it from repo
Deprecated DirectionUtils and removed it from repo
Propagated changes back into DirectionTool
Fixed bug regarding direction4 math
2019-05-02 20:59:38 -07:00
Collin Smith
b15f76b2bf Formatting fix 2019-05-02 20:41:26 -07:00
Collin Smith
4947d8a8a9 Replaced pixel location calculations with single reference calculated during act(float) 2019-05-02 19:05:29 -07:00
Collin Smith
69da1eef24 Inlined array declarations with pre-generated values 2019-05-02 05:38:15 -07:00
Collin Smith
4c2b8f8d1c Replaced initial branch statement with code similar to existing branchless code 2019-05-02 05:06:05 -07:00
Collin Smith
2a0ed7d40a Created direction tools to provide interactive testing tool for new directions 2019-05-02 02:51:35 -07:00
Collin Smith
86317ebf66 Added COF animations support
Added COF animations support
Added accessor for Animation.Layer DC
2019-04-29 05:02:27 -07:00
Collin Smith
95944f7bcd Fix for bytime encoding bit counts (see #20) 2019-04-28 00:53:09 -07:00
Collin Smith
413b2a0e02 Removed Poolable dependency to be added again in the future if necessary 2019-04-27 00:50:32 -07:00
Collin Smith
acdf053a76 Fixes stat mismatch between current and max -- will likely require more modifications to apply all current mods to max stat 2019-04-24 22:18:38 -07:00
Collin Smith
a019755a96 Integrated Stat label
Integrated Stat label
Improved resistances colorizer (requires additional refinement)
2019-04-24 22:07:55 -07:00
Collin Smith
6e3ba33a9d Improved stat label font layout
Improved stat label font layout
Stat label style updates properly
Added more accurate metrics to font8
Fixed position and size of armorclass stat label
2019-04-24 15:49:09 -07:00
Collin Smith
7c144a329c Fixes armorclass showing as modified when original game does not in this case 2019-04-24 15:37:35 -07:00
Collin Smith
e3c07e0934 Clearing property list will now free all stat objects 2019-04-24 02:25:15 -07:00
Collin Smith
069add223d Testing live-update player stats 2019-04-22 02:38:14 -07:00
Collin Smith
9a6e17496e Refactored attributes modified list with stat-internal modified field 2019-04-21 03:52:36 -07:00
Collin Smith
87c372bad5 Changed API to start using Poolable stats
Changed API to start using Poolable stats
Moved modified attribute to Stat
2019-04-21 03:41:23 -07:00
Collin Smith
b8449d6f42 Improved charged skill icons 2019-04-19 15:47:20 -07:00
Collin Smith
961acb0df1 Added support for charged skill -- further testing required 2019-04-18 22:01:48 -07:00
Collin Smith
d45bad230e Added support for charges label
Added support for charges label
Adjusted component placement
Refactored label to hotkey
2019-04-18 16:25:45 -07:00
Collin Smith
f3098b6d5e Adds charged skill to skills (non-charged for now) 2019-04-18 13:57:35 -07:00
Collin Smith
9901d3b1d2 Added support for throw skill and scroll/book skills (see #49) 2019-04-18 13:43:47 -07:00
Collin Smith
eca930a911 Removed top/bottom quick panel rows
Removed top/bottom quick panel rows
Added default skills
2019-04-18 03:10:04 -07:00
Collin Smith
69b4993207 Temp fix for missile trajectory 2019-04-17 03:37:53 -07:00
Collin Smith
ddb869308f Added Missile entity 2019-04-17 01:00:10 -07:00
Collin Smith
93b9acc944 Added Missiles excel 2019-04-16 01:42:09 -07:00
Collin Smith
4bac597e40 Temp fix to hide health and mana globe labels on android until appropriate positioning determined 2019-04-15 18:53:53 -07:00
Collin Smith
1ad3349bb3 Should fix issue where wide screen ratios would display item in wrong location 2019-04-15 18:49:58 -07:00
Collin Smith
60816c9e6d Added QuillRat AI
Added QuillRat AI
Propagated MonSound to AI class
2019-04-15 18:03:36 -07:00
Collin Smith
9267f03d61 Refactored Preconditions to Validate (guava to apache commons) 2019-04-15 01:12:19 -07:00
Collin Smith
33e53d0ef1 Propagated sleep and params up to AI class 2019-04-14 23:38:49 -07:00
Collin Smith
230816cfe2 Small change to improve readability 2019-04-13 04:35:56 -07:00
Collin Smith
1590adce0f Fixes issue with draw fps text 2019-04-13 04:25:54 -07:00
Collin Smith
6576fa4242 Added labels to health/mana globes 2019-04-13 03:29:31 -07:00
Collin Smith
dace9e31e9 Organized packets better (going to add d2gs, mcp and perhaps bnls) 2019-04-12 15:33:02 -07:00
Collin Smith
172f7180da Fixed panel alignment when repacking 2019-04-12 15:11:54 -07:00
Collin Smith
2a6ab418ed Improved stat and skill update support 2019-04-12 02:14:47 -07:00
Collin Smith
652b748553 Added support for dynamic spell quickpanel 2019-04-12 01:56:50 -07:00
Collin Smith
7f76f4c680 Removed redundant null checks for AI 2019-04-12 01:43:29 -07:00
Collin Smith
022aea2013 Added some debug messaging for entity AI state 2019-04-11 16:07:18 -07:00
Collin Smith
a5db1b4e48 Added some additional packet types 2019-04-11 15:51:25 -07:00
Collin Smith
140e6bfad8 Changed flatbuffers to use union of message types 2019-04-11 15:46:04 -07:00
Collin Smith
95cc1837de Duplicated Zombie code and made it more responsive for Fallen base 2019-04-11 02:04:28 -07:00
Collin Smith
7386548047 Refactored name to Connection 2019-04-11 01:27:35 -07:00
Collin Smith
f361d48777 Added flatbuffers dependency
Added flatbuffers dependency
Created test connection.fbs
2019-04-10 05:08:54 -07:00
Collin Smith
ab9d9fd481 Changed logic slightly and made attack a sequence to return to NU state 2019-04-10 03:43:07 -07:00
Collin Smith
4eac702c33 Added attack state for zombie
Added attack state for zombie
Added sound to zombie attack
Changed randoms to float from int
2019-04-10 02:15:45 -07:00
Collin Smith
45137d9fa4 Dulled inv colors a bit and tried to make them more accurate
Dulled inv colors a bit and tried to make them more accurate
Created darkRed for MonsterLabel label background
2019-04-10 00:19:59 -07:00
Collin Smith
792c0e3d7c Fixes crash equipping ethereal shield to character without a shield 2019-04-10 00:17:55 -07:00
Collin Smith
a479764a47 Added monster description label for hostile monsters 2019-04-09 23:56:32 -07:00
Collin Smith
761b5d1e3f Improved AI independent sleep timer
Improved AI independent sleep timer
Fixed idle state not setting zombie to neutral mode
2019-04-09 21:54:52 -07:00
Collin Smith
941503fd22 Changed implementation method to use a state machine 2019-04-09 17:29:09 -07:00
Collin Smith
5c35c79581 Added approach AI to Zombie 2019-04-09 03:16:23 -07:00
Collin Smith
9710712b00 Added Engine class
Added Engine class to manage entity ids
Temporary until ECS is explored more
2019-04-09 03:08:00 -07:00
Collin Smith
23443dfb52 Implemented group spawning
Implemented group spawning
Replaced NPC AI code with reflection (lookup table coming later)
Added basic wandering AI and duplicated for Fallen and QuillRat
2019-04-08 17:52:52 -07:00
Collin Smith
df71bac470 Fixes crash for Monster entities without a backing ds1 object 2019-04-08 14:35:40 -07:00
Collin Smith
1d0833ed9c Added basic monster generation 2019-04-08 00:53:03 -07:00
Collin Smith
dd9132d6df Created Zombie AI placeholder 2019-04-07 03:31:40 -07:00
Collin Smith
81bf62c316 Added hotkey labels for belt buttons 2019-04-07 00:10:39 -07:00
Collin Smith
e9f7dc758e Fixes #43 2019-04-06 23:46:29 -07:00
Collin Smith
63cd0a35f6 Improved CharacterPanel stat display 2019-04-06 23:15:12 -07:00
Collin Smith
2923f3d498 Added detection for item_nonclassskill 2019-04-06 20:45:16 -07:00
Collin Smith
7305ce40a6 Refactored Stat.stat to Stat.id 2019-04-06 20:32:52 -07:00
Collin Smith
d29e22ece5 Limited set bonus to only display for equipped items 2019-04-06 20:30:08 -07:00
Collin Smith
d210ae84dc Added support for adding dex modifier to armorclass
Added support for adding dex modifier to armorclass
Added Stat.add(int) method which only works with encodings 0,1,2
2019-04-06 15:38:14 -07:00
Collin Smith
878786a49f Added armorclass calculation support for player attributes 2019-04-06 15:29:30 -07:00
Collin Smith
7cb45f389d Fixed vitality and energy calculations
Fixed vitality and energy calculations
Small optimization to Attributes.update to reduce copying
Added updateStats function which will be used to operate on some stats, like skills
2019-04-06 15:18:00 -07:00
Collin Smith
e5fa9025fa Previous commit should have removed need for scratch, since the ops are no longer multiplicative 2019-04-06 14:49:08 -07:00
Collin Smith
512b6eb55a Fixed issue where opstats were applying to aggregate instead of base value 2019-04-06 04:44:54 -07:00
Collin Smith
377ddb1cc6 Fixed item property list application (See #36)
Fixed item property list application
Removed coupling between individual lists
Included set items to item property list applications
Created scratch property list within Attributes to assist with pre-aggregation
2019-04-06 04:37:02 -07:00
Collin Smith
0d66edcd9c Small formatting change 2019-04-06 04:03:59 -07:00
Collin Smith
5d0ee82cd3 Small fix for some of my custom items
I don't anticipate this being necessary for any game generated items
However the original client can display them, so why not mine
2019-04-06 04:03:33 -07:00
Collin Smith
561b8a8022 Fixed set property lists to be cumulative 2019-04-06 03:58:28 -07:00
Collin Smith
a7511cb741 Added support for charms 2019-04-06 03:29:37 -07:00
Collin Smith
62ef62c497 Removed Stat.Instance in favor of Stat (previously Stat was an enum, so Stat.Instance was necessary) 2019-04-06 02:41:41 -07:00
Collin Smith
47c63dce58 Added basic item-player stat aggregation (See #36) 2019-04-06 00:59:12 -07:00
Collin Smith
7b7146dcdf Redesigned Attributes (See #36) 2019-04-05 23:10:38 -07:00
Collin Smith
cdf196bcec Changed items to be assigned an empty sockets array by default 2019-04-05 03:07:10 -07:00
Collin Smith
fa956b47d1 Removed grouping of SET and UNIQUE cases 2019-04-05 02:46:24 -07:00
Collin Smith
699e905ba2 Refactored socketed to sockets 2019-04-05 02:44:52 -07:00
Collin Smith
39f0ada5a7 Moved attributes to update method within Item
Moved attributes to update method within Item
Modified attributes to be an accessor within Attributes
2019-04-05 00:56:48 -07:00
Collin Smith
87dd1f873b Fixed chance to block to include default character class block chance 2019-04-04 23:51:00 -07:00
Collin Smith
f0c06afed9 Added life, stamina, mana and defense to character panel 2019-04-04 22:06:11 -07:00
Collin Smith
c7576e4f99 Added error detection for multiple cursor items 2019-04-04 19:14:31 -07:00
Collin Smith
b1109882a6 Fixes #39
Fixes #39
Added Excel.EXPANSION declaration to weapons, armor and misc excels
2019-04-04 17:58:43 -07:00
Collin Smith
93e584df57 Added ValShift to starting hp,mana,stamina fields 2019-04-04 17:04:39 -07:00
Collin Smith
598f424f3a Temp fix for #37 2019-04-04 16:59:58 -07:00
Collin Smith
fe9cdd0fd8 Added remaining columns to CharStats excel 2019-04-04 16:17:49 -07:00
Collin Smith
3c40777ac8 Added DifficultyLevels excel
Added DifficultyLevels excel
Removed Files.loadObj -- was deprecated and Files.loadInternal works fine
2019-04-04 16:10:03 -07:00
Collin Smith
86ae7560f7 Fixed attrs to show correct, modded values
Fixed attrs to show correct, modded values
Fixed weapon damage description for 1h, 2h and both (if barb)
2019-04-03 06:22:27 -07:00
Collin Smith
57a554549c Added Stat.op function to format stat values correctly (See #38)
Added Stat.op function to format stat values correctly
Minor fixed to prevent a NPE if loading character with no hireling (See #40)
Added TODO for default resistances
2019-04-03 03:34:49 -07:00