コード例 #1
0
 public void TankGetHit(HealthChangedEvent e, SelfTankNode selfTank, [JoinAll] SingleNode <TutorialFirstDamageTriggerComponent> firstDamageTrigger)
 {
     if (selfTank.health.CurrentHealth < selfTank.lastHealth.LastHealth)
     {
         firstDamageTrigger.component.GetComponent <TutorialShowTriggerComponent>().Triggered();
     }
 }
コード例 #2
0
    // Start is called before the first frame update
    void Start()
    {
        // makes empty second state
        mySecondState = null;
        twoBeings     = false;
        //secondExists = false;

        // value to change the number of affectors for the second state
        StuckValue  = 0;
        SecondStuck = false;

        // creates new event
        secondStateTransitionEvent = new SecondStateTransitionEvent();
        healthChangedEvent         = new HealthChangedEvent();

        myAudio = gameObject.GetComponent <AudioSource>();

        // sets up other events
        EventManager.AddPlayerDeathListeners(Die);
        EventManager.AddSecondStateChangeInvokers(this.gameObject);
        EventManager.AddSecondStateStuckListeners(ChangeStuckValue);
        EventManager.AddHealthChangedInvokers(gameObject);

        // sets spawn location to current location, since this will most likely be where the
        // initial spawn lcoation is for the player
        spawnLocation = transform.position;

        myDeathMenu = null;
    }
コード例 #3
0
 public void SwitchToLowHealthMode(HealthChangedEvent evt, SelfActiveTankNode tank, [JoinAll] SoundListenerNode listener)
 {
     if ((tank.health.CurrentHealth / tank.health.MaxHealth) > listener.healthFeedbackSoundListener.MaxHealthPercentForSound)
     {
         listener.healthFeedbackSoundListener.SwitchToNormalHealthMode();
     }
     else
     {
         listener.healthFeedbackSoundListener.SwitchToLowHealthMode();
     }
 }
コード例 #4
0
        internal override void SetValue(ModifyMode mode, int value)
        {
            var maxHealthAttribute = m_Entity.GetAttribute(AttributeCode.MaxHealth) as IntAttribute;
            var maxHealth          = maxHealthAttribute.GetValue();
            var beforeHealth       = m_Value;

            switch (mode)
            {
            case ModifyMode.Addition:
                if (m_Value + value > maxHealth)
                {
                    m_Value = maxHealth;
                }
                else
                {
                    m_Value += value;
                }
                break;

            case ModifyMode.Multiplication:
                if (m_Value * value > maxHealth)
                {
                    m_Value = maxHealth;
                }
                else
                {
                    m_Value *= value;
                }
                break;
            }

            var amtChanged = m_Value - beforeHealth;

            log.InfoFormat("{0} took {1} damage. Health left: {2}", m_Entity.Name, amtChanged.ToString(), m_Value);



            var ev = new HealthChangedEvent()
            {
                Username     = m_Entity.Name,
                Damage       = amtChanged,
                CurrenHealth = m_Value
            };
            IEventData evData = new EventData((byte)EventCode.HealthUpdate, ev);

            PublishChange(evData, BroadcastOptions.All);

            if (m_Value <= 0)
            {
                m_Value = 0;
                m_Entity.Die();
                return;
            }
        }
コード例 #5
0
    void Start()
    {
        //TODO get a reference to the player health meter

        if (healthChanged == null)
        {
            healthChanged = new HealthChangedEvent();
        }

        //TODO move this into the game flow management somehow!
        StartGame();
    }
コード例 #6
0
    // used to restore values when new second state appears
    // MAY BE TEMPORARY
    //float restoreValue = float.MaxValue;

    // Start is called before the first frame update
    void Start()
    {
        if (GameObject.FindGameObjectWithTag("HealthBars").GetComponent <HealthManager>().Imagination >= 0)
        {
            if (!specialCube)
            {
                // sets up events
                healthChangedEvent = new HealthChangedEvent();
                EventManager.AddImaginationChangedInvokers(gameObject);

                // initializes variabels
                distanceToPlayer   = 0;
                determinedDistance = 0;

                // sets up accumulated cost
                accumulatedPieceCost = 0;

                // gets player transform for math later
                playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
            }
            else
            {
                // sets up events
                healthChangedEvent = new HealthChangedEvent();
                EventManager.AddImaginationChangedInvokers(gameObject);

                // initializes variabels
                distanceToPlayer   = 0;
                determinedDistance = 0;

                // gets player transform for math later
                playerTransform = GameObject.FindGameObjectWithTag("Player").transform;

                // changes regular cost for special cube cost
                imaginationDamagerPerMeter *= specialCubeDistanceCost;

                // restores value so that it is a fresh imagination
                healthChangedEvent.Invoke(Enumeration.playerState.secondState, -specialCubeCost);
                EventManager.AddPlayerDeathListeners(DestroySpecialCube);

                accumulatedPieceCost  = 0;
                accumulatedPieceCost -= specialCubeCost;
            }
        }
        else
        {
            //Debug.Log("dissapeard");
            Destroy(gameObject);
        }
    }
コード例 #7
0
ファイル: MainHUDSystem.cs プロジェクト: radiomonter/Tanki_X
 public void ChangeHP(HealthChangedEvent e, HUDNodes.SelfTankNode tank, [JoinAll] SingleNode <MainHUDComponent> hud)
 {
     hud.component.CurrentHpValue = tank.health.CurrentHealth;
 }
コード例 #8
0
 public void ChangeProgressValueOnAnyHealthBar(HealthChangedEvent e, TankNode tank, [JoinByTank] AttachedHealthBarNode healthBar)
 {
     this.UpdateHealth(tank.health, tank.healthConfig, healthBar.healthBar);
 }
コード例 #9
0
 // Start is called before the first frame update
 void Start()
 {
     healthChangedEvent = new HealthChangedEvent();
     EventManager.AddHealthChangedInvokers(gameObject);
 }
コード例 #10
0
 public void TankGetHit(HealthChangedEvent e, SelfTankWithLastHealth selfTank)
 {
     selfTank.lastHealth.LastHealth = selfTank.health.CurrentHealth;
 }
コード例 #11
0
        public void ChangeHealthVignette(HealthChangedEvent evt, SelfActiveTankNode tank, [JoinAll] ReadyBattleCameraNode camera)
        {
            float num3 = tank.health.CurrentHealth / tank.health.MaxHealth;

            camera.healthFeedbackCameraPrepared.TargetIntensity = 1f - Mathf.Clamp01(num3);
        }