public MagicAttackAnimationInfo(string AnimationName, MagicSpell Owner, ProjectileContext GlobalContext, SharedProjectileParams SharedParams) : base(AnimationName) { this.Owner = Owner; this.GlobalContext = GlobalContext; this.SharedParams = SharedParams; }
public ActionPanelSpellEditor(ActionPanelHolder ListActionMenuChoice, MagicSpell ActiveSpell, ProjectileContext GlobalProjectileContext, SharedProjectileParams SharedParams) : base(ActiveSpell.Name, ListActionMenuChoice, true) { this.ActiveSpell = ActiveSpell; this.GlobalProjectileContext = GlobalProjectileContext; this.SharedParams = SharedParams; }
public void TestMagicUnit() { List <MagicSpell> ListMagicSpell = new List <MagicSpell>(); UnitMagic ActiveUser = new UnitMagic("Dummy Magic", ListMagicSpell); MagicSpell ActiveSpell = new MagicSpell(ActiveUser, ActiveUser); MagicUserParams Params = new MagicUserParams(ActiveSpell.GlobalContext); ProjectileContext GlobalContext = new ProjectileContext(); ProjectileParams MagicProjectileParams = new ProjectileParams(GlobalContext); GlobalContext.OwnerSandbox = Sandbox; MagicSpell FireballSpell = new MagicSpell(ActiveUser); ListMagicSpell.Add(FireballSpell); MagicCoreFireball FireballCore1 = new MagicCoreFireball(Params, MagicProjectileParams); FireballCore1.ListLinkedMagicElement.Add(new ChannelExternalManaSource(Params)); FireballCore1.ListLinkedMagicElement.Add(new TriggerAfterTimeEllapsed(Params, 5)); FireballSpell.ListMagicCore.Add(FireballCore1); ActiveUser.Init(); Assert.AreEqual(1, ActiveUser.ListAttack.Count); }
public void Init(string Name) { ProjectileContext GlobalProjectileContext = new ProjectileContext(); ProjectileParams MagicProjectileParams = new ProjectileParams(GlobalProjectileContext); MagicUserContext GlobalMagicContext = new MagicUserContext(); MagicUserParams 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); } ActiveSpell = new MagicSpell(Name, null, GlobalMagicContext, DicMagicElement); ActiveMagicEditor = new MagicEditor(ActiveSpell, GlobalProjectileContext, MagicProjectileParams.SharedParams); ActiveMagicEditor.Content = new ContentManager(Services); ActiveMagicEditor.Content.RootDirectory = "Content"; Services.AddService(GraphicsDevice); ActiveMagicEditor.Load(); }
public MagicTimeline(MagicSpell ActiveSpell, ProjectileContext GlobalContext, SharedProjectileParams SharedParams) : this() { this.ActiveSpell = ActiveSpell; this.GlobalContext = GlobalContext; this.SharedParams = SharedParams; GlobalContext.OwnerSandbox = this; this.ActiveSpell.ComputeSpell(); }
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 void TestMagicSanbox() { List <MagicSpell> ListMagicSpell = new List <MagicSpell>(); UnitMagic ActiveUser = new UnitMagic("Dummy Magic", ListMagicSpell); Character DummyCharacter = new Character(); DummyCharacter.Name = "Dummy Pilot"; DummyCharacter.Level = 1; DummyCharacter.ArrayLevelMEL = new int[1] { 100 }; DummyCharacter.ArrayLevelRNG = new int[1] { 100 }; DummyCharacter.ArrayLevelDEF = new int[1] { 100 }; DummyCharacter.ArrayLevelSKL = new int[1] { 100 }; DummyCharacter.ArrayLevelEVA = new int[1] { 100 }; DummyCharacter.ArrayLevelHIT = new int[1] { 200 }; DummyCharacter.ArrayLevelMaxSP = new int[1] { 50 }; ActiveUser.ArrayCharacterActive = new Character[1] { DummyCharacter }; ActiveUser.ChanneledMana = 1000; MagicSpell ActiveSpell = new MagicSpell(ActiveUser, ActiveUser); MagicUserParams MagicParams = new MagicUserParams(ActiveSpell.GlobalContext); ProjectileContext GlobalContext = new ProjectileContext(); ProjectileParams MagicProjectileParams = new ProjectileParams(GlobalContext); GlobalContext.OwnerSandbox = Sandbox; MagicSpell FireballSpell = new MagicSpell(ActiveUser); ListMagicSpell.Add(FireballSpell); MagicCoreFireball FireballCore1 = new MagicCoreFireball(MagicParams, MagicProjectileParams); FireballSpell.ListMagicCore.Add(FireballCore1); ActiveUser.Init(); FireballSpell.ComputeSpell()[0].AddSkillEffectsToTarget(""); Assert.AreEqual(1, Sandbox.ListProjectile.Count); }
public MagicEditor(MagicSpell ActiveMagicSpell, ProjectileContext GlobalProjectileContext, ProjectileParams.SharedProjectileParams SharedParams) { this.ActiveMagicSpell = ActiveMagicSpell; this.GlobalProjectileContext = GlobalProjectileContext; this.SharedParams = SharedParams; ZoomLevel = 1f; SelectionRadius = 10; MagicElementSelected = null; ListMagicElement = new List <MagicElement>(); ListMagicElement.AddRange(ActiveMagicSpell.ListMagicCore); ListActionMenuChoice = new ActionPanelHolder(); }
void SetupVars() { fsm = new Diagram(); context = GetComponent<ProjectileContext>(); fsm.SetContext(context); // Conditions If_HittingTarget = new If_CloserThan().SetFloat(0.2f); // If_HittingTarget.SetFloat(0.2f); // Actions Do_Follow = new Do_Follow(); Do_FaceTarget = new Do_FaceTarget(); Do_Damage = new Do_Damage(); Do_Destroy = new Do_Destroy(); }
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(); }
public MagicPreviewerPanel(ContentManager Content, MagicSpell ActiveMagicSpell, ActionPanelHolder ListActionMenuChoice, ProjectileContext GlobalProjectileContext, SharedProjectileParams SharedParams, Vector2 UserPosition, Rectangle EnemyBounds) : base("Previewer", ListActionMenuChoice, true) { sprPixel = Content.Load <Texture2D>("pixel"); ListProjectile = new List <Projectile>(); Vector2[] SandboxPoints = new Vector2[4] { new Vector2(0, 0), new Vector2(0, Constants.Height), new Vector2(Constants.Width, Constants.Height), new Vector2(Constants.Width, 0), }; SandboxCollisionBox = new Polygon(SandboxPoints, Constants.Width, Constants.Height); Vector2[] EnemyPoints = new Vector2[4] { new Vector2(EnemyBounds.X, EnemyBounds.Y), new Vector2(EnemyBounds.X, EnemyBounds.Bottom), new Vector2(EnemyBounds.Right, EnemyBounds.Bottom), new Vector2(EnemyBounds.Right, EnemyBounds.Y), }; EnemyCollisionBox = new Polygon(EnemyPoints, Constants.Width, Constants.Height); MagicUser ActiveUser = new MagicUser(); ActiveUser.ManaReserves = 1000; ActiveUser.CurrentMana = 100; SharedParams.OwnerPosition = UserPosition; GlobalProjectileContext.OwnerSandbox = this; MagicSpell NewSpell = new MagicSpell(ActiveMagicSpell, ActiveUser); ListMagicSpell = NewSpell.ComputeSpell(); }
public MagicPreviewerPanel(ContentManager Content, MagicSpell ActiveMagicSpell, ActionPanelHolder ListActionMenuChoice, ProjectileContext GlobalProjectileContext, SharedProjectileParams SharedParams) : this(Content, ActiveMagicSpell, ListActionMenuChoice, GlobalProjectileContext, SharedParams, new Vector2(Constants.Width - 50, Constants.Height / 2), new Rectangle(50, Constants.Height / 2, 100, 100)) { }
public void TestMagicSanboxSimulation() { List <MagicSpell> ListMagicSpell = new List <MagicSpell>(); UnitMagic ActiveUser = new UnitMagic("Dummy Magic", ListMagicSpell); Character DummyCharacter = new Character(); DummyCharacter.Name = "Dummy Pilot"; DummyCharacter.Level = 1; DummyCharacter.ArrayLevelMEL = new int[1] { 100 }; DummyCharacter.ArrayLevelRNG = new int[1] { 100 }; DummyCharacter.ArrayLevelDEF = new int[1] { 100 }; DummyCharacter.ArrayLevelSKL = new int[1] { 100 }; DummyCharacter.ArrayLevelEVA = new int[1] { 100 }; DummyCharacter.ArrayLevelHIT = new int[1] { 200 }; DummyCharacter.ArrayLevelMaxSP = new int[1] { 50 }; ActiveUser.ArrayCharacterActive = new Character[1] { DummyCharacter }; ActiveUser.ChanneledMana = 1000; MagicSpell ActiveSpell = new MagicSpell(ActiveUser, ActiveUser); MagicUserParams Params = new MagicUserParams(ActiveSpell.GlobalContext); ProjectileContext GlobalContext = new ProjectileContext(); ProjectileParams MagicProjectileParams = new ProjectileParams(GlobalContext); GlobalContext.OwnerSandbox = Sandbox; ListMagicSpell.Add(ActiveSpell); MagicCoreFireball FireballCore1 = new MagicCoreFireball(Params, MagicProjectileParams); FireballCore1.ListLinkedMagicElement.Add(new ChannelExternalManaSource(Params)); FireballCore1.ListLinkedMagicElement.Add(new TriggerAfterTimeEllapsed(Params, 5)); MagicCoreFireball FireballCore2 = new MagicCoreFireball(Params, MagicProjectileParams); FireballCore2.ListLinkedMagicElement.Add(new ChannelInternalManaSource(Params)); FireballCore2.ListLinkedMagicElement.Add(new TriggerAfterTimeEllapsed(Params, 5)); MagicCoreFireball FireballCore3 = new MagicCoreFireball(Params, MagicProjectileParams); FireballCore3.ListLinkedMagicElement.Add(new ChannelInternalManaSource(Params)); FireballCore3.ListLinkedMagicElement.Add(new TriggerAfterTimeEllapsed(Params, 5)); FireballCore1.ListLinkedMagicElement.Add(FireballCore2); FireballCore1.ListLinkedMagicElement.Add(FireballCore3); ActiveSpell.ListMagicCore.Add(FireballCore1); ActiveUser.Init(); List <Core.Item.BaseAutomaticSkill> ListAttackAttribute = ListMagicSpell[0].ComputeSpell(); CreateFireballEffect FireballEffect = (CreateFireballEffect)ListAttackAttribute[0].CurrentSkillLevel.ListActivation[1].ListEffect[0]; FireballEffect.ChanneledMana = 2000; Constants.TotalGameTime = 10; Sandbox.SimulateAttack(ListAttackAttribute); Assert.AreEqual(10, Constants.TotalGameTime); Assert.AreEqual(15, Sandbox.TotalDamage); }
public MagicTimelineEndHitAnimation(AnimationClass Owner, MagicSpell ActiveSpell, ProjectileContext GlobalContext, SharedProjectileParams SharedParams) : base(ActiveSpell, GlobalContext, SharedParams) { this.Owner = Owner; }