using System;
namespace Barotrauma
{
public enum TransitionMode
{
Linear,
Smooth,
Smoother,
EaseIn,
EaseOut,
Exponential
}
public enum ActionType
{
Always = 0, OnPicked = 1, OnUse = 2, OnSecondaryUse = 3,
OnWearing = 4, OnContaining = 5, OnContained = 6, OnNotContained = 7,
OnActive = 8, OnFailure = 9, OnBroken = 10,
OnFire = 11, InWater = 12, NotInWater = 13,
OnImpact = 14,
OnEating = 15,
OnDamaged = 16,
OnSevered = 17,
OnProduceSpawned = 18,
OnOpen = 19, OnClose = 20,
OnSpawn = 21,
OnSuccess = 22,
OnAbility = 23,
OnDeath = OnBroken
}
public enum AbilityEffectType
{
Undefined,
None,
OnAttack,
OnAttackResult,
OnAttacked,
OnAttackedResult,
OnGainSkillPoint,
OnAllyGainSkillPoint,
OnRepairComplete,
OnItemFabricationSkillGain,
OnItemFabricatedAmount,
OnItemFabricatedIngredients,
OnAllyItemFabricatedAmount,
OnOpenItemContainer,
OnUseRangedWeapon,
OnReduceAffliction,
OnAddDamageAffliction,
OnRagdoll,
OnRoundEnd,
OnLootCharacter,
OnAnyMissionCompleted,
OnAllMissionsCompleted,
OnGiveOrder,
OnCrewKillCharacter,
OnKillCharacter,
OnDieToCharacter,
OnAllyGainMissionExperience,
OnGainMissionExperience,
OnGainMissionMoney,
OnLocationDiscovered,
OnItemDeconstructed,
OnItemDeconstructedByAlly,
OnItemDeconstructedMaterial,
OnItemDeconstructedInventory,
OnStopTinkering,
OnItemPicked,
OnGeneticMaterialCombinedOrRefined,
OnCrewGeneticMaterialCombinedOrRefined,
AfterSubmarineAttacked,
OnApplyTreatment,
OnStatusEffectIdentifier,
}
///
/// StatTypes are used to alter several traits of a character. They are mostly used by talents.
///
/// A lot of StatTypes use a "percentage" value. The way this works is that the value is 0 by default and 1 is added to the value of the stat type to get the final multiplier.
/// For example if the value is set to 0.2 then 1 is added to it making it 1.2 and that is used as a multiplier.
/// This makes it so values between -100% and +100% can be easily represented as -1 and 1 respectively. For example 0.5 would translate to 1.5 for +50% and -0.2 would translate to 0.8 for -20% multiplier.
///
public enum StatTypes
{
///
/// Used to indicate an invalid stat type. Should not be used.
///
None,
///
/// Boosts electrical skill by a flat amount.
///
ElectricalSkillBonus,
///
/// Boosts helm skill by a flat amount.
///
HelmSkillBonus,
///
/// Boosts mechanical skill by a flat amount.
///
MechanicalSkillBonus,
///
/// Boosts medical skill by a flat amount.
///
MedicalSkillBonus,
///
/// Boosts weapons skill by a flat amount.
///
WeaponsSkillBonus,
///
/// Boosts the character's helm skill to the given value if it's lower than the given value.
///
HelmSkillOverride,
///
/// Boosts the character's medical skill to the given value if it's lower than the given value.
///
MedicalSkillOverride,
///
/// Boosts the character's weapons skill to the given value if it's lower than the given value.
///
WeaponsSkillOverride,
///
/// Boosts the character's electrical skill to the given value if it's lower than the given value.
///
ElectricalSkillOverride,
///
/// Boosts the character's mechanical skill to the given value if it's lower than the given value.
///
MechanicalSkillOverride,
///
/// Increases character's maximum vitality by a percentage.
///
MaximumHealthMultiplier,
///
/// Increases both walking and swimming speed of the character by a percentage.
///
MovementSpeed,
///
/// Increases the character's walking speed by a percentage.
///
WalkingSpeed,
///
/// Increases the character's swimming speed by a percentage.
///
SwimmingSpeed,
///
/// Decreases how long it takes for buffs applied to the character decay over time by a percentage.
/// Buffs are afflictions that have isBuff set to true.
///
BuffDurationMultiplier,
///
/// Decreases how long it takes for debuff applied to the character decay over time by a percentage.
/// Debuffs are afflictions that have isBuff set to false.
///
DebuffDurationMultiplier,
///
/// Increases the strength of afflictions that are applied to the character by a percentage.
/// Medicines are items that have the "medical" tag.
///
MedicalItemEffectivenessMultiplier,
///
/// Increases the resistance to pushing force caused by flowing water by a percentage. The resistance cannot be below 0% or higher than 100%.
///
FlowResistance,
///
/// Increases how much damage the character deals via all attacks by a percentage.
///
AttackMultiplier,
///
/// Increases how much damage the character deals to other characters on the same team by a percentage.
///
TeamAttackMultiplier,
///
/// Decreases the reload time of ranged weapons held by the character by a percentage.
///
RangedAttackSpeed,
///
/// Decreases the reload time of submarine turrets operated by the character by a percentage.
///
TurretAttackSpeed,
///
/// Decreases the power consumption of submarine turrets operated by the character by a percentage.
///
TurretPowerCostReduction,
///
/// Increases how fast submarine turrets operated by the character charge up by a percentage. Affects turrets like pulse laser.
///
TurretChargeSpeed,
///
/// Increases how fast the character can swing melee weapons by a percentage.
///
MeleeAttackSpeed,
///
/// Increases the damage dealt by melee weapons held by the character by a percentage.
///
MeleeAttackMultiplier,
///
/// Decreases the spread of ranged weapons held by the character by a percentage.
///
RangedSpreadReduction,
///
/// Increases the repair speed of the character by a percentage.
///
RepairSpeed,
///
/// Increases the repair speed of the character when repairing mechanical items by a percentage.
///
MechanicalRepairSpeed,
///
/// Increase deconstruction speed of deconstructor operated by the character by a percentage.
///
DeconstructorSpeedMultiplier,
///
/// Increases the repair speed of repair tools that fix submarine walls by a percentage.
///
RepairToolStructureRepairMultiplier,
///
/// Increases the wall damage of tools that destroy submarine walls like plasma cutter by a percentage.
///
RepairToolStructureDamageMultiplier,
///
/// Increase the detach speed of items like minerals that require a tool to detach from the wall by a percentage.
///
RepairToolDeattachTimeMultiplier,
///
/// Allows the character to repair mechanical items past the maximum condition by a flat percentage amount. For example setting this to 0.1 allows the character to repair mechanical items to 110% condition.
///
MaxRepairConditionMultiplierMechanical,
///
/// Allows the character to repair electrical items past the maximum condition by a flat percentage amount. For example setting this to 0.1 allows the character to repair electrical items to 110% condition.
///
MaxRepairConditionMultiplierElectrical,
///
/// Increase the the quality of items crafted by the character by a flat amount.
/// Can be made to only affect certain item with a given tag types by specifying a tag via CharacterAbilityGivePermanentStat, when no tag is specified the ability affects all items.
///
IncreaseFabricationQuality,
///
/// Boosts the condition of genes combined by the character by a flat amount.
///
GeneticMaterialRefineBonus,
///
/// Reduces the chance to taint a gene when combining genes by a percentage. Tainting probability can not go below 0% or above 100%.
///
GeneticMaterialTaintedProbabilityReductionOnCombine,
///
/// Increases the speed at which the character gains skills by a percentage.
///
SkillGainSpeed,
///
/// Whenever the character's skill level up add a flat amount of more skill levels to the character.
///
ExtraLevelGain,
///
/// Increases the speed at which the character gains helm skill by a percentage.
///
HelmSkillGainSpeed,
///
/// Increases the speed at which the character gains weapons skill by a percentage.
///
WeaponsSkillGainSpeed,
///
/// Increases the speed at which the character gains medical skill by a percentage.
///
MedicalSkillGainSpeed,
///
/// Increases the speed at which the character gains electrical skill by a percentage.
///
ElectricalSkillGainSpeed,
///
/// Increases the speed at which the character gains mechanical skill by a percentage.
///
MechanicalSkillGainSpeed,
///
/// Increases the strength of afflictions the character applies to other characters via medicine by a percentage.
/// Medicines are items that have the "medical" tag.
///
MedicalItemApplyingMultiplier,
///
/// Increases the strength of afflictions the character applies to other characters via medicine by a percentage.
/// Works only for afflictions that have isBuff set to true.
///
BuffItemApplyingMultiplier,
///
/// Increases the strength of afflictions the character applies to other characters via medicine by a percentage.
/// Works only for afflictions that have "poison" type.
///
PoisonMultiplier,
///
/// Increases how long the character can tinker with items by a flat amount where 1 = 1 second.
///
TinkeringDuration,
///
/// Increases the effectiveness of the character's tinkerings by a percentage.
/// Tinkering strength affects the speed and effectiveness of the item that is being tinkered with.
///
TinkeringStrength,
///
/// Increases how much condition tinkered items lose when the character tinkers with them by a percentage.
///
TinkeringDamage,
///
/// Increases how much reputation the character gains by a percentage.
/// Can be made to only affect certain factions with a given tag types by specifying a tag via CharacterAbilityGivePermanentStat, when no tag is specified the ability affects all factions.
///
ReputationGainMultiplier,
///
/// Increases how much reputation the character loses by a percentage.
/// Can be made to only affect certain factions with a given tag types by specifying a tag via CharacterAbilityGivePermanentStat, when no tag is specified the ability affects all factions.
///
ReputationLossMultiplier,
///
/// Increases how much money the character gains from missions by a percentage.
///
MissionMoneyGainMultiplier,
///
/// Increases how much talent experience the character gains from all sources by a percentage.
///
ExperienceGainMultiplier,
///
/// Increases how much talent experience the character gains from missions by a percentage.
///
MissionExperienceGainMultiplier,
///
/// Increases how many missions the characters crew can have at the same time by a flat amount.
///
ExtraMissionCount,
///
/// Increases how many items are in stock in special sales in the store by a flat amount.
///
ExtraSpecialSalesCount,
///
/// Increases how much money is gained from selling items to the store by a percentage.
///
StoreSellMultiplier,
///
/// Decreases the prices of items in affiliated store by a percentage.
///
StoreBuyMultiplierAffiliated,
///
/// Decreases the prices of items in all stores by a percentage.
///
StoreBuyMultiplier,
///
/// Decreases the price of upgrades and submarines in affiliated outposts by a percentage.
///
ShipyardBuyMultiplierAffiliated,
///
/// Decreases the price of upgrades and submarines in all outposts by a percentage.
///
ShipyardBuyMultiplier,
///
/// Limits how many of a certain item can be attached to the wall in the submarine at the same time.
/// Has to be used with CharacterAbilityGivePermanentStat to specify the tag of the item that is affected. Does nothing if no tag is specified.
///
MaxAttachableCount,
///
/// Increase the radius of explosions caused by the character by a percentage.
///
ExplosionRadiusMultiplier,
///
/// Increases the damage of explosions caused by the character by a percentage.
///
ExplosionDamageMultiplier,
///
/// Decreases the time it takes to fabricate items on fabricators operated by the character by a percentage.
///
FabricationSpeed,
///
/// Increases how much damage the character deals to ballast flora by a percentage.
///
BallastFloraDamageMultiplier,
///
/// Increases the time it takes for the character to pass out when out of oxygen.
///
HoldBreathMultiplier,
///
/// Used to set the character's apprencticeship to a certain job.
/// Used by the "apprenticeship" talent and requires a job to be specified via CharacterAbilityGivePermanentStat.
///
Apprenticeship,
///
/// Increases the revival chance of the character when performing CPR by a percentage.
///
CPRBoost,
///
/// Can be used to prevent certain talents from being unlocked by specifying the talent's identifier via CharacterAbilityGivePermanentStat.
///
LockedTalents
}
internal enum ItemTalentStats
{
None,
DetoriationSpeed,
BatteryCapacity,
EngineSpeed,
EngineMaxSpeed,
PumpSpeed,
PumpMaxFlow,
ReactorMaxOutput,
ReactorFuelConsumption,
DeconstructorSpeed,
FabricationSpeed
}
///
/// AbilityFlags are a set of toggleable flags that can be applied to characters.
///
[Flags]
public enum AbilityFlags
{
///
/// Used to indicate an erroneous ability flag. Should not be used.
///
None = 0,
///
/// Character will not be able to run.
///
MustWalk = 0x1,
///
/// Character is immune to pressure.
///
ImmuneToPressure = 0x2,
///
/// Character won't be targeted by enemy AI.
///
IgnoredByEnemyAI = 0x4,
///
/// Character can drag corpses without a movement speed penalty.
///
MoveNormallyWhileDragging = 0x8,
///
/// Character is able to tinker with items.
///
CanTinker = 0x10,
///
/// Character is able to tinker with fabricators and deconstructors.
///
CanTinkerFabricatorsAndDeconstructors = 0x20,
///
/// Allows items tinkered by the character to consume no power.
///
TinkeringPowersDevices = 0x40,
///
/// Allows the character to gain skills past 100.
///
GainSkillPastMaximum = 0x80,
///
/// Allows the character to retain experience when respawning as a new character.
///
RetainExperienceForNewCharacter = 0x100,
///
/// Allows CharacterAbilityApplyStatusEffectsToLastOrderedCharacter to affect the last 2 characters ordered.
///
AllowSecondOrderedTarget = 0x200,
///
/// Character will stay conscious even if their vitality drops below 0.
///
AlwaysStayConscious = 0x400,
///
/// Prevents afflictions on the character from dropping the characters vitality below the kill threshold.
/// The character can still die from sources like getting crushed by pressure or if their head is severed.
///
CanNotDieToAfflictions = 0x800
}
[Flags]
public enum CharacterType
{
Bot = 0b01,
Player = 0b10,
Both = Bot | Player
}
public enum StartingBalanceAmount
{
Low,
Medium,
High,
}
public enum GameDifficulty
{
Easy,
Medium,
Hard,
Hellish
}
public enum NumberType
{
Int,
Float
}
public enum ChatMode
{
None,
Local,
Radio
}
}