@@ -483,11 +486,13 @@ function s.create_category_list()
...
@@ -483,11 +486,13 @@ function s.create_category_list()
["SpecialSummonInFacedownDefensePosition"]={"Special summon in defense position",CATEGORY_SPECIAL_SUMMON,HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE}},
["SpecialSummonInFacedownDefensePosition"]={"Special summon in defense position",CATEGORY_SPECIAL_SUMMON,HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEDOWN_DEFENSE}},
["NegateEffect&SpecialSummon"]={"Special summon, but negate its effects",{CATEGORY_SPECIAL_SUMMON,CATEGORY_DISABLE},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{s.negate_effect_and_special_summon,10,sg,0,tp,tp,true,false,POS_FACEUP}},
["NegateEffect&SpecialSummon"]={"Special summon, but negate its effects",{CATEGORY_SPECIAL_SUMMON,CATEGORY_DISABLE},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{s.negate_effect_and_special_summon,10,sg,0,tp,tp,true,false,POS_FACEUP}},
["SpecialSummonFromGY"]={"Special Summon from GY",{CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},0},
["SpecialSummonFromGY"]={"Special Summon from GY",{CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
["SpecialSummonFromDeck"]={"Special Summon from deck",{CATEGORY_DECKDES,CATEGORY_SPECIAL_SUMMON},0},
["SpecialSummonFromDeck"]={"Special Summon from deck",{CATEGORY_DECKDES,CATEGORY_SPECIAL_SUMMON},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
["SpecialSummonFromDeck/GY"]={"Special Summon from deck or GY",{CATEGORY_DECKDES,CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},0},
["SpecialSummonFromExtra"]={"Special Summon from extra",CATEGORY_SPECIAL_SUMMON,HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
["SpecialSummonFromHand/GY"]={"Special Summon from hand or GY",{CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},0},
["SpecialSummonFromHand/Deck/GY"]={"Special Summon from hand, deck and/or GY",{CATEGORY_DECKDES,CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
["SpecialSummonFromDeck/Extra"]={"Special Summon from Deck or Extra",{CATEGORY_DECKDES,CATEGORY_SPECIAL_SUMMON},0},
["SpecialSummonFromDeck/GY"]={"Special Summon from deck or GY",{CATEGORY_DECKDES,CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
["SpecialSummonFromHand/GY"]={"Special Summon from hand or GY",{CATEGORY_GRAVE_SPSUMMON,CATEGORY_SPECIAL_SUMMON},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
["SpecialSummonFromDeck/Extra"]={"Special Summon from Deck or Extra",{CATEGORY_DECKDES,CATEGORY_SPECIAL_SUMMON},HINTMSG_SPSUMMON,{74892653,2},{17535764,1},{Scl.SpecialSummon,10,sg,0,tp,tp,false,false,POS_FACEUP}},
@@ -528,10 +533,12 @@ function s.create_category_list()
...
@@ -528,10 +533,12 @@ function s.create_category_list()
["Reveal"]={"Reveal, (cannot show public)",0,HINTMSG_CONFIRM,{51351302,0},nil,{Scl.RevealCards,2,sg,RESETS_SCL}},
["Reveal"]={"Reveal, (cannot show public)",0,HINTMSG_CONFIRM,{51351302,0},nil,{Scl.RevealCards,2,sg,RESETS_SCL}},
["RevealUntilEP"]={"Reveal until End-Phase",0,HINTMSG_CONFIRM,{51351302,0},nil,{Scl.RevealCards,2,sg,RESETS_EP_SCL}},
["RevealUntilEP"]={"Reveal until End-Phase",0,HINTMSG_CONFIRM,{51351302,0},nil,{Scl.RevealCards,2,sg,RESETS_EP_SCL}},
["PlaceOnField"]={"Place on field",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp}},
["PlaceOnField"]={"Place on field",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp}},
["PlaceInSpell&TrapZone"]={"Place in spell and trap zone",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp,tp,"Spell&TrapZone"}},
["PlaceInSpell&TrapZone"]={"Place in spell and trap zone",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp,tp,"Spell&TrapZone",POS_FACEUP,true}},
["PlaceInFieldZone"]={"Place in spell and trap zone",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp,tp,"FieldZone"}},
["PlaceInFieldZone"]={"Place in spell and trap zone",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp,tp,"FieldZone",POS_FACEUP,true}},
["PlaceInPendulumZone"]={"Place in spell and trap zone",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp,tp,"PendulumZone"}},
["PlaceInPendulumZone"]={"Place in spell and trap zone",0,HINTMSG_TOFIELD,DESC_PLACE_TO_FIELD_SCL,nil,{Scl.Place2Field,7,sg,tp,tp,"PendulumZone",POS_FACEUP,true}},
--Register Condition, Cost, Target and Operation for reg_eff
--Register Condition, Cost, Target and Operation for reg_eff
--cost, target and operation can be function or array. If be array-format, it calls s.list_format_cost_or_target_or_operation to change it to function.
--cost, target and operation can be function or array. If be array-format, it calls scl.list_format_cost_or_target_or_operation to change it to function.
--//return effect for code1, effect for code2, ...
--//return effect for code1, effect for code2, ...
-->>this function is an intermediate function, eg see Scl.CreateSingleBuffEffect, Scl.CreateSingleBuffCondition, Scl.CreateFieldBuffEffect, Scl.CreatePlayerBuffEffect and Scl.AddSingleBuff, Scl.AddEquipBuff
-->>this function is an intermediate function, eg see Scl.CreateSingleBuffEffect, Scl.CreateSingleBuffCondition, Scl.CreateFieldBuffEffect, Scl.CreatePlayerBuffEffect and Scl.AddSingleBuff, Scl.AddEquipBuff
--Mix several single activate effects into one activate effect.
--Mix several single activate effects into one activate effect.
...
@@ -2361,7 +2380,7 @@ function Scl.CreateQuickOptionalEffect(reg_obj, code, desc_obj, lim_obj, ctgy, f
...
@@ -2361,7 +2380,7 @@ function Scl.CreateQuickOptionalEffect(reg_obj, code, desc_obj, lim_obj, ctgy, f
end
end
--Create a quick effect, negate the card's effect (neg_typ == "NegateEffect") or activation (neg_typ == "NegateActivation").
--Create a quick effect, negate the card's effect (neg_typ == "NegateEffect") or activation (neg_typ == "NegateActivation").
--op_str is the index to find the corresponding operation and the extra category(s) in Scl.Category_List, means negate the effect/activation, and do that operation to the negated card.
--op_str is the index to find the corresponding operation and the extra category(s) in Scl.Category_List, means negate the effect/activation, and do that operation to the negated card.
--con can be function, nil, or be a array { ... }, if be nil or array-format, it equals to call the s.negate_activation_or_effect_con("NegateEffect" ,nil/ ...).
--con can be function, nil, or be a array { ... }, if be nil or array-format, it equals to call the scl.negate_activation_or_effect_con("NegateEffect" ,nil/ ...).
--automatic add "EFFECT_FLAG_DAMAGE_STEP" to the property if neg_typ == "NegateEffect".
--automatic add "EFFECT_FLAG_DAMAGE_STEP" to the property if neg_typ == "NegateEffect".
--automatic add "EFFECT_FLAG_DAMAGE_STEP + EFFECT_FLAG_DAMAGE_CAL" to the property if neg_typ == "NegateActivation".
--automatic add "EFFECT_FLAG_DAMAGE_STEP + EFFECT_FLAG_DAMAGE_CAL" to the property if neg_typ == "NegateActivation".
--ex_ctgy (defualt == nil) means extra categroy(s) the ex_op brings to.
--ex_ctgy (defualt == nil) means extra categroy(s) the ex_op brings to.
...
@@ -2381,9 +2400,9 @@ function Scl.CreateQuickOptionalEffect_Negate(reg_obj, neg_typ, op_str, lim_obj,
...
@@ -2381,9 +2400,9 @@ function Scl.CreateQuickOptionalEffect_Negate(reg_obj, neg_typ, op_str, lim_obj,
--Special Summon a monster to either player's field, call Scl.AddSummonBuff and Scl.AddSummonBuff2Self.
--Special Summon a monster to either player's field, call Scl.AddSingleBuff and Scl.AddSingleBuff2Self.
--use nearly same as Duel.SpecialSummon.
--use nearly same as Duel.SpecialSummon.
--but the parama - zone_pl is useless, it is replaced by sum_eff (summon effect), to check whether the card(s) can be special summoned.
--but the parama - zone_pl is useless, it is replaced by sum_eff (summon effect), to check whether the card(s) can be special summoned.
--also the parama - sum_zone is change to array-format { [0] = number-format zone0, [1] = number-format zone1 }, means can special summon to player 0's zone0, or special summon to player1's zone1 (default == { [0] == 0x1f }, { [1] == 0x1f }).
--also the parama - sum_zone is change to array-format { [0] = number-format zone0, [1] = number-format zone1 }, means can special summon to player 0's zone0, or special summon to player1's zone1 (default == { [0] == 0x1f }, { [1] == 0x1f }).
...
@@ -3029,7 +3058,7 @@ function scl.target_special_summon_token(tk_code_or_fun, ct, sum_pos, tg_p, leav
...
@@ -3029,7 +3058,7 @@ function scl.target_special_summon_token(tk_code_or_fun, ct, sum_pos, tg_p, leav
--Get effect cost/target/operation paramas form list, for quick set the effect cost/target/operation (s.list_format_cost_or_target_or_operation(list))
--Get effect cost/target/operation paramas form list, for quick set the effect cost/target/operation (scl.list_format_cost_or_target_or_operation(list))
--"s.list_format_cost_or_target_or_operation" will first check if all lists is meet their condition, if the effect pass all lists' checks, you can activate/solve that effect, then do some different operations, depending on each list's first parama - list_typ
--"scl.list_format_cost_or_target_or_operation" will first check if all lists is meet their condition, if the effect pass all lists' checks, you can activate/solve that effect, then do some different operations, depending on each list's first parama - list_typ
--[[
--[[
the first parama in the list always be list_typ, it means that list's kind.
the first parama in the list always be list_typ, it means that list's kind.
list_typ == "Cost", means it is a cost-list (using in Effect.SetCost), when you activate the effect, you must select a number of cards (depending the list's "minct" and "maxct" prarmas) form the card groups that meet the condition, then immediately do cost on them. If a cost indicated by one of the lists cannot be operated correctly, the remainder costs indicated by the remainder lists will be immediately termination of operation.
list_typ == "Cost", means it is a cost-list (using in Effect.SetCost), when you activate the effect, you must select a number of cards (depending the list's "minct" and "maxct" prarmas) form the card groups that meet the condition, then immediately do cost on them. If a cost indicated by one of the lists cannot be operated correctly, the remainder costs indicated by the remainder lists will be immediately termination of operation.
...
@@ -3241,14 +3270,14 @@ function s.get_cost_or_target_or_operation_paramas(arr, e, tp, eg, ep, ev, re, r
...
@@ -3241,14 +3270,14 @@ function s.get_cost_or_target_or_operation_paramas(arr, e, tp, eg, ep, ev, re, r
end
end
--Change a list-format effect cost/target/operation to function-format, using in Scl.CreatexxxEffect.
--Change a list-format effect cost/target/operation to function-format, using in Scl.CreatexxxEffect.
--list format and eg see s.get_cost_or_target_or_operation_paramas
--list format and eg see s.get_cost_or_target_or_operation_paramas
--for some shenbi reasons, koshipro will lost paramas during the spell/trap card call this function, so I must use a table to protect the paramas, but original edition ygopro don't have this problem.
--use nearly same as Duel.MoveToField, but switch the sequence of the format "card_obj" and "movep"
--if you want to activate a field spell, and there is a card currently in the field zone, this function will first send that card to GY, and will raise an event for "Ancient Pixie Dragon" after activated.
--if you want to activate a field spell, and there is a card currently in the field zone, this function will first send that card to GY, and will raise an event for "Ancient Pixie Dragon" after activated.
--it will do the cost of the activated card
--it will do the cost of the activated effect
--if apply_effect == true (default == false), it will do the target and operation of the activated effect.
--//return activated count, activated group, first activated card
--//return activated count, activated group, first activated card