예제 #1
0
        }                       // set player reference

        /// <summary>
        /// Called on equipment update
        /// </summary>
        /// <param name="op">Operation (SET/UPDATE/REMOVE...)</param>
        /// <param name="key">Equipment slot</param>
        /// <param name="item">Item data</param>
        public static void OnEquipmentUpdate(SyncIDictionary <EquipmentSlot, ItemData> .Operation op, EquipmentSlot key, ItemData item)
        {
            switch (op)
            {
            case SyncIDictionary <EquipmentSlot, ItemData> .Operation.OP_SET:
            case SyncIDictionary <EquipmentSlot, ItemData> .Operation.OP_ADD:
                Equipment equipment = (Equipment)ObjectDatabase.GetItem(item.ID);
                if (equipment)
                {
                    Instance.SetIcon(key, equipment.icon);
                }
                break;

            case SyncIDictionary <EquipmentSlot, ItemData> .Operation.OP_REMOVE:
                Instance.SetIcon(key, null);
                break;
            }
        }
        public void ServerFireAtTarget(uint attackerEntityID, uint targetEntityID, short weaponID, bool rotateToTarget = true)
        {
            Weapon weapon = ObjectDatabase.GetWeapon(weaponID);

            if (weapon)
            {
                Entity targetEntity   = ObjectDatabase.GetEntity(targetEntityID);
                Entity attackerEntity = ObjectDatabase.GetEntity(attackerEntityID);

                if (!targetEntity || !attackerEntity)
                {
                    return;
                }

                // bullet
                RpcFireAtTarget(attackerEntityID, targetEntityID, weaponID, rotateToTarget);

                GameObject bullet = Instantiate(weapon.bulletPrefab, attackerEntity.transform.position, Quaternion.identity);

                BulletController bulletController = bullet.GetComponent <BulletController>();
                bulletController.ServerSetTarget(targetEntity.transform, weapon.bulletSpeed, weapon.Damage, attackerEntityID, targetEntityID);
            }
        }