Exemple #1
0
        public void Load(IContainer game, Ability ability)
        {
            var parameter = DamageActionParameter.FromString(ability.GetParams(nameof(DamagePlayerAction)));

            Amount = parameter.DamageAmount;
            Source = ability.Owner;
            Player = Source.Owner;

            var enemyPlayer = game.Match.Players.Single(p => Player.Index != p.Index);

            Target = parameter.WhichPlayer == Alliance.Ally
                ? Player
                : enemyPlayer;
        }
    public static IActionParameterEditor CreateEditor(ActionDefinition actionDef)
    {
        switch (actionDef.ActionName)
        {
        case nameof(DamagePlayerAction):
            return(new DamageActionParameterEditor(DamageActionParameter.FromString(actionDef.Params)));

        case nameof(DrawCardsAction):
            return(new DrawCardsActionParameterEditor(DrawCardsActionParameter.FromString(actionDef.Params)));

        case nameof(DamagePlayerOrCreatureAction):
            return(new DamagePlayerOrCreatureActionParameterEditor(DamagePlayerOrCreatureParameter.FromString(actionDef.Params)));

        case nameof(ShuffleDeckAction):
            return(new ShuffleDeckActionParameterEditor(ShuffleDeckActionParameter.FromString(actionDef.Params)));
        }

        return(null);
    }
 public DamageActionParameterEditor(DamageActionParameter parameter)
 {
     _parameter      = parameter;
     SerializedValue = parameter.Serialize();
 }