AncientBeast
AncientBeast copied to clipboard
modular abilities [bounty: 70 XTR]
Unit abilities should be refactored by having a proper API, with a set of actions that can be combined. They should have a common class that gets instantiated, standard object oriented programming style.
It should roughly contain stuff like:
- type (first ability is passive, second is a basic attack, third is a special move and forth is an ultimate)
- usability (certain conditions must be met in order to be able to use the ability, provided cost is fulfilled; an ability could be disable by a debuff; active abilities are usually only usable once per turn)
- cost (usable abilities have a usage cost, usually being a certain amount of energy points, but not exclusive or limited to that)
- upgrade (passive abilities tend to auto upgrade before a set amount of rounds, while the other require a certain number of uses before upgrading; when an ability is upgraded, certain parameters are improved)
- effect (this can be certain amounts of damage, healing, movement, buffs/debuffs)
- target (can be self, enemy units, allied units, area, hexagon, etc.)
- range (some abilities have patterns, basic attacks can usually hit in front and sideways of the first/last unit hexagon; )
- hits (some abilities can hit multiple times or even be used multiple times in the same round)
- modifiers (stats and masteries can influence the output of specific abilities)
Files to be refactored: src/ability.js and the stuff in src/abilities.
This is one of the biggest things holding back the project, as it makes it hard to code abilities for new awesome playable units.
May begin to work on this, though I don't quite understand how the abilities interact with the game class yet. Would you prefer a composition pattern over an inheritance pattern? I could start with a high-level organization of what you've listed above and the common functions in abilities (require, query, activate) and work with you from there.
@CameronFoss Really great to hear you're starting to work on this! I don't have a preference as I'm a very lousy coder myself and can't really tell the difference atm, sadly. The idea is to make the abilities easier to code and have them in better shape for upcoming features, such as bots and multiplayer.
@dreadknight has funded $50.00 to this issue.
- Submit pull request via IssueHunt to receive this reward.
- Want to contribute? Chip in to this issue via IssueHunt.
- Checkout the IssueHunt Issue Explorer to see more funded issues.
- Need help from developers? Add your repository on IssueHunt to raise funds.
Hey @DreadKnight , is this task still open?
@rianconley Yes, feel free to look into it :-) Also keep in mind that I'm a terrible coder, so that list is very rough. The need for this was pointed out to me over the years but I'm bad properly comprehending it compared to a more skilled coder, so if you sort of notice something lacking from there, it should probably be proposed and addressed sooner or later.
So u need to completely refactor src/ability.js right ?
@billyLumberjack Yeah, and stuff in src/abilities goes without saying :-)
@dreadknight has funded $10.00 to this issue.
- Submit pull request via IssueHunt to receive this reward.
- Want to contribute? Chip in to this issue via IssueHunt.
- Checkout the IssueHunt Issue Explorer to see more funded issues.
- Need help from developers? Add your repository on IssueHunt to raise funds.
If I recall right, CameronFoss was busy with other stuff so he's not really working on this. This issue is up for taking! He did started to poke at this in his branch over half an year ago though https://github.com/CameronFoss/AncientBeast/commit/fe89a2ce41726d8cbb942fa2468787b79b174710
@dreadknight has funded $20.00 to this issue.
- Submit pull request via IssueHunt to receive this reward.
- Want to contribute? Chip in to this issue via IssueHunt.
- Checkout the IssueHunt Issue Explorer to see more funded issues.
- Need help from developers? Add your repository on IssueHunt to raise funds.
I've trimmed down the list a bit by pushing the animation #1692 and sfx #1693 support to be added later on, at different stages.
Is this issue still up for grabs?
@vthirupathi Yes, though it's quite the revamp and it's targeted for the very next version that we'll focus development on right after we finish the current one, v0.4, so it would be best to help out with that and get some experience with how abilities work right now by coding some, as we're still to finish coding up two playable units. So check out v0.4 milestone - especially #575 and #473 issues. From my experience, it's always best that newer coders to the project tackle smaller issues first (gradually), rather than big revamps.
@dreadknight has cancelled funding for this issue.(Cancelled amount: $50.00) See it on IssueHunt
@dreadknight has cancelled funding for this issue.(Cancelled amount: $10.00) See it on IssueHunt
@dreadknight has cancelled funding for this issue.(Cancelled amount: $20.00) See it on IssueHunt