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(); }