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);
        }
Пример #2
0
        public Unit CreateDummyUnit()
        {
            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
            };
            DummyCharacter.Init();

            List <MagicSpell> ListMagicSpell = new List <MagicSpell>();
            UnitMagic         DummyUnit      = new UnitMagic(ListMagicSpell);

            ListMagicSpell.Add(CreateFireball(DummyUnit, DummyUnit.MagicProjectileParams));

            DummyUnit.FullName    = "Dummy Unit";
            DummyUnit.MaxHP       = 10000;
            DummyUnit.MaxEN       = 200;
            DummyUnit.Armor       = 100;
            DummyUnit.Mobility    = 50;
            DummyUnit.MaxMovement = 5;
            Attack DummyAttack = new Attack("Dummy Attack", string.Empty, 0, "10000", 0, 5, WeaponPrimaryProperty.None,
                                            WeaponSecondaryProperty.PostMovement, 10, 0, 6, 1, 100, "Laser",
                                            new Dictionary <string, char>()
            {
                { "Air", 'S' }, { "Land", 'S' }, { "Sea", 'S' }, { "Space", 'S' }
            });

            DummyUnit.ArrayCharacterActive = new Character[1] {
                DummyCharacter
            };
            DummyUnit.ListAttack.Add(DummyAttack);
            DummyUnit.AttackIndex = 0;
            DummyUnit.UnitStat.DicTerrainValue.Add("Air", 1);
            DummyUnit.UnitStat.DicTerrainValue.Add("Land", 1);
            DummyUnit.UnitStat.DicTerrainValue.Add("Sea", 1);
            DummyUnit.UnitStat.DicTerrainValue.Add("Space", 1);

            return(DummyUnit);
        }
Пример #3
0
        private void LoadUnit(string UnitPath)
        {
            string    Name    = UnitPath.Substring(0, UnitPath.Length - 4).Substring(20);
            UnitMagic NewUnit = new UnitMagic(Name, null, DicUnitType, DicRequirement, DicEffect, DicAutomaticSkillTarget);

            txtOriginalUnit.Text = NewUnit.OriginalUnitName;

            for (int S = 0; S < NewUnit.ListMagicSpell.Count; ++S)
            {
                lstSpells.Items.Add(NewUnit.ListMagicSpell[S].Name);
            }
        }
        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);
        }
        private MagicSpell CreateFireball(UnitMagic ActiveUser, ProjectileParams MagicProjectileParams)
        {
            MagicSpell      ActiveSpell = new MagicSpell(ActiveUser, ActiveUser);
            MagicUserParams Params      = new MagicUserParams(ActiveSpell.GlobalContext);

            MagicCoreFireball FireballCore1 = (MagicCoreFireball) new MagicCoreFireball(Params, MagicProjectileParams).Copy();

            FireballCore1.ListLinkedMagicElement.Add(new ChannelExternalManaSource(Params).Copy());

            ActiveSpell.ListMagicCore.Add(FireballCore1);

            return(ActiveSpell);
        }
        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);
        }