Пример #1
0
        private void UnEquipItem(MessageTemplate template, NetIncomingMessage message)
        {
            int index = -1;

            try
            {
                int.TryParse(template.JsonMessage, out index);
            }
            catch
            { }

            if (index != -1)
            {
                CharacterPlayer character = MapContainer.FindCharacterByID(message.SenderConnection.RemoteUniqueIdentifier);
                WeaponItem      newItem   = character.GetInventory().ElementAt(index);
                if (newItem != null)
                {
                    int        type        = (int)newItem.GetEqupmentType();
                    WeaponItem currentItem = character.Equipment[type];

                    if (currentItem == null)
                    {
                        character.Inventory[index] = null;
                    }
                    else
                    {
                        character.Inventory[index] = currentItem;
                    }

                    character.Equipment[type] = newItem;
                }
            }
        }
Пример #2
0
        private void DamageTarget(NetIncomingMessage message, MessageTemplate template)
        {
            CharacterPlayer character = MapContainer.FindCharacterByID(message.SenderConnection.RemoteUniqueIdentifier);
            AbilityHead     abi       = AbilityContainer.GetAbilityByName(template.JsonMessage);
            Entity          entity    = Scene.FindEntity(character._name);
            PlayerComponent pcomp     = entity.GetComponent <PlayerComponent>();

            if (pcomp != null && abi != null && pcomp.Target != null)
            {
                pcomp.Target.GetComponent <DamageComponent>().DealDamageToEntity(abi.BaseDamage);
            }
        }
Пример #3
0
        private void TargetPlayer(NetIncomingMessage message, MessageTemplate template)
        {
            CharacterPlayer character = MapContainer.FindCharacterByID(message.SenderConnection.RemoteUniqueIdentifier);
            Entity          entity    = Scene.FindEntity(character._name);
            var             et        = Scene.FindEntity(template.JsonMessage);
            PlayerComponent p         = entity.GetComponent <PlayerComponent>();

            if (template.JsonMessage != "")
            {
                p.Target = et;
            }
            else
            {
                p.Target = null;
            }
        }
Пример #4
0
        private void Movement(MessageTemplate template, NetIncomingMessage message)
        {
            Keys[]          KeyState  = Newtonsoft.Json.JsonConvert.DeserializeObject <Keys[]>(template.JsonMessage, new StringEnumConverter());
            CharacterPlayer character = MapContainer.FindCharacterByID(message.SenderConnection.RemoteUniqueIdentifier);
            bool            moved     = InputManager.CalculateMovement(character, KeyState, message.SenderConnection.RemoteUniqueIdentifier);

            if (moved)
            {
                Entity entity = Scene.FindEntity(character._name);
                if (entity != null)
                {
                    PlayerComponent playerComponent = entity.GetComponent <PlayerComponent>();
                    if (playerComponent != null)
                    {
                        playerComponent.isChanneling = false;
                    }
                }
            }
        }
Пример #5
0
        private void UnEquipItem(CharacterPlayer character, NetIncomingMessage message, MessageTemplate template)
        {
            character = MapContainer.FindCharacterByID(message.SenderConnection.RemoteUniqueIdentifier);
            var inventory = character.GetInventory();
            var equpment  = character.GetEquipment();
            int invIndex  = Array.FindIndex(inventory, i => i == null);
            int index     = -1;

            try
            {
                int.TryParse(template.JsonMessage, out index);
            }
            catch (Exception)
            {
            }
            if (invIndex != -1)
            {
                inventory[invIndex] = equpment[index];
                equpment[index]     = null;
            }
        }
Пример #6
0
        private void StartChanneling(MessageTemplate template, NetIncomingMessage message)
        {
            ChannelTemplate ct = Newtonsoft.Json.JsonConvert.DeserializeObject <ChannelTemplate>(template.JsonMessage);

            if (ct.ChannelType.Equals(ChannelType.Ability))
            {
                AbilityHead     ability   = AbilityContainer.GetAbilityByName(ct.ChannelName);
                CharacterPlayer character = MapContainer.FindCharacterByID(message.SenderConnection.RemoteUniqueIdentifier);
                Entity          entity    = Scene.FindEntity(character._name);
                PlayerComponent pc        = entity.GetComponent <PlayerComponent>();
                if (pc != null && !pc.isChanneling)
                {
                    if (ability != null)
                    {
                        entity.AddComponent(new DamageChannelingComponent(pc, ability.ChannelTime, ability));
                    }
                    else
                    {
                        entity.AddComponent(new ChannelingComponent(pc, 4));
                    }
                }
            }
        }