Make a generic booster pack giver

This commit is contained in:
Michal Pikulski
2025-12-15 11:59:40 +01:00
parent e2b74b1ea5
commit bb332933ec
64 changed files with 1228 additions and 312 deletions

View File

@@ -1,5 +1,6 @@
using System.Collections;
using Core;
using Core.Settings;
using UnityEngine;
namespace Minigames.FortFight.Projectiles
@@ -34,7 +35,7 @@ namespace Minigames.FortFight.Projectiles
private IEnumerator ActivationDelayCoroutine()
{
// Get activation delay from settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
float activationDelay = settings?.CeilingFanActivationDelay ?? 0.5f;
// Wait for delay
@@ -82,7 +83,7 @@ namespace Minigames.FortFight.Projectiles
}
// Get drop configuration from settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
float dropDelay = settings?.CeilingFanDropDelay ?? 0.2f;
float dropSpeed = settings?.CeilingFanDropSpeed ?? 20f;

View File

@@ -1,6 +1,7 @@
using System;
using Core;
using Core.Lifecycle;
using Core.Settings;
using Minigames.FortFight.Fort;
using UnityEngine;
@@ -83,7 +84,7 @@ namespace Minigames.FortFight.Projectiles
ProjectileType = projectileType;
// Load damage and mass from settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
if (settings != null)
{
var config = settings.GetProjectileConfig(projectileType);
@@ -120,7 +121,7 @@ namespace Minigames.FortFight.Projectiles
base.OnManagedAwake();
// Automatically assign projectile to correct layer from settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
if (settings != null && settings.ProjectileLayer >= 0 && gameObject.layer != settings.ProjectileLayer)
{
gameObject.layer = settings.ProjectileLayer;

View File

@@ -1,4 +1,5 @@
using Core;
using Core.Settings;
using UnityEngine;
namespace Minigames.FortFight.Projectiles
@@ -24,7 +25,7 @@ namespace Minigames.FortFight.Projectiles
}
// Get settings for trash pieces
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
int pieceCount = settings?.TrashBagPieceCount ?? 8;
Logging.Debug($"[TrashBagProjectile] Splitting into {pieceCount} pieces");
@@ -53,7 +54,7 @@ namespace Minigames.FortFight.Projectiles
}
// Get settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
int pieceCount = settings?.TrashBagPieceCount ?? 8;
float pieceForce = settings?.TrashBagPieceForce ?? 10f;
float spreadAngle = settings?.TrashBagSpreadAngle ?? 60f;

View File

@@ -1,4 +1,5 @@
using Core;
using Core.Settings;
using UnityEngine;
namespace Minigames.FortFight.Projectiles
@@ -19,7 +20,7 @@ namespace Minigames.FortFight.Projectiles
private void Start()
{
// Get configuration from settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
damage = settings?.TrashPieceDamage ?? 5f;
float lifetime = settings?.TrashPieceLifetime ?? 5f;

View File

@@ -1,4 +1,5 @@
using Core;
using Core.Settings;
using UnityEngine;
namespace Minigames.FortFight.Projectiles
@@ -26,7 +27,7 @@ namespace Minigames.FortFight.Projectiles
SpawnImpactEffect(collision.contacts[0].point);
// Get damage from settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
float blockDamage = settings?.VacuumBlockDamage ?? 999f;
// Deal high damage to destroy block instantly
@@ -62,7 +63,7 @@ namespace Minigames.FortFight.Projectiles
isSliding = true;
// Get settings
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
if (settings != null)
{
maxBlocksToDestroy = settings.VacuumDestroyBlockCount;
@@ -85,7 +86,7 @@ namespace Minigames.FortFight.Projectiles
if (isSliding && rb2D != null)
{
// Set constant velocity in slide direction
var settings = GameManager.GetSettingsObject<AppleHills.Core.Settings.IFortFightSettings>();
var settings = GameManager.GetSettingsObject<IFortFightSettings>();
float slideSpeed = settings?.VacuumSlideSpeed ?? 10f;
rb2D.linearVelocity = slideDirection * slideSpeed;