public static ref PokemonMoveAdjustment getAdjustment(ref PokemonMoveAdjustmentSet set, int index) { switch (index) { case 0: return(ref set.A); case 1: return(ref set.B); case 2: return(ref set.C); case 3: return(ref set.D); case 4: return(ref set.E); case 5: return(ref set.F); case 6: return(ref set.G); case 7: return(ref set.H); case 8: return(ref set.I); case 9: return(ref set.J); case 10: return(ref set.K); case 11: return(ref set.L); case 12: return(ref set.M); case 13: return(ref set.N); case 14: return(ref set.O); case 15: return(ref set.P); case 16: return(ref set.Q); case 17: return(ref set.R); case 18: return(ref set.S); case 19: return(ref set.T); case 20: return(ref set.U); case 21: return(ref set.V); case 22: return(ref set.W); case 23: return(ref set.X); case 24: return(ref set.Y); default: return(ref set.A); } }
public static float3 getNextPokemonMoveAdjustment(ref PokemonMoveAdjustmentSet set, ref float currentStamina, float time, float3 forward) { for (int i = 0; i < 25; i++) { ref PokemonMoveAdjustment pma = ref getAdjustment(ref set, i); if (pma.timeLength == -1f) { // Debug.Log("Detected 1 time addition" + time + " forward = " + forward); //one time thing pma.timeLength = 0; set.isValid = false; if (currentStamina - pma.staminaCost < 0) { float3 temp = pma.useCameraDirection ? pma.timeLength * forward * pma.value : pma.timeLength * pma.value; temp *= currentStamina / pma.staminaCost; currentStamina = 0; return(temp); } else { currentStamina -= pma.staminaCost; return(pma.useCameraDirection ? forward * pma.value : pma.value); } } else if (pma.timeLength > 0) { // Debug.Log("Detected it's not over"); if (pma.timeLength - time >= 0) { pma.timeLength -= time; if (currentStamina - pma.staminaCost < 0) { float3 temp = pma.useCameraDirection ? pma.timeLength * forward * pma.value : pma.timeLength * pma.value; temp *= currentStamina / pma.staminaCost; currentStamina = 0; return(temp); } else { currentStamina -= pma.staminaCost; return(pma.useCameraDirection ? time * forward * pma.value : time *pma.value); } } else { float3 temp = pma.timeLength; pma.timeLength = 0; if (currentStamina - pma.staminaCost < 0) { temp = pma.useCameraDirection ? temp * forward * pma.value : time * pma.value; temp *= currentStamina / pma.staminaCost; currentStamina = 0; return(temp); } else { currentStamina -= pma.staminaCost; return(pma.useCameraDirection ? temp * forward * pma.value : time *pma.value); } } } else if (i == 24) { set.isValid = false; } }