Class ReputationCalculator
- java.lang.Object
-
- ch.sahits.game.openpatrician.engine.land.city.ReputationCalculator
-
@Lazy @Component public class ReputationCalculator extends java.lang.Object
Calculator for a players reputation- Author:
- Andi Hotz, (c) Sahits GmbH, 2012 Created on Jul 23, 2012
-
-
Field Summary
Fields Modifier and Type Field Description private CityProductionAndConsumptionService
cityProductionAndConsumptionService
private PopulationConsume
consumer
-
Constructor Summary
Constructors Constructor Description ReputationCalculator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ICareer
calculateCareer(ICity city, IPlayer player)
Calculate the current career level of the player.(package private) double
calculateDelta(ESocialRank rank)
int
calculateWareReputation(ICity city, IPlayer player)
Check each ware if the player contributes and what amount.(package private) int
getAvailableLevels(ESocialRank rank, IPlayer player)
(package private) double
getNegativeReputationFactor(IPlayer player, ICity city)
double
remapReputation(ICity city, IPlayer player)
Remap the linear reputation stored in a city to value that are used in ranks.
-
-
-
Field Detail
-
consumer
@Autowired private PopulationConsume consumer
-
cityProductionAndConsumptionService
@Autowired private CityProductionAndConsumptionService cityProductionAndConsumptionService
-
-
Method Detail
-
calculateWareReputation
public int calculateWareReputation(ICity city, IPlayer player)
Check each ware if the player contributes and what amount. If the city contributes enough to cover the needs, this ware is irrelevant for the computation If the player contributes enough to cover all the need he gets 100 points for the ware. If he contributes less he gets a fraction according to what he contributes.- Parameters:
city
- for which the ware based reputation should be checkedplayer
- for whom the reputation is calculated- Returns:
- value between 0 and 100
-
remapReputation
public double remapReputation(ICity city, IPlayer player)
Remap the linear reputation stored in a city to value that are used in ranks.- Parameters:
city
- for which the reputation is remapedplayer
- for which the reputation is remapped- Returns:
- reputation of the player in the city
-
calculateCareer
public ICareer calculateCareer(ICity city, IPlayer player)
Calculate the current career level of the player.- Parameters:
city
- in which to calculate hte career levelplayer
- for whom to calculate the career level- Returns:
- career level of the player.
-
calculateDelta
double calculateDelta(ESocialRank rank)
-
getAvailableLevels
int getAvailableLevels(ESocialRank rank, IPlayer player)
-
-