public UnitMagic() : base(null) { ArrayCharacterActive = new Core.Characters.Character[0]; ListMagicSpell = new List <MagicSpell>(); GlobalProjectileContext = new ProjectileContext(); MagicProjectileParams = new ProjectileParams(GlobalProjectileContext); GlobalMagicContext = new MagicUserContext(); MagicParams = new MagicUserParams(GlobalMagicContext); }
public UnitMagic(string Name, ContentManager Content, BattleMap Map, Dictionary <string, Unit> DicUnitType, Dictionary <string, BaseSkillRequirement> DicRequirement, Dictionary <string, BaseEffect> DicEffect) : base(Name) { this.Map = Map; ArrayCharacterActive = new Core.Characters.Character[0]; ListMagicSpell = new List <MagicSpell>(); GlobalProjectileContext = new ProjectileContext(); MagicProjectileParams = new ProjectileParams(GlobalProjectileContext); GlobalMagicContext = new MagicUserContext(); MagicParams = new MagicUserParams(GlobalMagicContext); Dictionary <string, MagicElement> DicMagicElement = MagicElement.LoadRegularCore(MagicParams); foreach (KeyValuePair <string, MagicElement> ActiveMagicElement in MagicElement.LoadProjectileCores(MagicParams, MagicProjectileParams)) { DicMagicElement.Add(ActiveMagicElement.Key, ActiveMagicElement.Value); } foreach (KeyValuePair <string, MagicElement> ActiveMagicElement in MagicElement.LoadElements(MagicParams)) { DicMagicElement.Add(ActiveMagicElement.Key, ActiveMagicElement.Value); } FileStream FS = new FileStream("Content/Units/Magic/" + Name + ".peu", FileMode.Open, FileAccess.Read); BinaryReader BR = new BinaryReader(FS, Encoding.UTF8); BR.BaseStream.Seek(0, SeekOrigin.Begin); OriginalUnitName = BR.ReadString(); if (!string.IsNullOrEmpty(OriginalUnitName) && DicUnitType != null) { OriginalUnit = Unit.FromFullName(OriginalUnitName, Content, DicUnitType, DicRequirement, DicEffect); _UnitStat = OriginalUnit.UnitStat; } int ListMagicSpellCount = BR.ReadInt32(); ListMagicSpell = new List <MagicSpell>(ListMagicSpellCount); for (int S = 0; S < ListMagicSpellCount; ++S) { ListMagicSpell.Add(new MagicSpell(BR.ReadString(), this, GlobalMagicContext, DicMagicElement)); } if (Content != null) { string UnitDirectory = Path.GetDirectoryName("Content\\Units\\Normal\\" + Name); string XNADirectory = UnitDirectory.Substring(8); if (File.Exists(UnitDirectory + "\\Map Sprite\\" + Name + ".xnb")) { SpriteMap = Content.Load <Texture2D>(XNADirectory + "\\Map Sprite\\" + this.FullName); } else { SpriteMap = Content.Load <Texture2D>("Units/Default"); } if (File.Exists(UnitDirectory + "\\Unit Sprite\\" + Name + ".xnb")) { SpriteUnit = Content.Load <Texture2D>(XNADirectory + "\\Unit Sprite\\" + this.FullName); } } FS.Close(); BR.Close(); }