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)
0
No votes
Hey, why haven't you implemented my favorite skill/talent/spell/ability yet? (specify below)
2
50%
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)
1
25%
Hey, that's a bug! Go fix that bug! (specify below)
1
25%
Hey, you didn't list what I want to see! (specify below)
0
No votes
 
Total votes: 4

Message
Author
Thorondor
Halfling
Posts: 86
Joined: Wed Apr 15, 2015 11:59 am

Re: Porting ToME2 to the T4 engine

#631 Post by Thorondor »

Hi Zizzo
have had a brief run this evening, liking the particle effects for fireflash :) very nice!

A couple of possible bugs:
identify spell L33 is now radius 0; - i.e. it only identifies objects under the character rather than a radius 1.
Globe of light; - i think the game is now forgetting there's two forms of light and only using ? the weaker light.
(and on that spell, - is there a version of globe of light from T4 engine that could have its particle effect directly used?)

Future spell / visual effects:
Maybe a green cloud effect for noxious cloud.
Also I wonder if the firewall effect could be ported; - I think there is something similar in T4 for when the ground is burning.
Ice storm has a direct version in T4 that could maybe be copied?
Pulverising auger for dig?

Finally got a character to the maze; - it looks like the top border fully displays, - the left / right borders and bottom border don't always display. (Tested using area wall destruction); - sometimes the wall tiles are visible, but sometimes the map stops without a permanent rock border. If permanent rock is a thing in T4, should the maze just have permanent rock border?

The error RE deathwatch occurred again, but before i did the update to current version, and not on deathwatch level so I wonder if there's some object / character that it tried to generate and couldn't hence a hangup? It hasn't occurred so far (but only very limited testing so far); - will let you know if it occurs again.

Just a question; - are dungeon towns incorporated yet?

I don't think my shield of reflection is currently reflecting the mana bolts of an army of dark elven warlocks...

thanks again :)

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

Re: Porting ToME2 to the T4 engine

#632 Post by Zizzo »

Thorondor wrote: Thu Jul 13, 2023 10:31 pm Hi Zizzo
have had a brief run this evening, liking the particle effects for fireflash :) very nice!
Well thank DarkGod, since it's mostly his work. :wink:
Thorondor wrote: Thu Jul 13, 2023 10:31 pm A couple of possible bugs:
identify spell L33 is now radius 0; - i.e. it only identifies objects under the character rather than a radius 1.
[sound F/X: testing] …Hmm, can't reproduce.
Thorondor wrote: Thu Jul 13, 2023 10:31 pm Globe of light; - i think the game is now forgetting there's two forms of light and only using ? the weaker light.
[sound F/X: testing] Also can't reproduce. Don't forget that the stronger light only kicks in at level 15. And the two blast particles are pretty much simultaneous, so it may not be obvious they're both happening; check the logs for hostiles taking "weak light" vs. "light" damage.
Thorondor wrote: Thu Jul 13, 2023 10:31 pm (and on that spell, - is there a version of globe of light from T4 engine that could have its particle effect directly used?)
[sound F/X: source diving] Illuminate would make sense, I think.
Thorondor wrote: Thu Jul 13, 2023 10:31 pm Future spell / visual effects:
Maybe a green cloud effect for noxious cloud.
Also I wonder if the firewall effect could be ported; - I think there is something similar in T4 for when the ground is burning.
Ice storm has a direct version in T4 that could maybe be copied?
[sound F/X: source diving] Ah, these are persistent map effects. Slightly different mechanism; I'll need to add a way for talents to specify the overlay particle for their effect. I think Burning Wake would work for Firewall.
Thorondor wrote: Thu Jul 13, 2023 10:31 pm Pulverising auger for dig?
[sound F/X: source diving] Looks straightforward enough.
Thorondor wrote: Thu Jul 13, 2023 10:31 pm Finally got a character to the maze; - it looks like the top border fully displays, - the left / right borders and bottom border don't always display. (Tested using area wall destruction); - sometimes the wall tiles are visible, but sometimes the map stops without a permanent rock border. If permanent rock is a thing in T4, should the maze just have permanent rock border?
[sound F/X: source diving] It's supposed to. [sound F/X: testing] Hmm, I think my map generator for the Maze is writing off the edge of the map and clobbering the border walls. And I'm pretty sure the levels aren't supposed to be that large. Let me do some digging on this.
Thorondor wrote: Thu Jul 13, 2023 10:31 pm The error RE deathwatch occurred again, but before i did the update to current version, and not on deathwatch level so I wonder if there's some object / character that it tried to generate and couldn't hence a hangup? It hasn't occurred so far (but only very limited testing so far); - will let you know if it occurs again.
Well, that's sort of good, in that the error is apparently not where I thought it was (which seemed pretty much impossible); on the other hand, it means I have no idea where the bug is… :|
Thorondor wrote: Thu Jul 13, 2023 10:31 pm Just a question; - are dungeon towns incorporated yet?
Not yet. That one's not something I'm expecting to be easy… :?
Thorondor wrote: Thu Jul 13, 2023 10:31 pm I don't think my shield of reflection is currently reflecting the mana bolts of an army of dark elven warlocks...
[sound F/X: source diving] No, that's not implemented yet. Gotta figure out where that would need to happen in the code…
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#633 Post by Zizzo »

I think I'm going to go ahead and push out what I've got:

Release 0.7.5 "You Are In a Maze of Twistly Little Passages, All Reflective"

Only a couple bugfixes in this release, but one of them was a longstanding one:
  • As I feared, it turns out that my map generator for the Maze was making its level slightly too large, and thus bleeding off the edge and overwriting what are supposed to be the permawall borders. :oops:
  • Yet another typo of the sort I wish Lua could catch, in a utility method for finding suitable grids near a given location. I think it would have come up for earthquakes, or failing to create a pair of jumpgates, or for Traps of Calling Out, or for placing fated objects or creatures on a level; guess I was lucky no one tripped over it before now. :oops:
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. (Which we're hoping is fixed in this release…)
  • Ring of Stupidity appearing in store stock.
Also a couple new features:
  • More particles! In this pass we cover Noxious Cloud, Dig, Ice Storm, Firewall and Globe of Light (for this one we only use the "sunburst" effect for the stronger version of the spell).
  • Preliminary implementation of reflection, for players and NPCs. This should cover all sources of reflection from objects and the Demon Cloak spell. [Note that T2 has to do a bit of hacky guessing to determine whether an attack is a bolt spell, whereas our bolt spells literally use a method named bolt_spell(), :wink: so we might not match up perfectly with T2 on whether a particular attack should be reflected; let me know if there are any glaring mismatches. Also, remember that reflection fails 10% of the time anyway. :twisted: ]
I think I've forgotten a few bugs; I'll need to go back through my notes… :oops: As always, here is a good place to report any bugs you find.

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.5 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.
For ongoing development, continuing with the Fire Golem/puppeting stuff, and maybe picking up some more fancy talent particles. Still taking feature requests, of course. :wink:
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#634 Post by Zizzo »

On a side note, while investigating that minimap bug for the 0.7.4 release, I discovered that we could be doing a fair bit more with that than we're doing. Currently we're using the engine's most basic minimap support: walls and other terrain features that block movement show up as light grey, and everything else shows up as black (which I think effectively gets made transparent). The T4 module goes beyond that, with a sort of magenta-ish for up/down stairs and other level-change features, different shades of kind-of-purple for open/closed doors, and special colors for stuff like lava and water. Now I feel like I shouldn't be so lazy with our minimap… :oops: :wink: What would folks like to see there?
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#635 Post by Thorondor »

Cheers for another update, Cool extra particle effects :)
have only seen fireflash, globe of light and noxious cloud so far as don't have all of the spell books; - working on it... - the ones I've seen look good.

Maze: wall issue looks like it's resolved - bravo :)

Minimap: - like your suggestions for lava / water / stairs

reflection: - arrows bounce! excellent! one mana bolt received so far, which didn't bounce so not sure if it was one of the 10%.

The globe of light issue i mentioned is as follows:
mid-30s level sorcerer with good level of spell 40; - listed as 10 weak damage to light sensitive monsters and 90 damage to all surrounding monsters radius, which would usually kill most orcs outright. Game lists 30-40 damage to a light sensitive orc at range 1. It wasn't.
Same thing with dark hounds which are usually light sensitive, don't get anything like the 100 damage at range 1. (I presume this damage reduces as radius from spellcaster increases)

Identity (L33) doesn't have a radius of 1 any more. Have checked a few times, and weirdly it sometimes doesn't even identify items directly underneath my character - so far sword weapons... Though still identifies fully when in the inventory.

This error arose when autotargetting, I initially thought it was the targeting process, but it's actually whenever the mouse / target highlights a monster and it doesn't identify the monster, just displays this error for all monsters when mouse or autotarget over a monster:
error = "Game version: tome2-0.7.5\
Addons: gond_book-0.3.0, town_neutral-0.3.0\
\
Lua Error: /mod/class/NPC.lua:447: attempt to call method 'has' (a nil value)\
At [C]:-1 has\
At /mod/class/NPC.lua:447 check\
At /engine/Map.lua:801 checkEntity\
At /engine/Tooltip.lua:315 check\
At /engine/Tooltip.lua:329 getTooltipAtMap\
At /engine/Tooltip.lua:286 displayAtMap\
At /engine/interface/GameTargeting.lua:77 targetDisplayTooltip\
At /mod/class/Game.lua:889 "
seen = true
reported = false

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

Re: Porting ToME2 to the T4 engine

#636 Post by Zizzo »

Thorondor wrote: Wed Jul 26, 2023 9:36 pm Maze: wall issue looks like it's resolved - bravo :)
*whew* :wink:
Thorondor wrote: Wed Jul 26, 2023 9:36 pm Minimap: - like your suggestions for lava / water / stairs
Cool; I've made a start at that for the next release.
Thorondor wrote: Wed Jul 26, 2023 9:36 pm reflection: - arrows bounce! excellent! one mana bolt received so far, which didn't bounce so not sure if it was one of the 10%.
I think I saw at least one mana bolt reflected during testing; if this seems to be a pattern, let me know and I'll test it.
Thorondor wrote: Wed Jul 26, 2023 9:36 pm The globe of light issue i mentioned is as follows:
mid-30s level sorcerer with good level of spell 40; - listed as 10 weak damage to light sensitive monsters and 90 damage to all surrounding monsters radius, which would usually kill most orcs outright. Game lists 30-40 damage to a light sensitive orc at range 1. It wasn't.
Same thing with dark hounds which are usually light sensitive, don't get anything like the 100 damage at range 1. (I presume this damage reduces as radius from spellcaster increases)

Identity (L33) doesn't have a radius of 1 any more. Have checked a few times, and weirdly it sometimes doesn't even identify items directly underneath my character - so far sword weapons... Though still identifies fully when in the inventory.
See, these are the things I can' reproduce. In my tests, Identify ID's off the floor just fine, and Globe of Light fires both blasts. I've added some debugging logs for the next release to try and track this down.
Thorondor wrote: Wed Jul 26, 2023 9:36 pm This error arose when autotargetting, I initially thought it was the targeting process, but it's actually whenever the mouse / target highlights a monster and it doesn't identify the monster, just displays this error for all monsters when mouse or autotarget over a monster:
error = "Game version: tome2-0.7.5\
Addons: gond_book-0.3.0, town_neutral-0.3.0\
\
Lua Error: /mod/class/NPC.lua:447: attempt to call method 'has' (a nil value)\
[sound F/X: source diving] Ah, you must be using the "Gameplay | Learn monster information" game option; I hadn't tested under that. Yeah, we have to be more careful building the NPC tooltip when we're only using learned data, and it looks like I screwed up a bit there. I'll have that fixed for next release.

And I think that tooltip bug merits an emergency bugfix release:

Release 0.7.6 "Learn By Reflection"

Not many bugfixes in this release:
  • In the previous version, I added a check to NPC tooltips to note if the NPC can reflect bolt spells. In doing so, I forgot the "Gameplay | Learn monster information" game option, which means I have to do checks like that slightly differently. We Apologize for the Error.™ :oops:
  • Since I can't reproduce the bugs with Globe of Light and Identify that Thorondor reports above, I'm putting in some debug logging to try to figure out what's going on. If you see the problems again, check the log file for lines beginning with [GLOBE_LIGHT] and/or [IDENTIFY]; they will (I hope) have the information I need to track down the problem.
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().
  • Ring of Stupidity appearing in store stock.
Though I did manage to squeeze in one feature:
  • First pass at improved minimap coloring:
    • For map grids, we hit some of the low-hanging fruit, based on the features that the 'M'ap command prioritizes: fountains and empty fountains, deep/shallow/tainted water, deep/shallow lava, ice, trees and dead trees, and up/down stairs and zone exits.
    • We go slightly more colorful on the worldmap, where just about everything gets its main map color (with a few changes; forest and grass have the same map color, for instance, so I made forests a bit darker):
      world-minimap.png
      world-minimap.png (19.36 KiB) Viewed 510 times
    • By engine default, hostile actors are red, neutral actors are blue and friendly actors are green; we give the player a slightly brighter shade of green (which I might change), and hostile uniques a violet-ish color.
    • Traps by engine default are yellow; we make stores (which are built on traps internally) more of an orange for better visibility against town walls.
I think I've forgotten a few bugs; I'll need to go back through my notes… :oops: As always, here is a good place to report any bugs you find.

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.6 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.
For ongoing development, need to get back to the Fire Golem/puppeting stuff. Still taking feature requests, of course. :wink:
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#637 Post by Thorondor »

Hi Zizzo
Thanks for sorting the targeting thing out. :)

Have tested globe of light on theme, and on T4 port extensively this evening.
On T4 port, a damage 90 spell imparts 45 damage on an adjacent creature, 30 on a creature 2 squares from the caster, 23 on a creature 3 squares from the caster, 18 at 4 squares etc.
Having used identify spell as a spell of probing on T2.35, it looks like that the behaviour is identical so apologies for causing a wild goose chase; - I do think that globe of light was more effective prior to the particles effect being introduced but it's now much more closely mirroring the previous 2.35 behaviour which is a good thing. (Even though imo a spell that lists 90 damage should probably deliver 90 damage at range 1...- not a worry for now, and it's only my opinion) Does seem reasonable for the damage to reduce with increased distance from the caster.

Tested holy fire against an evil creature on T4: Fireflash listed as 144 damage, it caused 144 holy fire damage.
On Theme I tested a 504 damage fireflash against a 2000hp blue balrog; - after 1 spell it had 992 hp remaining; - looks like holy fire does double damage to evil creatures; - not sure if this is implemented yet on T4 port.
(and on similar note light sensitive creatures i think got damaged more by light- not sure if this is in place yet.)
So if it's not already incorporated, would creature sensitivity to particular elements / damage types be possible to introduce? (I haven't done a melee character yet so don't know if weapon of slay evil actually does (is it double damage?)

I guess vapour should be a similar particle to noxious cloud so maybe that could be the next particle effect?
Not sure about whether there's a tidal wave option from T4 main. again that'd be good to see one day.

Fire golem (tested on Furyband as this is where most of my archived characters were:
- golem created and is immediately under direct player control, with the mage character motionless and unable to act. When pressing the release creature, the option is given to release the creature permanently; - if you do that the golem is dismissed and disappears. If you type N(o) then the golem remains as a pet and can be commanded as per any pet, but doesn't appear to be possible to re-possess it.


Edit 31/07/23.
Globe of light is damaging snagas - 90 damage which is appropriately doubled.; - suggest leave investigating that for now and i'll explore further (+ compare with 2.35 characters).

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

Re: Porting ToME2 to the T4 engine

#638 Post by Thorondor »

Hi, so far so good with new release; - cold hound breathed - potion shattered.
Is there anything i can list to help with the identify spell? - could it be related to it being cast via sorcery rather than knowledge school?

error = "Game version: tome2-0.7.6\
Addons: gond_book-0.3.0, town_neutral-0.3.0\
\
Lua Error: /mod/project-util.lua:190: attempt to call method 'project' (a nil value)\
At [C]:-1 project\
At /mod/project-util.lua:190 ball_spell\
At /data/general/objects/bases.lua:1253 on_destroy\
At /data/damage_types.lua:542 try_damage_player_inven\
At /data/damage_types.lua:1476 side_effects_pre\
At /data/damage_types.lua:401 projector\
At /data/timed_effects.lua:2033 on_timeout\
At /engine/interface/ActorTemporaryEffects.lua:97 timedEffects\
At /mod/class/Actor.lua:289 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:745 "
seen = true
reported = false

nice to see the addition of yellow light explosion particle :)

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

Re: Porting ToME2 to the T4 engine

#639 Post by Zizzo »

Thorondor wrote: Sun Jul 30, 2023 10:37 pm Have tested globe of light on theme, and on T4 port extensively this evening.
On T4 port, a damage 90 spell imparts 45 damage on an adjacent creature, 30 on a creature 2 squares from the caster, 23 on a creature 3 squares from the caster, 18 at 4 squares etc.
[sound F/X: math] That sounds right; damage is supposed to decrease inverse-linearly with distance from center of blast.
Thorondor wrote: Sun Jul 30, 2023 10:37 pm Having used identify spell as a spell of probing on T2.35, […]
Oh, probing via Identify isn't implemented yet, because probing in general isn't implemented yet. I'll try to work that up for the next release.
Thorondor wrote: Sun Jul 30, 2023 10:37 pm I do think that globe of light was more effective prior to the particles effect being introduced but it's now much more closely mirroring the previous 2.35 behaviour which is a good thing.
That would be odd, since I haven't changed anything there recently… :?
Thorondor wrote: Sun Jul 30, 2023 10:37 pm (Even though imo a spell that lists 90 damage should probably deliver 90 damage at range 1...- not a worry for now, and it's only my opinion) Does seem reasonable for the damage to reduce with increased distance from the caster.
The decreasing damage by distance is standard T2 behavior, which was a bit tricky to duplicate. I'll investigate the blast-centered-on-self case.
Thorondor wrote: Sun Jul 30, 2023 10:37 pm Tested holy fire against an evil creature on T4: Fireflash listed as 144 damage, it caused 144 holy fire damage.
On Theme I tested a 504 damage fireflash against a 2000hp blue balrog; - after 1 spell it had 992 hp remaining; - looks like holy fire does double damage to evil creatures; - not sure if this is implemented yet on T4 port.
(and on similar note light sensitive creatures i think got damaged more by light- not sure if this is in place yet.)
So if it's not already incorporated, would creature sensitivity to particular elements / damage types be possible to introduce? (I haven't done a melee character yet so don't know if weapon of slay evil actually does (is it double damage?)
That should be implemented already. I'll test it.
Thorondor wrote: Sun Jul 30, 2023 10:37 pm I guess vapour should be a similar particle to noxious cloud so maybe that could be the next particle effect?
We can probably poach the particle from T4's Glacial Vapour spell.
Thorondor wrote: Sun Jul 30, 2023 10:37 pm Not sure about whether there's a tidal wave option from T4 main. again that'd be good to see one day.
Yeah, T4 has a Tidal Wave spell that we should be able to borrow from.
Thorondor wrote: Sun Jul 30, 2023 10:37 pm Fire golem (tested on Furyband as this is where most of my archived characters were:
- golem created and is immediately under direct player control, with the mage character motionless and unable to act. When pressing the release creature, the option is given to release the creature permanently; - if you do that the golem is dismissed and disappears. If you type N(o) then the golem remains as a pet and can be commanded as per any pet, but doesn't appear to be possible to re-possess it.
(nod) That tracks with what I was able to decipher from the relevant T2 code. I'm assuming that Mind Steal works basically the same way, except that the NPC presumably reverts to being hostile if you release it. :twisted:
Thorondor wrote: Mon Jul 31, 2023 9:48 pm Hi, so far so good with new release; - cold hound breathed - potion shattered.

error = "Game version: tome2-0.7.6\
Addons: gond_book-0.3.0, town_neutral-0.3.0\
\
Lua Error: /mod/project-util.lua:190: attempt to call method 'project' (a nil value)\
At [C]:-1 project\
[sound F/X: source diving] …urk. By any chance are these potions you picked up with this character before the 0.7.4 release? Because while that bug was fixed in 0.7.4, the old buggy method still lives in any potions generated before then. Dammit, I'm gonna have to start backpatching this stuff, aren't I? :? :evil: In the meantime, the safest thing to do is ditch all your old potions and hope the store stocks have rolled over enough that they have new potions with the bugfix.
Thorondor wrote: Mon Jul 31, 2023 9:48 pm Is there anything i can list to help with the identify spell? - could it be related to it being cast via sorcery rather than knowledge school?
I put some extra debug logging in the Identify and Globe of Light spells in this release. If you see problems, look in the log file for lines starting with [IDENTIFY] or [GLOBE_LIGHT]; those will, I hope, have the information I need to figure out what's going on.
Thorondor wrote: Mon Jul 31, 2023 9:48 pm nice to see the addition of yellow light explosion particle :)
Hm? [sound F/X: source diving] Oh, yeah, explosions from the EXPLODE attack type are handled as ball spells internally, so they got particles back when I added particles to everything.
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#640 Post by Thorondor »

I don't think there's a need to do back patching; - i've got one good character that's moving up through the patches but it's not worth the hassle as future characters will have the potions created by the new patch.
Started a new one yesterday; - Dunedain ranger; - interesting bug; - had been trying to find some traps and this error appeared.

error = "Game version: tome2-0.7.6\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /mod/class/Actor.lua:1695: attempt to call method 'has' (a nil value)\
At [C]:-1 has\
At /mod/class/Actor.lua:1695 canSeeNoCache\
At /mod/class/Actor.lua:1729 canSee\
At /mod/class/Player.lua:1357 searchOne\
At /mod/class/Player.lua:1331 restCheck\
At /mod/class/Player.lua:904 restStep\
At /mod/class/Player.lua:571 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:745 "
seen = true
reported = false

triggered an unknown trap
error = "Game version: tome2-0.7.6\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /mod/class/LogDisplay.lua:38: bad argument #1 to 'format' (no value)\
At [C]:-1 \
At [C]:-1 format\
At /mod/class/LogDisplay.lua:38 logdisplay\
At /mod/class/Game.lua:112 log\
At /mod/class/Game.lua:128 logPlayer\
At /data/damage_types.lua:541 try_damage_player_inven\
At /data/damage_types.lua:830 side_effects_pre\
At /data/damage_types.lua:401 projector\
At /engine/interface/ActorProject.lua:259 project\
At /mod/class/interface/ActorProject.lua:38 project\
At /mod/project-util.lua:190 ball_spell\
At /mod/trap-util.lua:146 triggered\
At /mod/class/Trap.lua:274 trigger\
At /engine/Trap.lua:156 check\
At [string \"return function(self, x, y, what, ...) local ...\"]:1 checkAllEntities\
At /engine/Actor.lua:264 move\
At /mod/class/Actor.lua:513 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:1123 \
At /engine/KeyBind.lua:231 "
seen = true
reported = false

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

Re: Porting ToME2 to the T4 engine

#641 Post by Zizzo »

Thorondor wrote: Thu Aug 03, 2023 8:54 pm I don't think there's a need to do back patching; - i've got one good character that's moving up through the patches but it's not worth the hassle as future characters will have the potions created by the new patch.
Too late; I've already got it implemented and checked in. :oops: :wink:
Thorondor wrote: Thu Aug 03, 2023 8:54 pm Started a new one yesterday; - Dunedain ranger; - interesting bug; - had been trying to find some traps and this error appeared.

error = "Game version: tome2-0.7.6\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /mod/class/Actor.lua:1695: attempt to call method 'has' (a nil value)\
[sound F/X: source diving] …what. :? No, seriously, why did I think I need to check whether the player can see the trap before finding it by searching, and why was I using a method specifically designed to check whether the player can see other actors? That's fixed for next release.
Thorondor wrote: Thu Aug 03, 2023 8:54 pm triggered an unknown trap
error = "Game version: tome2-0.7.6\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /mod/class/LogDisplay.lua:38: bad argument #1 to 'format' (no value)\
[sound F/X: source diving] Well, the trap was doing fire damage to you, and trying to destroy stuff in your inventory. Odd that it would choke at that point in the logging, though, especially when it didn't choke there when you were having potions destroyed. I don't suppose by any chance you have anything in your inventory with a '%' character in its name? :? I think I can harden that bit of logging for the next release.

Speaking of which, I think I've accumulated enough bugs that could count as show-stoppers to merit an emergency bugfix releasee:

Release 0.7.7 "Ex Post F@#$ed Up"

Some annoying bugs in this release:
  • Assorted stupid errors in my Perl script for converting T2's flat-file monster definitions to T-Engine format:
    • Was misinterpreting 'RES_DISE' as resist disease rather then resist disenchantment. :oops:
    • Was failing to interpret 'NO_STUN' as resist stun. :oops:
  • Against my better judgment, :? I'm going to try to backpatch the "shattering potions" bug. I've installed a T2:runReady hook that will check all potions in the player's inventory when you load a game, and retroactively install the new .on_destroy() method if the old one is present. You should get a popup dialog telling you if it fixed any potions. If you see the bug in the future (potions in stores might still be old and buggy), try saving and reloading to re-apply the fix. We Apologize for the Inconvenience.™ [And I think I'm going to try to re-tool objects so that this doesn't happen again, but that will probably require backward-incompatible changes, so it'll have to wait until 0.8.0.]
  • Weird code bug in trap detection by searching. Also, we now reduce your chance of success in searching if the player's location is unlit, as we were supposed to be doing all along.
  • Some weirdness in logging when stuff in the player's inventory is destroyed by fire/cold/etc.? We now do that logging in a way that I think is slightly less likely to break.
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().
  • Ring of Stupidity appearing in store stock.
Did manage a couple features, though:
  • Probing! Via the Rod Tip, the Quarterstaff of Olorin, or high-level Identify spell. As per T2, only companions show extra info like experience and attacks; everything else just gets a current-HP log message. (Although if you're using the "Gameplay | Learn monster information" option, you will learn some NPC information either way.)
  • A few more spell particles — this time, Vapour and Tidal Wave.
I think I've forgotten a few bugs; I'll need to go back through my notes… :oops: As always, here is a good place to report any bugs you find.

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.7 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.
Making some progress on the Fire Golem/puppeting stuff; I think it just comes down to testing now (famous last words…). Still taking feature requests, of course. :wink:
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#642 Post by Thorondor »

Hi
Cheers for the latest release :)
I think i've partly worked out the identify thing that was going on; - it was happening in the maze; - i think that the short term memory feature to facilitate forgetting the maze layout also affects all objects that are not in your immediate possession; - dropping an identified object seems to immediately render it unidentified; - some of the items would ID with the spell but others (generally swords) tended to need to be in the inventory to get ID'd.
One small oddity i noted was that dark elven warlocks were able to cast fear, even when definitely not in line of sight (i.e. LOS completely blocked with walls).
Other than that it seems to be going well; gameplay very smooth - having completed the maze, my current character has just ventured into Moria.

Edit (1)
Forgot to say the potions thing you put in worked; - there was a brief message
also, reflection seems to work vs frost bolt so that seems to be working too.

Edit (2)
Just noticed Beorn the shape changer summoned some air hounds; - the majority of them were hostile on creation; - just wondered if there was a code that would force summons (by a friendly character e.g. Beorn etc) to be friendly? - seems a shame for Beorn (and potentially hazardous for players) if a 'friendly' summons a room full of hostile air hounds...

Questions:
in classic 2.35 you could inscribe an object to stop it being sold / thrown / destroyed; - does this apply in the port? - if so how do you do it? (Having sold a pricey item accidentally :oops:

Possible feature request:
- is it possible to have a keyboard shortcut for destroy (I think it might have been k on 2.35. There's a lot of junk and it'd be slightly easier to just one-key destroy. Not a problem if it's tricky.

Bugs / errors
randarts still effectively fully ID'd (to the point when they show their actions with standard ID).

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

Re: Porting ToME2 to the T4 engine

#643 Post by Zizzo »

Thorondor wrote: Mon Sep 04, 2023 10:42 pm Hi
Cheers for the latest release :)
👍
Thorondor wrote: Mon Sep 04, 2023 10:42 pm I think i've partly worked out the identify thing that was going on; - it was happening in the maze; - i think that the short term memory feature to facilitate forgetting the maze layout also affects all objects that are not in your immediate possession; - dropping an identified object seems to immediately render it unidentified; - some of the items would ID with the spell but others (generally swords) tended to need to be in the inventory to get ID'd.
That's plausible. I'd have to check how the Maze memory thing is handled.
Thorondor wrote: Mon Sep 04, 2023 10:42 pm One small oddity i noted was that dark elven warlocks were able to cast fear, even when definitely not in line of sight (i.e. LOS completely blocked with walls).
…?! I'm mostly just wrapping around the engine's AI code, so I'm not sure how that could be happening. I'll investigate.
Thorondor wrote: Mon Sep 04, 2023 10:42 pm Edit (2)
Just noticed Beorn the shape changer summoned some air hounds; - the majority of them were hostile on creation; - just wondered if there was a code that would force summons (by a friendly character e.g. Beorn etc) to be friendly? - seems a shame for Beorn (and potentially hazardous for players) if a 'friendly' summons a room full of hostile air hounds...
That's odd; the summoning code is supposed to set the summoned creatures' faction to track the summoner's faction. I'll investigate.
Thorondor wrote: Mon Sep 04, 2023 10:42 pm Questions:
in classic 2.35 you could inscribe an object to stop it being sold / thrown / destroyed; - does this apply in the port? - if so how do you do it? (Having sold a pricey item accidentally :oops:
Those can be set via "Configure…" on the use-item dialog. I may not have "ask before throwing" covered, but we don't currently implement throwing, so…
Thorondor wrote: Mon Sep 04, 2023 10:42 pm Possible feature request:
- is it possible to have a keyboard shortcut for destroy (I think it might have been k on 2.35. There's a lot of junk and it'd be slightly easier to just one-key destroy. Not a problem if it's tricky.
Sure, sounds feasible. In the meantime, there's the "Destroy" option on the use-item dialog.
Thorondor wrote: Mon Sep 04, 2023 10:42 pm Bugs / errors
randarts still effectively fully ID'd (to the point when they show their actions with standard ID).
Hmm, that may mean that Object:getDesc() is checking for ID rather than *ID* when deciding whether to include a description of the activation. I'll check.
"Blessed are the yeeks, for they shall inherit Arda..."

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

Re: Porting ToME2 to the T4 engine

#644 Post by Thorondor »

Just created a dunedain ranger character and got this error entering the general store

error = "Game version: tome2-0.7.7\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /engine/interface/ActorTalents.lua:85: bad argument #2 to 'info' (number expected, got string)\
At [C]:-1 \
At [C]:-1 info\
At /engine/interface/ActorTalents.lua:85 getval\
At /mod/class/Actor.lua:1622 getTalentFullDescription\
At /mod/class/Object.lua:914 getDesc\
At /engine/dialogs/ShowStore.lua:129 generateList\
At /mod/dialogs/ShowStore.lua:90 generateList\
At /engine/dialogs/ShowStore.lua:59 init\
At /mod/dialogs/ShowStore.lua:45 init\
At /engine/class.lua:147 new\
At /mod/class/Store.lua:552 interact\
At /mod/resolvers.lua:45 check\
At [string \"return function(self, x, y, what, ...) local ...\"]:1 checkAllEntities\
At /engine/Actor.lua:243 move\
At /mod/class/Actor.lua:513 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:1126 \
At /engine/KeyBind.lua:231 "
seen = true
reported = false

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

Re: Porting ToME2 to the T4 engine

#645 Post by Zizzo »

Thorondor wrote: Thu Sep 21, 2023 10:08 pm Just created a dunedain ranger character and got this error entering the general store

error = "Game version: tome2-0.7.7\
Addons: gond_book-0.3.0, gervais_tiles-0.5.2, town_neutral-0.3.0\
\
Lua Error: /engine/interface/ActorTalents.lua:85: bad argument #2 to 'info' (number expected, got string)\
[…]
[sound F/X: source diving] Hmm, it's choking trying to build the description of an item in the store, specifically trying to describe a talent conferred by the item. Not sure what it could be, though; the only things the general store regularly stocks that confer a talent are shovels and picks, and they seem to work in my tests so far. Possibly an ego or randart cloak? I may actually need a copy of the savefile with the problem to figure this one out.
"Blessed are the yeeks, for they shall inherit Arda..."

Post Reply