public ViewCitizenViewModel(Entities.Citizen citizen, IList <Citizen> friends, ICitizenService citizenService, IFriendService friendService) { var entity = citizen.Entity; Info = new CitizenInfoViewModel(citizen, friendService); Avatar = new ImageViewModel(entity.ImgUrl); Name = entity.Name; RegionName = citizen.Region.Name; CountryName = citizen.Region.Country.Entity.Name; HitPoints = citizen.HitPoints; Experience = citizen.Experience; Level = citizen.ExperienceLevel; NextLevelExperience = citizenService.CalculateExperienceForNextLevel(citizen.ExperienceLevel); Manufacturing = (double)citizen.Manufacturing; Raw = (double)citizen.Raw; Selling = (double)citizen.Selling; Construction = (double)citizen.Construction; ExperienceProgress = (int)(Experience / (double)NextLevelExperience * 100.0); int militaryRank = (int)citizen.MilitaryRank; int nextMilitaryRank = (MilitaryRankEnumExtensions.CalculateNextMilitaryRankNeeded(militaryRank) ?? militaryRank); MilitaryRank = militaryRank.ConvertToBasicUnits(); NextMilitaryRank = nextMilitaryRank.ConvertToBasicUnits(); NextMilitaryRankProgress = (int)(militaryRank / (double)nextMilitaryRank * 100.0); MilitaryRankIconCss = MilitaryRankEnumExtensions.GetRankCss(MilitaryRankEnumExtensions.GetRankForMilitaryRank(militaryRank)); Strength = string.Format("{0:0.##}", citizen.Strength); Medals = new MedalViewModel(citizen); var company = citizen.GetCurrentJob(); if (company != null) { Job = new CitizenJobShortViewModel(company); } Friends = friends .TakeRandom(4) .Select(cit => new ViewCitizenFriendModel(cit)) .ToList(); FriendCount = friends.Count(); }
public CitizenSummaryViewModel(CitizenSummaryInfo info, ICitizenService citizenService) { Name = info.Name; CitizenID = info.ID; CanWork = info.CanWork; HitPoints = info.HitPoints; Experience = info.Experience; Trained = info.Trained; Strength = info.Strength; Avatar = new ImageViewModel(info.AvatarUrl); JobID = info.JobID; EatingSafety = info.EatingSafety; CountryMoney = new MoneyViewModel(info.CountryCurrencyID, (decimal)info.CountryMoneyAmount); AdminMoney = new MoneyViewModel(CurrencyTypeEnum.Gold, (decimal)info.GoldAmount); CountryID = info.CountryID; NextExperienceLevel = citizenService.CalculateExperienceForNextLevel(info.Level); ExperienceProgress = (int)(info.Experience / (double)NextExperienceLevel * 100.0); int militaryRank = (int)info.MilitaryRank; int nextMilitaryRank = MilitaryRankEnumExtensions.CalculateNextMilitaryRankNeeded(militaryRank) ?? militaryRank; MilitaryRank = militaryRank.ConvertToBasicUnits(); NextMilitaryRank = nextMilitaryRank.ConvertToBasicUnits(); NextMilitaryRankProgress = (int)(militaryRank / (double)nextMilitaryRank * 100.0); UnreadMessages = info.UnreadMessages; UnreadWarnings = info.UnreadWarnings; if (HitPoints < 90 && info.CanHeal) { CanHeal = info.CanHeal; HealCurrency = CountryMoney.Symbol; HospitalID = info.HospitalID.Value; FreeHealing = info.HealingCost.HasValue == false; if (FreeHealing == false) { HealCost = (double)info.HealingCost.Value; } } }
public void ParticipateInBattle(Citizen citizen, Battle battle, bool isAttacker, int weaponQuality) { var damage = CalculateDamage(citizen, battle, weaponQuality, isAttacker); if (isAttacker) { battle.WallHealth -= (decimal)damage; } else { battle.WallHealth += (decimal)damage; } var currentRank = MilitaryRankEnumExtensions.GetRankForMilitaryRank((double)citizen.MilitaryRank); citizen.MilitaryRank += (decimal)damage; citizen.HitPoints -= 10; var newRank = MilitaryRankEnumExtensions.GetRankForMilitaryRank((double)citizen.MilitaryRank); if (currentRank != newRank) { var msg = string.Format("You were promoted to {0}.", newRank.ToHumanReadable()); warningService.AddWarning(citizen.ID, msg); } if (weaponQuality > 0) { equipmentRepository.RemoveEquipmentItem(citizen.Entity.EquipmentID.Value, (int)ProductTypeEnum.Weapon, weaponQuality); } var participant = new BattleParticipant() { BattleID = battle.ID, CitizenID = citizen.ID, DamageDealt = (decimal)damage, IsAttacker = isAttacker, WeaponQualityUsed = weaponQuality, Day = GameHelper.CurrentDay, DateTime = DateTime.Now }; battleRepository.AddParticipant(participant); ConditionalSaveChanges(battleRepository); }
public CitizenInfoViewModel(Entities.Citizen citizen, IFriendService friendService) { var entity = citizen.Entity; CitizenName = entity.Name; CitizenID = entity.EntityID; Avatar = new ImageViewModel(entity.ImgUrl); var region = citizen.Entity.GetCurrentRegion(); var country = citizen.Entity.GetCurrentCountry(); RegionName = region.Name; RegionID = region.ID; CountryName = country.Entity.Name; CountryID = country.ID; CitizenshipCountryID = citizen.CitizenshipID; CitizenshipCountryName = Persistent.Countries.GetById(CitizenshipCountryID).Entity.Name; if (citizen.CompanyEmployee != null) { WorkingCompanyID = citizen.CompanyEmployee.CompanyID; WorkingCompanyName = citizen.CompanyEmployee.Company.Entity.Name; } if (citizen.PartyMember != null) { PartyID = citizen.PartyMember.PartyID; PartyName = citizen.PartyMember.Party.Entity.Name; } IsUnderControl = citizen.ID == SessionHelper.CurrentEntity.EntityID; if (IsUnderControl) { AvatarChange = new AvatarChangeViewModel(citizen.ID); } MilitaryRankReadable = StringUtils.FirstToUpper(MilitaryRankEnumExtensions.GetRankForMilitaryRank((double)citizen.MilitaryRank).ToHumanReadable()); var currentCitizen = SessionHelper.CurrentEntity.Citizen; friendshipInit(citizen, friendService, currentCitizen); createMenu(); }
public double CalculateMilitaryRankModifier(double militaryRank) { MilitaryRankEnum rank = MilitaryRankEnumExtensions.GetRankForMilitaryRank(militaryRank); return(1.0 + (double)rank * 0.02); }