// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#ifndef RY_EGS_VARIABLES_H
#define RY_EGS_VARIABLES_H
// This is the amount to multiply fame values by to get the internally stored values.
// We store the internal values at a higher multiple so we can have higher precision when
// adding or removing fame from a player.
#define kFameMultipler 6000
#include "nel/misc/variable.h"
void cbChangeDepositUpdateFrequency( NLMISC::IVariable& v );
extern NLMISC::CVariable ClearAttackFlags;
/// variables used to turn off a gameplay system
extern NLMISC::CVariable GuildSystemEnabled;
extern NLMISC::CVariable MissionSystemEnabled;
extern NLMISC::CVariable PackAnimalSystemEnabled;
extern NLMISC::CVariable EnchantSystemEnabled;
extern NLMISC::CVariable ForageSystemEnabled;
extern NLMISC::CVariable CraftSystemEnabled;
extern NLMISC::CVariable HarvestSystemEnabled;
/// MISC
extern NLMISC::CVariable DelayBeforeItemTP;
extern NLMISC::CVariable NbTickForRegenCreature;
extern NLMISC::CVariable CompassTargetUpdateFrequency;
extern NLMISC::CVariable UseAsyncBSPlayerLoading;
//extern NLMISC::CVariable UseBS;
//extern NLMISC::CVariable BackupServiceIP;
extern NLMISC::CVariable FameMemoryInterpolation;
extern NLMISC::CVariable FameTrendResetDelay;
extern NLMISC::CVariable CreateCharacterStartSkillsValue;
extern NLMISC::CVariable MessageOfTheDay;
extern NLMISC::CVariable FightAreaEffectOn;
extern NLMISC::CVariable MagicAreaEffectOn;
extern NLMISC::CVariable HarvestAreaEffectOn;
extern NLMISC::CVariable MaxAreaTargetCount;
extern NLMISC::CVariable CorrectInvalidPlayerPositions;
extern NLMISC::CVariable MountDuration;
extern NLMISC::CVariable UnmountDuration;
extern NLMISC::CVariable AreaEffectClipDistance;
extern NLMISC::CVariable AreaEffectClipVerticalRange;
/// TEMP until PDS is ok : Variables to configure Sadges's persistant data system
extern NLMISC::CVariable DataPersistsAsText;
extern NLMISC::CVariable GuildSavingPeriod;
extern NLMISC::CVariable StoreSavePeriod;
// Progression and XP
extern NLMISC::CVariable MaxDistanceForXpGain;
extern NLMISC::CVariable XPTeamMemberDivisorValue;
extern NLMISC::CVariable MaxXPGainPerPlayer;
extern NLMISC::CVariable SkillFightValueLimiter;
extern NLMISC::CVariable SkillMagicValueLimiter;
extern NLMISC::CVariable SkillCraftValueLimiter;
extern NLMISC::CVariable SkillHarvestValueLimiter;
extern NLMISC::CVariable MagicSkillStartValue;
/// death
extern NLMISC::CVariable DeathXPFactor;
extern NLMISC::CVariable DeathXPResorptionTime;
extern NLMISC::CVariable DeathPenaltyMinLevel;
// comma duration before character are dead
extern NLMISC::CVariable CommaDelayBeforeDeath;
/// CRAFT
extern NLMISC::CVariable WearMalusCraftFactor;
/// COMBAT
extern NLMISC::CVariable MinDamage;
extern NLMISC::CVariable DamageStep;
extern NLMISC::CVariable ExponentialPower;
extern NLMISC::CVariable SmoothingFactor;
extern NLMISC::CVariable HandToHandDamage;
extern NLMISC::CVariable HandToHandLatency;
extern NLMISC::CVariable GlobalDebugDamageFactor;
extern NLMISC::CVariable VerboseWorldInstance;
extern NLMISC::CVariable EntitiesNoResist;
extern NLMISC::CVariable EntitiesNoActionFailure;
extern NLMISC::CVariable EntitiesNoCastBreak;
extern NLMISC::CVariable ReferenceWeaponLatencyForWear;
/// Item wear
extern NLMISC::CVariable DaggerWearPerAction;
extern NLMISC::CVariable SwordWearPerAction;
extern NLMISC::CVariable MaceWearPerAction;
extern NLMISC::CVariable AxeWearPerAction;
extern NLMISC::CVariable SpearWearPerAction;
extern NLMISC::CVariable StaffWearPerAction;
extern NLMISC::CVariable MagicianStaffWearPerAction;
extern NLMISC::CVariable TwoHandSwordWearPerAction;
extern NLMISC::CVariable TwoHandAxeWearPerAction;
extern NLMISC::CVariable PikeWearPerAction;
extern NLMISC::CVariable TwoHandMaceWearPerAction;
extern NLMISC::CVariable AutolauchWearPerAction;
extern NLMISC::CVariable BowrifleWearPerAction;
extern NLMISC::CVariable LauncherWearPerAction;
extern NLMISC::CVariable PistolWearPerAction;
extern NLMISC::CVariable BowpistolWearPerAction;
extern NLMISC::CVariable RifleWearPerAction;
extern NLMISC::CVariable CraftingToolWearPerAction;
extern NLMISC::CVariable ForageToolWearPerAction;
extern NLMISC::CVariable ArmorWearPerAction;
extern NLMISC::CVariable JewelryWearPerAction;
extern NLMISC::CVariable ShieldWearPerAction;
extern NLMISC::CVariable WornState1;
extern NLMISC::CVariable WornState2;
extern NLMISC::CVariable WornState3;
extern NLMISC::CVariable WornState4;
/// magic
extern NLMISC::CVariable NoLinkSurvivalAddTime;
extern NLMISC::CVariable NoLinkTimeFear;
extern NLMISC::CVariable NoLinkTimeSleep;
extern NLMISC::CVariable NoLinkTimeStun;
extern NLMISC::CVariable NoLinkTimeRoot;
extern NLMISC::CVariable NoLinkTimeSnare;
extern NLMISC::CVariable NoLinkTimeSlow;
extern NLMISC::CVariable NoLinkTimeBlind;
extern NLMISC::CVariable NoLinkTimeMadness;
extern NLMISC::CVariable NoLinkTimeDot;
extern NLMISC::CVariable UpdatePeriodFear;
extern NLMISC::CVariable UpdatePeriodSleep;
extern NLMISC::CVariable UpdatePeriodStun;
extern NLMISC::CVariable UpdatePeriodRoot;
extern NLMISC::CVariable UpdatePeriodSnare;
extern NLMISC::CVariable UpdatePeriodSlow;
extern NLMISC::CVariable UpdatePeriodBlind;
extern NLMISC::CVariable UpdatePeriodMadness;
extern NLMISC::CVariable UpdatePeriodDot;
extern NLMISC::CVariable DefaultUpdatePeriod;
extern NLMISC::CVariable PostCastLatency;
extern NLMISC::CVariable ResistIncreaseFear;
extern NLMISC::CVariable ResistIncreaseSleep;
extern NLMISC::CVariable ResistIncreaseStun;
extern NLMISC::CVariable ResistIncreaseRoot;
extern NLMISC::CVariable ResistIncreaseSnare;
extern NLMISC::CVariable ResistIncreaseSlow;
extern NLMISC::CVariable ResistIncreaseBlind;
extern NLMISC::CVariable ResistIncreaseMadness;
extern NLMISC::CVariable ResistIncreaseAcid;
extern NLMISC::CVariable ResistIncreaseCold;
extern NLMISC::CVariable ResistIncreaseElectricity;
extern NLMISC::CVariable ResistIncreaseFire;
extern NLMISC::CVariable ResistIncreasePoison;
extern NLMISC::CVariable ResistIncreaseRot;
extern NLMISC::CVariable ResistIncreaseShockwave;
extern NLMISC::CVariable IntangibleTimeAfterTP;
extern NLMISC::CVariable AurasUpdateFrequency;
extern NLMISC::CVariable ForageLocateDepositUpdateFrequency;
extern NLMISC::CVariable CharacteristicBrickStep;
extern NLMISC::CVariable RegenDivisor;
extern NLMISC::CVariable RegenReposFactor;
extern NLMISC::CVariable RegenOffset;
extern NLMISC::CVariable MaxCharacteristicValue;
extern NLMISC::CVariable BotDamageFactor;
extern NLMISC::CVariable HitChestStaLossFactor;
extern NLMISC::CVariable HitHeadStunDuration;
extern NLMISC::CVariable HitArmsSlowDuration;
extern NLMISC::CVariable HitArmsSlowFactor;
extern NLMISC::CVariable HitLegsSlowDuration;
extern NLMISC::CVariable HitLegsSlowFactor;
extern NLMISC::CVariable HitHandsDebuffDuration;
extern NLMISC::CVariable HitHandsDebuffValue;
extern NLMISC::CVariable HitFeetDebuffDuration;
extern NLMISC::CVariable HitFeetDebuffValue;
extern NLMISC::CVariable NbOpponentsBeforeMalus;
extern NLMISC::CVariable ModPerSupernumeraryOpponent;
extern NLMISC::CVariable ShieldingRadius;
extern NLMISC::CVariable CombatFlagLifetime;
extern NLMISC::CVariable CriticalHitChances;
extern NLMISC::CVariable DodgeFactorForMagicSkills;
extern NLMISC::CVariable DodgeFactorForForageSkills;
extern NLMISC::CVariable MaxAngleForRangeCombat;
extern NLMISC::CVariable MagicResistFactorForCombatSkills;
extern NLMISC::CVariable MagicResistFactorForMagicSkills;
extern NLMISC::CVariable MagicResistFactorForForageSkills;
extern NLMISC::CVariable MagicResistSkillDelta;
extern NLMISC::CVariable MaxMagicProtection;
extern NLMISC::CVariable MaxAbsorptionFactor;
extern NLMISC::CVariable HominBaseProtection;
extern NLMISC::CVariable HominRacialProtection;
extern NLMISC::CVariable HominRacialResistance;
extern NLMISC::CVariable MaxMagicResistanceBonus;
extern NLMISC::CVariable EcosystemResistancePenalty;
/// MISSIONS
extern NLMISC::CVariable KillAttribMinFactor;
extern NLMISC::CVariable MonoMissionTimout;
extern NLMISC::CVariable VerboseMissions;
extern NLMISC::CVariable TickFrequencyCompassUpdate;
extern NLMISC::CVariable FameByKill;
/// FORAGE
extern NLMISC::CVariable ToxicCloudDamage;
extern NLMISC::CVariable ForageExplosionDamage;
extern NLMISC::CVariable AutoSpawnForageSourcePeriodOverride;
extern NLMISC::CVariable ForageKamiAngerDecreasePerHour;
extern NLMISC::CVariable ForageKamiAngerOverride;
extern NLMISC::CVariable ForageKamiAngerThreshold1;
extern NLMISC::CVariable ForageKamiAngerThreshold2;
extern NLMISC::CVariable ForageKamiAngerPunishDamage;
extern NLMISC::CVariable ForageSiteStock;
extern NLMISC::CVariable ForageSiteNbUpdatesToLive;
extern NLMISC::CVariable ForageSiteRadius;
extern NLMISC::CVariable ToxicCloudUpdateFrequency;
extern NLMISC::CVariable DepositUpdateFrequency;
extern NLMISC::CVariable ForageQuantityBaseRate;
extern NLMISC::CVariable ForageQuantitySlowFactor;
extern NLMISC::CVariable ForageQualitySlowFactorQualityLevelRatio;
extern NLMISC::CVariable ForageQualitySlowFactorDeltaLevelRatio;
extern NLMISC::CVariable ForageQualitySlowFactorMatSpecRatio;
extern NLMISC::CVariable ForageQualitySlowFactor;
extern NLMISC::CVariable ForageQualityCeilingFactor;
extern NLMISC::CVariable ForageQualityCeilingClamp;
extern NLMISC::CVariable ForageQuantityImpactFactor;
extern NLMISC::CVariable ForageQualityImpactFactor;
extern NLMISC::CVariable ForageExtractionAbsorptionMatSpecFactor;
extern NLMISC::CVariable ForageExtractionAbsorptionMatSpecMax;
extern NLMISC::CVariable ForageExtractionCareMatSpecFactor;
extern NLMISC::CVariable ForageExtractionAbsorptionEcoSpecFactor;
extern NLMISC::CVariable ForageExtractionAbsorptionEcoSpecMax;
extern NLMISC::CVariable ForageExtractionCareEcoSpecFactor;
extern NLMISC::CVariable ForageExtractionNaturalDDeltaPerTick;
extern NLMISC::CVariable ForageExtractionNaturalEDeltaPerTick;
extern NLMISC::CVariable ForageHPRatioPerSourceLifeImpact;
extern NLMISC::CVariable ForageCareFactor;
extern NLMISC::CVariable ForageCareSpeed;
extern NLMISC::CVariable ForageCareBeginZone;
extern NLMISC::CVariable ForageProspectionXPBonusRatio;
extern NLMISC::CVariable ForageExtractionXPFactor;
extern NLMISC::CVariable ForageExtractionNbParticipantsXPBonusRatio;
extern NLMISC::CVariable ForageExtractionNastyEventXPMalusRatio;
extern NLMISC::CVariable ForageKamiOfferingSpeed;
extern NLMISC::CVariable ForageReduceDamageTimeWindow;
extern NLMISC::CVariable ForageDebug;
extern NLMISC::CVariable ForageSourceSpawnDelay;
extern NLMISC::CVariable ForageValidateSourcesSpawnPos;
extern NLMISC::CVariable ForageRange;
extern NLMISC::CVariable ForageAngle;
extern NLMISC::CVariable ForageLevel;
extern NLMISC::CVariable ForageFocusRatioOfLocateDeposit;
extern NLMISC::CVariable ForageQuantityXPDeltaLevelBonusRate;
extern NLMISC::CVariable ForageExtractionTimeMinGC;
extern NLMISC::CVariable ForageExtractionTimeSlopeGC;
// QUARTERING
extern NLMISC::CVariable QuarteringQuantityAverageForCraftHerbivore;
extern NLMISC::CVariable QuarteringQuantityAverageForCraftCarnivore;
extern NLMISC::CVariable QuarteringQuantityAverageForMissions;
extern NLMISC::CVariable QuarteringQuantityAverageForBoss5;
extern NLMISC::CVariable QuarteringQuantityAverageForBoss7;
extern NLMISC::CVariable QuarteringQuantityForInvasion5;
extern NLMISC::CVariable QuarteringQuantityForInvasion7;
// LOOT
extern NLMISC::CVariable LootMoneyAmountPerXPLevel;
/// GUILDS
extern NLMISC::CVariable BaseGuildBulk;
extern NLMISC::CVariable MinFameToBuyGuildBuilding;
extern NLMISC::CVariable MinFameToBuyPlayerBuilding;
extern NLMISC::CVariable GuildCreationCost;
extern NLMISC::CVariable GuildMaxMemberCount;
extern NLMISC::CVariable TriggerRequestTimout;
/// OUTPOSTS (old)
extern NLMISC::CVariable GuildChargeSavePeriod;
extern NLMISC::CVariable MaxAppliedChargeCount;
extern NLMISC::CVariable OupostPowerRadius;
extern NLMISC::CVariable OutpostPowerDuration;
/// RANGE COMBAT
extern NLMISC::CVariable DumpRangeAnalysis;
/// ENCHANTEMENT
extern NLMISC::CVariable RechargeMoneyFactor;
extern NLMISC::CVariable RechargeMoneyFactor;
extern NLMISC::CVariable CristalMoneyFactor;
/// PVP
extern NLMISC::CVariable AllowPVP;
extern NLMISC::CVariable PVPFameRequired;
extern NLMISC::CVariable DuelQueryDuration ;
extern NLMISC::CVariable PVPZoneEnterBufferTime;
extern NLMISC::CVariable PVPZoneLeaveBufferTime;
extern NLMISC::CVariable PVPZoneWarningRepeatTime;
extern NLMISC::CVariable PVPZoneWarningRepeatTimeL;
extern NLMISC::CVariable PVPZoneWithDeathPenalty;
extern NLMISC::CVariable PVPMeleeCombatDamageFactor;
extern NLMISC::CVariable PVPRangeCombatDamageFactor;
extern NLMISC::CVariable PVPMagicDamageFactor;
//extern NLMISC::CVariable PVPMagicHealFactor;
extern NLMISC::CVariable TimeForSetPVPFlag;
extern NLMISC::CVariable TimeForResetPVPFlag;
extern NLMISC::CVariable TimeForPVPFlagOff;
extern NLMISC::CVariable PVPActionTimer;
/// BULK / WEIGHT
extern NLMISC::CVariable MaxPlayerBulk;
extern NLMISC::CVariable BaseMaxCarriedWeight;
extern NLMISC::CVariable BasePlayerRoomBulk;
/// GOO
extern NLMISC::CVariable MaxDistanceGooDamage;
extern NLMISC::CVariable DeathGooDistance;
extern NLMISC::CVariable