public static AttackItemDefinition ReadFromFile(ResourceDataFile fileReader)
        {
            AttackItemDefinition def = new AttackItemDefinition();

            def.ItemId   = fileReader.ReadInt();
            def.Category = (ItemCategory)fileReader.ReadInt();

            def.Price     = fileReader.ReadInt();
            def.SellPrice = fileReader.ReadInt();
            def.Ap        = fileReader.ReadInt();
            def.Dp        = fileReader.ReadInt();
            def.Hit       = fileReader.ReadInt();

            int scope = fileReader.ReadInt();

            if (scope <= 2)
            {
                def.AttackScope = new FDSpan(1, scope);
            }
            else
            {
                def.AttackScope = new FDSpan(2, scope);
            }

            def.Ev = 0;     // Currently there is no weapon that ev > 0

            return(def);
        }
Пример #2
0
        public static FightAnimation ReadFromFile(ResourceDataFile reader)
        {
            FightAnimation definition = new FightAnimation();

            definition.AnimationId = reader.ReadInt();
            if (definition.AnimationId < 0)
            {
                return(null);
            }

            reader.ReadInt();
            definition.IdleFrameCount   = reader.ReadInt();
            definition.AttackFrameCount = reader.ReadInt();

            definition.AttackPercentageByFrame = new Dictionary <int, int>();
            for (int i = 0; i < definition.AttackFrameCount; i++)
            {
                int val = reader.ReadInt();
                if (val > 0)
                {
                    definition.AttackPercentageByFrame[i] = val;
                }
            }
            definition.RemoteAttackFrame = reader.ReadInt();

            return(definition);
        }
Пример #3
0
        public static MagicDefinition ReadFromFile(ResourceDataFile dataFile)
        {
            MagicDefinition def = new MagicDefinition();

            def.MagicId = dataFile.ReadInt();
            def.Type    = (MagicType)dataFile.ReadInt();

            int min = dataFile.ReadInt();
            int max = dataFile.ReadInt();

            def.Span = new FDSpan(min, max);

            if (def.Type == MagicType.Attack)
            {
                def.ApInvoledRate = dataFile.ReadInt();
            }

            def.HittingRate = dataFile.ReadInt();
            def.EffectRange = dataFile.ReadInt();
            def.EffectScope = dataFile.ReadInt();

            def.MpCost         = dataFile.ReadInt();
            def.AllowAfterMove = dataFile.ReadBoolean();
            def.AiConsiderRate = dataFile.ReadInt();
            def.IsCross        = false;

            if (def.EffectScope < 0)
            {
                def.EffectScope = -def.EffectScope;
                def.IsCross     = true;
            }

            return(def);
        }
        public static OccupationDefinition ReadFromFile(ResourceDataFile reader)
        {
            OccupationDefinition def = new OccupationDefinition();

            def.OccupationId = reader.ReadInt();

            int count = reader.ReadInt();

            def.AttackItemCategories = new List <int>();
            for (int i = 0; i < count; i++)
            {
                int category = reader.ReadInt();
                def.AttackItemCategories.Add(category);
            }

            count = reader.ReadInt();
            def.DefendItemCategories = new List <int>();
            for (int i = 0; i < count; i++)
            {
                int category = reader.ReadInt();
                def.DefendItemCategories.Add(category);
            }

            def.MagicDefendRate = reader.ReadInt();

            return(def);
        }
Пример #5
0
        public static MoneyItemDefinition ReadFromFile(ResourceDataFile fileReader)
        {
            MoneyItemDefinition def = new MoneyItemDefinition();

            def.ItemId = fileReader.ReadInt();
            def.Amount = fileReader.ReadInt();

            return(def);
        }
Пример #6
0
        public static SpecialItemDefinition ReadFromFile(ResourceDataFile fileReader)
        {
            SpecialItemDefinition def = new SpecialItemDefinition();

            def.ItemId    = fileReader.ReadInt();
            def.Price     = fileReader.ReadInt();
            def.SellPrice = fileReader.ReadInt();

            return(def);
        }
Пример #7
0
        public void ReadConversationIdsFromFile(ResourceDataFile dataFile)
        {
            this.ConversationIds = new Dictionary <string, int>();
            string key;

            while ((key = dataFile.ReadString()) != string.Empty)
            {
                int value = dataFile.ReadInt();
                this.ConversationIds[key] = value;
            }
        }
Пример #8
0
        private void LoadOccupationDefinitions()
        {
            occupationDefinitions = new Dictionary <int, OccupationDefinition>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/Occupation");
            int count = fileReader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                OccupationDefinition def = OccupationDefinition.ReadFromFile(fileReader);
                occupationDefinitions[def.OccupationId] = def;
            }
        }
Пример #9
0
        private void LoadLevelUpMagicDefinitions()
        {
            levelUpMagicDefinitions = new Dictionary <int, LevelUpMagicDefinition>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/LevelUpMagic");

            LevelUpMagicDefinition def = null;

            while ((def = LevelUpMagicDefinition.ReadFromFile(fileReader)) != null)
            {
                levelUpMagicDefinitions[def.Key] = def;
            }
        }
Пример #10
0
        private void LoadFightAnimations()
        {
            fightAnimations = new Dictionary <int, FightAnimation>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/FightAnimation");

            FightAnimation def = null;

            while ((def = FightAnimation.ReadFromFile(fileReader)) != null)
            {
                fightAnimations[def.AnimationId] = def;
            }
        }
Пример #11
0
        private void LoadMagicDefinitions()
        {
            magicDefinitions = new Dictionary <int, MagicDefinition>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/Magic");
            int magicCount = fileReader.ReadInt();

            for (int i = 0; i < magicCount; i++)
            {
                MagicDefinition def = MagicDefinition.ReadFromFile(fileReader);
                magicDefinitions[def.MagicId] = def;
            }
        }
Пример #12
0
        private void LoadShopDefinitions()
        {
            shopDefinitions = new Dictionary <int, ShopDefinition>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/Shop");

            ShopDefinition def = null;

            while ((def = ShopDefinition.ReadFromFile(fileReader)) != null)
            {
                shopDefinitions[def.Key] = def;
            }
        }
Пример #13
0
        private void LoadTransfersDefinitions()
        {
            transfersDefinitions = new Dictionary <int, TransfersDefinition>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/Transfer");

            int count = fileReader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                TransfersDefinition def = TransfersDefinition.ReadFromFile(fileReader);
                transfersDefinitions[def.DefinitionId] = def;
            }
        }
Пример #14
0
        private void LoadLevelUpDefinitions()
        {
            levelUpDefinitions = new Dictionary <int, LevelUpDefinition>();

            ResourceDataFile fileReader = new ResourceDataFile(@"Data/LevelUp");
            int levelUpCount            = fileReader.ReadInt();

            for (int i = 0; i < levelUpCount; i++)
            {
                LevelUpDefinition def = LevelUpDefinition.ReadFromFile(fileReader);
                levelUpDefinitions[def.DefinitionId] = def;
            }
        }
Пример #15
0
        /// <summary>
        /// Read creature definition according to base
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public static CreatureDefinition ReadFromFile(ResourceDataFile reader, Dictionary <int, CreatureDefinition> creatureBases)
        {
            if (creatureBases == null)
            {
                return(null);
            }

            CreatureDefinition definition = new CreatureDefinition();

            definition.DefinitionId = reader.ReadInt();
            int baseId = reader.ReadInt();

            definition.InitialLevel = reader.ReadInt();

            CreatureDefinition baseDef = creatureBases[baseId];

            if (baseDef == null)
            {
                return(null);
            }

            definition.AnimationId = baseDef.AnimationId;
            definition.Name        = baseDef.Name;
            definition.Race        = baseDef.Race;
            definition.Occupation  = baseDef.Occupation;
            definition.InitialAp   = baseDef.InitialAp * definition.InitialLevel;
            definition.InitialDp   = baseDef.InitialDp * definition.InitialLevel;
            definition.InitialDx   = baseDef.InitialDx * definition.InitialLevel;
            definition.InitialHp   = baseDef.InitialHp * definition.InitialLevel;
            definition.InitialMp   = baseDef.InitialMp * definition.InitialLevel;
            definition.InitialMv   = baseDef.InitialMv;
            definition.InitialEx   = baseDef.InitialEx;

            int itemCount = reader.ReadInt();

            for (int i = 0; i < itemCount; i++)
            {
                int itemId = reader.ReadInt();
                definition.Items.Add(itemId);
            }

            int magicCount = reader.ReadInt();

            for (int i = 0; i < magicCount; i++)
            {
                int magicId = reader.ReadInt();
                definition.Magics.Add(magicId);
            }

            return(definition);
        }
Пример #16
0
        public static DefendItemDefinition ReadFromFile(ResourceDataFile fileReader)
        {
            DefendItemDefinition def = new DefendItemDefinition();

            def.ItemId    = fileReader.ReadInt();
            def.Category  = (ItemCategory)fileReader.ReadInt();
            def.Price     = fileReader.ReadInt();
            def.SellPrice = fileReader.ReadInt();

            def.Dp = fileReader.ReadInt();
            def.Ev = fileReader.ReadInt();

            return(def);
        }
Пример #17
0
        public static LevelUpDefinition ReadFromFile(ResourceDataFile reader)
        {
            LevelUpDefinition def = new LevelUpDefinition();

            def.DefinitionId = reader.ReadInt();

            def.HpRange = reader.ReadSpan();
            def.MpRange = reader.ReadSpan();
            def.ApRange = reader.ReadSpan();
            def.DpRange = reader.ReadSpan();
            def.DxRange = reader.ReadSpan();

            return(def);
        }
Пример #18
0
        public static ConsumableItemDefinition ReadFromFile(ResourceDataFile fileReader)
        {
            ConsumableItemDefinition def = new ConsumableItemDefinition();

            def.ItemId    = fileReader.ReadInt();
            def.Price     = fileReader.ReadInt();
            def.SellPrice = fileReader.ReadInt();

            def.UseType    = (ItemUseType)fileReader.ReadInt();
            def.Quantity   = fileReader.ReadInt();
            def.IsReusable = (fileReader.ReadInt() == 1);

            return(def);
        }
        public static LevelUpMagicDefinition ReadFromFile(ResourceDataFile reader)
        {
            LevelUpMagicDefinition def = new LevelUpMagicDefinition();

            def.CreatureDefinitionId = reader.ReadInt();
            if (def.CreatureDefinitionId == -1)
            {
                return(null);
            }

            def.Level   = reader.ReadInt();
            def.MagicId = reader.ReadInt();

            return(def);
        }
Пример #20
0
        public static TransferDefinition ReadFromFile(ResourceDataFile reader)
        {
            TransferDefinition def = new TransferDefinition();

            def.DefinitionId   = reader.ReadInt();
            def.ToDefinitionId = reader.ReadInt();
            def.RequireItemId  = reader.ReadInt();
            def.ApRange        = reader.ReadSpan();
            def.DpRange        = reader.ReadSpan();
            def.DxRange        = reader.ReadSpan();
            def.HpRange        = reader.ReadSpan();
            def.MpRange        = reader.ReadSpan();
            def.MvRange        = reader.ReadSpan();

            return(def);
        }
Пример #21
0
        public static TransfersDefinition ReadFromFile(ResourceDataFile reader)
        {
            TransfersDefinition def = new TransfersDefinition();

            def.DefinitionId = reader.ReadInt();
            def.Transfers    = new List <TransferDefinition>();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                TransferDefinition transfer = TransferDefinition.ReadFromFile(reader);
                transfer.DefinitionId = def.DefinitionId;
            }

            return(def);
        }
Пример #22
0
        private void LoadItemDefinitions()
        {
            itemDefinitions = new Dictionary <int, ItemDefinition>();
            ResourceDataFile fileReader = new ResourceDataFile(@"Data/Item");

            int usableItemCount = fileReader.ReadInt();

            for (int i = 0; i < usableItemCount; i++)
            {
                ConsumableItemDefinition def = ConsumableItemDefinition.ReadFromFile(fileReader);
                itemDefinitions[def.ItemId] = def;
            }

            int attackItemCount = fileReader.ReadInt();

            for (int i = 0; i < attackItemCount; i++)
            {
                AttackItemDefinition def = AttackItemDefinition.ReadFromFile(fileReader);
                itemDefinitions[def.ItemId] = def;
            }

            int defendItemCount = fileReader.ReadInt();

            for (int i = 0; i < defendItemCount; i++)
            {
                DefendItemDefinition def = DefendItemDefinition.ReadFromFile(fileReader);
                itemDefinitions[def.ItemId] = def;
            }

            int specialItemCount = fileReader.ReadInt();

            for (int i = 0; i < specialItemCount; i++)
            {
                SpecialItemDefinition def = SpecialItemDefinition.ReadFromFile(fileReader);
                itemDefinitions[def.ItemId] = def;
            }

            int moneyItemCount = fileReader.ReadInt();

            for (int i = 0; i < moneyItemCount; i++)
            {
                MoneyItemDefinition def = MoneyItemDefinition.ReadFromFile(fileReader);
                itemDefinitions[def.ItemId] = def;
            }
        }
Пример #23
0
        /// <summary>
        /// Read creature base definition
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public static CreatureDefinition ReadBaseFromFile(ResourceDataFile reader)
        {
            CreatureDefinition definition = new CreatureDefinition();

            definition.DefinitionId = reader.ReadInt();
            definition.AnimationId  = definition.DefinitionId % 1000;
            definition.Name         = ""; // TODO: Localize
            definition.Race         = reader.ReadInt();
            definition.Occupation   = reader.ReadInt();
            definition.InitialAp    = reader.ReadInt();
            definition.InitialDp    = reader.ReadInt();
            definition.InitialDx    = reader.ReadInt();
            definition.InitialHp    = reader.ReadInt();
            definition.InitialMp    = reader.ReadInt();
            definition.InitialMv    = reader.ReadInt();
            definition.InitialEx    = reader.ReadInt();

            return(definition);
        }
Пример #24
0
        public static ShopDefinition ReadFromFile(ResourceDataFile reader)
        {
            ShopDefinition def = new ShopDefinition();

            def.ChapterId = reader.ReadInt();
            if (def.ChapterId == -1)
            {
                return(null);
            }

            def.Type = (ShopType)reader.ReadInt();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                int itemId = reader.ReadInt();
                def.Items.Add(itemId);
            }

            return(def);
        }
Пример #25
0
        /// <summary>
        /// Load two files: chapter_N.dat for json, chapter_N_data.dat for plain text
        /// </summary>
        /// <param name="chapterId"></param>
        /// <returns></returns>
        public ChapterDefinition LoadChapter(int chapterId)
        {
            if (chapterDefinitions == null)
            {
                chapterDefinitions = new Dictionary <int, ChapterDefinition>();
            }

            if (chapterDefinitions.ContainsKey(chapterId))
            {
                return(chapterDefinitions[chapterId]);
            }

            // Load Chapter
            ChapterDefinition chapter = ResourceJsonFile.Load <ChapterDefinition>(string.Format(@"Data/Chapters/Chapter_{0}", StringUtils.Digit2(chapterId)));

            chapter.ChapterId = chapterId;

            // Load Chapter ConversationId
            ResourceDataFile conversationIdFile = new ResourceDataFile(string.Format(@"Data/Chapters/Chapter_{0}_ConversationId", StringUtils.Digit2(chapterId)));

            chapter.ReadConversationIdsFromFile(conversationIdFile);

            // Load Chapter Creatures
            creatureChapterDefinitions = new Dictionary <int, CreatureDefinition>();
            ResourceDataFile fileReader2 = new ResourceDataFile(string.Format(@"Data/Chapters/Chapter_{0}_Creature", StringUtils.Digit2(chapterId)));
            int cCount = fileReader2.ReadInt();

            for (int i = 0; i < cCount; i++)
            {
                CreatureDefinition def = CreatureDefinition.ReadFromFile(fileReader2, creatureBaseDefinitions);
                creatureChapterDefinitions[def.DefinitionId] = def;
            }

            chapterDefinitions[chapterId] = chapter;
            return(chapter);
        }
Пример #26
0
        private void LoadCreatureDefinitions()
        {
            creatureDefinitions = new Dictionary <int, CreatureDefinition>();

            ResourceDataFile fileReader = new ResourceDataFile(@"Data/Creature");
            int creatureCount           = fileReader.ReadInt();

            for (int i = 0; i < creatureCount; i++)
            {
                CreatureDefinition def = CreatureDefinition.ReadFromFile(fileReader);
                creatureDefinitions[def.DefinitionId] = def;
            }

            creatureBaseDefinitions = new Dictionary <int, CreatureDefinition>();

            ResourceDataFile fileReader2 = new ResourceDataFile(@"Data/LeveledCreature");
            int creatureBaseCount        = fileReader2.ReadInt();

            for (int i = 0; i < creatureBaseCount; i++)
            {
                CreatureDefinition def = CreatureDefinition.ReadBaseFromFile(fileReader2);
                creatureBaseDefinitions[def.DefinitionId] = def;
            }
        }
Пример #27
0
        public static CreatureDefinition ReadFromFile(ResourceDataFile reader)
        {
            CreatureDefinition definition = new CreatureDefinition();

            definition.DefinitionId = reader.ReadInt();
            definition.AnimationId  = definition.DefinitionId % 1000;
            definition.Name         = ""; // TODO: Localize
            definition.Race         = reader.ReadInt();
            definition.Occupation   = reader.ReadInt();
            definition.InitialLevel = reader.ReadInt();
            definition.InitialAp    = reader.ReadInt();
            definition.InitialDp    = reader.ReadInt();
            definition.InitialDx    = reader.ReadInt();
            definition.InitialHp    = reader.ReadInt();
            definition.InitialMp    = reader.ReadInt();
            definition.InitialMv    = reader.ReadInt();
            definition.InitialEx    = reader.ReadInt();

            int itemCount = reader.ReadInt();

            for (int i = 0; i < itemCount; i++)
            {
                int itemId = reader.ReadInt();
                definition.Items.Add(itemId);
            }

            int magicCount = reader.ReadInt();

            for (int i = 0; i < magicCount; i++)
            {
                int magicId = reader.ReadInt();
                definition.Magics.Add(magicId);
            }

            return(definition);
        }