Conquest Mode
Conquest is the default game mode of the CastleConquest 2 project.
It is about capturing and holding flags.
If the attackers manage to hold enough flags for a certain time, they win, otherwise the defenders win.
Game Concept (Conquest)
General
Conquest is the default game mode of the CastleConquest 2 project. It is a further development of the game mode from the old "BurgConquest" (official name of CastleConquest 1)
It is about capturing and holding flags. If the attackers manage to hold enough flags for a certain time, they win, otherwise the defenders win.
Summary
There are two teams: attackers and defenders. The attackers start in a dedicated attacker spawn. The defenders, on the other hand, start in the castle.
There are several flags in the castle. These belong to the defenders at the start.
The aim of the attackers is to hold more than half of all flags for 5 minutes. If they succeed, they win the game.
However, the attackers have a time limit of 30 minutes. If they do not manage to fulfill this condition by then, the defenders win.
Rules
Teams
- Defenders: Have to prevent the attackers from capturing the castle
- Attackers: Have to capture the castle
Timers
There are two mutually exclusive times.
The game time counting down when the attackers don't have the required amount of flags to win. When the game time has expired, the attackers lose and the defenders win. The game time is paused as long as the flag timer is active.
The flag timer is counting down then the attackers have the required amount of flags to win When the flag timer has expired, the attackers win and the defenders lose. The flag timer is counting up when until it has reached 5 minutes when it is not active.
If one of the timers expires, an overtime can be triggered under certain circumstances. If the overtime is active, the corresponding timer is stopped until the overtime has ended. See section Overtime for more information.
Required flags
Required flags for the attackers: More than half of all flags.
The default map has 6 flags. Therefore, the attackers need to hold at least 4 flags to meet the required flags amount.
Overtime
Overtime can be triggered if a team is currently capturing so many flags that the timer condition for the team could still be fulfilled if nothing changes in the current situation.
For example, if the attackers have 3/6 flags and are currently capturing 1 flag and the game time expires while they are still capturing that flag, the game time will pause so that the attackers can finish capturing this flag, which will enable the flag timer.
Another example, if the attackers currently have all 6/6 flags but the defenders are currently capturing 2 flags at the same time and the flag timer expires, the flag timer will pause so that the defenders can finish capturing both flags which would stop the flag timer.
For the overtime system, "a team is currently capturing a flag" when the team has any progress on it (States: Capturing, Uncapturing, IDLE with progress).
Spawning
Attackers will always spawn in the attacker spawn.
Defenders can spawn in two different locations. Either in the castle or in the outposts near the villages outside.
When the attackers have half of the flags or more (one less than the win condition), they are forced to spawn outside the castle. If not, they can decide if they want to spawn in the castle or outside using the /changerespawn [inside|outside]
command.
Money
Players can earn money by killing players, capturing flags or supporting the team. There is also a balancer system which supports players by giving them money when they are to weak.
Money can be used to purchase equipment and tools to break into or to repair the castle.
Equipment System (Conquest)
General
The equipment system differentiates between 3 main categories: Melee, Ranged and Armor.
Each player starts with only a default melee weapon. Players can then upgrade and specialize their equipment using the equipment shops.
Upgrading
Equipment can be upgraded at the equipment shops. In most cases, they are located in the castle, the attacker spawn and the villages. Upgrading works like this:
- At the beginning, you can choose one of multiple weapons/armors in each category.
- If you have chosen a specifig weapon/armor, you can upgrade it, which increases the stats of this weapon/armor.
- At certain levels you have to specialize the equipment instead of simply upgrading it. This works in a similar way to deciding on a weapon/armor previously.
Downgrading
Involuntary
- If you die, your current equipment will fall back to the previous equipment level.
- However, there are safe levels from which you will not be downgraded further if you die.
- If you got killed by a enemy who has better equipment than you, you will not be downgraded directly. In this case, you will be downgraded the
otherEquipmentLevel - yourEquipmentLevel
-th time you die from this player.
Voluntary
- You cannot switch the weapons/armors or their specializations once you have selected them.
- If you are really sure that you have chosen the wrong equipment, you can buy an equipment reset at the equipment shop. This will reset the selected equipment category to the default level. then you can re-choose your weapon/armor again.
Get Equipment Info
You can always hover over the item with your mouse to get detailed information about it. This section shows you what the values mean.
Equipment Category
- Upgrades to: Shows the next possible equipment levels you can upgrade your equipment to. If not shown, you have already reached the maximum level in this category.
- Downgrades to: Shows the equipment level your equipment downgrades to when you die. If not shown, you are on a safe level.
- Equipment base / Part of: Some Items come with other items you need to use them. They are then "part of" another item. "Equipment base" means that the item is not part of any item. For example, the Rocket Launcher Crossbow is the base of the Rocket Tier 3.
Weapon/Armor Stats
- Damage: Attack Damage
- Speed: Attack Speed which is responsible for the attack Cooldown (if not shown: default)
- Armor: Armor points
- Toughness: Armor toughness
- Protection: Level of the protection enchantment
- Other enchantments: Shown like in vanilla
Examples
Categories
Here you can see the upgrade maps of the categories. The dashed line shows the safe levels.
Melee
Ranged
Armor
Developer Info
Management command
The player equipment can be managed using the /cc2 game players value
command.
Usage
/cc2 game players value <player: (UUID|String)> equipment [<category: String> [<id: Integer>]]
Examples
- Get all equipments:
/cc2 game players value <player> equipment
- Get a specific equipment:
/cc2 game players value <player> equipment <category>
- Set a specific equipment:
/cc2 game players value <player> equipment <category> <id>
Responsibilities
The ConquestEquipmentSystem
handles the equipment. ConquestEquipmentData
stores information about one equipment level and contains ConquestEquipmentItem
s that represents the items of that equipment. The ConquestEquipmentSystem
uses the EquipmentSystem
(game) as a base.
The ConquestEquipmentGUI
is responsible for the equipment shop.
Flags (Conquest)
General
Holding flags is the main objective in conquest mode.
For the attackers to win, they must hold more than half of all flags for 5 minutes.
In order for the defenders to win, the attackers must run out of their available time of 30 minutes.
Both timers are mutually exclusive. This means that if the attackers' 5-minute timer is active, the defenders' 30-minute timer is inactive. The same applies the other way round, but the attackers' 5-minute timer counts up to 5 minutes again in the background as long as it is inactive.
Behavior
Status | Condition | Result |
---|---|---|
IDLE | No enemy team and no capturing progress on the flag | Nothing happens |
Capturing | Other team is in the majority on the flag | Capturing progress inceases |
Uncapturing | Holding team is in the majority on the flag | Capturing progress decreases |
IDLE with progress | No team is on the flag, but there is still capturing progress on it | Capturing progress decreases slowly |
Tie | Both holding team and other team is on the flag with the same amount of players | Nothing happens |
- When the capturing progress reaches 100 %, the team that had capturing progress on the flag is now the new holding team
- “Team in majority” means that the team has the most players on the flag compared to the other team.
Appearance in world
Particles
The green or red particles on the ground are marking a flag area. The particle color is the current holding team of the flag. That means, if the flag is currently controlled by the defenders, the particles are green. When the attackers are holding the flag, the particles are red.
Here you can see how that looks:
Flag Object
A planned feature is that there is an actual flag model in the flag area. Since we currently don't have someone who creates custom models, this feature isn't currently available.
Sidebar
There is also a capturing indicator. It is shown in the color of the team which currently has capturing progress on the flag.
Flag Locations
Default map
Letter | Location |
---|---|
A | In front of the main gate |
B | Center of the Yard |
C | Tower in the Throne Building of the Yard |
D | Park (inofficially known as "Oxygen") in the basement |
E | Dining room in the basement |
F | Water Generator Room in the basement |
Developer info
Control command
Usage
/cc2 game flags [<flagId: int> [area|captureprogressdecreaseidle|captureprogressdecreaseuncapture|captureprogressincreasecapture|captureprogressincreaseidle|capturingprogress|capturingteam [reset]|holdingteam [<holdingTeam: int>|id|location|majorityteam|name]]
Examples
- Get list of flags:
/cc2 game flags
- Show info about one flag:
/cc2 game flags <flagId>
- Show specific info about one flag:
/cc2 game flags <flagId> captureprogressdecreaseidle
- Change holding team:
/cc2 game flags <flagId> holdingteam 1
- Reset capturing team (and progress):
/cc2 game flags <flagId> capturingteam reset
Flag states
How it works internally
Instead of the flag states which are shown to the outside, the flag uses 3 different values which then results in the flag state:
holdingTeam
: The team that is currently holding the flagcapturingTeam
: The team that has currently capturing progress on the flagmajorityTeam
: The team that has currently the majority of players on the flag
Then there is also the capturingProgress
:
- Depending on the values, the
capturingProgress
increases, decreases or remains unchanged. If thecapturingProgress
reaches a certain value, thecapturingTeam
becomes the new holdingTeam. - The
capturingProgress
resets to0
if there is nocapturingTeam
. - If the
capturingProgress
is0
or below, thecapturingTeam
is cleared - The
holdingTeam
cannot be thecapturingTeam
Internal values to flag state
Internal name | Condition | Result | Shown name |
---|---|---|---|
IDLE | capturingTeam not set |
Nothing happens | IDLE |
CAPTURING | capturingTeam is set and capturingTeam == majorityTeam |
capturingProgress increases |
Capturing |
UNCAPTURING_BY_OWNER | capturingTeam is set and majorityTeam == holdingTeam |
capturingProgress decreases |
Uncapturing |
UNCAPTURING_BY_OTHER | capturingTeam is set and majorityTeam != holdingTeam != capturingTeam |
capturingProgress decreases |
N/A (not possible except when using commands) |
UNCAPTURING_IDLE | capturingTeam is set and majorityTeam not set |
capturingProgress decreases |
IDLE with progress |
MULTIPLE_TEAMS | capturingTeam is set and majority team set to multiple teams value (-1) |
Nothing happens | Tie |
Responsibilities
- Each flag is represented by an object of
ConquestFlag
. They are stored in the flags map inConquestGame
. - A
ConquestFlagCapturedEvent
is fired when the holding team of the flag changes (due to capturing). Cancelling this event will prevent the holding team from getting changed, but since it does not change anything else, the flag will try to change its holding team again the next tick if the conditions are the same. - A
ConquestFlagPlayerOnFlagEvent
is fired for each player inside the flag area. Cancelling this event will remove the player from the majority team calculation for the current tick.