DeathMatchPlus
This is the Tournament DeathMatch gametype and at the same time the superclass of all other "playable" UT game types.
Properties
Globalconfig Properties
These settings are shared among all UT game types.
- globalconfig int MinPlayers
- Bots fill the server to guarantee this minimum number of players.
- globalconfig float AirControl
- The default air control.
- globalconfig bool bChangeLevels
- globalconfig bool bHardcoreMode
- If this is True players receive 50% more damage and jump 10% higher. Game time goes by 10% faster.
- globalconfig bool bMegaspeed
- Players move 40% faster and jump 20% higher than without bMegaSpeed and bHardcoreMode.
- globalconfig bool bAltScoring
- If a player is killed by another player his score is reduced by 1 point.
- globalconfig bool bTournament
- True if Tournament mode is enabled. Tournament mode prevents the game from starting until every player has indicated that they are ready (even if the "non ready" players have nipped down the chippy for some food).
- globalconfig int NetWait
- Time to wait for players in netgames w/ bNetReady (typically team games)
- globalconfig int RestartWait
- globalconfig int InitialBots
Config Properties
Per-gametype settings.
- config int FragLimit
- Pretty obvious.
- config int TimeLimit
- Time limit in minutes.
- config bool bMultiWeaponStay
- Weapons stay when they are picked up. (No respawn time)
- config bool bForceRespawn
- Players respawn instantly. (Configured in the Settings tab of the Start Game window.)
- config int MaxCommanders
- config bool bUseTranslocator
- Whether players should get a Translocator.
Localized Properties
- string StartUpMessage
- string TourneyMessage
- string WaitingMessage1
- string WaitingMessage2
- string ReadyMessage
- string NotReadyMessage
- string CountDownMessage
- string StartMessage
- string GameEndedMessage
- string SingleWaitingMessage
- string gamegoal
- string NoNameChange
- string OvertimeMessage
Other Properties
- bool bChallengeMode
- Game time goes by even faster. (25%)
- bool bAlwaysForceRespawn
- Overrides bForceRespawn to be always True. This is a gametype specific setting and can not be configured.
- bool DontRestart
- ???
- bool bAlreadyChanged
- ???
- bool bFirstBlood
- This indicated whether First Blood was already drawn.
- bool bRequireReady
- bool bNoviceMode
- This will be set when Difficulty is below 4.
- bool bNetReady
- bool bJumpMatch
- All Players can jump as high as if they had the jump boots.
- bool bThreePlus
- This will be set when Difficulty is not >= 4, but > 3. (this doesn't seem to be possible though, since Difficulty is a byte variable)
- bool bFulfilledSpecial
- ???
- bool bRatedTranslocator
- Use the Translocator in in this rated game, i.e. ladder game.
- bool bStartMatch
- True during match startup.
- int RemainingTime, ElapsedTime
- int CountDown, StartCount
- float LastTauntTime
- NavigationPoint LastStartSpot
- int NumCommanders
- Number of Commanders in the game. (Commanders are not implemented in UT)
- bool bTutorialGame
- This game is a tutorial game.
- int NumBots
- Number of bots in the game.
- int RemainingBots
- int LastTaunt[4]
- The indices of the last four auto-taunts used, LastTaunt[3] being the most recent. This is generally updated by the Killed() function.
- ChallengeBotInfo? BotConfig
- class<ChallengeBotInfo?> BotConfigType
- float PlayerRating
- float AvgOpponentRating
- int NumOpp
- int WinCount
- int LoseCount
- PlayerPawn RatedPlayer
- int IDnum
- RatedMatchInfo? RatedMatchConfig
- float EndTime
- int LadderTypeIndex
- LadderInventory RatedGameLadderObj
Methods
- PreCacheReferences ( )
- This function is never called. It exists purely to force the pre-caching of the standard weapon and player meshes. The Arena mutators thereby force the pre-caching of weapon meshes that are not even used.
- CheckReady ( )
- This function sets the TimeLimit to 20, and the RemainingTime to 1200. The function is only called when tournament mode is turned on.
- SetGameSpeed (float T)
- This function sets the gamespeed. It completely replaces the superclass implementation. The function also calls SaveConfig() once the final game speed has been calculated.
- PlayTeleportEffect (Actor (UT) Incoming, bool bOut, bool bSound)
- Originally declared in GameInfo (UT). This function simply adds a check for tournament mode behaviour. Apart from that the code is identical to the TournamentGameInfo version of this function. Note to newbie coders: This is an example of poor practice. After the initial tournament check the developer should simply have called
Super.PlayTeleportEffect()
- it would have saved the code duplication. - InitRatedGame (LadderInventory LadderObj, PlayerPawn LadderPlayer)
- Set game settings based on ladder information. Called when RatedPlayer logs in.
- AcceptInventory (Pawn (UT) PlayerPawn)
- Originally declared in GameInfo (UT). This function allows the player to keep all instances of type LadderInventory, and destroys all other inventory objects. The player's weapon and selected item are set to None and the function AddDefaultInventory() is called.
- bool SetEndCams (string Reason)
- Plays the winning message and focuses the view on the winning player.
- PlayWinMessage (PlayerPawn Player, bool bWinner)
- Plays the winning message if the object passed is of type TournamentPlayer?.
- NotifySpree (Pawn (UT) Other, int num)
- Notifies the local player if they are on a killing spree - and selects an appropriate message. num is the number of kills the player has got without dying.
- EndSpree (Pawn (UT) Killer, Pawn (UT) Other)
- Unfortunately your killing spree has come to an end - lets tell both you and the person who killed you about it.
- Killed (Pawn (UT) killer, Pawn (UT) Other, name damageType)
- Declared in GameInfo (UT). This function checks for any end of game conditions as well as for "first blood" and other special events. This function is also responsible for sending auto taunts.
- StartMatch ( )
- This is called to start the game. If there is a timelimit on the start of the game then this function sets that. There are also traps in here to end the game from spawn-telefrags (if there are not enough start points then it's possible to win a game just from telefragging).
- Timer ( )
- Checks for tournament mode, whether the game has ended because of it's time limit and other stuff.
- bool TooManyBots ( )
- This function returns true if the number of bots plus the number of players is greater than the minimum number of players.
- bool RestartPlayer (Pawn (UT) aPlayer)
- Called to re-start a player on the map. Will also remove bot players from the game if there are too many of them.
- SendStartMessage( PlayerPawn P )
- Shows the start message to the player.
- Bot (UT) SpawnBot (out NavigationPoint StartSpot)
- Spawns a bot. Finish me
- Bot (UT) SpawnRatedBot (out NavigationPoint StartSpot)
- Finish me
- bool ForceAddBot ( )
- Finish me
- bool AddBot ( )
- Finish me
- PlayStartUpMessage (PlayerPawn NewPlayer)
- Finish me
- GiveWeapon (Pawn (UT) PlayerPawn, string aClassName)
- Gives a weapon to a player and makes it the player's current weapon.
- RateVs (Pawn (UT) Other, Pawn (UT) Killer)
- Finish me
- bool SuccessfulGame ( )
- Finish me
- Skip ( )
- SkipAll ( )
- Debug commands (?)
- bool NeedPlayers ( )
- Finish me
- bool OneOnOne ( )
- Returns whether there are only two players (human players or bots
- float SpawnWait (Bot (UT) B)
- Finish me
- bool NeverStakeOut (Bot (UT) Other)
- Finish me
AI and Navigation Functions
- bool CheckThisTranslocator (Bot (UT) aBot, TranslocatorTarget? T)
- This function returns false.
- PickAmbushSpotFor (Bot (UT) aBot)
- This function searches through all NavigationPoint objects on the map looking for navigation points of type AmbushPoint. If the AmbushPoint is not taken (NavigationPoint.taken is false) and the Bot (UT) is not already at an ambush point then the ambush point found will be assigned to the Bot (UT).AmbushSpot. If the bot is already at an ambush point and a new ambush point has been found then the bot's AmbushSpot will be set to the new AmbushPoint.
- byte AssessBotAttitude (Bot (UT) aBot, Pawn (UT) Other)
- This function determines the attitude of aBot towards Other. The value returned by this function is used in Bot (UT).AttitudeTo() function to map to the enumeration eAttitude. The function returns either a 1 (hate) or a 0 (fear) depending on the result of it's calculations. The calculations involve the bot's skill and level of agressiveness as defined by the value of aBot.Aggressiveness.
- float GameThreatAdd (Bot (UT) aBot, Pawn (UT) Other)
- This function is called by Bot.AssessThreat() and returns a numerical value representing the importance of Other as a target. In DeathMatchPlus it simply returns 0, but individual gametypes override this function to gain more control over the bots' selection of targets. For example, the CTFGame implementation of this function returns 10 if Other is a flag carrier, and LastManStanding's version returns slightly higher threat values for players who have more lives left.
- bool AllowTranslocation (Pawn (UT) Other, vector Dest)
- This function returns true.
- bool CanTranslocate (Bot (UT) aBot)
- This function returns true if the bot is able to perform a translocation. In order for the bot to be able to use the translocator it must first have one, and it's Translocator must have a target. Translocation must also be allowed by the game.
- ModifyBehaviour (Bot (UT) NewBot)
- Only declaration here.
Comments
From what I can tell there is an awful lot of handling around the "Tournament Mode" feature.
Known Subclasses
- ChallengeDMP (used for the "Challenge" group of ladder game?)
- ChallengeIntro (used for CityIntro map)
- LastManStanding
- TDarkMatch (Tournament DarkMatch, not used)
- TeamGamePlus
- TrainingDM