Example #1
0
    private void Update()
    {
        float l_delta = Time.deltaTime;

        Battle_Singletons._battleActionSelection.update(l_delta);
        Battle_Singletons._battleTargetSelection.update(l_delta);

        SceneGlobalObjects.PlayerTurnInputflow.update(l_delta);

        Battle_Singletons._battleResolutionStep.update(l_delta);

        this.AtbUI.Update(l_delta);

        // Handling damage applied events
        if (Battle_Singletons._battleResolutionStep.Out_DamageApplied_Events.Count > 0)
        {
            for (int i = 0; i < Battle_Singletons._battleResolutionStep.Out_DamageApplied_Events.Count; i++)
            {
                BQEOut_FinalDamageApplied l_event        = Battle_Singletons._battleResolutionStep.Out_DamageApplied_Events[i];
                BattleEntityComponent     l_targetEntity = BattleEntityComponent_Container.ComponentsByHandle[l_event.Target];

                RectTransform l_instanciatedDamageTextObject = GameObject.Instantiate(this.DamageTextPrefab, SceneGlobalObjects.MainCanvas.transform);
                Text          l_instanciatedDamageText       = l_instanciatedDamageTextObject.GetComponentInChildren <Text>();
                l_instanciatedDamageText.text = l_event.FinalDamage.ToString();
                ((RectTransform)l_instanciatedDamageTextObject.transform).position = SceneGlobalObjects.MainCamera.WorldToScreenPoint(l_targetEntity.DamageDisplay_Transform.transform.position);

                BattleAnimation.onDamageReceived(l_targetEntity);
            }
        }

        // On battle entity death
        if (Battle_Singletons._battleResolutionStep.Out_Death_Events.Count > 0)
        {
            for (int i = 0; i < Battle_Singletons._battleResolutionStep.Out_Death_Events.Count; i++)
            {
                BattleEntity          l_deadEntity = Battle_Singletons._battleResolutionStep.Out_Death_Events[i];
                BattleEntityComponent l_destroyedEntityComponent = BattleEntityComponent_Container.ComponentsByHandle[l_deadEntity];

                SceneGlobalObjects.PlayerTurnInputflow.on_battleEntityDeath(l_destroyedEntityComponent);

                //handling selection
                Battle_Singletons._battleActionSelection.on_battleEntityDeath(l_destroyedEntityComponent.BattleEntityHandle);

                //handling target selection
                Battle_Singletons._battleTargetSelection.on_battleEntityDeath(i);

                //We update the BattleTargetSelectionUI is the _battleTargetSelection has changed by taking into account death
                SceneGlobalObjects.BattleTargetSelectionUI.update(Battle_Singletons._battleTargetSelection);

                l_destroyedEntityComponent.Dispose();
            }
            // Battle_Singletons._battleResolutionStep.Out_Death_Events.Clear();
        }

        BattleEntityComponent_Container.Update(l_delta);
    }