示例#1
0
    public static Character CreateSpecificCharacter(CharacterData cd)
    {
        Character temp;

        switch (cd.characterProfession)
        {
        case Character.Profession.warrior:
            temp = new Warrior();
            break;

        case Character.Profession.rogue:
            temp = new Rogue();
            break;

        case Character.Profession.blackmage:
            temp = new BlackMage();
            break;

        case Character.Profession.whitemage:
            temp = new WhiteMage();
            break;

        default:
            temp = new Rogue();
            break;
        }
        temp.Initialize(cd);
        return(temp);
    }
        public void Test_BlackMage()
        {
            BlackMage blackMage = new BlackMage();
            WhiteMage enemy     = new WhiteMage();

            enemy.CastCure();
            enemy.CastCure();
            Assert.True(blackMage.W_Attack(enemy));
            Assert.True(blackMage.M_Attack(2, enemy));
            Assert.True(blackMage.M_Attack(3, enemy));
            Assert.True(blackMage.M_Attack(4, enemy));
        }
示例#3
0
        public void LoadJobClass()
        {
            switch (fface.Player.MainJob)
            {
            case Job.THF:
                job = new Thief(fface, Content.Voidwatch);
                break;

            case Job.PLD:
                job = new Paladin(fface, Content.Voidwatch);
                break;

            case Job.BLU:
                job = new BlueMage(fface, Content.Voidwatch);
                break;

            case Job.WHM:
                job = new WhiteMage(fface, Content.Voidwatch);
                break;

            case Job.GEO:
                job = new Geomancer(fface, Content.Voidwatch);
                break;

            case Job.BRD:
                job = new Bard(fface, Content.Voidwatch);
                break;

            case Job.RNG:
                job = new Ranger(fface, Content.Voidwatch);
                break;

            case Job.RUN:
                job = new RuneFencer(fface, Content.Voidwatch);
                break;

            case Job.BLM:
                job = new BlackMage(fface, Content.Voidwatch);
                break;

            case Job.RDM:
                job = new RedMage(fface, Content.Voidwatch);
                break;
            }
        }
示例#4
0
        public static async Task <bool> TrackSpellCast()
        {
            // Manage SpellCastHistory entries
            if (SpellCastHistory.Count > 20)
            {
                SpellCastHistory.Remove(SpellCastHistory.Last());

                if (BaseSettings.Instance.DebugSpellCastHistory)
                {
                    Application.Current.Dispatcher.Invoke(delegate { Debug.Instance.SpellCastHistory = new List <SpellCastHistoryItem>(SpellCastHistory); });
                }
            }

            // If we're not casting we can return false to keep going down the tree
            if (!Core.Me.IsCasting)
            {
                return(false);
            }

            // The possibility here is that we're teleporting (casting)
            // So if the timer isn't running, it means Magitek didn't cast it, and the cast shouldn't be monitored
            if (!CastingTime.IsRunning)
            {
                return(false);
            }

            await GambitLogic.ToastGambits();

            #region Debug and Target Checks

            if (BaseSettings.Instance.DebugPlayerCasting)
            {
                Debug.Instance.CastingTime = CastingTime.ElapsedMilliseconds.ToString();
            }

            #endregion

            #region Interrupt Casting Checks
            if (CastingGambit)
            {
                return(true);
            }

            if (!SpellTarget.IsTargetable)
            {
                await CancelCast("Target is no Longer Targetable");
            }

            if (!SpellTarget.IsValid)
            {
                await CancelCast("Target is no Longer Valid");
            }

            if (await GambitLogic.InterruptCast())
            {
                await CancelCast();

                return(true);
            }

            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (RotationManager.CurrentRotation)
            {
            case ClassJobType.BlueMage:
            {
                if (BlueMage.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.Scholar:
            {
                if (Scholar.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.Arcanist:
            {
                if (Scholar.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.WhiteMage:
            {
                if (WhiteMage.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.Conjurer:
            {
                if (WhiteMage.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.Astrologian:
            {
                if (Astrologian.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.Summoner:
            {
                if (Summoner.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.BlackMage:
            {
                if (BlackMage.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }

            case ClassJobType.Sage:
            {
                if (Sage.NeedToInterruptCast())
                {
                    await CancelCast();
                }
                break;
            }
            }

            #endregion

            return(true);
        }
示例#5
0
 public override void Awake()
 {
     base.Awake();
     instance = this;
 }
示例#6
0
 public static void FillHeroes()
 {
     HeroesOfPlayer = new Hero.Hero[3];
     HeroesOfPlayer[0] = new Fighter(200, 100, 20);
     HeroesOfPlayer[1] = new BlackMage(150, 10, 20, 400, 100);
     HeroesOfPlayer[2] = new WhiteMage(150, 10, 20, 400, 100);
 }