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 MoneyItemDefinition ReadFromFile(ResourceDataFile fileReader) { MoneyItemDefinition def = new MoneyItemDefinition(); def.ItemId = fileReader.ReadInt(); def.Amount = fileReader.ReadInt(); return(def); }
public static SpecialItemDefinition ReadFromFile(ResourceDataFile fileReader) { SpecialItemDefinition def = new SpecialItemDefinition(); def.ItemId = fileReader.ReadInt(); def.Price = fileReader.ReadInt(); def.SellPrice = fileReader.ReadInt(); return(def); }
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); }
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); }
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); }
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); }
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; } }
/// <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); }
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; } }
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; } }
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; } }
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); }
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); }
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; } }
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; } }
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); }
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); }
/// <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); }
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); }
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); }
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; } }
/// <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); }
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); }