OHRRPGCE feature requests/suggestions

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

User avatar
Hollyhart1
Red Slime
Posts: 36
Joined: Sat Apr 04, 2020 6:35 pm
Location: The endless void

Post by Hollyhart1 »

Bob the Hamster wrote:Image

Global NPC Pool!

You can now(*) create a pool of global NPC definitions that can be used on any map. The local per-map pool of NPC definitions still works the same as before, this just adds the availability of the shared pool.

When in NPC placement mode, press PageUp/PageDown to switch which NPC pool you are currently using

* (Actually wait and download the nightly build tomorrow. The feature exists in last night's nightly wip builds, but I just fixed a crash bug, so wait for tomorrow's nightly wip)
Holy sacred golden hamster, that's awesome!

I'm pretty sure this is what a lot of people - myself included - were asking for. I'm very glad we can make global NPCs now. This will be useful for my projects and future projects. It makes map making easy and allows for more utilization of NPCs and maps.

I'll download Nightly tomorrow and check this out. Thanks James for the neat feature!

As for a feature I would like to see, is Text Box styles. What I mean is being able to add styles to text boxes, rather then just editing the borders or colors.

For example; you can have your normal one color text box with a border, or you could go fancy and make a gradient style or whatever you can think of.

I'd also like to see multi-colored text too. I think that would be neat. Instead of just having one color.

Mostly I'd just like to see gradient text boxes, or multi-colored text boxes. Just my thought anyway :D
Last edited by Hollyhart1 on Mon Aug 31, 2020 1:04 am, edited 1 time in total.
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

Bob the Hamster wrote: Global NPC Pool!

You can now(*) create a pool of global NPC definitions that can be used on any map. The local per-map pool of NPC definitions still works the same as before, this just adds the availability of the shared pool.
So now in all future games, I will have a global NPC pool for my vehicles and my invisible step-on NPCs that I use to keep moving NPCs confined...

And by using a "destroy NPC" script on NPCs meant to respawn (like the cars in Maces Wild that try to run you over/crash into you while you're driving) I can use the global pool for treasure chests and monsters placed on the map as well.

This is going to make a lot of things smoother.
Remeber: God made you special and he loves you very much. Bye!
User avatar
polkakitty
Red Slime
Posts: 83
Joined: Tue Aug 11, 2020 1:21 pm

Post by polkakitty »

Hedera Helix wrote:...I was going to have a character with a set of attacks that depended on how much HP they lost, with a special ability that reduced their own HP to 1. Welp.
There is actually a sneaky way you can accomplish this, without needing to use another stat, with multiple attacks chained together, although there will be one small problem with the way it works. What you want to do is have 3 attacks chained together:

Attack #1 has whichever animation you want to be associated with the HP-to-1 move. It targets self and deals no damage.

Attack #2 resets the user's HP to its maximum, then heals them to 1 HP above their normal maximum. Under "Damage Settings", select "Pure Damage", 100 for the attack stat, -99% extra damage, and then under "Damage bitsets", set "Cure instead of Harm", "Do not randomize", "Allow cure to exceed maximum", and "Reset target stat to max before hit". Select "null" for the attack animation and attacker animation, "self" for the target class, and turn on the "don't display damage" and "don't cause target to flinch" bits.

Attack #3 deals damage to the user equal to their max HP. You can make an attack that deals damage equal to a percentage of the target's maximum in a stat instead of setting that stat to a percentage of its normal maximum, but the damage settings aren't set up in a way that makes it obvious you can do that. What you want to do is, under "Damage Settings", for "Damage Math", select "HP = 100% of Maximum", then under "Damage bitsets", set "% based attacks damage instead of set". Select "null" for the attack animation and attacker animation, "self" for the target class, and turn on the "don't display damage" and "don't cause target to flinch" bits.

The end result of this will be to set the user's HP to 100% + 1 - 100%, equaling 1, without their HP having been 0 at any point.

The problem I alluded to is, it seems that in the OHRRPGCE, every attack always takes one tick's worth of time before moving on to the next attack in a chain, even if it has no visual effects. (Instead-chains seem to be the only exceptions to this; it seems that you can go through an unlimited number of instead-chains to other attacks without incurring any time delay, but that's not useful here, since if you connect Attack #2 to Attack #3 with an instead-chain instead of a regular chain, it will skip over Attack #2's effect, which you need to happen.)

Since setting the hero's HP to their maximum plus 1 and reducing their HP by their maximum have to be done as two separate steps, if you look straight at the HP display for your hero while you use this move, you'll notice that if, for instance, your hero's maximum HP is 100, their HP will display as 101 for one frame before changing to 1. This won't make any practical difference in terms of using the move in battles (if an enemy happens to attack your hero on the exact frame where their HP is 101, they'll die when they use the -100% attack, but they're supposed to die when they're attacked while at 1 HP anyway,) but it's the kind of thing that I can't help but notice and be bugged by. The reason you want the animation to be separate from the attacks that actually affect the user's HP is to avoid making this problem worse; if attack #2 had "Cast" as the attacker animation, the HP value of 101 would be visible not just for one frame, but for the entire time the hero was moving from their "casting" position back to their starting position before attack #3 started.

Speaking of which, on the subject of feature requests, I'd like it if there was a way for a hero to do their "strike" or "cast" animation, and then execute multiple attack effects before they returned to their starting position. In the game I'm making, there's a "fireball" spell where you target one enemy, and the spell first deals damage to that enemy, then deals splash damage to all enemies (including the initial target,) and there are several other in-battle moves that, for various reasons, consist of multiple attacks chained together. I'm setting them up the way I've described here, with an attack that makes the hero do their "cast" animation but doesn't do anything functional, chained to attacks with null attacker animations that handle the actual visual effects and damage of the attack, since that seems to be the least awkward way to do things, but I'd like it if there was a way for the hero to go into their "cast" position, execute both parts of the fireball attack, and then return to their starting position.

I think a good way to implement this would be to have 4 new options for "attacker animation", which could be called "Strike and Pause", "Cast and Pause", "Dash In and Pause", and "Return to Starting Position". The first three of these would have the hero move to the same positions, with the same animation frames, as they do with the Strike, Cast, and Dash In animations, but stay in the same place after the attack instead of returning to their starting position, and they would stay in that same position until they executed an attack with anything other than "null" set as its attacker animation. "Return to Starting Position" would make the hero move back from wherever they were to their starting position, the same way they normally would at the end of a "Strike", "Cast", or "Dash In" animation.

It would be similar to the way Jump and Land are already handled, where it's possible for a character to execute attacks from their position above the battlefield after Jumping, and there are some games like Dungeonmen that actually take advantage of this. (The Sage's "Bing Dan" spell starts with an attack that Jumps, then chains to 3 Meteor attacks that each make a projectile come down from above the screen towards a random enemy, then chains to a "Land" attack that does no damage, and its only purpose is to get the Sage back onto the battlefield.)

In other news, the Global NPC Pool is an awesome idea! I feel like it would be the ideal tool to have to make a Zelda-style game, where there are distinct types of obstacles and puzzle elements that show up throughout the game, and when you get a tool that can be used to get past them, you want it to be able to act on those obstacles in a consistent way, everywhere you've seen them before.
"It was right through those trees; I'm not insane
That's where the fin tried to drag me in
Don't look at me, look at where I'm pointing
Close your eyes, see what I see, Canajoharie..."
-- They Might Be Giants
User avatar
guo
Metal Slime
Posts: 749
Joined: Fri Dec 04, 2009 9:12 pm

Post by guo »

Nice feature!
How are global NPCs referred to in scripts? Will a script modifying a global NPC on one map affect it on others?
vvight.wordpress.com
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

guo wrote:Nice feature!
How are global NPCs referred to in scripts? Will a script modifying a global NPC on one map affect it on others?
An NPC reference is unambiguous, it already knows if the NPC is local or global.

Some NPC commands that mainly work with NPC ID now have an optional "pool" argument. They still operate on local NPC IDs by default, but you can use the pool argument to specify if you want a global NPC

And yes, using the "alter NPC" command on a global NPC does affect all copies on all maps.

There is still no way to move an NPC reference from one map to another. No "teleport NPC to map" command exists, but you can just create a new reference on another map
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

I love the way Jump/Land work mechanically. I'd like to be able to use their same effects with various death animations like monsters use (melt and unmelt, sink into ground and rise from ground, etc) - this would work really good for things like a thief/ninja backstab move and Dig from Pokemon, which mechanically would be pretty much the same as Final Fantasy Dragoon Jump/Fly in Pokemon but look significantly different.
Remeber: God made you special and he loves you very much. Bye!
User avatar
Hedera
Slime Knight
Posts: 175
Joined: Tue May 17, 2011 11:38 am
Location: a dying forest (all forests are dying)

Post by Hedera »

polkakitty wrote:The end result of this will be to set the user's HP to 100% + 1 - 100%, equaling 1, without their HP having been 0 at any point.
Thanks, this is great! And the HP bar briefly showing a higher amount of health is an acceptable amount of jank, imo.

Unrelated: is there a way to make it so that songs loop from a certain point after they reach the end, instead of going back to the beginning? If not, could it be added in the music menu or as a plotscripting command?
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

I've reported three more bugs on Github:

1) If you use Mark/Clone in the Foe Map menu, it also Marks/Clones the maptiles themselves as though it was in the Edit Tilemap menu

2) I am experiencing consumable items checking for/costing MP even though the "check costs when used as an item" bitset is not checked

3) I assigned both a revive spell and the teaching of a spell to an out of battle item. The item was refusing to revive a dead character. The item was refusing to heal any characters because the "teach spell" selection seems to be overriding it, rather than my expected behavior of doing both simultaneously.
Remeber: God made you special and he loves you very much. Bye!
User avatar
guo
Metal Slime
Posts: 749
Joined: Fri Dec 04, 2009 9:12 pm

Post by guo »

"Delete hero by slot" scripting command.

At the moment "delete hero" deletes the first instance of that hero even if you use "hero by slot" or some other mean. Obviously this is only a problem when you have more than one copy of the same hero in the party, but it's a significant impediment to e.g. creature collection games, especially with the party limit sitting at 41.
vvight.wordpress.com
User avatar
roney33
Slime
Posts: 1
Joined: Thu Sep 10, 2020 4:54 pm

Post by roney33 »

please, add a suport for custom size tilesets, i have much tiles 16x16 and 32x32, and adapt to 20x20 is horrible; and a suport to down battle hud,so I can better observe the battle data and the scenarios above, as in other traditional rpgs
Last edited by roney33 on Fri Sep 11, 2020 6:11 am, edited 1 time in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Sorry for the slow replies! And there are still things on the previous page I want to reply to.
(Some things I've already replied to on Github or Discord)
roney33 wrote:please, add a suport for custom size tilesets, i have much tiles 16x16 and 32x32, and adapt to 20x20 is horrible; and a suport to down battle hud,so I can better observe the battle data and the scenarios above, as in other traditional rpgs
Hi, welcome!
We definitely want to support other tile sizes than 20x20. However it's a lot of work, there's so much to do, so I know it isn't going to happen soon; don't wait for it. We're working towards it very gradually (not much is done yet).
I don't know what you mean by "down battle hud", maybe putting the menu and other things at the bottom of the screen? That's planned too, actually it shouldn't be too far off. You'll be able to customise the appearance of all the battle HUD and menus by editing slice collections. We've already partially converted battles and other builtin menus to slices, but they aren't modifiable yet.
Hedera Helix wrote:Also is there a good way to reduce a given stat, such as hp, speed, attack, and so forth, to exactly 1?
Oh, we really should add an attack damage setting to set the target stat to a value instead of subtracting from it, no ingenious tricks required. It's pretty crazy that we don't already have that. Instead of being a new damage math setting I think it should be a separate setting, like the Cure bit and the "% attacks set instead of damage" bit. I want to rationalise and combine those into a single four-way "Damage/Cure/Set/No damage" setting.
Hedera ­Helix wrote:Unrelated: is there a way to make it so that songs loop from a certain point after they reach the end, instead of going back to the beginning? If not, could it be added in the music menu or as a plotscripting command?
That's actually a new feature in recent SDL_mixer versions for .ogg/.mp3 music, so yes, I plan to add that to the Import Music menu. Module music of course can already have loop points. I'm not sure whether it's feasible for MIDI (although long ago Mike actually implemented loop points for MIDI in music_native/native2, which are no longer working correctly).
polkakitty wrote:I think a good way to implement this would be to have 4 new options for "attacker animation", which could be called "Strike and Pause", "Cast and Pause", "Dash In and Pause", and "Return to Starting Position".
Yeah, that would be very nice, either as new attack animations, or as a "Don't return to initial position" attack bit*/parameter to the existing ones plus new "Return to Starting Position", or by defining variants like that yourself using either an attacker animation pattern editor or battlescripting. I've been thinking about it.

* In fact that's no reason that we can't allow combatant positions to change during battle, arbitrarily, and optionally also permanently (each combatant has two different positions: current and starting). Just need to figure out how to specify the new positions (without battlescripting).
Nathan ­Karr wrote:I love the way Jump/Land work mechanically. I'd like to be able to use their same effects with various death animations like monsters use (melt and unmelt, sink into ground and rise from ground, etc) - this would work really good for things like a thief/ninja backstab move and Dig from Pokemon, which mechanically would be pretty much the same as Final Fantasy Dragoon Jump/Fly in Pokemon but look significantly different.
Yes, this is a great suggestion. I would call them Disappear/Reappear. I'll put it on my todo list along with something like "Cast and Pause". Would be natural to add at the same time as converting attacker animations to the new animation system.
Nathan ­Karr wrote:And by using a "destroy NPC" script on NPCs meant to respawn ... I can use the global pool for treasure chests and monsters placed on the map as well.
I don't see what global NPCs have got to do with using "destroy NPC". Instances of global NPCs don't act any different to local NPC instances.
Hollyhart1 wrote:Text Box styles. What I mean is being able to add styles to text boxes, rather then just editing the borders or colors... go fancy and make a gradient style or whatever you can think of.
I would love to let people use fancier box backgrounds. My idea was to let you do that in two ways: either draw it, as a new "texture" or "box background" sprite type, possibly using optional 9-slice scaling (which would be natural since it's very similar to how box borders work), or by just defining a color gradient.
Hollyhart1 wrote:I'd also like to see multi-colored text too
If you mean drawing fonts using more than one color, yes, that's the plan, and partially implemented. If you mean switching text color in the middle of a textbox, very soon!
Hedera Helix wrote:Could an "mp regen/poison" status effect be implemented
Seems kind of strange to make it specific to MP instead of more general. Then again, I have a bad tendency to try to stretch any feature request intothe most general version I can think of, even if noone actually wants the greater generality.

But regen/posion equivalents for other stats is something I'm sure people would actaully use. Hmmm... what if regen and poison were actually a type of buff/debuff that increases over time? Buffs and Debuffs are a planned feature, so could maybe be added to that.
Hedera Helix wrote:along with allowing for equipment to cause status effects at the beginning of battle?
Yes, actually I think we should turn the status effect registers, which are in-battle stats only, into out-of-battle stats too. (My initial motivation for doing this is actually so there's no problem with stat numbering backcompar when more stats are added). This will have the benefit that status effects could optionally be preserved from one battle to another, and that they can be affected by equipment, scripts, and even hero levelling.
Last edited by TMC on Fri Sep 11, 2020 5:10 pm, edited 4 times in total.
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

I filed a bunch of feature requests yesterday, mostly relating to NPC options, shops, and equipment. I kept thinking of more every time I sat down to type out something I felt was missing.

And today I remembered two more feature requests:

1) Reordering stat display in the stats/equipment screens. In most cases even if I feel like using and displaying all six of the main stats (ATK, AIM, DEF, DOG, MAG, WIL) I'd either prefer to pair like ones together (ATK/DEF determining physical damage, AIM/DOG determining hit chance, and then MAG/WIL determining magic interaction) or to put all three offensive stats together and then all three defensive ones (ATK/AIM/MAG and DEF/DOG/WIL). I think this'd be best as a game by game option in the general game settings rather than hero by hero.

2) Damage/aim math options, I'm pretty sure this and variants of it are old requests and there's a plan to improve it in some way. It's just kinda always bothered me that "normal" damage is 100% of ATK vs 50% of DEF instead of 100%/100% with no real option to work around this aside from doubling all sources of the DEF stat. Likewise there used to be three degrees of AIM vs DOG based aim math and one of MAG vs WIL, and as fun and intuitive as the new %-based accuracy settings are there isn't really as fine a degree of attack-by-attack control on them as there is for Normal/Poor/Bad accuracy; being able to use "multiple of AIM/MAG" and "multiple of DOG/WIL" as base accuracy and evasion, and being able to assign different base aim/evasion stats the way we can with the damage stats (the defaults of ATK vs DEF and MAG vs WIL are easily available on damage but aren't the only options there). I think I remember reading there was a plan to do something like this a few years ago?
Remeber: God made you special and he loves you very much. Bye!
User avatar
The Wobbler
A Scrambled Egg
Posts: 2817
Joined: Mon Oct 15, 2007 8:36 pm
Location: Underwater
Contact:

Post by The Wobbler »

I'd love to see more control over enemy rewards, like having tags interact with them. For example, an enemy wouldn't drop anything unless tag X was on, or would drop a different item instead if Y was on. Structurally I'm thinking of something very similar to the Else/Instead chaining that the attacks menu has.
User avatar
kylekrack
Liquid Metal Slime
Posts: 1240
Joined: Mon Jun 16, 2014 8:58 am
Location: USA
Contact:

Post by kylekrack »

I can think of some hacks that utilize chains to stealing attacks, but I know that's not what you're looking for. You could fake special rewards that way, but it's enemy dependent.
My pronouns are they/them
Ps. I love my wife
User avatar
Mogri
Super Slime
Posts: 4668
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

You could fake it with transmogrification, though that could be a hassle.
Post Reply