예제 #1
0
 public static GameEntity SetStat(
     this GameEntity gameEntity,
     StatFlag statFlag,
     float value)
 {
     gameEntity.statsComp.Vars[statFlag.ToIdx()] = value;
     gameEntity.NotifyStatChange(statFlag, value);
     return(gameEntity);
 }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
 void IStream.Stat(out STATSTG pstatstg, StatFlag grfStatFlag)
 {
     throw new NotImplementedException();
 }
예제 #6
0
 public static float GetStat(
     this GameEntity gameEntity,
     StatFlag statFlag)
 {
     return(gameEntity.statsComp.Vars[statFlag.ToIdx()]);
 }
예제 #7
0
 public static short ToIdx(this StatFlag flag)
 {
     return((short)flag);
 }