Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
mycard
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
List
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
xiaoye
mycard
Commits
8b07a504
Commit
8b07a504
authored
Dec 09, 2011
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NBX action解析大量增加
parent
48dcc949
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
173 additions
and
137 deletions
+173
-137
lib/action.rb
lib/action.rb
+16
-5
lib/nbx/action.rb
lib/nbx/action.rb
+88
-74
lib/nbx/event.rb
lib/nbx/event.rb
+2
-4
lib/scene_duel.rb
lib/scene_duel.rb
+20
-9
lib/window_field.rb
lib/window_field.rb
+45
-44
lib/window_roomchat.rb
lib/window_roomchat.rb
+2
-1
No files found.
lib/action.rb
View file @
8b07a504
...
@@ -136,7 +136,7 @@ class Action
...
@@ -136,7 +136,7 @@ class Action
end
end
else
else
card
=
Game_Card
.
new
(
@card
)
card
=
Game_Card
.
new
(
@card
)
p
"似乎凭空产生了卡片?"
p
uts
"似乎凭空产生了卡片?"
p
self
p
self
end
end
card
.
position
=
@position
if
@position
card
.
position
=
@position
if
@position
...
@@ -271,6 +271,12 @@ class Action
...
@@ -271,6 +271,12 @@ class Action
@card
=
card
@card
=
card
end
end
end
end
class
MultiShow
<
Action
def
initialize
(
from_player
,
cards
)
super
(
from_player
,
nil
)
@cards
=
cards
end
end
class
Effect_Activate
<
Move
class
Effect_Activate
<
Move
def
initialize
(
from_player
,
from_pos
,
card
)
def
initialize
(
from_player
,
from_pos
,
card
)
@from_player
=
from_player
@from_player
=
from_player
...
@@ -286,13 +292,18 @@ class Action
...
@@ -286,13 +292,18 @@ class Action
super
(
from_player
,
from_pos
,
nil
,
card
,
nil
,
position
)
super
(
from_player
,
from_pos
,
nil
,
card
,
nil
,
position
)
end
end
end
end
class
Ignored
<
Action
def
initialize
(
str
)
@str
=
str
end
end
class
Unknown
<
Action
class
Unknown
<
Action
def
initialize
(
*
args
)
def
initialize
(
str
)
puts
'unkonwn action'
@str
=
str
p
args
p
uts
'unkonwn action '
+
str
end
end
def
run
def
run
puts
'unkonwn action run
'
puts
'unkonwn action run
'
+
@str
end
end
end
end
def
self
.
reset
def
self
.
reset
...
...
lib/nbx/action.rb
View file @
8b07a504
#encoding: UTF-8
#encoding: UTF-8
require_relative
'../action'
require_relative
'../action'
class
Action
class
Action
CardFilter
=
/((?:<)
{0,1}(?:\[.*?\]\[(?:.*?)\]){0,1}[\s\d]*(?:>){0,1}
|一张怪兽卡|一张魔\/陷卡)/
.
to_s
CardFilter
=
/((?:<)
?(?:\[.*?\]\[(?:.*?)\])?[\s\d]*(?:>)?
|一张怪兽卡|一张魔\/陷卡)/
.
to_s
#FieldCardFilter = /(<>|<??>|<(?:(?:表攻|表守|里守)\|)
{0,1}\[.*?\]\[(?:.*?)\]){0,1}
[\s\d]*>)/.to_s
#FieldCardFilter = /(<>|<??>|<(?:(?:表攻|表守|里守)\|)
?\[.*?\]\[(?:.*?)\])?
[\s\d]*>)/.to_s
PosFilter
=
/((?:手卡|手牌|场上|魔陷区|怪兽区|墓地|额外牌堆|除外区|卡组顶端|\(\d+\)){1,2})/
.
to_s
PosFilter
=
/((?:手卡|手牌|场上|魔陷区|怪兽区|墓地|额外牌堆|除外区|卡组
|卡组
顶端|\(\d+\)){1,2})/
.
to_s
PositionFilter
=
/(攻击表示|防守表示|里侧表示|背面守备表示)/
.
to_s
PositionFilter
=
/(攻击表示|防守表示|里侧表示|背面守备表示)/
.
to_s
PhaseFilter
=
/(抽卡`阶段|准备`阶段|主`阶段1|战斗`阶段|主`阶段2|结束`阶段)/
.
to_s
PhaseFilter
=
/(抽卡`阶段|准备`阶段|主`阶段1|战斗`阶段|主`阶段2|结束`阶段)/
.
to_s
def
self
.
parse_pos
(
pos
)
def
self
.
parse_pos
(
pos
)
...
@@ -22,7 +22,7 @@ class Action
...
@@ -22,7 +22,7 @@ class Action
:extra
:extra
when
"除外区"
when
"除外区"
:removed
:removed
when
"卡组顶端"
when
"卡组顶端"
,
"卡组"
:deck
:deck
end
end
end
end
...
@@ -145,88 +145,97 @@ class Action
...
@@ -145,88 +145,97 @@ class Action
end
end
end
end
def
self
.
parse
(
str
)
def
self
.
parse
(
str
)
str
=~
/^\[(\d+)\] (.*)▊▊▊.*?$/m
from_player
=
false
from_player
=
false
id
=
$1
.
to_i
case
str
result
=
case
$2
when
/^(
#{
CardFilter
}
\r\n)*$/m
when
/^┊(.*)┊$/m
MultiShow
.
new
from_player
,
$&
.
lines
.
collect
{
|
card
|
parse_card
(
card
)}
Chat
.
new
from_player
,
$1
when
/^\[(\d+)\] (.*)$/m
when
/^※\[(.*)\]\r\n(.*)\r\n注释$/m
id
=
$1
.
to_i
Note
.
new
from_player
,
$2
,
Card
.
find
(
$1
.
to_sym
)
result
=
case
$2
when
/^※(.*)$/
when
/^┊(.*)┊$/m
Chat
.
new
from_player
,
$1
Chat
.
new
from_player
,
$1
when
/^(◎|●)→=\[0:0:0\]==回合结束==<(\d+)>=\[0\]\r\nLP:(\d+)\r\n手卡:(\d+)\r\n卡组:(\d+)\r\n墓地:(\d+)\r\n除外:(\d+)\r\n前场:\r\n
#{
PositionFilter
}#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n后场:
#{
CardFilter
}#{
CardFilter
}#{
CardFilter
}#{
CardFilter
}#{
CardFilter
}
\r\n场地|
#{
CardFilter
}
\r\n◎→\\(.*)$/
when
/^※\[(.*)\]\r\n(.*)\r\n注释$/m
Turn_End
.
new
(
$1
==
"◎"
,
$19
,
$3
.
to_i
,
$4
.
to_i
,
$5
.
to_i
,
$6
.
to_i
,
$7
.
to_i
,
[
parse_fieldcard
(
$18
),
parse_fieldcard
(
$13
),
parse_fieldcard
(
$14
),
parse_fieldcard
(
$15
),
parse_fieldcard
(
$16
),
parse_fieldcard
(
$17
),
parse_fieldcard
(
$8
),
parse_fieldcard
(
$9
),
parse_fieldcard
(
$10
),
parse_fieldcard
(
$11
),
parse_fieldcard
(
$12
)],
$2
.
to_i
)
Note
.
new
from_player
,
$2
,
Card
.
find
(
$1
.
to_sym
)
when
/^(?:(.*)\r\n){0,1}(◎|●)→(.*)$/m
when
/^※(.*)$/
from_player
=
$2
==
"◎"
Chat
.
new
from_player
,
$1
msg
=
$1
when
/^(◎|●)→=\[0:0:0\]==回合结束==<(\d+)>=\[0\]\r\nLP:(\d+)\r\n手卡:(\d+)\r\n卡组:(\d+)\r\n墓地:(\d+)\r\n除外:(\d+)\r\n前场:\r\n
#{
PositionFilter
}#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n
#{
CardFilter
}
\r\n后场:
#{
CardFilter
}#{
CardFilter
}#{
CardFilter
}#{
CardFilter
}#{
CardFilter
}
\r\n场地|
#{
CardFilter
}
\r\n◎→\\(.*)$/
case
$3
Turn_End
.
new
(
$1
==
"◎"
,
$19
,
$3
.
to_i
,
$4
.
to_i
,
$5
.
to_i
,
$6
.
to_i
,
$7
.
to_i
,
[
parse_fieldcard
(
$18
),
parse_fieldcard
(
$13
),
parse_fieldcard
(
$14
),
parse_fieldcard
(
$15
),
parse_fieldcard
(
$16
),
parse_fieldcard
(
$17
),
parse_fieldcard
(
$8
),
parse_fieldcard
(
$9
),
parse_fieldcard
(
$10
),
parse_fieldcard
(
$11
),
parse_fieldcard
(
$12
)],
$2
.
to_i
)
when
/^\[\d+年\d+月\d+日禁卡表\] Duel!!/
when
/^(?:(.*)\r\n)?(◎|●)→(.*)$/m
Reset
.
new
from_player
from_player
=
$2
==
"◎"
when
/(.*)抽牌/
msg
=
$1
Draw
.
new
from_player
,
$1
case
$3
when
"开启更换卡组"
when
/^\[\d+年\d+月\d+日禁卡表\] Duel!!/
Deck
.
new
from_player
Reset
.
new
from_player
when
"更换新卡组-检查卡组中..."
when
/(.*)抽牌/
Reset
.
new
from_player
Draw
.
new
from_player
,
$1
when
"换SIDE……"
when
"开启更换卡组"
Side
.
new
from_player
Deck
.
new
from_player
when
"卡组洗切"
when
"更换新卡组-检查卡组中..."
Shuffle
.
new
from_player
Reset
.
new
from_player
when
"将顶牌放回卡组底部"
when
"换SIDE……"
ReturnToDeckBottom
.
new
(
from_player
,
:deck
)
Side
.
new
from_player
when
/抽取\((\d+)\)张卡/
when
"卡组洗切"
MultiDraw
.
new
from_player
,
$1
.
to_i
Shuffle
.
new
from_player
when
/\[\d+年\d+月\d+日禁卡表\](?:<(.+)> ){0,1}先攻/
when
"查看卡组"
FirstToGo
.
new
from_player
,
$1
Ignored
.
new
"查看卡组"
when
/\[\d+年\d+月\d+日禁卡表\](?:<(.+)> ){0,1}后攻/
when
"将顶牌放回卡组底部"
SecondToGo
.
new
from_player
,
$1
ReturnToDeckBottom
.
new
(
from_player
,
:deck
)
when
/(.*)掷骰子,结果为 (\d+)/
when
/抽取\((\d+)\)张卡/
Dice
.
new
from_player
,
$2
.
to_i
,
$1
MultiDraw
.
new
from_player
,
$1
.
to_i
when
/(.*)抛硬币,结果为(.+)/
when
/\[\d+年\d+月\d+日禁卡表\](?:<(.+)> )?先攻/
Coin
.
new
from_player
,
$2
==
"正面"
,
$1
FirstToGo
.
new
from_player
,
$1
when
/从
#{
PosFilter
}
~发动
#{
CardFilter
}#{
PosFilter
}
/
when
/\[\d+年\d+月\d+日禁卡表\](?:<(.+)> )?后攻/
Activate
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
)
SecondToGo
.
new
from_player
,
$1
when
/从
#{
PosFilter
}
~召唤
#{
CardFilter
}#{
PosFilter
}
/
when
/(.*)掷骰子,结果为 (\d+)/
Summon
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
),
msg
Dice
.
new
from_player
,
$2
.
to_i
,
$1
when
/从
#{
PosFilter
}
~特殊召唤
#{
CardFilter
}#{
PosFilter
}
(?:呈
#{
PositionFilter
}
){0,1}/
when
/(.*)抛硬币,结果为(.+)/
SpecialSummon
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
),
msg
,
$4
?
parse_position
(
$4
)
:
:attack
Coin
.
new
from_player
,
$2
==
"正面"
,
$1
when
/从手卡~取
#{
CardFilter
}
盖到
#{
PosFilter
}
/
when
/从
#{
PosFilter
}
~发动
#{
CardFilter
}#{
PosFilter
}
/
Set
.
new
from_player
,
:hand
,
parse_pos
(
$2
),
parse_card
(
$1
)
Activate
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
)
when
/将
#{
CardFilter
}
从~
#{
PosFilter
}
~送往墓地/
when
/从
#{
PosFilter
}
~召唤
#{
CardFilter
}#{
PosFilter
}
/
SendToGraveyard
.
new
(
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
))
Summon
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
),
msg
when
/将~
#{
PosFilter
}
~的
#{
CardFilter
}
解~放/
when
/从
#{
PosFilter
}
~特殊召唤
#{
CardFilter
}#{
PosFilter
}
(?:呈
#{
PositionFilter
}
)?/
Tribute
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
SpecialSummon
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
),
msg
,
$4
?
parse_position
(
$4
)
:
:attack
when
/将
#{
PosFilter
}
的
#{
CardFilter
}
从游戏中除外/
when
/从手卡~取
#{
CardFilter
}
盖到
#{
PosFilter
}
/
Remove
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
Set
.
new
from_player
,
:hand
,
parse_pos
(
$2
),
parse_card
(
$1
)
when
/
#{
CardFilter
}
从
#{
PosFilter
}
~放回卡组顶端/
when
/将
#{
CardFilter
}
从~
#{
PosFilter
}
~送往墓地/
ReturnToDeck
.
new
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
)
SendToGraveyard
.
new
(
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
))
when
/
#{
CardFilter
}
从
#{
PosFilter
}
返回额外牌堆/
when
/将~
#{
PosFilter
}
~的
#{
CardFilter
}
解~放/
ReturnToExtra
.
new
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
)
Tribute
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
when
/从
#{
PosFilter
}
取
#{
CardFilter
}
加入手卡/
when
/将
#{
PosFilter
}
的
#{
CardFilter
}
从游戏中除外/
ReturnToHand
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
Remove
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
when
/(?:己方){0,1}
#{
PosFilter
}#{
CardFilter
}
效果发(?:\~){0,1}动/
when
/
#{
CardFilter
}
从
#{
PosFilter
}
~放回卡组顶端/
Effect_Activate
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
ReturnToDeck
.
new
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
)
when
/
#{
PosFilter
}#{
CardFilter
}
(?:变|改)为
#{
PositionFilter
}
/
when
/
#{
CardFilter
}
从
#{
PosFilter
}
~放回卡组底端/
ChangePosition
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
),
parse_position
(
$3
))
ReturnToDeckBottom
.
new
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
)
when
/
#{
PosFilter
}#{
CardFilter
}
打开/
when
/
#{
CardFilter
}
从
#{
PosFilter
}
返回额外牌堆/
Flip
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
ReturnToExtra
.
new
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
)
when
/
#{
PhaseFilter
}
/
when
/从
#{
PosFilter
}
取
#{
CardFilter
}
加入手卡/
ChangePhase
.
new
(
from_player
,
parse_phase
(
$1
))
ReturnToHand
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
when
/(?:己方)?
#{
PosFilter
}
.*
#{
CardFilter
}
效果发(?:\~)?动/
Effect_Activate
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
when
/
#{
PosFilter
}#{
CardFilter
}
(?:变|改)为
#{
PositionFilter
}
/
ChangePosition
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
),
parse_position
(
$3
))
when
/
#{
PosFilter
}#{
CardFilter
}
打开/
Flip
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
when
/
#{
PhaseFilter
}
/
ChangePhase
.
new
(
from_player
,
parse_phase
(
$1
))
else
Unknown
.
new
str
end
else
else
Unknown
.
new
str
Unknown
.
new
str
end
end
result
.
id
=
id
result
else
else
Unknown
.
new
str
Unknown
.
new
str
end
end
result
.
id
=
id
result
end
end
def
escape
def
escape
inspect
inspect
end
end
def
run
def
run
$chat_window
.
add
@from_player
,
escape
if
@from_player
$game
.
action
self
if
@from_player
$game
.
action
self
if
@from_player
end
end
class
FirstToGo
class
FirstToGo
...
@@ -388,6 +397,11 @@ class Action
...
@@ -388,6 +397,11 @@ class Action
end
end
end
end
end
end
class
MultiShow
def
escape
@cards
.
collect
{
|
card
|
card
.
escape
}.
join
(
"
\r\n
"
)
end
end
class
Effect_Activate
class
Effect_Activate
def
escape
def
escape
pos
=
case
@from_pos
pos
=
case
@from_pos
...
...
lib/nbx/event.rb
View file @
8b07a504
...
@@ -26,7 +26,7 @@ class Game_Event
...
@@ -26,7 +26,7 @@ class Game_Event
PlayerJoin
PlayerJoin
when
/关闭游戏王NetBattleX .*▊▊▊.*/
when
/关闭游戏王NetBattleX .*▊▊▊.*/
PlayerLeave
PlayerLeave
when
/(\[\d+\] .*
▊▊▊.*)
/m
when
/(\[\d+\] .*
|(?:
#{
::
Action
::
CardFilter
}
\r\n)*)▊▊▊.*
/m
Action
Action
else
else
Error
Error
...
@@ -76,9 +76,7 @@ class Game_Event
...
@@ -76,9 +76,7 @@ class Game_Event
end
end
class
Action
class
Action
def
self
.
parse
(
info
)
def
self
.
parse
(
info
)
info
=~
/(.*)▊▊▊.*/m
self
.
new
::
Action
.
parse
(
info
),
info
str
=
$1
||
info
self
.
new
::
Action
.
parse
(
info
),
str
end
end
end
end
class
VerInf
class
VerInf
...
...
lib/scene_duel.rb
View file @
8b07a504
...
@@ -55,23 +55,23 @@ class Scene_Duel < Scene
...
@@ -55,23 +55,23 @@ class Scene_Duel < Scene
end
end
def
change_phase
(
phase
)
def
change_phase
(
phase
)
Action
::
ChangePhase
.
new
(
@turn_player
,
[
:DP
,
:SP
,
:M1
,
:BP
,
:M2
,
:EP
][
phase
]).
run
action
Action
::
ChangePhase
.
new
(
@turn_player
,
[
:DP
,
:SP
,
:M1
,
:BP
,
:M2
,
:EP
][
phase
])
if
phase
==
5
if
phase
==
5
@turn_player
=
!
@turn_player
@turn_player
=
!
@turn_player
@phase
=
0
@phase
=
0
@phases_window
.
player
=
@turn_player
@phases_window
.
player
=
@turn_player
Action
::
Turn_End
.
new
(
true
,
"Turn End"
,
$game
.
player_field
.
lp
,
$game
.
player_field
.
hand
.
size
,
$game
.
player_field
.
deck
.
size
,
$game
.
player_field
.
graveyard
.
size
,
$game
.
player_field
.
removed
.
size
,
$game
.
player_field
,
1
).
run
action
Action
::
Turn_End
.
new
(
true
,
"Turn End"
,
$game
.
player_field
.
lp
,
$game
.
player_field
.
hand
.
size
,
$game
.
player_field
.
deck
.
size
,
$game
.
player_field
.
graveyard
.
size
,
$game
.
player_field
.
removed
.
size
,
$game
.
player_field
,
1
)
else
else
@phase
=
@phases_window
.
phase
=
phase
@phase
=
@phases_window
.
phase
=
phase
@phases_window
.
refresh
@phases_window
.
refresh
end
end
end
end
def
reset
def
reset
Action
::
Reset
.
new
(
true
).
run
action
Action
::
Reset
.
new
(
true
)
end
end
def
first_to_go
def
first_to_go
Action
::
FirstToGo
.
new
(
true
).
run
action
Action
::
FirstToGo
.
new
(
true
)
end
end
def
handle
(
event
)
def
handle
(
event
)
case
event
case
event
...
@@ -94,13 +94,13 @@ class Scene_Duel < Scene
...
@@ -94,13 +94,13 @@ class Scene_Duel < Scene
when
Event
::
KeyDown
when
Event
::
KeyDown
case
event
.
sym
case
event
.
sym
when
Key
::
F1
when
Key
::
F1
Action
::
Shuffle
.
new
.
run
action
Action
::
Shuffle
.
new
@player_field_window
.
refresh
@player_field_window
.
refresh
when
Key
::
F2
when
Key
::
F2
first_to_go
first_to_go
@player_field_window
.
refresh
@player_field_window
.
refresh
when
Key
::
F3
when
Key
::
F3
Action
::
Dice
.
new
(
true
).
run
action
Action
::
Dice
.
new
(
true
)
when
Key
::
F5
when
Key
::
F5
reset
reset
@player_field_window
.
refresh
@player_field_window
.
refresh
...
@@ -111,13 +111,24 @@ class Scene_Duel < Scene
...
@@ -111,13 +111,24 @@ class Scene_Duel < Scene
end
end
def
action
(
action
)
str
=
action
.
escape
if
str
=~
/^\[\d+\] (?:●|◎)→(.*)$/m
str
=
$1
end
$chat_window
.
add
action
.
from_player
,
str
if
action
.
from_player
action
.
run
end
def
handle_game
(
event
)
def
handle_game
(
event
)
case
event
case
event
when
Game_Event
::
Action
when
Game_Event
::
Action
$chat_window
.
add
event
.
action
.
from_player
,
event
.
str
str
=
event
.
str
event
.
action
.
run
if
str
=~
/^\[\d+\] (?:●|◎)→(.*)$/m
str
=
$1
end
$chat_window
.
add
event
.
action
.
from_player
,
str
action
event
.
action
@player_field_window
.
refresh
@player_field_window
.
refresh
@opponent_field_window
.
refresh
@opponent_field_window
.
refresh
when
Game_Event
::
Error
when
Game_Event
::
Error
...
...
lib/window_field.rb
View file @
8b07a504
...
@@ -215,22 +215,22 @@ class Window_Field < Window
...
@@ -215,22 +215,22 @@ class Window_Field < Window
end
end
def
clicked
def
clicked
return
if
!
@player
||
@index
.
nil?
return
if
!
@player
||
@index
.
nil?
case
@index
action
=
case
@index
when
:deck
when
:deck
case
@action_window
.
index
case
@action_window
.
index
when
0
when
0
Action
::
Draw
.
new
(
true
)
.
run
Action
::
Draw
.
new
(
true
)
when
1
when
1
Action
::
Shuffle
.
new
.
run
Action
::
Shuffle
.
new
when
2
when
2
p
"未实现"
p
"未实现"
#Action::Draw.new(true)
.run
#Action::Draw.new(true)
when
3
when
3
p
"未实现"
p
"未实现"
when
4
when
4
Action
::
SendToGraveyard
.
new
(
true
,
:deck
,
@card
)
.
run
Action
::
SendToGraveyard
.
new
(
true
,
:deck
,
@card
)
when
5
when
5
Action
::
Remove
.
new
(
true
,
:deck
,
@card
)
.
run
Action
::
Remove
.
new
(
true
,
:deck
,
@card
)
when
6
when
6
p
"未实现"
p
"未实现"
when
7
when
7
...
@@ -244,129 +244,130 @@ class Window_Field < Window
...
@@ -244,129 +244,130 @@ class Window_Field < Window
case
@action_window
.
index
case
@action_window
.
index
when
0
when
0
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
SpecialSummon
.
new
(
true
,
:extra
,
pos
,
@card
,
nil
,
:attack
)
.
run
Action
::
SpecialSummon
.
new
(
true
,
:extra
,
pos
,
@card
,
nil
,
:attack
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
1
when
1
Action
::
Effect_Activate
.
new
(
true
,
:extra
,
@card
)
.
run
Action
::
Effect_Activate
.
new
(
true
,
:extra
,
@card
)
when
2
when
2
Action
::
Remove
.
new
(
true
,
:extra
,
@card
)
.
run
Action
::
Remove
.
new
(
true
,
:extra
,
@card
)
when
3
when
3
Action
::
SendToGraveyard
.
new
(
true
,
:extra
,
@card
)
.
run
Action
::
SendToGraveyard
.
new
(
true
,
:extra
,
@card
)
end
end
when
:removed
when
:removed
case
@action_window
.
index
case
@action_window
.
index
when
0
#特殊召唤
when
0
#特殊召唤
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
SpecialSummon
.
new
(
true
,
:removed
,
pos
,
@card
)
.
run
Action
::
SpecialSummon
.
new
(
true
,
:removed
,
pos
,
@card
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
1
#效果发动
when
1
#效果发动
Action
::
Effect_Activate
.
new
(
true
,
:removed
,
@card
)
.
run
Action
::
Effect_Activate
.
new
(
true
,
:removed
,
@card
)
when
2
#加入手卡
when
2
#加入手卡
Action
::
ReturnToHand
.
new
(
true
,
:removed
,
@card
)
.
run
Action
::
ReturnToHand
.
new
(
true
,
:removed
,
@card
)
when
3
when
3
Action
::
ReturnToDeck
.
new
(
true
,
:removed
,
@card
)
.
run
Action
::
ReturnToDeck
.
new
(
true
,
:removed
,
@card
)
when
4
when
4
Action
::
SendToGraveyard
.
new
(
true
,
:removed
,
@card
)
.
run
Action
::
SendToGraveyard
.
new
(
true
,
:removed
,
@card
)
end
end
when
:graveyard
when
:graveyard
case
@action_window
.
index
case
@action_window
.
index
when
0
#特殊召唤
when
0
#特殊召唤
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
SpecialSummon
.
new
(
true
,
:graveyard
,
pos
,
@card
)
.
run
Action
::
SpecialSummon
.
new
(
true
,
:graveyard
,
pos
,
@card
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
1
#效果发动
when
1
#效果发动
Action
::
Effect_Activate
.
new
(
true
,
:graveyard
,
@card
)
.
run
Action
::
Effect_Activate
.
new
(
true
,
:graveyard
,
@card
)
when
2
#加入手卡
when
2
#加入手卡
Action
::
ReturnToHand
.
new
(
true
,
:graveyard
,
@card
)
.
run
Action
::
ReturnToHand
.
new
(
true
,
:graveyard
,
@card
)
when
3
when
3
Action
::
ReturnToDeck
.
new
(
true
,
:graveyard
,
@card
)
.
run
Action
::
ReturnToDeck
.
new
(
true
,
:graveyard
,
@card
)
when
4
when
4
Action
::
Remove
.
new
(
true
,
:graveyard
,
@card
)
.
run
Action
::
Remove
.
new
(
true
,
:graveyard
,
@card
)
end
end
when
0
..
5
#后场
when
0
..
5
#后场
case
@action_window
.
index
case
@action_window
.
index
when
0
#效果发动
when
0
#效果发动
Action
::
Effect_Activate
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
Effect_Activate
.
new
(
true
,
@index
,
@card
)
when
1
#返回卡组
when
1
#返回卡组
Action
::
ReturnToDeck
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
ReturnToDeck
.
new
(
true
,
@index
,
@card
)
when
2
#送入墓地
when
2
#送入墓地
Action
::
SendToGraveyard
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
SendToGraveyard
.
new
(
true
,
@index
,
@card
)
when
3
#从游戏中除外
when
3
#从游戏中除外
Action
::
Remove
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
Remove
.
new
(
true
,
@index
,
@card
)
when
4
#加入手卡
when
4
#加入手卡
Action
::
ReturnToHand
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
ReturnToHand
.
new
(
true
,
@index
,
@card
)
when
5
#盖伏
when
5
#盖伏
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:set
)
.
run
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:set
)
end
end
when
6
..
10
#前场
when
6
..
10
#前场
case
@action_window
.
index
case
@action_window
.
index
when
0
when
0
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:attack
)
.
run
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:attack
)
when
1
when
1
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:defense
)
.
run
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:defense
)
when
2
when
2
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:set
)
.
run
Action
::
ChangePosition
.
new
(
true
,
@index
,
@card
,
:set
)
when
3
when
3
Action
::
FlipSummon
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
FlipSummon
.
new
(
true
,
@index
,
@card
)
when
4
when
4
Action
::
Flip
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
Flip
.
new
(
true
,
@index
,
@card
)
when
5
when
5
Action
::
Effect_Activate
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
Effect_Activate
.
new
(
true
,
@index
,
@card
)
when
6
when
6
p
"未实现"
p
"未实现"
when
7
when
7
p
"未实现"
p
"未实现"
when
8
when
8
Action
::
ReturnToDeck
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
ReturnToDeck
.
new
(
true
,
@index
,
@card
)
when
9
when
9
Action
::
SendToGraveyard
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
SendToGraveyard
.
new
(
true
,
@index
,
@card
)
when
10
when
10
Action
::
Tribute
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
Tribute
.
new
(
true
,
@index
,
@card
)
when
11
when
11
Action
::
ReturnToHand
.
new
(
true
,
@index
,
@card
)
.
run
Action
::
ReturnToHand
.
new
(
true
,
@index
,
@card
)
end
end
when
Integer
#手卡
when
Integer
#手卡
case
@action_window
.
index
case
@action_window
.
index
when
0
#召唤
when
0
#召唤
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
Summon
.
new
(
true
,
:hand
,
pos
,
@card
)
.
run
Action
::
Summon
.
new
(
true
,
:hand
,
pos
,
@card
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
1
#特殊召唤
when
1
#特殊召唤
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
SpecialSummon
.
new
(
true
,
:hand
,
pos
,
@card
,
nil
,
:attack
)
.
run
Action
::
SpecialSummon
.
new
(
true
,
:hand
,
pos
,
@card
,
nil
,
:attack
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
2
#发动
when
2
#发动
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
Activate
.
new
(
true
,
:hand
,
pos
,
@card
)
.
run
Action
::
Activate
.
new
(
true
,
:hand
,
pos
,
@card
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
3
#放置
when
3
#放置
if
pos
=
@field
.
empty_field
(
@card
)
if
pos
=
@field
.
empty_field
(
@card
)
Action
::
Set
.
new
(
true
,
:hand
,
pos
,
@card
)
.
run
Action
::
Set
.
new
(
true
,
:hand
,
pos
,
@card
)
else
else
p
"场位已满"
p
"场位已满"
end
end
when
4
#返回卡组
when
4
#返回卡组
Action
::
ReturnToDeck
.
new
(
true
,
:hand
,
@card
)
.
run
Action
::
ReturnToDeck
.
new
(
true
,
:hand
,
@card
)
when
5
#送入墓地
when
5
#送入墓地
Action
::
SendToGraveyard
.
new
(
true
,
:hand
,
@card
)
.
run
Action
::
SendToGraveyard
.
new
(
true
,
:hand
,
@card
)
when
6
#从游戏中除外
when
6
#从游戏中除外
Action
::
Remove
.
new
(
true
,
:hand
,
@card
)
.
run
Action
::
Remove
.
new
(
true
,
:hand
,
@card
)
when
7
#效果发动
when
7
#效果发动
Action
::
Effect_Activate
.
new
(
true
,
:hand
,
@card
)
.
run
Action
::
Effect_Activate
.
new
(
true
,
:hand
,
@card
)
end
end
end
end
$scene
.
action
action
@index
=
nil
@index
=
nil
refresh
refresh
mousemoved
(
Mouse
.
state
[
0
],
Mouse
.
state
[
1
])
mousemoved
(
Mouse
.
state
[
0
],
Mouse
.
state
[
1
])
...
...
lib/window_roomchat.rb
View file @
8b07a504
...
@@ -2,13 +2,14 @@
...
@@ -2,13 +2,14 @@
# and open the template in the editor.
# and open the template in the editor.
class
Window_RoomChat
<
Window
class
Window_RoomChat
<
Window
WLH
=
16
require_relative
'widget_scrollbar'
require_relative
'widget_scrollbar'
Player_Color
=
[
0
,
0
,
0xFF
]
Player_Color
=
[
0
,
0
,
0xFF
]
Opponent_Color
=
[
0x66
,
0x66
,
0
]
Opponent_Color
=
[
0x66
,
0x66
,
0
]
def
initialize
(
x
,
y
,
width
,
height
)
def
initialize
(
x
,
y
,
width
,
height
)
super
(
x
,
y
,
width
,
height
-
WLH
)
super
(
x
,
y
,
width
,
height
-
WLH
)
@chat_input
=
Widget_InputBox
.
new
(
@x
,
@y
+
@height
,
@width
,
WLH
){
|
text
|
Action
::
Chat
.
new
(
true
,
text
).
run
}
@chat_input
=
Widget_InputBox
.
new
(
@x
,
@y
+
@height
,
@width
,
WLH
){
|
text
|
Action
::
Chat
.
new
(
true
,
text
).
run
}
@font
=
TTF
.
open
(
"fonts/WenQuanYi Micro Hei.ttf"
,
1
6
)
@font
=
TTF
.
open
(
"fonts/WenQuanYi Micro Hei.ttf"
,
1
4
)
@contents
.
fill_rect
(
0
,
0
,
@width
,
@height
,
0x99FFFFFF
)
@contents
.
fill_rect
(
0
,
0
,
@width
,
@height
,
0x99FFFFFF
)
@scroll
=
Widget_ScrollBar
.
new
(
@x
+
@width
-
20
,
@y
,
@height
,
0
)
@scroll
=
Widget_ScrollBar
.
new
(
@x
+
@width
-
20
,
@y
,
@height
,
0
)
@list
=
[]
@list
=
[]
...
...
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