Esempio n. 1
0
        public static void ShareExp(YiObj attacker, YiObj target, uint bonus)
        {
            if (!Teams.ContainsKey(attacker.UniqueId))
            {
                return;
            }

            foreach (var member in Teams[attacker.UniqueId].Members.Values)
            {
                if (!Position.CanSeeBig(attacker, member))
                {
                    continue;
                }

                var exp = AttackCalcs.AdjustExp((int)bonus, attacker, target);

                if (exp > member.Level * 360)
                {
                    exp = (uint)(member.Level * 360);
                }

                if (member.Partner == attacker.Name)
                {
                    exp *= 2;
                }

                if (member.Class >= 133 && member.Class <= 135)
                {
                    exp *= 2;
                }

                //exp = (uint)Math.Round(exp*GameWorld.Maps[attacker.MapId].ExpModifier);

                (member as Player)?.Send(MsgText.Create("TeamData", member.Name, $"You've been awarded {exp} experience!", MsgTextType.Top));
                member.Experience += exp;
            }
        }