SETCARD.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. namespace OpenVIII.Fields.Scripts.Instructions
  2. {
  3. /// <summary>
  4. /// Set Card? Card ID and NPC?
  5. /// </summary>
  6. /// <see cref="http://wiki.ffrtt.ru/index.php?title=FF8/Field/Script/Opcodes/15E_SETCARD&action=edit&redlink=1"/>
  7. public sealed class SETCARD : JsmInstruction
  8. {
  9. #region Fields
  10. /// <summary>
  11. /// I think this is the card ID.
  12. /// </summary>
  13. private readonly IJsmExpression _cardID;
  14. /// <summary>
  15. /// Unsure Maybe NPC who has the card?
  16. /// </summary>
  17. private readonly IJsmExpression _maybeNPC;
  18. #endregion Fields
  19. #region Constructors
  20. public SETCARD(IJsmExpression maybeNPC, IJsmExpression cardID)
  21. {
  22. _maybeNPC = maybeNPC;
  23. _cardID = cardID;
  24. }
  25. public SETCARD(int parameter, IStack<IJsmExpression> stack)
  26. : this(
  27. cardID: stack.Pop(), //can't cast to card ID with out doing something first
  28. maybeNPC: stack.Pop())
  29. {
  30. }
  31. #endregion Constructors
  32. #region Methods
  33. public override string ToString() => $"{nameof(SETCARD)}({nameof(_maybeNPC)}: {_maybeNPC}, {nameof(_cardID)}: {_cardID})";
  34. #endregion Methods
  35. }
  36. }