using System.Collections.Generic; using Cielonos.MainGame.Characters; using SLSUtilities.FunctionalAnimation; using UnityEngine; namespace Cielonos.MainGame.Inventory.Collections { public partial class FutureWand { private void FAPF_GenerateLightning(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringString p = rtFuncAnim.GetParams(); List targets = CombatManager.EnemySm.GetEnemiesInRadius(player.transform.position, 25f); foreach (Enemy target in targets) { GenerateLightning(p.str0, attackData[p.str1], target); } } private void FAPF_GenerateBoltOnWand(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringStringFloat p = rtFuncAnim.GetParams(); GenerateProjectile(p.str0, attackData[p.str1], currentTarget, p.float0); } private void FAPF_GenerateBoltOnHand(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringStringFloat p = rtFuncAnim.GetParams(); GenerateProjectile(p.str0, attackData[p.str1], currentTarget, p.float0, true, player.bodyPartsSc.leftHand); } private void FAPF_GenerateUltimateBeam(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringString p = rtFuncAnim.GetParams(); GenerateUltimateBeam(p.str0, attackData[p.str1]); } private void FAPF_GenerateGroundArea(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringString p = rtFuncAnim.GetParams(); GenerateGroundArea(p.str0, attackData[p.str1]); } private void FAPF_GenerateSpinAreaCharge(RuntimeFuncAnim rtFuncAnim) { _spinAreaChargeVFX = vfxData.SpawnVFX("SpinAreaCharge", player).GetComponent(); ParticleSystem coreParticle = _spinAreaChargeVFX?.parts["Core"].GetComponent(); _spinAreaUpgradeCount = 0; if (coreParticle != null) { var main = coreParticle.main; main.startSize = 0.5f; } } private void FAPF_GenerateWandMuzzle(RuntimeFuncAnim rtFuncAnim) { vfxData.SpawnMuzzleVFX("SpinAreaCharge", player, Muzzle); } private void FAPF_UpgradeSpinArea(RuntimeFuncAnim rtFuncAnim) { ParticleSystem coreParticle = _spinAreaChargeVFX?.parts["Core"].GetComponent(); if (coreParticle != null) { var main = coreParticle.main; _spinAreaUpgradeCount++; _spinAreaUpgradeCount = Mathf.Clamp(_spinAreaUpgradeCount, 0, 2); main.startSize = 0.5f + _spinAreaUpgradeCount * 1f; } } private void FAPF_GenerateSpinArea(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringString p = rtFuncAnim.GetParams(); _spinAreaChargeVFX?.StopAndDespawn(); GenerateSpinArea(p.str0, attackData[p.str1]); } private void FAPF_GenerateMultipleBolts(RuntimeFuncAnim rtFuncAnim) { CustomFunction.PC_StringStringFloat p = rtFuncAnim.GetParams(); List targets = CombatManager.EnemySm.GetEnemiesInRadius(player.transform.position, 25f); if (targets.Count > 0) vfxData.SpawnMuzzleVFX(p.str0, player, Muzzle); foreach (Enemy target in targets) { GenerateProjectile(p.str0, attackData[p.str1], target, p.float0, false); } } } }