Exemplo n.º 1
0
    private void ComputeTameCosts(global::Game game)
    {
        System.Random          random   = new System.Random(World.Seed);
        IDatabase <ArmyAction> database = Databases.GetDatabase <ArmyAction>(false);

        Diagnostics.Assert(database != null);
        Dictionary <string, List <PointOfInterestTemplate> > dictionary = KaijuTechsManager.ComputeLuxuryAbundance(game);

        for (int i = 0; i < database.Count <ArmyAction>(); i++)
        {
            ArmyAction armyAction = database.ElementAt(i);
            if (armyAction is IArmyActionWithKaijuTameCost)
            {
                KaijuTameCost tameCost = (armyAction as IArmyActionWithKaijuTameCost).TameCost;
                for (int j = 0; j < tameCost.CostDefinitions.Length; j++)
                {
                    KaijuTameCost.CostDefinition   costDefinition = tameCost.CostDefinitions[j];
                    List <PointOfInterestTemplate> list           = new List <PointOfInterestTemplate>();
                    list.AddRange(dictionary[costDefinition.LuxuryTier]);
                    PointOfInterestTemplate pointOfInterestTemplate = list[random.Next(list.Count)];
                    string empty = string.Empty;
                    if (pointOfInterestTemplate.Properties.TryGetValue("ResourceName", out empty))
                    {
                        costDefinition.SetResourceName(empty);
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
    private void Client_TurnBegin_RecalculateELCPTameResource()
    {
        if (this.ELCPTameCostCooldown < 1)
        {
            return;
        }
        int num  = (this.gameService.Game as global::Game).Turn + 1;
        int num2 = num % this.ELCPTameCostCooldown;

        if (num2 != 0 && this.eLCPResourceName != StaticString.Empty)
        {
            return;
        }
        num -= num2;
        System.Random random        = new System.Random(World.Seed + base.Empire.Index * base.Empire.Index * base.Empire.Index * base.Empire.Index * base.Empire.Index + num * num);
        int           maxEraNumber  = DepartmentOfScience.GetMaxEraNumber();
        KaijuTameCost kaijuTameCost = KaijuCouncil.GetKaijuTameCost();
        Dictionary <string, List <PointOfInterestTemplate> > dictionary = KaijuTechsManager.ComputeLuxuryAbundance(this.gameService.Game as global::Game);
        List <PointOfInterestTemplate> list = new List <PointOfInterestTemplate>();
        List <string> list2 = new List <string>();

        for (int i = 0; i < kaijuTameCost.CostDefinitions.Length; i++)
        {
            KaijuTameCost.CostDefinition costDefinition = kaijuTameCost.CostDefinitions[i];
            if (!list2.Contains(costDefinition.LuxuryTier))
            {
                string[] array = costDefinition.EraNumber.Split(new char[]
                {
                    ','
                });
                bool flag = false;
                for (int j = 0; j < array.Length; j++)
                {
                    int num3 = 0;
                    if (int.TryParse(array[j], out num3) && num3 <= maxEraNumber)
                    {
                        flag = true;
                        break;
                    }
                }
                if (flag)
                {
                    list.AddRange(dictionary[costDefinition.LuxuryTier]);
                    list2.Add(costDefinition.LuxuryTier);
                }
            }
        }
        PointOfInterestTemplate pointOfInterestTemplate = list[random.Next(list.Count)];
        string empty = string.Empty;

        if (pointOfInterestTemplate.Properties.TryGetValue("ResourceName", out empty))
        {
            Diagnostics.Log("ELCP {0} Client_TurnBegin_RecalculateELCPTameResource rolled Resource {1} instead of {2}", new object[]
            {
                base.Empire.Index.ToString() + "/" + this.KaijuEmpire.KaijuFaction.LocalizedName,
                empty,
                kaijuTameCost.ResourceName
            });
            this.eLCPResourceName = new StaticString(empty);
        }
    }