Alpine rally help!

Since I don’t have the dark wizard, this level is nearly impossible. Tharin doesn’t have the mana-blast to help.

Well, it is a subscriber level. So needing a subscriber, hero unit isn’t a problem issue.

It even specifically states this in the email.

[quote]
Subscriber bonus level. Pender Spellbane is trapped in a valley full of enraged yeti, and some ogre scouts intend to seal her doom. Use all of her skills to escape! (Pender Spellbane is probably the only hero who can win this level.)
[/quote] (emphasis added by yours truly.)

2 Likes

Vlevo is right you need subscription pass. You have to buy it unless you hack it or some sort.

I’ve tried it with the Samurai hero class, hoping that his warcry() would speed him up enough, but no success (maybe if I have the top armor and the fastest shoes… but might be cheaper to just get the correct hero). I made it to x:83 with troops in sight.

Is this level possible with the second fastest hero: Nalfar Cryptor??

Try it. You’ll have some enemies blocking your way, but I can immediately think of some spells that can you get past/through those groups without mana-blast. You’re higher health will definitely help (relative to Pender).


I did it, though my solution is neither exceptionally beautiful nor leaderbord-worthy. I sacrificed friends, swapped with foes (Elemental Book V), used Shockwave (also Elemental V), used Haste (also Elemental V), used Invisibility (Ring), the Speed Ring, used Flame-armor (not worth the casting time) and still only barely survived. Also with over 20 seconds I probably have the longest recorded time. I for some reason stop for 3-4 seconds at the end (I haven’t figured it out), but I still make it so no problem for me.

2 Likes

Will be unlocking Nalfar and trying the same this week. thanks

Hi,
New to Spellbane.
Not sure why the haste spell is not being casted in the following simple code:

[details=Code, the { self.cast(“haste”, self) } line is not executing]```
loop:
self.moveXY(self.pos.x + 1, self.pos.y)
if self.isReady(“invisibility”):
self.cast(“invisibility”, self)
if self.isReady(“mana-blast”) and self.pos.x == 108:
self.manaBlast()
if self.canCast(“haste”, self):
self.cast(“haste”, self)
if self.isReady(“reset-cooldown”):
self.resetCooldown(“haste”)


Thanks in advance.

Use hero.move() instead of hero.moveXY().

1 Like

@juraj_pechac - nopes, move() is not helping in lieu of moveXY
The following simple code is still failing, I think Pender is unable to cast the haste onto self. How to do it?

Pender not running code:

while True:
    self.moveXY(self.pos.x + 1, 34)
    if hero.isReady("haste"):
        hero.cast("haste", self)
    if hero.isReady("reset-cooldown"):
        hero.resetCooldown("haste")
  • Haste is granted by Elemental Codex.
  • While True is not necessary.
  • Use hero.resetCooldown(“haste”) after 5s.

First 3 lines:

hero.cast("haste", hero)
hero.moveXY(100, 37)     
hero.manaBlast()
1 Like

Thanks, I completed the level finally.

the code is still failing, could you please give me the right code?

Sorry, here in the discourse we cant give you the code. But we can help you. Post your code and then we can help.
:smile:
posy it by putting 3 backticks lke this ->

this is my code

This is my code :
while(true) {
hero.moveXY(hero.pos.x + 1, hero.pos.y);
if (hero.canCast(“invisibility”)) {
hero.cast(“invisibility”, hero);
}
if (hero.canCast(“haste”)) {
hero.cast(“haste”, hero);
}
var enemies = hero.findEnemies();
var enemyIndex = 0;
while (enemyIndex < enemies.length) {
var enemy = enemies[enemyIndex];
if (enemy.type == “scout” && hero.distanceTo(enemy) < 8) {
hero.manaBlast();
}
enemyIndex++;
}
}Preformatted text

Please learn to post your code properly. It’s really easy and only requires a very small amount of effort.

To post your code from the game, use the </> button or it won’t format properly. When you click the </> button, the following will appear:

Please paste ALL of your code inside the triple back tick marks.

``` <— Triple back tick marks.

Paste ALL of your code in here.

``` <— Triple back tick marks.

There are many people here willing and able to help. If you use the </> button correctly, then ALL of your code should look like this:

while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        hero.attack(enemy)
    else:
        hero.say("My code is formatted properly")

If ALL of your code isn’t formatted like the code above, then you’re doing it wrong and we can’t see the structure of the code to troubleshoot whether or not that is the issue. Use the </> button and help us help you. This works when sending a private message as well.

Thank you.

while(true) {
    hero.moveXY(hero.pos.x + 1, hero.pos.y);
    if (hero.canCast(“invisibility”)) {
        hero.cast(“invisibility”, hero);
    }
    if (hero.canCast(“haste”)) {
        hero.cast(“haste”, hero);
        }
    var enemies = hero.findEnemies();
    var enemyIndex = 0;
    while (enemyIndex < enemies.length) {
        var enemy = enemies[enemyIndex];
        if (enemy.type == “scout” && hero.distanceTo(enemy) < 8) {
            hero.manaBlast();
        }
    enemyIndex++;
    }
}

what is enemies.length? if it means distance, use hero.distanceTo(). also, if it means that, then you’ll be standing in place forever, because if you’re not in minimum distance (8), then you have nothing to do since there is no else. Use else in this case and then use continue to restart from the top.

or, it would mean that you’ll do the same thing until you’re right in front of the scout, in which the scout would start destroying you. Very painful experience you’ll have.

hello so im not sure what is wrong here ,can someone help out a bit

if(hero.isReady("haste")){
    hero.cast("haste", hero);
    } 
if(hero.isReady("reset-cooldown")){
    hero.resetCooldown("haste");
    }  
    

hero.moveXY(109,35);
hero.manaBlast();
hero.moveXY(275,37); 

Do you have all of this tucked in a while loop? Otherwise, your haste will only work once. Another detail, you currently are using moveXY() which doesn’t allow any other code to run until your hero has reached that mark. The move() is a better option since your hero will run the other code after every step.

2 Likes