示例#1
0
        private Activity(string name,
                         LocationFeature[] requiredFeatures = null,
                         bool selectable   = true,
                         bool cancellable  = true,
                         Stats statChanges = null,
                         int duration      = 1,
                         Update onComplete = null
                         )
        {
            Name             = name;
            LocationFeatures = requiredFeatures ?? new LocationFeature[] {};
            Selectable       = selectable;
            Cancellable      = cancellable;
            StatChanges      = statChanges ?? new Stats();
            InitialDuration  = duration;
            TicksLeft        = duration;
            OnComplete       = onComplete ?? (hans => { });

            foreach (var stat in (Stat[])Enum.GetValues(typeof(Stat)))
            {
                if (!StatChanges.ContainsKey(stat))
                {
                    StatChanges.Add(stat, DefaultDecay[stat] * duration);
                }
            }
        }