| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- public partial class CardEffectCommons
- {
- public enum DeleteTiming
- {
- AtTurnEnd,
- AtOwnTurnEnd,
- AtOpponentTurnEnd
- }
- public static IEnumerator AddSelfDeleteEffect(Permanent permanent, DeleteTiming deleteTiming, ICardEffect activateClass)
- {
- bool deleteOnOwnturn = deleteTiming != DeleteTiming.AtOpponentTurnEnd;
- bool deleteOnOpponentsTurn = deleteTiming != DeleteTiming.AtOwnTurnEnd;
- string message = "Delete this at turn end";
- if (deleteOnOpponentsTurn && !deleteOnOwnturn)
- message = "Delete this at opponent's turn end";
- if (deleteOnOwnturn && ! deleteOnOpponentsTurn)
- message = "Delete this at your turn end.";
- permanent.PermanentEffects.Add(GetCardEffect);
- permanent.PermanentEffects.Add(GetDetailEffect);
- ICardEffect GetCardEffect(EffectTiming timing)
- {
- if (timing == EffectTiming.OnEndTurn)
- {
- return PermanentEffectFactory.DeleteSelfEffect(permanent, activateClass, deleteOnOwnturn, deleteOnOpponentsTurn);
- }
- return null;
- }
- ICardEffect GetDetailEffect(EffectTiming timing)
- {
- if (timing == EffectTiming.None)
- {
- return PermanentEffectFactory.AddDetailClass(permanent, message, true, activateClass);
- }
- return null;
- }
- yield return null;
- }
- }
|