Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro-core
Commits
ea410524
Commit
ea410524
authored
Jan 17, 2020
by
DailyShana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move opening lua libs after their implements
parent
86b2cb09
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
623 additions
and
602 deletions
+623
-602
interpreter.cpp
interpreter.cpp
+5
-602
libcard.cpp
libcard.cpp
+262
-0
libdebug.cpp
libdebug.cpp
+19
-0
libduel.cpp
libduel.cpp
+218
-0
libeffect.cpp
libeffect.cpp
+62
-0
libgroup.cpp
libgroup.cpp
+51
-0
scriptlib.h
scriptlib.h
+6
-0
No files found.
interpreter.cpp
View file @
ea410524
...
@@ -13,589 +13,6 @@
...
@@ -13,589 +13,6 @@
#include "ocgapi.h"
#include "ocgapi.h"
#include "interpreter.h"
#include "interpreter.h"
static
const
struct
luaL_Reg
cardlib
[]
=
{
{
"GetCode"
,
scriptlib
::
card_get_code
},
{
"GetOriginalCode"
,
scriptlib
::
card_get_origin_code
},
{
"GetOriginalCodeRule"
,
scriptlib
::
card_get_origin_code_rule
},
{
"GetFusionCode"
,
scriptlib
::
card_get_fusion_code
},
{
"GetLinkCode"
,
scriptlib
::
card_get_link_code
},
{
"IsFusionCode"
,
scriptlib
::
card_is_fusion_code
},
{
"IsLinkCode"
,
scriptlib
::
card_is_link_code
},
{
"IsSetCard"
,
scriptlib
::
card_is_set_card
},
{
"IsOriginalSetCard"
,
scriptlib
::
card_is_origin_set_card
},
{
"IsPreviousSetCard"
,
scriptlib
::
card_is_pre_set_card
},
{
"IsFusionSetCard"
,
scriptlib
::
card_is_fusion_set_card
},
{
"IsLinkSetCard"
,
scriptlib
::
card_is_link_set_card
},
{
"GetType"
,
scriptlib
::
card_get_type
},
{
"GetOriginalType"
,
scriptlib
::
card_get_origin_type
},
{
"GetFusionType"
,
scriptlib
::
card_get_fusion_type
},
{
"GetSynchroType"
,
scriptlib
::
card_get_synchro_type
},
{
"GetXyzType"
,
scriptlib
::
card_get_xyz_type
},
{
"GetLinkType"
,
scriptlib
::
card_get_link_type
},
{
"GetLevel"
,
scriptlib
::
card_get_level
},
{
"GetRank"
,
scriptlib
::
card_get_rank
},
{
"GetLink"
,
scriptlib
::
card_get_link
},
{
"GetSynchroLevel"
,
scriptlib
::
card_get_synchro_level
},
{
"GetRitualLevel"
,
scriptlib
::
card_get_ritual_level
},
{
"GetOriginalLevel"
,
scriptlib
::
card_get_origin_level
},
{
"GetOriginalRank"
,
scriptlib
::
card_get_origin_rank
},
{
"IsXyzLevel"
,
scriptlib
::
card_is_xyz_level
},
{
"GetLeftScale"
,
scriptlib
::
card_get_lscale
},
{
"GetOriginalLeftScale"
,
scriptlib
::
card_get_origin_lscale
},
{
"GetRightScale"
,
scriptlib
::
card_get_rscale
},
{
"GetOriginalRightScale"
,
scriptlib
::
card_get_origin_rscale
},
{
"IsLinkMarker"
,
scriptlib
::
card_is_link_marker
},
{
"GetLinkedGroup"
,
scriptlib
::
card_get_linked_group
},
{
"GetLinkedGroupCount"
,
scriptlib
::
card_get_linked_group_count
},
{
"GetLinkedZone"
,
scriptlib
::
card_get_linked_zone
},
{
"GetMutualLinkedGroup"
,
scriptlib
::
card_get_mutual_linked_group
},
{
"GetMutualLinkedGroupCount"
,
scriptlib
::
card_get_mutual_linked_group_count
},
{
"GetMutualLinkedZone"
,
scriptlib
::
card_get_mutual_linked_zone
},
{
"IsLinkState"
,
scriptlib
::
card_is_link_state
},
{
"IsExtraLinkState"
,
scriptlib
::
card_is_extra_link_state
},
{
"GetColumnGroup"
,
scriptlib
::
card_get_column_group
},
{
"GetColumnGroupCount"
,
scriptlib
::
card_get_column_group_count
},
{
"GetColumnZone"
,
scriptlib
::
card_get_column_zone
},
{
"IsAllColumn"
,
scriptlib
::
card_is_all_column
},
{
"GetAttribute"
,
scriptlib
::
card_get_attribute
},
{
"GetOriginalAttribute"
,
scriptlib
::
card_get_origin_attribute
},
{
"GetFusionAttribute"
,
scriptlib
::
card_get_fusion_attribute
},
{
"GetLinkAttribute"
,
scriptlib
::
card_get_link_attribute
},
{
"GetRace"
,
scriptlib
::
card_get_race
},
{
"GetOriginalRace"
,
scriptlib
::
card_get_origin_race
},
{
"GetLinkRace"
,
scriptlib
::
card_get_link_race
},
{
"GetAttack"
,
scriptlib
::
card_get_attack
},
{
"GetBaseAttack"
,
scriptlib
::
card_get_origin_attack
},
{
"GetTextAttack"
,
scriptlib
::
card_get_text_attack
},
{
"GetDefense"
,
scriptlib
::
card_get_defense
},
{
"GetBaseDefense"
,
scriptlib
::
card_get_origin_defense
},
{
"GetTextDefense"
,
scriptlib
::
card_get_text_defense
},
{
"GetPreviousCodeOnField"
,
scriptlib
::
card_get_previous_code_onfield
},
{
"GetPreviousTypeOnField"
,
scriptlib
::
card_get_previous_type_onfield
},
{
"GetPreviousLevelOnField"
,
scriptlib
::
card_get_previous_level_onfield
},
{
"GetPreviousRankOnField"
,
scriptlib
::
card_get_previous_rank_onfield
},
{
"GetPreviousAttributeOnField"
,
scriptlib
::
card_get_previous_attribute_onfield
},
{
"GetPreviousRaceOnField"
,
scriptlib
::
card_get_previous_race_onfield
},
{
"GetPreviousAttackOnField"
,
scriptlib
::
card_get_previous_attack_onfield
},
{
"GetPreviousDefenseOnField"
,
scriptlib
::
card_get_previous_defense_onfield
},
{
"GetOwner"
,
scriptlib
::
card_get_owner
},
{
"GetControler"
,
scriptlib
::
card_get_controler
},
{
"GetPreviousControler"
,
scriptlib
::
card_get_previous_controler
},
{
"GetReason"
,
scriptlib
::
card_get_reason
},
{
"GetReasonCard"
,
scriptlib
::
card_get_reason_card
},
{
"GetReasonPlayer"
,
scriptlib
::
card_get_reason_player
},
{
"GetReasonEffect"
,
scriptlib
::
card_get_reason_effect
},
{
"GetPosition"
,
scriptlib
::
card_get_position
},
{
"GetPreviousPosition"
,
scriptlib
::
card_get_previous_position
},
{
"GetBattlePosition"
,
scriptlib
::
card_get_battle_position
},
{
"GetLocation"
,
scriptlib
::
card_get_location
},
{
"GetPreviousLocation"
,
scriptlib
::
card_get_previous_location
},
{
"GetSequence"
,
scriptlib
::
card_get_sequence
},
{
"GetPreviousSequence"
,
scriptlib
::
card_get_previous_sequence
},
{
"GetSummonType"
,
scriptlib
::
card_get_summon_type
},
{
"GetSummonLocation"
,
scriptlib
::
card_get_summon_location
},
{
"GetSummonPlayer"
,
scriptlib
::
card_get_summon_player
},
{
"GetDestination"
,
scriptlib
::
card_get_destination
},
{
"GetLeaveFieldDest"
,
scriptlib
::
card_get_leave_field_dest
},
{
"GetTurnID"
,
scriptlib
::
card_get_turnid
},
{
"GetFieldID"
,
scriptlib
::
card_get_fieldid
},
{
"GetRealFieldID"
,
scriptlib
::
card_get_fieldidr
},
{
"IsOriginalCodeRule"
,
scriptlib
::
card_is_origin_code_rule
},
{
"IsCode"
,
scriptlib
::
card_is_code
},
{
"IsType"
,
scriptlib
::
card_is_type
},
{
"IsFusionType"
,
scriptlib
::
card_is_fusion_type
},
{
"IsSynchroType"
,
scriptlib
::
card_is_synchro_type
},
{
"IsXyzType"
,
scriptlib
::
card_is_xyz_type
},
{
"IsLinkType"
,
scriptlib
::
card_is_link_type
},
{
"IsLevel"
,
scriptlib
::
card_is_level
},
{
"IsRank"
,
scriptlib
::
card_is_rank
},
{
"IsLink"
,
scriptlib
::
card_is_link
},
{
"IsAttack"
,
scriptlib
::
card_is_attack
},
{
"IsDefense"
,
scriptlib
::
card_is_defense
},
{
"IsRace"
,
scriptlib
::
card_is_race
},
{
"IsLinkRace"
,
scriptlib
::
card_is_link_race
},
{
"IsAttribute"
,
scriptlib
::
card_is_attribute
},
{
"IsFusionAttribute"
,
scriptlib
::
card_is_fusion_attribute
},
{
"IsLinkAttribute"
,
scriptlib
::
card_is_link_attribute
},
{
"IsReason"
,
scriptlib
::
card_is_reason
},
{
"IsSummonType"
,
scriptlib
::
card_is_summon_type
},
{
"IsStatus"
,
scriptlib
::
card_is_status
},
{
"IsNotTuner"
,
scriptlib
::
card_is_not_tuner
},
{
"SetStatus"
,
scriptlib
::
card_set_status
},
{
"IsDualState"
,
scriptlib
::
card_is_dual_state
},
{
"EnableDualState"
,
scriptlib
::
card_enable_dual_state
},
{
"SetTurnCounter"
,
scriptlib
::
card_set_turn_counter
},
{
"GetTurnCounter"
,
scriptlib
::
card_get_turn_counter
},
{
"SetMaterial"
,
scriptlib
::
card_set_material
},
{
"GetMaterial"
,
scriptlib
::
card_get_material
},
{
"GetMaterialCount"
,
scriptlib
::
card_get_material_count
},
{
"GetEquipGroup"
,
scriptlib
::
card_get_equip_group
},
{
"GetEquipCount"
,
scriptlib
::
card_get_equip_count
},
{
"GetEquipTarget"
,
scriptlib
::
card_get_equip_target
},
{
"GetPreviousEquipTarget"
,
scriptlib
::
card_get_pre_equip_target
},
{
"CheckEquipTarget"
,
scriptlib
::
card_check_equip_target
},
{
"GetUnionCount"
,
scriptlib
::
card_get_union_count
},
{
"GetOverlayGroup"
,
scriptlib
::
card_get_overlay_group
},
{
"GetOverlayCount"
,
scriptlib
::
card_get_overlay_count
},
{
"GetOverlayTarget"
,
scriptlib
::
card_get_overlay_target
},
{
"CheckRemoveOverlayCard"
,
scriptlib
::
card_check_remove_overlay_card
},
{
"RemoveOverlayCard"
,
scriptlib
::
card_remove_overlay_card
},
{
"GetAttackedGroup"
,
scriptlib
::
card_get_attacked_group
},
{
"GetAttackedGroupCount"
,
scriptlib
::
card_get_attacked_group_count
},
{
"GetAttackedCount"
,
scriptlib
::
card_get_attacked_count
},
{
"GetBattledGroup"
,
scriptlib
::
card_get_battled_group
},
{
"GetBattledGroupCount"
,
scriptlib
::
card_get_battled_group_count
},
{
"GetAttackAnnouncedCount"
,
scriptlib
::
card_get_attack_announced_count
},
{
"IsDirectAttacked"
,
scriptlib
::
card_is_direct_attacked
},
{
"SetCardTarget"
,
scriptlib
::
card_set_card_target
},
{
"GetCardTarget"
,
scriptlib
::
card_get_card_target
},
{
"GetFirstCardTarget"
,
scriptlib
::
card_get_first_card_target
},
{
"GetCardTargetCount"
,
scriptlib
::
card_get_card_target_count
},
{
"IsHasCardTarget"
,
scriptlib
::
card_is_has_card_target
},
{
"CancelCardTarget"
,
scriptlib
::
card_cancel_card_target
},
{
"GetOwnerTarget"
,
scriptlib
::
card_get_owner_target
},
{
"GetOwnerTargetCount"
,
scriptlib
::
card_get_owner_target_count
},
{
"GetActivateEffect"
,
scriptlib
::
card_get_activate_effect
},
{
"CheckActivateEffect"
,
scriptlib
::
card_check_activate_effect
},
{
"GetTunerLimit"
,
scriptlib
::
card_get_tuner_limit
},
{
"GetHandSynchro"
,
scriptlib
::
card_get_hand_synchro
},
{
"RegisterEffect"
,
scriptlib
::
card_register_effect
},
{
"IsHasEffect"
,
scriptlib
::
card_is_has_effect
},
{
"ResetEffect"
,
scriptlib
::
card_reset_effect
},
{
"GetEffectCount"
,
scriptlib
::
card_get_effect_count
},
{
"RegisterFlagEffect"
,
scriptlib
::
card_register_flag_effect
},
{
"GetFlagEffect"
,
scriptlib
::
card_get_flag_effect
},
{
"ResetFlagEffect"
,
scriptlib
::
card_reset_flag_effect
},
{
"SetFlagEffectLabel"
,
scriptlib
::
card_set_flag_effect_label
},
{
"GetFlagEffectLabel"
,
scriptlib
::
card_get_flag_effect_label
},
{
"CreateRelation"
,
scriptlib
::
card_create_relation
},
{
"ReleaseRelation"
,
scriptlib
::
card_release_relation
},
{
"CreateEffectRelation"
,
scriptlib
::
card_create_effect_relation
},
{
"ReleaseEffectRelation"
,
scriptlib
::
card_release_effect_relation
},
{
"ClearEffectRelation"
,
scriptlib
::
card_clear_effect_relation
},
{
"IsRelateToEffect"
,
scriptlib
::
card_is_relate_to_effect
},
{
"IsRelateToChain"
,
scriptlib
::
card_is_relate_to_chain
},
{
"IsRelateToCard"
,
scriptlib
::
card_is_relate_to_card
},
{
"IsRelateToBattle"
,
scriptlib
::
card_is_relate_to_battle
},
{
"CopyEffect"
,
scriptlib
::
card_copy_effect
},
{
"ReplaceEffect"
,
scriptlib
::
card_replace_effect
},
{
"EnableReviveLimit"
,
scriptlib
::
card_enable_revive_limit
},
{
"CompleteProcedure"
,
scriptlib
::
card_complete_procedure
},
{
"IsDisabled"
,
scriptlib
::
card_is_disabled
},
{
"IsDestructable"
,
scriptlib
::
card_is_destructable
},
{
"IsSummonableCard"
,
scriptlib
::
card_is_summonable
},
{
"IsFusionSummonableCard"
,
scriptlib
::
card_is_fusion_summonable_card
},
{
"IsSpecialSummonable"
,
scriptlib
::
card_is_special_summonable
},
{
"IsSynchroSummonable"
,
scriptlib
::
card_is_synchro_summonable
},
{
"IsXyzSummonable"
,
scriptlib
::
card_is_xyz_summonable
},
{
"IsLinkSummonable"
,
scriptlib
::
card_is_link_summonable
},
{
"IsSummonable"
,
scriptlib
::
card_is_can_be_summoned
},
{
"IsMSetable"
,
scriptlib
::
card_is_msetable
},
{
"IsSSetable"
,
scriptlib
::
card_is_ssetable
},
{
"IsCanBeSpecialSummoned"
,
scriptlib
::
card_is_can_be_special_summoned
},
{
"IsAbleToHand"
,
scriptlib
::
card_is_able_to_hand
},
{
"IsAbleToDeck"
,
scriptlib
::
card_is_able_to_deck
},
{
"IsAbleToExtra"
,
scriptlib
::
card_is_able_to_extra
},
{
"IsAbleToGrave"
,
scriptlib
::
card_is_able_to_grave
},
{
"IsAbleToRemove"
,
scriptlib
::
card_is_able_to_remove
},
{
"IsAbleToHandAsCost"
,
scriptlib
::
card_is_able_to_hand_as_cost
},
{
"IsAbleToDeckAsCost"
,
scriptlib
::
card_is_able_to_deck_as_cost
},
{
"IsAbleToExtraAsCost"
,
scriptlib
::
card_is_able_to_extra_as_cost
},
{
"IsAbleToDeckOrExtraAsCost"
,
scriptlib
::
card_is_able_to_deck_or_extra_as_cost
},
{
"IsAbleToGraveAsCost"
,
scriptlib
::
card_is_able_to_grave_as_cost
},
{
"IsAbleToRemoveAsCost"
,
scriptlib
::
card_is_able_to_remove_as_cost
},
{
"IsReleasable"
,
scriptlib
::
card_is_releasable
},
{
"IsReleasableByEffect"
,
scriptlib
::
card_is_releasable_by_effect
},
{
"IsDiscardable"
,
scriptlib
::
card_is_discardable
},
{
"IsAttackable"
,
scriptlib
::
card_is_attackable
},
{
"IsChainAttackable"
,
scriptlib
::
card_is_chain_attackable
},
{
"IsFaceup"
,
scriptlib
::
card_is_faceup
},
{
"IsAttackPos"
,
scriptlib
::
card_is_attack_pos
},
{
"IsFacedown"
,
scriptlib
::
card_is_facedown
},
{
"IsDefensePos"
,
scriptlib
::
card_is_defense_pos
},
{
"IsPosition"
,
scriptlib
::
card_is_position
},
{
"IsPreviousPosition"
,
scriptlib
::
card_is_pre_position
},
{
"IsControler"
,
scriptlib
::
card_is_controler
},
{
"IsOnField"
,
scriptlib
::
card_is_onfield
},
{
"IsLocation"
,
scriptlib
::
card_is_location
},
{
"IsPreviousLocation"
,
scriptlib
::
card_is_pre_location
},
{
"IsLevelBelow"
,
scriptlib
::
card_is_level_below
},
{
"IsLevelAbove"
,
scriptlib
::
card_is_level_above
},
{
"IsRankBelow"
,
scriptlib
::
card_is_rank_below
},
{
"IsRankAbove"
,
scriptlib
::
card_is_rank_above
},
{
"IsLinkBelow"
,
scriptlib
::
card_is_link_below
},
{
"IsLinkAbove"
,
scriptlib
::
card_is_link_above
},
{
"IsAttackBelow"
,
scriptlib
::
card_is_attack_below
},
{
"IsAttackAbove"
,
scriptlib
::
card_is_attack_above
},
{
"IsDefenseBelow"
,
scriptlib
::
card_is_defense_below
},
{
"IsDefenseAbove"
,
scriptlib
::
card_is_defense_above
},
{
"IsPublic"
,
scriptlib
::
card_is_public
},
{
"IsForbidden"
,
scriptlib
::
card_is_forbidden
},
{
"IsAbleToChangeControler"
,
scriptlib
::
card_is_able_to_change_controler
},
{
"IsControlerCanBeChanged"
,
scriptlib
::
card_is_controler_can_be_changed
},
{
"AddCounter"
,
scriptlib
::
card_add_counter
},
{
"RemoveCounter"
,
scriptlib
::
card_remove_counter
},
{
"GetCounter"
,
scriptlib
::
card_get_counter
},
{
"EnableCounterPermit"
,
scriptlib
::
card_enable_counter_permit
},
{
"SetCounterLimit"
,
scriptlib
::
card_set_counter_limit
},
{
"IsCanChangePosition"
,
scriptlib
::
card_is_can_change_position
},
{
"IsCanTurnSet"
,
scriptlib
::
card_is_can_turn_set
},
{
"IsCanAddCounter"
,
scriptlib
::
card_is_can_add_counter
},
{
"IsCanRemoveCounter"
,
scriptlib
::
card_is_can_remove_counter
},
{
"IsCanOverlay"
,
scriptlib
::
card_is_can_overlay
},
{
"IsCanBeFusionMaterial"
,
scriptlib
::
card_is_can_be_fusion_material
},
{
"IsCanBeSynchroMaterial"
,
scriptlib
::
card_is_can_be_synchro_material
},
{
"IsCanBeRitualMaterial"
,
scriptlib
::
card_is_can_be_ritual_material
},
{
"IsCanBeXyzMaterial"
,
scriptlib
::
card_is_can_be_xyz_material
},
{
"IsCanBeLinkMaterial"
,
scriptlib
::
card_is_can_be_link_material
},
{
"CheckFusionMaterial"
,
scriptlib
::
card_check_fusion_material
},
{
"CheckFusionSubstitute"
,
scriptlib
::
card_check_fusion_substitute
},
{
"IsImmuneToEffect"
,
scriptlib
::
card_is_immune_to_effect
},
{
"IsCanBeEffectTarget"
,
scriptlib
::
card_is_can_be_effect_target
},
{
"IsCanBeBattleTarget"
,
scriptlib
::
card_is_can_be_battle_target
},
{
"AddMonsterAttribute"
,
scriptlib
::
card_add_monster_attribute
},
{
"CancelToGrave"
,
scriptlib
::
card_cancel_to_grave
},
{
"GetTributeRequirement"
,
scriptlib
::
card_get_tribute_requirement
},
{
"GetBattleTarget"
,
scriptlib
::
card_get_battle_target
},
{
"GetAttackableTarget"
,
scriptlib
::
card_get_attackable_target
},
{
"SetHint"
,
scriptlib
::
card_set_hint
},
{
"ReverseInDeck"
,
scriptlib
::
card_reverse_in_deck
},
{
"SetUniqueOnField"
,
scriptlib
::
card_set_unique_onfield
},
{
"CheckUniqueOnField"
,
scriptlib
::
card_check_unique_onfield
},
{
"ResetNegateEffect"
,
scriptlib
::
card_reset_negate_effect
},
{
"AssumeProperty"
,
scriptlib
::
card_assume_prop
},
{
"SetSPSummonOnce"
,
scriptlib
::
card_set_spsummon_once
},
{
NULL
,
NULL
}
};
static
const
struct
luaL_Reg
effectlib
[]
=
{
{
"CreateEffect"
,
scriptlib
::
effect_new
},
{
"GlobalEffect"
,
scriptlib
::
effect_newex
},
{
"Clone"
,
scriptlib
::
effect_clone
},
{
"Reset"
,
scriptlib
::
effect_reset
},
{
"GetFieldID"
,
scriptlib
::
effect_get_field_id
},
{
"SetDescription"
,
scriptlib
::
effect_set_description
},
{
"SetCode"
,
scriptlib
::
effect_set_code
},
{
"SetRange"
,
scriptlib
::
effect_set_range
},
{
"SetTargetRange"
,
scriptlib
::
effect_set_target_range
},
{
"SetAbsoluteRange"
,
scriptlib
::
effect_set_absolute_range
},
{
"SetCountLimit"
,
scriptlib
::
effect_set_count_limit
},
{
"SetReset"
,
scriptlib
::
effect_set_reset
},
{
"SetType"
,
scriptlib
::
effect_set_type
},
{
"SetProperty"
,
scriptlib
::
effect_set_property
},
{
"SetLabel"
,
scriptlib
::
effect_set_label
},
{
"SetLabelObject"
,
scriptlib
::
effect_set_label_object
},
{
"SetCategory"
,
scriptlib
::
effect_set_category
},
{
"SetHintTiming"
,
scriptlib
::
effect_set_hint_timing
},
{
"SetCondition"
,
scriptlib
::
effect_set_condition
},
{
"SetTarget"
,
scriptlib
::
effect_set_target
},
{
"SetCost"
,
scriptlib
::
effect_set_cost
},
{
"SetValue"
,
scriptlib
::
effect_set_value
},
{
"SetOperation"
,
scriptlib
::
effect_set_operation
},
{
"SetOwnerPlayer"
,
scriptlib
::
effect_set_owner_player
},
{
"GetDescription"
,
scriptlib
::
effect_get_description
},
{
"GetCode"
,
scriptlib
::
effect_get_code
},
{
"GetType"
,
scriptlib
::
effect_get_type
},
{
"GetProperty"
,
scriptlib
::
effect_get_property
},
{
"GetLabel"
,
scriptlib
::
effect_get_label
},
{
"GetLabelObject"
,
scriptlib
::
effect_get_label_object
},
{
"GetCategory"
,
scriptlib
::
effect_get_category
},
{
"GetOwner"
,
scriptlib
::
effect_get_owner
},
{
"GetHandler"
,
scriptlib
::
effect_get_handler
},
{
"GetCondition"
,
scriptlib
::
effect_get_condition
},
{
"GetTarget"
,
scriptlib
::
effect_get_target
},
{
"GetCost"
,
scriptlib
::
effect_get_cost
},
{
"GetValue"
,
scriptlib
::
effect_get_value
},
{
"GetOperation"
,
scriptlib
::
effect_get_operation
},
{
"GetActiveType"
,
scriptlib
::
effect_get_active_type
},
{
"IsActiveType"
,
scriptlib
::
effect_is_active_type
},
{
"GetOwnerPlayer"
,
scriptlib
::
effect_get_owner_player
},
{
"GetHandlerPlayer"
,
scriptlib
::
effect_get_handler_player
},
{
"IsHasProperty"
,
scriptlib
::
effect_is_has_property
},
{
"IsHasCategory"
,
scriptlib
::
effect_is_has_category
},
{
"IsHasType"
,
scriptlib
::
effect_is_has_type
},
{
"IsActivatable"
,
scriptlib
::
effect_is_activatable
},
{
"IsActivated"
,
scriptlib
::
effect_is_activated
},
{
"GetActivateLocation"
,
scriptlib
::
effect_get_activate_location
},
{
"GetActivateSequence"
,
scriptlib
::
effect_get_activate_sequence
},
{
"CheckCountLimit"
,
scriptlib
::
effect_check_count_limit
},
{
"UseCountLimit"
,
scriptlib
::
effect_use_count_limit
},
{
NULL
,
NULL
}
};
static
const
struct
luaL_Reg
grouplib
[]
=
{
{
"CreateGroup"
,
scriptlib
::
group_new
},
{
"KeepAlive"
,
scriptlib
::
group_keep_alive
},
{
"DeleteGroup"
,
scriptlib
::
group_delete
},
{
"Clone"
,
scriptlib
::
group_clone
},
{
"FromCards"
,
scriptlib
::
group_from_cards
},
{
"Clear"
,
scriptlib
::
group_clear
},
{
"AddCard"
,
scriptlib
::
group_add_card
},
{
"RemoveCard"
,
scriptlib
::
group_remove_card
},
{
"GetNext"
,
scriptlib
::
group_get_next
},
{
"GetFirst"
,
scriptlib
::
group_get_first
},
{
"GetCount"
,
scriptlib
::
group_get_count
},
{
"__len"
,
scriptlib
::
group_get_count
},
{
"ForEach"
,
scriptlib
::
group_for_each
},
{
"Filter"
,
scriptlib
::
group_filter
},
{
"FilterCount"
,
scriptlib
::
group_filter_count
},
{
"FilterSelect"
,
scriptlib
::
group_filter_select
},
{
"Select"
,
scriptlib
::
group_select
},
{
"SelectUnselect"
,
scriptlib
::
group_select_unselect
},
{
"RandomSelect"
,
scriptlib
::
group_random_select
},
{
"IsExists"
,
scriptlib
::
group_is_exists
},
{
"CheckWithSumEqual"
,
scriptlib
::
group_check_with_sum_equal
},
{
"SelectWithSumEqual"
,
scriptlib
::
group_select_with_sum_equal
},
{
"CheckWithSumGreater"
,
scriptlib
::
group_check_with_sum_greater
},
{
"SelectWithSumGreater"
,
scriptlib
::
group_select_with_sum_greater
},
{
"GetMinGroup"
,
scriptlib
::
group_get_min_group
},
{
"GetMaxGroup"
,
scriptlib
::
group_get_max_group
},
{
"GetSum"
,
scriptlib
::
group_get_sum
},
{
"GetClassCount"
,
scriptlib
::
group_get_class_count
},
{
"Remove"
,
scriptlib
::
group_remove
},
{
"Merge"
,
scriptlib
::
group_merge
},
{
"Sub"
,
scriptlib
::
group_sub
},
{
"Equal"
,
scriptlib
::
group_equal
},
{
"IsContains"
,
scriptlib
::
group_is_contains
},
{
"SearchCard"
,
scriptlib
::
group_search_card
},
{
"GetBinClassCount"
,
scriptlib
::
group_get_bin_class_count
},
{
"__add"
,
scriptlib
::
group_meta_add
},
{
"__bor"
,
scriptlib
::
group_meta_add
},
{
"__sub"
,
scriptlib
::
group_meta_sub
},
{
"__band"
,
scriptlib
::
group_meta_band
},
{
"__bxor"
,
scriptlib
::
group_meta_bxor
},
{
NULL
,
NULL
}
};
static
const
struct
luaL_Reg
duellib
[]
=
{
{
"EnableGlobalFlag"
,
scriptlib
::
duel_enable_global_flag
},
{
"GetLP"
,
scriptlib
::
duel_get_lp
},
{
"SetLP"
,
scriptlib
::
duel_set_lp
},
{
"GetTurnPlayer"
,
scriptlib
::
duel_get_turn_player
},
{
"GetTurnCount"
,
scriptlib
::
duel_get_turn_count
},
{
"GetDrawCount"
,
scriptlib
::
duel_get_draw_count
},
{
"RegisterEffect"
,
scriptlib
::
duel_register_effect
},
{
"RegisterFlagEffect"
,
scriptlib
::
duel_register_flag_effect
},
{
"GetFlagEffect"
,
scriptlib
::
duel_get_flag_effect
},
{
"ResetFlagEffect"
,
scriptlib
::
duel_reset_flag_effect
},
{
"SetFlagEffectLabel"
,
scriptlib
::
duel_set_flag_effect_label
},
{
"GetFlagEffectLabel"
,
scriptlib
::
duel_get_flag_effect_label
},
{
"Destroy"
,
scriptlib
::
duel_destroy
},
{
"Remove"
,
scriptlib
::
duel_remove
},
{
"SendtoGrave"
,
scriptlib
::
duel_sendto_grave
},
{
"SendtoHand"
,
scriptlib
::
duel_sendto_hand
},
{
"SendtoDeck"
,
scriptlib
::
duel_sendto_deck
},
{
"SendtoExtraP"
,
scriptlib
::
duel_sendto_extra
},
{
"GetOperatedGroup"
,
scriptlib
::
duel_get_operated_group
},
{
"Summon"
,
scriptlib
::
duel_summon
},
{
"SpecialSummonRule"
,
scriptlib
::
duel_special_summon_rule
},
{
"SynchroSummon"
,
scriptlib
::
duel_synchro_summon
},
{
"XyzSummon"
,
scriptlib
::
duel_xyz_summon
},
{
"LinkSummon"
,
scriptlib
::
duel_link_summon
},
{
"MSet"
,
scriptlib
::
duel_setm
},
{
"SSet"
,
scriptlib
::
duel_sets
},
{
"CreateToken"
,
scriptlib
::
duel_create_token
},
{
"SpecialSummon"
,
scriptlib
::
duel_special_summon
},
{
"SpecialSummonStep"
,
scriptlib
::
duel_special_summon_step
},
{
"SpecialSummonComplete"
,
scriptlib
::
duel_special_summon_complete
},
{
"IsCanAddCounter"
,
scriptlib
::
duel_is_can_add_counter
},
{
"RemoveCounter"
,
scriptlib
::
duel_remove_counter
},
{
"IsCanRemoveCounter"
,
scriptlib
::
duel_is_can_remove_counter
},
{
"GetCounter"
,
scriptlib
::
duel_get_counter
},
{
"ChangePosition"
,
scriptlib
::
duel_change_form
},
{
"Release"
,
scriptlib
::
duel_release
},
{
"MoveToField"
,
scriptlib
::
duel_move_to_field
},
{
"ReturnToField"
,
scriptlib
::
duel_return_to_field
},
{
"MoveSequence"
,
scriptlib
::
duel_move_sequence
},
{
"SwapSequence"
,
scriptlib
::
duel_swap_sequence
},
{
"Activate"
,
scriptlib
::
duel_activate_effect
},
{
"SetChainLimit"
,
scriptlib
::
duel_set_chain_limit
},
{
"SetChainLimitTillChainEnd"
,
scriptlib
::
duel_set_chain_limit_p
},
{
"GetChainMaterial"
,
scriptlib
::
duel_get_chain_material
},
{
"ConfirmDecktop"
,
scriptlib
::
duel_confirm_decktop
},
{
"ConfirmExtratop"
,
scriptlib
::
duel_confirm_extratop
},
{
"ConfirmCards"
,
scriptlib
::
duel_confirm_cards
},
{
"SortDecktop"
,
scriptlib
::
duel_sort_decktop
},
{
"CheckEvent"
,
scriptlib
::
duel_check_event
},
{
"RaiseEvent"
,
scriptlib
::
duel_raise_event
},
{
"RaiseSingleEvent"
,
scriptlib
::
duel_raise_single_event
},
{
"CheckTiming"
,
scriptlib
::
duel_check_timing
},
{
"GetEnvironment"
,
scriptlib
::
duel_get_environment
},
{
"IsEnvironment"
,
scriptlib
::
duel_is_environment
},
{
"Win"
,
scriptlib
::
duel_win
},
{
"Draw"
,
scriptlib
::
duel_draw
},
{
"Damage"
,
scriptlib
::
duel_damage
},
{
"Recover"
,
scriptlib
::
duel_recover
},
{
"RDComplete"
,
scriptlib
::
duel_rd_complete
},
{
"Equip"
,
scriptlib
::
duel_equip
},
{
"EquipComplete"
,
scriptlib
::
duel_equip_complete
},
{
"GetControl"
,
scriptlib
::
duel_get_control
},
{
"SwapControl"
,
scriptlib
::
duel_swap_control
},
{
"CheckLPCost"
,
scriptlib
::
duel_check_lp_cost
},
{
"PayLPCost"
,
scriptlib
::
duel_pay_lp_cost
},
{
"DiscardDeck"
,
scriptlib
::
duel_discard_deck
},
{
"DiscardHand"
,
scriptlib
::
duel_discard_hand
},
{
"DisableShuffleCheck"
,
scriptlib
::
duel_disable_shuffle_check
},
{
"ShuffleDeck"
,
scriptlib
::
duel_shuffle_deck
},
{
"ShuffleExtra"
,
scriptlib
::
duel_shuffle_extra
},
{
"ShuffleHand"
,
scriptlib
::
duel_shuffle_hand
},
{
"ShuffleSetCard"
,
scriptlib
::
duel_shuffle_setcard
},
{
"ChangeAttacker"
,
scriptlib
::
duel_change_attacker
},
{
"ChangeAttackTarget"
,
scriptlib
::
duel_change_attack_target
},
{
"CalculateDamage"
,
scriptlib
::
duel_calculate_damage
},
{
"GetBattleDamage"
,
scriptlib
::
duel_get_battle_damage
},
{
"ChangeBattleDamage"
,
scriptlib
::
duel_change_battle_damage
},
{
"ChangeTargetCard"
,
scriptlib
::
duel_change_target
},
{
"ChangeTargetPlayer"
,
scriptlib
::
duel_change_target_player
},
{
"ChangeTargetParam"
,
scriptlib
::
duel_change_target_param
},
{
"BreakEffect"
,
scriptlib
::
duel_break_effect
},
{
"ChangeChainOperation"
,
scriptlib
::
duel_change_effect
},
{
"NegateActivation"
,
scriptlib
::
duel_negate_activate
},
{
"NegateEffect"
,
scriptlib
::
duel_negate_effect
},
{
"NegateRelatedChain"
,
scriptlib
::
duel_negate_related_chain
},
{
"NegateSummon"
,
scriptlib
::
duel_disable_summon
},
{
"IncreaseSummonedCount"
,
scriptlib
::
duel_increase_summon_count
},
{
"CheckSummonedCount"
,
scriptlib
::
duel_check_summon_count
},
{
"GetLocationCount"
,
scriptlib
::
duel_get_location_count
},
{
"GetMZoneCount"
,
scriptlib
::
duel_get_mzone_count
},
{
"GetLocationCountFromEx"
,
scriptlib
::
duel_get_location_count_fromex
},
{
"GetUsableMZoneCount"
,
scriptlib
::
duel_get_usable_mzone_count
},
{
"GetLinkedGroup"
,
scriptlib
::
duel_get_linked_group
},
{
"GetLinkedGroupCount"
,
scriptlib
::
duel_get_linked_group_count
},
{
"GetLinkedZone"
,
scriptlib
::
duel_get_linked_zone
},
{
"GetFieldCard"
,
scriptlib
::
duel_get_field_card
},
{
"CheckLocation"
,
scriptlib
::
duel_check_location
},
{
"GetCurrentChain"
,
scriptlib
::
duel_get_current_chain
},
{
"GetChainInfo"
,
scriptlib
::
duel_get_chain_info
},
{
"GetChainEvent"
,
scriptlib
::
duel_get_chain_event
},
{
"GetFirstTarget"
,
scriptlib
::
duel_get_first_target
},
{
"GetCurrentPhase"
,
scriptlib
::
duel_get_current_phase
},
{
"SkipPhase"
,
scriptlib
::
duel_skip_phase
},
{
"IsDamageCalculated"
,
scriptlib
::
duel_is_damage_calculated
},
{
"GetAttacker"
,
scriptlib
::
duel_get_attacker
},
{
"GetAttackTarget"
,
scriptlib
::
duel_get_attack_target
},
{
"NegateAttack"
,
scriptlib
::
duel_disable_attack
},
{
"ChainAttack"
,
scriptlib
::
duel_chain_attack
},
{
"Readjust"
,
scriptlib
::
duel_readjust
},
{
"AdjustInstantly"
,
scriptlib
::
duel_adjust_instantly
},
{
"GetFieldGroup"
,
scriptlib
::
duel_get_field_group
},
{
"GetFieldGroupCount"
,
scriptlib
::
duel_get_field_group_count
},
{
"GetDecktopGroup"
,
scriptlib
::
duel_get_decktop_group
},
{
"GetExtraTopGroup"
,
scriptlib
::
duel_get_extratop_group
},
{
"GetMatchingGroup"
,
scriptlib
::
duel_get_matching_group
},
{
"GetMatchingGroupCount"
,
scriptlib
::
duel_get_matching_count
},
{
"GetFirstMatchingCard"
,
scriptlib
::
duel_get_first_matching_card
},
{
"IsExistingMatchingCard"
,
scriptlib
::
duel_is_existing_matching_card
},
{
"SelectMatchingCard"
,
scriptlib
::
duel_select_matching_cards
},
{
"GetReleaseGroup"
,
scriptlib
::
duel_get_release_group
},
{
"GetReleaseGroupCount"
,
scriptlib
::
duel_get_release_group_count
},
{
"CheckReleaseGroup"
,
scriptlib
::
duel_check_release_group
},
{
"SelectReleaseGroup"
,
scriptlib
::
duel_select_release_group
},
{
"CheckReleaseGroupEx"
,
scriptlib
::
duel_check_release_group_ex
},
{
"SelectReleaseGroupEx"
,
scriptlib
::
duel_select_release_group_ex
},
{
"GetTributeGroup"
,
scriptlib
::
duel_get_tribute_group
},
{
"GetTributeCount"
,
scriptlib
::
duel_get_tribute_count
},
{
"CheckTribute"
,
scriptlib
::
duel_check_tribute
},
{
"SelectTribute"
,
scriptlib
::
duel_select_tribute
},
{
"GetTargetCount"
,
scriptlib
::
duel_get_target_count
},
{
"IsExistingTarget"
,
scriptlib
::
duel_is_existing_target
},
{
"SelectTarget"
,
scriptlib
::
duel_select_target
},
{
"SelectFusionMaterial"
,
scriptlib
::
duel_select_fusion_material
},
{
"SetFusionMaterial"
,
scriptlib
::
duel_set_fusion_material
},
{
"SetSynchroMaterial"
,
scriptlib
::
duel_set_synchro_material
},
{
"SelectSynchroMaterial"
,
scriptlib
::
duel_select_synchro_material
},
{
"CheckSynchroMaterial"
,
scriptlib
::
duel_check_synchro_material
},
{
"SelectTunerMaterial"
,
scriptlib
::
duel_select_tuner_material
},
{
"CheckTunerMaterial"
,
scriptlib
::
duel_check_tuner_material
},
{
"GetRitualMaterial"
,
scriptlib
::
duel_get_ritual_material
},
{
"ReleaseRitualMaterial"
,
scriptlib
::
duel_release_ritual_material
},
{
"GetFusionMaterial"
,
scriptlib
::
duel_get_fusion_material
},
{
"SetSelectedCard"
,
scriptlib
::
duel_set_must_select_cards
},
{
"GrabSelectedCard"
,
scriptlib
::
duel_grab_must_select_cards
},
{
"SetTargetCard"
,
scriptlib
::
duel_set_target_card
},
{
"ClearTargetCard"
,
scriptlib
::
duel_clear_target_card
},
{
"SetTargetPlayer"
,
scriptlib
::
duel_set_target_player
},
{
"SetTargetParam"
,
scriptlib
::
duel_set_target_param
},
{
"SetOperationInfo"
,
scriptlib
::
duel_set_operation_info
},
{
"GetOperationInfo"
,
scriptlib
::
duel_get_operation_info
},
{
"GetOperationCount"
,
scriptlib
::
duel_get_operation_count
},
{
"ClearOperationInfo"
,
scriptlib
::
duel_clear_operation_info
},
{
"CheckXyzMaterial"
,
scriptlib
::
duel_check_xyz_material
},
{
"SelectXyzMaterial"
,
scriptlib
::
duel_select_xyz_material
},
{
"Overlay"
,
scriptlib
::
duel_overlay
},
{
"GetOverlayGroup"
,
scriptlib
::
duel_get_overlay_group
},
{
"GetOverlayCount"
,
scriptlib
::
duel_get_overlay_count
},
{
"CheckRemoveOverlayCard"
,
scriptlib
::
duel_check_remove_overlay_card
},
{
"RemoveOverlayCard"
,
scriptlib
::
duel_remove_overlay_card
},
{
"Hint"
,
scriptlib
::
duel_hint
},
{
"HintSelection"
,
scriptlib
::
duel_hint_selection
},
{
"SelectEffectYesNo"
,
scriptlib
::
duel_select_effect_yesno
},
{
"SelectYesNo"
,
scriptlib
::
duel_select_yesno
},
{
"SelectOption"
,
scriptlib
::
duel_select_option
},
{
"SelectSequence"
,
scriptlib
::
duel_select_sequence
},
{
"SelectPosition"
,
scriptlib
::
duel_select_position
},
{
"SelectDisableField"
,
scriptlib
::
duel_select_disable_field
},
{
"AnnounceRace"
,
scriptlib
::
duel_announce_race
},
{
"AnnounceAttribute"
,
scriptlib
::
duel_announce_attribute
},
{
"AnnounceLevel"
,
scriptlib
::
duel_announce_level
},
{
"AnnounceCard"
,
scriptlib
::
duel_announce_card
},
{
"AnnounceType"
,
scriptlib
::
duel_announce_type
},
{
"AnnounceNumber"
,
scriptlib
::
duel_announce_number
},
{
"AnnounceCoin"
,
scriptlib
::
duel_announce_coin
},
{
"TossCoin"
,
scriptlib
::
duel_toss_coin
},
{
"TossDice"
,
scriptlib
::
duel_toss_dice
},
{
"RockPaperScissors"
,
scriptlib
::
duel_rock_paper_scissors
},
{
"GetCoinResult"
,
scriptlib
::
duel_get_coin_result
},
{
"GetDiceResult"
,
scriptlib
::
duel_get_dice_result
},
{
"SetCoinResult"
,
scriptlib
::
duel_set_coin_result
},
{
"SetDiceResult"
,
scriptlib
::
duel_set_dice_result
},
{
"IsPlayerAffectedByEffect"
,
scriptlib
::
duel_is_player_affected_by_effect
},
{
"IsPlayerCanDraw"
,
scriptlib
::
duel_is_player_can_draw
},
{
"IsPlayerCanDiscardDeck"
,
scriptlib
::
duel_is_player_can_discard_deck
},
{
"IsPlayerCanDiscardDeckAsCost"
,
scriptlib
::
duel_is_player_can_discard_deck_as_cost
},
{
"IsPlayerCanSummon"
,
scriptlib
::
duel_is_player_can_summon
},
{
"IsPlayerCanMSet"
,
scriptlib
::
duel_is_player_can_mset
},
{
"IsPlayerCanSSet"
,
scriptlib
::
duel_is_player_can_sset
},
{
"IsPlayerCanSpecialSummon"
,
scriptlib
::
duel_is_player_can_spsummon
},
{
"IsPlayerCanFlipSummon"
,
scriptlib
::
duel_is_player_can_flipsummon
},
{
"IsPlayerCanSpecialSummonMonster"
,
scriptlib
::
duel_is_player_can_spsummon_monster
},
{
"IsPlayerCanSpecialSummonCount"
,
scriptlib
::
duel_is_player_can_spsummon_count
},
{
"IsPlayerCanRelease"
,
scriptlib
::
duel_is_player_can_release
},
{
"IsPlayerCanRemove"
,
scriptlib
::
duel_is_player_can_remove
},
{
"IsPlayerCanSendtoHand"
,
scriptlib
::
duel_is_player_can_send_to_hand
},
{
"IsPlayerCanSendtoGrave"
,
scriptlib
::
duel_is_player_can_send_to_grave
},
{
"IsPlayerCanSendtoDeck"
,
scriptlib
::
duel_is_player_can_send_to_deck
},
{
"IsPlayerCanAdditionalSummon"
,
scriptlib
::
duel_is_player_can_additional_summon
},
{
"IsChainNegatable"
,
scriptlib
::
duel_is_chain_negatable
},
{
"IsChainDisablable"
,
scriptlib
::
duel_is_chain_disablable
},
{
"CheckChainTarget"
,
scriptlib
::
duel_check_chain_target
},
{
"CheckChainUniqueness"
,
scriptlib
::
duel_check_chain_uniqueness
},
{
"GetActivityCount"
,
scriptlib
::
duel_get_activity_count
},
{
"CheckPhaseActivity"
,
scriptlib
::
duel_check_phase_activity
},
{
"AddCustomActivityCounter"
,
scriptlib
::
duel_add_custom_activity_counter
},
{
"GetCustomActivityCount"
,
scriptlib
::
duel_get_custom_activity_count
},
{
"GetBattledCount"
,
scriptlib
::
duel_get_battled_count
},
{
"IsAbleToEnterBP"
,
scriptlib
::
duel_is_able_to_enter_bp
},
{
"SwapDeckAndGrave"
,
scriptlib
::
duel_swap_deck_and_grave
},
{
"MajesticCopy"
,
scriptlib
::
duel_majestic_copy
},
{
NULL
,
NULL
}
};
static
const
struct
luaL_Reg
debuglib
[]
=
{
{
"Message"
,
scriptlib
::
debug_message
},
{
"AddCard"
,
scriptlib
::
debug_add_card
},
{
"SetPlayerInfo"
,
scriptlib
::
debug_set_player_info
},
{
"PreSummon"
,
scriptlib
::
debug_pre_summon
},
{
"PreEquip"
,
scriptlib
::
debug_pre_equip
},
{
"PreSetTarget"
,
scriptlib
::
debug_pre_set_target
},
{
"PreAddCounter"
,
scriptlib
::
debug_pre_add_counter
},
{
"ReloadFieldBegin"
,
scriptlib
::
debug_reload_field_begin
},
{
"ReloadFieldEnd"
,
scriptlib
::
debug_reload_field_end
},
{
"SetAIName"
,
scriptlib
::
debug_set_ai_name
},
{
"ShowHint"
,
scriptlib
::
debug_show_hint
},
{
NULL
,
NULL
}
};
interpreter
::
interpreter
(
duel
*
pd
)
:
coroutines
(
256
)
{
interpreter
::
interpreter
(
duel
*
pd
)
:
coroutines
(
256
)
{
lua_state
=
luaL_newstate
();
lua_state
=
luaL_newstate
();
current_state
=
lua_state
;
current_state
=
lua_state
;
...
@@ -616,25 +33,11 @@ interpreter::interpreter(duel* pd): coroutines(256) {
...
@@ -616,25 +33,11 @@ interpreter::interpreter(duel* pd): coroutines(256) {
lua_setfield
(
lua_state
,
-
2
,
"os"
);
lua_setfield
(
lua_state
,
-
2
,
"os"
);
lua_pop
(
lua_state
,
1
);
lua_pop
(
lua_state
,
1
);
//open all libs
//open all libs
luaL_newlib
(
lua_state
,
cardlib
);
scriptlib
::
open_cardlib
(
lua_state
);
lua_pushstring
(
lua_state
,
"__index"
);
scriptlib
::
open_effectlib
(
lua_state
);
lua_pushvalue
(
lua_state
,
-
2
);
scriptlib
::
open_grouplib
(
lua_state
);
lua_rawset
(
lua_state
,
-
3
);
scriptlib
::
open_duellib
(
lua_state
);
lua_setglobal
(
lua_state
,
"Card"
);
scriptlib
::
open_debuglib
(
lua_state
);
luaL_newlib
(
lua_state
,
effectlib
);
lua_pushstring
(
lua_state
,
"__index"
);
lua_pushvalue
(
lua_state
,
-
2
);
lua_rawset
(
lua_state
,
-
3
);
lua_setglobal
(
lua_state
,
"Effect"
);
luaL_newlib
(
lua_state
,
grouplib
);
lua_pushstring
(
lua_state
,
"__index"
);
lua_pushvalue
(
lua_state
,
-
2
);
lua_rawset
(
lua_state
,
-
3
);
lua_setglobal
(
lua_state
,
"Group"
);
luaL_newlib
(
lua_state
,
duellib
);
lua_setglobal
(
lua_state
,
"Duel"
);
luaL_newlib
(
lua_state
,
debuglib
);
lua_setglobal
(
lua_state
,
"Debug"
);
//extra scripts
//extra scripts
load_script
(
"./script/constant.lua"
);
load_script
(
"./script/constant.lua"
);
load_script
(
"./script/utility.lua"
);
load_script
(
"./script/utility.lua"
);
...
...
libcard.cpp
View file @
ea410524
...
@@ -3097,3 +3097,265 @@ int32 scriptlib::card_set_spsummon_once(lua_State *L) {
...
@@ -3097,3 +3097,265 @@ int32 scriptlib::card_set_spsummon_once(lua_State *L) {
pcard
->
pduel
->
game_field
->
core
.
global_flag
|=
GLOBALFLAG_SPSUMMON_ONCE
;
pcard
->
pduel
->
game_field
->
core
.
global_flag
|=
GLOBALFLAG_SPSUMMON_ONCE
;
return
0
;
return
0
;
}
}
static
const
struct
luaL_Reg
cardlib
[]
=
{
{
"GetCode"
,
scriptlib
::
card_get_code
},
{
"GetOriginalCode"
,
scriptlib
::
card_get_origin_code
},
{
"GetOriginalCodeRule"
,
scriptlib
::
card_get_origin_code_rule
},
{
"GetFusionCode"
,
scriptlib
::
card_get_fusion_code
},
{
"GetLinkCode"
,
scriptlib
::
card_get_link_code
},
{
"IsFusionCode"
,
scriptlib
::
card_is_fusion_code
},
{
"IsLinkCode"
,
scriptlib
::
card_is_link_code
},
{
"IsSetCard"
,
scriptlib
::
card_is_set_card
},
{
"IsOriginalSetCard"
,
scriptlib
::
card_is_origin_set_card
},
{
"IsPreviousSetCard"
,
scriptlib
::
card_is_pre_set_card
},
{
"IsFusionSetCard"
,
scriptlib
::
card_is_fusion_set_card
},
{
"IsLinkSetCard"
,
scriptlib
::
card_is_link_set_card
},
{
"GetType"
,
scriptlib
::
card_get_type
},
{
"GetOriginalType"
,
scriptlib
::
card_get_origin_type
},
{
"GetFusionType"
,
scriptlib
::
card_get_fusion_type
},
{
"GetSynchroType"
,
scriptlib
::
card_get_synchro_type
},
{
"GetXyzType"
,
scriptlib
::
card_get_xyz_type
},
{
"GetLinkType"
,
scriptlib
::
card_get_link_type
},
{
"GetLevel"
,
scriptlib
::
card_get_level
},
{
"GetRank"
,
scriptlib
::
card_get_rank
},
{
"GetLink"
,
scriptlib
::
card_get_link
},
{
"GetSynchroLevel"
,
scriptlib
::
card_get_synchro_level
},
{
"GetRitualLevel"
,
scriptlib
::
card_get_ritual_level
},
{
"GetOriginalLevel"
,
scriptlib
::
card_get_origin_level
},
{
"GetOriginalRank"
,
scriptlib
::
card_get_origin_rank
},
{
"IsXyzLevel"
,
scriptlib
::
card_is_xyz_level
},
{
"GetLeftScale"
,
scriptlib
::
card_get_lscale
},
{
"GetOriginalLeftScale"
,
scriptlib
::
card_get_origin_lscale
},
{
"GetRightScale"
,
scriptlib
::
card_get_rscale
},
{
"GetOriginalRightScale"
,
scriptlib
::
card_get_origin_rscale
},
{
"IsLinkMarker"
,
scriptlib
::
card_is_link_marker
},
{
"GetLinkedGroup"
,
scriptlib
::
card_get_linked_group
},
{
"GetLinkedGroupCount"
,
scriptlib
::
card_get_linked_group_count
},
{
"GetLinkedZone"
,
scriptlib
::
card_get_linked_zone
},
{
"GetMutualLinkedGroup"
,
scriptlib
::
card_get_mutual_linked_group
},
{
"GetMutualLinkedGroupCount"
,
scriptlib
::
card_get_mutual_linked_group_count
},
{
"GetMutualLinkedZone"
,
scriptlib
::
card_get_mutual_linked_zone
},
{
"IsLinkState"
,
scriptlib
::
card_is_link_state
},
{
"IsExtraLinkState"
,
scriptlib
::
card_is_extra_link_state
},
{
"GetColumnGroup"
,
scriptlib
::
card_get_column_group
},
{
"GetColumnGroupCount"
,
scriptlib
::
card_get_column_group_count
},
{
"GetColumnZone"
,
scriptlib
::
card_get_column_zone
},
{
"IsAllColumn"
,
scriptlib
::
card_is_all_column
},
{
"GetAttribute"
,
scriptlib
::
card_get_attribute
},
{
"GetOriginalAttribute"
,
scriptlib
::
card_get_origin_attribute
},
{
"GetFusionAttribute"
,
scriptlib
::
card_get_fusion_attribute
},
{
"GetLinkAttribute"
,
scriptlib
::
card_get_link_attribute
},
{
"GetRace"
,
scriptlib
::
card_get_race
},
{
"GetOriginalRace"
,
scriptlib
::
card_get_origin_race
},
{
"GetLinkRace"
,
scriptlib
::
card_get_link_race
},
{
"GetAttack"
,
scriptlib
::
card_get_attack
},
{
"GetBaseAttack"
,
scriptlib
::
card_get_origin_attack
},
{
"GetTextAttack"
,
scriptlib
::
card_get_text_attack
},
{
"GetDefense"
,
scriptlib
::
card_get_defense
},
{
"GetBaseDefense"
,
scriptlib
::
card_get_origin_defense
},
{
"GetTextDefense"
,
scriptlib
::
card_get_text_defense
},
{
"GetPreviousCodeOnField"
,
scriptlib
::
card_get_previous_code_onfield
},
{
"GetPreviousTypeOnField"
,
scriptlib
::
card_get_previous_type_onfield
},
{
"GetPreviousLevelOnField"
,
scriptlib
::
card_get_previous_level_onfield
},
{
"GetPreviousRankOnField"
,
scriptlib
::
card_get_previous_rank_onfield
},
{
"GetPreviousAttributeOnField"
,
scriptlib
::
card_get_previous_attribute_onfield
},
{
"GetPreviousRaceOnField"
,
scriptlib
::
card_get_previous_race_onfield
},
{
"GetPreviousAttackOnField"
,
scriptlib
::
card_get_previous_attack_onfield
},
{
"GetPreviousDefenseOnField"
,
scriptlib
::
card_get_previous_defense_onfield
},
{
"GetOwner"
,
scriptlib
::
card_get_owner
},
{
"GetControler"
,
scriptlib
::
card_get_controler
},
{
"GetPreviousControler"
,
scriptlib
::
card_get_previous_controler
},
{
"GetReason"
,
scriptlib
::
card_get_reason
},
{
"GetReasonCard"
,
scriptlib
::
card_get_reason_card
},
{
"GetReasonPlayer"
,
scriptlib
::
card_get_reason_player
},
{
"GetReasonEffect"
,
scriptlib
::
card_get_reason_effect
},
{
"GetPosition"
,
scriptlib
::
card_get_position
},
{
"GetPreviousPosition"
,
scriptlib
::
card_get_previous_position
},
{
"GetBattlePosition"
,
scriptlib
::
card_get_battle_position
},
{
"GetLocation"
,
scriptlib
::
card_get_location
},
{
"GetPreviousLocation"
,
scriptlib
::
card_get_previous_location
},
{
"GetSequence"
,
scriptlib
::
card_get_sequence
},
{
"GetPreviousSequence"
,
scriptlib
::
card_get_previous_sequence
},
{
"GetSummonType"
,
scriptlib
::
card_get_summon_type
},
{
"GetSummonLocation"
,
scriptlib
::
card_get_summon_location
},
{
"GetSummonPlayer"
,
scriptlib
::
card_get_summon_player
},
{
"GetDestination"
,
scriptlib
::
card_get_destination
},
{
"GetLeaveFieldDest"
,
scriptlib
::
card_get_leave_field_dest
},
{
"GetTurnID"
,
scriptlib
::
card_get_turnid
},
{
"GetFieldID"
,
scriptlib
::
card_get_fieldid
},
{
"GetRealFieldID"
,
scriptlib
::
card_get_fieldidr
},
{
"IsOriginalCodeRule"
,
scriptlib
::
card_is_origin_code_rule
},
{
"IsCode"
,
scriptlib
::
card_is_code
},
{
"IsType"
,
scriptlib
::
card_is_type
},
{
"IsFusionType"
,
scriptlib
::
card_is_fusion_type
},
{
"IsSynchroType"
,
scriptlib
::
card_is_synchro_type
},
{
"IsXyzType"
,
scriptlib
::
card_is_xyz_type
},
{
"IsLinkType"
,
scriptlib
::
card_is_link_type
},
{
"IsLevel"
,
scriptlib
::
card_is_level
},
{
"IsRank"
,
scriptlib
::
card_is_rank
},
{
"IsLink"
,
scriptlib
::
card_is_link
},
{
"IsAttack"
,
scriptlib
::
card_is_attack
},
{
"IsDefense"
,
scriptlib
::
card_is_defense
},
{
"IsRace"
,
scriptlib
::
card_is_race
},
{
"IsLinkRace"
,
scriptlib
::
card_is_link_race
},
{
"IsAttribute"
,
scriptlib
::
card_is_attribute
},
{
"IsFusionAttribute"
,
scriptlib
::
card_is_fusion_attribute
},
{
"IsLinkAttribute"
,
scriptlib
::
card_is_link_attribute
},
{
"IsReason"
,
scriptlib
::
card_is_reason
},
{
"IsSummonType"
,
scriptlib
::
card_is_summon_type
},
{
"IsStatus"
,
scriptlib
::
card_is_status
},
{
"IsNotTuner"
,
scriptlib
::
card_is_not_tuner
},
{
"SetStatus"
,
scriptlib
::
card_set_status
},
{
"IsDualState"
,
scriptlib
::
card_is_dual_state
},
{
"EnableDualState"
,
scriptlib
::
card_enable_dual_state
},
{
"SetTurnCounter"
,
scriptlib
::
card_set_turn_counter
},
{
"GetTurnCounter"
,
scriptlib
::
card_get_turn_counter
},
{
"SetMaterial"
,
scriptlib
::
card_set_material
},
{
"GetMaterial"
,
scriptlib
::
card_get_material
},
{
"GetMaterialCount"
,
scriptlib
::
card_get_material_count
},
{
"GetEquipGroup"
,
scriptlib
::
card_get_equip_group
},
{
"GetEquipCount"
,
scriptlib
::
card_get_equip_count
},
{
"GetEquipTarget"
,
scriptlib
::
card_get_equip_target
},
{
"GetPreviousEquipTarget"
,
scriptlib
::
card_get_pre_equip_target
},
{
"CheckEquipTarget"
,
scriptlib
::
card_check_equip_target
},
{
"GetUnionCount"
,
scriptlib
::
card_get_union_count
},
{
"GetOverlayGroup"
,
scriptlib
::
card_get_overlay_group
},
{
"GetOverlayCount"
,
scriptlib
::
card_get_overlay_count
},
{
"GetOverlayTarget"
,
scriptlib
::
card_get_overlay_target
},
{
"CheckRemoveOverlayCard"
,
scriptlib
::
card_check_remove_overlay_card
},
{
"RemoveOverlayCard"
,
scriptlib
::
card_remove_overlay_card
},
{
"GetAttackedGroup"
,
scriptlib
::
card_get_attacked_group
},
{
"GetAttackedGroupCount"
,
scriptlib
::
card_get_attacked_group_count
},
{
"GetAttackedCount"
,
scriptlib
::
card_get_attacked_count
},
{
"GetBattledGroup"
,
scriptlib
::
card_get_battled_group
},
{
"GetBattledGroupCount"
,
scriptlib
::
card_get_battled_group_count
},
{
"GetAttackAnnouncedCount"
,
scriptlib
::
card_get_attack_announced_count
},
{
"IsDirectAttacked"
,
scriptlib
::
card_is_direct_attacked
},
{
"SetCardTarget"
,
scriptlib
::
card_set_card_target
},
{
"GetCardTarget"
,
scriptlib
::
card_get_card_target
},
{
"GetFirstCardTarget"
,
scriptlib
::
card_get_first_card_target
},
{
"GetCardTargetCount"
,
scriptlib
::
card_get_card_target_count
},
{
"IsHasCardTarget"
,
scriptlib
::
card_is_has_card_target
},
{
"CancelCardTarget"
,
scriptlib
::
card_cancel_card_target
},
{
"GetOwnerTarget"
,
scriptlib
::
card_get_owner_target
},
{
"GetOwnerTargetCount"
,
scriptlib
::
card_get_owner_target_count
},
{
"GetActivateEffect"
,
scriptlib
::
card_get_activate_effect
},
{
"CheckActivateEffect"
,
scriptlib
::
card_check_activate_effect
},
{
"GetTunerLimit"
,
scriptlib
::
card_get_tuner_limit
},
{
"GetHandSynchro"
,
scriptlib
::
card_get_hand_synchro
},
{
"RegisterEffect"
,
scriptlib
::
card_register_effect
},
{
"IsHasEffect"
,
scriptlib
::
card_is_has_effect
},
{
"ResetEffect"
,
scriptlib
::
card_reset_effect
},
{
"GetEffectCount"
,
scriptlib
::
card_get_effect_count
},
{
"RegisterFlagEffect"
,
scriptlib
::
card_register_flag_effect
},
{
"GetFlagEffect"
,
scriptlib
::
card_get_flag_effect
},
{
"ResetFlagEffect"
,
scriptlib
::
card_reset_flag_effect
},
{
"SetFlagEffectLabel"
,
scriptlib
::
card_set_flag_effect_label
},
{
"GetFlagEffectLabel"
,
scriptlib
::
card_get_flag_effect_label
},
{
"CreateRelation"
,
scriptlib
::
card_create_relation
},
{
"ReleaseRelation"
,
scriptlib
::
card_release_relation
},
{
"CreateEffectRelation"
,
scriptlib
::
card_create_effect_relation
},
{
"ReleaseEffectRelation"
,
scriptlib
::
card_release_effect_relation
},
{
"ClearEffectRelation"
,
scriptlib
::
card_clear_effect_relation
},
{
"IsRelateToEffect"
,
scriptlib
::
card_is_relate_to_effect
},
{
"IsRelateToChain"
,
scriptlib
::
card_is_relate_to_chain
},
{
"IsRelateToCard"
,
scriptlib
::
card_is_relate_to_card
},
{
"IsRelateToBattle"
,
scriptlib
::
card_is_relate_to_battle
},
{
"CopyEffect"
,
scriptlib
::
card_copy_effect
},
{
"ReplaceEffect"
,
scriptlib
::
card_replace_effect
},
{
"EnableReviveLimit"
,
scriptlib
::
card_enable_revive_limit
},
{
"CompleteProcedure"
,
scriptlib
::
card_complete_procedure
},
{
"IsDisabled"
,
scriptlib
::
card_is_disabled
},
{
"IsDestructable"
,
scriptlib
::
card_is_destructable
},
{
"IsSummonableCard"
,
scriptlib
::
card_is_summonable
},
{
"IsFusionSummonableCard"
,
scriptlib
::
card_is_fusion_summonable_card
},
{
"IsSpecialSummonable"
,
scriptlib
::
card_is_special_summonable
},
{
"IsSynchroSummonable"
,
scriptlib
::
card_is_synchro_summonable
},
{
"IsXyzSummonable"
,
scriptlib
::
card_is_xyz_summonable
},
{
"IsLinkSummonable"
,
scriptlib
::
card_is_link_summonable
},
{
"IsSummonable"
,
scriptlib
::
card_is_can_be_summoned
},
{
"IsMSetable"
,
scriptlib
::
card_is_msetable
},
{
"IsSSetable"
,
scriptlib
::
card_is_ssetable
},
{
"IsCanBeSpecialSummoned"
,
scriptlib
::
card_is_can_be_special_summoned
},
{
"IsAbleToHand"
,
scriptlib
::
card_is_able_to_hand
},
{
"IsAbleToDeck"
,
scriptlib
::
card_is_able_to_deck
},
{
"IsAbleToExtra"
,
scriptlib
::
card_is_able_to_extra
},
{
"IsAbleToGrave"
,
scriptlib
::
card_is_able_to_grave
},
{
"IsAbleToRemove"
,
scriptlib
::
card_is_able_to_remove
},
{
"IsAbleToHandAsCost"
,
scriptlib
::
card_is_able_to_hand_as_cost
},
{
"IsAbleToDeckAsCost"
,
scriptlib
::
card_is_able_to_deck_as_cost
},
{
"IsAbleToExtraAsCost"
,
scriptlib
::
card_is_able_to_extra_as_cost
},
{
"IsAbleToDeckOrExtraAsCost"
,
scriptlib
::
card_is_able_to_deck_or_extra_as_cost
},
{
"IsAbleToGraveAsCost"
,
scriptlib
::
card_is_able_to_grave_as_cost
},
{
"IsAbleToRemoveAsCost"
,
scriptlib
::
card_is_able_to_remove_as_cost
},
{
"IsReleasable"
,
scriptlib
::
card_is_releasable
},
{
"IsReleasableByEffect"
,
scriptlib
::
card_is_releasable_by_effect
},
{
"IsDiscardable"
,
scriptlib
::
card_is_discardable
},
{
"IsAttackable"
,
scriptlib
::
card_is_attackable
},
{
"IsChainAttackable"
,
scriptlib
::
card_is_chain_attackable
},
{
"IsFaceup"
,
scriptlib
::
card_is_faceup
},
{
"IsAttackPos"
,
scriptlib
::
card_is_attack_pos
},
{
"IsFacedown"
,
scriptlib
::
card_is_facedown
},
{
"IsDefensePos"
,
scriptlib
::
card_is_defense_pos
},
{
"IsPosition"
,
scriptlib
::
card_is_position
},
{
"IsPreviousPosition"
,
scriptlib
::
card_is_pre_position
},
{
"IsControler"
,
scriptlib
::
card_is_controler
},
{
"IsOnField"
,
scriptlib
::
card_is_onfield
},
{
"IsLocation"
,
scriptlib
::
card_is_location
},
{
"IsPreviousLocation"
,
scriptlib
::
card_is_pre_location
},
{
"IsLevelBelow"
,
scriptlib
::
card_is_level_below
},
{
"IsLevelAbove"
,
scriptlib
::
card_is_level_above
},
{
"IsRankBelow"
,
scriptlib
::
card_is_rank_below
},
{
"IsRankAbove"
,
scriptlib
::
card_is_rank_above
},
{
"IsLinkBelow"
,
scriptlib
::
card_is_link_below
},
{
"IsLinkAbove"
,
scriptlib
::
card_is_link_above
},
{
"IsAttackBelow"
,
scriptlib
::
card_is_attack_below
},
{
"IsAttackAbove"
,
scriptlib
::
card_is_attack_above
},
{
"IsDefenseBelow"
,
scriptlib
::
card_is_defense_below
},
{
"IsDefenseAbove"
,
scriptlib
::
card_is_defense_above
},
{
"IsPublic"
,
scriptlib
::
card_is_public
},
{
"IsForbidden"
,
scriptlib
::
card_is_forbidden
},
{
"IsAbleToChangeControler"
,
scriptlib
::
card_is_able_to_change_controler
},
{
"IsControlerCanBeChanged"
,
scriptlib
::
card_is_controler_can_be_changed
},
{
"AddCounter"
,
scriptlib
::
card_add_counter
},
{
"RemoveCounter"
,
scriptlib
::
card_remove_counter
},
{
"GetCounter"
,
scriptlib
::
card_get_counter
},
{
"EnableCounterPermit"
,
scriptlib
::
card_enable_counter_permit
},
{
"SetCounterLimit"
,
scriptlib
::
card_set_counter_limit
},
{
"IsCanChangePosition"
,
scriptlib
::
card_is_can_change_position
},
{
"IsCanTurnSet"
,
scriptlib
::
card_is_can_turn_set
},
{
"IsCanAddCounter"
,
scriptlib
::
card_is_can_add_counter
},
{
"IsCanRemoveCounter"
,
scriptlib
::
card_is_can_remove_counter
},
{
"IsCanOverlay"
,
scriptlib
::
card_is_can_overlay
},
{
"IsCanBeFusionMaterial"
,
scriptlib
::
card_is_can_be_fusion_material
},
{
"IsCanBeSynchroMaterial"
,
scriptlib
::
card_is_can_be_synchro_material
},
{
"IsCanBeRitualMaterial"
,
scriptlib
::
card_is_can_be_ritual_material
},
{
"IsCanBeXyzMaterial"
,
scriptlib
::
card_is_can_be_xyz_material
},
{
"IsCanBeLinkMaterial"
,
scriptlib
::
card_is_can_be_link_material
},
{
"CheckFusionMaterial"
,
scriptlib
::
card_check_fusion_material
},
{
"CheckFusionSubstitute"
,
scriptlib
::
card_check_fusion_substitute
},
{
"IsImmuneToEffect"
,
scriptlib
::
card_is_immune_to_effect
},
{
"IsCanBeEffectTarget"
,
scriptlib
::
card_is_can_be_effect_target
},
{
"IsCanBeBattleTarget"
,
scriptlib
::
card_is_can_be_battle_target
},
{
"AddMonsterAttribute"
,
scriptlib
::
card_add_monster_attribute
},
{
"CancelToGrave"
,
scriptlib
::
card_cancel_to_grave
},
{
"GetTributeRequirement"
,
scriptlib
::
card_get_tribute_requirement
},
{
"GetBattleTarget"
,
scriptlib
::
card_get_battle_target
},
{
"GetAttackableTarget"
,
scriptlib
::
card_get_attackable_target
},
{
"SetHint"
,
scriptlib
::
card_set_hint
},
{
"ReverseInDeck"
,
scriptlib
::
card_reverse_in_deck
},
{
"SetUniqueOnField"
,
scriptlib
::
card_set_unique_onfield
},
{
"CheckUniqueOnField"
,
scriptlib
::
card_check_unique_onfield
},
{
"ResetNegateEffect"
,
scriptlib
::
card_reset_negate_effect
},
{
"AssumeProperty"
,
scriptlib
::
card_assume_prop
},
{
"SetSPSummonOnce"
,
scriptlib
::
card_set_spsummon_once
},
{
NULL
,
NULL
}
};
void
scriptlib
::
open_cardlib
(
lua_State
*
L
)
{
luaL_newlib
(
L
,
cardlib
);
lua_pushstring
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
lua_setglobal
(
L
,
"Card"
);
}
libdebug.cpp
View file @
ea410524
...
@@ -203,3 +203,22 @@ int32 scriptlib::debug_show_hint(lua_State *L) {
...
@@ -203,3 +203,22 @@ int32 scriptlib::debug_show_hint(lua_State *L) {
pduel
->
write_buffer8
(
0
);
pduel
->
write_buffer8
(
0
);
return
0
;
return
0
;
}
}
static
const
struct
luaL_Reg
debuglib
[]
=
{
{
"Message"
,
scriptlib
::
debug_message
},
{
"AddCard"
,
scriptlib
::
debug_add_card
},
{
"SetPlayerInfo"
,
scriptlib
::
debug_set_player_info
},
{
"PreSummon"
,
scriptlib
::
debug_pre_summon
},
{
"PreEquip"
,
scriptlib
::
debug_pre_equip
},
{
"PreSetTarget"
,
scriptlib
::
debug_pre_set_target
},
{
"PreAddCounter"
,
scriptlib
::
debug_pre_add_counter
},
{
"ReloadFieldBegin"
,
scriptlib
::
debug_reload_field_begin
},
{
"ReloadFieldEnd"
,
scriptlib
::
debug_reload_field_end
},
{
"SetAIName"
,
scriptlib
::
debug_set_ai_name
},
{
"ShowHint"
,
scriptlib
::
debug_show_hint
},
{
NULL
,
NULL
}
};
void
scriptlib
::
open_debuglib
(
lua_State
*
L
)
{
luaL_newlib
(
L
,
debuglib
);
lua_setglobal
(
L
,
"Debug"
);
}
libduel.cpp
View file @
ea410524
...
@@ -4343,3 +4343,221 @@ int32 scriptlib::duel_majestic_copy(lua_State *L) {
...
@@ -4343,3 +4343,221 @@ int32 scriptlib::duel_majestic_copy(lua_State *L) {
}
}
return
0
;
return
0
;
}
}
static
const
struct
luaL_Reg
duellib
[]
=
{
{
"EnableGlobalFlag"
,
scriptlib
::
duel_enable_global_flag
},
{
"GetLP"
,
scriptlib
::
duel_get_lp
},
{
"SetLP"
,
scriptlib
::
duel_set_lp
},
{
"GetTurnPlayer"
,
scriptlib
::
duel_get_turn_player
},
{
"GetTurnCount"
,
scriptlib
::
duel_get_turn_count
},
{
"GetDrawCount"
,
scriptlib
::
duel_get_draw_count
},
{
"RegisterEffect"
,
scriptlib
::
duel_register_effect
},
{
"RegisterFlagEffect"
,
scriptlib
::
duel_register_flag_effect
},
{
"GetFlagEffect"
,
scriptlib
::
duel_get_flag_effect
},
{
"ResetFlagEffect"
,
scriptlib
::
duel_reset_flag_effect
},
{
"SetFlagEffectLabel"
,
scriptlib
::
duel_set_flag_effect_label
},
{
"GetFlagEffectLabel"
,
scriptlib
::
duel_get_flag_effect_label
},
{
"Destroy"
,
scriptlib
::
duel_destroy
},
{
"Remove"
,
scriptlib
::
duel_remove
},
{
"SendtoGrave"
,
scriptlib
::
duel_sendto_grave
},
{
"SendtoHand"
,
scriptlib
::
duel_sendto_hand
},
{
"SendtoDeck"
,
scriptlib
::
duel_sendto_deck
},
{
"SendtoExtraP"
,
scriptlib
::
duel_sendto_extra
},
{
"GetOperatedGroup"
,
scriptlib
::
duel_get_operated_group
},
{
"Summon"
,
scriptlib
::
duel_summon
},
{
"SpecialSummonRule"
,
scriptlib
::
duel_special_summon_rule
},
{
"SynchroSummon"
,
scriptlib
::
duel_synchro_summon
},
{
"XyzSummon"
,
scriptlib
::
duel_xyz_summon
},
{
"LinkSummon"
,
scriptlib
::
duel_link_summon
},
{
"MSet"
,
scriptlib
::
duel_setm
},
{
"SSet"
,
scriptlib
::
duel_sets
},
{
"CreateToken"
,
scriptlib
::
duel_create_token
},
{
"SpecialSummon"
,
scriptlib
::
duel_special_summon
},
{
"SpecialSummonStep"
,
scriptlib
::
duel_special_summon_step
},
{
"SpecialSummonComplete"
,
scriptlib
::
duel_special_summon_complete
},
{
"IsCanAddCounter"
,
scriptlib
::
duel_is_can_add_counter
},
{
"RemoveCounter"
,
scriptlib
::
duel_remove_counter
},
{
"IsCanRemoveCounter"
,
scriptlib
::
duel_is_can_remove_counter
},
{
"GetCounter"
,
scriptlib
::
duel_get_counter
},
{
"ChangePosition"
,
scriptlib
::
duel_change_form
},
{
"Release"
,
scriptlib
::
duel_release
},
{
"MoveToField"
,
scriptlib
::
duel_move_to_field
},
{
"ReturnToField"
,
scriptlib
::
duel_return_to_field
},
{
"MoveSequence"
,
scriptlib
::
duel_move_sequence
},
{
"SwapSequence"
,
scriptlib
::
duel_swap_sequence
},
{
"Activate"
,
scriptlib
::
duel_activate_effect
},
{
"SetChainLimit"
,
scriptlib
::
duel_set_chain_limit
},
{
"SetChainLimitTillChainEnd"
,
scriptlib
::
duel_set_chain_limit_p
},
{
"GetChainMaterial"
,
scriptlib
::
duel_get_chain_material
},
{
"ConfirmDecktop"
,
scriptlib
::
duel_confirm_decktop
},
{
"ConfirmExtratop"
,
scriptlib
::
duel_confirm_extratop
},
{
"ConfirmCards"
,
scriptlib
::
duel_confirm_cards
},
{
"SortDecktop"
,
scriptlib
::
duel_sort_decktop
},
{
"CheckEvent"
,
scriptlib
::
duel_check_event
},
{
"RaiseEvent"
,
scriptlib
::
duel_raise_event
},
{
"RaiseSingleEvent"
,
scriptlib
::
duel_raise_single_event
},
{
"CheckTiming"
,
scriptlib
::
duel_check_timing
},
{
"GetEnvironment"
,
scriptlib
::
duel_get_environment
},
{
"IsEnvironment"
,
scriptlib
::
duel_is_environment
},
{
"Win"
,
scriptlib
::
duel_win
},
{
"Draw"
,
scriptlib
::
duel_draw
},
{
"Damage"
,
scriptlib
::
duel_damage
},
{
"Recover"
,
scriptlib
::
duel_recover
},
{
"RDComplete"
,
scriptlib
::
duel_rd_complete
},
{
"Equip"
,
scriptlib
::
duel_equip
},
{
"EquipComplete"
,
scriptlib
::
duel_equip_complete
},
{
"GetControl"
,
scriptlib
::
duel_get_control
},
{
"SwapControl"
,
scriptlib
::
duel_swap_control
},
{
"CheckLPCost"
,
scriptlib
::
duel_check_lp_cost
},
{
"PayLPCost"
,
scriptlib
::
duel_pay_lp_cost
},
{
"DiscardDeck"
,
scriptlib
::
duel_discard_deck
},
{
"DiscardHand"
,
scriptlib
::
duel_discard_hand
},
{
"DisableShuffleCheck"
,
scriptlib
::
duel_disable_shuffle_check
},
{
"ShuffleDeck"
,
scriptlib
::
duel_shuffle_deck
},
{
"ShuffleExtra"
,
scriptlib
::
duel_shuffle_extra
},
{
"ShuffleHand"
,
scriptlib
::
duel_shuffle_hand
},
{
"ShuffleSetCard"
,
scriptlib
::
duel_shuffle_setcard
},
{
"ChangeAttacker"
,
scriptlib
::
duel_change_attacker
},
{
"ChangeAttackTarget"
,
scriptlib
::
duel_change_attack_target
},
{
"CalculateDamage"
,
scriptlib
::
duel_calculate_damage
},
{
"GetBattleDamage"
,
scriptlib
::
duel_get_battle_damage
},
{
"ChangeBattleDamage"
,
scriptlib
::
duel_change_battle_damage
},
{
"ChangeTargetCard"
,
scriptlib
::
duel_change_target
},
{
"ChangeTargetPlayer"
,
scriptlib
::
duel_change_target_player
},
{
"ChangeTargetParam"
,
scriptlib
::
duel_change_target_param
},
{
"BreakEffect"
,
scriptlib
::
duel_break_effect
},
{
"ChangeChainOperation"
,
scriptlib
::
duel_change_effect
},
{
"NegateActivation"
,
scriptlib
::
duel_negate_activate
},
{
"NegateEffect"
,
scriptlib
::
duel_negate_effect
},
{
"NegateRelatedChain"
,
scriptlib
::
duel_negate_related_chain
},
{
"NegateSummon"
,
scriptlib
::
duel_disable_summon
},
{
"IncreaseSummonedCount"
,
scriptlib
::
duel_increase_summon_count
},
{
"CheckSummonedCount"
,
scriptlib
::
duel_check_summon_count
},
{
"GetLocationCount"
,
scriptlib
::
duel_get_location_count
},
{
"GetMZoneCount"
,
scriptlib
::
duel_get_mzone_count
},
{
"GetLocationCountFromEx"
,
scriptlib
::
duel_get_location_count_fromex
},
{
"GetUsableMZoneCount"
,
scriptlib
::
duel_get_usable_mzone_count
},
{
"GetLinkedGroup"
,
scriptlib
::
duel_get_linked_group
},
{
"GetLinkedGroupCount"
,
scriptlib
::
duel_get_linked_group_count
},
{
"GetLinkedZone"
,
scriptlib
::
duel_get_linked_zone
},
{
"GetFieldCard"
,
scriptlib
::
duel_get_field_card
},
{
"CheckLocation"
,
scriptlib
::
duel_check_location
},
{
"GetCurrentChain"
,
scriptlib
::
duel_get_current_chain
},
{
"GetChainInfo"
,
scriptlib
::
duel_get_chain_info
},
{
"GetChainEvent"
,
scriptlib
::
duel_get_chain_event
},
{
"GetFirstTarget"
,
scriptlib
::
duel_get_first_target
},
{
"GetCurrentPhase"
,
scriptlib
::
duel_get_current_phase
},
{
"SkipPhase"
,
scriptlib
::
duel_skip_phase
},
{
"IsDamageCalculated"
,
scriptlib
::
duel_is_damage_calculated
},
{
"GetAttacker"
,
scriptlib
::
duel_get_attacker
},
{
"GetAttackTarget"
,
scriptlib
::
duel_get_attack_target
},
{
"NegateAttack"
,
scriptlib
::
duel_disable_attack
},
{
"ChainAttack"
,
scriptlib
::
duel_chain_attack
},
{
"Readjust"
,
scriptlib
::
duel_readjust
},
{
"AdjustInstantly"
,
scriptlib
::
duel_adjust_instantly
},
{
"GetFieldGroup"
,
scriptlib
::
duel_get_field_group
},
{
"GetFieldGroupCount"
,
scriptlib
::
duel_get_field_group_count
},
{
"GetDecktopGroup"
,
scriptlib
::
duel_get_decktop_group
},
{
"GetExtraTopGroup"
,
scriptlib
::
duel_get_extratop_group
},
{
"GetMatchingGroup"
,
scriptlib
::
duel_get_matching_group
},
{
"GetMatchingGroupCount"
,
scriptlib
::
duel_get_matching_count
},
{
"GetFirstMatchingCard"
,
scriptlib
::
duel_get_first_matching_card
},
{
"IsExistingMatchingCard"
,
scriptlib
::
duel_is_existing_matching_card
},
{
"SelectMatchingCard"
,
scriptlib
::
duel_select_matching_cards
},
{
"GetReleaseGroup"
,
scriptlib
::
duel_get_release_group
},
{
"GetReleaseGroupCount"
,
scriptlib
::
duel_get_release_group_count
},
{
"CheckReleaseGroup"
,
scriptlib
::
duel_check_release_group
},
{
"SelectReleaseGroup"
,
scriptlib
::
duel_select_release_group
},
{
"CheckReleaseGroupEx"
,
scriptlib
::
duel_check_release_group_ex
},
{
"SelectReleaseGroupEx"
,
scriptlib
::
duel_select_release_group_ex
},
{
"GetTributeGroup"
,
scriptlib
::
duel_get_tribute_group
},
{
"GetTributeCount"
,
scriptlib
::
duel_get_tribute_count
},
{
"CheckTribute"
,
scriptlib
::
duel_check_tribute
},
{
"SelectTribute"
,
scriptlib
::
duel_select_tribute
},
{
"GetTargetCount"
,
scriptlib
::
duel_get_target_count
},
{
"IsExistingTarget"
,
scriptlib
::
duel_is_existing_target
},
{
"SelectTarget"
,
scriptlib
::
duel_select_target
},
{
"SelectFusionMaterial"
,
scriptlib
::
duel_select_fusion_material
},
{
"SetFusionMaterial"
,
scriptlib
::
duel_set_fusion_material
},
{
"SetSynchroMaterial"
,
scriptlib
::
duel_set_synchro_material
},
{
"SelectSynchroMaterial"
,
scriptlib
::
duel_select_synchro_material
},
{
"CheckSynchroMaterial"
,
scriptlib
::
duel_check_synchro_material
},
{
"SelectTunerMaterial"
,
scriptlib
::
duel_select_tuner_material
},
{
"CheckTunerMaterial"
,
scriptlib
::
duel_check_tuner_material
},
{
"GetRitualMaterial"
,
scriptlib
::
duel_get_ritual_material
},
{
"ReleaseRitualMaterial"
,
scriptlib
::
duel_release_ritual_material
},
{
"GetFusionMaterial"
,
scriptlib
::
duel_get_fusion_material
},
{
"SetSelectedCard"
,
scriptlib
::
duel_set_must_select_cards
},
{
"GrabSelectedCard"
,
scriptlib
::
duel_grab_must_select_cards
},
{
"SetTargetCard"
,
scriptlib
::
duel_set_target_card
},
{
"ClearTargetCard"
,
scriptlib
::
duel_clear_target_card
},
{
"SetTargetPlayer"
,
scriptlib
::
duel_set_target_player
},
{
"SetTargetParam"
,
scriptlib
::
duel_set_target_param
},
{
"SetOperationInfo"
,
scriptlib
::
duel_set_operation_info
},
{
"GetOperationInfo"
,
scriptlib
::
duel_get_operation_info
},
{
"GetOperationCount"
,
scriptlib
::
duel_get_operation_count
},
{
"ClearOperationInfo"
,
scriptlib
::
duel_clear_operation_info
},
{
"CheckXyzMaterial"
,
scriptlib
::
duel_check_xyz_material
},
{
"SelectXyzMaterial"
,
scriptlib
::
duel_select_xyz_material
},
{
"Overlay"
,
scriptlib
::
duel_overlay
},
{
"GetOverlayGroup"
,
scriptlib
::
duel_get_overlay_group
},
{
"GetOverlayCount"
,
scriptlib
::
duel_get_overlay_count
},
{
"CheckRemoveOverlayCard"
,
scriptlib
::
duel_check_remove_overlay_card
},
{
"RemoveOverlayCard"
,
scriptlib
::
duel_remove_overlay_card
},
{
"Hint"
,
scriptlib
::
duel_hint
},
{
"HintSelection"
,
scriptlib
::
duel_hint_selection
},
{
"SelectEffectYesNo"
,
scriptlib
::
duel_select_effect_yesno
},
{
"SelectYesNo"
,
scriptlib
::
duel_select_yesno
},
{
"SelectOption"
,
scriptlib
::
duel_select_option
},
{
"SelectSequence"
,
scriptlib
::
duel_select_sequence
},
{
"SelectPosition"
,
scriptlib
::
duel_select_position
},
{
"SelectDisableField"
,
scriptlib
::
duel_select_disable_field
},
{
"AnnounceRace"
,
scriptlib
::
duel_announce_race
},
{
"AnnounceAttribute"
,
scriptlib
::
duel_announce_attribute
},
{
"AnnounceLevel"
,
scriptlib
::
duel_announce_level
},
{
"AnnounceCard"
,
scriptlib
::
duel_announce_card
},
{
"AnnounceType"
,
scriptlib
::
duel_announce_type
},
{
"AnnounceNumber"
,
scriptlib
::
duel_announce_number
},
{
"AnnounceCoin"
,
scriptlib
::
duel_announce_coin
},
{
"TossCoin"
,
scriptlib
::
duel_toss_coin
},
{
"TossDice"
,
scriptlib
::
duel_toss_dice
},
{
"RockPaperScissors"
,
scriptlib
::
duel_rock_paper_scissors
},
{
"GetCoinResult"
,
scriptlib
::
duel_get_coin_result
},
{
"GetDiceResult"
,
scriptlib
::
duel_get_dice_result
},
{
"SetCoinResult"
,
scriptlib
::
duel_set_coin_result
},
{
"SetDiceResult"
,
scriptlib
::
duel_set_dice_result
},
{
"IsPlayerAffectedByEffect"
,
scriptlib
::
duel_is_player_affected_by_effect
},
{
"IsPlayerCanDraw"
,
scriptlib
::
duel_is_player_can_draw
},
{
"IsPlayerCanDiscardDeck"
,
scriptlib
::
duel_is_player_can_discard_deck
},
{
"IsPlayerCanDiscardDeckAsCost"
,
scriptlib
::
duel_is_player_can_discard_deck_as_cost
},
{
"IsPlayerCanSummon"
,
scriptlib
::
duel_is_player_can_summon
},
{
"IsPlayerCanMSet"
,
scriptlib
::
duel_is_player_can_mset
},
{
"IsPlayerCanSSet"
,
scriptlib
::
duel_is_player_can_sset
},
{
"IsPlayerCanSpecialSummon"
,
scriptlib
::
duel_is_player_can_spsummon
},
{
"IsPlayerCanFlipSummon"
,
scriptlib
::
duel_is_player_can_flipsummon
},
{
"IsPlayerCanSpecialSummonMonster"
,
scriptlib
::
duel_is_player_can_spsummon_monster
},
{
"IsPlayerCanSpecialSummonCount"
,
scriptlib
::
duel_is_player_can_spsummon_count
},
{
"IsPlayerCanRelease"
,
scriptlib
::
duel_is_player_can_release
},
{
"IsPlayerCanRemove"
,
scriptlib
::
duel_is_player_can_remove
},
{
"IsPlayerCanSendtoHand"
,
scriptlib
::
duel_is_player_can_send_to_hand
},
{
"IsPlayerCanSendtoGrave"
,
scriptlib
::
duel_is_player_can_send_to_grave
},
{
"IsPlayerCanSendtoDeck"
,
scriptlib
::
duel_is_player_can_send_to_deck
},
{
"IsPlayerCanAdditionalSummon"
,
scriptlib
::
duel_is_player_can_additional_summon
},
{
"IsChainNegatable"
,
scriptlib
::
duel_is_chain_negatable
},
{
"IsChainDisablable"
,
scriptlib
::
duel_is_chain_disablable
},
{
"CheckChainTarget"
,
scriptlib
::
duel_check_chain_target
},
{
"CheckChainUniqueness"
,
scriptlib
::
duel_check_chain_uniqueness
},
{
"GetActivityCount"
,
scriptlib
::
duel_get_activity_count
},
{
"CheckPhaseActivity"
,
scriptlib
::
duel_check_phase_activity
},
{
"AddCustomActivityCounter"
,
scriptlib
::
duel_add_custom_activity_counter
},
{
"GetCustomActivityCount"
,
scriptlib
::
duel_get_custom_activity_count
},
{
"GetBattledCount"
,
scriptlib
::
duel_get_battled_count
},
{
"IsAbleToEnterBP"
,
scriptlib
::
duel_is_able_to_enter_bp
},
{
"SwapDeckAndGrave"
,
scriptlib
::
duel_swap_deck_and_grave
},
{
"MajesticCopy"
,
scriptlib
::
duel_majestic_copy
},
{
NULL
,
NULL
}
};
void
scriptlib
::
open_duellib
(
lua_State
*
L
)
{
luaL_newlib
(
L
,
duellib
);
lua_setglobal
(
L
,
"Duel"
);
}
libeffect.cpp
View file @
ea410524
...
@@ -561,3 +561,65 @@ int32 scriptlib::effect_use_count_limit(lua_State *L) {
...
@@ -561,3 +561,65 @@ int32 scriptlib::effect_use_count_limit(lua_State *L) {
}
}
return
0
;
return
0
;
}
}
static
const
struct
luaL_Reg
effectlib
[]
=
{
{
"CreateEffect"
,
scriptlib
::
effect_new
},
{
"GlobalEffect"
,
scriptlib
::
effect_newex
},
{
"Clone"
,
scriptlib
::
effect_clone
},
{
"Reset"
,
scriptlib
::
effect_reset
},
{
"GetFieldID"
,
scriptlib
::
effect_get_field_id
},
{
"SetDescription"
,
scriptlib
::
effect_set_description
},
{
"SetCode"
,
scriptlib
::
effect_set_code
},
{
"SetRange"
,
scriptlib
::
effect_set_range
},
{
"SetTargetRange"
,
scriptlib
::
effect_set_target_range
},
{
"SetAbsoluteRange"
,
scriptlib
::
effect_set_absolute_range
},
{
"SetCountLimit"
,
scriptlib
::
effect_set_count_limit
},
{
"SetReset"
,
scriptlib
::
effect_set_reset
},
{
"SetType"
,
scriptlib
::
effect_set_type
},
{
"SetProperty"
,
scriptlib
::
effect_set_property
},
{
"SetLabel"
,
scriptlib
::
effect_set_label
},
{
"SetLabelObject"
,
scriptlib
::
effect_set_label_object
},
{
"SetCategory"
,
scriptlib
::
effect_set_category
},
{
"SetHintTiming"
,
scriptlib
::
effect_set_hint_timing
},
{
"SetCondition"
,
scriptlib
::
effect_set_condition
},
{
"SetTarget"
,
scriptlib
::
effect_set_target
},
{
"SetCost"
,
scriptlib
::
effect_set_cost
},
{
"SetValue"
,
scriptlib
::
effect_set_value
},
{
"SetOperation"
,
scriptlib
::
effect_set_operation
},
{
"SetOwnerPlayer"
,
scriptlib
::
effect_set_owner_player
},
{
"GetDescription"
,
scriptlib
::
effect_get_description
},
{
"GetCode"
,
scriptlib
::
effect_get_code
},
{
"GetType"
,
scriptlib
::
effect_get_type
},
{
"GetProperty"
,
scriptlib
::
effect_get_property
},
{
"GetLabel"
,
scriptlib
::
effect_get_label
},
{
"GetLabelObject"
,
scriptlib
::
effect_get_label_object
},
{
"GetCategory"
,
scriptlib
::
effect_get_category
},
{
"GetOwner"
,
scriptlib
::
effect_get_owner
},
{
"GetHandler"
,
scriptlib
::
effect_get_handler
},
{
"GetCondition"
,
scriptlib
::
effect_get_condition
},
{
"GetTarget"
,
scriptlib
::
effect_get_target
},
{
"GetCost"
,
scriptlib
::
effect_get_cost
},
{
"GetValue"
,
scriptlib
::
effect_get_value
},
{
"GetOperation"
,
scriptlib
::
effect_get_operation
},
{
"GetActiveType"
,
scriptlib
::
effect_get_active_type
},
{
"IsActiveType"
,
scriptlib
::
effect_is_active_type
},
{
"GetOwnerPlayer"
,
scriptlib
::
effect_get_owner_player
},
{
"GetHandlerPlayer"
,
scriptlib
::
effect_get_handler_player
},
{
"IsHasProperty"
,
scriptlib
::
effect_is_has_property
},
{
"IsHasCategory"
,
scriptlib
::
effect_is_has_category
},
{
"IsHasType"
,
scriptlib
::
effect_is_has_type
},
{
"IsActivatable"
,
scriptlib
::
effect_is_activatable
},
{
"IsActivated"
,
scriptlib
::
effect_is_activated
},
{
"GetActivateLocation"
,
scriptlib
::
effect_get_activate_location
},
{
"GetActivateSequence"
,
scriptlib
::
effect_get_activate_sequence
},
{
"CheckCountLimit"
,
scriptlib
::
effect_check_count_limit
},
{
"UseCountLimit"
,
scriptlib
::
effect_use_count_limit
},
{
NULL
,
NULL
}
};
void
scriptlib
::
open_effectlib
(
lua_State
*
L
)
{
luaL_newlib
(
L
,
effectlib
);
lua_pushstring
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
lua_setglobal
(
L
,
"Effect"
);
}
libgroup.cpp
View file @
ea410524
...
@@ -845,3 +845,54 @@ int32 scriptlib::group_meta_bxor(lua_State* L) {
...
@@ -845,3 +845,54 @@ int32 scriptlib::group_meta_bxor(lua_State* L) {
interpreter
::
group2value
(
L
,
pgroup
);
interpreter
::
group2value
(
L
,
pgroup
);
return
1
;
return
1
;
}
}
static
const
struct
luaL_Reg
grouplib
[]
=
{
{
"CreateGroup"
,
scriptlib
::
group_new
},
{
"KeepAlive"
,
scriptlib
::
group_keep_alive
},
{
"DeleteGroup"
,
scriptlib
::
group_delete
},
{
"Clone"
,
scriptlib
::
group_clone
},
{
"FromCards"
,
scriptlib
::
group_from_cards
},
{
"Clear"
,
scriptlib
::
group_clear
},
{
"AddCard"
,
scriptlib
::
group_add_card
},
{
"RemoveCard"
,
scriptlib
::
group_remove_card
},
{
"GetNext"
,
scriptlib
::
group_get_next
},
{
"GetFirst"
,
scriptlib
::
group_get_first
},
{
"GetCount"
,
scriptlib
::
group_get_count
},
{
"__len"
,
scriptlib
::
group_get_count
},
{
"ForEach"
,
scriptlib
::
group_for_each
},
{
"Filter"
,
scriptlib
::
group_filter
},
{
"FilterCount"
,
scriptlib
::
group_filter_count
},
{
"FilterSelect"
,
scriptlib
::
group_filter_select
},
{
"Select"
,
scriptlib
::
group_select
},
{
"SelectUnselect"
,
scriptlib
::
group_select_unselect
},
{
"RandomSelect"
,
scriptlib
::
group_random_select
},
{
"IsExists"
,
scriptlib
::
group_is_exists
},
{
"CheckWithSumEqual"
,
scriptlib
::
group_check_with_sum_equal
},
{
"SelectWithSumEqual"
,
scriptlib
::
group_select_with_sum_equal
},
{
"CheckWithSumGreater"
,
scriptlib
::
group_check_with_sum_greater
},
{
"SelectWithSumGreater"
,
scriptlib
::
group_select_with_sum_greater
},
{
"GetMinGroup"
,
scriptlib
::
group_get_min_group
},
{
"GetMaxGroup"
,
scriptlib
::
group_get_max_group
},
{
"GetSum"
,
scriptlib
::
group_get_sum
},
{
"GetClassCount"
,
scriptlib
::
group_get_class_count
},
{
"Remove"
,
scriptlib
::
group_remove
},
{
"Merge"
,
scriptlib
::
group_merge
},
{
"Sub"
,
scriptlib
::
group_sub
},
{
"Equal"
,
scriptlib
::
group_equal
},
{
"IsContains"
,
scriptlib
::
group_is_contains
},
{
"SearchCard"
,
scriptlib
::
group_search_card
},
{
"GetBinClassCount"
,
scriptlib
::
group_get_bin_class_count
},
{
"__add"
,
scriptlib
::
group_meta_add
},
{
"__bor"
,
scriptlib
::
group_meta_add
},
{
"__sub"
,
scriptlib
::
group_meta_sub
},
{
"__band"
,
scriptlib
::
group_meta_band
},
{
"__bxor"
,
scriptlib
::
group_meta_bxor
},
{
NULL
,
NULL
}
};
void
scriptlib
::
open_grouplib
(
lua_State
*
L
)
{
luaL_newlib
(
L
,
grouplib
);
lua_pushstring
(
L
,
"__index"
);
lua_pushvalue
(
L
,
-
2
);
lua_rawset
(
L
,
-
3
);
lua_setglobal
(
L
,
"Group"
);
}
scriptlib.h
View file @
ea410524
...
@@ -269,6 +269,7 @@ public:
...
@@ -269,6 +269,7 @@ public:
static
int32
card_reset_negate_effect
(
lua_State
*
L
);
static
int32
card_reset_negate_effect
(
lua_State
*
L
);
static
int32
card_assume_prop
(
lua_State
*
L
);
static
int32
card_assume_prop
(
lua_State
*
L
);
static
int32
card_set_spsummon_once
(
lua_State
*
L
);
static
int32
card_set_spsummon_once
(
lua_State
*
L
);
static
void
open_cardlib
(
lua_State
*
L
);
//Effect functions
//Effect functions
static
int32
effect_new
(
lua_State
*
L
);
static
int32
effect_new
(
lua_State
*
L
);
...
@@ -322,6 +323,7 @@ public:
...
@@ -322,6 +323,7 @@ public:
static
int32
effect_get_activate_sequence
(
lua_State
*
L
);
static
int32
effect_get_activate_sequence
(
lua_State
*
L
);
static
int32
effect_check_count_limit
(
lua_State
*
L
);
static
int32
effect_check_count_limit
(
lua_State
*
L
);
static
int32
effect_use_count_limit
(
lua_State
*
L
);
static
int32
effect_use_count_limit
(
lua_State
*
L
);
static
void
open_effectlib
(
lua_State
*
L
);
//Group functions
//Group functions
static
int32
group_new
(
lua_State
*
L
);
static
int32
group_new
(
lua_State
*
L
);
...
@@ -358,6 +360,7 @@ public:
...
@@ -358,6 +360,7 @@ public:
static
int32
group_is_contains
(
lua_State
*
L
);
static
int32
group_is_contains
(
lua_State
*
L
);
static
int32
group_search_card
(
lua_State
*
L
);
static
int32
group_search_card
(
lua_State
*
L
);
static
int32
group_get_bin_class_count
(
lua_State
*
L
);
static
int32
group_get_bin_class_count
(
lua_State
*
L
);
static
void
open_grouplib
(
lua_State
*
L
);
//Duel functions
//Duel functions
static
int32
duel_enable_global_flag
(
lua_State
*
L
);
static
int32
duel_enable_global_flag
(
lua_State
*
L
);
...
@@ -577,6 +580,8 @@ public:
...
@@ -577,6 +580,8 @@ public:
static
int32
duel_swap_deck_and_grave
(
lua_State
*
L
);
static
int32
duel_swap_deck_and_grave
(
lua_State
*
L
);
static
int32
duel_majestic_copy
(
lua_State
*
L
);
static
int32
duel_majestic_copy
(
lua_State
*
L
);
static
void
open_duellib
(
lua_State
*
L
);
//group metamethods
//group metamethods
//__len is in the group lib, which is same as group_get_count
//__len is in the group lib, which is same as group_get_count
static
int32
group_meta_add
(
lua_State
*
L
);
static
int32
group_meta_add
(
lua_State
*
L
);
...
@@ -596,6 +601,7 @@ public:
...
@@ -596,6 +601,7 @@ public:
static
int32
debug_reload_field_end
(
lua_State
*
L
);
static
int32
debug_reload_field_end
(
lua_State
*
L
);
static
int32
debug_set_ai_name
(
lua_State
*
L
);
static
int32
debug_set_ai_name
(
lua_State
*
L
);
static
int32
debug_show_hint
(
lua_State
*
L
);
static
int32
debug_show_hint
(
lua_State
*
L
);
static
void
open_debuglib
(
lua_State
*
L
);
};
};
#endif
/* SCRIPTLIB_H_ */
#endif
/* SCRIPTLIB_H_ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment