Spike Hero Prototype by Bizzarrus#2993
This code is over 6 months old. The code may have expired and might no longer function.
That's my first take on the workshop, so don't expect too much :P Also keep in mind that this is more of a gameplay prototype, so it's not meant to be pretty.
Base Hero: Zenyatta
Role: Utility/Damage (maybe a bit Support as well?)
- Passive: 20% of all incoming damage to you is reflected to it's source. (You still get full damage)
- 1. Ability (Shift): Link two other players of your own team together. Half of all incoming damage on of those two players receives is transfered to the other one (eg, if one would get 100 damage, with this ability both get 50 damage instead). To link two players, first cast the ability on the first one (a yellow shine will be around him, which is only visible to you), then again on the second one (both will have a green shine around them, which everybody sees). You can manually break the link by casting the ability a third time (doesn't matter what you're targeting), otherwise the link will break once you or one of the linked players dies or get out of reach. The cooldown will only start after the link has been broken. If you do not select a second player within a given time period, the selection of the first player will reset without starting the cooldown.
- 2. Ability (E): Cast on an other player of your team, linking him with you (white sparkles will appear around both of you, visible to everyone). The linked player will receive any damage you deal as healing, and vice versa, and he will share your passive. The ability lasts 15 seconds, but can be recast every 4 seconds. The link will be broken if you or your linked target dies, or gets out of range.
- Ultimate: While active, you receive only 30% of all incoming damage. At the same time, all enemies within a given range (indicated by a purple circle) will receive 50% of all damage you would have been taken. The ability will last for 20 seconds, with a 15 meter range.
- The original abilities are deactivated, so the original ability icons will be red, the ultimate charge will reset in the moment it becomes full, etc. This are all just visual side-effects of how I've overwritten the abilities, and don't affect actual gameplay. You can track the current ability state with text-boxes at the top edge of your screen (left is the 1. Ability, right the 2. Ability, and the ultimate is in the middle).
- Effects will have the same color and appearance for both teams. That's just to make it more easy to develop, I know that it's sub-optimal for real gameplay.
- Primary and secondary fire have not been changed (mainly because I ran out of player variables to use). Due to this, swapping from Zenyatta to another character that can more easily deal damage might be helpful to use the second ability.
I haven't really tested the balancing in any more serious scenario then shooting bots. However, every value that's connected to balancing is given as a global variable, set in the very first rule ("Initialization"), so feel free to experiment with the balancing on your own. Since we can't name the variables ourselves, here's a list what global variable represents what:
- A: Range of the first ability, in meters
- B: Cooldown of the first ability, in seconds
- C: Factor of how much damage should be transfered from the actual damaged target to the target he's linked to by the first ability. Should be in the range 0 to 1
- D: Cooldown of the second ability, in seconds
- E: Duration of the second ability if it is not recast, in seconds
- F: Range of the second ability, in meters
- G: Factor of how much of the dealt damage the other person should be healed by the second ability. Should not be negative
- H: Factor of how much damage should be reflected to it's source by the passive. Should be not negative
- I: Duration of the ultimate ability, in seconds
- J: Range of the ultimate ability, in meters
- K: Factor of how much damage you receive while the ultimate ability is active. Should be greater then zero.
- L: Factor of how much damage you received will be dealt to every enemy around you. This factor scales the absolute damage, not the reduced damage. Should not be negative.
Notes and Known Bugs:
Both the first and the second ability sometimes won't recognize a target that's too close to you. Also, both abilities can be cast through walls and any other obstacle (there's no line of sight check involved). I will probably fix this in the future.
And, currently the damage that the linked target (from the first ability) receives is given to the player who took the damage, not who caused it, in the stats. That's a workaround, if I come up with a better solution, I might fix it.
Some functionality uses player variables of characters other then Zenyatta himself. This works fine as long as there's only one Zenyatta in each team. Having two or more Zenyattas in the same team will probably cause bugs if they both target the same player with one of the abilities, tho.
I also planed that the first ability would not only transfer damage, but also healing, between the two linked players. However, I couldn't (yet) come up with a way to do this without introducing potentially more bugs, since there's currently no "On healing received" event one could react to.
Any feedback is welcomed, have a nice day :)
This post was originally hosted on workshop.elohell.gg, a site which is no longer online. If this was originally your post, you may click the button below to transfer this post to your Workshop.codes account or delete this post entirely.Archive Actions