Porting ToME2 to the T4 engine

If you have a module that you'd like comments on or would like to know how to create your very own module, post here

Moderator: Moderator

What do you want to see in the next release?

Hey, why haven't you implemented my favorite race/subrace/class yet? (specify below)
1
17%
Hey, why haven't you implemented my favorite skill/talent/spell/ability yet? (specify below)
2
33%
Hey, why haven't you implemented my favorite scroll/potion/wand/staff/rod/other object yet? (specify below)
0
No votes
Hey, why haven't you implemented my favorite store/quest/event yet? (specify below)
0
No votes
Hey, that's not what that dungeon's supposed to look like! (specify below)
0
No votes
Hey, why haven't you implemented my favorite game mechanic/UI feature yet? (specify below)
2
33%
Hey, that's a bug! Go fix that bug! (specify below)
1
17%
Hey, you didn't list what I want to see! (specify below)
0
No votes
 
Total votes: 6

Message
Author
Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#601 Post by Zizzo »

Thorondor wrote: Thu Jun 16, 2022 9:28 pm ok...had a further look.
New character.
successfully completes the thieves quest and goes up the ladder.
The village doesn't appear, and when I try to cast a spell I get told I cannot see. all that is there is black background but the player stats / experience remain visible.
There's no log file generated at all as not an error.
[sound F/X: testing] …gah! The wilderness zone fiddling I added in 0.6.0 is breaking zone changes in town. Crap crap crap… okay, give me a little time on this.
Thorondor wrote: Thu Jun 16, 2022 9:28 pm Tried something different: didn't do the thieves quest, but instead went to the barrow downs; - went down to level 1, completed princess quest, and recalled successfully. the game was able to save, and then reload from the menu.
Huh. I would have expected that to break too, given the nature of the error. Definitely something I'll need to test before the next release.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#602 Post by Zizzo »

And I think I've got that sorted out, so it's time to set a new record for fewest commits between releases: :oops:

Release 0.6.1 "Reality Trouble"

This is an emergency bugfix release, fixing one major show-stopper bug:
  • So, remember that clever hack from the 0.6.0 release that I was so proud of, that would prevent onsters from being populated in a town/wilderness zone too close to where the player enters? Well, it turns out it wasn't as clever as I thought… :oops: See, when you return to a town from a town quest subzone (like, say, the house quest… :oops: ), your entry point into the town is supposed to be the quest entrance you're returning from, and we were computing that on the assumption that the level had already been built — and the whole point of this exercise is that we're doing this before the level is built. :oops: I think I've managed to work around the problem.
  • Dunno if this counts as a bug, but it annoyed me: in T4, the inventory dialog is not closed when you put on or take off equipment. We, for no reason I can recall, were closing said dialog in those cases, and I was used to the T4 behavior enough that it annoyed me, so now it doesn't. We Apologize for the Convenience.™ :wink:
And that massive @#$%-up was of course obscuring all the other bugs I no doubt introduced in the 0.6.0 release, so they'll probably crop up next. :oops: As always, here is a good place to report said bugs.

And as always, the .team file for the release is available from my site, along with the Subversion repo and SVN::Web front-end thereto. And for those of you following along on SVN, the 0.6.1 release branch will get bug fixes for all the aforementioned inevitable bugs.

And since having them scattered throughout the thread is sort of useless, here's a reference list of all the T2 addons I've released:
  • Alchemic Arcanorum (current release 1.0.0): Starts Alchemist characters with an Alchemic Arcanorum object from my old ToME:Arcanorum T2 module, which can be used to store and extract essences.
  • Gender Parity (current release 1.0.1): Modifies assorted NPCs that don't particularly have to be male or female so that they can be either randomly.
  • Go to Landmark (current release 1.0.1): A quickie port of my T4 addon of the same name; allows you to auto-travel to various landmarks like stores or up/down stairs via the "Show known landmarks" action on the <Esc> menu.
  • Neutral Townsfolk (current release 1.0.0): As requested by Thorondor. :wink: Modifies a few of the more harmless town denizens into the "Neutral" faction so they don't pester you.
  • ZAngband Monsters (current release 1.0.1): Adds ZAngband monsters (hence the name). Untested.
  • Gondolin Book Store (current release 1.0.0): Also as requested by Thorondor. :wink: Adds a book store to Gondolin (hence the name…).
Did I say I'd be fixing massive bugs for a while? :oops: :wink: Still taking feature requests, though.
"Blessed are the yeeks, for they shall inherit Arda..."

Thorondor
Halfling
Posts: 105
Joined: Wed Apr 15, 2015 11:59 am

Re: Porting ToME2 to the T4 engine

#603 Post by Thorondor »

Hi
Have been quite busy so sorry for the late update.

That wierd bug where the targetting focuses on a particular square, whilst trying to manathrust a quest target came up again. For the rest of that session the manathrust tried to hit a particular grid reference, no matter how far away I was. Exited to menu, and the following error came up again.

error = "Game version: tome2-0.6.1\
Addons: gond_book-0.3.0, landmark-0.2.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /engine/interface/ActorTalents.lua:351: /engine/interface/ActorTalents.lua:324: /engine/interface/ActorTalents.lua:190: /engine/interface/ActorTalents.lua:158: attempt to index upvalue 'force_target' (a nil value)\
stack traceback:\
\9/engine/interface/ActorTalents.lua:158: in function 'getTarget'\
\9/mod/project-util.lua:114: in function 'bolt_spell'\
\9/data/talents/spell/mana.lua:70: in function </data/talents/spell/mana.lua:69>\
\9[C]: in function 'xpcall'\
\9/engine/interface/ActorTalents.lua:186: in function </engine/interface/ActorTalents.lua:173>\
At [C]:-1 \
At [C]:-1 error\
At /engine/interface/ActorTalents.lua:351 useTalent\
At /mod/class/Player.lua:753 useTalent\
At /engine/interface/PlayerHotkeys.lua:179 \
At /engine/interface/PlayerHotkeys.lua:162 activateHotkey\
At /mod/class/Game.lua:1474 fct\
At /engine/interface/PlayerHotkeys.lua:326 \
At /engine/KeyBind.lua:231 "
seen = true
reported = false

Other things:
eels etc still in the fountains (though not a bit deal to me

also there's wierdness when moving in wilderness mode back to town screen; - you seem to end up in the centre of the map when coming out of wilderness mode, even if you didn't start there.

Otherwise, it's looking good :)

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#604 Post by Zizzo »

We Apologize for the Delay;™ somehow managed to completely miss this comment… :oops:
Thorondor wrote: Sun Sep 18, 2022 8:48 pm That wierd bug where the targetting focuses on a particular square, whilst trying to manathrust a quest target came up again. For the rest of that session the manathrust tried to hit a particular grid reference, no matter how far away I was. Exited to menu, and the following error came up again.

error = "Game version: tome2-0.6.1\
Addons: gond_book-0.3.0, landmark-0.2.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /engine/interface/ActorTalents.lua:351: /engine/interface/ActorTalents.lua:324: /engine/interface/ActorTalents.lua:190: /engine/interface/ActorTalents.lua:158: attempt to index upvalue 'force_target' (a nil value)\
Dammit. I think I'm going to have to do some serious meatball surgery to track that one down. Give me a little time on that.
Thorondor wrote: Sun Sep 18, 2022 8:48 pm Other things:
eels etc still in the fountains (though not a bit deal to me
[sound F/X: source diving] Oh. Got sloppy in handling drinking/filling potions from fountains. I'll have that fixed for the next release.
Thorondor wrote: Sun Sep 18, 2022 8:48 pm also there's wierdness when moving in wilderness mode back to town screen; - you seem to end up in the centre of the map when coming out of wilderness mode, even if you didn't start there.
[sound F/X: testing] Gah! I keep tripping over that wilderness-buffer-zone thing. That'll be fixed for next release.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#605 Post by Zizzo »

While I'm still trying to figure out that weird :getTarget() leakage, I can at least push out the bugfixes I've got so far. My Christmas present to the forum: 🎅 :wink:

Release 0.6.2 "You Shall Not Pass"

This is mostly a bugfix release:
  • Fun fact: Fountains define a special block_move() method that handles the drink/fill-bottles dialog prompt. For everyone but the player, this method returned false, so any creature could enter the grid, and thus the level generator was allowed to spawn any type of NPC on the grid — including creatures with the AQUATIC flag like eels, which shouldn't be spawned there. :oops: Now we fall through to the regular block_move() method for grids, which should fix the problem.
  • That wilderness buffer zone hack from 0.6.0 just keeps coming back to bite me in the proverbial… :oops: See, when you move around in the worldmap, the game computes where your re-entry location should be when you drop back down to town/wilderness level based on how you've moved — or if you haven't moved, it remembers your town/wilderness location from just before you shifted up to the worldmap and returns you there. Once you've dropped out of the worldmap, of course, we don't need that information before, so we discard it — except our buffer-zone hackery led to us discarding that information prematurely. :oops: Should be fixed.
Some bugs, of course, we're still investigating:
  • Mysterious leakage in the Actor:getTarget() method, screwing up targeting.
  • Travak appearing multiple times (and apparently other artifacts…).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness in Object:getDesc().
  • Maze edge walls not visible. (Actually, is that still happening? My tests aren't reproducing it.)
And, of course, all the bugs that haven't been found yet… :oops: Here, as always, is a good place to report them.

Also a small sort-of feature, while I'm here:
  • So I finally got a bug up my proverbial to convert my infamously over-engineered T2 automatizer rules file to the new regime (I kept thinking, "why isn't the automatizer kicking in? Oh, right, I don't have any rules."). Clearly no one but me is using my custom automatizer rules language, because the parser was kind of broken… :oops: Anyway, I bashed that into shape and added a couple new features to simplify the conversion; here's the result, for everyone's edification. Never did get around to posting that automatizer documentation I promised (te4.org's blog setup kept choking on it as spam); I'll try to have something written up by the time I post this.
And as always, the .team file for the release is available from my site, along with the Subversion repo and SVN::Web front-end thereto. And for those of you following along on SVN, the 0.6.2 release branch will get bug fixes for all the aforementioned inevitable bugs.

And since having them scattered throughout the thread is sort of useless, here's a reference list of all the T2 addons I've released:
  • Alchemic Arcanorum (current release 1.0.0): Starts Alchemist characters with an Alchemic Arcanorum object from my old ToME:Arcanorum T2 module, which can be used to store and extract essences.
  • Gender Parity (current release 1.0.1): Modifies assorted NPCs that don't particularly have to be male or female so that they can be either randomly.
  • Go to Landmark (current release 1.0.1): A quickie port of my T4 addon of the same name; allows you to auto-travel to various landmarks like stores or up/down stairs via the "Show known landmarks" action on the <Esc> menu.
  • Neutral Townsfolk (current release 1.0.0): As requested by Thorondor. :wink: Modifies a few of the more harmless town denizens into the "Neutral" faction so they don't pester you.
  • ZAngband Monsters (current release 1.0.1): Adds ZAngband monsters (hence the name). Untested.
  • Gondolin Book Store (current release 1.0.0): Also as requested by Thorondor. :wink: Adds a book store to Gondolin (hence the name…).
Did I say I'd be fixing massive bugs for a while? :oops: :wink: Still taking feature requests, though.
"Blessed are the yeeks, for they shall inherit Arda..."

Firebrick
Posts: 3
Joined: Thu Dec 03, 2020 6:43 pm

Re: Porting ToME2 to the T4 engine

#606 Post by Firebrick »

Hey Zizzo. Loving all you've done so far.

Got back into this after re-reading your old DitL's, and found a few bugs.

Firstly, an occasional crash when firing Arrows of Venom, which resulted in no actual attack or dropped ammo while still consuming it:

Code: Select all

error = "Game version: tome2-0.6.2\
Addons: landmark-0.2.0, gender_parity-0.2.0\
\
Lua Error: /engine/interface/GameTargeting.lua:137: /engine/interface/ActorTalents.lua:190: /engine/interface/ActorTemporaryEffects.lua:121: attempt to compare nil with number\
stack traceback:\
\9/engine/interface/ActorTemporaryEffects.lua:121: in function 'setEffect'\
\9/mod/class/interface/Combat.lua:142: in function 'compute_brand_slay_mult'\
\9/mod/class/interface/Combat.lua:186: in function 'ammoDam'\
\9/data/damage_types.lua:2725: in function 'side_effects_post'\
\9/data/damage_types.lua:427: in function 'projector'\
\9/engine/interface/ActorProject.lua:259: in function 'project'\
\9/mod/class/interface/ActorProject.lua:34: in function 'project'\
\9/data/talents/objects/archery.lua:92: in function </data/talents/objects/archery.lua:55>\
\9[C]: in function 'xpcall'\
\9/engine/interface/ActorTalents.lua:186: in function </engine/interface/ActorTalents.lua:173>\
  At [C]:-1 \
  At [C]:-1 error\
  At /engine/interface/GameTargeting.lua:137 fct\
  At /engine/interface/GameTargeting.lua:143 targetMode\
  At /engine/interface/GameTargeting.lua:214 \
  At /engine/KeyBind.lua:231 "
seen = true
reported = false
My brief, uneducated digging makes me think its crapping out on trying to poison the target.

Entering the general store in Bree gives:

Code: Select all

error = "Game version: tome2-0.6.2\
Addons: landmark-0.2.0, gender_parity-0.2.0\
\
Lua Error: /mod/class/Object.lua:1159: attempt to perform arithmetic on field 'skill_level' (a nil value)\
  At [C]:-1 __mul\
  At /mod/class/Object.lua:1159 getPrice\
  At /mod/class/Object.lua:1108 fct\
  At /engine/Object.lua:182 forAllStack\
  At /mod/class/Object.lua:1107 getPrice\
  At /mod/class/Store.lua:273 allowStockObject\
  At /mod/class/Store.lua:319 loadupCycle\
  At /mod/class/Store.lua:470 loadup\
  At /mod/resolvers.lua:44 check\
  At [string \"return function(self, x, y, what, ...) local ...\"]:1 checkAllEntities\
  At /engine/Actor.lua:243 move\
  At /mod/class/Actor.lua:493 move\
  At /mod/class/Player.lua:313 moveDir\
  At /mod/class/Player.lua:305 moveDir\
  At /mod/class/Game.lua:1062 move_or_scroll\
  At /mod/class/Game.lua:1088 \
  At /engine/KeyBind.lua:231 "
seen = true
reported = false
Also a couple of bugs without reports;

Purchasing multiple items only charged me for one (by buying the whole stock without changing the "how many" dialog)

Beorning's Bear Form wasn't allowing skill investment into Bearform Combat - the skill doesn't show up in the level dialog.

An issue where reading scrolls of Identify was consuming scrolls of Word of Recall (for some reason).

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#607 Post by Zizzo »

Firebrick wrote: Thu Apr 13, 2023 5:03 pm Hey Zizzo. Loving all you've done so far.
*blush* (bows)
Firebrick wrote: Thu Apr 13, 2023 5:03 pm Got back into this after re-reading your old DitL's, and found a few bugs.

Firstly, an occasional crash when firing Arrows of Venom, which resulted in no actual attack or dropped ammo while still consuming it:

Code: Select all

error = "Game version: tome2-0.6.2\
Addons: landmark-0.2.0, gender_parity-0.2.0\
\
Lua Error: /engine/interface/GameTargeting.lua:137: /engine/interface/ActorTalents.lua:190: /engine/interface/ActorTemporaryEffects.lua:121: attempt to compare nil with number\
stack traceback:\
\9/engine/interface/ActorTemporaryEffects.lua:121: in function 'setEffect'\
\9/mod/class/interface/Combat.lua:142: in function 'compute_brand_slay_mult'\
\9/mod/class/interface/Combat.lua:186: in function 'ammoDam'\
\9/data/damage_types.lua:2725: in function 'side_effects_post'\
\9/data/damage_types.lua:427: in function 'projector'\
\9/engine/interface/ActorProject.lua:259: in function 'project'\
\9/mod/class/interface/ActorProject.lua:34: in function 'project'\
\9/data/talents/objects/archery.lua:92: in function </data/talents/objects/archery.lua:55>\
\9[C]: in function 'xpcall'\
\9/engine/interface/ActorTalents.lua:186: in function </engine/interface/ActorTalents.lua:173>\
  At [C]:-1 \
  At [C]:-1 error\
  At /engine/interface/GameTargeting.lua:137 fct\
  At /engine/interface/GameTargeting.lua:143 targetMode\
  At /engine/interface/GameTargeting.lua:214 \
  At /engine/KeyBind.lua:231 "
seen = true
reported = false
My brief, uneducated digging makes me think its crapping out on trying to poison the target.
[sound F/X: source diving] Good call: the Venom brand sometimes applies a temporary poison effect, the duration of which is supposed to depend on the base damage done by the weapon — which isn't being passed to the necessary place. Shouldn't be too hard to fix.
Firebrick wrote: Thu Apr 13, 2023 5:03 pm Entering the general store in Bree gives:

Code: Select all

error = "Game version: tome2-0.6.2\
Addons: landmark-0.2.0, gender_parity-0.2.0\
\
Lua Error: /mod/class/Object.lua:1159: attempt to perform arithmetic on field 'skill_level' (a nil value)\
  At [C]:-1 __mul\
  At /mod/class/Object.lua:1159 getPrice\
  At /mod/class/Object.lua:1108 fct\
  At /engine/Object.lua:182 forAllStack\
  At /mod/class/Object.lua:1107 getPrice\
  At /mod/class/Store.lua:273 allowStockObject\
  At /mod/class/Store.lua:319 loadupCycle\
  At /mod/class/Store.lua:470 loadup\
  At /mod/resolvers.lua:44 check\
  At [string \"return function(self, x, y, what, ...) local ...\"]:1 checkAllEntities\
  At /engine/Actor.lua:243 move\
  At /mod/class/Actor.lua:493 move\
  At /mod/class/Player.lua:313 moveDir\
  At /mod/class/Player.lua:305 moveDir\
  At /mod/class/Game.lua:1062 move_or_scroll\
  At /mod/class/Game.lua:1088 \
  At /engine/KeyBind.lua:231 "
seen = true
reported = false
[sound F/X: source diving] O-ho, this is an interesting one. Apparently your general store had a Brass Lantern of the Magi in it. Those can sometimes have a spell copied onto them like a Ring of Spell, and their price thus depends on what spell (if any) is copied onto them. But they also confer the magic map power, and the price calculation code is mistaking that for a copied spell, with the results you've seen.

Annoyingly, this also means that trying to copy a spell onto a light of the Magi won't work as currently implemented. This one will take a bit more time to fix.
Firebrick wrote: Thu Apr 13, 2023 5:03 pm Also a couple of bugs without reports;

Purchasing multiple items only charged me for one (by buying the whole stock without changing the "how many" dialog)
[sound F/X: testing] …what?! Okay, this one's gonna take some digging.
Firebrick wrote: Thu Apr 13, 2023 5:03 pm Beorning's Bear Form wasn't allowing skill investment into Bearform Combat - the skill doesn't show up in the level dialog.
[sound F/X: source diving] Huh. Apparently when I wrote that part of the code, I was expecting bear form to be a temporary effect like it is in T2, instead of a sustained talent; thus the skills dialog is not properly detecting that you're in bear form and it should show the Beaform Combat skill. Easy enough to fix.
Firebrick wrote: Thu Apr 13, 2023 5:03 pm An issue where reading scrolls of Identify was consuming scrolls of Word of Recall (for some reason).
Hmm, need more details here. What was the sequence of events? How many of each type of scroll did you have, and where were they relative to each other in your inventory? Was the ?oID also consumed, or just the ?oWoR? [Preliminary guess: inventory re-ordered after identify, and the use-object code tried to consume the wrong thing.]
"Blessed are the yeeks, for they shall inherit Arda..."

Firebrick
Posts: 3
Joined: Thu Dec 03, 2020 6:43 pm

Re: Porting ToME2 to the T4 engine

#608 Post by Firebrick »

Zizzo wrote: Sat Apr 15, 2023 7:45 pm
Firebrick wrote: Thu Apr 13, 2023 5:03 pm An issue where reading scrolls of Identify was consuming scrolls of Word of Recall (for some reason).
Hmm, need more details here. What was the sequence of events? How many of each type of scroll did you have, and where were they relative to each other in your inventory? Was the ?oID also consumed, or just the ?oWoR? [Preliminary guess: inventory re-ordered after identify, and the use-object code tried to consume the wrong thing.]
Seems likely; I've reproduced like this:

Inventory order (snipped): Scroll of Phase Door, Scroll of Word of Recall, 2x Scroll of Identify, Un-ID'd Scroll

Use Scroll of Identify on Un-ID'd Scroll, ID'd as Scroll of Darkness

New Inventory order: Scroll of Darkness, Scroll of Phase Door, 2x Scroll of Identify

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#609 Post by Zizzo »

Firebrick wrote: Sun Apr 16, 2023 3:34 pm [Seems likely; I've reproduced like this:

Inventory order (snipped): Scroll of Phase Door, Scroll of Word of Recall, 2x Scroll of Identify, Un-ID'd Scroll

Use Scroll of Identify on Un-ID'd Scroll, ID'd as Scroll of Darkness

New Inventory order: Scroll of Darkness, Scroll of Phase Door, 2x Scroll of Identify
[sound F/X: testing] Yup, that'll do it. And that was the last thing I needed to fix before:

Release 0.6.3 "Stab in the Dark"

Lot more bugfixes than I was expecting for this release; every time I went looking for one bug, I found half a dozen related bugs:
  • T2 didn't really have the infrastructure for sustained talents, so it handled Beornings' Bearform power as a temporary mimic effect (like Morphic Oils) with a really long duration — which could expire at the worst moment. As a kindness to the player, we changed Bearform to a sustained talent way back in v0.0.11; in the process, though, we missed several places that still expected it to be a temporary effect, notably:
    • The skills dialog trying to detect whether it should show the Bearform-combat skill.
    • The Change Melee Style talent trying to detect whether it should allow the Bearform combat melee style.
    • The "Auto-use Bearform combat" game option, which was being applied in the wrong place.
    • The Avatar or Flame of Udun spells, which are implemented under the hood as mimic forms, should cancel bear form, and Morphic Oils should have no effect while in bear form, as they do if some other mimic form is active. Similarly, bear form should replace any temporary mimic form.
    • Bear form's effects should depend on player level, not Mimicry or Bearform-combat skill level. Dunno where I got that from… :?
  • And digging around in that area exposed some other errors related to mimicry forms:
    • Mimic forms from Mimicry Cloaks are also sustained talents as of v0.0.11, so they need some of the same handling as bear form. So for instance, a Mimicry Cloak form will cancel bear form (and vice versa), and both will cancel a Morphic Oil or Avatar or Flame of Udun.
    • Remember how, back in v0.5.2, we improved the description of mimicry forms to include stuff that you couldn't get yet at your current form level, grayed out and with a note of what level you'd need to get it? Well, that actually kind of depends on where you're getting the mimicry form from. For instance, if you're getting Mouse form from a Mimicry Cloak, it should tell you that you need Mimicry skill level 30 to get the invisibility power, but if you're getting Mouse form from a Morphic Oil, it should tell you that you need player level 45. That should be sorted out now.
    • And speaking of gaining powers, in a lot of places we were using player level when we should have been using skill level to determine where you should get a power from a mimicry form.
    • As a convenience to the player, the description of Morphic Oils now includes a description of the mimicry form effects at the player's current level. (This won't work for any Morphic Oils you already have lying around, but new ones should work.)
    • A bit of internal rearrangement, to make it easier for some intrepid addon developer to add new mimic forms. :mrgreen:
  • Small bug that was preventing the skills dialog from detecting that the player follows Melkor and that it should thus expose the Udun talent.
  • Small bug in the talents dialog that was screwing up key handling.
  • Minor annoyance: y'know how, when you choose an object to drop or destroy from the inventory dialog, the object's tooltip pops back up on top of the "how many do you want to drop/destroy?" or "really destroy this?" dialog, obscuring half of it? Finally found where to suppress that.
  • Related to the preceding: when you destroy some or all of a stack of objects, you weren't getting a "Destroy 5 things?" dialog like you would if you were only destroying one object. That seemed wrong, so I added it back.
  • Copying spells onto items wasn't working at all (yet again, the sort of typo I wish Lua would catch…). We also keep track of the copied spell separately now, so as not to get confused by any other talents the object might also confer.
  • Assorted bugs related to weapon flags that trigger special effects, like bleeding, vampiric effects, chaotic effects and poison:
    • First off, the effects weren't actually being applied, because the callbacks that were supposed to implement said effects weren't being installed. :oops:
    • Most or all of these effects depend on the weapon's computed damage for their effect or duration, and we hadn't computed that yet. Existing weapons with those flags may still be hinky, but new ones should work.
    • Ammo of Venom, it turns out, isn't actually supposed to apply the poison effect. :oops:
  • Weapons of Slaying have a 20% chance of getting a poison brand, but we were setting that property incorrectly.
  • Several errors in assembling the information to be displayed by Potions of Self Knowledge and related effects.
  • I've taken a stab at papering over the weird bug reported by Thorondor. AFAICT this is an engine bug, in which the engine's :useTalent() method temporarily overrides the player's :getTarget() method and fails to clean up behind itself; I've put a wrapper around this to try to detect it and reinstall the previous :getTarget(). If the problem persists, check the log file for lines with "[TARGET]"; the lines near that should (I hope…) have the information I need to actually track down the problem.
  • Learning the vagaries of Object:forAllStack()… :oops: :wink: Was using it wrong (or not at all when I should have been) in some places, like recording where you found an object or setting configuration flags like "ask before dropping" or "notify on recharge".
  • A few store fixes:
    • The engine's store code transfers bought or sold objects between store and player one at a time, which seems kind of silly for our purposes because it leads to multiple "You have 5 things" messages. Instead we transfer them all in a lump.
    • Speaking of :forAllStack(), we use it to compute object prices by walking the stack and adding up the prices of each object (since in theory they could be different). That doesn't work so well, though, after you've bought everything from the store and unstacked them. :oops: We've already computed the total purchace price once, for the "Buy 5 things for 10 gold?" dialog; we should just pass the price around to everywhere else in the code that needs it.
  • Remember back in v0.3.2, when we fixed using Scrolls of Phase Door off the floor, when said scroll was no longer under your feet to be used up? Well, turns out there's another way that can happen: Scrolls of Identify will re-sort your inventory, which means the scroll might have moved by the time we try to consume it. We handle that by scanning the inventory again after use to find our object's new location.
Some bugs, of course, we're still investigating:
  • Mysterious leakage in the Actor:getTarget() method, screwing up targeting (with any luck, this release will fix it…).
  • Travak appearing multiple times (and apparently other artifacts…).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness in Object:getDesc().
  • Maze edge walls not visible. (Actually, is that still happening? My tests aren't reproducing it.)
And, of course, all the bugs that haven't been found yet… :oops: Here, as always, is a good place to report them.

Also a small sort-of feature, while I'm here:
  • As an inveterate overengineer, :wink: I've beefed up the create-item debug dialog with better support for creating items that have certain types of randomly generated characteristics. So for instance, you can now create a spellbook with a specific spell, or a Mimicry Cloak with a specific mimic form, or a totem or corpse of a specific monster type. Also added a search field, to simplify finding Scrolls of Word of Recall in a huge list of scrolls. No one but me will ever use any of this, of course, but it helped a lot in debugging this release.
And as always, the .team file for the release is available from my site, along with the Subversion repo and SVN::Web front-end thereto. And for those of you following along on SVN, the 0.6.3 release branch will get bug fixes for all the aforementioned inevitable bugs.

And since having them scattered throughout the thread is sort of useless, here's a reference list of all the T2 addons I've released:
  • Alchemic Arcanorum (current release 1.0.0): Starts Alchemist characters with an Alchemic Arcanorum object from my old ToME:Arcanorum T2 module, which can be used to store and extract essences.
  • Gender Parity (current release 1.0.1): Modifies assorted NPCs that don't particularly have to be male or female so that they can be either randomly.
  • Go to Landmark (current release 1.0.1): A quickie port of my T4 addon of the same name; allows you to auto-travel to various landmarks like stores or up/down stairs via the "Show known landmarks" action on the <Esc> menu.
  • Neutral Townsfolk (current release 1.0.0): As requested by Thorondor. :wink: Modifies a few of the more harmless town denizens into the "Neutral" faction so they don't pester you.
  • ZAngband Monsters (current release 1.0.1): Adds ZAngband monsters (hence the name). Untested.
  • Gondolin Book Store (current release 1.0.0): Also as requested by Thorondor. :wink: Adds a book store to Gondolin (hence the name…).
Did I say I'd be fixing massive bugs for a while? :oops: :wink: Still taking feature requests, though.
"Blessed are the yeeks, for they shall inherit Arda..."

Firebrick
Posts: 3
Joined: Thu Dec 03, 2020 6:43 pm

Re: Porting ToME2 to the T4 engine

#610 Post by Firebrick »

Thanks for the update, Zizzo.

Found a couple of other bugs in the new release.

Activating Geolysis does nothing, but attempting to move after produces the following error;

Code: Select all

error = "Game version: tome2-0.6.3\
Addons: landmark-0.2.0, gender_parity-0.2.0\
\
Lua Error: /engine/Map.lua:636: attempt to call method 'check' (a nil value)\
  At [C]:-1 check\
  At /engine/Map.lua:636 \
  At [C]:-1 calc_circle\
  At /mod/class/Game.lua:1027 tweakVisuals\
  At /mod/class/Player.lua:561 act\
  At /engine/GameEnergyBased.lua:129 tickLevel\
  At /mod/class/GameEnergyBasedEvilHack.lua:32 tick\
  At /engine/GameTurnBased.lua:51 tick\
  At /mod/class/Game.lua:744 "
seen = true
reported = false

In what feels like 'two-steps-forward, one-step-back', attempting to drink a potion from the floor (from the standard inventory dialog) gives the error;

Code: Select all

error = "Game version: tome2-0.6.3\
Addons: landmark-0.2.0, gender_parity-0.2.0\
\
Lua Error: /mod/class/Player.lua:1624: /engine/interface/ActorInventory.lua:760: bad argument #1 to 'ipairs' (table expected, got nil)\
  At [C]:-1 \
  At [C]:-1 error\
  At /mod/class/Player.lua:1624 playerUseItem\
  At /mod/dialogs/UseItemDialog.lua:70 use\
  At /mod/dialogs/UseItemDialog.lua:46 fct\
  At /engine/ui/List.lua:155 onUse\
  At /engine/ui/List.lua:86 \
  At /engine/KeyBind.lua:231 receiveKey\
  At /engine/ui/Dialog.lua:825 keyEvent\
  At /engine/ui/Dialog.lua:512 "
seen = true
reported = false
The same also occurs with reading a parchment in the same situation. Doing so takes a turn and provides the item's effect, but does not remove it from the floor.

See the Music provides the mapping effect at base level.

Prayers aren't using spellpower boosts.

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#611 Post by Zizzo »

Firebrick wrote: Wed Apr 26, 2023 10:25 am Thanks for the update, Zizzo.

Found a couple of other bugs in the new release.
[sound F/X: source diving] Wow, some ancient bugs exhumed here. So, probably setting a new record for quickest turnaround time between releases: :oops:

Release 0.6.4 "Floored"

This is, of course, entirely a bugfix release:
  • Multiple stupid bugs in the Geolysis spell:
    • Pro tip for module/addon developers: game.level.map:checkEntity(x, y, Map.TERRAIN, 'define_as') gets the value of the 'define_as' field of the terrain grid at the given x/y coordinates. game.level.map(x, y, Map.TERRAIN, 'define_as') replaces the terrain grid at the given x/y coordinates with the string 'define_as'. One of those two is probably not what you want to do. :oops: :oops: :oops:
    • Was computing coordinate deltas backward, which would have resulted in tunneling in the exact opposite of the intended direction. :oops:
    • And of course, declaring a utility function local in one file and trying to use it in another is unlikely to work. :oops: Not to mention misremembering the name of the method that actually does the Geolysis tunneling… :oops: :oops:
  • Our fix in the previous version for finding the right object to consume after use in case we re-ordered our inventory failed to take into account the consideration that we might not be using said object from inventory. :oops: Fixed.
  • Small misnaming that was causing Druids, Paladins, Dark-Priests and Priests of Eru to start with a random spellbook instead of one with their first god spell.
  • Oops, See the Music isn't supposed to start mapping the immediate vicinity until spell level 10. :oops:
  • Small screwup in my Perl script for scraping spell information out of the T2 code: for god spells, the spell school name (Eru/Manwe/etc.) doesn't match the name of the required skill (Prayer), so my script wasn't properly detecting that spells of those schools should get the spell effect level increase from the Spell-power skill.
Some bugs, of course, we're still investigating:
  • Mysterious leakage in the Actor:getTarget() method, screwing up targeting (which we hope we fixed in the previous release…).
  • Travak appearing multiple times (and apparently other artifacts…).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness in Object:getDesc().
  • Maze edge walls not visible. (Actually, is that still happening? My tests aren't reproducing it.)
And, of course, all the bugs that haven't been found yet… :oops: Here, as always, is a good place to report them.

And as always, the .team file for the release is available from my site, along with the Subversion repo and SVN::Web front-end thereto. And for those of you following along on SVN, the 0.6.4 release branch will get bug fixes for all the aforementioned inevitable bugs.

And since having them scattered throughout the thread is sort of useless, here's a reference list of all the T2 addons I've released:
  • Alchemic Arcanorum (current release 1.0.0): Starts Alchemist characters with an Alchemic Arcanorum object from my old ToME:Arcanorum T2 module, which can be used to store and extract essences.
  • Gender Parity (current release 1.0.1): Modifies assorted NPCs that don't particularly have to be male or female so that they can be either randomly.
  • Go to Landmark (current release 1.0.1): A quickie port of my T4 addon of the same name; allows you to auto-travel to various landmarks like stores or up/down stairs via the "Show known landmarks" action on the <Esc> menu.
  • Neutral Townsfolk (current release 1.0.0): As requested by Thorondor. :wink: Modifies a few of the more harmless town denizens into the "Neutral" faction so they don't pester you.
  • ZAngband Monsters (current release 1.0.1): Adds ZAngband monsters (hence the name). Untested.
  • Gondolin Book Store (current release 1.0.0): Also as requested by Thorondor. :wink: Adds a book store to Gondolin (hence the name…).
Did I say I'd be fixing massive bugs for a while? :oops: :wink: Still taking feature requests, though.
"Blessed are the yeeks, for they shall inherit Arda..."

Thorondor
Halfling
Posts: 105
Joined: Wed Apr 15, 2015 11:59 am

Re: Porting ToME2 to the T4 engine

#612 Post by Thorondor »

Hi Zizzo
great work :)
have got a couple of characters to around L30 until YASDs intervened...
no issues with that wierd targetting error so far.
A few bug reports are below:

Tried dismissing a manes pet (charmed by spell)

error = "Game version: tome2-0.6.3\
Addons: \
\
Lua Error: /engine/Level.lua:123: attempt to index local 'e' (a nil value)\
At [C]:-1 __index\
At /engine/Level.lua:123 removeEntity\
At /mod/dialogs/PetCommand.lua:75 fct\
At /engine/ui/Dialog.lua:153 fct\
At /engine/ui/Button.lua:63 fct\
At /engine/Mouse.lua:71 receiveMouse\
At /engine/Mouse.lua:111 delegate\
At /engine/ui/Dialog.lua:817 mouseEvent\
At /engine/ui/Dialog.lua:510 fct\
At /engine/Mouse.lua:71 "
seen = true
reported = false



read a scroll of monster lore 3 whilst it was on the ground and the following error message appeared (I then picked the scroll up, re-read it and the scroll vanished (as expected))

error = "Game version: tome2-0.6.3\
Addons: \
\
Lua Error: /mod/class/Player.lua:1624: /engine/interface/ActorInventory.lua:760: bad argument #1 to 'ipairs' (table expected, got nil)\
At [C]:-1 \
At [C]:-1 error\
At /mod/class/Player.lua:1624 playerUseItem\
At /mod/dialogs/UseItemDialog.lua:70 use\
At /mod/dialogs/UseItemDialog.lua:46 fct\
At /engine/ui/List.lua:155 onUse\
At /engine/ui/List.lua:86 \
At /engine/KeyBind.lua:231 receiveKey\
At /engine/ui/Dialog.lua:825 keyEvent\
At /engine/ui/Dialog.lua:512 "
seen = true
reported = false
error = "Game version: tome2-0.6.3\
Addons: \
\
Lua Error: /engine/interface/GameTargeting.lua:137: /data/general/traps/all.lua:1162: attempt to index global 'DamageType' (a nil value)\
At [C]:-1 \
At [C]:-1 error\
At /engine/interface/GameTargeting.lua:137 fct\
At /engine/interface/GameTargeting.lua:143 targetMode\
At /engine/interface/GameTargeting.lua:214 \
At /engine/KeyBind.lua:265 triggerVirtual\
At /engine/interface/GameTargeting.lua:246 \
At /engine/KeyBind.lua:231 "
seen = true
reported = false

Other comments
Price of normal arrow looks like it's about 0.2gold. It's possible (though rediculously time consuming) to create wealth by buying 10 arrows for e.g. 3gp and sell each arrow individually for 1gp.
FWIW I think the prices for exploding ammo is quite high
Feels like the failure rates for e.g. ents potion and identify are very high - around 40-60% with sorcery level 20 and 30 points in spellpower

Anyway, thanks again :)

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#613 Post by Zizzo »

Thorondor wrote: Thu May 18, 2023 9:25 pm Hi Zizzo
great work :)
have got a couple of characters to around L30 until YASDs intervened...
no issues with that wierd targetting error so far.
*whew* :wink:
Thorondor wrote: Thu May 18, 2023 9:25 pm A few bug reports are below:

Tried dismissing a manes pet (charmed by spell)

error = "Game version: tome2-0.6.3\
Addons: \
\
Lua Error: /engine/Level.lua:123: attempt to index local 'e' (a nil value)\
[sound F/X: source diving] Ah. Stupid copy/paste error. Fixed for next release.
Thorondor wrote: Thu May 18, 2023 9:25 pm read a scroll of monster lore 3 whilst it was on the ground and the following error message appeared (I then picked the scroll up, re-read it and the scroll vanished (as expected))

error = "Game version: tome2-0.6.3\
Addons: \
\
Lua Error: /mod/class/Player.lua:1624: /engine/interface/ActorInventory.lua:760: bad argument #1 to 'ipairs' (table expected, got nil)\
Hmm, I see you're still playing 0.6.3; I think I fixed that one in 0.6.4.
Thorondor wrote: Thu May 18, 2023 9:25 pm error = "Game version: tome2-0.6.3\
Addons: \
\
Lua Error: /engine/interface/GameTargeting.lua:137: /data/general/traps/all.lua:1162: attempt to index global 'DamageType' (a nil value)\
[sound F/X: source diving] Right, fixed that for objects but not traps. Should be fixed for next release.
Thorondor wrote: Thu May 18, 2023 9:25 pm Other comments
Price of normal arrow looks like it's about 0.2gold. It's possible (though rediculously time consuming) to create wealth by buying 10 arrows for e.g. 3gp and sell each arrow individually for 1gp.
[sound F/X: testing] Can't reproduce. Maybe it was fixed in a later version?
Thorondor wrote: Thu May 18, 2023 9:25 pm FWIW I think the prices for exploding ammo is quite high
[sound F/X: source diving] Looks like that's original T2 behavior:

Code: Select all

    /* Special attack (exploding arrow) */
    if (o_ptr->pval2 != 0) value *= 14;
Thorondor wrote: Thu May 18, 2023 9:25 pm Feels like the failure rates for e.g. ents potion and identify are very high - around 40-60% with sorcery level 20 and 30 points in spellpower
[sound F/X: source diving] Oops, was keying off the underlying skill (Water, Divination) instead of Sorcery. I think I've got that sorted out.

And your timing is fortuitous, as I was just about to release:

Release 0.7.0 "Speaking with the Dead"

This is a feature release, and as the title suggests, the main new feature is:
  • Necromancy! Some notes:
    • For the Necromantic Teeth talent, we now support temporary objects that vanish when their time runs out. This is also supposed to be used for temporary artifacts created by Alchemists, but I haven't gone back and patched that in yet; if any Alchemists out there are particularly jonesing for that feature, let me know. :wink:
    • The Horrify talent stuns monsters, which we hadn't implemented yet.
    • The RAISE damage type, as used by the Raise Dead power, is supposed to restore experience if the player is hit with it, at least as I read the code. I don't recall seeing that happening in T2, though; I suspect its built-in self-fire protection would have prevented it. Do any of our T2 players have any experience (pun only partly intended :wink: ) on this front?
    • As a kindness to our would-be Necromancers, I'm reproducing a T2 bug that tries but fails to make uniques immune to the Death power. I figure I owe Ruk that much, at least.

      "Hmph. Not one of my fonder moments, Chronicler."

      Hey, given the circumstances, I think you did pretty damn good. :wink:
    • On the subject of Undead form, it's been too long since Ruk did it, so I don't recall: does Undead form have any sort of "you're on thin ice, buddy" UI indicator, like setting the background red or something? At the moment, all I have is a BigNews popup message when you enter Undead form, but going from the reddened low-HP background just before you "die" to an apparent "all-good" lack of indicator when you enter Undead form and have full "death points" seems to convey the opposite message from what we'd like… :?
  • And while I was picking off not-yet-implemented stuff, I also went back and implemented the last two unimplemented Demonology spells, Discharge Minion and Unholy Word. I'm still not entirely I've got Unholy Word's healing amount right; the T2 code for that part of the spell isn't entirely clear.
  • On a complete and utter lark, I implemented the "Allow uniques to speak" game option. :mrgreen: Now Smeagol can whine for his Precious and Gwaihir can compliment you on your boots, and various uniques can get "last words" when they die. And it's even better with emotes!
    npc-emote.png
    npc-emote.png (69.82 KiB) Viewed 1366461 times
    The game option can be set to log message and emotes, log messages only, or disabled; emotes are on by default, so don't forget to turn them off if you don't want them.
And of course, some bugfixes:
  • Remember back in 0.5.3, I discovered that all our talents and spells are supposed to have self-fire protection? Well, I had fixed that, but apparently that fix got clobbered when I implemented particles, and I never noticed. :oops: It should be there now. I checked this time. :wink:
  • Couple automatizer-related bugs:
    • Small screwup in looking up skill values by display name rather than internal ID; "skill('ALCHEMY')" worked, but "skill('Alchemy')" didn't.
    • Also, the parser was passing numbers around as strings internally. Which works for arithmetic in Lua, but not comparisons.
  • Speaking of the automatizer, turns out it can be triggered by using some items like scrolls or potions, before we go back and try to remove the used item from inventory. :shock: I don't think it will happen in practice, since usually the automatizer will have already destroyed it before you try to use it; I tripped over it in debugging, though, so it should be fixed now.
  • Small typo in handling of chests that I think would have prevented the Disarm spell or similar effects from properly disarming them.
  • Scrolls of Summon Undead and Summon Monster were choking if they failed to actually summon anything.
  • Pets, notably including reanimated corpses from the Raise Dead spell (which is how I found this bug) but also from things like summons from totems, are supposed to report their "anchor" in their tooltip, which is typically their summoner which they're supposed to stay near. Thanks to yet another stupid typo, that wasn't being added.
  • Of course, pets are also supposed to be anchored to their summoner when they're summoned, and in most places I wasn't doing that. :oops:
  • So I think I've been accidentally using the same utility method to summon hostile NPCs (from a Scroll of Summon Undead, for instance) as I've been using to summon friendly NPCs (for spells like Summon Animal or Manwe's Call, for instance), without telling the method which kind I actually wanted. :oops: I think I've got all of those sorted out now, but if you see any summoned creatures that are friendly when they're supposed to be hostile or vice versa, let me know.
  • Fixed a couple obscure log messages that weren't being properly shown. [Note to self: the first argument to game.logPlayer() has to be the actor that you're checking for playerness… :oops: ]
  • The formula for computing chance of failure for spells turns out to be nearly identical to the one used for other powers liks mindcraft and necromancy, so my first instinct was to consolidate them into a single function keying off the skill used — except that I was failing to take into account substituted skills like Sorcery or Prayer. We Apologize for the Failure.™ :oops:
  • Yet Another Stupid Copy/Paste Bug™ in the pet command dialog.
  • Fun fact: the Entity:loadList() method provides a convenience reference to the engine.DamageType module for use in field values in the entities being loaded. That reference does not stick around, however, for use in entity methods, which have to require('engine.DamageType') themselves. I'd fixed that in objects and grids a while back, but not in traps. We Apologize for the Omission.™
I've probably missed some reported bugs in the above; We Apologize for the Inconvenience.™ :oops: (Just report them again. :wink: ) Known bugs that are still under investigation include:
  • Travak appearing multiple times (and apparently other artifacts…).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness
    in Object:getDesc().
  • Maze edge walls not visible. (Actually, is this still a problem? My tests aren't reproducing it.)
This is, of course, a pretty large bunch of changes, and has probably introduced some new bugs, to go with any bugs that haven't been found yet (and any that have and I've forgotten about… :oops: ). And since this is a minor point release instead of a bugfix release, there's always the possibility that some bugfixes or game behavior changes that were applied in one of the release branches failed to get merged back to trunk. As always, here is a good place to report said bugs.

And as always, the .team file for the release is available from my site, along with the Subversion repo and SVN::Web front-end thereto. And for those of you following along on SVN, the 0.7.0 release branch will get bug fixes for all the aforementioned inevitable bugs.

And since having them scattered throughout the thread is sort of useless, here's a reference list of all the T2 addons I've released:
  • Alchemic Arcanorum (current release 1.0.0): Starts Alchemist characters with an Alchemic Arcanorum object from my old ToME:Arcanorum T2 module, which can be used to store and extract essences.
  • Gender Parity (current release 1.0.1): Modifies assorted NPCs that don't particularly have to be male or female so that they can be either randomly.
  • Go to Landmark (current release 1.0.1): A quickie port of my T4 addon of the same name; allows you to auto-travel to various landmarks like stores or up/down stairs via the "Show known landmarks" action on the <Esc> menu.
  • Neutral Townsfolk (current release 1.0.0): As requested by Thorondor. :wink: Modifies a few of the more harmless town denizens into the "Neutral" faction so they don't pester you.
  • ZAngband Monsters (current release 1.0.1): Adds ZAngband monsters (hence the name). Untested.
  • Gondolin Book Store (current release 1.0.0): Also as requested by Thorondor. :wink: Adds a book store to Gondolin (hence the name…).
And with all that off the table, I have no obvious next projects (although I strongly suspect most of my near-term work will be fixing all the bugs I just introduced and filling in all the parts of the new features that I missed… :oops: ) Any requests?
"Blessed are the yeeks, for they shall inherit Arda..."

Clatch
Posts: 1
Joined: Mon May 22, 2023 6:41 pm

Re: Porting ToME2 to the T4 engine

#614 Post by Clatch »

Okay. Newbie here. I downloaded this to check it out, and WOW! I was surprised to see the same interface.

I'm trying to decipher some of the comments here, though. There is mention of "sound F/X." What is that referring to? Are you referring to implementing sound and music?

Thorondor
Halfling
Posts: 105
Joined: Wed Apr 15, 2015 11:59 am

Re: Porting ToME2 to the T4 engine

#615 Post by Thorondor »

Cheers Zizzo
Think a bug has crept in RE self-damage with spells ; - casting globe of light now damages player - the player is affected just as much as monsters.
the thing I mentioned with arrows: if you try to buy a stack of arrows e.g. 23 arrows, it'll probably cost about 8gp. if you sell the 23 arrows you'll probably get 8gp back. If you sell 1 arrow at a time you'll get 1 GP so theoretically you could make a few gold pieces for free. Not that I would - too tedious.

Couple of other things:
Have noticed that if you have a bad ring e.g. ring of stupidity, but it's not fully identified, then you can still sell it!
I think gloves of agility are hindering spellcasting; - i don't think this occurred in original T2

could you remind me how to get the addons e.g. gondolin bookstore into the game?

In terms of features to come:
- is it possible to get a short term shortcut for going cowardly and changing speed?
- is mindcraft available yet? - that'd make priests etc more viable.

Thanks again :)

Post Reply