Fluorohydride / ygopro-pre-script

91 stars 108 forks source link

CP17 remaining cards #118

Closed EerieCode closed 7 years ago

EerieCode commented 7 years ago
EerieCode commented 7 years ago

I believe there is a problem with scripting "Performapal Odd-Eyes Synchron": specifically, as you can imagine, the problem is the final effect that Synchro Summons immediately after Special Summoning a monster from the Pendulum Zone. At a first glance, that's the same concept as the Crystrons Tuners: first you Special Summon from somewhere, then you Synchro Summon. The problem is that, as far as I know, cards in the Pendulum Zone are hardcoded so that they can never be Synchro Materials: as such, there will never be a monster summonable using Synchron and a card in the Pendulum Zone, and so the effect will never work. This is basically the same issue we had previously with "Pendulum Fusion" and "Fullmetalfoes Alkahest": the hardcoding in the core prevents us from implementing effects like these. My suggestion would be to completely remove this location-based hardcoding (ideally from Xyz too, at least for consistency, but for Synchro is absolutely needed) and implementing an effect similar to Alkahest's, where we used EFFECT_EXTRA_FUSION_MATERIAL to allow Spells and Traps to be used as materials: this would allow us to implement this and eventual similar effects without having to alter the core every single time. Any thoughts?

destdev commented 7 years ago

I've tried to create a workaround for the past 3 hours without any success, I give up now >.> there's only 1 idea left in me, but I don't have time to toy around with that atm ... at the start of a duel, check if any non-tuner pendulum in hand/deck/extra is able to summon any synchro with this card, then create connections... thus checking the ability to sync before becomming a pendulum spell this doesn't take any extras into account, but should work with the basics ... if anyone wants to try and toy around with this idea, feel free, else I'll do it somewhen on Sunday

EerieCode commented 7 years ago

Ok, thanks to MLD's suggestion, I've managed to script a working version of the card: at the moment, when checking for Synchron's target, it will use Card.AssumeProperty to treat the card type as the Pendulum monster's original type, thus bypassing the core restrictions. That being said, while the card is currently usable, I'm not entirely sure this solution won't give any issues, so I'd still recommend doing something on the core to really fix this problem (according to Edo, Card.IsCanBeSynchroMaterial at the moment returns false if the card is not a monster, so maybe we could use SynchroType in there and alter that function so that it always returns the original type for cards in the Pendulum Zone? In the end the solution should be similar to the one previously done for Fusions).

destdev commented 7 years ago

have you tested this? it doesn't seem to be working for me, I have Clear Wing in the extra and I'm unable to special summon Performapal Odd-Eyes Light Phoenix with the effect ... and yes, I've already adjusted the script to work with an old core version and deleted the "special summon fromex" parts

EerieCode commented 7 years ago

I tested it on a puzzle in Percy's current version. "Odd-Eyes Persona Dragon" in the Pendulum Zone, Synchron on the field: I could activate the effect and Synchro Summon Clear Wing. Has Card.AssumeProperty been changed recently, by chance?

destdev commented 7 years ago

no idea, either that or I do something seriously wrong... when was the last time percy has updated the core from fluoro?

EerieCode commented 7 years ago

Around the end of January, I think? I don't think it has been updated since the release of the last version...

destdev commented 7 years ago

tbh, no idea what's wrong on my end, we updated last time around the time the cyvers type was implemented... there shouldn't be any difference, I copied your script from the percy repo 1:1 and I also removed the tuner check on line 112, that also made problems when I tested around... well, I'll keep searching for the issue and see what I may find then

destdev commented 7 years ago

for whatever reason "GetOriginalType()" doesn't seem to work on our end at the Pendulum location, no idea why... may be some kind of fault, caused by reverted updates we had during begin of april or something I guess...

destdev commented 7 years ago

have you tried that outside of a puzzle? I got it to work now within a puzzle (instead of original type I just assume Type Monster + Type Pendulum now), however it doesn't work in a LAN duel... is that a fault of our core again or can anyone confirm that behaviour? Also I've noticed, (at least in Puzzle mode) I was able to summon Clear Wing with Persona Dragon, however I was not able to summon Gaia Knight with any of the Zefra Tellarknight monsters

EerieCode commented 7 years ago

Oddly enough, the same thing happened to me right now: I could use Synchron in a puzzle, but trying the exact same move in an actual Duel didn't work. I guess I'll have to look for another solution...

TheOnePharaoh commented 7 years ago

https://ygorganization.com/ocg-collectors-pack-2017-rulings/

those are the ones that I thought may need script fixes.