internal Modifier CloneFor(Engine.ClonedEngine engine) { return(new Modifier(_property) .SetValue(_value) .SetTarget(engine.Cache.Get(_target.Id)) .SetSource(engine.Cache.Get(_source.Id))); }
internal void CloneFrom(ModifierContainer modifiers, Engine.ClonedEngine engine) { foreach (var modifier in modifiers.GetAll()) { Add(modifier.CloneFor(engine)); } }
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()); }