добавил сигареты как бонус + анимации моделе врагов
This commit is contained in:
@@ -151,7 +151,62 @@ func _process(_delta : float):
|
||||
displayStats()
|
||||
|
||||
func weaponInputs():
|
||||
if Input.is_action_pressed(shoot_action): shootManager.shoot()
|
||||
if Input.is_action_pressed(shoot_action):
|
||||
# --- ПЕРЕХВАТ ДЛЯ БОНУСА SPEEDBOOSTER ---
|
||||
|
||||
if cW != null and cW.weaponName == "SpeedBooster":
|
||||
# Проверяем, есть ли заряды и что мы его уже не используем прямо сейчас
|
||||
if cW.totalAmmoInMag > 0 and not cW.isShooting:
|
||||
cW.isShooting = true
|
||||
# === НАШЕ ДОБАВЛЕНИЕ: ПРИНУДИТЕЛЬНО ИГРАЕМ ЗВУК ИЗ РЕСУРСА ПРЕДМЕТА ===
|
||||
# Берем звук, который ты прикрепил в поле shot_sound (или shootSound)
|
||||
if "shotSound" in cW and cW.shotSound != null:
|
||||
weaponSoundManagement(cW.shotSound, 1.0)
|
||||
elif "shootSound" in cW and cW.shootSound != null:
|
||||
weaponSoundManagement(cW.shootSound, 1.0)
|
||||
# Тратим одно использование бонуса
|
||||
cW.totalAmmoInMag -= 1
|
||||
displayStats() # Обновляем цифры на HUD (станет 0)
|
||||
|
||||
print("[БОНУС] Успешный клик! Активирую скорость на PlayerCharacter.")
|
||||
|
||||
# Отправляем команду на ускорение в скрипт твоего игрока
|
||||
if playChar and playChar.has_method("activate_speed_boost"):
|
||||
playChar.activate_speed_boost()
|
||||
|
||||
# Ждем кулдаун использования банки (1 секунда, чтобы проигралась анимация глотка/использования)
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
|
||||
# --- УДАЛЕНИЕ ИЗ ИНВЕНТАРЯ ПОСЛЕ ИСПОЛЬЗОВАНИЯ ---
|
||||
print("[БОНУС] Энергетик пуст. Удаляю его из инвентаря игрока...")
|
||||
|
||||
# Находим, под каким номером в инвентаре (weaponStack) лежит наш SpeedBooster
|
||||
var booster_stack_index = weaponStack.find(cW.weaponId)
|
||||
if booster_stack_index != -1:
|
||||
# Полностью выкидываем его из списка оружия игрока
|
||||
weaponStack.remove_at(booster_stack_index)
|
||||
|
||||
# Принудительно прячем 3D-модельку пустой банки в руках
|
||||
if cWModel:
|
||||
cWModel.visible = false
|
||||
|
||||
# Переключаем инвентарь на самое первое доступное оружие (индекс 0 - автомат или пистолет)
|
||||
weaponIndex = 0
|
||||
if weaponStack.size() > 0:
|
||||
changeWeapon(weaponStack[0])
|
||||
else:
|
||||
# Если у игрока вообще больше нет оружия, сбрасываем текущее оружие в null
|
||||
cW = null
|
||||
cWModel = null
|
||||
canUseWeapon = false
|
||||
|
||||
# Возвращаем флаг стрельбы в исходное состояние
|
||||
if cW != null:
|
||||
cW.isShooting = false
|
||||
|
||||
else:
|
||||
# ОРИГИНАЛЬНАЯ СТРЕЛЬБА АССЕТА (Для автоматов и пистолетов)
|
||||
shootManager.shoot()
|
||||
|
||||
if Input.is_action_just_pressed(reload_action): reloadManager.reload()
|
||||
|
||||
@@ -164,6 +219,7 @@ func weaponInputs():
|
||||
if canChangeWeapons and !cW.isShooting and !cW.isReloading:
|
||||
weaponIndex = max(weaponIndex - 1, 0) #from last element of weapon stack to first element
|
||||
changeWeapon(weaponStack[weaponIndex])
|
||||
|
||||
|
||||
func displayStats():
|
||||
if hud == null or cW == null:
|
||||
|
||||
Reference in New Issue
Block a user