Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Properties of Synchronized Battlers #24

Open
HimeWorks opened this issue Nov 10, 2013 · 4 comments
Open

Properties of Synchronized Battlers #24

HimeWorks opened this issue Nov 10, 2013 · 4 comments
Labels

Comments

@HimeWorks
Copy link
Member

@HimeWorks HimeWorks commented Nov 10, 2013

I've released a script that allows you to synchronize battlers together.
http://himeworks.wordpress.com/2013/11/10/synchronized-battlers/

Currently, the only property that's shared is death state: when the parent dies, the child also dies.

The following features sound cool and useful

  • shared HP (damaging one also damages the other)
  • shared MP (battlers in a single link chain all draw from the same MP pool)
  • shared TP (similar to MP sharing)
  • linked actors (actually can already be done, just no interpreter method)
  • shared states (eg: parent gets poisoned, children get poisoned)

I think sharing should only occur with two-way links, because it doesn't make sense to have one-way sharing...?

@Roguedeus
Copy link

@Roguedeus Roguedeus commented Nov 10, 2013

What about if one is still alive, it can resurrect the other(s)? So the challenge is to kill all members by the end of THAT turn?

@HimeWorks
Copy link
Member Author

@HimeWorks HimeWorks commented Nov 10, 2013

So for example, on_turn_end, any enemy with "sync life" option set will automatically revive if its parent is still alive.

However, what if someone wants to give them 2 turns? 3 turns? 5 turns? Maybe have a message going on every turn to indicate that the enemy is "recharging" or something.

An evented solution may be more appropriate as it provides more control, but it doesn't sound easy to event it either (how do you indicate that there are "5 turns left" before revival?)

Some other ideas...

  • Features could be linked. For example, you have a shield drone that is invincible to fire, and when it equips itself to a mechanical enemy via linking, the other enemy also becomes invincible to fire.
  • The "link" could be an action condition. You have an enemy that does nothing by itself, but when it connects itself to another enemy, that enables the other enemy to perform special actions. There is definitely a lack of action condition scripts.
  • "Linking" with another enemy could trigger a "transform" event, while "unlinking" could separate them back into each part. This one sounds difficult.

This script opens a lot of possibilities.

@Roguedeus
Copy link

@Roguedeus Roguedeus commented Nov 10, 2013

So if its a charging thing, then setting sync to charge 0 means the very next round?

Linking sounds nice.

Example:
A Warlock with 3 thrall's. Each thrall has a state immunity that it has, and that it links with the Warlock. When each thrall dies, its link is severed, and that immunity is removed from the Warlock.

Or visa verse. A shield generator, might share its shield state with all fellow troop members, till the generator is killed, removing the shield from the entire troop... Multiple shields means more to kill before the state is fully removed.

@HimeWorks
Copy link
Member Author

@HimeWorks HimeWorks commented Nov 11, 2013

I will define something called "Sync Features" and "Sync States".
This is just a boolean flag that you assign to features and states (because maybe you don't want EVERY feature or EVERY state to be shared, so by default I disable sync'ing for everything).

For states, you would just say

<sync state>

For features, you need to go to each object and say

<sync feature: 1>
<sync feature: 2>
...

Where the index of the feature is based on the order that they appear on the list.

For dynamic linking, you can either figure out how to do it using common events and call them using skill effects, use a damage formula (not recommended), write an effect plugin to perform the linking, or any other solution that would allow you to link or unlink an enemy or actor.

Actor linking would be kind of interesting. For example, if you have a sci-fi theme and your actor happens to be walking around with a bunch of drones, you can link/unlink drones to activate different bonuses.

But for the most part, it is pretty clear that developers will need an easy way to allow players to perform linking/unlinking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.