New Level: Attack Wisely!


#1

Hi there.

This is the first time I have created a level. Please give it a try and let me know what you think. This level is made for players who have just finished first few levels in the dungeon campaign (Maybe at least level 6). However, if you want to complete the bonus goal also, then probably you will need to be really strong.

Here is the link to the level: http://codecombat.com/play/level/attack-wisely

Thanks.


#2

Hi laituan245 and welcome to the forum,

Nice work you did there, especially for your first level.

I beat it by first iterating over all enemies and attacking everyone that is not a brawler and then collecting all items, followed by a direct move to the goal.

For this you have to know that I have the See-through-glasses, with which I can see through walls, so I might miss a few movement-commands.


Note: While the list of improvements I have is long, it does not mean the level is bad. Most improvements are related to the


This would be the first time players see Ogre-scouts, and they are still extremly weak (here you can see which items they have). They’ll die in three strikes, doing almost no damage to the scouts. You might want to replace them with munchkins, which are a lot weaker.
And then the brawlers. A new player would be dead before he knows what happened. I would replace them with Scouts, as those pose a threat till End-Dungeon, but are then beatable. I played every free level and some subscriber-levels avaible, and I wasn’t able to beat that brawler with a simple brute-force-tactic. Now imagine a newcomer. Also if (for difficulty reasons) you have to wait till Desert before even thinking about returning to this level, they will most likely already forgotten about the brawlers in this level. At End-Dungeon, they most likely will try to beat the scouts again.

Also the players have never seen a fire-trap before. They can’t know what it is, until they step on it. It can be frustrating (for me) to have to try out a new mechanic in a game, which then results in a loss for me (even a non-permanent one). I guess you imagined they can be used against the enemies, but players at this level most likely still struggle with the basic concepts, and may simply not be able to employ such an advanced tactic.

Last but not least you should take them a little by the hand and place more x-marks to tell them where they can go. Maybe one before and behind every door and near the gems another one. You should then organize your comments so they do it step by step:

  1. Move before one of the doors.
  2. Find and attack the nearest enemy.
  3. Move inside the room
  4. Find and attack the nearest enemy.

… You get the point.

Which reminds me of another thing. You might want to reduce the HP of the doors so they break on first strike, and give them names. It is counter-intuitive to see the doors as enemies. Better this.attack('door 1').


#3

Instead of making it that much easier, you might just want to raise the target player level a bit, too. The player will not really know about breaking down doors until at least Dread Door, nor attacking nearby enemies until Master of Names. I would target it towards right after the player has done Closing the Distance / Tactical Strike. You could also introduce the fire-trap if you were willing to demonstrate it being used–maybe the level starts with a munchkin charging at you but getting blown up by a trap.


#4

Nice level.

JFBM’s comments are good. (edit: sneaky :smile: nick snuck in good comments too)

Keep the fire-bombs (for creative use) but, put in a comment to remind/tell people to not step on them . . . themselves. :wink:

My solution (below), I saw the iterable possibilities of the cells (I liked that from a teaching perspective). I don’t know where (what level) that teaching should go in the scheme of things but whichever dungeon/forest/desert, keep the walls but change the floor and there is no reason the level can’t go anywhere (a floor that looks like rock/dirt/sand respectively, thereby fitting the region scheme).

# explore cells
##while unexplored cells
##    goto door
##    attack door
##    enter cell
##    kill occupant
##    leave cell

# get gems (looks a lot like the cells.)
## move to gem alcove
## fight enemies
## get gems
## leave gem alcove

# escape
## move to exit (avoid "Go Boom")

#5

To expand on Vlevo’s comment about the bombs, remind people to ‘avoid’ the fire-bombs, rather than ‘don’t step on these’. Because ya’ll know that if someone says, “Don’t do this”… you want to do it. Admit it. :wink:

“Avoid” is better language than “don’t” when giving instructions. It’s clearer :slight_smile:


#6

If the player steps on the fire-trap just to see what will happen, I think this is good; in playtesting I often see players laugh when they get blown up, because it’s so ridiculous how far you fly.


#7

Hey guys. Thank you all for the great comments. I have just made some changes to the level.

Based on @nick suggestion, I decided to make the level just a little bit easier and target it towards right after the player has done “Closing the Distance” (or after “The Final Kithmaze”, when players get used to navigate around using many moveUp, moveLeft, … commands). I also still keep the fire-traps because they can make the level more challenging but still “solvable” by using just the simple moveLeft, moveRight, moveDown, moveUp commands. I used the sample code to let the user know that they can get blown up if they step on a fire-trap.

I replaced the brawlers with Orge-scouts, replaced the old Orge-scouts with munchkins, and made some changes to the doors just like what @J_F_B_M said.

Finally, I put some comments in the sample code to guide the users step-by-step what they should do. However, I am not sure if that is enough.

Looking forward to more feedback.


#8

a moveDirection level, without dots on the floor interesting…

You end up bumping against the walls, because “attack” doesn’t return you to your spot (like it does in other moveDirection levels)

becomes very hard with moveDirection boots.


#9

This might be solvable…

@laituan245, I’ll try a (my first) patch to solve this. It would be hard to describe it to you because I never did it myself. Experiments all over the place.


#10

Add snap points in the Movement System, and probably also movement stone Thangs, 12m apart from where the hero starts, and the simple movement will work a lot better.


#11

I have two good, a bad, and another good message.

The (first) good message:
I fixed your “Kill 3 ogres” goal to actually require three ogres. You had a 4 standing there.

The (second) good message:
moveDirection does now properly work, though you might want to play with the distances a bit. Instead of 12, the distance is now mostly 10. As your doors were a bit oddly spaced, I averaged the distance to 10, with sometimes only 9 distance. The simple move now search 10m in the given direction, and then snaps to the next point in a radius of 2.5m. You can see the concrete settings as well as the wapoints under Systems->Movement.

The bad message:
I got some advanced rights just yesterday, and apparently one was the right to instantly save instead of submitting a patch which you would have to accept. I’m sorry for that.

The (third) good message:
There is a built-in revert-function, if you don’t like it. I had to move nearly every non-environment Thang to snap them to the grid, so this is at least a bit likely.


As a bonus, here the code which wins the level (currently):

// Attacking Door
this.moveUp();
this.moveRight();
this.moveRight();
this.moveUp();
this.attack("Door B");

// Attacking Munchkin
this.moveUp();
this.moveUp();
enemy = this.findNearestEnemy();
this.attack(enemy);
this.attack(enemy);

// Attacking other munchkins
this.moveDown();
this.moveDown();
this.moveRight();
this.moveRight();
this.moveRight();
this.moveRight();
enemy = this.findNearestEnemy();
this.attack(enemy);
this.attack(enemy);
enemy = this.findNearestEnemy();
this.attack(enemy);
this.attack(enemy);

// Collecting Gems
this.moveUp();
this.moveUp();
this.moveUp();
this.moveRight();

// Move to Exit
this.moveDown();
this.moveDown();
this.moveDown();
this.moveDown();
this.moveLeft();
this.moveLeft();
this.moveLeft();
this.moveDown();
this.moveLeft();
this.moveLeft();
this.moveDown();

#12

@J_F_B_M: Thank you very much for the patches. Now the level works quite well in my opinion. Using snap points is a really cool trick that I didn’t know about. I am new to the level editor, and there are a lot of things I need to learn about it. Also thanks for your solution in JavaScript.

In addition, I can confirm that a player that has done “Closing The Distance” can beat this level. I used the character Anya equipped with Simple Sword, Wooden Shield, Crude Glasses and Simple Boots. Here is my solution in Python.

# Avoid all the fire-traps
# If you step on a fire-trap, you will get blown up
self.moveUp();
self.moveRight();


# Hint 1: The bigger the enemies, the stronger
# Hint 2: You don't need to kill all the orges if you feel that you are not strong enough


# Move near to a door
self.moveRight()
self.moveUp()

# Break open the door by using command self.attack('DoorName')
self.attack('Door B')

# Go inside the room
self.moveUp()
self.moveUp()

# Attack the enemy inside the room (How to attack a no-named enemy ?)
enemy1 = self.findNearestEnemy()
self.attack(enemy1)
self.attack(enemy1)

# Move to gem alcove
self.moveDown()
self.moveDown()
self.moveRight()
self.moveRight()
self.moveRight()
self.moveRight()


# Fight enemies
enemy2 = self.findNearestEnemy()
self.attack(enemy2)
self.attack(enemy2)

enemy3 = self.findNearestEnemy()
self.attack(enemy3)
self.attack(enemy3)

# Get gems
self.moveUp()
self.moveUp()
self.moveUp()
self.moveRight()


# Now let's escape (move to the x-mark)
# Again, avoid all the fire-traps
self.moveLeft()
self.moveDown()
self.moveDown()
self.moveDown()
self.moveLeft()
self.moveLeft()
self.moveLeft()
self.moveLeft()
self.moveDown()
self.moveDown()

#13

Jup, used the same gear (though I think I looked at the equipment after “The Final Kithmaze”).

I just deleted all comments because they used so much space.


By the way, the movement stones are in no way required. They just provide a visual feedback to the player where the snapping points are, but the level would work without them.

Last, but not least: What happened to those fire-traps? 10000 damage? Are those Antimatter-bombs or what?


#14

When he says “you will get blown up” he means “you WILL get blown up!!”


#15

@J_F_B_M @Vlevo: Oh yeah. I didn’t really know why I made the damage that much. I have just changed the attack damage back to 150 lol.


#17

Hey everyone,

I’m brand new to coding. I have completed 31 out of 35 levels within Kithgard Dungeon. I am not sure what I am doing wrong in the “Attack Wisely” level. It doesn’t seem like I am attacking the Orge. I’ve checked and tried different code varations. Any help would be great.

Avoid all the fire-traps

If you step on a fire-trap, you will get blown up

enemy1 = self.findNearestEnemy()

self.moveUp(2);
self.attack (“Door A”)
self.moveUp(2)
self.attack(enemy1)
self.shield()
self.attack(enemy1)


#18

Nevermind. I figured it out. my self.findNearestEnemy() was in the wrong place


#19

In the Trials I was attempting to beat with firetraps but I stepped on own fire-trap but had so much armor I survived and it was ridiculos


#20

You should edit it and put a 3 backticks around your code land it will show up like this:

say("use backticks to format properly");

to do it use the thing below the Esc button w
#without
using SHIFT