Example #1
0
        private void PrepareWeapon(int index)
        {
            foreach (var item in _equippedItems)
            {
                if (IsInstanceValid(item) && item.IsInsideTree())
                {
                    item.DisconnectAllSignals(this);
                    item.GetParent().RemoveChild(item);
                }
            }

            var desiredWeapon = _equippedItems[index];
            var secondWeapon = index + 1 > 1 ? _equippedItems[0] : _equippedItems[1];
            Equipment equippedWeapon = null;
            if (IsInstanceValid(desiredWeapon))
            {
                _weaponPosition2d.AddChild(desiredWeapon);
                equippedWeapon = desiredWeapon;
                if (IsInstanceValid(secondWeapon))
                {
                    _secondaryWeaponPosition2d.AddChild(secondWeapon);
                }
            }
            else if (IsInstanceValid(secondWeapon))
            {
                equippedWeapon = secondWeapon;
                _weaponPosition2d.AddChild(secondWeapon);
            }
            equippedWeapon?.ConnectSignals(this);
        }
    /// <summary>
    /// Load the rocket inside the rocket launcher
    /// </summary>
    public override void Load()
    {
        Rocket rocket = GameResources.GetInstance().Get <Rocket>();

        rocketHolder.AddChild(rocket);
        this.WeaponAmmo = rocket;
    }
Example #3
0
    /// <summary>
    /// Load the grenade
    /// </summary>
    public override void Load()
    {
        Grenade grenade = GameResources.GetInstance().Get <Grenade>();

        grenadeHolder.AddChild(grenade);
        this.WeaponAmmo = grenade;
    }
Example #4
0
 public void AttachWeapon(Weapon newWeapon)
 {
     weapon?.QueueFree();
     weapon        = newWeapon;
     weapon.Hunter = this;
     weaponSlot.AddChild(newWeapon);
 }
Example #5
0
    /// <summary>
    /// Load the ammo
    /// </summary>
    public override void Load()
    {
        RifleAmmo rifleAmmo = GameResources.GetInstance().Get <RifleAmmo>();

        rifleHolder.AddChild(rifleAmmo);
        this.WeaponAmmo = rifleAmmo;
    }
Example #6
0
        public override void _Ready()
        {
            Sprite sprite = new Sprite();

            sprite.Texture       = (Godot.Texture)GD.Load(texture);
            sprite.RegionEnabled = true;
            sprite.Centered      = false;
            Rect2   rect  = new Rect2();
            Vector2 start = new Vector2();

            start.x = spriteX;
            start.y = spriteY;
            Vector2 end = new Vector2();

            end.x         = spriteW;
            end.y         = spriteH;
            rect.Position = start;
            rect.Size     = end;
            sprite.SetRegionRect(rect);
            sprite.SetName("Sprite_" + this.guid);

            Position2D position2D = new Position2D();

            position2D.SetPosition(this.Position);
            position2D.SetName("Position2D_" + this.guid);
            position2D.AddChild(sprite, true);
            this.AddChild(position2D, true);
            Tween tween = new Tween();

            tween.SetName("Tween_" + this.guid);
            this.AddChild(tween, true);
        }
Example #7
0
        /// <summary>
        ///   Unequips all projectile shooters and equips the projectile shooter that is currently held.
        /// </summary>
        private void EquipHoldingProjectileShooter()
        {
            UnequipProjectileShooters();

            if (_holster.GetHolding() is Node holding)
            {
                _projectileShooterHolder.AddChild(holding);
                EmitChatAdded(holding.Name);
            }
            else
            {
                EmitChatAdded("Unequipped projectile shooter");
            }
        }
Example #8
0
    public bool updatePrimaryWeapon(PackedScene weapon)
    {
        if (primaryWeapons.Count < MaxPrimaryWeaponCount)
        {
            // Hide existing weapon if exist
            if (currentPrimaryWeaponIndex != -1)
            {
                ((Weapon)primaryWeapons[currentPrimaryWeaponIndex]).Hide();
            }

            Position2D weaponHolder  = ((Position2D)GetNode("Weapon"));
            Weapon     curretnWeapon = (Weapon)(weapon.Instance());
            curretnWeapon.gameWorld = gameworld;
            primaryWeapons.Add(curretnWeapon);
            // Update to use this weapon as primary
            currentPrimaryWeaponIndex = primaryWeapons.Count - 1;
            weaponHolder.AddChild(curretnWeapon);
            EmitSignal(nameof(PrimaryWeaponChangeSignal), ((Weapon)primaryWeapons[currentPrimaryWeaponIndex]).weaponType);
            return(true);
        }

        return(false);
    }