Barotrauma Client
Loading...
Searching...
No Matches
Barotrauma.CampaignMode Class Referenceabstract
Inheritance diagram for Barotrauma.CampaignMode:
Barotrauma.GameMode Barotrauma.MultiPlayerCampaign

Public Types

enum  InteractionType {
  None , Talk , Examine , Map ,
  Crew , Store , Upgrade , PurchaseSub ,
  MedicalClinic , Cargo
}
 
enum  TransitionType {
  None , LeaveLocation , ProgressToNextLocation , ReturnToPreviousLocation ,
  ReturnToPreviousEmptyLocation , ProgressToNextEmptyLocation , End
}
 

Public Member Functions

virtual Wallet GetWallet (Client client=null)
 
virtual bool TryPurchase (Client client, int price)
 
virtual int GetBalance (Client client=null)
 
bool CanAfford (int cost, Client client=null)
 
Location GetCurrentDisplayLocation ()
 The location that's displayed as the "current one" in the map screen. Normally the current outpost or the location at the start of the level, but when selecting the next destination at the end of the level at an uninhabited location we use the location at the end.
 
SubmarineInfo GetPredefinedStartOutpost ()
 
override void Start ()
 
void InitFactions ()
 
override void AddExtraMissions (LevelData levelData)
 
void LoadNewLevel ()
 
TransitionType GetAvailableTransition (out LevelData nextLevel, out Submarine leavingSub)
 Which type of transition between levels is currently possible (if any)
 
TransitionType GetAvailableTransition ()
 
override void End (CampaignMode.TransitionType transitionType=CampaignMode.TransitionType.None)
 
void HandleSaveAndQuit ()
 Handles updating store stock, registering event history and relocating items (i.e. things that need to be done when saving and quitting mid-round)
 
void UpdateStoreStock ()
 Updates store stock before saving the game.
 
void EndCampaign ()
 
Faction GetRandomFaction (Rand.RandSync randSync, bool allowEmpty=true)
 Returns a random faction based on their ControlledOutpostPercentage.
 
Faction GetRandomSecondaryFaction (Rand.RandSync randSync, bool allowEmpty=true)
 Returns a random faction based on their SecondaryControlledOutpostPercentage.
 
bool TryHireCharacter (Location location, CharacterInfo characterInfo, bool takeMoney=true, Client client=null, bool buyingNewCharacter=false)
 
int NewCharacterCost (CharacterInfo characterInfo)
 
bool CanAffordNewCharacter (CharacterInfo characterInfo)
 
void AssignNPCMenuInteraction (Character character, InteractionType interactionType)
 
void OutpostNPCAttacked (Character npc, Character attacker, AttackResult attackResult)
 
Faction GetFaction (Identifier identifier)
 
float GetReputation (Identifier factionIdentifier)
 
FactionAffiliation GetFactionAffiliation (Identifier factionIdentifier)
 
void Save (XElement element)
 
void LogState ()
 
override void Remove ()
 
int NumberOfMissionsAtLocation (Location location)
 
void CheckTooManyMissions (Location currentLocation, Client sender)
 
void SwitchSubs ()
 
void SavePets (XElement parentElement=null)
 
void LoadPets ()
 
void SaveActiveOrders (XElement parentElement=null)
 
void LoadActiveOrders ()
 
- Public Member Functions inherited from Barotrauma.GameMode
virtual void UpdateWhilePaused (float deltaTime)
 
 GameMode (GameModePreset preset)
 
virtual void ShowStartMessage ()
 
virtual void AddToGUIUpdateList ()
 
virtual void Update (float deltaTime)
 

Static Public Member Functions

static bool BlocksInteraction (InteractionType interactionType)
 
static List< SubmarineGetSubsToLeaveBehind (Submarine leavingSub)
 
static int GetHullRepairCost ()
 
static int GetItemRepairCost ()
 
static Faction GetRandomFaction (IEnumerable< Faction > factions, Rand.RandSync randSync, bool secondary=false, bool allowEmpty=true)
 
static Faction GetRandomFaction (IEnumerable< Faction > factions, Random random, bool secondary=false, bool allowEmpty=true)
 

Public Attributes

double TotalPlayTime
 
int TotalPassedLevels
 
readonly CargoManager CargoManager
 
UpgradeManager UpgradeManager
 
MedicalClinic MedicalClinic
 
readonly CampaignMetadata CampaignMetadata
 
CampaignSettings Settings
 
readonly NamedEvent< WalletChangedEvent > OnMoneyChanged = new NamedEvent<WalletChangedEvent>()
 
bool CheatsEnabled
 
SubmarineInfo PendingSubmarineSwitch
 
Wallet Bank
 
bool PurchasedLostShuttlesInLatestSave
 
bool PurchasedHullRepairsInLatestSave
 
bool PurchasedItemRepairsInLatestSave
 
bool DivingSuitWarningShown
 
bool ItemsRelocatedToMainSub
 

Static Public Attributes

readonly record struct SaveInfo(string FilePath, Option< SerializableDateTime > SaveTime, string SubmarineName, ImmutableArray< string > EnabledContentPackageNames) const int MaxMoney = int.MaxValue / 2
 
const int InitialMoney = 8500
 
const float HullRepairCostPerDamage = 0.1f
 
const float ItemRepairCostPerRepairDuration = 1.0f
 
const int ShuttleReplaceCost = 1000
 
const int MaxHullRepairCost = 600
 
const int MaxItemRepairCost = 2000
 
- Static Public Attributes inherited from Barotrauma.GameMode
static List< GameModePresetPresetList = new List<GameModePreset>()
 

Protected Member Functions

 CampaignMode (GameModePreset preset, CampaignSettings settings)
 
void LoadInitialLevel ()
 Load the first level and start the round after loading a save file.
 
IEnumerable< CoroutineStatusDoLevelTransition (TransitionType transitionType, LevelData newLevel, Submarine leavingSub, bool mirror)
 
virtual void EndCampaignProjSpecific ()
 
void KeepCharactersCloseToOutpost (float deltaTime)
 
void LoadStats (XElement element)
 
XElement SaveStats ()
 
void TransferItemsBetweenSubs ()
 Also serializes the current sub.
 
void RefreshOwnedSubmarines ()
 

Static Protected Member Functions

static void LeaveUnconnectedSubs (Submarine leavingSub)
 

Protected Attributes

XElement petsElement
 
bool wasDocked
 
Map map
 
- Protected Attributes inherited from Barotrauma.GameMode
DateTime startTime
 
GameModePreset preset
 

Static Protected Attributes

const float EndTransitionDuration = 5.0f
 

Properties

IReadOnlyList< FactionFactions [get]
 
XElement ActiveOrdersElement [get, set]
 
bool IsFirstRound = true [get, protected set]
 
bool DisableEvents [get]
 
bool TransferItemsOnSubSwitch [get, set]
 
bool SwitchedSubsThisRound [get]
 
Map Map [get]
 
override IEnumerable< Mission > Missions [get]
 
Location CurrentLocation [get]
 
LevelData NextLevel [get, protected set]
 
virtual bool PurchasedHullRepairs [get, set]
 
virtual bool PurchasedLostShuttles [get, set]
 
virtual bool PurchasedItemRepairs [get, set]
 
- Properties inherited from Barotrauma.GameMode
CrewManager CrewManager [get]
 
virtual IEnumerable< Mission > Missions [get]
 
bool IsSinglePlayer [get]
 
LocalizedString Name [get]
 
virtual bool Paused [get]
 
GameModePreset Preset [get]
 

Events

Action BeforeLevelLoading
 Automatically cleared after triggering -> no need to unregister.
 
Action OnSaveAndQuit
 Triggers when saving and quitting mid-round (as in, not just transferring to a new level). Automatically cleared after triggering -> no need to unregister.
 

Member Enumeration Documentation

◆ InteractionType

Enumerator
None 
Talk 
Examine 
Map 
Crew 
Store 
Upgrade 
PurchaseSub 
MedicalClinic 
Cargo 

◆ TransitionType

Enumerator
None 
LeaveLocation 
ProgressToNextLocation 
ReturnToPreviousLocation 
ReturnToPreviousEmptyLocation 
ProgressToNextEmptyLocation 
End 

Constructor & Destructor Documentation

◆ CampaignMode()

Barotrauma.CampaignMode.CampaignMode ( GameModePreset preset,
CampaignSettings settings )
protected

Member Function Documentation

◆ AddExtraMissions()

override void Barotrauma.CampaignMode.AddExtraMissions ( LevelData levelData)
virtual

Reimplemented from Barotrauma.GameMode.

◆ AssignNPCMenuInteraction()

void Barotrauma.CampaignMode.AssignNPCMenuInteraction ( Character character,
InteractionType interactionType )

◆ BlocksInteraction()

static bool Barotrauma.CampaignMode.BlocksInteraction ( InteractionType interactionType)
static

◆ CanAfford()

bool Barotrauma.CampaignMode.CanAfford ( int cost,
Client client = null )

◆ CanAffordNewCharacter()

bool Barotrauma.CampaignMode.CanAffordNewCharacter ( CharacterInfo characterInfo)

◆ CheckTooManyMissions()

void Barotrauma.CampaignMode.CheckTooManyMissions ( Location currentLocation,
Client sender )

◆ DoLevelTransition()

IEnumerable< CoroutineStatus > Barotrauma.CampaignMode.DoLevelTransition ( TransitionType transitionType,
LevelData newLevel,
Submarine leavingSub,
bool mirror )
abstractprotected

◆ End()

override void Barotrauma.CampaignMode.End ( CampaignMode.TransitionType transitionType = CampaignMode::TransitionType::None)
virtual

Reimplemented from Barotrauma.GameMode.

◆ EndCampaign()

void Barotrauma.CampaignMode.EndCampaign ( )

◆ EndCampaignProjSpecific()

virtual void Barotrauma.CampaignMode.EndCampaignProjSpecific ( )
protectedvirtual

◆ GetAvailableTransition() [1/2]

TransitionType Barotrauma.CampaignMode.GetAvailableTransition ( )

◆ GetAvailableTransition() [2/2]

TransitionType Barotrauma.CampaignMode.GetAvailableTransition ( out LevelData nextLevel,
out Submarine leavingSub )

Which type of transition between levels is currently possible (if any)

◆ GetBalance()

virtual int Barotrauma.CampaignMode.GetBalance ( Client client = null)
virtual

◆ GetCurrentDisplayLocation()

Location Barotrauma.CampaignMode.GetCurrentDisplayLocation ( )

The location that's displayed as the "current one" in the map screen. Normally the current outpost or the location at the start of the level, but when selecting the next destination at the end of the level at an uninhabited location we use the location at the end.

◆ GetFaction()

Faction Barotrauma.CampaignMode.GetFaction ( Identifier identifier)

◆ GetFactionAffiliation()

FactionAffiliation Barotrauma.CampaignMode.GetFactionAffiliation ( Identifier factionIdentifier)

◆ GetHullRepairCost()

static int Barotrauma.CampaignMode.GetHullRepairCost ( )
static

◆ GetItemRepairCost()

static int Barotrauma.CampaignMode.GetItemRepairCost ( )
static

◆ GetPredefinedStartOutpost()

SubmarineInfo Barotrauma.CampaignMode.GetPredefinedStartOutpost ( )

◆ GetRandomFaction() [1/3]

static Faction Barotrauma.CampaignMode.GetRandomFaction ( IEnumerable< Faction > factions,
Rand.RandSync randSync,
bool secondary = false,
bool allowEmpty = true )
static

◆ GetRandomFaction() [2/3]

static Faction Barotrauma.CampaignMode.GetRandomFaction ( IEnumerable< Faction > factions,
Random random,
bool secondary = false,
bool allowEmpty = true )
static

◆ GetRandomFaction() [3/3]

Faction Barotrauma.CampaignMode.GetRandomFaction ( Rand.RandSync randSync,
bool allowEmpty = true )

Returns a random faction based on their ControlledOutpostPercentage.

Parameters
allowEmptyIf true, the method can return null if the sum of the factions ControlledOutpostPercentage is less than 100%

◆ GetRandomSecondaryFaction()

Faction Barotrauma.CampaignMode.GetRandomSecondaryFaction ( Rand.RandSync randSync,
bool allowEmpty = true )

Returns a random faction based on their SecondaryControlledOutpostPercentage.

Parameters
allowEmptyIf true, the method can return null if the sum of the factions SecondaryControlledOutpostPercentage is less than 100%

◆ GetReputation()

float Barotrauma.CampaignMode.GetReputation ( Identifier factionIdentifier)

◆ GetSubsToLeaveBehind()

static List< Submarine > Barotrauma.CampaignMode.GetSubsToLeaveBehind ( Submarine leavingSub)
static

◆ GetWallet()

virtual Wallet Barotrauma.CampaignMode.GetWallet ( Client client = null)
virtual

◆ HandleSaveAndQuit()

void Barotrauma.CampaignMode.HandleSaveAndQuit ( )

Handles updating store stock, registering event history and relocating items (i.e. things that need to be done when saving and quitting mid-round)

◆ InitFactions()

void Barotrauma.CampaignMode.InitFactions ( )

◆ KeepCharactersCloseToOutpost()

void Barotrauma.CampaignMode.KeepCharactersCloseToOutpost ( float deltaTime)
protected

◆ LeaveUnconnectedSubs()

static void Barotrauma.CampaignMode.LeaveUnconnectedSubs ( Submarine leavingSub)
staticprotected

◆ LoadActiveOrders()

void Barotrauma.CampaignMode.LoadActiveOrders ( )

◆ LoadInitialLevel()

void Barotrauma.CampaignMode.LoadInitialLevel ( )
abstractprotected

Load the first level and start the round after loading a save file.

◆ LoadNewLevel()

void Barotrauma.CampaignMode.LoadNewLevel ( )

◆ LoadPets()

void Barotrauma.CampaignMode.LoadPets ( )

◆ LoadStats()

void Barotrauma.CampaignMode.LoadStats ( XElement element)
protected

◆ LogState()

void Barotrauma.CampaignMode.LogState ( )

◆ NewCharacterCost()

int Barotrauma.CampaignMode.NewCharacterCost ( CharacterInfo characterInfo)

◆ NumberOfMissionsAtLocation()

int Barotrauma.CampaignMode.NumberOfMissionsAtLocation ( Location location)

◆ OutpostNPCAttacked()

void Barotrauma.CampaignMode.OutpostNPCAttacked ( Character npc,
Character attacker,
AttackResult attackResult )

◆ RefreshOwnedSubmarines()

void Barotrauma.CampaignMode.RefreshOwnedSubmarines ( )
protected

◆ Remove()

override void Barotrauma.CampaignMode.Remove ( )
virtual

Reimplemented from Barotrauma.GameMode.

◆ Save()

void Barotrauma.CampaignMode.Save ( XElement element)
abstract

◆ SaveActiveOrders()

void Barotrauma.CampaignMode.SaveActiveOrders ( XElement parentElement = null)

◆ SavePets()

void Barotrauma.CampaignMode.SavePets ( XElement parentElement = null)

◆ SaveStats()

XElement Barotrauma.CampaignMode.SaveStats ( )
protected

◆ Start()

override void Barotrauma.CampaignMode.Start ( )
virtual

Reimplemented from Barotrauma.GameMode.

◆ SwitchSubs()

void Barotrauma.CampaignMode.SwitchSubs ( )

◆ TransferItemsBetweenSubs()

void Barotrauma.CampaignMode.TransferItemsBetweenSubs ( )
protected

Also serializes the current sub.

◆ TryHireCharacter()

bool Barotrauma.CampaignMode.TryHireCharacter ( Location location,
CharacterInfo characterInfo,
bool takeMoney = true,
Client client = null,
bool buyingNewCharacter = false )

◆ TryPurchase()

virtual bool Barotrauma.CampaignMode.TryPurchase ( Client client,
int price )
virtual

◆ UpdateStoreStock()

void Barotrauma.CampaignMode.UpdateStoreStock ( )

Updates store stock before saving the game.

Member Data Documentation

◆ Bank

Wallet Barotrauma.CampaignMode.Bank

◆ CampaignMetadata

readonly CampaignMetadata Barotrauma.CampaignMode.CampaignMetadata

◆ CargoManager

readonly CargoManager Barotrauma.CampaignMode.CargoManager

◆ CheatsEnabled

bool Barotrauma.CampaignMode.CheatsEnabled

◆ DivingSuitWarningShown

bool Barotrauma.CampaignMode.DivingSuitWarningShown

◆ EndTransitionDuration

const float Barotrauma.CampaignMode.EndTransitionDuration = 5.0f
staticprotected

◆ HullRepairCostPerDamage

const float Barotrauma.CampaignMode.HullRepairCostPerDamage = 0.1f
static

◆ InitialMoney

const int Barotrauma.CampaignMode.InitialMoney = 8500
static

◆ ItemRepairCostPerRepairDuration

const float Barotrauma.CampaignMode.ItemRepairCostPerRepairDuration = 1.0f
static

◆ ItemsRelocatedToMainSub

bool Barotrauma.CampaignMode.ItemsRelocatedToMainSub

◆ map

Map Barotrauma.CampaignMode.map
protected

◆ MaxHullRepairCost

const int Barotrauma.CampaignMode.MaxHullRepairCost = 600
static

◆ MaxItemRepairCost

const int Barotrauma.CampaignMode.MaxItemRepairCost = 2000
static

◆ MaxMoney

readonly record struct SaveInfo ( string FilePath, Option<SerializableDateTime> SaveTime, string SubmarineName, ImmutableArray<string> EnabledContentPackageNames) const int Barotrauma.CampaignMode.MaxMoney = int.MaxValue / 2
static

◆ MedicalClinic

MedicalClinic Barotrauma.CampaignMode.MedicalClinic

◆ OnMoneyChanged

readonly NamedEvent<WalletChangedEvent> Barotrauma.CampaignMode.OnMoneyChanged = new NamedEvent<WalletChangedEvent>()

◆ PendingSubmarineSwitch

SubmarineInfo Barotrauma.CampaignMode.PendingSubmarineSwitch

◆ petsElement

XElement Barotrauma.CampaignMode.petsElement
protected

◆ PurchasedHullRepairsInLatestSave

bool Barotrauma.CampaignMode.PurchasedHullRepairsInLatestSave

◆ PurchasedItemRepairsInLatestSave

bool Barotrauma.CampaignMode.PurchasedItemRepairsInLatestSave

◆ PurchasedLostShuttlesInLatestSave

bool Barotrauma.CampaignMode.PurchasedLostShuttlesInLatestSave

◆ Settings

CampaignSettings Barotrauma.CampaignMode.Settings

◆ ShuttleReplaceCost

const int Barotrauma.CampaignMode.ShuttleReplaceCost = 1000
static

◆ TotalPassedLevels

int Barotrauma.CampaignMode.TotalPassedLevels

◆ TotalPlayTime

double Barotrauma.CampaignMode.TotalPlayTime

◆ UpgradeManager

UpgradeManager Barotrauma.CampaignMode.UpgradeManager

◆ wasDocked

bool Barotrauma.CampaignMode.wasDocked
protected

Property Documentation

◆ ActiveOrdersElement

XElement Barotrauma.CampaignMode.ActiveOrdersElement
getsetprotected

◆ CurrentLocation

Location Barotrauma.CampaignMode.CurrentLocation
get

◆ DisableEvents

bool Barotrauma.CampaignMode.DisableEvents
get

◆ Factions

IReadOnlyList<Faction> Barotrauma.CampaignMode.Factions
get

◆ IsFirstRound

bool Barotrauma.CampaignMode.IsFirstRound = true
getprotected set

◆ Map

Map Barotrauma.CampaignMode.Map
get

◆ Missions

override IEnumerable<Mission> Barotrauma.CampaignMode.Missions
get

◆ NextLevel

LevelData Barotrauma.CampaignMode.NextLevel
getprotected set

◆ PurchasedHullRepairs

virtual bool Barotrauma.CampaignMode.PurchasedHullRepairs
getset

◆ PurchasedItemRepairs

virtual bool Barotrauma.CampaignMode.PurchasedItemRepairs
getset

◆ PurchasedLostShuttles

virtual bool Barotrauma.CampaignMode.PurchasedLostShuttles
getset

◆ SwitchedSubsThisRound

bool Barotrauma.CampaignMode.SwitchedSubsThisRound
get

◆ TransferItemsOnSubSwitch

bool Barotrauma.CampaignMode.TransferItemsOnSubSwitch
getset

Event Documentation

◆ BeforeLevelLoading

Action Barotrauma.CampaignMode.BeforeLevelLoading

Automatically cleared after triggering -> no need to unregister.

◆ OnSaveAndQuit

Action Barotrauma.CampaignMode.OnSaveAndQuit

Triggers when saving and quitting mid-round (as in, not just transferring to a new level). Automatically cleared after triggering -> no need to unregister.


The documentation for this class was generated from the following file: