public void TankGetHit(HealthChangedEvent e, SelfTankNode selfTank, [JoinAll] SingleNode <TutorialFirstDamageTriggerComponent> firstDamageTrigger) { if (selfTank.health.CurrentHealth < selfTank.lastHealth.LastHealth) { firstDamageTrigger.component.GetComponent <TutorialShowTriggerComponent>().Triggered(); } }
// 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; }
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(); } }
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; } }
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(); }
// 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); } }
public void ChangeHP(HealthChangedEvent e, HUDNodes.SelfTankNode tank, [JoinAll] SingleNode <MainHUDComponent> hud) { hud.component.CurrentHpValue = tank.health.CurrentHealth; }
public void ChangeProgressValueOnAnyHealthBar(HealthChangedEvent e, TankNode tank, [JoinByTank] AttachedHealthBarNode healthBar) { this.UpdateHealth(tank.health, tank.healthConfig, healthBar.healthBar); }
// Start is called before the first frame update void Start() { healthChangedEvent = new HealthChangedEvent(); EventManager.AddHealthChangedInvokers(gameObject); }
public void TankGetHit(HealthChangedEvent e, SelfTankWithLastHealth selfTank) { selfTank.lastHealth.LastHealth = selfTank.health.CurrentHealth; }
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); }