Example #1
0
        public void Test_EconomyOutput_ReportChaoting()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            var report = Economy.inst.outputs.Single(x => x.name == "STATIC_REPORT_CHAOTING_TAX");

            Assert.AreEqual(Root.def.economy.report_chaoting_percent, report.percent.Value);
            Assert.AreEqual(Chaoting.inst.expectMonthTaxValue.Value, report.maxValue.Value);
            Assert.AreEqual(report.maxValue.Value * report.percent.Value / 100, report.currValue.Value);

            report.percent.Value = 12.3;

            var json = JsonConvert.SerializeObject(Economy.inst, Formatting.Indented);

            Root.inst.economy = JsonConvert.DeserializeObject <Economy>(json);

            Assert.AreEqual(12.3, report.percent.Value);
            Assert.AreEqual(Chaoting.inst.expectMonthTaxValue.Value, report.maxValue.Value);
            Assert.AreEqual(report.maxValue.Value * report.percent.Value / 100, report.currValue.Value);

            Date.inst.day.Value = 30;
            Economy.DaysInc();

            Assert.AreEqual(Chaoting.inst.expectMonthTaxValue.Value - report.currValue.Value, Chaoting.inst.oweTax);
        }
Example #2
0
        public void TestSetGetEconomyData()
        {
            Root.Init(init);

            ModDataVisit.InitVisitData(Root.inst);

            Visitor.InitVisitMap(typeof(Root));
            Visitor.SetVisitData(Root.inst);

            Visitor.Set("economy.value", 123.0);

            Assert.AreEqual(123, Visitor.Get("economy.value"));

            var reportTaxPercent = 50.0;

            //Visitor.Set("economy.report_chaoting_tax_percent", reportTaxPercent);
            //Assert.AreEqual(reportTaxPercent, Visitor.Get("economy.report_chaoting_tax_percent"));

            //var reportChaotingTax = Root.inst.economy.EnumerateOutput().Single(x => x.name == "STATIC_REPORT_CHAOTING_TAX");
            //Assert.AreEqual(reportChaotingTax.maxValue.Value * reportTaxPercent / 100, reportChaotingTax.currValue.Value);

            //var incomes = Root.inst.economy.EnumerateInCome();
            //var popTax = incomes.Single(x => x.name == "STATIC_POP_TAX");

            //Assert.AreEqual(Pop.all.Sum(x => x.expectTax.Value), popTax.maxValue.Value);
            //Assert.AreEqual(popTax.maxValue.Value * 50 / 100, popTax.currValue.Value);
        }
Example #3
0
        private void _on_LoadSaveFile_Signed(string fileName)
        {
            var content = System.IO.File.ReadAllText(GlobalPath.save + fileName + ".save");

            Root.Deserialize(content);

            ModDataVisit.InitVisitData(Root.inst);
            GetTree().ChangeScene("res://Scenes/Main/MainScene.tscn");
        }
Example #4
0
        public void Test_ChaotingPowerParty()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            Assert.AreEqual(Root.def.chaoting.powerParty, Visitor.Get("chaoting.power_party.type"));
        }
Example #5
0
        public void Test_Init()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            Assert.AreEqual(init.common.name, Visitor.Get("taishou.name"));
            Assert.AreEqual(init.common.age, Visitor.Get("taishou.age"));
            Assert.AreEqual(init.common.party, Visitor.Get("taishou.party.type"));
        }
Example #6
0
        public void Test_EconomyMonthSurplus()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            Assert.AreEqual(Economy.inst.incomes.Sum(x => x.currValue.Value), Economy.inst.incomes.total.Value);
            Assert.AreEqual(Economy.inst.outputs.Sum(x => x.currValue.Value), Economy.inst.outputs.total.Value);

            Assert.AreEqual(Economy.inst.incomes.total.Value - Economy.inst.outputs.total.Value, Economy.inst.monthSurplus.Value);
        }
Example #7
0
        public TestEventDepart()
        {
            ModDataVisit.InitVisitMap(typeof(Demon));

            ModFileSystem.Clear();

            var modFileSystem = ModFileSystem.Generate(nameof(TestEventDepart));

            modFileSystem.AddDepartEvent("EVENT_TEST.txt",
                                         @"title = EVENT_DIFF_TITLE
desc = EVENT_DIFF_DESC

trigger =
{
	equal = {depart.data1, 11}
}

date = every_day

occur = 1

option =
{
    desc = EVENT_TEST_OPTION_1_DESC
    select =
    {
        assign = {depart.data2, 101}
    }
}

option =
{
    desc = EVENT_TEST_OPTION_2_DESC
    select =
    {
        assign = {depart.data2, 102}
    }
}

option =
{
    desc = EVENT_TEST_OPTION_3_DESC
    select =
    {
        assign = {depart.data2, 103}
    }
}");

            Mod.Load(ModFileSystem.path);
        }
Example #8
0
        public void TestTaishou()
        {
            Root.Init(init);

            ModDataVisit.InitVisitData(Root.inst);

            Visitor.InitVisitMap(typeof(Root));
            Visitor.SetVisitData(Root.inst);

            Assert.AreEqual(false, Visitor.Get("taishou.is_revoke"));
            Assert.AreEqual(false, Root.inst.isEnd);

            Visitor.Set("taishou.is_revoke", true);
            Assert.AreEqual(true, Visitor.Get("taishou.is_revoke"));
            Assert.AreEqual(true, Root.inst.isEnd);
        }
Example #9
0
        public void Test_ChaotingOweTax()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            Assert.AreEqual(0, Visitor.Get("chaoting.extra_tax"));
            Assert.AreEqual(0, Visitor.Get("chaoting.owe_tax"));

            var oweTax = 100.0;

            Chaoting.inst.ReportMonthTax(Chaoting.inst.expectMonthTaxValue.Value - oweTax);

            Assert.AreEqual(0, Visitor.Get("chaoting.extra_tax"));
            Assert.AreEqual(oweTax, Visitor.Get("chaoting.owe_tax"));
        }
Example #10
0
        public void Test_EconomyCurrValue()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            Assert.AreEqual(Root.def.economy.curr, Visitor.Get("economy.value"));

            Economy.inst.curr.Value = 100;

            var json = JsonConvert.SerializeObject(Economy.inst, Formatting.Indented);

            Root.inst.economy = JsonConvert.DeserializeObject <Economy>(json);

            Assert.AreEqual(100, Visitor.Get("economy.value"));
        }
Example #11
0
        public void Test_EconomyDayInc()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            Date.inst.day.Value = 29;
            Economy.DaysInc();

            Assert.AreEqual(Root.def.economy.curr, Visitor.Get("economy.value"));

            Date.inst.day.Value = 30;
            Economy.DaysInc();

            Assert.AreEqual(Root.def.economy.curr + Economy.inst.monthSurplus.Value, Visitor.Get("economy.value"));
        }
Example #12
0
        private void _on_Button_Start_button_up()
        {
            var initData = new InitData()
            {
                common = new InitData.Common()
                {
                    name  = "TEST1",
                    age   = 34,
                    party = "shizu"
                }
            };

            Root.Init(initData);

            ModDataVisit.InitVisitData(Root.inst);

            GetTree().ChangeScene("res://Scenes/Main/MainScene.tscn");
        }
Example #13
0
        // Declare member variables here. Examples:
        // private int a = 2;
        // private string b = "text";

        static StartScene()
        {
            System.IO.Directory.CreateDirectory(GlobalPath.save);

            Root.logger = (value) => GD.Print(value);
            Mod.logger  = (value) => GD.Print(value);

            ModDataVisit.InitVisitMap(typeof(Root));

            Mod.Load(GlobalPath.mod);

            Root.def = Mod.def;

            foreach (var mod in Mod.Enumerate())
            {
                TranslateServerEx.AddTranslate(mod.languages);
            }
        }
Example #14
0
        public void TestDepartDaysInc()
        {
            Root.Init(init);

            ModDataVisit.InitVisitData(Root.inst);

            Visitor.InitVisitMap(typeof(Root));
            Visitor.SetVisitData(Root.inst);

            double cropGrown = 0;

            for (int y = 1; y <= 10; y++)
            {
                for (int m = 1; m <= 12; m++)
                {
                    for (int d = 1; d <= 30; d++)
                    {
                        if (Date.inst >= Root.def.crop.growStartDay && Date.inst <= Root.def.crop.harvestDay)
                        {
                            cropGrown += Root.def.crop.growSpeed;
                        }
                        else
                        {
                            cropGrown = 0;
                        }

                        Depart.DaysInc();

                        foreach (var depart in Depart.all)
                        {
                            Assert.AreEqual(cropGrown, depart.cropGrown.Value);
                        }

                        Visitor.Pos pos = null;
                        while (Visitor.EnumerateVisit("pop", ref pos))
                        {
                            Assert.AreEqual(cropGrown, Visitor.Get("pop.depart.crop_grown"));
                        }

                        Date.Inc();
                    }
                }
            }
        }
Example #15
0
        public void TestDateInc()
        {
            Root.Init(init);

            ModDataVisit.InitVisitData(Root.inst);

            Visitor.InitVisitMap(typeof(Root));
            Visitor.SetVisitData(Root.inst);

            for (int y = 1; y <= 10; y++)
            {
                for (int m = 1; m <= 12; m++)
                {
                    for (int d = 1; d <= 30; d++)
                    {
                        Assert.AreEqual(d, Visitor.Get("date.day"));
                        Assert.AreEqual(m, Visitor.Get("date.month"));
                        Assert.AreEqual(y, Visitor.Get("date.year"));

                        Date.Inc();
                    }
                }
            }

            Assert.True(Date.inst == (11, null, null));
            Assert.True(Date.inst == (11, null, 1));
            Assert.True(Date.inst == (11, 1, 1));
            Assert.True(Date.inst == (null, 1, 1));

            Assert.True(Date.inst < (12, null, null));
            Assert.True(Date.inst < (12, null, 1));
            Assert.True(Date.inst < (12, 1, 1));
            Assert.True(Date.inst < (null, 12, 30));
            Assert.True(Date.inst < (null, 1, 30));

            Assert.True(Date.inst > (10, null, null));
            Assert.True(Date.inst > (10, 12, null));
            Assert.True(Date.inst > (10, 12, 30));
        }
Example #16
0
        public void Test_EconomyInCome_PopTax()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            var popTax = Economy.inst.incomes.Single(x => x.name == "STATIC_POP_TAX");

            Assert.AreEqual(Root.def.economy.pop_tax_percent, popTax.percent.Value);
            Assert.AreEqual(Depart.all.Sum(x => x.tax.Value), popTax.maxValue.Value);
            Assert.AreEqual(popTax.maxValue.Value * popTax.percent.Value / 100, popTax.currValue.Value);

            popTax.percent.Value = 12.3;

            var json = JsonConvert.SerializeObject(Economy.inst, Formatting.Indented);

            Root.inst.economy = JsonConvert.DeserializeObject <Economy>(json);

            Assert.AreEqual(12.3, popTax.percent.Value);
            Assert.AreEqual(Depart.all.Sum(x => x.tax.Value), popTax.maxValue.Value);
            Assert.AreEqual(popTax.maxValue.Value * popTax.percent.Value / 100, popTax.currValue.Value);
        }
Example #17
0
        public void Test_EconomyOutput_AdminExpend()
        {
            ModDataVisit.InitVisitMap(typeof(Root));

            Root.Init(init);
            ModDataVisit.InitVisitData(Root.inst);

            var adminExpend = Economy.inst.outputs.Single(x => x.name == "STATIC_ADMIN_EXPEND");

            Assert.AreEqual(Root.def.economy.expend_depart_admin, adminExpend.percent.Value);
            Assert.AreEqual(Depart.all.Sum(x => x.adminExpendBase.Value), adminExpend.maxValue.Value);
            Assert.AreEqual(adminExpend.maxValue.Value * adminExpend.percent.Value / 100, adminExpend.currValue.Value);

            adminExpend.percent.Value = 12.3;

            var json = JsonConvert.SerializeObject(Economy.inst, Formatting.Indented);

            Root.inst.economy = JsonConvert.DeserializeObject <Economy>(json);

            Assert.AreEqual(12.3, adminExpend.percent.Value);
            Assert.AreEqual(Depart.all.Sum(x => x.adminExpendBase.Value), adminExpend.maxValue.Value);
            Assert.AreEqual(adminExpend.maxValue.Value * adminExpend.percent.Value / 100, adminExpend.currValue.Value);
        }
Example #18
0
        public void TestSerialize()
        {
            Root.Init(init);

            ModDataVisit.InitVisitData(Root.inst);

            //COLLECT_POP_TAX.Start();

            var json = Root.Serialize();

            Root.Deserialize(json);

            Visitor.InitVisitMap(typeof(Root));
            Visitor.SetVisitData(Root.inst);

            Assert.AreEqual(1, Visitor.Get("date.day"));
            Assert.AreEqual(1, Visitor.Get("date.month"));
            Assert.AreEqual(1, Visitor.Get("date.year"));

            Assert.AreEqual(456, Visitor.Get("economy.value"));

            //foreach (var income in Root.inst.economy.EnumerateInCome())
            //{
            //    switch (income.name)
            //    {
            //        case "STATIC_POP_TAX":
            //            Assert.AreEqual(Root.def.economy.pop_tax_percent, income.percent.Value);
            //            Assert.AreEqual(Pop.all.Sum(x => x.expectTax.Value), income.maxValue.Value);
            //            Assert.AreEqual(income.maxValue.Value * income.percent.Value / 100, income.currValue.Value);
            //            break;
            //        default:
            //            Assert.Fail();
            //            break;

            //    }
            //}

            //foreach (var output in Root.inst.economy.EnumerateOutput())
            //{
            //    switch (output.name)
            //    {
            //        case "STATIC_REPORT_CHAOTING_TAX":
            //            Assert.AreEqual(Root.def.economy.report_tax_percent, output.percent.Value);
            //            Assert.AreEqual(Chaoting.inst.currMonthTax.Value * output.percent.Value / 100, output.currValue.Value);
            //            break;
            //        default:
            //            Assert.Fail();
            //            break;

            //    }
            //}

            foreach (var departName in Root.def.departs.Keys)
            {
                var departDef = Root.def.departs[departName];

                var depart = Depart.GetByColor(departDef.color.r, departDef.color.g, departDef.color.b);
                Assert.AreEqual(departName, depart.name);

                Assert.AreEqual(departDef.pop_init.Where(x => Root.def.pops[x.name].is_collect_tax).Sum(x => x.num), depart.popNum.Value);

                foreach (var init in departDef.pop_init)
                {
                    var pop = depart.pops.Single(x => x.name == init.name);
                    Assert.AreEqual(init.num, pop.num.Value);
                }
            }

            Assert.AreEqual((int)(Depart.all.Sum(x => x.popNum.Value) * Root.def.chaoting.reportPopPercent / 100), Chaoting.inst.reportPopNum.Value);
            //Assert.AreEqual(Root.def.chaoting.taxPercent, Chaoting.inst.taxPercent.Value);
            //Assert.AreEqual(Chaoting.inst.reportPopNum.Value * 0.01 * Root.def.chaoting.taxPercent / 100, Chaoting.inst.currMonthTax.Value);
        }
Example #19
0
 public void Setup()
 {
     ModDataVisit.InitVisitData(Demon.Init());
 }