2.0 ‐ Managing territories ‐ Objectives and Rewards - Rosstail/Nodewar GitHub Wiki
It is possible to set an objective for any territory, in order to make them capturable by player teams.
This section will be divided into two parts: the objective itself and the rewards. The structure of the objective in the config will depend of the objective itself. The reward structure will still the same.
The control point is the basic system of capture: people must stay on the territory in order to capture it (as attacker) or defend it (as owners).
# territory-types.yml OR any territory file
territory:
# data
objective:
type: control
maximum-health: <integer>
minimum-attackers: <integer> (1)
attacker-ratio: <float> (1.0)
base-capture-speed: <integer> (1)
bonus-capture-speed-per-player: <integer> (0)
maximum-capture-speed: <integer> (1)
neutralize: <boolean>
-
maximum-health
: The amount in seconds needed to fully conquer, neutralize or recapture the territory. -
base-capture-speed
: The default amount of damages/regen applied to a territory when all the basic conditions of attacking/defending are met -
minimum-attackers
: The amount of attackers (or defenders) needed in order to start the capture/defense. -
attacker-ratio
: The amount of attackers on the territory against the defenders. You can do any value between 0 and 1:- 0.0 means that a owned territory can be captured as long as one attacker is present on territory, no matter the amount of defenders.
- 0.5 means the need of at least 50% of players are attackers on the territory.
- 1.0 means that all the players on territory must be attackers. If there's one defender, the capture cannot be done.
-
bonus-capture-speed-per-player
: The value added to the base speed of capture. It starts to count only AFTER reaching the minimum amount of attackers. -
maximum-capture-speed
: The maximum amount of capture speed. -
neutralize
: If enabled depleting the defender health will make the territory pass into a neutral state, doubling the needed time to capture it entirely.
A simple capture point that needs players on it to be captured and to be kept
# territory-types.yml OR any territory file
territory:
# data
objective:
type: keep
attacker-ratio: <float> (1.0)
seconds-to-hold: <integer> (0.0)
minimum-attackers: <integer> (0)
-
attacker-ratio
: The amount of attackers on the territory against the defenders. You can do any value between 0 and 1:- 0.0 means that a owned territory can be captured as long as one attacker is present on territory, no matter the amount of defenders.
- 0.5 means the need of at least 50% of players are attackers on the territory.
- 1.0 means that all the players on territory must be attackers. If there's one defender, the capture cannot be done.
-
seconds-to-hold
: The amount in seconds needed to fully conquer, neutralize or recapture the territory. If the advantage changes for at least one second, the countdown is reset and the territory will be set as neutral.
Similarily to the Siege, the teams will fight by conquering control. But this time, this is a race and every participating team has its own score. The first to reach the required amount will claim the koth territory. Only an attacking team can start the battle, the defenders can only react afterward.
# territory-types.yml OR any territory file
territory:
# data
objective:
type: koth
points-to-reach: <integer>
control-points:
<another-territory-name>:
points-per-second: <integer>
etc...:
-
time-to-reach
: The amount of points a team must get to be victorious. -
control-points
:-
points-per-second
: The amount of points per second a control point territory will give to its owner.
-
Sieges are a kind of objective that uses territories instead of people to be captured or defended. The more a team has the listed territories, the more points they will gain. All these points are used to regenerate the defender health or deplete it. If the bar is depleted, the attacking team with the greatest points per second will claim it.
# territory-types.yml OR any territory file
territory:
# data
objective:
type: siege
maximum-health: <integer>
control-points:
<another-territory-name>:
damage-per-second: <integer>
regen-per-second: <integer>
etc...:
-
maximum-health
: The defender's health bar. If depleted, the defenders will lose the territory to the profit of the greatest attacker. -
control-points
: The different territories used to inflict damages to the siege or to regen forces. These territories can have higher values than others:-
damage-per-second
: If an attacker owns a control-point territory, he will inflict the amount of damages to the siege territory each second passes. -
regen-per-second
: If the siege defender owns this point, the siege health will refill by the amount.
-
The reward list able teams and players to receive some... Rewards, by using commands. They are distributed upon the end of a battle and will target the players or teams with filters.
# territory-types.yml OR any territory file
territory:
# data
objective:
# data
rewards:
<reward-name>:
target: <String>
team-role: <String>
player-team-role: <String>
should-team-win: <boolean>
team-positions:
- <integer>
- etc...
team-minimum-score: <integer>
player-minimum-score: <integer>
commands:
- <String>
- etc...
etc...:
-
<reward-name>
: The identifier of the reward. -
target
: A value between SERVER, TEAM or PLAYER.-
SERVER
means one iteration of the command. -
TEAM
will target the teams. Without filter, it will target every teams. -
PLAYER
will target the players. WIthout filter, it will target every players in the server.
-
-
team-role
andplayer-team-role
: A filter between "ATTACKER" and "DEFENDER".-
ATTACKER
: Will filter teams/players who participated in the battle as an attacker of the territory -
DEFENDER
: Will filter teams/players who participated in the battle as a defender of the territory (Owner OR ally to owner)
-
-
should-team-win
: Will filter team or players in the team that won the battle. The difference withteam-positions
is that the team has to win. -
team-positions
: A list of position that will filter the teams with the defined positions by cumulated scores of players in the team and team itself. The difference withshould-team-win
is that the filter will accept the teams no matter if there is a victor or not. -
team-minimum-score
andplayer-minimum-score
: Will accept the participants only with enough score accumulated through the battle. -
commands
: The list of commands that will be executed.