public override void OnButtonUp() { base.OnButtonUp(); PreviewDisplayer.PreviewState buildAction = PreviewDisplayer.PreviewState.BUILD; if (preview) { buildAction = getPreviewState(); } if (buildAction == PreviewDisplayer.PreviewState.BUILD) { if (aminaPool.ReservedAmina >= minAminaReserved) { Vector2 spawnPos = playerController.SpawnCenter; Vector2 dir = ((Vector2)Utility.MouseWorldPos - spawnPos).normalized; ChargedShotController chargedShot = objectSpawner.spawnObject <ChargedShotController>( chargedShotIndex, spawnPos, dir, SpawnBufferExtension ); float aminaObtained = aminaPool.collectReservedAmina(); float aminaMultiplier = aminaObtained / expectedAnimaReserved; chargedShot.chargeStats(aminaMultiplier); onShotFired?.Invoke( chargedShot.gameObject, chargedShot.transform.position, dir ); } else { aminaPool.cancelReservedAmina(); } } else if (buildAction == PreviewDisplayer.PreviewState.UPGRADE) { float aminaObtained = aminaPool.collectReservedAmina(); float aminaMultiplier = aminaObtained / expectedAnimaReserved; targetObject.GetComponent <ChargedShotController>().upgradeStats(aminaMultiplier); } else if (buildAction == PreviewDisplayer.PreviewState.DESTROY) { ChargedShotController csc = targetObject.FindComponent <ChargedShotController>(); float refund = csc.aminaRefund; PhotonNetwork.Destroy(targetObject); aminaPool.cancelReservedAmina(); aminaPool.rechargeAmina(refund); } else if (buildAction == PreviewDisplayer.PreviewState.NONE) { aminaPool.cancelReservedAmina(); } if (preview) { preview.SetActive(false); } }
public override void OnButtonHeld() { base.OnButtonHeld(); aminaPool.reserveAmina(aminaReservedPerSecond * Time.deltaTime); //Check to see if the preview collides with anything if (preview) { PreviewDisplayer.PreviewState state = getPreviewState(); previewDisplayer.updatePreviewColor(state); } }