Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Virtua Sinner

197
Posts
1
Topics
260
Followers
A member registered Aug 11, 2018 · View creator page →

Creator of

Recent community posts

This I've fixed.  It wasn't that after some time a missile weapon stopped granting its benefit - it was always.  Unless you were dual wielding, the game was now disregarding the distance strike ability of any missile weapon.  This one's serious enough that I'll have to upload a new version, likely today.  I'm running through a game as an Archer, trying to replicate the other bug you mentioned above, though I suspect that's completely unrelated to the most current fix.  Still, when this run through's done (and I'll have to play during work, between clients), I'll upload the latest - bug fixes, and some new content, too.  Thanks for the heads up on all of this.

Next I play I'll play an archer and see if I can duplicate the effect.  Have you definitely got the latest version (fully updated, no patches skipped - or a fresh download of the full game)?

(1 edit)

I'm not 100% confident in my fix here.  I DID find a bug - monsters would have been unable to teleport to a square containing a monster corpse.  And I did find a theoretical problem that could happen (and which could lead to the burst of noise you heard).  I've definitely fixed the former issue, may or may not have fixed the crash.  Time will tell.

I think/HOPE the Alliance Band issue is fixed.  I've never found one, so haven't been able to test it, but I identified a way in which what you described could happen.

Monkey's Paw fixed.

On it!  Thanks!

Ever?  Or in this one weird case?

WAIT A MINUTE!  Just looked through the summonrandomspirit function again and saw this line:

potentialalternateswap(dice2);

Which should have been this line:

montype[loop] = potentialalternateswap(dice2);

Which means the game is not considering the new spirits, and YES, this could crash (or more likely freeze) the game!  Thank you!

I got nothing to go on here.  Haven't seen this.  No chance you continued a saved game from prior to the update is there?  That would mess EVERYTHING up...

No.  I checked.  Level appropriate = +/- 3 from current dungeon level.  (So on dungeon level 1 that means levels 1 to 4).  Misfortune Spirit is a level 3 Undead Spirit, so it qualifies.  No way it could get stuck there.  Must be something else.  I'll keep looking.

Possible...  Boo...  I'll have to check.

I'll check it out!  Thanks!

I don't think I answered this one.  That was a Thorn Sleep Curse event. It had multiple bugs that I think I've since fixed (including not listing the event until it had ended).

I've implemented a check that should prevent this from happening again.  For the record, it could have happened to any character, not just mouslings.  I'm not sure the solution I've implemented is the best one, but it's a lot better than letting a character suddenly die unexpectedly.

Confirmed, this is fixed.  If the damsel had an unusual hero number (which could happen if nothing was assigned) all bets were off in terms of the experience gain you can get from them.  I've fixed it everywhere random damsels can be generated and put in an extra catch to treat them as non-heroes if their hero value is out of the ordinary.

I think I've  fixed this by ensuring that the  rescued Damsel is NOT a hero.  It likely plugged some random number into the hero status of the Damsel, and didn't know how to deal with the outcome!  Thank you very much for finding this!

Fixed the Smoke Imp one.  It was applying the Forest Imp ability in addition to the Smoke Imp ability (and Forest Imps probably would have done nothing special!)

Looking into both!  Thanks!

It's about 1500 lines of code - just checked.  Not sure how to feed that to you.  In general though, if I recall, it picks a side of the map to start on, and an x or y position there.  It chooses a different side of the map to target as an end point.  It likely uses Bresenham's Algorithm to start wandering in that direction, but with random variables thrown at it to bump it off course every so often.  It determines a thickness (randomly) and then retraces the steps to fill in the extra squares for that, offset.  It checks randomly to see if we want any forks, and if so, how many.  For each fork, pick a random point in the river, then a random map edge and repeat the process between those two points.

I'd have to look it up.  I implemented years ago and genuinely don't recall!

(1 edit)

Yep!  Wouldn't have thought of that, but the jewellery basically messes with monsters' detection abilities whether they're charmed or summoned or otherwise.  I think I just fixed it.  Thank you!

Fascinating!  I'll check it out!  Thank you!

If the Magic Item Merchant you reported with the yellow halo and unique name but no discounts was someone who'd been released from a cage, then I think I've finally fixed this!  If not, I'm still at a loss.  If you happen to remember one way or the other, please let me know!

Huh.  I'll add it to the "keep my eye on" pile of things.  I hate when that pile grows because it really means, "There might be a bug here but I can't figure it out without more data."  Thank you for bringing it to my attention!

(1 edit)

I'll look again.  Shoot...  I'm going over the code again and again and not finding anything.  No matter how it comes to the spell (spell, scroll, wand, Mask of Dreams or Astral Key), if successful it creates the portal, according to the code.  In fact, at the point in time it puts the vortex on the map, it hasn't even checked to see how you cast the spell yet.  When you use Mask of Dreams, it comes to the spell with a variable called "casted" equalling 5.  5 denotes Mask of Dreams for this spell.  But every single outcome, from success, to any of the 7 or 8 ways you can fail, includes a text output dedicated to casted equalling 5.  So I can't see a way you wouldn't get text, unless you adjusted your text prompts setting to Expert (they default to Basic).  At Expert, in this situation, it wouldn't give you any text output, but even then, if the spell was successful, the vortex would appear, and if it failed, the word "Fail" would scroll above your character icon.  Is there any chance you adjusted this setting between when you cast the spell, receiving the fail notification and when you cast it later and got no text?

For the Soul Guide Lantern, I've simply changed its text to read "Each time you personally kill a monster" instead of "each time you kill a monster" to avoid confusion

Hmmm... the mask of dreams I don't get.  At least in so far as vortexes are concerned.  It's beholden to the same restrictions as the Open Dimensional Portal spell now (only even possible on 33% of maps) but it literally casts the spell when used and I can't see any flaw with its reporting.  Is it possible it's triggering one of its other effects and reporting nothing there?  I'm assuming you're hearing the dimensional portal sound and seeing the magical effect to clue you into which effect is triggering?  I'm confounded at the moment.

I'll look into em!  Thanks!

Blue Mold I can definitely tackle.  I'll do that right now, as I continue to try to track down another bug involving the Thorn Sleep Curse.  Not sure what do with the Magic Item Merchant, though I can note it.  Interestingly, I also encountered a bug with a Magic Item Merchant today - released him from a cage and he was in every way normal, except he sold Weapons instead of Magic Items.  Dunno what to do with that, either!

Thank you!

Thank you!  I will look into it!

Thank you!  Please continue to relay anything you find :)

(1 edit)

Cheers to you!

Alright, I looked at this, and found a place to consolidate the code that should address, if it was for sure an issue (and not just incredibly bad luck).  Not gonna lie, I got distracted while implementing, and there's a slim chance I screwed something up in this new implementation, but it should be fixed now...

Okay final verdict, because my previous idea on how to address it was needlessly complex.  Here's the nerfing of the spell as it will appear in the upcoming patch notes:

The Open Dimensional Portal spell (and all Rods/Scrolls/Magic Items that can cast it) have been nerfed, because it was proven to be the single most abusable spell in the game. Previously it had a 50% chance of creating a Vortex in your square. It retains this probability, but crucially, it will only function on 33% of maps. On 67% of maps, the spell will always fail, and the player casting the spell will never be told if the spell failed because of the 50% chance or because it’s 100% impossible on this map. All of these rules are spelled out explicitly in the query of the Spell or any Object that can cast it.  

Alright, for Infernal Strike, or any related type of Event that blocks a spell type from being cast, it sets a flag in a string called spelltypeblocked.  My gut says that flag isn't getting removed, and when I checked the logical spot to remove it (a function called startnewlevel()) I was right.  However, it WAS allegedly being removed in maze() (the function that designs procedural maps) as well as in the function that loads the maps for any Legendary Lands you enter.  I can't think of a way that a new level could start without first either designing a new map in maze() or loading a new legendary land, so it feels to me like the flag resets SHOULD have been happening.  I've moved that code now into startnewlevel() which gets called every time you go to a new map, no matter what type of map that is.  Logically, having the small code there should fix the flags, but logically they also should have been fixed before...  so, we'll have to see if this does it or not.

Regarding the Trainers and Taskmaster, it seems they're not properly initialized as a result of the Legendary Land (as opposed to be placed randomly).  I've added in a catch in this land alone that sweeps through and assigns random skills to be trained to the Trainers, and 6 Lessons to any Taskmasters, so hopefully that solves that.  Still looking into the Infernal Strike situation.

I'll look at it!

You're right!  The following line was inside an else statement, so unreachable to the Earthquake event:

if ((space[youx][youy] != MAP_TEMPLE) && (space[youx][youy] != MAP_STAIRS))

                         space[youx][youy] = MAP_RUBBLE;

The else has been removed.  Thank you!

Alright, right now what I'm leaning towards (not settled on yet) is the following:  A) It can only be cast a maximum of 3 times per level.  B) Each casting lowers the odds of success - first casting remains 50%, second lowers to 30%, third to 10%.  C) We'll add a third option for where it can take you: 2 dungeon levels down.  This will make it less of a guaranteed success, and add a little danger...  I'll likely keep the Pantosian Miracle (Other Worlds?  Is that what it's called?) that does the same thing  as Open Dimensional Portal did as is, without increasing its cost, because it's a strong draw to worshipping Pantos, and Faith expenditure isn't as absuable as Spell Points, since they don't regenerate with each new map entered.

Yeah, I just looked in the code.  If it triggers, then it just treats it as if you were using a melee weapon for all Bonus Strength aspects, including Violence.