Exemple #1
0
        public override Condition GetClone(StoryNode parent)
        {
            var retValue = base.GetClone(parent) as OrCondition;

            retValue.childConditions = _childConditionDefinitions.GetConcreteTypes(parent);

            return(retValue);
        }
Exemple #2
0
        public override Effect GetClone(StoryNode parent)
        {
            var retValue = base.GetClone(parent) as RandomEffect;

            retValue.effects = _effectDefinitions.GetConcreteTypes(parent);

            return(retValue);
        }
Exemple #3
0
        public override Effect GetClone(StoryNode parent)
        {
            var clone = base.GetClone(parent) as BreakLoopEffect;

            clone.original = this;

            return(clone);
        }
Exemple #4
0
        public StoryHolder(Location owner)
        {
            this.owner = owner;

            lifeStoryNode = new StoryNode();
            lifeStoryNode.parentLocation = owner;

            activeStories = new List <StoryNode>();
        }
Exemple #5
0
        public override Condition GetClone(StoryNode parent)
        {
            var retValue = base.GetClone(parent) as DecoratorCondition;

            if (_childConditionDefinition != null)
            {
                retValue.childCondition = _childConditionDefinition.GetConcreteType(parent);
            }
            else
            {
                retValue.childCondition = new TrueCondition();
            }

            return(retValue);
        }
Exemple #6
0
        public void RemoveStory(string definitionKey)
        {
            StoryNode storyNodeToRemove = null;

            foreach (var storyNode in activeStories)
            {
                if (storyNode.definition.definitionKey == definitionKey)
                {
                    storyNodeToRemove = storyNode;
                }
            }

            if (storyNodeToRemove != null)
            {
                activeStories.Remove(storyNodeToRemove);
            }
        }
Exemple #7
0
        public override Effect GetClone(StoryNode parent)
        {
            var retValue = base.GetClone(parent) as ConditionalEffect;

            if (_type == ConditionalType.SinglePair)
            {
                retValue.conditions  = _conditionDefinitions.GetConcreteTypes(parent);
                retValue.effects     = _effectDefinitions.GetConcreteTypes(parent);
                retValue.elseEffects = _elseEffectDefinitions.GetConcreteTypes(parent);
            }
            else if (_type == ConditionalType.MultiplePairs)
            {
                retValue._conditionEffectPairs = new KeyValuePair <Condition[], Effect[]> [_conditionEffectPairsDefinition.Length];

                for (int i = 0; i < _conditionEffectPairsDefinition.Length; i++)
                {
                    retValue._conditionEffectPairs[i] = new KeyValuePair <Condition[], Effect[]>(
                        _conditionEffectPairsDefinition[i].Key.GetConcreteTypes(parent),
                        _conditionEffectPairsDefinition[i].Value.GetConcreteTypes(parent)
                        );
                }
            }
            return(retValue);
        }
Exemple #8
0
 public virtual TChild GetClone(StoryNode parent)
 {
     this.parentStoryNode = parent;
     return((TChild)MemberwiseClone());
 }