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
syntax_j
mycard
Commits
aebd808b
Commit
aebd808b
authored
Dec 16, 2011
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
刷场地、回合结束指令
parent
8b07a504
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
129 additions
and
42 deletions
+129
-42
lib/action.rb
lib/action.rb
+43
-14
lib/game_field.rb
lib/game_field.rb
+8
-0
lib/iduel/action.rb
lib/iduel/action.rb
+2
-2
lib/iduel/event.rb
lib/iduel/event.rb
+0
-0
lib/iduel/iduel.rb
lib/iduel/iduel.rb
+5
-5
lib/iduel/room.rb
lib/iduel/room.rb
+0
-0
lib/iduel/user.rb
lib/iduel/user.rb
+0
-0
lib/nbx/action.rb
lib/nbx/action.rb
+62
-15
lib/scene_duel.rb
lib/scene_duel.rb
+7
-5
lib/scene_login.rb
lib/scene_login.rb
+1
-1
lib/window_field.rb
lib/window_field.rb
+1
-0
No files found.
lib/action.rb
View file @
aebd808b
...
@@ -81,9 +81,9 @@ class Action
...
@@ -81,9 +81,9 @@ class Action
end
end
def
run
def
run
from_field
=
case
@from_pos
from_field
=
case
@from_pos
when
Integer
when
0
..
10
player_field
.
field
player_field
.
field
when
:hand
when
Integer
,
:hand
player_field
.
hand
player_field
.
hand
when
:field
when
:field
player_field
.
field
player_field
.
field
...
@@ -98,7 +98,11 @@ class Action
...
@@ -98,7 +98,11 @@ class Action
end
end
if
@from_pos
.
is_a?
Integer
if
@from_pos
.
is_a?
Integer
if
@from_pos
>
10
from_pos
=
@from_pos
-
11
else
from_pos
=
@from_pos
from_pos
=
@from_pos
end
else
else
from_pos
=
(
@card
.
is_a?
(
Game_Card
)
?
from_field
.
index
(
@card
)
:
from_field
.
index
{
|
card
|
card
.
card
==
@card
})
||
from_field
.
index
{
|
card
|!
card
.
known?
}
from_pos
=
(
@card
.
is_a?
(
Game_Card
)
?
from_field
.
index
(
@card
)
:
from_field
.
index
{
|
card
|
card
.
card
==
@card
})
||
from_field
.
index
{
|
card
|!
card
.
known?
}
end
end
...
@@ -212,6 +216,7 @@ class Action
...
@@ -212,6 +216,7 @@ class Action
end
end
end
end
class
Tribute
<
SendToGraveyard
;
end
class
Tribute
<
SendToGraveyard
;
end
class
Discard
<
SendToGraveyard
;
end
class
ChangePosition
<
Move
class
ChangePosition
<
Move
def
initialize
(
from_player
,
from_pos
,
card
,
position
)
def
initialize
(
from_player
,
from_pos
,
card
,
position
)
super
(
from_player
,
from_pos
,
from_pos
,
card
,
nil
,
position
)
super
(
from_player
,
from_pos
,
from_pos
,
card
,
nil
,
position
)
...
@@ -243,23 +248,47 @@ class Action
...
@@ -243,23 +248,47 @@ class Action
player_field
.
hand
+=
player_field
.
deck
.
shift
(
@count
)
player_field
.
hand
+=
player_field
.
deck
.
shift
(
@count
)
end
end
end
end
class
Refresh
_
Field
<
Action
class
RefreshField
<
Action
attr_reader
:
lp
,
:hand_count
,
:deck_count
,
:graveyard_count
,
:removed_count
,
:
field
attr_reader
:field
def
initialize
(
from_player
,
msg
,
lp
,
hand_count
,
deck_count
,
graveyard_count
,
removed_count
,
field
)
def
initialize
(
from_player
,
field
,
msg
=
nil
)
super
(
from_player
,
msg
)
super
(
from_player
,
msg
)
@lp
=
lp
@hand_count
=
hand_count
@deck_count
=
deck_count
@graveyard_count
=
graveyard_count
@removed_count
=
removed_count
@field
=
field
@field
=
field
end
end
def
run
player_field
.
lp
=
@field
[
:lp
]
if
player_field
.
hand
.
size
>
@field
[
:hand
]
player_field
.
hand
.
pop
(
player_field
.
hand
.
size
-
@field
[
:hand
])
elsif
player_field
.
hand
.
size
<
@field
[
:hand
]
(
@field
[
:hand
]
-
player_field
.
hand
.
size
).
times
{
player_field
.
hand
.
push
Game_Card
.
new
(
Card
::
Unknown
)}
end
if
player_field
.
deck
.
size
>
@field
[
:deck
]
player_field
.
deck
.
pop
(
player_field
.
deck
.
size
-
@field
[
:deck
])
elsif
player_field
.
deck
.
size
<
@field
[
:deck
]
(
@field
[
:deck
]
-
player_field
.
deck
.
size
).
times
{
player_field
.
deck
.
push
Game_Card
.
new
(
Card
::
Unknown
)}
end
if
player_field
.
graveyard
.
size
>
@field
[
:graveyard
]
player_field
.
graveyard
.
pop
(
player_field
.
graveyard
.
size
-
@field
[
:graveyard
])
elsif
player_field
.
graveyard
.
size
<
@field
[
:graveyard
]
(
@field
[
:graveyard
]
-
player_field
.
graveyard
.
size
).
times
{
player_field
.
graveyard
.
push
Game_Card
.
new
(
Card
::
Unknown
)}
end
(
0
..
10
).
each
do
|
pos
|
if
@field
[
pos
]
player_field
.
field
[
pos
]
||=
Game_Card
.
new
(
@field
[
pos
][
:card
])
player_field
.
field
[
pos
].
card
=
@field
[
pos
][
:card
]
p
player_field
.
field
[
pos
].
card
player_field
.
field
[
pos
].
position
=
@field
[
pos
][
:position
]
else
player_field
.
field
[
pos
]
=
nil
end
end
p
player_field
end
end
end
class
Turn
_End
<
Refresh_
Field
class
Turn
End
<
Refresh
Field
attr_reader
:turn
attr_reader
:turn
def
initialize
(
from_player
,
msg
,
lp
,
hand_count
,
deck_count
,
graveyard_count
,
removed_count
,
field
,
turn
)
def
initialize
(
from_player
,
field
,
turn
,
msg
=
nil
)
super
(
from_player
,
msg
,
lp
,
hand_count
,
deck_count
,
graveyard_count
,
removed_count
,
field
)
super
(
from_player
,
field
,
msg
)
@turn
=
turn
@turn
=
turn
end
end
end
end
...
...
lib/game_field.rb
View file @
aebd808b
...
@@ -60,4 +60,12 @@ class Game_Field
...
@@ -60,4 +60,12 @@ class Game_Field
empty_spelltrap_field
empty_spelltrap_field
end
end
end
end
#def shuffle_hand
# @hand.shuffle!
# @hand.each{|card|card.card = Card::Unknown if card.position == :set}
#end
#def shuffle_deck
# @deck.shuffle!
# @deck.each{|card|card.card = Card::Unknown if card.position == set}
#end
end
end
\ No newline at end of file
lib/iduel/action.rb
View file @
aebd808b
...
@@ -157,7 +157,7 @@ class Action
...
@@ -157,7 +157,7 @@ class Action
when
/^※(.*)$/
when
/^※(.*)$/
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
/^(◎|●)→=\[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◎→\\(.*)$/
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
)
TurnEnd
.
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
/^(?:(.*)\r\n){0,1}(◎|●)→(.*)$/m
when
/^(?:(.*)\r\n){0,1}(◎|●)→(.*)$/m
from_player
=
$2
==
"◎"
from_player
=
$2
==
"◎"
msg
=
$1
msg
=
$1
...
@@ -243,7 +243,7 @@ class Action
...
@@ -243,7 +243,7 @@ class Action
"[
#{
@id
}
] ◎→
#{
Action
.
escape_phase
(
@phase
)
}
"
"[
#{
@id
}
] ◎→
#{
Action
.
escape_phase
(
@phase
)
}
"
end
end
end
end
class
Turn
_
End
class
TurnEnd
def
escape
def
escape
"[
#{
@id
}
] ◎→=[0:0:0]==回合结束==<0>=[0]
\r\n
"
+
@field
.
escape
"[
#{
@id
}
] ◎→=[0:0:0]==回合结束==<0>=[0]
\r\n
"
+
@field
.
escape
end
end
...
...
lib/iduel/
iduel_
event.rb
→
lib/iduel/event.rb
View file @
aebd808b
File moved
lib/iduel/iduel.rb
View file @
aebd808b
#encoding: UTF-8
#encoding: UTF-8
class
Iduel
class
Iduel
<
Game
VERSION
=
"20110131"
VERSION
=
"20110131"
Server
=
"iduel.ocgsoft.cn"
Server
=
"iduel.ocgsoft.cn"
Port
=
38522
Port
=
38522
...
@@ -12,10 +12,10 @@ class Iduel
...
@@ -12,10 +12,10 @@ class Iduel
require
'socket'
require
'socket'
require
'digest/md5'
require
'digest/md5'
require
'open-uri'
require
'open-uri'
require_relative
'
iduel_
action'
require_relative
'action'
require_relative
'
iduel_
event'
require_relative
'event'
require_relative
'
iduel_
user'
require_relative
'user'
require_relative
'
iduel_
room'
require_relative
'room'
@conn
=
TCPSocket
.
open
(
Server
,
Port
)
@conn
=
TCPSocket
.
open
(
Server
,
Port
)
@conn
.
set_encoding
"GBK"
@conn
.
set_encoding
"GBK"
Thread
.
abort_on_exception
=
true
Thread
.
abort_on_exception
=
true
...
...
lib/iduel/
iduel_
room.rb
→
lib/iduel/room.rb
View file @
aebd808b
File moved
lib/iduel/
iduel_
user.rb
→
lib/iduel/user.rb
View file @
aebd808b
File moved
lib/nbx/action.rb
View file @
aebd808b
#encoding: UTF-8
#encoding: UTF-8
require_relative
'../action'
require_relative
'../action'
class
Action
class
Action
CardFilter
=
/((?:<)?(?:\[.*?\]
\[(?:.*?)\])?[\s\d]*(?:>)?|一张怪兽卡|一张魔\/陷卡)/
.
to_s
CardFilter
=
/((?:<)?(?:\[.*?\]
)?\[(?:.*?)\][\s\d]*(?:>)?|一张怪兽卡|一张魔\/陷卡|\?\?)/
#FieldCardFilter = /(<>|<??>|<(?:(?:表攻|表守|里守)\|)?\[.*?\]\[(?:.*?)\])?[\s\d]*>)/.to_s
PosFilter
=
/((?:手卡|手牌|场上|魔陷区|怪兽区|墓地|额外牌堆|除外区|卡组|卡组顶端|\(\d+\)){1,2})/
Pos
Filter
=
/((?:手卡|手牌|场上|魔陷区|怪兽区|墓地|额外牌堆|除外区|卡组|卡组顶端|\(\d+\)){1,2})/
.
to_s
Pos
itionFilter
=
/(表攻|表守|里守|攻击表示|防守表示|里侧表示|背面守备表示)/
P
ositionFilter
=
/(攻击表示|防守表示|里侧表示|背面守备表示)/
.
to_s
P
haseFilter
=
/(抽卡`阶段|准备`阶段|主`阶段1|战斗`阶段|主`阶段2|结束`阶段)/
PhaseFilter
=
/(抽卡`阶段|准备`阶段|主`阶段1|战斗`阶段|主`阶段2|结束`阶段)/
.
to_s
FieldFilter
=
/(?:LP:(\d+)\r\n手卡(?:数)?:(\d+)\r\n卡组:(\d+)\r\n墓地:(\d+)\r\n除外:(\d+)\r\n前场:\r\n <(?:
#{
PositionFilter
}
\|
#{
CardFilter
}
)?>\r\n <(?:
#{
PositionFilter
}
\|
#{
CardFilter
}
)?>\r\n <(?:
#{
PositionFilter
}
\|
#{
CardFilter
}
)?>\r\n <(?:
#{
PositionFilter
}
\|
#{
CardFilter
}
)?>\r\n <(?:
#{
PositionFilter
}
\|
#{
CardFilter
}
)?>\r\n后场:<
#{
CardFilter
}
?><
#{
CardFilter
}
?><
#{
CardFilter
}
?><
#{
CardFilter
}
?><
#{
CardFilter
}
?>\r\n场地\|<(?:无|
#{
CardFilter
}
)>\r\n(?:◎|●)→\\)/
def
self
.
parse_pos
(
pos
)
def
self
.
parse_pos
(
pos
)
if
index
=
pos
.
index
(
"("
)
if
index
=
pos
.
index
(
"("
)
index
+=
1
index
+=
1
...
@@ -46,13 +46,34 @@ class Action
...
@@ -46,13 +46,34 @@ class Action
[
card
[
"表守"
]
?
:
defense
:
card
[
"里守"
]
?
:
set
:
:attack
,
parse_card
(
card
)]
[
card
[
"表守"
]
?
:
defense
:
card
[
"里守"
]
?
:
set
:
:attack
,
parse_card
(
card
)]
end
end
end
end
def
self
.
parse_field
(
arr
)
#LP, 手卡, 卡组,墓地,除外,6表示形式,6卡,7表示形式,7卡,8表示形式,8卡,9表示形式,9卡,10表示形式,10卡,1,2,3,4,5,0
{
:lp
=>
arr
[
0
].
to_i
,
:hand
=>
arr
[
1
].
to_i
,
:deck
=>
arr
[
2
].
to_i
,
:graveyard
=>
arr
[
3
].
to_i
,
:removed
=>
arr
[
4
].
to_i
,
6
=>
arr
[
5
]
&&
{
:position
=>
parse_position
(
arr
[
5
]),
:card
=>
parse_card
(
arr
[
6
])},
7
=>
arr
[
7
]
&&
{
:position
=>
parse_position
(
arr
[
7
]),
:card
=>
parse_card
(
arr
[
8
])},
8
=>
arr
[
9
]
&&
{
:position
=>
parse_position
(
arr
[
9
]),
:card
=>
parse_card
(
arr
[
10
])},
9
=>
arr
[
11
]
&&
{
:position
=>
parse_position
(
arr
[
11
]),
:card
=>
parse_card
(
arr
[
12
])},
10
=>
arr
[
13
]
&&
{
:position
=>
parse_position
(
arr
[
13
]),
:card
=>
parse_card
(
arr
[
14
])},
1
=>
arr
[
15
]
&&
{
:position
=>
arr
[
15
]
==
"??"
?
:
set
:
:attack
,
:card
=>
parse_card
(
arr
[
15
])},
2
=>
arr
[
16
]
&&
{
:position
=>
arr
[
16
]
==
"??"
?
:
set
:
:attack
,
:card
=>
parse_card
(
arr
[
16
])},
3
=>
arr
[
17
]
&&
{
:position
=>
arr
[
17
]
==
"??"
?
:
set
:
:attack
,
:card
=>
parse_card
(
arr
[
17
])},
4
=>
arr
[
18
]
&&
{
:position
=>
arr
[
18
]
==
"??"
?
:
set
:
:attack
,
:card
=>
parse_card
(
arr
[
18
])},
5
=>
arr
[
19
]
&&
{
:position
=>
arr
[
19
]
==
"??"
?
:
set
:
:attack
,
:card
=>
parse_card
(
arr
[
19
])},
0
=>
arr
[
20
]
&&
{
:position
=>
arr
[
20
]
==
"??"
?
:
set
:
:attack
,
:card
=>
parse_card
(
arr
[
20
])}
}
end
def
self
.
parse_position
(
position
)
def
self
.
parse_position
(
position
)
case
position
case
position
when
"攻击表示"
when
"攻击表示"
,
"表攻"
:attack
:attack
when
"防守表示"
when
"防守表示"
,
"表守"
:defense
:defense
when
"里侧表示"
,
"背面守备表示"
when
"里侧表示"
,
"背面守备表示"
,
"里守"
:set
:set
end
end
end
end
...
@@ -147,8 +168,6 @@ class Action
...
@@ -147,8 +168,6 @@ class Action
def
self
.
parse
(
str
)
def
self
.
parse
(
str
)
from_player
=
false
from_player
=
false
case
str
case
str
when
/^(
#{
CardFilter
}
\r\n)*$/m
MultiShow
.
new
from_player
,
$&
.
lines
.
collect
{
|
card
|
parse_card
(
card
)}
when
/^\[(\d+)\] (.*)$/m
when
/^\[(\d+)\] (.*)$/m
id
=
$1
.
to_i
id
=
$1
.
to_i
result
=
case
$2
result
=
case
$2
...
@@ -158,8 +177,18 @@ class Action
...
@@ -158,8 +177,18 @@ class Action
Note
.
new
from_player
,
$2
,
Card
.
find
(
$1
.
to_sym
)
Note
.
new
from_player
,
$2
,
Card
.
find
(
$1
.
to_sym
)
when
/^※(.*)$/
when
/^※(.*)$/
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
/^(◎|●)→=\[0:0:0\]==回合结束==<(\d+)>=\[\d+\]\r\n
#{
FieldFilter
}
(.*)$/
#把这货弄外面的原因是因为这个指令里开头有一个●→,后面还有,下面判msg的正则会判错
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
)
field
=
$~
.
to_a
field
.
shift
#去掉第一个完整匹配信息
from_player
=
field
.
shift
==
"◎"
turn
=
field
.
shift
.
to_i
msg
=
field
.
pop
TurnEnd
.
new
(
from_player
,
parse_field
(
field
),
turn
,
msg
)
when
/^(◎|●)→
#{
FieldFilter
}
$/
field
=
$~
.
to_a
field
.
shift
from_player
=
field
.
shift
==
"◎"
RefreshField
.
new
(
from_player
,
parse_field
(
field
))
when
/^(?:(.*)\r\n)?(◎|●)→(.*)$/m
when
/^(?:(.*)\r\n)?(◎|●)→(.*)$/m
from_player
=
$2
==
"◎"
from_player
=
$2
==
"◎"
msg
=
$1
msg
=
$1
...
@@ -174,7 +203,7 @@ class Action
...
@@ -174,7 +203,7 @@ class Action
Reset
.
new
from_player
Reset
.
new
from_player
when
"换SIDE……"
when
"换SIDE……"
Side
.
new
from_player
Side
.
new
from_player
when
"卡组洗切"
when
"卡组洗切"
,
"切洗卡组"
Shuffle
.
new
from_player
Shuffle
.
new
from_player
when
"查看卡组"
when
"查看卡组"
Ignored
.
new
"查看卡组"
Ignored
.
new
"查看卡组"
...
@@ -202,6 +231,18 @@ class Action
...
@@ -202,6 +231,18 @@ class Action
SendToGraveyard
.
new
(
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
))
SendToGraveyard
.
new
(
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
))
when
/将~
#{
PosFilter
}
~的
#{
CardFilter
}
解~放/
when
/将~
#{
PosFilter
}
~的
#{
CardFilter
}
解~放/
Tribute
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
Tribute
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
when
/随机将一张卡从手卡\((\d+\))~放回卡组顶端/
ReturnToDeck
.
new
(
from_player
,
$1
.
to_i
+
10
,
nil
)
when
/随机舍弃~手卡~
#{
CardFilter
}
/
Discard
.
new
(
from_player
,
:hand
,
parse_card
(
$1
))
when
/随机将手卡的
#{
CardFilter
}
从游戏中除外/
Remove
.
new
from_player
,
:hand
,
parse_card
(
$1
)
when
/随机显示一张手卡为:
#{
CardFilter
}
/
Show
.
new
(
from_player
,
:hand
,
parse_card
(
$1
))
when
/第(\d+)张手牌为:
#{
CardFilter
}
/
Show
.
new
(
from_player
,
$1
.
to_i
+
10
,
parse_card
(
$2
))
when
/\|--\+>手卡:(?:\[
#{
CardFilter
}
\])*/
MultiShow
.
new
from_player
,
$&
.
scan
(
CardFilter
).
collect
{
|
matched
|
parse_card
(
matched
.
first
)}
when
/将
#{
PosFilter
}
的
#{
CardFilter
}
从游戏中除外/
when
/将
#{
PosFilter
}
的
#{
CardFilter
}
从游戏中除外/
Remove
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
Remove
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
when
/
#{
CardFilter
}
从
#{
PosFilter
}
~放回卡组顶端/
when
/
#{
CardFilter
}
从
#{
PosFilter
}
~放回卡组顶端/
...
@@ -228,6 +269,8 @@ class Action
...
@@ -228,6 +269,8 @@ class Action
end
end
result
.
id
=
id
result
.
id
=
id
result
result
when
/^(
#{
CardFilter
}
\r\n)*$/
MultiShow
.
new
from_player
,
$&
.
lines
.
collect
{
|
card
|
parse_card
(
card
)}
else
else
Unknown
.
new
str
Unknown
.
new
str
end
end
...
@@ -268,7 +311,7 @@ class Action
...
@@ -268,7 +311,7 @@ class Action
"[
#{
@id
}
]
#{
from_player
?
'◎'
:
'●'
}
→
#{
Action
.
escape_phase
(
@phase
)
}
"
"[
#{
@id
}
]
#{
from_player
?
'◎'
:
'●'
}
→
#{
Action
.
escape_phase
(
@phase
)
}
"
end
end
end
end
class
Turn
_
End
class
TurnEnd
def
escape
def
escape
"[
#{
@id
}
]
#{
from_player
?
'◎'
:
'●'
}
→=[0:0:0]==回合结束==<0>=[0]
\r\n
"
+
@field
.
escape
"[
#{
@id
}
]
#{
from_player
?
'◎'
:
'●'
}
→=[0:0:0]==回合结束==<0>=[0]
\r\n
"
+
@field
.
escape
end
end
...
@@ -343,7 +386,7 @@ class Action
...
@@ -343,7 +386,7 @@ class Action
when
0
..
10
when
0
..
10
"场上(
#{
@from_pos
}
)"
"场上(
#{
@from_pos
}
)"
end
end
"[
#{
@id
}
]
#{
from_player
?
'◎'
:
'●'
}
→
#{
@from_pos
==
:hand
?
"一张卡"
:
@card
.
escape
}
从
#{
pos
}
~放回卡组顶端"
#TODO:set=【一张卡】
"[
#{
@id
}
]
#{
from_player
?
'◎'
:
'●'
}
→
#{
@
card
.
nil?
or
@
from_pos
==
:hand
?
"一张卡"
:
@card
.
escape
}
从
#{
pos
}
~放回卡组顶端"
#TODO:set=【一张卡】
end
end
end
end
class
ReturnToDeckBottom
class
ReturnToDeckBottom
...
@@ -438,6 +481,10 @@ class Game_Field
...
@@ -438,6 +481,10 @@ class Game_Field
"
\r\n
场地|<
#{
@field
[
0
]
?
@field
[
0
].
escape
:
'无'
}
>
\r\n
"
+
"
\r\n
场地|<
#{
@field
[
0
]
?
@field
[
0
].
escape
:
'无'
}
>
\r\n
"
+
"◎→\\"
"◎→\\"
end
end
def
self
.
parse
(
str
)
end
end
end
class
Card
class
Card
def
escape
def
escape
...
...
lib/scene_duel.rb
View file @
aebd808b
...
@@ -61,7 +61,7 @@ class Scene_Duel < Scene
...
@@ -61,7 +61,7 @@ class Scene_Duel < Scene
@turn_player
=
!
@turn_player
@turn_player
=
!
@turn_player
@phase
=
0
@phase
=
0
@phases_window
.
player
=
@turn_player
@phases_window
.
player
=
@turn_player
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
)
action
Action
::
TurnEnd
.
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
...
@@ -112,11 +112,13 @@ class Scene_Duel < Scene
...
@@ -112,11 +112,13 @@ class Scene_Duel < Scene
def
action
(
action
)
def
action
(
action
)
if
action
.
from_player
str
=
action
.
escape
str
=
action
.
escape
if
str
=~
/^\[\d+\] (?:●|◎)→(.*)$/m
if
str
=~
/^\[\d+\] (?:●|◎)→(.*)$/m
str
=
$1
str
=
$1
end
end
$chat_window
.
add
action
.
from_player
,
str
if
action
.
from_player
$chat_window
.
add
action
.
from_player
,
str
end
action
.
run
action
.
run
end
end
...
...
lib/scene_login.rb
View file @
aebd808b
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
class
Scene_Login
<
Scene
class
Scene_Login
<
Scene
Vocab_Logging
=
"Logging"
Vocab_Logging
=
"Logging"
def
start
def
start
require_relative
'iduel'
require_relative
'iduel
/iduel
'
@font
=
TTF
.
open
(
"fonts/WenQuanYi Micro Hei.ttf"
,
24
)
@font
=
TTF
.
open
(
"fonts/WenQuanYi Micro Hei.ttf"
,
24
)
if
$config
[
"autologin"
]
if
$config
[
"autologin"
]
@username
=
$config
[
"username"
]
@username
=
$config
[
"username"
]
...
...
lib/window_field.rb
View file @
aebd808b
...
@@ -78,6 +78,7 @@ class Window_Field < Window
...
@@ -78,6 +78,7 @@ class Window_Field < Window
Surface
.
transform_draw
(
@cards
[
index
].
image_small
,
@contents
,
90
,
1
,
1
,
0
,
0
,
@items
[
index
][
0
]
+
Card_Size
[
1
],
@items
[
index
][
1
],
Surface
::
TRANSFORM_SAFE
)
Surface
.
transform_draw
(
@cards
[
index
].
image_small
,
@contents
,
90
,
1
,
1
,
0
,
0
,
@items
[
index
][
0
]
+
Card_Size
[
1
],
@items
[
index
][
1
],
Surface
::
TRANSFORM_SAFE
)
@contents
.
put
(
@border_horizontal
,
@items
[
index
][
0
]
-
1
,
@items
[
index
][
1
]
-
1
)
if
status
==
1
@contents
.
put
(
@border_horizontal
,
@items
[
index
][
0
]
-
1
,
@items
[
index
][
1
]
-
1
)
if
status
==
1
else
else
p
index
,
@cards
[
index
]
@contents
.
put
(
@cards
[
index
].
image_small
,
@items
[
index
][
0
],
@items
[
index
][
1
])
@contents
.
put
(
@cards
[
index
].
image_small
,
@items
[
index
][
0
],
@items
[
index
][
1
])
@contents
.
put
(
@border
,
@items
[
index
][
0
]
-
1
,
@items
[
index
][
1
]
-
1
)
if
status
==
1
@contents
.
put
(
@border
,
@items
[
index
][
0
]
-
1
,
@items
[
index
][
1
]
-
1
)
if
status
==
1
end
end
...
...
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