# Ranged Heroes Issues

**URL:** <https://discourse.codecombat.com/t/ranged-heroes-issues/2138>\
**Category:** Uncategorized\
**Created:** [December 31, 2014, 1:54am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138 "2014-12-31T01:54:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [December 31, 2014, 1:54am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/1 "2014-12-31T01:54:25Z")

</div>

I’ve been trying to figure out a combination of gear / skills to make these heroes actually viable and I’m not having any luck. (Senick Steelclaw and Amara Arrowhead)

Unfortunately, they have no skills that allow them to keep the enemy away or control them.

Suggestions:

- Snare Skill (either slows the enemy or roots them in place. for trapper could be called trap)
- Knockback (Perhaps a skill on a gun or crossbow that knocks the enemy back with a blast)
- Poison (Special skill on a crossbow, poisoned arrows that does damage over time and possible slows the enemy)

They need some better weapon skills for sure, looks like the only ones available now are ones that do multi shots. Unfortunately that doesn’t help much if you have no way to keep away from the opposing enemy.

On another note, bombs are kind of useless in most cases right now, when used against a caster with haste they rarely hit their mark. In my opinion they need to be changed from position based to always hitting the enemy they are thrown at). Or if they are already like that, they need to have their damage significantly increased.

---

<div class="post-metadata">

**Author:** ![Feinty](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/feinty/32/1869_2.png) [@Feinty](https://discourse.codecombat.com/u/Feinty)\
**Post date:** [December 31, 2014, 4:40am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/2 "2014-12-31T04:40:41Z")

</div>

I agree I only use the ranged characters for certain missions and I would like to use them for all of the missions so if you could can you do something like the post above is suggesting

---

<div class="post-metadata">

**Author:** ![juan](https://avatars.discourse-cdn.com/v4/letter/j/a698b9/32.png) [@juan](https://discourse.codecombat.com/u/juan)\
**Post date:** [December 31, 2014, 5:12am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/3 "2014-12-31T05:12:47Z")

</div>

Hello Sotonin,

If I understand the idea … is to suggest skills or weapons to improve this type of heroes.

Maybe my opinion is not appropriate, because I used mostly heroes short range (melee)

Anyway, if I understand the problem well, I leave here my suggestions that could help the heroes of long range:

**_Shooting Field_** : This type of ability is activated when a shot reaches a specific position (does not have to be an enemy or target, the position can be fixed or using flags), reaching the impact position can activate different effects that reach a radio range = 5 and last few seconds:

- **Oil** : as they perform a movement, an additional move (random) is added in any direction. The amount of additional movement (1, 2, 5 steps, etc.) is random too.

- **Glue** : before making a move, this is reduced (instead of stepping per second, make a step every two seconds), even sometimes at random, can not move.

- **Fire** : just as they pass through the area of effect, gradually lose life. (optional: If the area of this intersects with an area of effect “Oil”, the damage is much greater in the intersection. If the area of this effect intersects with an area of “glue” cancels both effects in the intersected area.)

- **Mine** : the range and duration of this effect is null. Where hits the attack creates a mine, invisible to the enemy.

- **_Flash_** : duration 1 second. All units (enemy or ally) in the area of effect, lose their target (if walking to reach an enemy and attack, will follow the direction of movement, but may stop before or after (randomly) to reach the final position. If you reach a position and have no enemy or ally who to attack at close range, they will do nothing. otherwise, they made the attack who were scheduled to make this target (regardless of whether it is ally or enemy). If the affected is stopped, no effect, but it is a unit of range and is attacking, the attack will be made at random (if the impact reaches a target, will affect you, no matter whether it is ally or enemy)

**_Special Shots_** : they need time to load:

- **Chain** : when the attack hits a enemy, the shot is redirected. The orientation and direction, randomly.But if it hits a structure or wall, is reflected. The damage is reduced with each impact

- **Powerful impact** : the projectile velocity is slower than usual, and the damage done is greater.

- **Quick impact** : the projectile velocity is higher, but damage is reduced.

- **Teletransport** : if the impact does not reach the enemy, a second later, the positions of the shot and the unit is exchanged.

- **Paralysis** : an enemy hit with this impact reduces their movement speed

**_Melee_** : are activated in combat at close range, in any particular situation, attack, or use of flags. need time to recharge or are limited:

- **Dodge, Flip** : the unit performs a movement (random or defined) in any direction (left, right, diagonal, even up) quickly.

- **Parry** : If you are attacked by a melee, blocks the attack. The  
attacker and blocker are randomly displaced multiple steps in the  
same direction but different orientation.

- **Decoy replacement** : Before you get hit, you are transported to a  
random position within a range of 5 steps, and your initial position,  
appears a Decoy who becomes the target of attacks .

- **Assasin** : you become invisible for a few seconds or until attack.

**_Heavy Artillery_** : I guess for heavy weapons

- **Large Ammo** : whatever shot intersect the trajectory of your shot is  
canceled.

- **Explosion** : to impact the shot at the position, an explosion causes  
damage to nearby players (enemies or allies), raising them in the  
air.

**… etc**

I think some are complicated to implement … but others may come good, how the ability to evade or parry.

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [December 31, 2014, 5:16am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/4 "2014-12-31T05:16:37Z")

</div>

That’s an impressive list of thought out features. Anything would work for me as long as they get some help.

---

<div class="post-metadata">

**Author:** ![juan](https://avatars.discourse-cdn.com/v4/letter/j/a698b9/32.png) [@juan](https://discourse.codecombat.com/u/juan)\
**Post date:** [December 31, 2014, 5:18am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/5 "2014-12-31T05:18:36Z")

</div>

> [@sotonin](#):
>
> That’s an impressive list of thought out features. Anything would work for me as long as they get some help.

Could we use an editor?

---

<div class="post-metadata">

**Author:** ![Feinty](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/feinty/32/1869_2.png) [@Feinty](https://discourse.codecombat.com/u/Feinty)\
**Post date:** [December 31, 2014, 5:23am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/6 "2014-12-31T05:23:45Z")

</div>

Just saying you would need to restrict these ability to certain weapons or charges(because you could like throw a ball and it explodes into oil or something and then shoot a fire arrow).  
The reason I say this is because a person might get these to early on breeze past levels.  
Dont get me wrong I love the idea

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [December 31, 2014, 5:25am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/7 "2014-12-31T05:25:57Z")

</div>

Well it’s easy enough to control the combos because the armor is divided up into the heavy armor / medium armor / cloth armor categories already

---

<div class="post-metadata">

**Author:** ![Feinty](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/feinty/32/1869_2.png) [@Feinty](https://discourse.codecombat.com/u/Feinty)\
**Post date:** [December 31, 2014, 6:17pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/8 "2014-12-31T18:17:14Z")

</div>

Well yes but the ranged chars only use light armor

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [December 31, 2014, 7:30pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/9 "2014-12-31T19:30:15Z")

</div>

> [@Feinty](#):
>
> Well yes but the ranged chars only use light armor

Not true at all. they both use chainmail. Casters use light armor, melee use heavy and archer / rogues use chainmail. This post was about the archers, not casters. Casters are the only class right now that actually HAS skills / spells to control the opponent.

---

<div class="post-metadata">

**Author:** ![nick](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/nick/32/784_2.png) [@nick](https://discourse.codecombat.com/u/nick)\
**Post date:** [December 31, 2014, 7:55pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/10 "2014-12-31T19:55:21Z")

</div>

Wow, a lot of these are great ideas! I’d certainly like to implement some of them, but I’m pretty busy as you might have noticed. 😉

These kinds of things are pretty fun to do. Is anyone interested in building extra types of special attacks using our level editor and adding custom Components for them?

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [December 31, 2014, 7:59pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/11 "2014-12-31T19:59:11Z")

</div>

It sounds fun, i’ve not done anything like that for codecombat yet. Is there a guide to follow?

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [December 31, 2014, 9:33pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/12 "2014-12-31T21:33:27Z")

</div>

I found the thang editor. my main question right now is… how do you add / edit existing spells. (Root, Slow). I’d like to make very similar spells but named different for rangers.

---

<div class="post-metadata">

**Author:** ![nick](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/nick/32/784_2.png) [@nick](https://discourse.codecombat.com/u/nick)\
**Post date:** [December 31, 2014, 10:37pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/13 "2014-12-31T22:37:53Z")

</div>

Probably what would make sense is for me to create an empty Component and then for you to work on it inside a test level using the level editor, eventually submitting a patch I can accept that implements the desired special attack and then I can add it to an appropriate item. (Only admins have the permissions to create new Components.) Which one would you like to start with, and can you give me as many details as possible about what the APIs are like, how often it can be used, how strong it is, etc.?

---

<div class="post-metadata">

**Author:** ![Feinty](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/feinty/32/1869_2.png) [@Feinty](https://discourse.codecombat.com/u/Feinty)\
**Post date:** [January 1, 2015, 7:22pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/14 "2015-01-01T19:22:10Z")

</div>

I stand corrected I agree about the part were only casters have spells to control the opponent

---

<div class="post-metadata">

**Author:** ![Feinty](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/feinty/32/1869_2.png) [@Feinty](https://discourse.codecombat.com/u/Feinty)\
**Post date:** [January 1, 2015, 7:23pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/15 "2015-01-01T19:23:26Z")

</div>

I can do the coding for the animations but I do not know how to use the editor

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [January 1, 2015, 8:48pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/16 "2015-01-01T20:48:30Z")

</div>

Hey nick. what is the formula for item level using the “tier” property in the thang editor.

for instance. Winged Boots are tier 14.51 and that equates to level 66.

---

<div class="post-metadata">

**Author:** ![nick](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/nick/32/784_2.png) [@nick](https://discourse.codecombat.com/u/nick)\
**Post date:** [January 1, 2015, 10:31pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/17 "2015-01-01T22:31:39Z")

</div>

Winged Boots will be tier 4.51, but their “fly” method doesn’t work, so I set it to 14.51 (unavailable) for now until I can make those methods. Similarly for other disabled-out-of-sight items that aren’t ready yet.

Formula is here: [https://github.com/codecombat/codecombat/blob/master/app/models/ThangType.coffee#L452-L458](https://github.com/codecombat/codecombat/blob/master/app/models/ThangType.coffee#L452-L458)

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [January 2, 2015, 3:23am UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/18 "2015-01-02T03:23:58Z")

</div>

Perfect explanation. thanks!

---

<div class="post-metadata">

**Author:** ![sotonin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/sotonin/32/24089_2.png) [@sotonin](https://discourse.codecombat.com/u/sotonin)\
**Post date:** [January 2, 2015, 4:59pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/19 "2015-01-02T16:59:53Z")

</div>

OK. after looking through that link a little closer. I’m still a little unclear how to translate it into a player level.

```python
playerTier = itemTier / 2.5
playerLevel = me.constructor.levelForTier playerTier

```

so given 4.51 / 2.5 = 1.804 which is the playerTier what would the required player level be for this?

i’m not sure what me.constructor.levelForTier is or where it’s found. I tried searching github for it and it only came back with the stuff in that same file.

---

<div class="post-metadata">

**Author:** ![nick](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/nick/32/784_2.png) [@nick](https://discourse.codecombat.com/u/nick)\
**Post date:** [January 2, 2015, 7:02pm UTC](https://discourse.codecombat.com/t/ranged-heroes-issues/2138/20 "2015-01-02T19:02:00Z")

</div>

Don’t worry, I would assign the tier levels for any items we’d create; I have a whole secret spreadsheet which can help balance things.

[Next page](https://discourse.codecombat.com/t/ranged-heroes-issues/2138.md?page=2)
