First commit
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Examples
|
||||
|
||||
These examples describe the current Hytale-native setup: minigame definitions are assets, and world interaction is done with normal Hytale trigger volumes using the minigame trigger condition/effect types.
|
||||
|
||||
## Simple Start Pad
|
||||
|
||||
Definition file: `Server/Minigames/Quick_Brawl.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "Quick_Brawl",
|
||||
"Name": "Quick Brawl",
|
||||
"Description": "A short solo score test.",
|
||||
"Enabled": true,
|
||||
"MinPlayers": 1,
|
||||
"MaxPlayers": 8,
|
||||
"TeamMode": "SOLO",
|
||||
"WinCondition": "HIGHEST_SCORE",
|
||||
"RoundLengthSeconds": 120,
|
||||
"CountdownSeconds": 5,
|
||||
"AllowPvp": true
|
||||
}
|
||||
```
|
||||
|
||||
Editor setup:
|
||||
|
||||
1. Create a normal Hytale trigger volume at the start pad.
|
||||
2. Add the `StartMinigame` effect.
|
||||
3. Set `MinigameId` to `Quick_Brawl` using the asset picker.
|
||||
|
||||
## Score Zone
|
||||
|
||||
Definition file: `Server/Minigames/Hill_Points.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"Id": "Hill_Points",
|
||||
"Name": "Hill Points",
|
||||
"Enabled": true,
|
||||
"MinPlayers": 1,
|
||||
"MaxPlayers": 12,
|
||||
"TeamMode": "SOLO",
|
||||
"WinCondition": "FIRST_TO_SCORE",
|
||||
"RoundLengthSeconds": 300
|
||||
}
|
||||
```
|
||||
|
||||
Editor setup:
|
||||
|
||||
1. Create a normal Hytale trigger volume around the scoring area.
|
||||
2. Add `PlayerInMinigame` as a condition.
|
||||
3. Add `ModifyPlayerScore` as an effect.
|
||||
4. Set `MinigameId = Hill_Points`, `Operation = ADD`, and `Amount = 1`.
|
||||
|
||||
If the trigger context already contains the player who entered the volume, leave `PlayerId` blank.
|
||||
|
||||
## End When Score Reaches a Target
|
||||
|
||||
Condition:
|
||||
|
||||
- Type: `PlayerScore`
|
||||
- `MinigameId = Hill_Points`
|
||||
- `Compare = GREATER_THAN_OR_EQUAL`
|
||||
- `Value = 100`
|
||||
|
||||
Effect:
|
||||
|
||||
- Type: `EndMinigame`
|
||||
- `MinigameId = Hill_Points`
|
||||
- `Reason = score_reached`
|
||||
|
||||
## Team Score Zone
|
||||
|
||||
Use `ModifyTeamScore` when the score belongs to a team instead of a player.
|
||||
|
||||
Required fields:
|
||||
|
||||
- `MinigameId`
|
||||
- `TeamId`
|
||||
- `Operation`
|
||||
- `Amount`
|
||||
|
||||
The current implementation expects an explicit `TeamId`.
|
||||
|
||||
## Counter Gate
|
||||
|
||||
Increment:
|
||||
|
||||
- Effect: `ModifyCounter`
|
||||
- `CounterId = captured_points`
|
||||
- `Operation = ADD`
|
||||
- `Amount = 1`
|
||||
|
||||
Gate:
|
||||
|
||||
- Condition: `Counter`
|
||||
- `CounterId = captured_points`
|
||||
- `Compare = GREATER_THAN_OR_EQUAL`
|
||||
- `Value = 3`
|
||||
|
||||
Then attach a follow-up effect, such as `SetMinigamePhase` or `EndMinigame`.
|
||||
Reference in New Issue
Block a user