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
Thorondor
Halfling
Posts: 105
Joined: Wed Apr 15, 2015 11:59 am

Re: Porting ToME2 to the T4 engine

#661 Post by Thorondor »

Hi Zizzo
Cheers for advice on Nazgul, tbh i'm not very good with warrior types - usually prefer to incinerate Nazgul with fireflash and similar :)
you asked something about rods; - need to ID both components to attach as far as I can see.
haven't booted up the old 2.35 to check RE dragon armour activation; - I've a feeling that you needed to *ID* to confirm resistance to elements but the way you've got it (i.e. obviously a red dragon armour resists fire) seems sensible :)
Just did first god quest without a hitch

just had an error in beastmaster shop:

error = "Game version: tome2-0.7.8\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /loader/init.lua:156: Error while loading base '/mod/dialogs/BeastmasterResearch.lua':\
/mod/dialogs/BeastmasterResearch.lua:116: '}' expected (to close '{' at line 109) near 'list'\
At [C]:-1 \
At [C]:-1 error\
At /loader/init.lua:156 \
At [C]:-1 require\
At /data/chats/beastmaster-shanty.lua:57 action\
At /engine/dialogs/Chat.lua:104 use\
At /engine/dialogs/Chat.lua:62 fct\
At /engine/ui/VariableList.lua:143 onUse\
At /engine/ui/VariableList.lua:121 \
At /engine/KeyBind.lua:231 receiveKey\
At /engine/ui/Dialog.lua:825 keyEvent\
At /engine/ui/Dialog.lua:512 "
seen = true
reported = false

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

Re: Porting ToME2 to the T4 engine

#662 Post by Thorondor »

Hi,
just completed library quest in Minas Anor. once it's done you have to complete the spellbook there / then. In original 2.35 there was an option to delay certain quest rewards to be acquired at a later date. Is this feasible for a future release (non-urgent)
Cheers :)

Edit
Just noticed something slightly odd; - you can buy rings of levitation in the magic shop but I can't sell one.

Edit 2: just tried light activation rand-art - says it's not implemented yet.

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

#663 Post by Zizzo »

Thorondor wrote: Tue Nov 07, 2023 9:56 pm you asked something about rods; - need to ID both components to attach as far as I can see.
[sound F/X: source diving] Hmm, I think we're getting that right for the rod tip but not the rod. Easy enough to fix. What I was probably asking about was whether you needed to *ID* a rod tip (or a rod with an attached tip) to have its activation described in the object description.
Thorondor wrote: Tue Nov 07, 2023 9:56 pm haven't booted up the old 2.35 to check RE dragon armour activation; - I've a feeling that you needed to *ID* to confirm resistance to elements but the way you've got it (i.e. obviously a red dragon armour resists fire) seems sensible :)
That's T2 original behavior, or should be if I'm doing it right. T2 object definitions include the ability to define "obvious" flags for an object, which the player should be able to know about the object without having to fully *ID* it. Red DSM, for instance, specifies resist fire as an obvious flag.
Thorondor wrote: Tue Nov 07, 2023 9:56 pm just had an error in beastmaster shop:

error = "Game version: tome2-0.7.8\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /loader/init.lua:156: Error while loading base '/mod/dialogs/BeastmasterResearch.lua':\
/mod/dialogs/BeastmasterResearch.lua:116: '}' expected (to close '{' at line 109) near 'list'\
[sound F/X: source diving] Mmm, yeah, the Beastmaster Shanty is a bit of a mess. I'll fix that for next release.
Thorondor wrote: Wed Nov 08, 2023 10:37 pm just completed library quest in Minas Anor. once it's done you have to complete the spellbook there / then. In original 2.35 there was an option to delay certain quest rewards to be acquired at a later date. Is this feasible for a future release (non-urgent)
Cheers :)
Sure, that should be easy. I think we already do that for the fireproofing quest.
Thorondor wrote: Wed Nov 08, 2023 10:37 pm Just noticed something slightly odd; - you can buy rings of levitation in the magic shop but I can't sell one.
[sound F/X: testing] Can't reproduce so far. Any chance the ring was un-ID'd and Cursed?
Thorondor wrote: Wed Nov 08, 2023 10:37 pm Edit 2: just tried light activation rand-art - says it's not implemented yet.
[sound F/X: source diving] Do you mean a light absorption randart? Yeah, that looks like the last junkart power that we haven't implemented yet. That shouldn't be too hard to have 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

#664 Post by Zizzo »

Okay, I've got a fair amount of backward-incompatible changes backed up at this point, and I've more or less convinced myself that the new features won't immediately self-destruct, :? so keep your fingers crossed:

Release 0.8.0 "Puppetmaster"

The big feature for this release is puppeting via the Fire Golem and Mind Steal spells. If you're not familiar with this, basically this allows you to create and control a puppet creature, or dominate the mind of another creature and puppet it around. It's sort of like taking control of the Alchemists' golem in T4, but more limited:
  • While you're driving your puppet, your original body will take no actions. If your puppet dies, you'll be returned to your original body; if your original body dies, you're dead.
  • Your options while puppeting are limited; you can attack other monsters with melee attacks or with the puppeted creature's talents, and you can pick up or drop objects, but you can't wield/wear them (and NPCs don't wear anything for you to take off). You also can't leave the level or open or close doors.
  • In addition to the puppeted creature's usual talents, you'll also have a Release Control talent, which is how you return to your original body. You will be offered the choice to release or destroy your puppeted body:
    • Releasing the puppeted creature will (if I've done this right) restore it to its original hostility — although fire golems are friendly, so it'll basically net you a pet. :wink:
    • Destroying the puppeted creature might seem like an easy way to take out tough opponents, but higher-level targets have a greater chance of resisting, and uniques are immune. Also, you get no XP for the kill.
We also have a few unrelated features:
  • Give the Minas Anor Library quest the option to come back for your quest reward later, as we do with the Lothlorien fireproofing quest.
  • Implement light absorption junkarts. And AFAICT that was the last unimplemented junkart power.
  • How on earth did I not have shortcut keys on the use-item dialog, after having gone to the effort of writing an addon to add them to T4? :oops: :wink:
  • Not a visible feature, but I've done some internal structural rearrangement in an attempt to prevent the kind of persistent object-related bugs that happen when a method defined in the object template has a bug, like the potion-shattering problem that Thorondor kept running into even after it was officially fixed. In the new system, any object method that's even remotely complicated is defined in a separate global table and called from stub methods in the object template — which means that if we fix a bug in the external method, all current objects in existing games, in the player inventory or in stores, will effectively get the fix retroactively. :twisted:
  • We now implement the NPC Teleport To spell. ([Scorpion voice:] "Get over here!" :twisted: ) And unlike original T2, this should also work for one NPC against another NPC.
And of course, an embarrassingly large number of bugfixes:
  • I don't think I was doing reflection quite right. The reflected bolt is supposed to hit a location within radius 1 of the source (I think I was centering on target :oops: ) in line of sight of the target, and reflection isn't supposed to happen if source and target are adjacent (presumably so that the ricochet doesn't accidentally hit the target).
  • I think I've finally figured out why we kept getting duplicate artifacts: the game doesn't register an artifact as created until it's officially "added" to the zone you're in, and in most of the places where we were creating objects, we weren't doing that. :oops: I think I've caught everywhere I need to patch that up.
  • Small fix to a few object types that weren't properly handling the "don't show mods" flag to :getName(). So, for instance, in the list of princess quest rewards, a Mace will show up as "Mace" instead of "Mace (2d4)", as intended, but Arrows were showing up as "Arrows (1d4)" instead of "Arrows".
  • The Rangers' Guild in Lothlorien and Minas Anor and the Golden Flower in Gondolin were screwing up trying to find arrows they could enchant for you. As a small bonus, we extend the enchant-arrows functionality slightly to cover arrows in both your quiver and your inventory at once (all the other bow/weapon/armor enchanting in stores will only enchant what you're currently wielding/wearing, as per baseline T2 behavior).
  • Alchemists' Detatch Rod Tip power apparently wasn't cleaning up sufficiently behind itself; I think you would still have been able to use the rod afterward as though the tip were still attached (that or it would have choked trying…).
  • By executive decree, :wink: I'm declaring that rod tips and rods with attached rod tips will describe their activation when they're just ID'd; everything else now requires a full *ID*.
  • Traps of Silent Switching were something of a mess. They seem to be working now. We Apologize for the Inconvenience.™ :twisted:
  • And speaking of traps, apparently I implemented vault generation before I had implemented traps, because there were several notes in the vault generation code to the effect of "TODO place trap here". You are checking for traps before entering vaults, yes? :twisted:
  • Assorted fixes to the Beastmaster Shanty's monster research option.
  • Caught a few more object activations that weren't defining damage types properly, notably Potions of Blindness, Booze and Poison.
  • Spells whose school skills are made accessible by Sorcery are supposed to be uncastable while blind or confused, unless the spell is specifically flagged otherwise. Some spells, however, have multiple school skills (Thunderstorm, for instance, is Air/Nature), and I was screwing up the check in that case. :oops:
  • T2 requires both rod and rod tip to be ID'd before attaching the one to the other; we were covering the latter, but not the former.
  • Turns out we need to be giving the AI quite a bit more help in the talent definition than we have been so far — notably, a .target() method to tell the AI how to choose a target. Honestly, I'm surprised this was actually working. [In my defense, the NPC talents code is some of the oldest in the module… :oops: ] I'm not entirely sure I'm getting this right, so be sure to report any unusual behavior.
  • Temporary effects weren't being handled for NPCs quite as well as I'd hoped. In particular, I'm not sure the NPC spell Haste Self would actually have had any effect. On the other hand, I'm worried that other temporary effects might be a bit too player-specific in their implementations (although I have mostly convinced myself that most of those come from using objects or talents, which you can't do while puppeting). Basically, as above, let me know if anything looks weird. :oops: :wink:
  • Small tweak to make sure Smeagol's Ring of Invisibility doesn't get promoted to a randart or an artifact. :wink:
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:
  • Artifacts appearing multiple times (which we hope we've fixed with this release).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness in Object:getDesc(). (Think we've got this one too.)
  • Ring of Stupidity appearing in store stock.
Now, this new release has some nasty and messy stuff going under the hood, so I've almost certainly 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.8.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…).
  • Gervais Tiles for ToME Classic (current release 1.0.1): Repurposes David Gervais' TomeTik tiles (reused here pursuant to the Creative Commons CC-BY-3.0 license) for use with our T2 module.
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..."

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

Re: Porting ToME2 to the T4 engine

#665 Post by Thorondor »

Cheers for another update, exciting times 😁
Looking forward to it. One character on previous version is doing well, almost at the bottom of moria so will continue to see how far I can get it, in parallel with new version.
Updates from newer version might be a bit slower.
From a gameplay perspective dungeon towns sound interesting though not easy. One thing I did wonder is whether there's an easy way of borrowing the graphics for the character equipment page? Purely for cosmetic and not worth lots of time investment but would be cool!

Incidentally there's a vault I'm near to in moria that's surrounded 100% by permanent wall or mountain chain. Let me know if you need a screenshot

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

#666 Post by Zizzo »

Thorondor wrote: Wed Nov 29, 2023 2:24 am One character on previous version is doing well, almost at the bottom of moria so will continue to see how far I can get it, in parallel with new version.
Updates from newer version might be a bit slower.
No worries; that's pretty much what I figured.
Thorondor wrote: Wed Nov 29, 2023 2:24 am From a gameplay perspective dungeon towns sound interesting though not easy.
Okay, I'll start digging in that direction, then.
Thorondor wrote: Wed Nov 29, 2023 2:24 am One thing I did wonder is whether there's an easy way of borrowing the graphics for the character equipment page? Purely for cosmetic and not worth lots of time investment but would be cool!
How do you mean?
Thorondor wrote: Wed Nov 29, 2023 2:24 am Incidentally there's a vault I'm near to in moria that's surrounded 100% by permanent wall or mountain chain. Let me know if you need a screenshot
Mm, I think I've had problems in that direction before. Yes, a screenshot would probably help, thanks.
"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

#667 Post by Zizzo »

Zizzo wrote: Wed Nov 29, 2023 5:59 pm
Thorondor wrote: Wed Nov 29, 2023 2:24 am Incidentally there's a vault I'm near to in moria that's surrounded 100% by permanent wall or mountain chain. Let me know if you need a screenshot
Mm, I think I've had problems in that direction before. Yes, a screenshot would probably help, thanks.
Hang on, just thought of something: have you hovered over the mountain chain tiles to see if their tooltip describes them as diggable? See, back in v0.2.3, I added a "diggable" version of the mountain chain grid to handle some cases of walls inside vaults that are expected to be diggable but ending up being non-diggle mountain chains in zones like Moria. (In retrospect, giving those diggable mountain chain tiles the same name as regular mountain chains may not have been the best idea… :oops: ) I don't know OOTOMH if that fix would also apply to the walls on the outer edge of the vault; if not, I'll probably need to apply it there too.
"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

#668 Post by Thorondor »

Cheers
I tried disarming and thaumaturgy area wall destruction spell on all reachable wall tiles. This looks like a vault that has specific void jump gates in it to help you get from one room to the next, but suspect that the mountain chain tiles stopped the entrance to the room. All of the tiles with mouseover display permanent wall (or mountain chain)

RE the character inventory page:
in DG's main game when it comes to equipping e.g. a hat or a sword, you drag it to being over a representation of your character and drop it onto a box. No gameplay effect whatsover, just looks nice to be able to 'see' your character.
it's probably deserving of being absolutely bottom of the list of things to do.

edit
sorry, can't seem to attach an image. I think this is the vault layout, with ^ = void jump gate. the permanent walls on the left have all been replaced by mountain chain. (each chamber is 5x4 squares, - they don't line up exactly when displayed on forum).
I don't have climbing gear so mountain chains are impassable.

#####################
#.....#......#......#.....#
#....^#......#^....#^....#
#.....#^....#....^#.......#
#.....#.....#.....#.......#
#####################



other things of note (0.78)
a cursed amulet of nothing is flagged as "excellent" when I looked on automiser.

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

Re: Porting ToME2 to the T4 engine

#669 Post by Thorondor »

Hi
Have attempted a character in 0.80
unfortunately it repeatedly crashed early in the Bree house quest, game just freezes.
Have extracted something from the error log
character rohanknight geomancer following eru (there's a dynamic combination...)

ERROR:
Game version: tome2-0.8.0
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0

Lua Error: /mod/class/Actor.lua:100: attempt to index global 'level' (a nil value)
At [C]:-1 __index
At /mod/class/Actor.lua:100 check
At /mod/class/Actor.lua:1239 preUseTalent
At /data/hotkey-icons.lua:69 display
At /mod/class/HotkeysIconsDisplay.lua:73 display
At /engine/HotkeysIconsDisplay.lua:293 toScreen
At /mod/class/Game.lua:845

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

#670 Post by Zizzo »

Thorondor wrote: Tue Dec 05, 2023 9:22 am in DG's main game when it comes to equipping e.g. a hat or a sword, you drag it to being over a representation of your character and drop it onto a box. No gameplay effect whatsover, just looks nice to be able to 'see' your character.
Ah, the equipment doll. Yeah, that requires moddable tile support, which would require a lot of image assets: images for all the wearable/wieldable equipment for every race and sex, not to mention base body images for all the races and sexes. In theory we could maybe borrow the T4 moddable tile images, but (a) I have no idea what their license is, and (b) that still wouldn't cover Ents or Kobolds or DeathMolds, or any of the myriad of armor and weapon types. (I mean, I could conceivably just have the player tile as the central "doll" and surround it with boxes that you could drag-n-drop stuff out of inventory onto, but I doubt that's what you had in mind…)
Thorondor wrote: Tue Dec 05, 2023 9:22 am sorry, can't seem to attach an image. I think this is the vault layout, with ^ = void jump gate. the permanent walls on the left have all been replaced by mountain chain. (each chamber is 5x4 squares, - they don't line up exactly when displayed on forum).
I don't have climbing gear so mountain chains are impassable.

#####################
#.....#......#......#.....#
#....^#......#^....#^....#
#.....#^....#....^#.......#
#.....#.....#.....#.......#
#####################
[sound F/X: source diving] Ah, yes, "The Between Vault":

Code: Select all

return [[
XXXXXXXXXXXXXXXXXXXXXXXXX
#,,,,,X&...@X..**&X....9X
#...&1X.,,,2X..**&X3...9X
#...&.X1,,,.X2.**3X....9X
#,,,,,X&...@X..**&X....9X
XXXXXXXXXXXXXXXXXXXXXXXXX]]
Those '#' tiles on the west wall are supposed to be diggable mountain chains, and in my test, I confirmed that that's happening; the problem is that no corridor is placed to that wall (or to that vault at all), and in Moria the 'fill' terrain is of course undiggable mountain chain, which leaves it inaccessible.

Interestingly, this is the only vault that isn't surrounded by a ring of 'outer room wall' tiles, which may be confusing the corridor-digging code. I think I'm going to need to do a deeper dive on this one.
Thorondor wrote: Tue Dec 05, 2023 9:22 am a cursed amulet of nothing is flagged as "excellent" when I looked on automiser.
[sound F/X: source diving] …I think that tracks original T2 behavior: if the amulet is not cursed, the code picks up Cursed as an ego and keys off that.
Thorondor wrote: Wed Dec 06, 2023 6:02 pm Have attempted a character in 0.80
unfortunately it repeatedly crashed early in the Bree house quest, game just freezes.
Have extracted something from the error log
[…]
ame version: tome2-0.8.0
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0

Lua Error: /mod/class/Actor.lua:100: attempt to index global 'level' (a nil value)
[…]
[sound F/X: source diving] Ouch, yeah, that's a nasty one. In fact, that's probably going to break everything, so I'd better go ahead and push out an emergency bugfix release:

Release 0.8.1 "None So Blind"

This is, as noted, an emergency bugfix release; not many bugs, but one of them is a nasty show-stopper:
  • Stupid typo in the previous release's changes to checking whether the player is blind and thus cannot cast spells.
  • Missed a spot switching Object.resolve_flags{} over to Object:setResolveFlags().
Known bugs that are still under investigation include:
  • Artifacts appearing multiple times (which we hope we fixed in v0.8.0).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness in Object:getDesc(). (Which we also hope we fixed in v0.8.0.)
  • Ring of Stupidity appearing in store stock.
And one tiny feature for completeness: :wink:
  • Nothing player-visible, but in the debug dialog for changing zones, I've reproduced the feature from the T4 module's equivalent dialog that you can type a letter to skip ahead to the next zone in the list whose name starts with that letter. Has been useful in testing recently.
As I expected, I'm probably going to be spending the next few patch releases fixing all the bugs I inevitably introduced with v0.8's bigger changes. :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.8.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…).
  • Gervais Tiles for ToME Classic (current release 1.0.1): Repurposes David Gervais' TomeTik tiles (reused here pursuant to the Creative Commons CC-BY-3.0 license) for use with our T2 module.
In the meantime, for the next feature relase I'm working on dungeon towns, as requested; so far it's been both easier and harder than I had feared. Still taking requests, of course.
"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

#671 Post by Thorondor »

Cheers Zizzo
i'll have a bash at 0.81 as soon as I've managed to kill off my current character:
L43, almost at the bottom of Moria now.

A few things i've noticed:
the spell recovery does restore hitpoints but doesn't seem to restore life levels. Spell level = 30 so should be sufficient.

when I met a Q: "The draconic quylthulg tries to cast summon dragon but fails" - however it successfully summons a dragon each time!
holy fire doesn't do additional damage to evil creatures; - this would be nice to sort if feasible as it's something mages use a lot.
noxious cloud is meant to be a choking gas that harms all living creatures however a few creatures seem to resist it - i think it was some sort of troll though apologies I didn't take a note of which one; - that might be the correct implementation but i don't remember 2.35 working in that way

Are all non-squishy golems reflective of bolts / spells now? - again may have been original T2 behaviour just I don't remember it being that way.

on 0.78 casting identify spell whilst inventory displayed caused a significant crash - game locked

also 0.78, - how do you bind something to spellbinder? - nothing seems to happen.

one nasty crash - game froze on going down stairs:

[LOG] #YELLOW_GREEN#There is a down staircase here.#LAST#
[PlayerProfile] eventDisconnected
Removed unique mod.class.Object/CORPSE ::
Removed unique mod.class.Object/DEMONHORN_OF_GOTHMOG ::
Creating level moria 20
[Zone:newLevel] moria beginning level generation, count: 1
[MAPGEN] precognition: Arena level
[MAPGEN] Trying to place room at 10,4
[MAPGEN] room weights 100, 65
[MAPGEN] maybe unusual room?
[MAPGEN] trying unusual room
[MAPGEN] pick_room(wgt_unusual, true) 78/100 from (overlapping=20/cross=20/large=25/circular=10/fractal_cave=15/crypt=10)
[MAPGEN] createRoom('fractal_cave', 10, 4, true)
[MAPGEN] Trying to place room at 7,0
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 7, 0, nil)
[MAPGEN] Trying to place room at 13,2
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 13, 2, nil)
[MAPGEN] Trying to place room at 4,0
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 4, 0, nil)
[MAPGEN] Trying to place room at 16,2
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 16, 2, nil)
[MAPGEN] Trying to place room at 1,3
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 1, 3, nil)
[MAPGEN] Trying to place room at 10,3
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 10, 3, nil)
[MAPGEN] Trying to place room at 7,2
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 7, 2, nil)
[MAPGEN] Trying to place room at 10,2
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 10, 2, nil)
[MAPGEN] Trying to place room at 10,1
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 10, 1, nil)
[MAPGEN] Trying to place room at 16,0
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 16, 0, nil)
[MAPGEN] Trying to place room at 13,5
[MAPGEN] room weights 100, 65
[MAPGEN] trying basic room
[MAPGEN] createRoom('basic', 13, 5, nil)
[MAPGEN] Trying to place room at 16,4
[MAPGEN] room weights 100, 65
[MAPGEN] maybe unusual room?
[MAPGEN] ooh, maybe very unusual room?
[MAPGEN] pick_room(wgt_very_unusual, very) 65/65 from (monster_nest=15/monster_pit=15/lesser_vault=15/greater_vault=15/random_vault=5)
[MAPGEN] createRoom('random_vault', 16, 4, very)
[MAPGEN] random_vault using subroom 'target_vault'


ERROR:
Game version: tome2-0.7.8
Addons: gond_book-0.3.0, town_neutral-0.3.0

Lua Error: /data/rooms/target_vault.lua:81: attempt to index global 'get' (a nil value)
At [C]:-1 __index
At /data/rooms/target_vault.lua:81 createRoom
At /mod/class/generator/map/T2DungeonLevel.lua:153 pick_room
At /mod/class/generator/map/T2DungeonLevel.lua:182 layoutMap
At /mod/class/generator/map/T2LevelGenerator.lua:68 generate
At /engine/Zone.lua:1093 newLevel
At /engine/Zone.lua:999 getLevel
At /mod/class/Game.lua:563 changeLevel
At /mod/class/Game.lua:1277
At /engine/KeyBind.lua:243

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

#672 Post by Zizzo »

Thorondor wrote: Wed Dec 20, 2023 9:34 pm the spell recovery does restore hitpoints but doesn't seem to restore life levels. Spell level = 30 so should be sufficient.
[sound F/X: testing] Ah, stupid typo. I'm surprised that one didn't pop up an error dialog. Fixed for next release.
Thorondor wrote: Wed Dec 20, 2023 9:34 pm when I met a Q: "The draconic quylthulg tries to cast summon dragon but fails" - however it successfully summons a dragon each time!
[sound F/X: source diving][sound F/X: forehead repeatedly striking desk] Fixed in next release. :oops:
Thorondor wrote: Wed Dec 20, 2023 9:34 pm holy fire doesn't do additional damage to evil creatures; - this would be nice to sort if feasible as it's something mages use a lot.
[sound F/X: testing] It is in my tests. Are you factoring in the damage reduction based on distance from the center of the Fireflash ball?
Thorondor wrote: Wed Dec 20, 2023 9:34 pm noxious cloud is meant to be a choking gas that harms all living creatures however a few creatures seem to resist it - i think it was some sort of troll though apologies I didn't take a note of which one; - that might be the correct implementation but i don't remember 2.35 working in that way
[sound F/X: source diving] Noxious Cloud switches to the "suffocation" damage type at spell level 30; before that, it does poison damage.
Thorondor wrote: Wed Dec 20, 2023 9:34 pm Are all non-squishy golems reflective of bolts / spells now? - again may have been original T2 behaviour just I don't remember it being that way.
[sound F/X: source diving] The following monsters have the REFLECTING flag:
  • Colbran
  • Mithril golem
  • Cherub
  • Eog golem
  • Colossus
  • Crystal drake
  • Seraph
  • Great crystal drake
  • Fallen angel
  • Eöl, the Dark Elf
  • Archon
  • Iron lich
  • Smaug the Golden
  • Knight Templar
  • Uriel, Angel of Fire
  • Azriel, Angel of Death
  • Gabriel, the Messenger
  • Saruman of Many Colors
  • Maeglin, the Traitor of Gondolin
  • Great Wyrm of Power
  • Sarko, rider of gold Foronth
  • Sauron, the Sorcerer
  • Gandalf the Grey
  • The Sandworm Queen
  • Various spirits that I think can only appear in the Void.
If you're seeing reflection effects from anything else, let me know.
Thorondor wrote: Wed Dec 20, 2023 9:34 pm on 0.78 casting identify spell whilst inventory displayed caused a significant crash - game locked
:? No idea what could be happening there. I'll investigate.
Thorondor wrote: Wed Dec 20, 2023 9:34 pm also 0.78, - how do you bind something to spellbinder? - nothing seems to happen.
[sound F/X: testing] …wow. The Spellbinder dialog was a mess. Did I just suppress those error dialogs somehow? :? Fixed for next release.
Thorondor wrote: Wed Dec 20, 2023 9:34 pm one nasty crash - game froze on going down stairs:
[sound F/X: source diving] Yeah, level generator tried to build a vault that had some typos in it. Fixed for next release.

And that vault bug at least could easily be a show-stopper, so my Christmas present to the list: 🎅 :mrgreen:

Release 0.8.2 "None So Blind"

Couple show-stoppers in this release:
  • Yet Another Stupid Typo™ in Player:restoreExp() that probably have prevented any restore-experience effect from working.
  • Multiple errors in the Spellbinder spell's setup dialog.
  • Also, the Spellbinder effect that we use to store info about your bound spells is suposed to, y'know, describe which spells you've got bound. :oops:
  • Stupid typo in NPC summon talents that caused them to use the "failed" message whether or not the summon succeeded.
  • Typos in the 'target vault' room definition.
  • Copy/paste error in 0.8.0's implementation of the NPC Teleport To spell, that basically broke all teleportation for everyone… :oops:
And because none of that helps Thorondor at all, :? I'm also releasing:

Release 0.7.9 "Unfinished Business"

If I've done this right, this should have all the bugfixes and at least some of the (non-puppeting-related) features from the 0.8.0 thru 0.8.2 releases. (Interestingly, the te4.org module upload page apparently lets you upload module versions out of order, and sorts them appropriately by version. :) )

Known bugs that are still under investigation include:
  • Artifacts appearing multiple times (which we hope we fixed in v0.8.0).
  • Randarts reporting *ID*'d info when just ID'd? Maybe some sloppiness in Object:getDesc(). (Which we also hope we fixed in v0.8.0.)
  • Ring of Stupidity appearing in store stock.
  • Hard lockup when Identifying?
As I expected, I'm probably going to be spending the next few patch releases fixing all the bugs I inevitably introduced with v0.8's bigger changes. :oops: As always, here is a good place to report said bugs.

And as always, the .team files for the 0.8.2 and 0.7.9 releases are 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.8.2 and 0.7.9 release branches 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…).
  • Gervais Tiles for ToME Classic (current release 1.0.1): Repurposes David Gervais' TomeTik tiles (reused here pursuant to the Creative Commons CC-BY-3.0 license) for use with our T2 module.
In the meantime, for the next feature relase I'm working on dungeon towns, as requested; so far it's been both easier and harder than I had feared. Still taking requests, of course.
"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

#673 Post by Thorondor »

Hi Zizzo
thanks for the update
the 0.78 (0.79) character died on last but one level of moria; - hadn't got round to spellbinding properly and paid the price; oh well.
Now onto 0.82, no need for future backpatching.
Running an eru following geomancer now; - quite fun!
A couple of things that are odd; - one princess room was generated deep in the forest on barrow downs, no way to get to the vault.
Also a wierd thing happened with a summoned elemental; - it kept killing a large kobold but the kobold reappeared a few times. Strange. Will monitor.
Anyway a couple of error reports are below; - one of the themes is that scrolls of lore don't seem to be working properly

tried a fire golem; - managed to summon it and release it; there's one error below, when it is released it doesn't follow the caster; - i think in 2.3x the golem follows the caster around after it's released in the same manner as a summoned elemental does.

Request:
is it possible for some sort of icon for elemental wave (Geomancy)

Error reports:
error = "Game version: tome2-0.7.9\
Addons: gond_book-0.3.0, town_neutral-0.3.0\
\
Lua Error: /mod/class/Actor.lua:1661: attempt to index local 'attacker' (a nil value)\
At [C]:-1 __index\
At /mod/class/Actor.lua:1661 onHitInMelee\
At /mod/class/interface/PlayerCombat.lua:644 bumpInto\
At /mod/class/Actor.lua:1107 attack\
At /mod/class/Actor.lua:590 check\
At [string \"return function(self, x, y, what, ...) local ...\"]:1 checkAllEntities\
At /engine/Actor.lua:243 move\
At /mod/class/Actor.lua:520 move\
At /mod/class/Player.lua:313 moveDir\
At /mod/class/Player.lua:305 moveDir\
At /mod/class/Game.lua:1096 move_or_scroll\
At /mod/class/Game.lua:1121 \
At /engine/KeyBind.lua:231 "
seen = true
reported = false


error = "Game version: tome2-0.8.2\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /mod/class/Object.lua:1600: attempt to index a nil value\
At [C]:-1 __index\
At /mod/class/Object.lua:1600 getFlavorText\
At /mod/class/Object.lua:319 getName\
At /mod/class/interface/PlayerFates.lua:42 pick_target\
At /mod/class/interface/PlayerFates.lua:162 gainFate\
At /mod/class/Player.lua:592 on_global_turn\
At /mod/class/Actor.lua:304 actBase\
At /engine/GameEnergyBased.lua:119 tickLevel\
At /mod/class/GameEnergyBasedEvilHack.lua:32 tick\
At /engine/GameTurnBased.lua:51 tick\
At /mod/class/Game.lua:746 "
seen = true
reported = false


error = "Game version: tome2-0.8.2\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /mod/class/Player.lua:1713: /data/general/objects/bases.lua:104: attempt to call field 'use_simple' (a nil value)\
At [C]:-1 \
At [C]:-1 error\
At /mod/class/Player.lua:1713 playerUseItem\
At /mod/dialogs/UseItemDialog.lua:80 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

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

#674 Post by Zizzo »

Thorondor wrote: Sat Jan 13, 2024 9:56 pm the 0.78 (0.79) character died on last but one level of moria; - hadn't got round to spellbinding properly and paid the price; oh well.
Ouch. Condolences. :(
Thorondor wrote: Sat Jan 13, 2024 9:56 pm A couple of things that are odd; - one princess room was generated deep in the forest on barrow downs, no way to get to the vault.
Urk, could be a bug in the level generation code. Do you happen to remember which kind of princess quest room it was?
Thorondor wrote: Sat Jan 13, 2024 9:56 pm Also a wierd thing happened with a summoned elemental; - it kept killing a large kobold but the kobold reappeared a few times. Strange. Will monitor.
:? That is odd. I'll poke around, see if anything obvious turns up.
Thorondor wrote: Sat Jan 13, 2024 9:56 pm Anyway a couple of error reports are below; - one of the themes is that scrolls of lore don't seem to be working properly
Yeah, we hit that below… :oops:
Thorondor wrote: Sat Jan 13, 2024 9:56 pm tried a fire golem; - managed to summon it and release it; there's one error below, when it is released it doesn't follow the caster; - i think in 2.3x the golem follows the caster around after it's released in the same manner as a summoned elemental does.
That would suggest that I'm not properly leashing the fire golem in the process of converting it to an NPC. I'll check it out.
Thorondor wrote: Sat Jan 13, 2024 9:56 pm is it possible for some sort of icon for elemental wave (Geomancy)
? [sound F/X: source diving][sound F/X: forehead repeatedly striking desk] Icon image file was misnamed. Fixed for next release. We Apologize for the Inconvenience.™ :oops:
Thorondor wrote: Sat Jan 13, 2024 9:56 pm Lua Error: /mod/class/Actor.lua:1661: attempt to index local 'attacker' (a nil value)\
At [C]:-1 __index\
At /mod/class/Actor.lua:1661 onHitInMelee\
[…]
[sound F/X: source diving] Looks like you hit a monster with a fire/lightning/etc. aura; there was a typo in the code that handles that. Fixed for next release.
Thorondor wrote: Sat Jan 13, 2024 9:56 pm Lua Error: /mod/class/Object.lua:1600: attempt to index a nil value\
At [C]:-1 __index\
At /mod/class/Object.lua:1600 getFlavorText\
[sound F/X: source diving] Hmm, I think this was a fate to find some mundane "flavored" object like a potion or scroll, one that hadn't been generated before and thus didn't have flavor text like potion color assigned, and the fate code tried to compute the name of the object and choked on the lack of flavor text. My initial assessment is that it should probably be using the identified name of the object and thus not using the flavor text at all. I'll need to dig a bit further into this one.
Thorondor wrote: Sat Jan 13, 2024 9:56 pm Lua Error: /mod/class/Player.lua:1713: /data/general/objects/bases.lua:104: attempt to call field 'use_simple' (a nil value)\
At [C]:-1 \
At [C]:-1 error\
At /mod/class/Player.lua:1713 playerUseItem\
[sound F/X: source diving] Guh, stupid typo. 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

#675 Post by Zizzo »

Okay, I think I've covered at least most of what's been reported, and some of these bugs could be annoying, so let's go for an emergency bugfix release:

Release 0.8.3 "You are Fated to Find the Next Version"

This release is all bugfixes:
  • Misnamed talent icon for Elemental Wave. We Apologize for the Inconvenience.™ :oops:
  • Typo in the code that handles "retaliatory" damage, like the fire damage you take when you hit a Fire elemental in melee.
  • Misnamed the function for handling parchments. And the beauty of all that internal structural work I did for objects back in 0.8.0 is that because the typo wasn't in the stub function that lives on the object itself, all the parchments that already exist in your game should be fixed by this change. :mrgreen: :twisted: :mrgreen: :twisted:
  • Small bug in the tooltip description of NPC breath talents. Which might not have been a problem, except that Fire golems can breathe fire. :oops:
  • Among all the internal juggling needed to transform a player-puppeted NPC back to a regular NPC, I missed a case: if the NPC wasn't a companion or otherwise in the player's "party", but is in the "pets" faction, we need to re-leash it to the player like other pets.
  • Another wrinkle I missed: when you save and reload a character, the game updates the player's image and ASCII display based on race and class — which we don't want to happen if we're puppeting some NPC.
  • If we're fated to find a mundane object like a Potion of Heroism, the fate description should specify the object by its identified name instead of describing it as, say, "an Orange Potion" — not least because we may not have decided yet what color a Potion of Heroism actually is:?
Known bugs that are still under investigation include:
  • Ring of Stupidity appearing in store stock.
As I expected, I'm probably going to be spending the next few patch releases fixing all the bugs I inevitably introduced with v0.8's bigger changes. :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.8.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…).
  • Gervais Tiles for ToME Classic (current release 1.0.1): Repurposes David Gervais' TomeTik tiles (reused here pursuant to the Creative Commons CC-BY-3.0 license) for use with our T2 module.
In the meantime, making progress on dungeon towns; with luck, I'll be able to start testing soon. Still taking requests, of course.
"Blessed are the yeeks, for they shall inherit Arda..."

Post Reply