internal static Move[] GetMoveset(UserAccount avatar)
        {
            List <Move> moves = new List <Move> {
                new Attack(), new Defend()
            };

            string[] moveNames = GetClass(avatar).Movepool;

            foreach (string s in moveNames)
            {
                Move m = PsynergyDatabase.GetPsynergy(s);
                moves.Add(m);
            }

            var classSeries = AdeptClassSeriesManager.GetClassSeries(avatar);
            var gear        = avatar.Inv.GetGear(classSeries.Archtype);

            if (gear.HasItem(ItemCategory.Weapon))
            {
                moves.Where(m => m is Attack).First().emote = gear.GetItem(ItemCategory.Weapon).Icon;
            }
            if (gear.HasItem(ItemCategory.ArmWear))
            {
                moves.Where(m => m is Defend).First().emote = gear.GetItem(ItemCategory.ArmWear).Icon;
            }
            return(moves.ToArray());
        }
예제 #2
0
        public static void TakeDjinn(UserAccount user, params string[] Names)
        {
            var userDjinn   = user.DjinnPocket;
            var userclass   = AdeptClassSeriesManager.GetClassSeries(user);
            var chosenDjinn = Names
                              .Select(n => userDjinn.GetDjinn(n))
                              .OfElement(userclass.Elements)
                              .Take(DjinnPocket.MaxDjinn)
                              .ToList();

            chosenDjinn.ForEach(d =>
            {
                userDjinn.djinn.Remove(d);
                userDjinn.djinn      = userDjinn.djinn.Prepend(d).ToList();
                userDjinn.DjinnSetup = userDjinn.DjinnSetup.Prepend(d.Element).ToList();
            });
            userDjinn.DjinnSetup = userDjinn.DjinnSetup.Take(2).ToList();
        }
        internal static ElementalStats GetElStats(UserAccount User)
        {
            var classSeries = AdeptClassSeriesManager.GetClassSeries(User);
            var els         = GetClassSeries(User).Elstats;

            switch (User.Element)
            {
            case Psynergy.Element.Venus:
                els += new ElementalStats()
                {
                    VenusAtk = 10, VenusRes = 15, MarsAtk = 5, MarsRes = 5, JupiterAtk = -10, JupiterRes = -15
                }; break;

            case Psynergy.Element.Mars:
                els += new ElementalStats()
                {
                    VenusAtk = 5, VenusRes = 5, MarsAtk = 10, MarsRes = 15, MercuryAtk = -10, MercuryRes = -15
                }; break;

            case Psynergy.Element.Jupiter:
                els += new ElementalStats()
                {
                    VenusAtk = -10, VenusRes = -15, JupiterAtk = 10, JupiterRes = 15, MercuryAtk = 5, MercuryRes = 5
                }; break;

            case Psynergy.Element.Mercury:
                els += new ElementalStats()
                {
                    MarsAtk = -10, MarsRes = -15, JupiterAtk = 5, JupiterRes = 5, MercuryAtk = 10, MercuryRes = 15
                }; break;
            }
            var gear = User.Inv.GetGear(classSeries.Archtype);

            gear.ForEach(g =>
            {
                els += g.AddElStatsOnEquip;
            });
            return(els);
        }