예제 #1
0
 public SaveWeapon(SaveWeapon toCopy)
 {
     weaponName   = toCopy.weaponName;
     diceNumber   = toCopy.diceNumber;
     damages      = toCopy.damages;
     bonusDamages = toCopy.bonusDamages;
     range        = toCopy.range;
 }
    public void OpenAndAddWeapon(SaveWeapon w)
    {
        GameObject go = Instantiate(weapon, weaponContainer.transform);

        Weapon instantiatedWepon = go.GetComponent <Weapon>();

        instantiatedWepon.nameInput.text         = w.weaponName;
        instantiatedWepon.diceNumberInput.text   = w.diceNumber.ToString();
        instantiatedWepon.damagesInput.text      = w.damages.ToString();
        instantiatedWepon.bonusDamagesInput.text = w.bonusDamages.ToString();
        instantiatedWepon.rangeInput.text        = w.range.ToString();

        instantiatedWepon.saveWeapon = w;
    }
예제 #3
0
        internal void GiveBackWeapon(SaveWeapon weapon)
        {
            if (weapon.Existence == false)
            {
                return;
            }
            if (weapon.Ammo == 0)
            {
                return;
            }

            logger.Info("Asked to give back weapon " + weapon.Weapon.ToString());
            GiveAndRegisterWeapon(weapon.Weapon, weapon.Ammo, true);
        }
예제 #4
0
    public void UpdateWeapon()
    {
        if (FightController.instance.attaquant.weapons.Count != 0)
        {
            attackWithWeapon.interactable = true;

            SaveWeapon w = FightController.instance.attaquant.weapons[weaponDropdown.value];
            FightController.instance.weapon = w;

            weaponDamages.text = w.diceNumber.ToString() + "D" + w.damages.ToString() + " + " + w.bonusDamages.ToString();
        }
        else
        {
            attackWithWeapon.interactable   = false;
            FightController.instance.weapon = null;
            weaponDamages.text = "0";
        }
    }
예제 #5
0
        internal void UpdateWeapons()
        {
            if (savedWeapons.Count == 0)
            {
                return;
            }

            SaveWeapon[] temp = savedWeapons.ToArray();
            savedWeapons.Clear();
            foreach (SaveWeapon sw in temp)
            {
                WeaponHash wh = sw.Weapon;
                Weapon     wp = Game.Player.Character.Weapons[wh];
                if (wp == null)
                {
                    continue;
                }
                SaveWeapon result = new SaveWeapon(wh, wp.Ammo + wp.AmmoInClip, true);
            }
        }
예제 #6
0
        internal void RegisterWeapon(WeaponHash hash)
        {
            // does nothing if no weapon found in inventory
            if (!Game.Player.Character.Weapons.HasWeapon(hash))
            {
                logger.Warn($"Weapon \"{hash}\" was not found in player's inventory, aborting");
                return;
            }

            Weapon wp = Game.Player.Character.Weapons[hash];

            if (wp is null)
            {
                logger.Warn($"Weapon \"{hash}\" query returned null, aborting");
                return;
            }

            // Must be like this
            bool removal      = false;
            int  removalIndex = -1;

            foreach (SaveWeapon sw in savedWeapons)
            {
                if (sw.Weapon == hash)
                {
                    removal      = true;
                    removalIndex = savedWeapons.IndexOf(sw);
                }
            }

            if (removal)
            {
                logger.Warn("Removing " + removalIndex + "as it was found already exists");
                savedWeapons.RemoveAt(removalIndex);
            }

            SaveWeapon result = new SaveWeapon(hash, wp.Ammo + wp.AmmoInClip, true);

            savedWeapons.Add(result);
        }