Exemple #1
0
 public MagicAttackAnimationInfo(string AnimationName, MagicSpell Owner, ProjectileContext GlobalContext, SharedProjectileParams SharedParams)
     : base(AnimationName)
 {
     this.Owner         = Owner;
     this.GlobalContext = GlobalContext;
     this.SharedParams  = SharedParams;
 }
Exemple #2
0
 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);
        }
Exemple #4
0
        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();
        }
Exemple #9
0
 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();
        }
Exemple #11
0
        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();
        }
Exemple #12
0
 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);
        }
Exemple #14
0
 public MagicTimelineEndHitAnimation(AnimationClass Owner, MagicSpell ActiveSpell, ProjectileContext GlobalContext, SharedProjectileParams SharedParams)
     : base(ActiveSpell, GlobalContext, SharedParams)
 {
     this.Owner = Owner;
 }