public ConvergeCommand_TakeControl(JSONArray template)
        {
            newControllerSelector = ConvergeSelector.New(template.getProperty(1));
            victims = ConvergeSelector.New(template.getProperty(2));

            if (template.Length == 4)
            {
                duration = (ConvergeDuration)Enum.Parse(typeof(ConvergeDuration), template.getString(3));
            }
            else
            {
                duration = ConvergeDuration.Permanent;
            }
        }
        public ConvergeCommand_Upgrade(JSONArray template, ContentManager Content)
        {
            patients        = ConvergeSelector.New(template.getProperty(1));
            powerAmount     = ConvergeCalculation.New(template.getProperty(2));
            toughnessAmount = ConvergeCalculation.New(template.getProperty(3));
            if (template.Length >= 5)
            {
                keywords = template.getArray(4).ToKeywords();
            }

            if (template.Length >= 6)
            {
                duration = (ConvergeDuration)Enum.Parse(typeof(ConvergeDuration), template.getString(5));
            }
            else
            {
                duration = ConvergeDuration.Permanent;
            }

            if (template.Length >= 7)
            {
                new_art = Content.Load <Texture2D>(template.getString(6));
            }
        }
 public ConvergeEffect_GainTriggered(ConvergeTriggeredAbilitySpec abilitySpec, ConvergeObject subject, ConvergeObject source, ConvergeDuration duration) : base(source, duration)
 {
     this.ability = new ConvergeTriggeredAbility(abilitySpec, subject);
 }
 public ConvergeEffect_Upgrade(int power, int toughness, ConvergeKeyword keywords, ConvergeObject source, Texture2D new_art, ConvergeDuration duration) : base(source, duration)
 {
     this.power     = power;
     this.toughness = toughness;
     this.keywords  = keywords;
     this.new_art   = new_art;
 }
 public ConvergeEffect_Control(ConvergePlayer controller, ConvergeObject source, ConvergeDuration duration) : base(source, duration)
 {
     this.controller = controller;
 }
 public ConvergeEffect(ConvergeObject source, ConvergeDuration duration)
 {
     this.source   = source;
     this.duration = duration;
     this.expired  = false;
 }
 public ConvergeCommand_GrantTriggered(JSONArray template, ContentManager Content)
 {
     subjects    = ConvergeSelector.New(template.getProperty(1));
     duration    = (ConvergeDuration)Enum.Parse(typeof(ConvergeDuration), template.getString(2));
     abilitySpec = new ConvergeTriggeredAbilitySpec(template.getJSON(3), Content);
 }