示例#1
0
        public Test()
        {
            EquipmentInventory i = new EquipmentInventory();

            Items.Equipment item = new Items.Equipment("armor_1", "test", EquipSlot.ARMOR);
            i.Add(item); // success
        }
    public virtual IEnumerator ReloadEnum(EquipmentInventory myWeaponManager)
    {
        // do nothing
        yield return(null);

        while (counter <= reloadTime && counter > 0)
        {
            counter -= Time.deltaTime;
            //Debug.Log("reloading" + counter);
            if (Input.GetButtonDown("Fire1"))
            {
                counter = 0;
                StopCoroutine(ReloadEnum(null));
            }
            else if (counter <= 0)
            {
                //throws out all ammo in the gun
                if (ammoMax > myWeaponManager.AmmoBackpack[(int)myAmmoType])
                {
                    ammo = myWeaponManager.AmmoBackpack[(int)myAmmoType];
                    myWeaponManager.AmmoBackpack[(int)myAmmoType] = 0;
                }
                else
                {
                    myWeaponManager.AmmoBackpack[(int)myAmmoType] -= ammoMax;
                    ammo = ammoMax;
                }
                Debug.Log("RELOADED");
            }
            yield return(null);
        }
    }
示例#3
0
    public void equipment_selected(TMP_Dropdown d)
    {
        selecting = true;
        string e = d.captionText.text;

        EquipmentInventory ei = TurnPhaser.I.active_disc.equipment_inventory;

        // Undo the selection, the same equipment cannot be worn more than once,
        // and only one of a type can be worn at once.
        if (ei.has_equipped(e) || ei.get_equipment_amount(e) > 1)
        {
            if (ei.equipment_slots[dropdowns[d]].full)
            {
                string name = ei.equipment_slots[dropdowns[d]].equipment.name;
                d.value = d.options.FindIndex(option => option.text == name);
            }
            else
            {
                d.value = d.options.FindIndex(option => option.text == "Empty");
            }
            return;
        }
        // Unequip existing worn item.
        if (ei.equipment_slots[dropdowns[d]].full)
        {
            ei.unequip(dropdowns[d]);
        }
        hide_equipment_descriptionP();
        ei.equip(e, dropdowns[d]);
    }
示例#4
0
    public void load_discipline(Discipline disc)
    {
        EquipmentInventory ei = disc.equipment_inventory;

        unlock_slots(ei);
        fill_dropdowns(ei);
    }
    public virtual IEnumerator FireEnum(GameObject myWeapon, Camera myCamera, EquipmentInventory myInventory)
    {
        if (ammo > 0)
        {
            counter = rateOfFire;
            RaycastHit hit;
            if (Physics.Raycast(myWeapon.transform.position, myWeapon.transform.forward, out hit, range))
            {
                // damage target or create decal or whatever.
                Debug.Log(hit.transform.name);
            }
            BulletTrail = ObjectPoolingManager.Instance.GetObject("bullet");
            BulletTrail.SetActive(true);
            BulletTrail.GetComponent <MusselEffect>().SetPositions(myWeapon.transform.position, hit.point);
            ammo--;
            ApplyRecoil(myWeapon);
            //ApplyRecoil(myCamera.gameObject);
        }
        else
        {
            Debug.Log("weapon empty");
            Reload(myInventory);
            //Click empty
        }
        yield return(null);

        while (counter <= rateOfFire && counter > 0)
        {
            counter -= Time.deltaTime;
            //Debug.Log("weapon not ready: "+counter.ToString());
            yield return(null);
        }
    }
示例#6
0
 public Inventory()
 {
     this.keys               = 0;
     this.gold               = 0;
     this.potions            = 0;
     this.equipmentInventory = new EquipmentInventory();
     this.EquipmentInventory = equipmentInventory.AsReadOnly();
 }
示例#7
0
 public void fill_dropdowns(EquipmentInventory ei)
 {
     foreach (TMP_Dropdown d in dropdowns.Keys)
     {
         fill_dropdown(d, ei);
         select_equipped(ei);
     }
 }
示例#8
0
 public void load_equipment_description(EquipmentInventory ei, string e)
 {
     if (!ei.has_equipped(e))
     {
         return;
     }
     descriptionP.SetActive(true);
     descriptionT.text = ei.equipment[e][0].description;
 }
示例#9
0
    public void unequipItem(EquipItem eitem)
    {
        EquipmentInventory einv = _getEquipmentInventory();

        if (!einv)
        {
            Debug.LogError("Unit has invalid EquipmentInventory");
        }
        einv.unequipItem(eitem);
    }
示例#10
0
 public Player()
 {
     Type      |= ObjectTypes.Player;
     inventory  = new PlayerInventory(this, (UpdateFields.PLAYER_FARSIGHT - UpdateFields.PLAYER_FIELD_INV_SLOT_HEAD) / 2);
     _equipment = new EquipmentInventory(this);
     _backPack  = new BackPackInventory(this);
     _bank      = new BankInventory(this);
     _bankBags  = new BankBagsInventory(this);
     _keyRing   = new KeyRingInventory(this);
 }
    void Awake()
    {
        if (instance != null)
        {
            Debug.LogWarning("More than one instance of Inventory found!");
            return;
        }

        instance = this;
    }
示例#12
0
 void Start()
 {
     binventory          = inventory.instance;
     jEquipmentInventory = EquipmentInventory.instance;
     binventory.onItemChangedCallback          += UpdateUI;
     jEquipmentInventory.onItemChangedCallback += UpdateUI;
     slots     = itemsParent.GetComponentsInChildren <InventorySlot>();
     gearslots = gearParent.GetComponentsInChildren <EquipmentInventorySlot>();
     jinventoryUI.SetActive(false);
 }
 private void Start()
 {
     _player = GetComponent <Player>();
     _playerAbilitySystem = GetComponent <AbilitiesSystem>();
     _equipmentInventory  = new EquipmentInventory();
     _playerInventory     = GetComponent <Player>().Inventory;
     equipmentInventoryUI.SetPlayer(GetComponent <Player>());
     equipmentInventoryUI.SetInventory(_equipmentInventory);
     _basePlayerMoveSpeed = GetComponent <NavMeshAgent>().speed;
 }
示例#14
0
 public override void Fire(GameObject myWeapon, Camera myCamera, EquipmentInventory myWeaponManager)
 {
     if (notCounter <= 0)
     {
         StartCoroutine(FireEnum(myWeapon, myCamera, myWeaponManager));
     }
     else
     {
         Debug.Log("weapon Not Ready");
     }
 }
示例#15
0
    //-------------------------------------------------------------------------------------------------
    // private methods
    //-------------------------------------------------------------------------------------------------
    private EquipmentInventory _getEquipmentInventory()
    {
        EquipmentInventory einv = mInventory as EquipmentInventory;

        if (!einv)
        {
            Debug.LogError("Unit does not have an equippment inventory.");
            return(null);
        }
        return(einv);
    }
示例#16
0
    private void OnTriggerEnter(Collider other)
    {
        EquipmentInventory player = other.gameObject.GetComponent <EquipmentInventory>();

        //StateManager playerA = collision.gameObject.GetComponent<StateManager>();
        if (player != null)
        {
            player.AddAmmoToBackpack((int)myAmmoType, ammoValue);
            Destroy(gameObject);
        }
    }
 void Start()
 {
     myRigidBody = GetComponent <Rigidbody>();
     myCamera    = GetComponentInChildren <Camera>();
     myMovement  = GetComponent <MovementScript>();
     myMenu      = GetComponent <Interactable>();
     SetPlayerState(PlayerState.Falling);
     SetPlayerStance(PlayerStance.Standing);
     myMovement.SetRunForce(myMovement.RunForce);
     myInventoryManager = GetComponent <ItemWheel>();
     myInventory        = GetComponent <EquipmentInventory>();
 }
示例#18
0
    public List <EquipItem> getAvailableEquipItems()
    {
        List <EquipItem>   alist = new List <EquipItem>();
        EquipmentInventory einv  = _getEquipmentInventory();

        if (!einv)
        {
            return(alist);
        }
        alist = einv.getAvailableEquipItems();
        return(alist);
    }
示例#19
0
    public List <EquipItem> getEquippedItems()
    {
        List <EquipItem>   elist = new List <EquipItem>();
        EquipmentInventory einv  = _getEquipmentInventory();

        if (!einv)
        {
            return(elist);
        }
        elist = einv.getEquippedItems();
        return(elist);
    }
示例#20
0
 private void select_equipped(EquipmentInventory ei)
 {
     foreach (TMP_Dropdown d in dropdowns.Keys)
     {
         EquipmentSlot es = ei.equipment_slots[dropdowns[d]];
         if (!es.full)
         {
             continue;
         }
         d.captionText.text = es.equipment.name;
     }
 }
示例#21
0
    public override void dropInventory()
    {
        //drop the units inventory on the ground
        //To Do: Implement Items that are visible on the map
        //Currently I'm just deleting them
        EquipmentInventory einv = _getEquipmentInventory();

        if (!einv)
        {
            return;
        }
        einv.wipe();
    }
示例#22
0
    public void unlock_slots(EquipmentInventory ei)
    {
        if (ei == null)
        {
            return;
        }
        int highest_unlocked_slot = ei.get_highest_unlocked_slot();

        foreach (TMP_Dropdown d in dropdowns.Keys)
        {
            activate_equipment_slot(d, dropdowns[d] <= highest_unlocked_slot);
        }
    }
示例#23
0
    public void load_equipment_description(string e)
    {
        if (e == "Empty")
        {
            return;
        }
        EquipmentInventory ei = TurnPhaser.I.active_disc.equipment_inventory;

        if (!ei.has(e))
        {
            return;
        }
        descriptionP.SetActive(true);
        descriptionT.text = ei.equipment[e][0].description;
    }
示例#24
0
    private void show_equipment_boosts()
    {
        if (unit.is_enemy)
        {
            return;
        }

        EquipmentInventory ei = Controller.I.get_disc(get_punit().owner_ID).equipment_inventory;

        hpT.color = ei.get_stat_boost_amount(unit.get_ID(), Unit.HEALTH) > 0 ?
                    equipment_text_color : Color.white;
        defT.color = ei.get_stat_boost_amount(unit.get_ID(), Unit.DEFENSE) > 0 ?
                     equipment_text_color : Color.white;
        attT.color = ei.get_stat_boost_amount(unit.get_ID(), Unit.ATTACK) > 0 ?
                     equipment_text_color : Color.white;
    }
示例#25
0
    public override IEnumerator FireEnum(GameObject myWeapon, Camera myCamera, EquipmentInventory myWeaponManager)
    {
        if (ammo > 0)
        {
            notCounter = rateOfFire;
            RaycastHit hit;
            for (int i = 0; i < pellets; i++)
            {
                Vector3 forwardVector = Vector3.forward;
                float   deviation     = Random.Range(0f, maxDeviation);
                float   angle         = Random.Range(0f, 360f);
                forwardVector = Quaternion.AngleAxis(deviation, Vector3.up) * forwardVector;
                forwardVector = Quaternion.AngleAxis(angle, Vector3.forward) * forwardVector;
                forwardVector = myWeapon.transform.rotation * forwardVector;
                if (Physics.Raycast(myWeapon.transform.position, forwardVector, out hit, range))
                {
                    Debug.DrawRay(myWeapon.transform.position, forwardVector * hit.distance, Color.yellow);
                    // damage target or create decal or whatever.
                    Debug.Log(hit.transform.name);
                }
                //create a bullet trails pool which can be pulled from for any weapon?

                BulletTrail = ObjectPoolingManager.Instance.GetObject("bullet");
                BulletTrail.SetActive(true);
                BulletTrail.GetComponent <MusselEffect>().SetPositions(myWeapon.transform.position, hit.point);
            }
            ammo--;
            ApplyRecoil(myWeapon);
            //ApplyRecoil(myCamera.gameObject);
        }
        else
        {
            Debug.Log("weapon empty");
            Reload(myWeaponManager);
            //Click empty
        }
        yield return(null);

        while (notCounter <= rateOfFire && notCounter > 0)
        {
            notCounter -= Time.deltaTime;
            //Debug.Log("weapon not ready: "+counter.ToString());
            yield return(null);
        }
    }
示例#26
0
    private void fill_dropdown(TMP_Dropdown dropdown, EquipmentInventory ei)
    {
        clear_dropdown_options(dropdown);
        List <TMP_Dropdown.OptionData> options = new List <TMP_Dropdown.OptionData>();

        foreach (string e in ei.equipment.Keys)
        {
            if (ei.equipment[e].Count > 1)
            {
                options.Add(new TMP_Dropdown.OptionData(ei.equipment[e].Count.ToString() + " " + ei.equipment[e][0].name));
            }
            else
            {
                options.Add(new TMP_Dropdown.OptionData(ei.equipment[e][0].name));
            }
        }
        dropdown.AddOptions(options);
    }
示例#27
0
            public async Task <bool> Handle(AddEquipmentInventoryCommand request, CancellationToken cancellationToken)
            {
                EquipmentInventory _equipmentInventory = new EquipmentInventory
                {
                    Quantity           = request.MyEquipmentsInventoryVM.Quantity,
                    EncodingDate       = DateTime.Now,
                    ItemPrice          = request.MyEquipmentsInventoryVM.ItemPrice,
                    Remarks            = request.MyEquipmentsInventoryVM.Remarks,
                    InventoryManagerID = request.MyEquipmentsInventoryVM.UserID,
                    EquipmentID        = request.MyEquipmentsInventoryVM.EquipmentDetailsID,
                    DeliveryID         = request.MyEquipmentsInventoryVM.DeliveryDetailsID,
                    CreatedOn          = DateTime.Now
                };

                dbContext.EquipmentInventories.Add(_equipmentInventory);
                await dbContext.SaveChangesAsync();

                return(true);
            }
示例#28
0
 //Reload
 public virtual void Reload(EquipmentInventory myInventory)
 {
     if (counter <= 0)
     {
         if (myInventory.AmmoBackpack[(int)myAmmoType] > 0)
         {
             counter = reloadTime;
             Debug.Log("reloading");
             StartCoroutine(ReloadEnum(myInventory));
         }
         else
         {
             Debug.Log(" NO AMMO");
         }
     }
     //Debug.Log("reloading");
     //ammo in gun is lost, new ammo added from backpack
     //ammoBackpack = ammoBackpack - (ammo + ammoMax);
     //ammo = ammoMax;
 }
示例#29
0
 public void Run()
 {
     equipmentInventory = EquipmentInventory.Instance;
 }
示例#30
0
        public async Task Load(AtlasPlayer player)
        {
            API.DoScreenFadeOut(0);

            Atlas.DiscordRichPresence.Status = player.Character.Fullname;
            Atlas.DiscordRichPresence.Commit();

            var transition = new LoadTransition();

            if (!player.Character.MarkedAsRegistered)
            {
                API.StopPlayerSwitch();
            }

            var character = player.Character;
            var position  = !character.MarkedAsRegistered
                ? CharacterExtensions.RegistrationPosition
                : character.Metadata.LastPosition ?? CharacterExtensions.DefaultPosition;

            if (position == character.Metadata.LastPosition)
            {
                position.Y += 1f;
            }

            character.Revive(position);

            try
            {
                var ped    = Cache.Entity.Id;
                var health = character.Health;

                if (health > API.GetEntityMaxHealth(ped))
                {
                    health = API.GetEntityMaxHealth(ped);
                }

                API.SetEntityHealth(ped, health);
                API.SetPedArmour(ped, character.Shield);
            }
            catch (Exception)
            {
                // Dunno
            }

            var inventories = InventoryManager.GetModule();
            var required    = new InventoryContainer[]
            {
                new EquipmentInventory(new InventoryContainerBase
                {
                    Seed       = "equipment_inventory",
                    Name       = "Utrustning",
                    SlotAmount = 5
                }),
                new PocketsInventory(new InventoryContainerBase
                {
                    Seed       = "pockets_inventory",
                    Name       = "Fickor",
                    SlotAmount = 20
                }),
                new ProximityInventory(new InventoryContainerBase
                {
                    Seed       = "proximity_inventory",
                    Name       = "Omgivning",
                    SlotAmount = 20
                })
            };

            foreach (var entry in required)
            {
                if (character.Metadata.Inventories.All(self => self.Seed != entry.Seed))
                {
                    inventories.RegisterContainer(entry);
                    character.Metadata.Inventories.Add(entry);

                    entry.CallRegistration();
                }
                else
                {
                    var created = entry;

                    switch (entry.Seed.ToUpper())
                    {
                    case "EQUIPMENT_INVENTORY":
                        created = new EquipmentInventory(
                            character.Metadata.Inventories.FirstOrDefault(
                                self => self.Seed == "equipment_inventory"));

                        break;

                    case "POCKETS_INVENTORY":
                        created = new PocketsInventory(
                            character.Metadata.Inventories.FirstOrDefault(
                                self => self.Seed == "pockets_inventory"));

                        break;

                    case "PROXIMITY_INVENTORY":
                        created = new ProximityInventory(
                            character.Metadata.Inventories.FirstOrDefault(
                                self => self.Seed == "proximity_inventory"));
                        created.Slots = new InventoryItem[created.SlotAmount];

                        break;

                    default:
                        Logger.Info($"[Inventory] Could not find default required inventory {entry.Seed}");

                        break;
                    }

                    inventories.RegisterContainer(created);
                    created.CallRegistration();
                }
            }

            inventories.Registry.ForEach(self => self.RefreshItemClassifications());

            await player.Character.Load();

            Session.Join(player.Character.MarkedAsRegistered ? 1 : 100 + API.GetPlayerServerId(API.PlayerId()));

            await SafeTeleport.Teleport(player.Entity.Id, position);

            if (player.Character.MarkedAsRegistered)
            {
                await transition.Wait();

                API.DoScreenFadeIn(5000);

                await transition.Down(player);
            }
            else
            {
                await player.Character.PostLoad();
            }

            if (API.IsScreenFadedOut() && !API.IsScreenFadingOut())
            {
                API.DoScreenFadeIn(5000);
            }

            player.EnableHud();
        }