Example #1
0
 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);
     }
 }
Example #2
0
 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);
     }
 }