Fluorohydride / ygopro-core

ygopro script engine.
MIT License
327 stars 134 forks source link

fix: flip summoning #548

Closed salix5 closed 7 months ago

salix5 commented 9 months ago

@mercury233 @purerosefallen @465uytrewq

Problem

https://www.db.yugioh-card.com/yugiohdb/faq_search.action?ope=5&fid=24013&keyword=&tag=-1&request_locale=ja https://www.db.yugioh-card.com/yugiohdb/faq_search.action?ope=5&fid=281&keyword=&tag=-1&request_locale=ja Flip Summon Gemini Summon Now the monster is on the field while EVENT_SUMMON, EVENT_FLIP_SUMMON.

Solution

remove

STATUS_FUTURE_FUSION It can be detected by custom summon type SUMMON_VALUE_FUTURE_FUSION.

add

STATUS_SUMMONING The monster is Normal Summoning (except Gemini Summon) or Special Summoning. It is in some place outside the field, and it is not affected by most effects.

STATUS_FLIP_SUMMONING The monster is Flip Summoning or Gemini Summoning. It is on the field, but its effect is not enabled yet. This status is lost when leaving the field or face-down.

STATUS_FLIP_SUMMON_DISABLED The Flip Summoning or Gemini Summon is negated. It will be sent to the GY from Field.


EVENT_SUMMON EVENT_FLIP_SUMMON Summon/Flip Summon can only move 1 monster. So the target of Duel.NegateSummon should be exactly 1 card. Now it will check card::is_summon_negatable.

card::is_summon_negatable Check if the summon of this card can be neagted.

Reference

https://ocg-rule.readthedocs.io/zh-cn/latest/c03/%E6%97%A0%E6%95%88.html#id3

https://www.db.yugioh-card.com/yugiohdb/faq_search.action?ope=5&fid=24013&keyword=&tag=-1&request_locale=ja STATUS_FLIP_SUMMONING is lost when when leaving the field or face-down.