Go full on ECS with abilities
- Dominant language
- C#
- Stars
- 86
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
**What needs to be cleaned up?**
Abilities are basically a cobbled together version of the Entity-Component System architecture, with various game objects being the entities and the abilities being the "components". Maybe we should go ahead and rewrite the ability system to behave more like a "proper" ECS architecture?
**How will this benefit us?**
Abilities will be strongly typed. So instead of:
```csharp
var thrust = ship.GetAbilityValue("Movement Standard");
```
it will be:
```csharp
var thrust = ship.GetAbility().Thrust;
```
or something like that.
This also ties in with #156; defining abilities as their own classes allows for greater flexibility in modding.
**What potential drawbacks are there to making this change?**
We need to be careful not to break custom abilities; right now they're defined in AbilityRules.txt, so we'd need a way to translate that over so modders don't need to code the ability rules in C#.
Data file structure will probably want to be changed, so we'll need to define a converter to convert SE4 mods to the new format. This will be less of an issue than previously, as no one's making new SE4 mods anymore, the only one that's active is Fusion Mod and its authors would love to convert it to FrEee once FrEee is more stable!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.