Esempio n. 1
0
        public float GetDiplomaticBonusBetweenGovernmentTypes(
            GameDatabase gamedb,
            AssetDatabase assetdb,
            PlayerInfo player,
            PlayerInfo toPlayer)
        {
            float          num1           = 0.0f;
            Faction        faction1       = assetdb.Factions.FirstOrDefault <Faction>((Func <Faction, bool>)(x => x.ID == player.FactionID));
            Faction        faction2       = assetdb.Factions.FirstOrDefault <Faction>((Func <Faction, bool>)(x => x.ID == toPlayer.FactionID));
            GovernmentInfo governmentInfo = gamedb.GetGovernmentInfo(toPlayer.ID);
            float          num2;

            if (governmentInfo != null && this.DiplomaticEffect.TryGetValue(governmentInfo.CurrentType, out num2))
            {
                num1 += num2;
            }
            if (!toPlayer.isStandardPlayer)
            {
                if (faction2 != null && faction2.IsIndependent())
                {
                    num1 += this.IndependantBonus;
                }
                else if (this.NonPlayerDiplomaticEffect.TryGetValue(governmentInfo.CurrentType, out num2))
                {
                    num1 += num2;
                }
            }
            if (faction1 == faction2)
            {
                num1 += this.SameFactionBonus;
            }
            return(num1);
        }
        public ActionResult GetNeighborhoodId(GovernmentInfo governmateInfo)
        {
            var Result = db.Neighborhoods.Where(n => n.GovernorateId == governmateInfo.govermentId).Select(x => new { Id = x.GovernorateId, Name = x.Name }).ToList();

            return(Json(new
            {
                res = Result
            }));
        }
Esempio n. 3
0
        public int GetStratModifierTotal(
            GameDatabase gamedb,
            StratModifiers sm,
            int playerId,
            int modValue)
        {
            GovernmentInfo      governmentInfo = gamedb.GetGovernmentInfo(playerId);
            GovEffectCollection effectCollection;

            if (governmentInfo != null && this.DiplomaticEffects.TryGetValue(governmentInfo.CurrentType, out effectCollection))
            {
                return(effectCollection.StratEffects.GetResultingStratModifierValue(gamedb, sm, playerId, modValue));
            }
            return(modValue);
        }
Esempio n. 4
0
        public float GetDiplomacyBonus(
            GameDatabase gamedb,
            AssetDatabase assetdb,
            PlayerInfo player,
            PlayerInfo toPlayer)
        {
            GovernmentInfo      governmentInfo = gamedb.GetGovernmentInfo(player.ID);
            GovEffectCollection effectCollection;

            if (governmentInfo != null && this.DiplomaticEffects.TryGetValue(governmentInfo.CurrentType, out effectCollection))
            {
                return(effectCollection.DiplomaticEffects.GetDiplomaticBonusBetweenGovernmentTypes(gamedb, assetdb, player, toPlayer));
            }
            return(0.0f);
        }
Esempio n. 5
0
        private static void SyncPlayerStatsState(
            App game,
            string panelName,
            PlayerInfo playerInfo,
            bool updateButtonIds)
        {
            FactionInfo   factionInfo                     = game.GameDatabase.GetFactionInfo(playerInfo.FactionID);
            string        propertyValue1                  = string.Format("{0:000}", (object)Math.Abs(game.GameDatabase.GetFactionInfo(game.GameDatabase.GetPlayerFactionID(game.Game.LocalPlayer.ID)).IdealSuitability - factionInfo.IdealSuitability));
            string        enginePlantTechString           = GameSession.GetBestEnginePlantTechString(game, playerInfo.ID);
            string        engineTechString                = GameSession.GetBestEngineTechString(game, playerInfo.ID);
            string        propertyValue2                  = game.GameDatabase.GetPlayerInfo(game.Game.LocalPlayer.ID).FactionDiplomacyPoints[factionInfo.ID].ToString();
            DiplomacyInfo diplomacyInfo                   = game.GameDatabase.GetDiplomacyInfo(playerInfo.ID, game.Game.LocalPlayer.ID);
            int           numHistoryTurns                 = 10;
            int           currentTurn                     = game.GameDatabase.GetTurnCount();
            List <DiplomacyReactionHistoryEntryInfo> list = game.GameDatabase.GetDiplomacyReactionHistory(playerInfo.ID, game.Game.LocalPlayer.ID, currentTurn, 10).ToList <DiplomacyReactionHistoryEntryInfo>();

            int[] numArray = new int[numHistoryTurns];
            numArray[numHistoryTurns - 1] = diplomacyInfo.Relations;
            string propertyValue3 = numArray[numHistoryTurns - 1].ToString();

            for (int i = numHistoryTurns - 2; i >= 0; --i)
            {
                numArray[i] = numArray[i + 1] + list.Where <DiplomacyReactionHistoryEntryInfo>((Func <DiplomacyReactionHistoryEntryInfo, bool>)(x =>
                {
                    int?turnCount = x.TurnCount;
                    int num       = currentTurn - (numHistoryTurns - 1 - i);
                    if (turnCount.GetValueOrDefault() == num)
                    {
                        return(turnCount.HasValue);
                    }
                    return(false);
                })).Sum <DiplomacyReactionHistoryEntryInfo>((Func <DiplomacyReactionHistoryEntryInfo, int>)(y => y.Difference));
                propertyValue3 = propertyValue3 + "|" + numArray[i].ToString();
            }
            game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIRelationsGraph), "data", propertyValue3);
            string diplomaticMoodSprite = diplomacyInfo.GetDiplomaticMoodSprite();

            if (!string.IsNullOrEmpty(diplomaticMoodSprite))
            {
                game.UI.SetVisible(DiplomacyUI.UIRelation, true);
                game.UI.SetPropertyString(DiplomacyUI.UIRelation, "sprite", diplomaticMoodSprite);
            }
            else
            {
                game.UI.SetVisible(DiplomacyUI.UIRelation, false);
            }
            game.UI.SetText(game.UI.Path(panelName, DiplomacyUI.UIRelationText), DiplomacyUI.GetRelationText(diplomacyInfo.State));
            string propertyValue4 = Path.GetFileNameWithoutExtension(playerInfo.AvatarAssetPath);

            if (propertyValue4 == "")
            {
                propertyValue4 = game.AssetDatabase.GetFaction(playerInfo.FactionID).SplinterAvatarPath();
            }
            game.UI.SetVisible(game.UI.Path(panelName, "eliminated"), (playerInfo.isDefeated ? 1 : 0) != 0);
            game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIAvatar), "sprite", propertyValue4);
            game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIBadge), "sprite", Path.GetFileNameWithoutExtension(playerInfo.BadgeAssetPath));
            game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIHazardRating), "text", propertyValue1);
            game.UI.SetVisible(game.UI.Path(panelName, DiplomacyUI.UIHazardRating), (factionInfo.Name != "loa" ? 1 : 0) != 0);
            game.UI.SetVisible(game.UI.Path(panelName, "hazardtitle"), (factionInfo.Name != "loa" ? 1 : 0) != 0);
            if (playerInfo.isStandardPlayer)
            {
                game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIDriveTech), "text", enginePlantTechString);
                game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIDriveSpecial), "text", engineTechString);
            }
            else
            {
                game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIDriveTech), "text", App.Localize("@UI_DIPLOMACY_TECHLEVEL_1"));
                game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIDriveSpecial), "text", "");
            }
            game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIStatRpdValue), "text", propertyValue2);
            GovernmentInfo governmentInfo = game.GameDatabase.GetGovernmentInfo(playerInfo.ID);

            game.UI.SetPropertyString(game.UI.Path(panelName, DiplomacyUI.UIGovernmentType), "text", App.Localize(string.Format("@UI_EMPIRESUMMARY_{0}", (object)governmentInfo.CurrentType.ToString().ToUpper())));
        }