public void RequestStatChange(MyEntityStat stat) { List<StatInfo> changedStats = new List<StatInfo>(); changedStats.Add(new StatInfo() { StatId = stat.StatId, Amount = stat.Value }); // Regen left not used MyMultiplayer.RaiseStaticEvent(s => MyEntityStatComponent.OnStatChangedRequest, Entity.EntityId, changedStats); }
public virtual void Init(MyObjectBuilder_Base objectBuilder, MyEntityStat parentStat) { m_parentStat = parentStat; var builder = objectBuilder as MyObjectBuilder_EntityStatRegenEffect; if (builder == null) { return; } Debug.Assert(builder.Interval > 0f); if (builder.Interval <= 0f) { return; } m_amount = builder.TickAmount; m_interval = builder.Interval; m_maxRegenRatio = builder.MaxRegenRatio; m_minRegenRatio = builder.MinRegenRatio; m_duration = builder.Duration - (builder.AliveTime / 1000); ResetRegenTime(); }
public void RequestStatChange(MyEntityStat stat) { EntityStatChangedMsg msg = new EntityStatChangedMsg(); msg.EntityId = Entity.EntityId; msg.ChangedStats = new List<StatInfo>(); msg.ChangedStats.Add(new StatInfo() { StatId = stat.StatId, Amount = stat.Value }); // Regen left not used MySession.Static.SyncLayer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request); }
public MyGuiControlStat(MyEntityStat stat, Vector2 position, Vector2 size, MyGuiDrawAlignEnum originAlign = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER) : base(position: position, size: size, originAlign: originAlign) { Debug.Assert(stat != null); m_stat = stat; if(m_stat != null) { m_stat.OnStatChanged += UpdateStatText; } }
public MyGuiControlStat(MyEntityStat stat, Vector2 position, Vector2 size, MyGuiDrawAlignEnum originAlign = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER) : base(position: position, size: size, originAlign: originAlign) { Debug.Assert(stat != null); m_stat = stat; var vecColor = m_stat.StatDefinition.GuiDef.CriticalColorFrom; m_criticalValueColorFrom = new Color(vecColor.X, vecColor.Y, vecColor.Z); vecColor = m_stat.StatDefinition.GuiDef.CriticalColorTo; m_criticalValueColorTo = new Color(vecColor.X, vecColor.Y, vecColor.Z); if(m_stat != null) { m_stat.OnStatChanged += UpdateStatControl; } }
public virtual void Init(MyObjectBuilder_Base objectBuilder, MyEntityStat parentStat) { this.m_parentStat = parentStat; MyObjectBuilder_EntityStatRegenEffect effect = objectBuilder as MyObjectBuilder_EntityStatRegenEffect; if ((effect != null) && (effect.Interval > 0f)) { this.m_amount = effect.TickAmount; this.m_interval = effect.Interval; this.m_maxRegenRatio = effect.MaxRegenRatio; this.m_minRegenRatio = effect.MinRegenRatio; this.m_duration = effect.Duration - (effect.AliveTime / 1000f); this.ResetRegenTime(); } }
public MyGuiControlStat(MyEntityStat stat, Vector2 position, Vector2 size, MyGuiDrawAlignEnum originAlign = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER) : base(position: position, size: size, originAlign: originAlign) { Debug.Assert(stat != null); m_stat = stat; var vecColor = m_stat.StatDefinition.GuiDef.CriticalColorFrom; m_criticalValueColorFrom = new Color(vecColor.X, vecColor.Y, vecColor.Z); vecColor = m_stat.StatDefinition.GuiDef.CriticalColorTo; m_criticalValueColorTo = new Color(vecColor.X, vecColor.Y, vecColor.Z); if(m_stat != null) { m_stat.OnStatChanged += UpdateStatControl; m_stat.OnStatChanged += DisplayStatNotification; m_outOfStatNotification = new MyHudNotification(MyCommonTexts.NotificationStatZero, disappearTimeMs: 1000, font: MyFontEnum.Red, level: MyNotificationLevel.Important); m_outOfStatNotification.SetTextFormatArguments(m_stat.StatId.ToString()); } }
public virtual void Init(MyObjectBuilder_Base objectBuilder, MyEntityStat parentStat) { m_parentStat = parentStat; var builder = objectBuilder as MyObjectBuilder_EntityStatRegenEffect; if (builder == null) return; Debug.Assert(builder.Interval > 0f); if (builder.Interval <= 0f) return; m_amount = builder.TickAmount; m_interval = builder.Interval; m_maxRegenRatio = builder.MaxRegenRatio; m_minRegenRatio = builder.MinRegenRatio; m_duration = builder.Duration - builder.AliveTime; }
private MyEntityStat AddStat(MyStringHash statId, MyObjectBuilder_EntityStat objectBuilder) { MyEntityStat stat = null; if (!m_stats.TryGetValue(statId, out stat)) { stat = new MyEntityStat(); stat.Init(objectBuilder); m_stats.Add(statId, stat); } else stat.ClearEffects(); return stat; }
public bool TryGetStat(MyStringHash statId, out MyEntityStat outStat) { return m_stats.TryGetValue(statId, out outStat); }
private MyEntityStat AddStat(MyStringHash statId, MyObjectBuilder_EntityStat objectBuilder, bool forceNewValues = false) { MyEntityStat stat = null; if (m_stats.TryGetValue(statId, out stat)) { if(!forceNewValues) objectBuilder.Value = stat.CurrentRatio; stat.ClearEffects(); m_stats.Remove(statId); } stat = new MyEntityStat(); stat.Init(objectBuilder); m_stats.Add(statId, stat); return stat; }