Fluorohydride / ygopro-pre-script

90 stars 111 forks source link

About new card:How to implement the release-limit-effect from 聖霊獣騎 レイラウタリ #1231

Open Crescent0v0 opened 10 months ago

Crescent0v0 commented 10 months ago

Flawed version without this effect in1232 Problem: no way of checking any releasing behavior were serve for activate-effect or not. A bad way is create a code for this effect and then add check for all those card with releasing.Just like青眼の精霊龍


该卡的缺陷版本已推送至1232 问题:没有办法判断游戏中的解放行为是否服务于卡的效果的发动。 目前想到的妥协办法是为其设置一个code,有解放怪兽来发动的卡增加对应检查,即同青眼精灵龙

Lyris12 commented 10 months ago

💡 Is there room for a REASON_ACTIVATE, for example? Or exposing any effect(s) being used in EFFECT_UNRELEASABLE_EFFECT and/or EFFECT_UNRELEASABLE_NONUM?

Crescent0v0 commented 10 months ago

No REASON_ACTIVATE, otherwise easy sloved like アクセスコード・トーカー I try with SetCode(EFFECT_CANNOT_RELEASE)+rellimit(e,c,tp,sumtp) like 闇黒の魔王ディアボロス, but it doesn't contain any parameter about reason. What's EFFECT_UNRELEASABLE_NONUM? I can't found it in any script

Lyris12 commented 10 months ago

Cannot be Tributed, except for a Tribute Summon e.g. Level Eater, several "Duston" Effect Monsters, e.g. Red Duston

Crescent0v0 commented 10 months ago

Donot work, already checkThe Immortal Bushi

Lyris12 commented 10 months ago

Cannot be Tributed by card effects

~Diabolos, King of the Abyss Hmm... Yeah, this is an issue...

Lyris12 commented 10 months ago

Ah, found a way, but 1 it requires a core change, 2 it requires several scripts, i.e. those which use Duel.GetReleaseGroup for cost, to be changed, and 3 it needs further testing: https://github.com/Lyris12/ygopro-core-1/commit/153df607c48e934fce73d6f4446d56f7dee7ef3d For the initial_effect:

    local e1=Effect.CreateEffect(c)
    e1:SetType(EFFECT_TYPE_FIELD)
    e1:SetCode(EFFECT_UNRELEASABLE_NONSUM)
    e1:SetRange(LOCATION_MZONE)
    e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
    e1:SetTargetRange(0xff,0xff)
    e1:SetValue(s.limval)
    c:RegisterEffect(e1)

Then, as a new block:

function s.limval(e,c,tp,re)
    return re and re:IsActivated() and c:IsReason(REASON_COST)
end
Crescent0v0 commented 10 months ago

Excellent skill,boss

Lyris12 commented 10 months ago

Excellent skill,boss

Again, my solution will need further testing, but thanks ^^

Crescent0v0 commented 10 months ago

Again, my solution will need further testing, but thanks ^^

@fallenstardust release a close beta ygomobile based on your changes, include https://github.com/Fluorohydride/ygopro-core/pull/515 and https://github.com/Fluorohydride/ygopro-pre-script/pull/1232 . And i have done some tests, they actually work.

Lyris12 commented 10 months ago

Ooo, wonderful news! Good to hear ^^