private static void AcceptPeace(Kingdom kingdomMakingPeace, Kingdom otherKingdom, DiplomacyCost diplomacyCost) { LogFactory.Get <KingdomPeaceAction>() .LogTrace($"[{CampaignTime.Now}] {kingdomMakingPeace.Name} secured peace with {otherKingdom.Name} (cost: {diplomacyCost.Value})."); diplomacyCost.ApplyCost(); MakePeaceAction.Apply(kingdomMakingPeace, otherKingdom); }
public static void ApplyPeace(Kingdom kingdomMakingPeace, Kingdom otherKingdom, bool payCosts = true, bool forcePlayerCharacterCosts = false) { int payment = payCosts ? DiplomacyCostCalculator.DetermineGoldCostForMakingPeace(kingdomMakingPeace, otherKingdom) : 0; float influenceCost = payCosts ? DiplomacyCostCalculator.DetermineInfluenceCostForMakingPeace(kingdomMakingPeace) : 0f; ApplyPeace(kingdomMakingPeace, otherKingdom, payment, influenceCost, forcePlayerCharacterCosts); }
public SettlementGenerator(GameGenerator gamGen, World world, Kingdom kingdom, List <SettlementBase> settlements) { GameGenerator = gamGen; Settlements = settlements; Kingdom = kingdom; World = world; }
private void DailyMakeSureNoKingdom(Clan c, Kingdom k1, Kingdom k2) { if (c == null || DiplomacyUtils.GetHardCodedExceptionClans().Contains(c.StringId)) { return; } try { if (dataManager == null) { GetData(); } if (dataManager.Data.ContainsKey(c.StringId)) { if (dataManager.Data[c.StringId].ForceNoKingdom && c.Kingdom != null) { ChangeKingdomAction.ApplyByLeaveKingdom(c, false); ModDebug.ShowMessage(c.StringId + " has forcefully been removed from parent kingdom", DebugMessageType.Diplomacy); } } } catch (Exception e) { ErrorHandler.HandleException(e, "daily make sure no kingdom process"); } }
private static string CreateMakePeaceInquiryText(Kingdom kingdomMakingPeace, Kingdom otherKingdom, int payment) { TextObject peaceText; if (Settings.Instance.EnableWarExhaustion && WarExhaustionManager.Instance.HasMaxWarExhaustion(kingdomMakingPeace, otherKingdom)) { peaceText = new TextObject("{=HWiDa4R1}Exhausted from the war, the {KINGDOM} is proposing peace with the {PLAYER_KINGDOM}."); peaceText.SetTextVariable("KINGDOM", kingdomMakingPeace.Name.ToString()); peaceText.SetTextVariable("PLAYER_KINGDOM", otherKingdom.Name.ToString()); } else { peaceText = new TextObject("{=t0ZS9maD}{KINGDOM_LEADER} of the {KINGDOM} is proposing peace with the {PLAYER_KINGDOM}."); peaceText.SetTextVariable("KINGDOM_LEADER", kingdomMakingPeace.Leader.Name.ToString()); peaceText.SetTextVariable("KINGDOM", kingdomMakingPeace.Name.ToString()); peaceText.SetTextVariable("PLAYER_KINGDOM", otherKingdom.Name.ToString()); } List <string> inquiryText = new List <string>(); inquiryText.Add(peaceText.ToString()); if (payment > 0) { TextObject warReparationText = new TextObject("{=ZrwszZww} They are willing to pay war reparations of {DENARS} denars."); warReparationText.SetTextVariable("DENARS", payment); inquiryText.Add(warReparationText.ToString()); } return(string.Concat(inquiryText)); }
public static void RemoveWall() { Kingdom kingdom = SingletonMonoBehaviour <Managers> .Inst.kingdom; if (kingdom.playerOne != null) { if (kingdom.playerOne.coins > 0) { var walls = Traverse.Create(kingdom).Field("_walls").GetValue <HashSet <Wall> >(); Wall wall = null; float min = float.MaxValue; walls.Do((w) => { float dis = Vector3.Distance(w.transform.position, kingdom.playerOne.transform.position); if (dis < 1.4f && dis < min) { wall = w; min = dis; } }); if (wall != null) { Traverse.Create(wall).Field("_damageable").GetValue <Damageable>().ReceiveDamage(999, kingdom.playerOne.gameObject, DamageSource.Knight); kingdom.playerOne._wallet.coins--; } } } }
public static bool Prefix(Clan clan1, Kingdom kingdom) { // prevent stupid things if (clan1.Leader == clan1.Kingdom.Leader || clan1.Kingdom == kingdom) { return(false); } // prevent unwise defection for lord with fiefs if ((clan1.Settlements.Count() > 0) && (clan1.Leader.HasGoodRelationWith(clan1.Kingdom.Leader) || clan1.Leader.IsEnemy(kingdom.Leader) || !clan1.CloseKingdoms().Contains(kingdom))) { return(false); } // prevent defection of supporting clan while kingdom have a chance if (clan1.Leader.HasGoodRelationWith(clan1.Kingdom.Leader) && clan1.Kingdom.Settlements.Count() > 0 && clan1.Kingdom.Clans.Where(x => !x.IsUnderMercenaryService).Count() <= 2) { return(false); } return(true); }
/// <summary> /// removes the weapon from the hero and then adds it back into the kingdoms inventory provided it is equipment /// </summary> public void unequipItemFromHero(string item) { Kingdom kingdom = GameObject.Find("Kingdom").GetComponent <Kingdom>(); //check the item to see what to remove if (item.Equals("weapon")) { //check and make sure the the hero has an actual item equipped if (!heroToEquip.weapon.itemName.ToLower().Equals("fists")) { //move the old weapon the correct list kingdom.weapons.Add(heroToEquip.weapon); //change the heros weapon to be "unequipped" heroToEquip.weapon = new Weapon("Fists", 1, 1, "Fists", 1); } //else display a message that no weapon is currently equipped } else if (item.Equals("upper body")) { if (!heroToEquip.UBArmor.itemName.ToLower().Equals("shirt")) { kingdom.armor.Add(heroToEquip.UBArmor); heroToEquip.UBArmor = new Armor("Shirt", "upper body", 1, "Shirt", 2); } } }
public InfoType Get(Kingdom gameObject) { if (gameObject == null) { return(null); } var infos = this.Infos.Where(i => i.Id == gameObject.StringId); if (infos.Count() > 1) { this.RemoveDuplicates(); } var info = infos.FirstOrDefault(); if (info != null) { return(info); } info = (InfoType)Activator.CreateInstance(typeof(InfoType), gameObject); this.Infos.Add(info); return(info); }
private void DefinePlayerKingdom() { List <Kingdom> kingdoms = new List <Kingdom> { Kingdom.Blue, Kingdom.Green, Kingdom.Orange, Kingdom.Purple, Kingdom.Red }; Kingdom randomKingdom = kingdoms[Random.Range(0, kingdoms.Count)]; foreach (Kingdom k in kingdoms) { List <Property> kingdomProperties = GetKingdomProperties(k); foreach (Property property in kingdomProperties) { if (k == randomKingdom) { property.SetDominated(true, false); } else { property.SetDominated(false, false); } } } kingdom = randomKingdom; }
internal void CECaptorMakeHeroCompanion(Hero captive) { if (captive == null) { return; } if (captive.IsFactionLeader) { if (captive.Clan != null && captive.Clan.IsKingdomFaction) { Kingdom kingdom = captive.Clan.Kingdom; Clan result = null; float num = 0f; IEnumerable <Clan> clans = kingdom.Clans; foreach (Clan clan in clans.Where((Clan t) => t.Heroes.Any((Hero h) => h.IsAlive) && !t.IsMinorFaction && t != captive.Clan)) { float clanStrength = Campaign.Current.Models.DiplomacyModel.GetClanStrength(clan); if (num <= clanStrength) { num = clanStrength; result = clan; } } kingdom.RulingClan = result; } } AddCompanionAction.Apply(Clan.PlayerClan, captive); }
public static void MessageSent(Human ambassador, Guid destination, string msg) { Kingdom k = FindKingdom(destination); HumanTask gettingBackTask = new HumanTask(ambassador) { TaskType = ETask.SendingMessage, Destination = k.UserId.ToString(), Context = Locale.Get("commands.send.empty_answer", k.Language) }; gettingBackTask.CalculateTaskTime(ambassador); ambassador.TasksToDo.AddRange(new[] { new HumanTask(ambassador) { TaskType = ETask.Waiting, TimeLeft = 3 }, gettingBackTask }); msg = string.Format(Locale.Get("commands.send.recieved", k.Language), ambassador.GetName(k.Language), k.Name, msg); UsersManager.Send(destination, new MessageCallback(msg)); }
public int AddKingdom(Kingdom kingdom) { int place = WorldKingdoms.Count; WorldKingdoms.Add(place, kingdom); return(place); }
public void setAtWar(Kingdom k) { warStatus[k] = true; if (k.Equals(Kingdom.Cobeth)) { tradeCobeth = 2; } if (k.Equals(Kingdom.Rym)) { tradeRym = 2; } if (k.Equals(Kingdom.Galerd)) { tradeGalerd = 2; } if (k.Equals(Kingdom.Jalonn)) { tradeJalonn = 2; } isAtWar = true; }
public static void Apply(Kingdom kingdom, Kingdom otherKingdom, bool forcePlayerCharacterCosts = false) { Kingdom playerKingdom = Clan.PlayerClan?.Kingdom; if (otherKingdom == playerKingdom && playerKingdom.Leader == Hero.MainHero) { TextObject textObject = new TextObject("{=QbOqatd7}{KINGDOM} is proposing an alliance with {PLAYER_KINGDOM}."); textObject.SetTextVariable("KINGDOM", kingdom.Name); textObject.SetTextVariable("PLAYER_KINGDOM", otherKingdom.Name); InformationManager.ShowInquiry(new InquiryData( new TextObject("{=3pbwc8sh}Alliance Proposal").ToString(), textObject.ToString(), true, true, new TextObject("{=3fTqLwkC}Accept").ToString(), new TextObject("{=dRoMejb0}Decline").ToString(), () => ApplyInternal(kingdom, otherKingdom, forcePlayerCharacterCosts), null, ""), true); } else { ApplyInternal(kingdom, otherKingdom, forcePlayerCharacterCosts); } }
public static void Postfix(Clan mercenaryClan, Kingdom kingdom, DefaultDiplomacyModel __instance, ref float __result) { try { if (!LoyaltyDebugHelper.InDebugBranch || !SettingsHelper.SystemDebugEnabled(AOSystems.EnsuredLoyalty, DebugType.Technical, mercenaryClan)) { return; } float ComputedResult = (float)(10000.0 * (0.00999999977648258 * Math.Min(100f, mercenaryClan.LastFactionChangeTime.ElapsedDaysUntilNow)) - 5000.0) - __instance.GetScoreOfMercenaryToJoinKingdom(mercenaryClan, kingdom); string UnitValueDebugInfo = string.Format("ScoreOfMercenaryToLeaveKingdom. DaysWithFaction = {0}. DaysWithFactionModified = {1}. GetScoreOfMercenaryToJoinKingdom = {2}." + "CalculatedResult = {3}. NativeResult = {4}.", mercenaryClan.LastFactionChangeTime.ElapsedDaysUntilNow.ToString(), (10000.0 * (0.00999999977648258 * Math.Min(100f, mercenaryClan.LastFactionChangeTime.ElapsedDaysUntilNow))).ToString("N"), __instance.GetScoreOfMercenaryToJoinKingdom(mercenaryClan, kingdom).ToString("N"), ComputedResult.ToString("N"), __result.ToString("N")); MessageHelper.TechnicalMessage(UnitValueDebugInfo); } catch (Exception ex) { MethodInfo methodInfo = MethodBase.GetCurrentMethod() as MethodInfo; DebugHelper.HandleException(ex, methodInfo, "Harmony patch for GetScoreOfMercenaryToLeaveKingdom"); } }
public static void Main(string[] args) { Message mes, mes2, mes3; Republic ukraine = new Republic(); Monarchy spain = new Monarchy("Spain", 70000000); Kingdom uk = new Kingdom("United Kingdom", 140000000); ukraine.Name = "Ukraine"; ukraine.Population = 41000000; mes = ukraine.Info; mes2 = spain.Info; mes2 += uk.Info; mes3 = mes + mes2; mes3(); Console.WriteLine(); IDerzhava[] masiv = new IDerzhava[3]; masiv[0] = ukraine; masiv[1] = spain; masiv[2] = uk; foreach (IDerzhava derzh in masiv) { mes += derzh.Info; } mes.Invoke(); }
void Start() { /*foreach (int townID in blue.townIDs) { * foreach (GameObject townGO in GameObject.FindGameObjectsWithTag("Town")) { * Town town = townGO.GetComponent<Town>(); * if (town.townKingdom != blue) town.Flip(); * } * } * foreach (int townID in red.townIDs) { * foreach (GameObject townGO in GameObject.FindGameObjectsWithTag("Town")) { * Town town = townGO.GetComponent<Town>(); * if (town.townKingdom != red) town.Flip(); * } * }*/ if (GameState.GS.currentTurn != null) { currentTurn = GameState.GS.currentTurn; } else { currentTurn = blue; } if (currentTurn == red) { Invoke("AIsTurn", 1f); } }
public void WhenAKingdomWantsToMakeAlliesAndSendsIncorrectMessage_ThenHeShouldBeAbleToSendMessagesAndIncreaseAllies() { var kingdom = new Kingdom(KingdomNames.SPACE, Emblems.Gorilla); kingdom.SendMessage(_kingdom, "ABC"); Assert.True(kingdom.Allies.Count == 0); }
public static bool CheckLoyalty(Clan clan, out TextObject DebugTextObject, Kingdom kingdom = null) { DebugTextObject = new TextObject(Debug_EnsuredLoyalty); if (!Settings.Instance.UseEnsuredLoyalty) { return(SetDebugResult(ELState.SystemDisabled, DebugTextObject)); } else { if (!SettingsHelper.FactionInScope(clan, Settings.Instance.EnsuredLoyaltyScope)) { return(SetDebugResult(ELState.FactionOutOfScope, DebugTextObject)); } else { int DaysWithKingdom = (int)(CampaignTime.Now - clan.LastFactionChangeTime).ToDays; int RequiredDays = clan.IsUnderMercenaryService ? Settings.Instance.MinorFactionServicePeriod : (clan.IsMinorFaction ? Settings.Instance.MinorFactionOathPeriod : Settings.Instance.FactionOathPeriod); if (clan.Kingdom != null && DaysWithKingdom <= RequiredDays) { return(SetDebugResult(ELState.UnderRequiredService, DebugTextObject, DaysWithKingdom: DaysWithKingdom, RequiredDays: RequiredDays)); } else if (Settings.Instance.UseRelationForEnsuredLoyalty && !clan.IsUnderMercenaryService) { return(SetDebugResult(ELState.AffectedByRelations, DebugTextObject, clan, kingdom)); } else { return(SetDebugResult(ELState.UnaffectedByRelations, DebugTextObject, clan)); } } } }
public ResourceService(ApplicationDbContext dbContext, IHttpContextAccessor contextAccessor) { this.dbContext = dbContext; var username = contextAccessor.HttpContext.User.Claims.FirstOrDefault(c => c.Type == "Username").Value; kingdom = dbContext.Kingdoms.Include(k => k.User).Include(k => k.Resources).FirstOrDefault(k => k.User.Username == username); }
public void LookAtKingdom(Kingdom kingdom) { Debug.Log("LookAtKingdomCalled"); cameraControllerTransform.DOLocalRotate(new Vector3(kingdom.xRotation, kingdom.yRotation, 0), 1); //pivotTransform.localEulerAngles = new Vector3(k.x, k.y, 0); }
private void AddWarExhaustion(Kingdom kingdom1, Kingdom kingdom2, float warExhaustionToAdd, WarExhaustionType warExhaustionType, bool addFuzziness = true) { string key = CreateKey(kingdom1, kingdom2); if (key != null) { float finalWarExhaustionDelta = warExhaustionToAdd; if (addFuzziness) { finalWarExhaustionDelta *= Fuzziness; } if (_warExhaustionById.TryGetValue(key, out float currentValue)) { _warExhaustionById[key] = MBMath.ClampFloat(currentValue += finalWarExhaustionDelta, MinWarExhaustion, MaxWarExhaustion); } else { _warExhaustionById[key] = MBMath.ClampFloat(finalWarExhaustionDelta, MinWarExhaustion, MaxWarExhaustion); } if (Settings.Instance.EnableWarExhaustionDebugMessages && kingdom1 == Hero.MainHero.MapFaction) { string information = string.Format("Added {0} {1} war exhaustion to {2}'s war with {3}", finalWarExhaustionDelta, Enum.GetName(typeof(WarExhaustionType), warExhaustionType), kingdom1.Name, kingdom2.Name); InformationManager.DisplayMessage(new InformationMessage(information, Color.FromUint(4282569842U))); } } }
private void InitializeKingdom(Hero leader, Settlement target) { Kingdom newKingdom = MBObjectManager.Instance.CreateObject <Kingdom>(); try { TextObject name = new TextObject("{=!}{CLAN_NAME}"); string origin = target.Name.ToString().Replace("Castle", "").Trim(); name.SetTextVariable("CLAN_NAME", leader.Name + " of " + origin); newKingdom.InitializeKingdom(name, name, leader.Culture, Banner.CreateRandomClanBanner(leader.StringId.GetDeterministicHashCode()), 0, 0, new Vec2(target.GatePosition.X, target.GatePosition.Y)); ChangeKingdomAction.ApplyByJoinToKingdom(leader.Clan, newKingdom, false); newKingdom.RulingClan = leader.Clan; newKingdom.AddPolicy(DefaultPolicies.NobleRetinues); MBObjectManager.Instance.RegisterObject(newKingdom); } catch (Exception e) { Log.Info("Exception in InitializeKingdom"); Log.Error(e); } }
private static void CheckIfPartyIconIsDirty(Clan clan, Kingdom oldKingdom) { IFaction faction; if (clan.Kingdom == null) { faction = clan; } else { IFaction kingdom = clan.Kingdom; faction = kingdom; } IFaction faction2 = faction; IFaction faction3 = (IFaction)oldKingdom ?? clan; foreach (MobileParty mobileParty in MobileParty.All) { if (mobileParty.IsVisible && ((mobileParty.Party.Owner != null && mobileParty.Party.Owner.Clan == clan) || (clan == Clan.PlayerClan && ((!FactionManager.IsAtWarAgainstFaction(mobileParty.MapFaction, faction2) && FactionManager.IsAtWarAgainstFaction(mobileParty.MapFaction, faction3)) || (FactionManager.IsAtWarAgainstFaction(mobileParty.MapFaction, faction2) && !FactionManager.IsAtWarAgainstFaction(mobileParty.MapFaction, faction3)))))) { mobileParty.Party.Visuals.SetMapIconAsDirty(); } } foreach (Settlement settlement in clan.Settlements) { settlement.Party.Visuals.SetMapIconAsDirty(); } }
public bool ApplyCondition(Kingdom kingdom, Kingdom otherKingdom, out TextObject textObject, bool forcePlayerCharacterCosts = false) { textObject = null; IEnumerable <LogEntry> gameActionLogs = Campaign.Current.LogEntryHistory.GameActionLogs; CampaignTime lastPeaceTime = CampaignTime.Never; foreach (LogEntry logEntry in gameActionLogs) { if (logEntry is MakePeaceLogEntry && ((((MakePeaceLogEntry)logEntry).Faction1 == kingdom.MapFaction && ((MakePeaceLogEntry)logEntry).Faction2 == otherKingdom.MapFaction) || (((MakePeaceLogEntry)logEntry).Faction1 == otherKingdom.MapFaction && ((MakePeaceLogEntry)logEntry).Faction2 == kingdom.MapFaction))) { lastPeaceTime = logEntry.GameTime; break; } } double daysSinceLastWar = CampaignTime.Now.ToDays - lastPeaceTime.ToDays; bool hasEnoughTimeElapsed = lastPeaceTime == CampaignTime.Never || daysSinceLastWar > MinimumTimeFromLastWar; if (!hasEnoughTimeElapsed) { textObject = new TextObject(TOO_SOON); textObject.SetTextVariable("ELAPSED_DAYS", (int)daysSinceLastWar); textObject.SetTextVariable("REQUIRED_DAYS", (int)MinimumTimeFromLastWar); } return(hasEnoughTimeElapsed); }
public KingdomViewModel(IJumpService jumpService, IIdToNameService idToNameService) { _model = new Kingdom(); JumpToBattleConfigCommand = new RelayCommand <BattleConfigId>(id => jumpService.JumpTo(BattleConfigSelectorEditorModule.Id, (int)id)); KingdomItems = idToNameService.GetComboBoxItemsPlusDefault <IKingdomService>(); }
public static void Apply(Kingdom kingdom, Kingdom otherKingdom) { Kingdom playerKingdom = Clan.PlayerClan?.Kingdom; if (otherKingdom == playerKingdom && playerKingdom.Leader == Hero.MainHero) { TextObject textObject = new TextObject("{=384jX28Q}{KINGDOM} is breaking the alliance with {PLAYER_KINGDOM}."); textObject.SetTextVariable("KINGDOM", kingdom.Name); textObject.SetTextVariable("PLAYER_KINGDOM", otherKingdom.Name); InformationManager.ShowInquiry(new InquiryData( new TextObject("{=D1ZQKZr1}Alliance Broken").ToString(), textObject.ToString(), true, false, GameTexts.FindText("str_ok", null).ToString(), null, () => ApplyInternal(kingdom, otherKingdom), null, ""), true); } else { ApplyInternal(kingdom, otherKingdom); } }
public void GivenGorillaKingHasLessThan3Allies_WhenDecideRulerIsCalled_ThenReturnFalse() { var spaceKingdom = new Kingdom(KingdomNames.SPACE, Emblems.Gorilla); var result = _southeros.DecideRuler(spaceKingdom); Assert.False(result); }
public BallotMessageTest() { sender = new Kingdom("LAND", "Panda"); Kingdom receiver = new Kingdom("Test", "Test"); ballotMessage = new BallotMessage(sender, receiver, "Test"); }
public Kingdom ToKingdom() { List<CardModel> cards = new List<CardModel>(); foreach(string card in this.Cards) { cards.Add(CardModelFactory.GetCardModel(card)); } List<CardModel> prohibitedCards = new List<CardModel>(); foreach (string card in this.ProhibitedCards) { prohibitedCards.Add(CardModelFactory.GetCardModel(card)); } CardModel bane = this.Bane != null ? CardModelFactory.GetCardModel(this.Bane) : null; Kingdom kingdom = new Kingdom(cards, prohibitedCards, bane, GameSets.Any, this.Players.Count, this.UseColonies, this.UseShelters, this.StartingHandType); return kingdom; }
public QuickShooterUnit(List<Point> map, Kingdom kingdom) { Kingdom = kingdom; travelPoints = map; Weapons = new List<Weapon>(); Shields = new List<Shield>(); Weapons.Add(new GunWeapon(this)); Drawer = new QuickShooterDrawer(kingdom.Color); Drawer.Init(); spinUpTimer = 0; spinDownTimer = 0; SpinDownTime = (int) ( 20 * 1.5 ); SpinUpTime = 20 * 1; }