Esempio n. 1
0
 private void OnDamageTaken()
 {
     if (damageableBehaviour.CurrentHealth <= 0)
     {
         targetableBehaviour.Disable();
     }
     SafeEventHandler.SafelyBroadcastAction(ref DamageTaken);
 }
 private void AddTarget(GameObject targetCandidate)
 {
     if (Target == null)
     {
         Target = targetCandidate;
         Target.GetComponent <Targetable>().TargetableStatusRemoved += RemoveAndUpdateTarget;
         SafeEventHandler.SafelyBroadcastEvent(ref TargetAcquired, Target, this);
     }
 }
Esempio n. 3
0
    private IEnumerator GainConstantCurrency()
    {
        while (true)
        {
            yield return(WaitForTime(currencyGainInterval));

            Currency += currencyPerInterval;
            SafeEventHandler.SafelyBroadcastAction(ref CurrencyUpdated);
        }
    }
    private void InitCurrentWave()
    {
        if (currentWaveIndex >= waves.Count)
        {
            SafeEventHandler.SafelyBroadcastAction(ref WavesCompleted);
        }
        var wave = waves[currentWaveIndex];

        wave.WaveCompleted += NextWave;
        wave.BeginWave();
        SafeEventHandler.SafelyBroadcastAction(ref WaveChanged);
    }
 private void RemoveAndUpdateTarget()
 {
     targetsInRange.Remove(Target);
     Target.GetComponent <Targetable>().TargetableStatusRemoved -= RemoveAndUpdateTarget;
     Target = null;
     SafeEventHandler.SafelyBroadcastAction(ref TargetLost);
     if (targetsInRange.Count > 1)
     {
         AddTarget(targetsInRange[0]);
         SafeEventHandler.SafelyBroadcastEvent(ref TargetAcquired, Target, this);
     }
 }
Esempio n. 6
0
    public void OnDifficultySelection(LevelController levelController)
    {
        var newLevel = Instantiate(levelController);

        AssignLevelController(newLevel);

        SafeEventHandler.SafelyBroadcastEvent(ref NewLevelSelected, newLevel, this);
        newLevel.StartLevel();
        levelSelectionMenu.SetActive(false);
        backgroundGrid.SetActive(false);
        hud.SetActive(true);
    }
 public void StartWaves()
 {
     if (waves.Count > 0)
     {
         InitCurrentWave();
     }
     else
     {
         print("No waves on Wave Controller");
         SafeEventHandler.SafelyBroadcastAction(ref WavesCompleted);
     }
 }
 private void NextWave(object sender, EventArgTemplate <bool> success)
 {
     if (success.Attachment)
     {
         waves[CurrentWaveIndex].WaveCompleted -= NextWave;
         currentWaveIndex++;
         if (currentWaveIndex >= waves.Count)
         {
             SafeEventHandler.SafelyBroadcastAction(ref WavesCompleted);
         }
         else
         {
             InitCurrentWave();
         }
     }
 }
Esempio n. 9
0
    private void UpdateHealth()
    {
        var currentHealth = 0;
        var maxHealth     = 0;

        foreach (var castle in castles)
        {
            currentHealth += castle.CurrentHealth;
            maxHealth     += castle.MaxHealth;
        }

        CurrentHealth = currentHealth;
        MaxHealth     = maxHealth;
        SafeEventHandler.SafelyBroadcastAction(ref HealthUpdated);

        if (CurrentHealth <= 0)
        {
            SafeEventHandler.SafelyBroadcastEvent(ref LevelEnded, false, this);
        }
    }
Esempio n. 10
0
 private void OnLevelCompleted(object sender, EventArgTemplate <bool> success)
 {
     CurrentState = success.Attachment ? State.GameWon : State.GameLost;
     SafeEventHandler.SafelyBroadcastEvent(ref GameFinished, success.Attachment, this);
 }
Esempio n. 11
0
 private void TakeDamage(int damageAmount)
 {
     CurrentHealth = Mathf.Max(0, CurrentHealth - damageAmount);
     SafeEventHandler.SafelyBroadcastAction(ref DamageTaken);
 }
Esempio n. 12
0
 private void OnWaveCompletion()
 {
     SafeEventHandler.SafelyBroadcastEvent(ref LevelEnded, true, this);
 }
Esempio n. 13
0
 public void Disable()
 {
     SafeEventHandler.SafelyBroadcastAction(ref TargetableStatusRemoved);
     enabled = false;
 }
Esempio n. 14
0
 private void OnWaveUpdated()
 {
     CurrentWave = waveController.CurrentWaveIndex + 1;
     SafeEventHandler.SafelyBroadcastAction(ref WaveUpdated);
 }
Esempio n. 15
0
 public void StartLevel()
 {
     SafeEventHandler.SafelyBroadcastAction(ref LevelStarted);
     waveController.StartWaves();
 }
Esempio n. 16
0
 private void OnTowerPurchased(object sender, EventArgTemplate <TowerConfiguration> purchasedTower)
 {
     SafeEventHandler.SafelyBroadcastEvent <TowerConfiguration>(ref PurchasedTower, purchasedTower.Attachment, this);
 }
Esempio n. 17
0
 public void OnCloseSelected()
 {
     SafeEventHandler.SafelyBroadcastAction(ref CloseButtonPressed);
 }
 public void OnTowerSelect()
 {
     SafeEventHandler.SafelyBroadcastEvent(ref TowerPurchased, tower, this);
 }