public static GameEntity SetStat( this GameEntity gameEntity, StatFlag statFlag, float value) { gameEntity.statsComp.Vars[statFlag.ToIdx()] = value; gameEntity.NotifyStatChange(statFlag, value); return(gameEntity); }
public static string ParseStr(this StatFlag value) { switch (value) { case StatFlag.NO: return(Keywords.w_NO); case StatFlag.FULL: return(Keywords.w_FULL); case StatFlag.YES: return(Keywords.w_YES); default: return(null); } }
public static bool TryParse(string text, out StatFlag result) { if (text.Match(Keywords.w_NO)) { result = StatFlag.NO; } else if (text.Match(Keywords.w_FULL)) { result = StatFlag.FULL; } else if (text.Match(Keywords.w_YES)) { result = StatFlag.YES; } else { result = (StatFlag)(-1); return(false); } return(true); }
public static GameEntity NotifyStatChange( this GameEntity gameEntity, StatFlag statFlag, float value) { #if DEBUG if (!gameEntity.hasStatsComp) { Debug.LogError($"通知Stat变化失败,Entity 没有Stats组件"); return(gameEntity); } #endif gameEntity.statsComp.EventDispatcher.Send(StatEvent.Change, new StatChangeData { StatFlag = statFlag, Value = value }); return(gameEntity); }
void IStream.Stat(out STATSTG pstatstg, StatFlag grfStatFlag) { throw new NotImplementedException(); }
public static float GetStat( this GameEntity gameEntity, StatFlag statFlag) { return(gameEntity.statsComp.Vars[statFlag.ToIdx()]); }
public static short ToIdx(this StatFlag flag) { return((short)flag); }