Esempio n. 1
0
        // Make an event object dawg.
        public void Cleanup(ref Random rnd, int fighterCount, DataTbls dataTbls, bool isUnlockableFighterType = false)
        {
            bool isBossType = IsBossType();

            EventSet(ref rnd, dataTbls);
            HazardCheck();
            BossCheck();
            HealthCheck(ref rnd, dataTbls);
            TimerCheck(fighterCount, isUnlockableFighterType, dataTbls.config.minimum_battle_time);
            BattlePowerCheck(ref rnd, isBossType);
        }
Esempio n. 2
0
        public static void ExportPackaged(DataTbls dataTbls, string filename)
        {
            var selectedBattleId = dataTbls.selectedBattle.battle_id;

            // Check whether user entered custom folder name.  If not, use standard format.
            var packPath = FileHelper.IsDefaultFolderDialogPath(filename) ?
                           FileHelper.ToDefaultBattleExportFolder(filename) + @"\" + selectedBattleId + "-" + DateTime.Now.ToString("yyyyMMddHHmmss") :
                           filename;

            FileHelper.Save(dataTbls.battleData, dataTbls.fighterData, packPath, dataTbls.config.file_name_encr, useFolderStructure: true, unencrypted: false, encrypted: true, spiritData: dataTbls.spiritData, saveSpiritTitles: true);
            FileHelper.CopyPreloadFiles(packPath);
            FileHelper.CopySpiritImages(packPath);
        }
Esempio n. 3
0
        public void EventSet(ref Random rnd, DataTbls dataTbls)
        {
            // Post Randomize battle modifiers
            var eventCount = RandomizerHelper.eventDistribution[rnd.Next(RandomizerHelper.eventDistribution.Count)];


            for (int j = 1; j <= eventCount; j++)
            {
                if (RandomizerHelper.ChancePass(dataTbls.config.chaos, ref rnd))
                {
                    var randEvent = GetRandomBattleEvent(ref rnd, dataTbls);
                    BuildEvent(randEvent, j);
                }
            }
        }
Esempio n. 4
0
        public void HealthCheck(ref Random rnd, DataTbls dataTbls)
        {
            // Check if init HP is lower than init damage (?)
            if (basic_init_hp < basic_init_damage)
            {
                var hold = basic_init_damage;
                basic_init_damage = basic_init_hp;
                basic_init_hp     = hold;
            }

            // If HP battle, and player hass less than 30 hp, and they pass chaos chance, give em extra health.
            if (battle_type == "hp" || battle_type == "hp_time")
            {
                basic_init_hp += (ushort)(RandomizerHelper.ChancePass(100 - dataTbls.config.chaos, ref rnd) && basic_init_hp < Defs.PLAYER_LOW_HP_CUTOFF ? Defs.PLAYER_LOW_HP_MOD : 0);
            }
        }
Esempio n. 5
0
        public static void ExportStandalone(DataTbls dataTbls, string filename)
        {
            var selectedBattleId = dataTbls.selectedBattle.battle_id;

            ExportedBattle export = new ExportedBattle()
            {
                battle   = dataTbls.battleData.GetBattle(selectedBattleId),
                fighters = dataTbls.selectedFighters,
                spirit   = dataTbls?.spiritData?.GetSpiritByName(selectedBattleId)
            };

            var unencryptedFileName = String.Format("{0}{1}", selectedBattleId, Defs.standaloneExportExtension);

            // Check whether user entered custom folder name.  If not, use standard format.
            var standalonePath = FileHelper.IsDefaultFolderDialogPath(filename) ?
                                 FileHelper.ToDefaultBattleExportFolder(filename) :
                                 filename;

            XmlHelper.SerializeToFile($"{standalonePath}\\{unencryptedFileName}", export);
        }
Esempio n. 6
0
        public BattleEvent GetRandomBattleEvent(ref Random rand, DataTbls dataTbls)
        {
            if (dataTbls.eventData.GetCount() == 0)
            {
                return(dataTbls.battleData.events[rand.Next(dataTbls.battleData.events.Count)]);
            }
            else
            {
                var      properties  = GetType().GetProperties();
                IDataTbl pulledEvent = dataTbls.eventData.GetRandomEvent(ref rand);

                var randEvent = new BattleEvent();

                // Chance to get a random event from label, vs random event from event type.  Should help spread things out hopefully.
                if (RandomizerHelper.ChancePass(Defs.EVENT_CHECK, ref rand))
                {
                    randEvent.event_type  = ((Event)pulledEvent).GetTypeName();
                    randEvent.event_label = pulledEvent.GetPropertyValueFromName("label");
                }
                else
                {
                    var event_types = dataTbls.eventData.event_type;
                    randEvent.event_type = event_types[rand.Next(event_types.Count)];

                    var labels = dataTbls.eventData.GetLabelsOfType(randEvent.event_type);
                    randEvent.event_label = labels[rand.Next(labels.Count)];
                }

                randEvent.event_count      = Byte.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_count"), ref rand, dataTbls, true));
                randEvent.event_damage     = UInt16.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_damage"), ref rand, dataTbls, true));
                randEvent.event_start_time = Int32.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_start_time"), ref rand, dataTbls, true));
                randEvent.event_range_time = Int32.Parse(GetRandomFieldValue(properties.FirstOrDefault(x => x.Name == "event1_range_time"), ref rand, dataTbls, true));

                return(randEvent);
            }
        }
Esempio n. 7
0
 public static TabPage BuildEmptyPage(DataTbls dataTbls)
 {
     return(BuildEmptyPage(dataTbls, typeof(Fighter)));
 }
Esempio n. 8
0
 public static TabPage BuildEmptyPage(DataTbls dataTbls)
 {
     return(BuildEmptyPage(dataTbls, typeof(Battle)));
 }
Esempio n. 9
0
 public TabPage BuildEmptyPage(DataTbls dataTbls)
 {
     return(DataTbl.BuildEmptyPage(dataTbls, this.GetType()));
 }
Esempio n. 10
0
 public static TabPage BuildEmptyPage(DataTbls dataTbls)
 {
     return(DataTbl.BuildEmptyPage(dataTbls, typeof(Spirit)));
 }