Commit Graph

380 Commits

Author SHA1 Message Date
384c2530d0 Started implementing _get, _set, and _get_property_list for Entity, because the ability to save them into godot scenes would be really useful. 2020-04-24 23:43:37 +02:00
4615300293 Removed the info parameter of _setup. 2020-04-24 14:56:10 +02:00
909f34af03 Renamed skeleton to body in SpeciesModelData. Now Entity can store transforms, also it now has a few more convenience getters/setters. Also it will try to instantiate the body of an entity if it is set into the species data. 2020-04-24 13:35:30 +02:00
677f138a46 Added a c_is_controller property to Entity. the server will set it to true for the owner if this is the entity they are supposed to control. 2020-04-24 00:43:18 +02:00
49db594f4a Stat and StatModifier are back to being References. I found a better way to go about serializing stats. (Most likely they'll be merged into Entity, this should simplify the background logic aswell, and make it less awkward.) 2020-04-23 18:48:49 +02:00
5f97b2d97a AuraData is a Resource now aswell. 2020-04-23 12:17:33 +02:00
9f5248b297 Stat and StatModifier is also a resource now. Stats are not yet exposed as properties, as they need a bit of rework to work properly this way. 2020-04-23 12:13:56 +02:00
a3f5c4ffbe Hide Entity's clientside properties, and Entity based properties from the inspector. Also fix a waring. 2020-04-23 11:50:06 +02:00
da2a116426 Convert saving learned spells and recipes to use paths aswell. 2020-04-19 18:42:11 +02:00
fa8f38fa5d Class profile now also uses resource paths instead of ids. 2020-04-19 17:41:42 +02:00
1893598fc3 Fix typo. 2020-04-19 17:32:51 +02:00
089c854c9e Now resource paths are used instead of ids for save files. (They are converted back on load - ids are better for networking) This makes remapping resource ids possible, which makes creating modules (and later mods into zips or pcks) simple. 2020-04-19 17:15:36 +02:00
0f823f4206 Split ESSResourceDB into 2 classes and a base class. 2020-04-15 00:24:12 +02:00
4935de4c5f Rename the EntityDataManager singleton to just simply ESS. 2020-04-14 16:55:21 +02:00
3cb26816d2 Moved the data out from EntityDataManager into a new ESSResourceDB class (Resource). The DataManager now stores an instance of this new resource instead. 2020-04-14 16:46:24 +02:00
d8ea28e221 Started reworking EntityDataManager's API, to make resource loading easily scriptable. 2020-04-14 14:15:38 +02:00
b2d4be96ea Added is_playable property to EntityData. 2020-04-13 22:04:14 +02:00
f29b01af8b Clang format. 2020-04-10 14:09:21 +02:00
9fa7c23462 Fix build for 4.0. (When 4.0 becomes stable I'll create a branch for it) 2020-04-09 12:32:05 +02:00
33bebb19b9 Added spell_train_data property to EntityData. Also fixed up and improved a few other bindings. 2020-03-20 19:20:56 +01:00
38738dc2f8 Added setting to allow spell and recipe learning into ClassProfiles. Also small fixes. 2020-03-20 03:29:36 +01:00
9493be41fb Added PlayerProfile, and now ProfileManager has clientside, and serverside variables. 2020-03-19 20:29:36 +01:00
affacaea58 Added change notifications to ProfileManager, and it's data classes. Also added option "automatic save" for the ProfileManager (still needs some work). 2020-03-18 03:04:50 +01:00
9cc99bbc27 Added a few setting to EntityDataManager for levelling. 2020-03-17 22:35:29 +01:00
3367f3bc96 Fix missing break. 2020-03-15 19:33:31 +01:00
4dce51d019 Implemented EntityResources. 2020-03-11 16:08:07 +01:00
3686150a44 Rename max property in EntityResource, as it is a gdscript method. Also renamed the current property, for consistency. 2020-03-10 16:03:23 +01:00
3e10779dbc Updated old style getters/setters to use the new style. E.g. sget_ -> gets_. 2020-02-26 21:20:54 +01:00
c5c0f2cddd Added support for item spells. 2020-02-25 14:00:55 +01:00
7666d11b2d Add use spell points setting. 2020-02-21 11:56:57 +01:00
581127cde5 Now entity also stores the class level, and class xp. Added separate class and character xp properties to EntityCreateInfo aswell. Standardized the remaining methods in XPData. 2020-02-20 12:18:55 +01:00
a2d4df0c89 Levels are now (properly) separated into class and character levels. 2020-02-19 12:17:10 +01:00
e16c021ac8 Added bindings for item use support, and marked quite a few methods/arguments as const. 2020-02-19 09:11:36 +01:00
9d3bd194ee Added support for Entity relations. 2020-02-19 08:39:30 +01:00
0bdf71c431 Remove duplicate line. 2020-02-09 21:55:23 +01:00
d33a499847 Bind the ported methods in Entity. 2020-02-03 18:12:59 +01:00
f1490c7543 Organized the data folder's classes into subfolders. 2020-02-03 13:01:17 +01:00
5ea00de13e Ported a few of Entity's virtual methods from BrokenSeals. Started reworking spawning, and Entity initialization. Moved the singletons into a new singletons folder, and renamed the profile_manager folder to profiles. 2020-02-03 11:56:52 +01:00
74eb8bcb2f Updated the license header for 2020, also added the license text to the top of the c++ files. Removed a now unneeded, unused file. 2020-01-31 19:34:47 +01:00
c072f69e2a Added quite a few const, and reference qualifiers. 2020-01-31 18:06:43 +01:00
6f3744e2cb Ran clang format on every file, I got used to it working by default in Visual Studio and I forgot about it. 2020-01-09 04:27:19 +01:00
e03146759c Work on the bindings for pet support. 2020-01-05 02:17:02 +01:00
bf28679b95 Fix performance issue with the AI. 2020-01-04 13:27:45 +01:00
6aa2df4647 Now both Entity, and WorldSpell inherit from Node, this complicates the setup by a tiny bit (Entity's body property needs to be assigned), but now the module will work in both 2D, and 3D. Also removed the compile time option. 2020-01-02 22:56:24 +01:00
47da2d28b1 Added bindings for dispells into Spell, and Aura. Cleaned up Spell's scaling bindings. The AuraTypes enum can now be used as flags aswell. Unified has_global_cooldown like bindings. 2019-12-29 01:58:25 +01:00
bc797e4ffb Added the ability to manually update Entities. This will allow for turn based games. 2019-12-28 00:44:21 +01:00
251f9e6e2a Added a son_physics_process callback to spells, spell scripts can register for it in entities. 2019-12-12 16:44:43 +01:00
e0d733eb54 Fix android compile. 2019-12-02 21:40:53 +01:00
68df038731 Added text strings to EntityResourceData. 2019-12-02 00:42:21 +01:00
905da5161e Moved the EntityDataManager into a new autoloads subfolder. 2019-12-01 22:56:53 +01:00
e57c0ef30e Moved in-world spell related classes into a different folder. 2019-12-01 21:21:51 +01:00
3fe142e704 Removed some deprecated classes. 2019-12-01 20:30:48 +01:00
964110c125 Missing change from previous commit. 2019-12-01 18:46:27 +01:00
e72650419d Networking for EntitySkills. 2019-12-01 18:45:15 +01:00
8c11a22209 Added EntitySkillData. 2019-12-01 18:00:09 +01:00
6a954f3381 Fix typo, and respect the should_process flag. 2019-12-01 01:16:28 +01:00
abb564acdc Resources should work in multiplayer now, also work on bindings. 2019-12-01 00:24:38 +01:00
b3cb5b2def Added EntityResourceDatas to the DataManager, also more refactorings. 2019-11-30 21:46:11 +01:00
ea06b2346b Added EntityResourceCostData, also more refactorings. 2019-11-30 21:04:35 +01:00
fe6b3224c8 Refactored how entity resources are set up. 2019-11-30 19:26:12 +01:00
dc5d1515e2 Moved entity resource to a subfolder. 2019-11-30 18:15:19 +01:00
992d0672f9 Fixed sending item count changes to the client. Also added the stack_size_changed signal to ItemInstance. 2019-11-29 10:16:59 +01:00
6bd6ad4623 Removed the old ai aswell. 2019-11-27 11:14:47 +01:00
675aeaeba2 Reworked the UtilityAI implementation into something that I think will actually be good, and useful. Also intial work on pet support. 2019-11-27 10:54:56 +01:00
7a0e861c7d Fix compile. 2019-11-11 21:41:28 +01:00
79a82810b5 Fixed serializing caster's path as ".". 2019-11-11 00:46:31 +01:00
d89871f1b4 now the text_name properties use resource's resource_name property to store data. 2019-11-09 17:49:05 +01:00
ca498d753c Refactored the way the server can open windows. Also they work with networking now. 2019-11-04 23:05:45 +01:00
6c1c5eca46 Fix small issues, and model re-generation. 2019-11-04 21:43:32 +01:00
e57b8ec27a Implemented Equipping. 2019-11-04 21:00:17 +01:00
d86695c1f2 Typo fix. 2019-11-04 18:31:02 +01:00
9efe65cc39 Small fixes. 2019-11-04 18:07:19 +01:00
267b6c2082 Networking for bags, and target bags. 2019-11-04 16:50:53 +01:00
0d98a36668 Merged Mob and Player into Entity. 2019-11-04 01:38:27 +01:00
bac30cf901 Implement helpers for crafting. 2019-11-04 01:16:50 +01:00
d2c29095bb Added gender enum, and added it to ItemVisualEntry. 2019-11-03 22:39:19 +01:00
91851d4ef9 Implemented spell learn spell requiremets. 2019-11-02 00:01:07 +01:00
81d5e867ab Fix bindings. 2019-11-01 23:40:54 +01:00
0bdf6652a6 Better/Different AuraGroup implementation. 2019-11-01 22:07:56 +01:00
7e8212144c Small aura remove, and add event calls cleanup. 2019-11-01 21:20:22 +01:00
8a19b74449 hass_spell_id, and hasc_spell_id functions. 2019-11-01 20:33:14 +01:00
b9430efb7a renamed the ai property to sai. 2019-10-31 11:52:56 +01:00
90e7e0064d Work on AI. 2019-10-31 01:35:29 +01:00
056791b313 Improved the design a bit, implemented serializing SpellDamageInfo, and SpellHealInfo. Also fixed a crash. 2019-10-29 18:12:15 +01:00
07d81d63a9 Fix warning at start. 2019-10-29 15:18:08 +01:00
d410497b71 More work on networking. 2019-10-29 13:36:33 +01:00
c02fd1e9f3 Better fix for the previos compile error. 2019-10-29 00:33:30 +01:00
2a753972f5 Fix compile for android. 2019-10-29 00:24:37 +01:00
1994e023b2 More work on networking. 2019-10-29 00:15:52 +01:00
2a6b080cf6 More work on multiplayer. 2019-10-28 21:48:50 +01:00
233d934876 Added functions to manipulate what the _s_sees vector. Also added a bind for vrpc. And smaller fixes/improvements. 2019-10-28 16:53:48 +01:00
8512378fd2 Improved the RPC macros. 2019-10-28 14:45:38 +01:00
5ea15ab1c9 Stat will be set dirty after deserialization now. 2019-10-25 21:58:29 +02:00
f07afba4ff Added EntitySpeciesData to EntityData. Also bound equipment_data. 2019-10-25 10:38:32 +02:00
1b8f94b818 Added description to EntityData and ENtityClassData. 2019-10-25 10:28:55 +02:00
30332f7e7d Test implementation for sending objects across the network. 2019-10-23 20:34:08 +02:00
ae55dce96e After thinking it's probably not a good idea to allow player's seed to contain junk from memory. 2019-10-23 15:40:04 +02:00
b0ce9818c1 Renamed DataManager to EntityDataManager. Also moved it to the root of the project. 2019-10-19 13:21:21 +02:00
70cb694a12 Removed the temp properties. 2019-10-19 12:49:01 +02:00
056f9e0358 More bindings cleanup. 2019-10-19 12:47:30 +02:00
f0aca4afa4 Removed the temporary bindings. 2019-10-19 12:20:59 +02:00
48470111f3 Standardized resource name and description properties. I left the original properties for now, so upgrading is possible. 2019-10-19 12:12:09 +02:00
2053b9ee76 Small fixes and cleanup. 2019-10-16 14:55:14 +02:00
34140a6d2e Renamed Luck to Spirit. 2019-10-16 13:35:57 +02:00
53c66c2136 Small logic fixes. 2019-10-16 02:33:26 +02:00
9e976eaebf Small fixes. 2019-10-15 22:21:14 +02:00
18afb79b58 Added a max value parameter for the stat dependencies. 2019-10-15 21:58:40 +02:00
8ce7742d14 Implemented _from_dict in StatModifier. Stats seems to work properly now. 2019-10-15 20:38:51 +02:00
fdecd5b733 Removed some unneeded commented out code. 2019-10-15 20:23:51 +02:00
dcd8c65782 More work on stats. 2019-10-15 20:23:13 +02:00
5c4f0a1fe3 Stat refactor part2. 2019-10-15 18:34:19 +02:00
7224490a99 Stat refactoring part 1. 2019-10-15 14:57:59 +02:00
df8331e07f Now entities have an action bar profile aswell. Also fixed small deserialization issues. 2019-10-14 19:49:40 +02:00
84728ccf5c Typo. 2019-10-13 23:06:34 +02:00
91f61d5c38 A little work on _sequip. 2019-10-13 23:05:52 +02:00
d490fa6b61 Added should_deny_equip. 2019-10-13 22:48:25 +02:00
3f586d46d2 Fixed some deserialization <-> setup related issues. 2019-10-13 20:05:03 +02:00
65227db52c Cleanups, and more missing stuff. 2019-10-13 13:53:03 +02:00
698e418d16 Added in the missing equipment related functions. 2019-10-13 13:31:49 +02:00
b578d928bd Added equip hooks. And added a non-existent signal. 2019-10-13 13:12:27 +02:00
2232c37121 Craft recipe loading fixed. 2019-10-12 20:44:42 +02:00
f656b889f9 Small fixes. 2019-10-12 00:21:17 +02:00
f4a00e2876 fixed emitting con_xp_gained. 2019-10-11 08:26:39 +02:00
88d9093996 Various levelling, and serialization related fixes, and improvements. 2019-10-10 00:46:12 +02:00
56cf918da0 level is now 1 by default, and updated levelling related signals. 2019-10-09 17:45:49 +02:00
66018908d5 Implemented bag serialization. 2019-10-09 14:37:23 +02:00
5c1c47f5ce implemented serialization for EntityDataContainer. 2019-10-08 13:37:08 +02:00
7d4b718acc removed the hyphen from s, and clevelup. 2019-10-08 00:30:16 +02:00
1c48fc9634 Added craft recipes to EntityData. 2019-10-07 17:17:21 +02:00
f6ee549d07 Added crafting related functions into the entity. 2019-10-07 16:31:43 +02:00
3fc6579aee Renamed CraftDataAttribute into CraftRecipe. Also added a few more crafting categories. 2019-10-07 15:25:36 +02:00
425bf1df2f Removed the stat helper member Refs from entity. 2019-10-07 00:34:12 +02:00
26ba90a9d3 implemented equipslots. 2019-10-07 00:29:05 +02:00
bbb92b244d Renamed _stat_points_per_level to _spell_points_per_level in entity class data, and added free point counters for both spell points, and talent points into entity. 2019-10-06 18:51:16 +02:00
262e278377 Merged Talent and Skill into Aura. 2019-10-06 18:19:04 +02:00
f819668ab0 Removed spell's next rank member, and a bit more work on the talent management functions. 2019-10-06 17:18:44 +02:00
0d294e89cd Cleaned up Talent a bit. 2019-10-06 17:04:28 +02:00
5afc9d4e08 Cleaned up the talent related functions in entity. 2019-10-06 16:47:03 +02:00
529f8935d6 Added seed to the player. 2019-10-06 00:25:12 +02:00
18cf024cc5 now an entity can by itself interact, it does not need an EntityData. Useful for opening simpler custom entities, that just open guis. 2019-10-06 00:10:36 +02:00
fa4749f28d Fixed small mistakes in player's serialization, and deserialization. 2019-10-04 22:55:46 +02:00
7629584851 Cleaned up Stat's constructors. 2019-10-04 22:55:09 +02:00
7c6cb26aba Implemented looting. 2019-10-02 13:23:04 +02:00
cd2022792b Fixed calling _cans_interact, and _sinteract in EntityData. 2019-10-02 11:22:20 +02:00
435b57337a Added an sspell_cast_success callback. Also the clientside version was finished up. 2019-09-28 17:36:02 +02:00
fc35baf69f Fixed the arguments for a few script virtual callbacks. 2019-09-28 15:23:21 +02:00
d8d2ce895e Fix crash. 2019-09-28 01:04:26 +02:00
bcbc83596a Improved the targeting signals, and callbacks in entity. 2019-09-27 18:05:43 +02:00
d8f702dfb8 Added a mouse entered, and exited signal aswell. 2019-09-25 16:31:28 +02:00
3b1028ddf4 Added mouseover callbacks. 2019-09-25 12:59:21 +02:00
98e0126e19 Added EntityClassPlaystyleType enum, and removed CharacterWeaponDataTypes. 2019-09-25 12:00:11 +02:00
1d317c56b7 Now entity properly calls unref, on spell cast fails. 2019-09-24 15:18:35 +02:00
081750d4af Include guard fix. 2019-09-24 02:04:41 +02:00
6074b75ec3 Property style cleanup, and added an entity name changed signal. 2019-09-17 15:35:03 +02:00
5e68f551a3 Cleaned up the talent-related functions in entity. 2019-09-17 14:06:41 +02:00
bd6d2cfde5 Added a _canc_interact vmethod as well. 2019-09-17 02:17:47 +02:00
4aad057925 Added a few remaining things required for entity interactions. 2019-09-17 02:14:24 +02:00
3d8010f028 Fix warning at startup. 2019-09-17 01:25:59 +02:00
d16e580bf4 Moved the container and vendor data into it's own classes from EntityData. 2019-09-17 01:14:19 +02:00
0a00a12c32 Split EntityData into EntityClassData, and a new EntityData. 2019-09-17 00:04:37 +02:00
18925ee236 Implemented Bags, and added a InteractionType enum. 2019-09-16 21:57:55 +02:00
f3a9a9e14a Added LevelStatData classes. 2019-09-16 03:13:52 +02:00
e0183a53c6 More from_dicts. 2019-09-14 20:44:50 +02:00
8cafa3bf7d Crash fix. 2019-09-14 02:58:02 +02:00
40ab1c9c00 Simple from_dict implementation. 2019-09-14 01:56:57 +02:00
62b5df080a More work on entity serialization. 2019-09-13 15:21:07 +02:00
7756cf51ec Work on serialization. 2019-09-13 09:26:53 +02:00
f036bf449b Added Spell learning, and Skill support into Entity. And added an XP Rate stat. Also the levelup, and xp gain signals are now actually called. 2019-09-13 01:23:28 +02:00
99be4306ce Added EntitySkill. 2019-09-13 00:23:39 +02:00
1a6bbf5016 Removed FactionComponent. 2019-09-12 23:52:11 +02:00
add4ab2b51 Removed the old (uncleaned) spell data related classes. 2019-09-12 23:45:28 +02:00
db06f601fc Added stat_points_per_level to EntityData. 2019-09-12 22:55:07 +02:00
544aa45a80 Bindings for XPData. 2019-09-12 14:40:57 +02:00
2c8becc27a Added xp and level based events. 2019-09-12 13:26:52 +02:00
cfb2373fd1 Added locked property to Stat. Also fixed a bunch of smaller errors. 2019-09-11 18:18:20 +02:00
7fbb0c4599 Fixed compile. 2019-09-11 17:24:22 +02:00
4afc637801 Added 3 data classes. 2019-09-11 15:06:30 +02:00
41d94978e6 Added the money field. 2019-09-11 13:06:04 +02:00
870a1f406c Added the basic interact methods to entity, and EntityData. 2019-09-11 12:54:51 +02:00
39a335e36c Added the new enums into EntityData as well. Also small bug and typo fixes. 2019-09-11 12:26:41 +02:00
4bf99ac12d Fix uninitialized variables. 2019-09-11 11:30:29 +02:00
50062d8ad4 Added properties from the new enums into entity. 2019-09-11 11:25:52 +02:00
008bf34a34 Added 2 more events. 2019-09-11 11:01:30 +02:00
8cc7017351 Removed MobData, and merged it into EntityData. Also cleaned up PlayerCharacterData. 2019-09-09 22:12:04 +02:00
e1c83586a7 EntityData now has a parent EntityData property, for reusing parts of an another one. 2019-09-09 20:36:15 +02:00
6a4d0be1d5 Fix search and replace fail. 2019-09-09 15:50:39 +02:00
ca2fe9a6c4 Renamed CharacterClass to EntityData. Also moved it around, with a few related classes. 2019-09-09 14:26:18 +02:00
396c49542c Finished up the previous change in CharacterClass. Added some temporary comments. 2019-09-08 23:10:22 +02:00
7640ff7884 Now The aura's added, and removed clientside signals are also called properly. 2019-09-08 00:02:21 +02:00
9bbca6d4b5 Clientside spell cast callbacks are now properly called. 2019-09-07 16:52:11 +02:00
06436b27f8 Moved the inventory system into Player. Also Added a new inventory class, and renamed everything in playyer to use that instead of bag. 2019-08-16 02:24:32 +02:00
3cce6b0ae8 -Talent is now inherited from Aura.
-Cleaned up the talent system specific classes.
-The ResourceManager now loads talents aswell.
-Cleaned up, and made the EntityResource system scriptable.
-Fixed the stat signals, the stat parameter was null every time. ("this" should've been wrapped in a Ref.)
2019-08-13 23:58:42 +02:00
895525a998 Work on fleshing out the inventory system. 2019-08-07 01:54:59 +02:00
38b155d4ad -Moved StatModifier from Stats to it's own file. Also updated i.
-Removed the old, now unneeded SpellCastData stuff from Entity.
-Small interface fixed to stat, also fixed applying and deapplying modifiers.
-Fixed AuraStatAttribute's bindings.
-Made the aura commands a little more intuitive.
-Added gcd callback bindings.
-Has Global Cooldonw in spell is now defaults to true.
-Small binding fixes.
2019-08-05 23:59:37 +02:00
39c9d6c36d Now the clientside gcds also refresh. 2019-08-05 15:38:01 +02:00
716f1833c4 Small fixes to Cooldown and CategoryCooldown event / signaling logic. 2019-08-05 10:55:50 +02:00
c3828efe05 A lot of work, mostly on the entity bindings. Added a lot of callbacks, and fixed a few bugs. 2019-08-05 01:36:33 +02:00
4f3c21a0cf Added the aura callbacks into the CharacterClass, and Entity, so they can be scripted via GDScript. Entity calls everything as needed.
Also added death events, and callbacks.
2019-08-04 19:13:00 +02:00
3906bea408 Created the bindings for EntityEquipSet, and fixed compile. 2019-07-23 13:55:11 +02:00
57370a733c Added overrideable ai methods to CharacterClass, and removed some unneeded methods. Also added an AIStates enum. 2019-07-06 21:24:02 +02:00