74 lines
1.5 KiB
Java
74 lines
1.5 KiB
Java
package tc.oc.pgm.blitz;
|
|
|
|
import net.md_5.bungee.api.chat.BaseComponent;
|
|
import tc.oc.api.docs.PlayerId;
|
|
import tc.oc.pgm.match.Competitor;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
public interface Lives {
|
|
|
|
/**
|
|
* Original amount of lives.
|
|
*/
|
|
int original();
|
|
|
|
/**
|
|
* Current amount of lives (may be larger than {@link #original()},
|
|
* due to players getting addition lives via kits).
|
|
*/
|
|
int current();
|
|
|
|
/**
|
|
* Add more to the current lives and include the player that
|
|
* caused this change if applicable.
|
|
*/
|
|
void add(@Nullable PlayerId cause, int delta);
|
|
|
|
/**
|
|
* Get the delta number of life changes this player has caused.
|
|
*/
|
|
int changesBy(PlayerId player);
|
|
|
|
/**
|
|
* Are the amount of lives reduced when this player dies?
|
|
*/
|
|
boolean applicableTo(PlayerId player);
|
|
|
|
/**
|
|
* Is this player the sole owner of these lives?
|
|
*/
|
|
boolean owner(PlayerId playerId);
|
|
|
|
/**
|
|
* Are there no lives left?
|
|
*/
|
|
boolean empty();
|
|
|
|
/**
|
|
* Get the competitor relation of these lives.
|
|
*/
|
|
Competitor competitor();
|
|
|
|
/**
|
|
* Message sent to players notifying them how many lives they have left.
|
|
*/
|
|
BaseComponent remaining();
|
|
|
|
/**
|
|
* Sidebar status of how many respawns a competitor has left.
|
|
*/
|
|
BaseComponent status();
|
|
|
|
/**
|
|
* Message sent when a player gains or loses lives.
|
|
*/
|
|
BaseComponent change(int delta);
|
|
|
|
/**
|
|
* Implementations of lives as an enum.
|
|
*/
|
|
Type type(); enum Type { TEAM, INDIVIDUAL }
|
|
|
|
}
|