- Joined
- Oct 2, 2011
- Messages
- 2,490
![]() RHEIKO WINS! Rheiko +7 Reputation Daffa the Mage -7 reputation |
FinalScore = (30*PollVotes/POLL_VOTES_TOTAL) + (70*JudgeScore/JUDGE_SCORE_TOTAL)
Poll Score:
Daffa the Mage - 0 (0 votes, 0%)
Rheiko - 30 (9 votes, 100%)
Judge Score:
Daffa the Mage - 58.6
Rheiko - 57.3
Total:
Daffa the Mage - 58.6
Rheiko - 87.3
Judging by KILLCIDE
- Code - 16.50 / 20.00
- Code Interface (4.00 / 5.00)
- Configurability (3.00)
- Documentation (1.00)
- -1.0 -> Config trigger had clear and concise documentation. However, the triggers that ran the core of the spell had zero documentation. I understand that the spell concept was not complex, resulting in straight forward code. However, documentation is to help everyone understand your thinking process / logic a lot easier for everyone. At the very least, you could have left comments about your If/Then/Else blocks.
- Code Performance (12.50 / 15.00)
- Efficiency (8.50)
- -0.25 -> Judge_PercentDamage[] / 100 is a constant which could have been calculated on map init instead of being recalculated for every affected unit
- -0.50 -> (Owner of Judge_Source) should have been stored in a variable instead of calling the function every iteration in the unit group loop
- -0.25 -> Judge_DPS[] x Judge_LOOPTIME is a constant which could have been calculated on map init instead of being recalculated for every affected unit
- -0.50 -> I do not understand the purpose of the first If/Then/Else block in your loop that adds Judge_EffectPos. Why could this not have been done on cast? You also destroy an effect that is possibly never created (this would only work for units that were already affected by another instance, but this type of check should still be done on cast)
- Leaks (3.00)
- Errors (1.00)
- -0.50 -> Units are not properly filtered by the spell. As of right now, your ability can hit magic immune units, dead units, and structures
- -0.50 -> Set Life is not a proper way to deal damage to enemy units as it does not account for armor types and will not register any DDS
- Efficiency (8.50)
- Other Suggestions
- There is no need to initialize non-array unit groups as they are already initialized on map init by default
- Each SFX should have its own attachment point as some effects do not always look good on overhead, origin, etc.
- On cast, you store the Key of (Picked unit) instead of Judge_Victim
- Instead of checking if the loop trigger is already on, it would be faster to use integers (Judge_COUNT >= 1)
- On loop, you store the Key of (Picked unit) instead of Judge_Victim
- Turn off (This trigger) -> Turn off Judge Loop
- Code Interface (4.00 / 5.00)
- Concept - 8.00/10.00
- I am personally not a fan of the concept because of its simplicity. The only feature of the spell that stands out is the inability for the spell to kill enemy units. However, the simplicity is also an advantage as it will easily find its place in any melee or custom game.
- Visuals - 9.00/10.00
- Tooltip described mechanics of the spell in a concise manner. Chosen effects fit the spell concept perfectly. However, it would have been better to see a different effect for enemy units.
- Total - 33.50/40.00
- Code - 14.75 / 20.00
- Code Interface (4.25 / 5.00)
- Configurability (2.25)
- -0.25 -> SFX should have a configurable attachment point
- -0.25 -> Loop timer should have been configurable
- -0.25 -> Attack type and damage type should have been configurable
- Documentation (2.00)
- Configurability (2.25)
- Code Performance (10.50 / 15.00)
- Efficiency (7.00)
- -0.50 -> You should preload effects / unit data. There is an extremely noticeable stutter when you first cast the spell
- -0.25 -> 360 / FFO_Numbers[] is a constant which could have been calculated on map init instead of being recalculated for every newly created dummy unit
- -0.50 -> (On cast, (Owner of FFO_Caster[]) should have been stored into a variable instead of calling the function per loop iteration
- -0.50 -> The distance at which the dummies spawn and travel to the caster is constant. With that in mind, instead of calculating the distance between every dummy and the caster, just keep track of how much distance it moved
- -0.25 -> FFO_Damage[] x 0.03 is a constant which could have been calculated on map init instead of being recalculated everytime you need to deal damage
- -0.50 -> Instead of creating a dummy caster for every unit that is hit by the spell, create one on map init and just move that one around
- -0.50 -> When you create the dummy caster, store it into a variable and reference that instead of calling the (Last created unit) function 3 times
- Leaks (2.00)
- -1.00 -> Special effect leak on cast when you create the dummy units
- Errors (1.50)
- -0.50 -> Ability can damage magic immune units
- Efficiency (7.00)
- Other Suggestions
- The speed configurable should note if the value represents per loop iteration or over a second
- You stored Slow (Ice) as a configurable on map init, but you never used it and still referenced the ability directly
- You use RemoveLocation(udg_FFO_Loc[1]) in Stage 1, but I do not see you storing or using Loc[1] anywhere in that stage
- It is not necessary to null the global variables; especially when you are using dynamic indexing
- Turn off (This trigger) ->Turn off FFO Loop
- Code Interface (4.25 / 5.00)
- Concept - 8.00/10.00
- The concept at first looks interesting, but it is rather simple. I would have added another mechanic where getting hit twice by the ability will freeze you. The slow was a nice addition as it will give units or heroes that use this ability a nice utility.
- Visuals - 10.00/10.00
- Tooltip described mechanics of the spell in a concise manner. Chosen effects fit the spell concept perfectly. Spamming the spell did not cause any noticeable drops in FPS, but my computer is rather beefy, so that might be something to consider.
- Total - 32.75/40.00