示例#1
0
 internal Modifier CloneFor(Engine.ClonedEngine engine)
 {
     return(new Modifier(_property)
            .SetValue(_value)
            .SetTarget(engine.Cache.Get(_target.Id))
            .SetSource(engine.Cache.Get(_source.Id)));
 }
示例#2
0
 internal void CloneFrom(ModifierContainer modifiers, Engine.ClonedEngine engine)
 {
     foreach (var modifier in modifiers.GetAll())
     {
         Add(modifier.CloneFor(engine));
     }
 }
示例#3
0
        internal Copier(Engine source)
        {
            _engine = new Engine.ClonedEngine();

            if (source.Turn.GetOwner() != null)
            {
                _engine.Turn.StartWith(
                    _engine.Chiefs[source.Turn.GetOwner().Index],
                    source.Turn.GetNumber()
                    );
            }
            _engine.Triggers.CloneFrom(source.Triggers);
            _engine.Lantern.CloneFrom(source.Lantern);

            PreCloneChief(source.Chiefs[0], _engine.Chiefs[0]);
            PreCloneChief(source.Chiefs[1], _engine.Chiefs[1]);
            PostCloneCardsList(source.Chiefs[0].Cards.GetAll());
            PostCloneCardsList(source.Chiefs[1].Cards.GetAll());
        }