Ideas for New Weapons

There’s a topic about new pets, ogres, heroes and worlds, so I think weapons deserve one too.
Please feel free to submit ideas and/or drawings here.
I will be posting some ideas soon, I just need to draw them. :grin:
:lion: :lion: :lion:

15 Likes

I’d like to see a few more glove options. I’ll let @Deadpool198 come up with the design, that is not my strength.

Teleporter Gloves - similar to Ritic’s blink, but available to all other heroes to even the field a bit, with no range limit. Possibly add the ability to teleport an item or friend with some limitations;
Specific Cooldown: 10 secs
Limitation: teleport friend that is less than 10% of hero’s health?

Dominator Gloves - when you decrease an enemies health down to 25% you can dominate them to gain control (idea stolen from Shadow of Mordor). They regain all their health and fight for you.
Specific Cooldown: 15 sec
Limitation: can’t dominate witches, warlocks or higher level enemies, but will stun them for 2 secs

14 Likes

Nice ideas!
I’m currently working on a battle axe design (for some reason there are no axes in the game, so I thought that space should be filled), after I’ve finished that i’ll do some designs for the gloves (they might be sketches, if I don’t have time for a full colour digital painting).
:lion: :lion: :lion:

9 Likes

Teleporter Gloves - similar to Ritic’s blink, but available to only the free non-subscriber /all other/ heroes to even the field a bit…
I will be glad to be able to remote control hidden fire-traps - ability that must be given also only to the ordinary heroes.

5 Likes

I’ve coded ~3 random abilities that have no weapons that comes with it.

-Darkwave
It blasts a dark globe around the user, knocking opponents back and temporarily blinding them for ~3 seconds. The user deals a base damage of 50(Minimum damage), and depending on how close the enemies are to the user, it deals extra damage.
-CastRage()
The user, in return for some damage taken, will have a increase in speed, damage, and KB for 7 seconds.
-Fly()
The user can fly to any point in the map. (Incomplete) (Boots with wings)


If anyone is willing to draw the weapons that matches the first two, please do so. :slight_smile:

11 Likes

Psychic Tower:
Cost: 300 gold
Health: 500
Power: Randomly changes an ogre to be on your side
Cooldown: 30 seconds

7 Likes

How about a Teleport Device

Cost: 5,000
Health: N/A
Power: Can be used to teleport to any part of the map
Limitation: Can only be used twice/Only works when you have 50 or above health
Cooldown: 30 seconds

:fox_face::fox_face::fox_face:
-@Luke10

5 Likes

Interesting, I’m beginning to see some similar ideas repeating. Apparently these are two limitations that a few of us have noticed.

  • teleport/fly across the map
  • switching an enemy to your side
4 Likes

Well, what about Ritic’s blink?

I’d be curious to find out how many people have actually bought Ritic. Even as a subscriber, you need to save a lot of gems to get him. This will help even the playing field for those who can’t afford Ritic.

2 Likes

But the cost is too high!

I’ve finished my Battle Axe:

123 Damage, 252 DPS
Price: 4,200 gems
powerUp(): every 8 sec damage is increased by 40% for 4 sec. (you must call the function hero.powerUp(), like the other powerUp weapons)

I saw a few thing missing in the warrior items list and decided to fill them:

  1. No axes. (No weapons other that swords, even though heroes like Gordon and Okar use other types)
  2. No high-level power-up weapons (sword of the temple guard and sword of the forgotten don’t have any abilities)
  3. No weapons to really challenge the high-level Subscriber weapons (Burl Staff and Gift of the Trees)

Also this could be released at the same time as a Celtic/Norse inspired hero because it has patterns on the axe blade which look Celtic/Norse.
Great ideas by the way! Now I’ve finished my drawing, I’ll do some for the other ideas.
:lion: :lion: :lion:

16 Likes

I agree with @brooksy125. Ritic’s price is too high. Why save up everything for a character that allows you to use one ability instead of buying that one ability for less money.

I love your drawing(s)!!! You should really consider going into art. I like it’s ablilities.

5 Likes

Also I had an idea that’s kinda crazy but I guess I’ll just wait n’ see what you guys think.
Mind Stone
Ability: Able to read every ogre’s mind and know what they are going to do before they do it for 10 seconds
Cost: 7,000 gems
Limitation: Only works with over 75% or more health/Can be used once
Cooldown: No cooldown since multiple usage is not possible

Now I’m going to explain what I mean by being able to read ogre’s minds:

Essentially the hero will be able to know every ogre’s move before that move is executed. I believe how this process should work is the CoCo system within the game should(after you finish your programming) Calculate what the ogres are going to do within the 10 seconds of wherever you have put your code. It tells you what the ogre’s will do and you can decide which attacks you want to counter-attack and how you want to counter-attack them.

What do you guys think…….

5 Likes

I think CoCo uses some AI code so you can’t really “predict” the enemy’s motion. Ogres are generally very dumb and usually only use the attack() method with some other ability. If you want the full AI code… Here it is:

AI code
Vector = require 'lib/world/vector'
{MAX_COOLDOWN} = require 'lib/world/systems/action'

class Combat extends System
  constructor: (world, config) ->
    super world, config
    @attackers = @addRegistry (thang) -> thang.attack and thang.exists
    @attackables = @addRegistry (thang) -> thang.isAttackable and thang.exists
    @corpses = @addRegistry (thang) -> thang.dead and thang.exists
    @throwers = @addRegistry (thang) -> thang.throw and thang.exists
    @teamDamage = {}

  update: ->
    # To optimize
    hash = 0
    for thang in @attackers
      continue if thang.dead
      continue unless ((thang.action is 'attack' or thang.intent is 'attack') or (thang.action is 'attack' and thang.intent is 'defend')) and targetPos = thang.getTargetPos()
      thang.rotation = Vector.subtract(targetPos, thang.pos).heading()  # Face target
      thang.hasRotated = true
      if thang.action is 'attack' and thang.canAttack() and thang.act()
        thang.performAttack thang.target ? thang.targetPos
        thang.unblock?()
        hash += @hashString(thang.id) * thang.rotation * @world.age
      else if thang.canAct()
        thang.updateAttack()

    for thang in @attackables.slice()  # @attackables might be modified during iteration
      if thang.health <= 0 and not thang.dead
        thang.die()
      hash += @hashString(thang.id) * thang.health * @world.age
      
    for thang in @throwers
      continue unless (thang.action is 'throw' or thang.intent is 'throw') and targetPos = thang.getTargetPos()
      if thang.distance(targetPos) - 0.5 <= thang.throwRange
        thang.setAction 'throw'
      else if thang.actions.move
        thang.setAction 'move'
      if thang.action is 'throw' and thang.canThrow() and thang.act()
        thang.performThrow thang.target
        hash += @hashString(thang.id) * thang.rotation * @world.age
    hash

  damageDealtForTeam: (team) ->
    @teamDamage[team]?.dealt ? 0
    
  damageTakenForTeam: (team) ->
    @teamDamage[team]?.taken ? 0

  defeatedByTeam: (team) ->
    @teamDamage[team]?.defeated ? 0

  defeatedOnTeam: (team) ->
    @teamDamage[team]?.defeatedOn ? 0

  addDamage: (fromTeam, toTeam, damage) ->
    if fromTeam
      @teamDamage[fromTeam] ?= dealt: 0, taken: 0, defeated: 0, defeatedOn: 0
      @teamDamage[fromTeam].dealt += damage if fromTeam isnt toTeam
    if toTeam
      @teamDamage[toTeam] ?= dealt: 0, taken: 0, defeated: 0, defeatedOn: 0
      @teamDamage[toTeam].taken += damage
    #console.log 'adding damage', damage, 'from', fromTeam, 'to', toTeam, 'and have', @teamDamage[fromTeam].dealt, 'dealt,', @teamDamage[toTeam].taken, 'taken'

  addDefeated: (byTeam, onTeam) ->
    if byTeam
      @teamDamage[byTeam] ?= dealt: 0, taken: 0, defeated: 0, defeatedOn: 0
      @teamDamage[byTeam].defeated++ if byTeam isnt onTeam
    if onTeam
      @teamDamage[onTeam] ?= dealt: 0, taken: 0, defeated: 0, defeatedOn: 0
      @teamDamage[onTeam].defeatedOn++
    #console.log 'adding defeated by', byTeam, 'on', onTeam, 'and have', @teamDamage[byTeam]?.defeated, 'defeated,', @teamDamage[onTeam]?.defeatedOn, 'defeatedOn'
5 Likes

The level 66 sword will have an ability. (IMO it’s way too OP)

5 Likes

I see. Is there anyway a version of this weapon could be made but still effective. It kinda would be ineffective to predict something that the ogre is gonna do. The “Mind Stone” could be used for matches against real players tho……

4 Likes

That will show the enemy player’s code, which is kinda unfair if you are fighting a first place player.

2 Likes

I understand your point. That’s why I think limiting it to 10 seconds would limit the amount of unfairness

Also remember that they also would have the ability to do this given that they would be able to buy this weapon and since they would be a first place player, it would be even more probable that they would be able to buy it because they would have more gems than other lower ranked players.

Not necessarily…
Maybe the system could be configured(correct me if I am wrong) just put a little message saying something like.


ExampleUsername is going to pick up gems

or

Example username is going to attack you with Example weapon

Just an idea…

4 Likes

That makes it pretty much useless though. :man_shrugging:

2 Likes