добавил сигареты как бонус + анимации моделе врагов

This commit is contained in:
2026-07-24 01:57:55 +07:00
parent 0d03c06854
commit af01cf14e7
58 changed files with 178009 additions and 291 deletions
+57 -1
View File
@@ -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: