Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

Almost there! I'm on level 20, with the boss. I added a wall so I could get at the phone, but the exit requires the Algorithm! To get it, I must destroy the boss... But if I collide with the boss, it's the player who dies, not the boss. What can I do?

share|improve this question
1  
Wow, everyone else fought the boss. I didn't figure out how destroying the boss even works; I just overrode hasItem to pretend I had the Algorithm. Pacifist run! –  user2357112 Apr 10 at 5:03
    
There is a check to make sure the boss is defeated when you have the algorithm –  Canadian Luke Apr 10 at 12:01
    
Doesn't matter. It doesn't actually create another theAlgorithm object; it just dummies out the check for whether we have it. –  user2357112 Apr 10 at 12:02

6 Answers 6

up vote 5 down vote accepted

You have 1 block that you can place. Put it somewhere in the middle so you can hide, wait for the boss to move to the other side, and then you can get the phone.

enter image description here

After getting the phone, you need a way to attack the boss. Call me old-fashioned, but I prefer to fight head-on.

enter image description here

Here is the code

map.placeObject(35, 22, 'block');
map.defineObject('missile', {
        'type': 'dynamic',
        'symbol': '|',
        'color': 'blue',
        'interval': 100,
        'projectile': true,
        'behavior': function (me) {
            me.move('up');
        }
    });
map.getPlayer().setPhoneCallback(function(){
var hero=map.getPlayer();
map.placeObject(hero.getX(), hero.getY()-1, 'missile');
});

You could change me.move('up'); to me.move('left'); if you do not want to fight fair.

share|improve this answer
    
Apparently, I shouldn't fire too much... I got killed by my own missile the first time! –  Canadian Luke Apr 9 at 22:41
    
@CanadianLuke Yea, don't move up while you are shooting. On good news, your missiles will override the boss bullets. –  Batophobia Apr 9 at 22:42
3  
You can also just stop the boss from firing with Math.random = function() { return 0.4; } –  Jonathan Campbell Apr 10 at 2:28
2  
@JonathanCampbell Guaranteed to be random. –  Batophobia Apr 10 at 2:50
1  
@SysDragon Great minds think alike –  Batophobia Apr 11 at 21:34

Math.random() isn't really random anyway, right... ? :)

Math.random = function() { return 555 };  // that removes bullets 
map.getPlayer().hasItem = function(a) { return true; }; // that makes game think you have everything
share|improve this answer
1  
This could probably be used for just about every level. –  Batophobia Apr 14 at 15:20

Bah to other answers using blocks to hide! We don't need to hide! Take that boss on!

Check your API. There's a function you can use to override up, down, left, or right to do something else. Since you don't actually need to use left, rejigger it to blast the snot out of the boss with an overwhelming show of force.

Here's my anti-bullet barrage, launched by pressing left:

map.defineObject('antiBullet', {
    'type': 'dynamic',
    'symbol': '*',
    'color': 'blue',
    'interval': 100,
    'projectile': true,
    'behavior': function (me) {
        me.move('up');
    }
});

map.overrideKey('left', function()
{    
  for (var i = 10 ; i < 20 ; ++i)
    for (var j = 0 ; j < map.getWidth() ; ++j)
      map.placeObject(j, i, 'antiBullet');
});
share|improve this answer

I found carpet bombing a good technique:

map.placeObject(25, map.getHeight() - 4, 'block');

var player = map.getPlayer();
player.setPhoneCallback(function(){
    for(var i = 0; i<map.getWidth(); i++)
    {
        map.placeObject(i,4, 'bullet');

    }
});

The first line gives you a hiding point. The second creates a lot of bullets that will then instakill all the bosses (just make sure you are still in cover).

Edit: It seems that my original two rows of bullets on adjacent rows didn't always work (sometimes did, sometimes didn't). I think that sometimes the bullets just killed each other...

share|improve this answer

There is a way to kill a bos without using phone, adding block or doing any risky tricks.

map.overrideKey('left', function() {
    var me = map.getPlayer();
    map.placeObject(me.getX(), me.getY() + 1, 'bullet');
    var ob = map.getDynamicObjects();
    for (var i = 0; i < ob.length; ++i) {
        if (ob[i].getType() == 'boss') {
            try {
                ob[i].move('down');
            } catch (_) {}
        }
    }
});

Now you are not possible to go left, but you can move boss and shoot a bullet using left arrow on your keyboard. What do you need to do now:

  • Wait until boss is on the side of the string.
  • Press left arrow until all parts of the boss moved down.
  • Now there is a free row above the boss. Go here (remember that you will not be able to go left
  • Kill a boss by pressing left arrow
  • Go to the exit
share|improve this answer
    
Having to manoeuvre above the boss sounds like a risky trick to me! Nice trick on messing with their movement like that though. –  Chris Apr 16 at 21:34

I just did it in two lines :).

map.getPlayer().hasItem = function(){return true};
map.getPlayer().killedBy = function(){};

Now you cant be killed and you have everything.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.