Official IVAN Continuation thread Sticky

May 16, 2014, 12:40 pm
Joined: Dec 17, 2007
Occupation: Taking Names, Formerly Kicking Ass
Location: New Jersey
Posts: 886
Warheck wrote
And I wonder why wooden legs never got implemented.

Im pretty sure you can get legs made of wood.
May 16, 2014, 2:03 pm
Joined: Sep 8, 2010
Occupation: Petty Functionary
Location: Drinking pea soup in the world map
Interests: Mangoes
Posts: 1,113
Batman? wrote
Im pretty sure you can get legs made of wood.

Ok I'm officially the forum dope.

But I was thinking more along the lines of prosthetics. I suppose wooden legs are already kicking around, but a prosthetic hand or one you can exchange for a weapon or claw or something like that...
May 16, 2014, 2:19 pm
Joined: Feb 20, 2012
Posts: 231
Replacing limbs is so easy anyways, what benefit would prosthesis have (aside from the fact that artificial limbs are already a form of prosthesis)? Most weapon ideas can easily be made into regular equip-able weapons, so limiting your character by say, chopping off a hand just to put in a claw instead of just having handheld claw weapons seems a bit too restrictive.

Warheck wrote
I think developing that subsystem further was one of our dev goals at some stage.

Speaking of which, what are the current development goals? We should definitely have a list of goals to be met for a release. All of the major bugs/exploits of 0.50 are fixed now, so what else ought to be done?
May 16, 2014, 3:21 pm
[Eire]MadHatter's avatar
mutant ass


Joined: Feb 5, 2014
Occupation: Sysnet Tech Support
Location: Dublin, Ireland
Interests: Computers
Posts: 59
Warheck wrote
I wonder if we could make hands and feet into separate body parts? And I wonder why wooden legs never got implemented. I think developing that subsystem further was one of our dev goals at some stage.

http://en.wikipedia.org/wiki/Katar_(dagger)

Alright.....thanks for the quote....brain clicked a few more...ideas.

The Katar a wrist mounted blade.
[screams interally NOTHING TO DO WITH ASSASSINS CREED]

*Ahem*
A wrist mounted blade...well come where


Aside from the basic straight thrust, other techniques include the reverse thrust, reverse flipped pierce, inwards side slashing, outwards side slashing, cobra coiled thrust, and tiger claw pierce performed by jumping towards the opponent.

Sounds like a dexterity weapon to me.
and if this sub-limb function is added maybe weapons like this could help crippled adventures looking for an equalizer?


[captain hook...laughs internally....]
[Dual-core captain hook....he pisses himself because he can't undo his pants.]
May 16, 2014, 5:26 pm
Joined: Sep 8, 2010
Occupation: Petty Functionary
Location: Drinking pea soup in the world map
Interests: Mangoes
Posts: 1,113
Pent wrote
Speaking of which, what are the current development goals? We should definitely have a list of goals to be met for a release. All of the major bugs/exploits of 0.50 are fixed now, so what else ought to be done?

There's that text file somewhere containing work for a 0.51 release. Maybe we should revisit that file and come up with a summary. There may be some new things to add to the list. There is certainly mention of the child raising quest as a near future goal.
May 16, 2014, 9:41 pm
Joined: Feb 20, 2012
Posts: 231
Warheck wrote
There's that text file somewhere containing work for a 0.51 release. Maybe we should revisit that file and come up with a summary. There may be some new things to add to the list. There is certainly mention of the child raising quest as a near future goal.

Are you talking about this one? After the list of ideas it has a brief "plan" for version 0.51:

*Next version shouldnt be too hard: 
	No new dungeon
	BUGFIX: the shop door creation bug and dissolving body parts (TTY only?)
	BUGFIX: Mustard gas hostility bug
	Insect clouds
	Fire
	Mood system
	Having the bones ghosts look like the original characters
	= IVAN 0.51

What is the dissolving body parts bug?

The mustard gas bug is fixed already. The shop door bug should be fixed as well, though I could swear I've gotten one or two locked and booby-trapped shop doors since then.
May 17, 2014, 3:16 am
Joined: Dec 3, 2007
Occupation: Chaos Weaver
Location: Standing between all life and death
Posts: 2,825
*Facepalm*

I knew I forgot something! Now where is it...

There. The discussion notes regarding 0.51 as discussed at IVANcon with Kahvi. I believe the note-taker was Erno.
May 17, 2014, 4:35 am
Joined: Dec 4, 2007
Occupation: Perfect Soldier
Location: Astragius Galaxy
Interests: Fiana, Peace, Melons
Posts: 1,054
I told you guys like 100 times 0.51 was the version released with Blob's art in it
May 17, 2014, 10:00 am
red_kangaroo's avatar
elder dark mage


Joined: Apr 2, 2014
Location: North Tyris
Posts: 578
May I have a humble suggestion?

Some travel improvement would be great:

1) Make it so that in (L)ook when you hit Enter, you will take the shortest route towards the targeted square (interrupted by prompts like You feel hungry. or It seems hostile, continue?). That would make walking through cleared levels much less of a pain.

2) Something like a (G)o command would be neat - you could pick any level you have already visited and again, you would be taken there by the shortest route. (Where would you like to go? UT1)
May 17, 2014, 12:11 pm
Joined: Dec 4, 2007
Occupation: Perfect Soldier
Location: Astragius Galaxy
Interests: Fiana, Peace, Melons
Posts: 1,054
While the first idea seems fine, I think the second idea would be a major pain in the ass to make, never mind the fact that you are incredibly unlikely to travel more than a single level without so much as a hungry prompt or encounter with a monster.
May 17, 2014, 12:28 pm
capristo's avatar
The Imperialist


Joined: Dec 2, 2007
Location: New Attnam
Interests: bananas
Posts: 2,142
Hey guys, I'm closing the Trello board. Nobody was using it anyway.

Let's just continue to use the forum to discuss bugs and future development ideas.

It's slightly less organized than other options (Trello, Github, Wiki) but I think it's best because

a) doesn't require creating a new account
b) non-developers can be involved in idea generation / bug reporting
c) very easy to see activity

Should I just open the 'IVAN Development' forum to be public? That would be quicker than trying to figure out the bug that's not allowing people access. And it's not like we'd discuss anything secretive anyway.

However, I will still use the "IVAN Developers" group to give people the little icon and make them feel at least a tiny bit special and valued for all their hard work
May 17, 2014, 1:16 pm
Joined: Feb 20, 2012
Posts: 231
capristo wrote
Should I just open the 'IVAN Development' forum to be public? That would be quicker than trying to figure out the bug that's not allowing people access. And it's not like we'd discuss anything secretive anyway.

I don't see why not, especially considering the majority of people who are around frequently are in the dev group anyways.

capristo wrote
However, I will still use the "IVAN Developers" group to give people the little icon and make them feel at least a tiny bit special and valued for all their hard work

May 17, 2014, 4:16 pm
Joined: Sep 8, 2010
Occupation: Petty Functionary
Location: Drinking pea soup in the world map
Interests: Mangoes
Posts: 1,113
I agree. The development subforum is a good place to break the discussion down into specific topics. We've really been using this thread as a place to do that, only it makes it hard to find specific things when everything is lumped together.
Does it mean this thread will be moved to the development subforum?
We pretty much have all the functionality of Trello in this forum. I can post pictures, code and ideas more easily here, where everyone can see it.
May 18, 2014, 10:39 am
red_kangaroo's avatar
elder dark mage


Joined: Apr 2, 2014
Location: North Tyris
Posts: 578
Possible uses for Willpower attribute:

  • Use it for instead of taming difficulty. As of now, taming difficulty is rather unfathomable for a player who haven't looked into the game files. Tying it to a attribute easily found with stethoscope would allow players to weight their chances and not waste their SoT. Or you could even create some new strategies, like a wand of draining that decreases attributes - drain the monster until it has low enough Wil to be tamed, tame it and train it back to its power (or wait until the Drained status wears off, in case it would be temporary).
  • Use it for magic resistance. With the power of your iron will, you can resist some mystical powers of your enemies. Spells like fireball won't check magic resistance, but any spell affecting you in non-damaging way would. You can e.g. resist slowing, item teleport or even disenchanting with enough Wil.
  • Use it for panic resistance. Any time you panic, it would be better not to. While bright mind (Int) or knowledge (Wis) will not help you in overcomeing the flood of uncontrollable fear, mental training (Wil) would. This way, the highter your Wil, the lower the chance you will panic.
  • Use it for pain resistance. Could be used as a save against unconsciousness from massive head damage, but I think a brand new pain counter would be neat - every damage taken would raise your pain a bit. With enough pain, you will pass out even if your head is unhurt - e.g. your right hand was chopped off by Sherry, your left leg got stuck in a bear trap and your torso is slightly wounded. While it is not deadly by itself, the pain is great enough to knock you unconscious. But with enough Wil, you will stand up again, just like in the movie climax, tear off your leg (more pain for the counter, but you have really high Wil) and beat Sherry to death with it (or she'll one shot you).
May 18, 2014, 3:59 pm
Joined: Dec 11, 2008
Posts: 1,770
I definitely agree with WIL being used for magic resistance. As it stands currently your ability to not get ganked by mages rests solely on the RNG's decision to drop the right items.
Also, how about making WIL have a very small chance (like 0.001% per level) to prevent death, leaving your character with 1hp? (i.e. a "guts" ability common in other games)
Jun 13, 2014, 6:18 am
red_kangaroo's avatar
elder dark mage


Joined: Apr 2, 2014
Location: North Tyris
Posts: 578
Could anyone help me, please?

I was thinking about making some of the special levels in GC more special and started to mess with enner level. The changes I tried to make:

  • There is a river in the middle of the level, with the stairs on the opposite sides. This means that 1) it makes sense why the enner with his fondness for fishing settled in there and 2) it presents unique challenge for the player, as he has to traverse it in some way. Because of guaranteed belt of levitation and the possibility of teleport, it is not a game stopper, as well.
  • There are no monsters spawned on the level. The only thing it accomplished was a large number of corpses all around - and really, even dumb monsters would become cautious about the enner over time, as everything around would be dying.
  • There are some ghosts on the level, as they are unaffected by the screams and to make up for the lack of other monsters.

I came up with the following:

SPOILER ALERT. Click here to see text.
Level ENNER_BEAST_LEVEL;
  {
    LevelMessage = "You hear a wailing scream in the distance. An enner beast must dwell in the level!";
    IgnoreDefaultSpecialSquares = false;
    Size = 60, 30;
    Items = 35:70;
    GenerateMonsters = false;
    CanGenerateBone = false;

    Room
    {
      Pos = 25,1;
      Size = 1,1;
	Type = ROOM_NORMAL;
	WallSquare = WATER liquidterrain(UNDERGROUND_LAKE), 0;
	GenerateDoor = false;
	AllowLockedDoors = false;
      AllowBoobyTrappedDoors = false;
      GenerateLanterns = false;
	GenerateFountains = false;
	AltarPossible = false;
	Flags = 0;

	GTerrainMap
      {
        Pos = 0,-1;
        Size = 10,30;
        Types
        {
        # = WATER liquidterrain(UNDERGROUND_LAKE);
        }
      }
      {
    			#####.....
			.#####....
			..#####...
			...#####..
			...#####..
			...#####..
			..#####...
			.#####....
			.#####....
			..#####...
			..#####...
			...#####..
			...#####..
			....#####.
			.....#####
			.....#####
			.....#####
			.....#####
			.....#####
			.....#####
			....#####.
			...#####..
			...#####..
			...#####..
			....#####.
			....#####.
			...#####..
			...#####..
			...#####..
			..#####...	  	
      }

	Square, Random;
    	{
      Character = ennerbeast;
    	}

    }

    Square, Random;
    {
      Items == mine(BIG_MINE) { Team = MONSTER_TEAM; IsActive = true; }
    }

    Square, Random;
    {
      Items == METEORIC_STEEL beartrap { Team = MONSTER_TEAM; IsActive = true; }
      Times = 2:6;
    }

    Square, Random NOT_WALKABLE|NOT_IN_ROOM;
    {
      Items == stone;
      Times = 25:50;
    }

    Square, BoundedRandom 2, 2, 20, 28, HAS_NO_OTERRAIN;
    {
      OTerrain = stairs(STAIRS_UP);
      EntryIndex = STAIRS_UP;
      AttachRequired = true;
    }

    Square, BoundedRandom 38, 2, 58, 28, HAS_NO_OTERRAIN;
    {
      OTerrain = stairs(STAIRS_DOWN);
      EntryIndex = STAIRS_DOWN;
      AttachRequired = true;
    }

    Square, Random;
    {
      Items == bone;
      Times = 20;
    }

    Square, Random;
    {
      Items == skull;
      Times = 5;
    }

    Square, Random NOT_IN_ROOM;
    {
      Character = ghost;
	Times = 15;
    }

 }


However, something is broken and I cannot find out what. Would someone be so nice and tell me what's wrong?

And by the way, do you think it is worth putting into 0.51?
Jun 13, 2014, 8:14 am
Joined: Dec 11, 2008
Posts: 1,770
While I like the idea of having a river in a level, and also like the idea of adding something extra to the enner level to fit with his theme, water in IVAN is pretty notorious for being a bad thing. For example, a random teleport or forced teleport now has X amount of river tiles to result in instant death, and meanwhile you're being yelled to death by the Enner.

I do like the river idea, however I do think there should be a more practical way across because it's a story important stage to get through, unlike the lower levels of the dwarven vault in LIVAN. Maybe one or two small randomly genned bridges or a set spawn of teleportation items? A toll golem whose job it is to get payed to kick-launch adventurers across the river for a price (and broken ribs?)
As for "something is broken" - what exactly is broken? Does the level not render correctly (tiles where they shouldn't be?) Does IVAN not even start and drop an error message? Something else?
Jun 13, 2014, 11:23 am
Joined: Sep 8, 2010
Occupation: Petty Functionary
Location: Drinking pea soup in the world map
Interests: Mangoes
Posts: 1,113
red_kangaroo wrote
However, something is broken and I cannot find out what. Would someone be so nice and tell me what's wrong?

In CLIVAN the river was outside. The room size is 1x1. The level generator automatically fills the level with earth, and then connects the rooms via tunnels. By having a 1x1 sized room, it is probably malfunctioning. As per 4zb4's questions above, do you get an error, or is the river feature simply missing?
Jun 13, 2014, 1:16 pm
capristo's avatar
The Imperialist


Joined: Dec 2, 2007
Location: New Attnam
Interests: bananas
Posts: 2,142
I don't like that the other monsters are removed. Corpses have their use as food too, besides, I've never seen the entire level wiped out before I was able to kill the Enner.

But aside from that i really love the river idea as well. How wide is the river? If it were 3 or 4 spaces that might even help because if you saw the Enner across the river you could zap him without him being able to get too close to you.

If you can get the river working I would be fine with that in 0.51 but I think the monsters should go back. Just my opinion
Jun 13, 2014, 1:44 pm
Joined: Feb 20, 2012
Posts: 231
Warheck wrote
In CLIVAN the river was outside. The room size is 1x1. The level generator automatically fills the level with earth, and then connects the rooms via tunnels. By having a 1x1 sized room, it is probably malfunctioning. As per 4zb4's questions above, do you get an error, or is the river feature simply missing?

Additionally, he seems to have set the enner to spawn in that 1x1 room, which would likely cause further problems (such as a drowned enner). Red_kangaroo, try setting the room size to 30x10 (the size of your terrain map), and see if it works. Also change the enner beasts spawn location back to 'Square, Random NOT_IN_ROOM;' so that he doesn't spawn in the river and drown.
Jun 13, 2014, 2:35 pm
red_kangaroo's avatar
elder dark mage


Joined: Apr 2, 2014
Location: North Tyris
Posts: 578
Ha hah! It works (more or less).

SPOILER ALERT. Click here to see text.
Level ENNER_BEAST_LEVEL;
  {
    LevelMessage = "You hear a wailing scream in the distance. An enner beast must dwell in the level!";
    IgnoreDefaultSpecialSquares = false;
    Size = 60, 30;
    Items = 35:70;

    Room
    {
      Pos = 25,1;
      Size = 10,27;
	Type = ROOM_NORMAL;
	WallSquare = WATER liquidterrain(UNDERGROUND_LAKE), 0;
	FloorSquare = WATER liquidterrain(UNDERGROUND_LAKE), 0;
	GenerateDoor = false;
	AllowLockedDoors = false;
      AllowBoobyTrappedDoors = false;
      GenerateLanterns = false;
	GenerateFountains = false;
	AltarPossible = false;

 	Square, Pos 0, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 1, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 2, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 3, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 4, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 2, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 3, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 4, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 5, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 6, 28;
      {
        OTerrain = 0;
      }

	GTerrainMap
      {
        Pos = 0,-1;
        Size = 10,30;
        Types
        {
        # = WATER liquidterrain(UNDERGROUND_LAKE);
	  _ = GRAVEL solidterrain(GROUND);
        }
      }
      {
    			#####_____
			_#####____
			__#####___
			___#####__
			___#####__
			___#####__
			__#####___
			_#####____
			_#####____
			__#####___
			__#####___
			___#####__
			___#####__
			____#####_
			_____#####
			_____#####
			_____#####
			_____#####
			_____#####
			_____#####
			____#####_
			___#####__
			___#####__
			___#####__
			____#####_
			____#####_
			___#####__
			___#####__
			___#####__
			__#####___	  	
      }

	Square, Random;
    	{
      Character = ennerbeast;
    	}

    }

    Square, Random;
    {
      Items == mine(BIG_MINE) { Team = MONSTER_TEAM; IsActive = true; }
    }

    Square, Random;
    {
      Items == METEORIC_STEEL beartrap { Team = MONSTER_TEAM; IsActive = true; }
      Times = 2:6;
    }

    Square, Random NOT_WALKABLE|NOT_IN_ROOM;
    {
      Items == stone;
      Times = 25:50;
    }

    Square, BoundedRandom 2, 2, 20, 28, HAS_NO_OTERRAIN;
    {
      OTerrain = stairs(STAIRS_UP);
      EntryIndex = STAIRS_UP;
      AttachRequired = true;
    }

    Square, BoundedRandom 38, 2, 58, 28, HAS_NO_OTERRAIN;
    {
      OTerrain = stairs(STAIRS_DOWN);
      EntryIndex = STAIRS_DOWN;
      AttachRequired = true;
    }

    Square, Random;
    {
      Items == bone;
      Times = 20;
    }

    Square, Random;
    {
      Items == skull;
      Times = 5;
    }

  }


The monsters generate once again - it's just that I was finding too much corpses and too little living ones.

The river is four tiles wide, so yeah, it could help you.

4zb4 wrote
As for "something is broken" - what exactly is broken? Does the level not render correctly (tiles where they shouldn't be?) Does IVAN not even start and drop an error message? Something else?

Sorry. The problem I had was with Fatal Error: Unknown exception thrown. However, I somehow managed to get rid of it (not sure how).

And thanks Warheck, that was just the next problem after the crashes.

So right now, the level should have upstairs to the right, downstairs to the left and a big room with a river crossing the level in the middle, with the enner somewhere around.
Jun 13, 2014, 4:27 pm
Joined: Sep 8, 2010
Occupation: Petty Functionary
Location: Drinking pea soup in the world map
Interests: Mangoes
Posts: 1,113
Great scripting Red! I'm a big fan of BoundedRandom
Can't wait for screenshots.
Jun 13, 2014, 9:33 pm
Joined: Feb 20, 2012
Posts: 231
I tried the script out, and everything worked fine, except the staircases: the staircases you placed with boundedrandom spawned in addition to the regular staircases, leaving four staircases in the level.

There was also a single-square-wide gravel floor "bridge" across the bottom of the river; I'm not sure if this was intentional or not.
Jun 14, 2014, 4:12 am
red_kangaroo's avatar
elder dark mage


Joined: Apr 2, 2014
Location: North Tyris
Posts: 578
Pent wrote
I tried the script out, and everything worked fine, except the staircases: the staircases you placed with boundedrandom spawned in addition to the regular staircases, leaving four staircases in the level.

There was also a single-square-wide gravel floor "bridge" across the bottom of the river; I'm not sure if this was intentional or not.

OK, I fixed the staircases.

The bridge is not really intentional, but I'm not sure how to get rid of it - even when I don't require attachable stairs, the level generation goes nuts when I prevent it from spawning any tunnel between the two parts of the dungeon floor. With the bridge here, everything is OK except for the bridge. Without the bridge (I blocked it by forcing a water tile) the level generator sometimes forgets to genrate some tunnels, resulting in walled of rooms or doors leading to nowhere. The game simply doesn't like separated areas.

SPOILER ALERT. Click here to see text.
Level ENNER_BEAST_LEVEL;
  {
    LevelMessage = "You hear a wailing scream in the distance. An enner beast must dwell here!";
    IgnoreDefaultSpecialSquares = true;
    Size = 60, 30;
    Items = 35:70;

    Room
    {
      Pos = 25,1;
      Size = 10,27;
	Type = ROOM_NORMAL;
	WallSquare = WATER liquidterrain(UNDERGROUND_LAKE), 0;
	FloorSquare = WATER liquidterrain(UNDERGROUND_LAKE), 0;
	GenerateDoor = false;
	AllowLockedDoors = false;
      AllowBoobyTrappedDoors = false;
      GenerateLanterns = false;
	GenerateFountains = false;
	GenerateTunnel = true;
	AltarPossible = false;

 	Square, Pos 0, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 1, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 2, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 3, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 4, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 5, -1;
      {
        OTerrain = 0;
      }
	Square, Pos 2, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 3, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 4, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 5, 28;
      {
        OTerrain = 0;
      }
	Square, Pos 6, 28;
      {
        OTerrain = 0;
      }
		
	GTerrainMap
      {
        Pos = 0,-1;
        Size = 10,30;
        Types
        {
        # = WATER liquidterrain(UNDERGROUND_LAKE);
	  _ = GRAVEL solidterrain(GROUND);
        }
      }
      {
    			#####_____
			_#####____
			__#####___
			___#####__
			___#####__
			___#####__
			__#####___
			_#####____
			_#####____
			__#####___
			__#####___
			___#####__
			___#####__
			____#####_
			_____#####
			_____#####
			_____#####
			_____#####
			_____#####
			_____#####
			____#####_
			___#####__
			___#####__
			___#####__
			____#####_
			____#####_
			___#####__
			___#####__
			___#####__
			__#####___	  	
      }

	Square, Pos 5, 27;
    	{
      Character = ennerbeast;
    	}

    }

  
    Square, Random;
    {
      Items == mine(BIG_MINE) { Team = MONSTER_TEAM; IsActive = true; }
    }

    Square, Random;
    {
      Items == METEORIC_STEEL beartrap { Team = MONSTER_TEAM; IsActive = true; }
      Times = 2:6;
    }

    Square, Random NOT_WALKABLE|NOT_IN_ROOM;
    {
      Items == stone;
      Times = 25:50;
    }

    Square, BoundedRandom 2, 2, 20, 28, HAS_NO_OTERRAIN;
    {
      OTerrain = stairs(STAIRS_UP);
      EntryIndex = STAIRS_UP;
    }

     Square, BoundedRandom 38, 2, 58, 28, HAS_NO_OTERRAIN;
    {
      OTerrain = stairs(STAIRS_DOWN);
      EntryIndex = STAIRS_DOWN;
     }


   Square, Random;
    {
      Items == bone;
      Times = 20;
    }

    Square, Random;
    {
      Items == skull;
      Times = 5;
    }

  }
Jun 15, 2014, 12:08 pm
red_kangaroo's avatar
elder dark mage


Joined: Apr 2, 2014
Location: North Tyris
Posts: 578
4zb4 wrote
(...) set spawn of teleportation items?

If that was to be on the enner level, in what way should we include it? Except for a simple guaranteed SoT, it could be something like the following:

  • Guaranteed Sophos temple. Easy to get teleported, not so easly to land where you need.
  • Guaranteed Infuscor temple. I like this one, because you'll eventually get both telecontrol and SoTs. On the other hand, you have to be chaotic.
  • Some blink dogs. There are nearly always some SoT in the library or you can find a wand, and killing the blink dogs would give you enoguh control to traverse the river safely.
  • Wand of teleportation, but I'd e.g. spawn in inside of wall rather than simply letting it lie around. You can find it and dig it out, but it's not free WoT for everyone.
  • Instead of teleportation, a room full of magic mashrooms. You will get levitation eventually. Going back from below is another question.

What do you think, should there be something like that? Or simply that bridge, maybe a bridge with enner always on it?

That golem kicking you over the water is hilarious, though not scriptable, so out of my reach.
Jump to