Exemple #1
0
        public static StatBlock CreateInstance(StatBlock template, params int[] values)
        {
            StatBlock instance = Instantiate(template);

            if (values.Length != 0 && values.Length != instance.Stats.Length)
            {
                throw new ArgumentException(string.Format("Initial stat values mismatch: expected {0}, found {1}",
                                                          instance.Stats.Length,
                                                          values.Length));
            }

            for (int i = 0; i < instance.Stats.Length; i++)
            {
                instance.Stats[i] = Instantiate(instance.Stats[i]);
                if (i < values.Length)
                {
                    instance.Stats[i].SetBaseValue(values[i]);
                }
            }

            foreach (Stat stat in instance.Stats)
            {
                instance._statsDict[stat.statName] = stat;
            }

            return(instance);
        }
 public SimpleActor(StatBlock stats)
 {
     visibleTiles = new List <RLBaseTile>();
     _stats       = stats;
     _inventory   = new List <RLBaseItem>();
 }
 public void BindStatBlock(Stat stat, StatBlock block)
 {
     block.OnStatsChanged += (statBlock => BindData(stat));
     BindData(stat);
 }
Exemple #4
0
 public void BindStatBlock(StatBlock statBlock)
 {
     _statBlock = statBlock;
     BindDataList(new List <Stat>(statBlock.Stats));
 }