Commit Graph

55 Commits

Author SHA1 Message Date
d62e4d8e67 Update Acedia's Manifest 2020-07-18 02:39:05 +07:00
ba85300315 Change Acedia's loading process 2020-07-18 02:38:39 +07:00
507c7ba12c Fix Singleton not calling OnDestroyed() event 2020-07-18 02:37:20 +07:00
740f98edbd Add new APIs to a Global object 2020-07-18 02:36:01 +07:00
826e6272a4 Add proper method to disable a Feature 2020-07-18 02:35:25 +07:00
b6e75a44b0 Change ConnectionService to add it's listeners 2020-07-18 02:34:11 +07:00
cef551b660 Add global string to Text conversion 2020-07-18 02:32:52 +07:00
f6364229ed Add MemoryAPI 2020-07-18 02:32:11 +07:00
2c1a43f9d4 Add basic version of LoggerAPI 2020-07-18 02:31:58 +07:00
8845d69b1d Add ConsoleAPI 2020-07-18 02:31:39 +07:00
070211158e Add ColorAPI 2020-07-18 02:31:11 +07:00
e3f3296c2d Add ability to auto-create Singleton
Add an optional parameter that allows to auto-spawn
`Singleton` with `GetInstance()` call.
2020-07-18 02:30:55 +07:00
341c4aaf89 Add functionality to Service
Add ability to auto-launch and obtain instance of
a `Service` with a single command.

Add `Service`-specific events `Launch()` / `ShutDown()`

Add ability to auto-register required listeners on launch.
2020-07-18 02:28:40 +07:00
b954c718aa Change ConnectionService to be auto-started
To avoid launching `ConnectionService` all the time -
only do so when it is needed by someone
2020-07-18 02:25:02 +07:00
6125289040 Add events ability to start/shutdown Service
Events might rely on a particular `Service` to generate them,
this patch allows them to auto-launch/shutdown a service, depending on
whether anybody is listening to it's events.
2020-07-18 02:21:23 +07:00
5a14bb6d2c Add testing to Aliases subsystem 2020-07-18 02:17:47 +07:00
27c88b8707 Refactor Aliases subsystem 2020-07-18 02:17:22 +07:00
3849fd5c9d Refactor Testing subsystem 2020-07-18 02:16:41 +07:00
960e787de7 Refactor Text subsystem 2020-07-18 02:16:21 +07:00
fbc8abd48c Fix JSONAPI class description 2020-04-14 01:51:49 +07:00
4e07eb6c51 Fix deprecated Feature file after refactoring 2020-04-14 01:51:09 +07:00
c690572663 Add aliases functionality
Add aliases functionality to acedia.
Aliases allow to add "synonyms" to class names or other text values.
2020-04-14 01:49:45 +07:00
97569f9568 Change file structure of Acedia
Improves grouping of some files in project's directories.
2020-04-09 14:43:45 +07:00
54e87437c2 Add TODO list for a TestCase 2020-04-08 01:49:58 +07:00
3969eb3824 Refactor Feature
Make events functions `OnEnabled()` and `OnEnabled()`
protected rather than public.

Move initialization and clean up logic into
`OnCreated()` and `OnDestroyed()` event functions.
2020-04-08 01:49:17 +07:00
dd0bdc8904 Add events for a Singleton
Add `OnCreated()` and `OnDestroyed` event functions to provide
a more simple and safe way to handle these events.
2020-04-08 01:46:57 +07:00
53caa5766f Refactor JSON implementation
Change base class for JSON objects from `Object` to `AcediaObject`.

Rename some classes/functions/structures/variables to
be more compact and/or better convey their meaning.

Add appropriate API that contains constructors for JSON objects.
2020-04-08 01:43:11 +07:00
076ebe8fcf Add global namespace to Acedia actors and objects
We want all actors and objects defined in Acedia to share
a global namespace that provides an access to important variables
(such as `Acedia` reference) and functions.

We add a `Global` singleton and `AcediaActor` / `AcediaObject`
base classes with a quick accessor to it's instance (`_` / `_()`).
2020-04-08 01:36:29 +07:00
dd45e692fc Add unit tests for JSON implementation 2020-03-31 13:29:11 +07:00
a4a1c21cd7 Add basic unit test support
Add class that can automatically perform defined tests on user request.

Developers that wish to implemet unit tests for some functionality
must extend that class (`TestCase`) and add it to the manifest,
so that Acedia can read, register and later use it to perform tests.
2020-03-31 13:28:20 +07:00
427d6fea58 Add basic JSON data support
Add classes to store data that can be transferred in a text JSON format.
2020-03-31 13:23:55 +07:00
a5e36dc85a Fix incorrect description for FixAmmoSell
Previous description understated the effects of the `allowNegativeDosh`
flag. Effects are much more common and significat that previously
thought because of game behavior on filling ammo for one or all weapons.
2020-03-22 19:32:36 +07:00
fac38e5a9c Change FixInventoryAbuse behavior
Changes behavior of `FixInventoryAbuse` on weight limit violation.
Instead of destroying all weapons in the inventory of abuser,
it drops them on the ground.

This change is mainly caused by game behavior that allows
regular players to accidental break weight limits.
2020-03-22 19:23:57 +07:00
0cfbb50abc Document whitelist status in readme 2020-02-19 02:29:00 +07:00
6c4afafc52 Fix typo in changelog 2020-02-19 02:28:12 +07:00
9ae39b1e9e Add README file 2020-02-19 02:16:28 +07:00
1c65ceea65 Document all changes for release 0.1
Compile changes in development versions into one list and sort them
in order of importance to the server owners.
2020-02-19 02:14:42 +07:00
686b042647 Reformat config file for better readability
1. It's much easier to find information relevant to a particular
feature (fix), if it's description follows after it's section
definition, i.e. [Acedia.FixAmmoSelling].

2. Descriptions rewritten for more clarity to the end user.
2020-02-19 02:11:20 +07:00
c2942b6323 Refactor to simplify
`CheckAmmoPickup` effectively only contained another function call
and itself was only called once. As it also didn't add to readbility,
it needed to be removed.
2020-02-19 00:48:48 +07:00
dc6a28224a Reformat config file to be more evenly spaced 2020-02-19 00:43:11 +07:00
2c39bf1822 Fix misstatement in FixAmmoSelling comments
Previous comments explaining the idea behind how `FixAmmoSelling`
works were incorrectly stating that non-default pickup class is only
used to calculate diuscounts, when it was also used to spawn
weapon pickups.
2020-02-19 00:42:28 +07:00
1a58ba0620 Fix FixAmmoSelling causing invisible pickups
Non-default value of pickup class was used to
spawn pickup when player drops a weapon.
But since we've replaced that class and it doesn't
(or might not) exist on the client - dropped weapons
appeared as invisible.

Catch the moment our custom pickup is spawned and
replace it back with default one.
2020-02-19 00:38:51 +07:00
2b75722de5 Fix missing function access modifiers 2020-02-19 00:28:28 +07:00
2c887bf513 Add config entry for FixDualiesCost 2020-02-18 23:13:43 +07:00
26c7af8cc9 Configure manifest to include FixInventoryAbuse 2020-02-18 23:13:03 +07:00
e902db39cd Add FixDualiesCost feature
This feature addressed two inventory issues:
1.  Players carrying amount of weapons that shouldn't be allowed by the
weight limit.
2.  Players carrying two variants of the same gun.
For example carrying both M32 and camo M32.
Single and dual version of the same weapon are also considered
the same gun, so you can't carry both MK23 and dual MK23 or
dual handcannons and golden handcannon.
2020-02-18 23:12:30 +07:00
f63d530e95 Fix FixZedTimeLags's default config
We want all Acedia's critical bug and exploit fixes
to be enabled by default, but `FixZedTimeLags` was disabled by mistake.
2020-02-18 23:10:14 +07:00
867343f53a Add config entry for FixDualiesCost 2020-02-18 20:25:43 +07:00
55d81c32f4 Configure manifest to include FixDualiesCost 2020-02-18 20:24:23 +07:00
233a11df89 Add FixDualiesCost feature
This feature fixes several issues related to the selling price of both
single and dual pistols, all originating from the existence of dual weapons.
Most notable issue is the ability to "print" money by buying and
selling pistols in a certain way.

  It fixes all of the issues by manually setting pistols'
'SellValue' variables to proper values.
2020-02-18 20:22:09 +07:00