EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EvEMath.h
Go to the documentation of this file.
1 
2 
4  //
5  // EVE Math Equations for in-game features
6  // (pulled directly from http://wiki.eve-id.net/Equations)
7  //
9 
10 #ifndef EVE_COMMON_UTILS_MATH_H
11 #define EVE_COMMON_UTILS_MATH_H
12 
13 #include "../../eve-core/eve-core.h"
14 
15 class EvilNumber;
16 
17 namespace EvESkill {
18  // skill constants
19  const uint8 MAXSKILLLEVEL = 5;
21  const float DIVCONSTANT = std::log(2) * 2.5;
22 }
23 
24 namespace EvEMath {
25  namespace Units {
26  double MetersToLightYears(double meters);
27  }
28  namespace Skill {
29  uint32 PointsAtLevel(uint8 level, float rank);
30  uint8 PointsPerMinute(uint8 pAttr, uint8 sAttr);
31  uint8 LevelForPoints(uint32 currentSP, uint8 rank);
32  int64 EndTime(uint32 currentSP, uint32 nextSP, uint8 SPMin, int64 timeNow);
33  int64 StartTime(uint32 currentSP, uint32 nextSP, uint8 SPMin, int64 timeNow);
34  }
35 
36  namespace RAM {
37  int32 CopyTime(uint16 BaseTime, uint8 ScienceLevel, float SlotModifier=1, float ImplantModifier=1);
38  int32 InventionTime(uint32 BaseTime, uint8 AdvLabLevel, float SlotModifier = 1, float ImplantModifier = 1);
39  int32 ProductionTime(uint32 BaseTime, float bpProductivityModifier, float ProductionLevel, float TimeModifier=1);
40  int32 ME_ResearchTime(uint32 BaseTime, uint8 MetallurgyLevel, float SlotModifier=1, float ImplantModifier=1);
41  int32 PE_ResearchTime(uint32 BaseTime, uint8 ResearchLevel, float SlotModifier=1, float ImplantModifier=1);
42  int32 RE_ResearchTime(uint32 BaseTime, uint8 ResearchLevel, float SlotModifier=1, float ImplantModifier=1);
43 
44  float ME_EffectOnWaste(float MaterialAmount, float BaseWasteFactor, float MaterialEfficiency);
45  float ResearchPointsPerDay(float Multiplier, float AgentEffectiveQuality, uint8 CharSkillLevel, uint8 AgentSkillLevel );
46 
47  uint32 PerfectME(uint32 MaterialAmount, uint8 BaseWasteFactor);
48 
49  float WasteSkillBased(uint32 MaterialAmount, float ProductionEfficiency);
50  float InventionChance(float BaseChance, uint8 EncryptionLevel, uint8 DataCore1SkillLevel, uint8 DataCore2SkillLevel, uint8 MetaLevel, float DecryptorModifier );
51  }
52 
53  namespace Refine {
54  float StationTaxesForReprocessing(float CharacterStandingWithStationOwner);
55  float EffectiveRefiningYield(float EquipmentYield, uint8 RefiningLevel, uint8 RefiningEfficiencyLevel=9, uint8 OreProcessingLevel=0);
56  }
57 
58  namespace Agent {
59  float EffectiveQuality(int8 AgentQuality, uint8 NegotiationSkillLevel, float AgentPersonalStanding);
60  float EffectiveStanding(float YourStanding, double standingBonus);
61  float RequiredStanding(uint8 AgentLevel, int8 AgentQuality);
62  float MissionStandingIncrease( float BaseMissionIncrease, uint8 YourSocialSkillLevel);
63  float Efficiency(uint8 AgentLevel, int8 AgentQuality);
64  float AgentStandingIncrease(float CurrentStanding, float PercentIncrease);
65  float GetStandingBonus(float fromStanding, uint32 fromFactionID, uint8 ConnectionsSkillLevel, uint8 DiplomacySkillLevel, uint8 CriminalConnectionsSkillLevel);
66  }
67 
68  namespace Market {
69  float BrokerFee(uint8 brSkillLvl, float fStanding, float cStanding, float total);
70  float RelistFee(float oldPrice, float newPrice, float brokerPercent=0.01, float discount=0);
71  float SalesTax(float baseSalesTax, uint8 accountingLvl=0, uint8 taxEvasionLvl=0);
72  }
73 
74  namespace PI {
75  void Dijkstra(uint32 sourcePin, uint32 destinationPin);
76 
103  }
104 
105 }
106 
107 #endif // EVE_COMMON_UTILS_MATH_H
108 
unsigned __int8 uint8
Definition: eve-compat.h:46
float InventionChance(float BaseChance, uint8 EncryptionLevel, uint8 DataCore1SkillLevel, uint8 DataCore2SkillLevel, uint8 MetaLevel, float DecryptorModifier)
Definition: EvEMath.cpp:121
void Dijkstra(uint32 sourcePin, uint32 destinationPin)
Definition: EvEMath.cpp:223
uint8 PointsPerMinute(uint8 pAttr, uint8 sAttr)
Definition: EvEMath.cpp:36
float EffectiveQuality(int8 AgentQuality, uint8 NegotiationSkillLevel, float AgentPersonalStanding)
Definition: EvEMath.cpp:150
float ResearchPointsPerDay(float Multiplier, float AgentEffectiveQuality, uint8 CharSkillLevel, uint8 AgentSkillLevel)
Definition: EvEMath.cpp:110
float WasteSkillBased(uint32 MaterialAmount, float ProductionEfficiency)
Definition: EvEMath.cpp:116
InventoryItem for skill.
Definition: Skill.h:48
this is a class that kinda mimics how python polymorph's numbers.
Definition: EvilNumber.h:59
uint32 PerfectME(uint32 MaterialAmount, uint8 BaseWasteFactor)
Definition: EvEMath.cpp:105
uint32 PointsAtLevel(uint8 level, float rank)
Definition: EvEMath.cpp:17
const uint8 skillPointMultiplier
Definition: EvEMath.h:20
const float DIVCONSTANT
Definition: EvEMath.h:21
signed __int8 int8
Definition: eve-compat.h:45
int32 InventionTime(uint32 BaseTime, uint8 AdvLabLevel, float SlotModifier=1, float ImplantModifier=1)
Definition: EvEMath.cpp:89
signed __int32 int32
Definition: eve-compat.h:49
int64 StartTime(uint32 currentSP, uint32 nextSP, uint8 SPMin, int64 timeNow)
Definition: EvEMath.cpp:41
int32 ME_ResearchTime(uint32 BaseTime, uint8 MetallurgyLevel, float SlotModifier=1, float ImplantModifier=1)
Definition: EvEMath.cpp:68
int64 EndTime(uint32 currentSP, uint32 nextSP, uint8 SPMin, int64 timeNow)
Definition: EvEMath.cpp:46
uint8 LevelForPoints(uint32 currentSP, uint8 rank)
Definition: EvEMath.cpp:25
int32 PE_ResearchTime(uint32 BaseTime, uint8 ResearchLevel, float SlotModifier=1, float ImplantModifier=1)
Definition: EvEMath.cpp:73
float MissionStandingIncrease(float BaseMissionIncrease, uint8 YourSocialSkillLevel)
Definition: EvEMath.cpp:165
Definition: Agent.h:21
double MetersToLightYears(double meters)
Definition: EvEMath.cpp:12
float Efficiency(uint8 AgentLevel, int8 AgentQuality)
Definition: EvEMath.cpp:170
const uint8 MAXSKILLLEVEL
Definition: EvEMath.h:19
int32 RE_ResearchTime(uint32 BaseTime, uint8 ResearchLevel, float SlotModifier=1, float ImplantModifier=1)
Definition: EvEMath.cpp:78
int32 ProductionTime(uint32 BaseTime, float bpProductivityModifier, float ProductionLevel, float TimeModifier=1)
Definition: EvEMath.cpp:55
float StationTaxesForReprocessing(float CharacterStandingWithStationOwner)
Definition: EvEMath.cpp:137
unsigned __int32 uint32
Definition: eve-compat.h:50
int32 CopyTime(uint16 BaseTime, uint8 ScienceLevel, float SlotModifier=1, float ImplantModifier=1)
Definition: EvEMath.cpp:84
float BrokerFee(uint8 brSkillLvl, float fStanding, float cStanding, float total)
Definition: EvEMath.cpp:202
float EffectiveRefiningYield(float EquipmentYield, uint8 RefiningLevel, uint8 RefiningEfficiencyLevel=9, uint8 OreProcessingLevel=0)
Definition: EvEMath.cpp:142
Definition: EVE_Planet.h:16
signed __int64 int64
Definition: eve-compat.h:51
float SalesTax(float baseSalesTax, uint8 accountingLvl=0, uint8 taxEvasionLvl=0)
Definition: EvEMath.cpp:215
float RelistFee(float oldPrice, float newPrice, float brokerPercent=0.01, float discount=0)
Definition: EvEMath.cpp:209
float GetStandingBonus(float fromStanding, uint32 fromFactionID, uint8 ConnectionsSkillLevel, uint8 DiplomacySkillLevel, uint8 CriminalConnectionsSkillLevel)
Definition: EvEMath.cpp:180
float EffectiveStanding(float YourStanding, double standingBonus)
Definition: EvEMath.cpp:155
float RequiredStanding(uint8 AgentLevel, int8 AgentQuality)
Definition: EvEMath.cpp:160
float AgentStandingIncrease(float CurrentStanding, float PercentIncrease)
Definition: EvEMath.cpp:175
float ME_EffectOnWaste(float MaterialAmount, float BaseWasteFactor, float MaterialEfficiency)
Definition: EvEMath.cpp:94
unsigned __int16 uint16
Definition: eve-compat.h:48