Jump to content
AJNR

Battle Position within the Battle System

Recommended Posts

I'm using Yanfly's Battle System with Yami's CATB - but I think this request will not overlap with those two scripts.

I was wondering if there was a way to give a number, or variable, to both Party Members and Troop Members within

a Battle.

 

This number would determine position of that person within the Battlefield, it's not an x and y thing. It's just one

number, say that Actor 1's Battle Position is 7 whereas the Enemy 1's Battle Position is 2. Both Player and Enemy

can influence the Battle Position by using skills to increase or decrease their current position value.

 

Simply, a custom number is given to the Party and Troop (Say the Party starts with a Position Value of 10 and the Troop a Position Value of 0).

 

I know this sounds very confusing, but the reason I'm asking for a script request is to access the ability

to have Enemies give chase to a fleeing Party Member (Actor 2 uses the "Retreat" Skill to go back, in response the Enemy uses the "Advance" Skill to go forward). It'd be nice to have a notetag to change the value (eg. <Position: +2> <Position: -4>)

 

Another reason I'm asking for a script request is to have the ability to give attacks a more distinct system of range. Let's say we make a Range a number that is accessible through a notetag: <Range: 3> meaning that when the attack executes, any enemies or actors with the User's Position gets hit. Anyone outside that range, is not hit.

(Minotaur is in a Battle Position of 2 and does a Sweep that has 4 Range, any Actors within the Value of 2...6 will take damage from that attack).

 

The "Battle Field" is visually just a football field that just goes forward and backward only. Since 0 would be the Troop's starting number, decreasing your Value is technically moving forward in the battlefield and increasing your Value is moving backward in the battlefield. And yes, I wouldn't mind if the values go negative (eg. -1, -12). Since I would like to have a "Backstab" skill that only works if the Actor's Position is lower than the Enemys.

 

To summarize this, it would be nice if someone were able to make custom variables that records a Unit's "Position".

A custom method to increase and decrease this variable by (+/-) x amount. And a custom variable that records an Attack's "Range" and if the Range is not within the Target's Position - that target is not hit. It would be nice to have it possible where if one actor was out of range and the attack was (All Enemies), then the whole Party would get hit except for the 1 Actor out of range.

i.e.

if $User.Position_Value <= $Target.Position_Value <= ($User.Position_Value + $Range)
   hit_target
else 
   miss_target
end

 

A Visual representation of what I'm talking about:

 

 

 

 

                                          Troop                     Party

                                          Start                       Start

                                              |                             |

                                              |                             |

                                              |                             |

-1000     . . .     -3    -2    -1    0    1    2    3    4    5    6    7    8    9    10      . . .     1000

 

Numbers are position value, decrease=Advance , increase=Retreat

Skills allow the Party Members and Troop Member to increase/decrease their Position by x amount

Skills have a Range that a Target must be within for it to be hit

 

 

 

 

 

Edited by AJNR

Share this post


Link to post
Share on other sites

Really cool idea!  :) This could bring a whole new dimension of tactics to the battle system but there will be some challenges as this type of system will need some kind of enemy AI or else it would probably be easy to exploit. I've written a very basic WIP prototype that you can play around with: https://gist.github.com/kl/5815417

 

Right now the position system is implemented for enemies (not yet for actors) and it does not yet support negative values. The default behavior for enemies is simple: move forward until there is a skill that can reach an actor and then keep using that skill(s). Later on this behavior could be expanded on to make the enemies smarter.

 

To use the script you have to create a skill that represents the moving forward action. You can set the skill id in the script configuration. Then for the skill in the database you should make it Skill Type: None, Scope: The User, and add some kind of dummy effect (like Recover HP 0 %)

 

You can set the range for enemy skills by adding a tag like this:

 

<bp_skill_range NUMBER>
 

Share this post


Link to post
Share on other sites

Thank you Kal for the quick response  :lol:

I copied the script and used it, and it works fine and is totally compatible! I'm glad that I was able to get help and try to be as cooperative as possible.

 

 

Right now the position system is implemented for enemies (not yet for actors) and it does not yet support negative values.

 

To get rid of the negative value issue, we can just start the Enemy's Value at 100 and then the Actor's Value at 110.

 

And I'm quite excited to see what comes next, but to tell you now, there shouldn't be any concern for Actors going 'behind'

an Enemies (Actor's BP < Enemy's BP) Position. I'll handle that myself with some Conditional Branches and Common Events

once the Actor's Position are able to be constructed.

 

Thank you very much! Everythings perfect with the script.  :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted