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
3bd44e28
Commit
3bd44e28
authored
Jan 19, 2012
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重写Move#run,指示物、备注支持。添加了几个操作指令,基本能解析各种常见指令了
parent
89688fc9
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
192 additions
and
103 deletions
+192
-103
graphics/field/counter.png
graphics/field/counter.png
+0
-0
lib/action.rb
lib/action.rb
+121
-71
lib/card.rb
lib/card.rb
+4
-4
lib/game_card.rb
lib/game_card.rb
+1
-1
lib/iduel/action.rb
lib/iduel/action.rb
+43
-17
lib/iduel/replay.rb
lib/iduel/replay.rb
+1
-1
lib/nbx/action.rb
lib/nbx/action.rb
+1
-1
lib/scene_replay.rb
lib/scene_replay.rb
+0
-1
lib/window_field.rb
lib/window_field.rb
+21
-7
No files found.
graphics/field/counter.png
0 → 100644
View file @
3bd44e28
This diff was suppressed by a .gitattributes entry.
lib/action.rb
View file @
3bd44e28
...
...
@@ -41,13 +41,6 @@ class Action
super
end
end
class
Note
<
Action
attr_reader
:card
def
initialize
(
from_player
,
msg
,
card
)
super
(
from_player
,
msg
)
@card
=
card
end
end
class
Coin
<
Action
attr_reader
:result
def
initialize
(
from_player
,
result
=
rand
(
1
)
==
0
,
msg
=
nil
)
...
...
@@ -75,89 +68,71 @@ class Action
end
class
Move
<
Action
attr_reader
:from_pos
,
:to_pos
,
:card
,
:position
def
initialize
(
from_player
,
from_pos
,
to_pos
=
nil
,
card
=
Card
::
Unknown
,
msg
=
nil
,
position
=
nil
)
def
initialize
(
from_player
,
from_pos
,
to_pos
=
nil
,
card
=
nil
,
msg
=
nil
,
position
=
nil
)
super
(
from_player
,
msg
)
@from_pos
=
from_pos
@to_pos
=
to_pos
@card
=
card
@position
=
position
end
def
run
$log
.
debug
(
'--------------move action run--------------'
){
self
.
inspect
}
from_field
=
case
@from_pos
when
0
..
10
def
parse_field
(
pos
)
case
pos
when
0
..
10
,
:field
player_field
.
field
when
Integer
,
:hand
when
11
..
70
,
:hand
,
:handtop
,
:handrandom
player_field
.
hand
when
:field
player_field
.
field
when
71
..
130
,
:deck
,
:decktop
,
:deckbottom
player_field
.
deck
when
:graveyard
player_field
.
graveyard
when
:deck
player_field
.
deck
when
:extra
player_field
.
extra
when
:removed
player_field
.
removed
end
from_pos
=
if
@from_pos
.
is_a?
Integer
if
@from_pos
>
10
@from_pos
-
11
else
@from_pos
end
elsif
@card
==
:deck
end
def
run
#$log.debug('移动操作执行'){self.inspect}
from_field
=
parse_field
(
@from_pos
)
from_pos
=
case
@from_pos
when
0
..
10
@from_pos
when
11
..
70
@from_pos
-
11
when
71
..
130
@from_pos
-
71
when
:handtop
player_field
.
hand
.
size
-
1
when
:decktop
player_field
.
deck
.
size
-
1
else
(
@card
.
is_a?
(
Game_Card
)
?
from_field
.
index
(
@card
)
:
from_field
.
index
{
|
card
|
card
.
card
==
@card
})
||
from_field
.
index
{
|
card
|!
card
.
known?
}
end
to_field
=
case
@to_pos
when
Integer
player_field
.
field
when
:hand
player_field
.
hand
when
:graveyard
player_field
.
graveyard
when
:deck
,
:deckbottom
player_field
.
deck
when
:extra
player_field
.
extra
when
:removed
player_field
.
removed
end
if
from_pos
card
=
case
@card
to_field
=
parse_field
(
@to_pos
)
card
=
if
from_pos
case
@card
when
Game_Card
from_field
[
from_pos
]
=
@card
when
nil
,
Card
::
Unknown
if
!
from_field
[
from_pos
]
from_field
[
from_pos
]
=
Game_Card
.
new
(
Card
::
Unknown
)
$log
.
warn
(
'卡片移动'
){
'似乎凭空产生了卡片'
+
self
.
inspect
}
from_field
[
from_pos
].
position
=
:attack
end
from_field
[
from_pos
]
@card
when
Card
if
!
from_field
[
from_pos
]
from_field
[
from_pos
]
=
Game_Card
.
new
(
@card
)
from_field
[
from_pos
].
position
=
:attack
else
if
from_field
[
from_pos
]
from_field
[
from_pos
].
card
=
@card
end
from_field
[
from_pos
]
when
:deck
player_field
.
deck
.
last
end
if
@to_pos
if
from_field
==
player_field
.
field
from_field
[
from_pos
]
=
nil
else
from_field
.
delete_at
from_pos
$log
.
warn
(
'移动操作1'
){
'似乎凭空产生了卡片'
+
self
.
inspect
}
from_field
[
from_pos
]
=
Game_Card
.
new
(
@card
)
end
from_field
[
from_pos
]
else
from_field
[
from_pos
]
||
Game_Card
.
new
end
else
card
=
@card
==
:deck
?
player_field
.
deck
.
first
:
Game_Card
.
new
(
@card
)
$log
.
warn
(
'卡片移动'
){
'似乎凭空产生了卡片'
+
self
.
inspect
}
else
#没有来源
$log
.
warn
(
'移动操作2'
){
'似乎凭空产生了卡片'
+
self
.
inspect
}
Game_Card
.
new
(
@card
)
end
if
@position
if
@position
==
:"face-up"
if
card
.
position
!=
:attack
and
(
6
..
10
).
include?
(
@to_pos
||
@from_pos
)
#里侧表示的怪兽
...
...
@@ -169,15 +144,27 @@ class Action
card
.
position
=
@position
end
end
if
@to_pos
if
@to_pos
.
is_a?
Integer
if
from_pos
if
from_field
==
player_field
.
field
from_field
[
from_pos
]
=
nil
else
from_field
.
delete_at
from_pos
end
end
case
@to_pos
when
0
..
10
to_field
[
@to_pos
]
=
card
elsif
@to_pos
==
:hand
or
@to_pos
==
:deck
to_field
<<
card
else
when
:hand
,
:deck
,
:decktop
,
:extra
,
:graveyard
,
:removed
to_field
.
push
card
when
:deckbottom
to_field
.
unshift
card
else
$log
.
error
(
'移动操作3'
){
'错误的to_pos'
+
self
.
inspect
}
end
end
super
end
end
...
...
@@ -249,6 +236,7 @@ class Action
card
.
card
=
@card
card
else
$log
.
warn
(
'转移控制权'
){
'似乎凭空产生了卡片'
+
self
.
inspect
}
Game_Card
.
new
(
@card
)
end
...
...
@@ -291,7 +279,7 @@ class Action
class
Draw
<
Move
def
initialize
(
from_player
=
true
,
msg
=
nil
)
@from_player
=
from_player
super
(
from_player
,
:deck
,
:hand
,
:deck
,
msg
,
:set
)
super
(
from_player
,
:deck
top
,
:hand
,
nil
,
msg
,
:set
)
end
end
class
Counter
<
Action
...
...
@@ -304,7 +292,7 @@ class Action
end
def
run
super
player_field
.
hand
+=
player_field
.
deck
.
pop
(
@count
)
player_field
.
hand
.
concat
player_field
.
deck
.
pop
(
@count
)
end
end
class
MultiMove
<
Action
...
...
@@ -491,10 +479,32 @@ class Action
end
end
class
MultiShow
<
Action
def
initialize
(
from_player
,
cards
)
def
initialize
(
from_player
,
from_pos
=
nil
,
cards
)
super
(
from_player
,
nil
)
@from_pos
=
from_pos
@cards
=
cards
end
def
run
return
if
@cards
[
0
].
is_a?
Game_Card
#本地消息,不处理
case
@from_pos
when
:hand
if
player_field
.
hand
.
size
>
@cards
.
size
player_field
.
hand
.
pop
(
player_field
.
hand
.
size
-
@cards
.
size
)
end
@cards
.
each_with_index
do
|
card
,
index
|
if
player_field
.
hand
[
index
]
player_field
.
hand
[
index
].
card
=
card
else
player_field
.
hand
[
index
]
=
Game_Card
.
new
card
end
end
when
71
..
130
cards
=
@cards
.
to_enum
player_field
.
deck
[
@from_pos
-
71
,
@cards
.
size
].
each
do
|
game_card
|
game_card
.
card
=
cards
.
next
end
end
end
end
class
EffectActivate
<
Move
def
initialize
(
from_player
,
from_pos
,
card
)
...
...
@@ -615,6 +625,46 @@ class Action
end
end
end
class
Note
<
Action
def
initialize
(
from_player
,
from_pos
,
card
,
note
)
super
(
from_player
)
@from_pos
=
from_pos
@card
=
card
@note
=
note
end
def
run
card
=
if
@card
.
is_a?
Game_Card
@card
else
if
player_field
.
field
[
@from_pos
]
player_field
.
field
[
@from_pos
].
card
=
@card
else
$log
.
warn
(
'指示物操作'
){
'似乎凭空产生了卡片'
+
self
.
inspect
}
player_field
.
field
[
@from_pos
]
=
Game_Card
.
new
(
@card
)
player_field
.
field
[
@from_pos
].
position
=
:attack
end
player_field
.
field
[
@from_pos
]
end
card
.
note
=
@note
end
end
class
Token
<
SpecialSummon
def
initialize
(
from_player
,
to_pos
,
card
,
position
=
:defense
)
super
(
from_player
,
nil
,
to_pos
,
card
)
end
end
class
MultiToken
<
SpecialSummon
def
initialize
(
from_player
,
num
,
card
,
position
=
:attack
)
super
(
from_player
,
nil
,
nil
,
card
)
@num
=
num
end
def
run
@num
.
times
do
@to_pos
=
player_field
.
field
[
6
..
10
].
index
(
nil
)
+
6
super
end
end
end
class
Add
<
Action
def
initialize
(
from_player
,
card
)
super
(
from_player
)
...
...
lib/card.rb
View file @
3bd44e28
...
...
@@ -47,6 +47,7 @@ class Card
def
new
(
id
)
find
(
id
)
end
def
load_from_ycff3
(
db
=
"E:/game/yu-gi-oh/YGODATA/YGODAT.mdb"
)
require
'win32ole'
conn
=
WIN32OLE
.
new
(
'ADODB.Connection'
)
...
...
@@ -148,7 +149,6 @@ class Card
@token
=
hash
[
'token'
]
Card
.
cache
[
@id
]
=
self
end
def
create_image
@image
||=
Surface
.
load
(
"graphics/field/card.jpg"
).
display_format
...
...
@@ -185,9 +185,9 @@ class Card
def
token?
@token
end
def
inspect
"[
#{
card_type
}
][
#{
name
}
]"
end
#
def inspect
#
"[#{card_type}][#{name}]"
#
end
Unknown
=
Card
.
new
(
'id'
=>
0
,
'number'
=>
:"00000000"
,
'name'
=>
""
,
'lore'
=>
''
,
'card_type'
=>
:
通常怪兽
,
'stats'
=>
""
,
'archettypes'
=>
""
,
'mediums'
=>
""
)
Unknown
.
instance_eval
{
@image
=
CardBack
;
@image_small
=
CardBack_Small
}
end
\ No newline at end of file
lib/game_card.rb
View file @
3bd44e28
#encoding: UTF-8
class
Game_Card
attr_accessor
:card
,
:position
,
:counters
attr_accessor
:card
,
:position
,
:counters
,
:note
attr_writer
:atk
,
:def
@@count
=
0
def
initialize
(
card
=
nil
)
...
...
lib/iduel/action.rb
View file @
3bd44e28
#encoding: UTF-8
#这个文件iduel和nbx相同,编辑时推荐使用软/硬链接来保持一致
class
Action
CardFilter
=
/(
(?:<)?(?:\[.*?\])?\[(?:.*?)\].*?(?:>)
?|一张怪兽卡|一张魔\/陷卡|一张卡|\?\?)/
PosFilter
=
/((?:手卡|手牌|场上|魔陷区|怪兽区|墓地|额外牌堆|除外区|卡组|卡组顶端|\(\d+\)){1,2})/
CardFilter
=
/(
<?\[?Token[ \\\d]*\]?>?|<?(?:\[.*?\])?\[(?:.*?)\][ \d]*>
?|一张怪兽卡|一张魔\/陷卡|一张卡|\?\?)/
PosFilter
=
/((?:手卡|手牌|场上|魔陷区|怪兽区|墓地|
墓地\|,,,,,\|\*\:\d+张\:\*|
额外牌堆|除外区|卡组|卡组顶端|\(\d+\)){1,2})/
PositionFilter
=
/(表攻|表守|里守|攻击表示|防守表示|里侧表示|背面守备表示)/
PhaseFilter
=
/(抽卡`阶段|准备`阶段|主`阶段1|战斗`阶段|主`阶段2|结束`阶段)/
CountersFilter
=
/(?:\()?(\d+)?(?:\))?/
...
...
@@ -25,15 +25,19 @@ class Action
:extra
when
"除外区"
:removed
when
"卡组顶端"
,
"卡组"
when
"卡组顶端"
:decktop
when
"卡组"
:deck
end
end
end
def
self
.
parse_card
(
card
)
if
index
=
card
.
rindex
(
"["
)
if
card
[
'Token'
]
@token
||=
Card
.
new
(
'name'
=>
:Token
,
'id'
=>-
1
,
'token'
=>
true
,
'number'
=>
:"00000000"
,
'card_type'
=>
:
通常怪兽
,
'stats'
=>
""
,
'archettypes'
=>
""
,
'mediums'
=>
""
,
'lore'
=>
"这张卡作为衍生物使用。"
)
elsif
index
=
card
.
rindex
(
'['
)
index
+=
1
name
=
card
[
index
,
card
.
rindex
(
"]"
)
-
index
].
to_sym
name
=
card
[
index
,
card
.
rindex
(
']'
)
-
index
].
to_sym
Card
.
find
(
name
)
else
Card
.
find
(
nil
)
...
...
@@ -209,8 +213,6 @@ class Action
Side
.
new
from_player
when
"卡组洗切"
,
"切洗卡组"
Shuffle
.
new
from_player
when
"查看卡组"
ViewDeck
.
new
from_player
when
"要连锁吗?"
ActivateAsk
.
new
from_player
when
"我要连锁!"
...
...
@@ -218,9 +220,11 @@ class Action
when
"请继续吧~"
ActivateAnswer
.
new
from_player
,
false
when
"将顶牌放回卡组底部"
ReturnToDeckBottom
.
new
(
from_player
,
:deck
)
ReturnToDeckBottom
.
new
(
from_player
,
:deck
top
)
when
/抽取\((\d+)\)张卡/
MultiDraw
.
new
from_player
,
$1
.
to_i
when
/己方卡组第(\d+)张加入手卡/
ReturnToHand
.
new
(
from_player
,
$1
.
to_i
+
71
,
nil
)
when
/\[\d+年\d+月\d+日禁卡表\](?:<(.+)> )?先攻/
FirstToGo
.
new
from_player
,
$1
when
/\[\d+年\d+月\d+日禁卡表\](?:<(.+)> )?后攻/
...
...
@@ -229,6 +233,12 @@ class Action
Dice
.
new
from_player
,
$2
.
to_i
,
$1
when
/(.*)抛硬币,结果为(.+)/
Coin
.
new
from_player
,
$2
==
"正面"
,
$1
when
"查看卡组"
ViewDeck
.
new
from_player
when
/查看卡组上方(\d+)张卡/
ViewDeck
.
new
from_player
,
$1
.
to_i
when
/刚才抽到的卡是:
#{
CardFilter
}
/
Show
.
new
(
from_player
,
:handtop
,
parse_card
(
$1
))
when
/从
#{
PosFilter
}
~发动
#{
CardFilter
}#{
PosFilter
}
/
Activate
.
new
from_player
,
parse_pos
(
$1
),
parse_pos
(
$3
),
parse_card
(
$2
)
when
/从
#{
PosFilter
}
~召唤
#{
CardFilter
}#{
PosFilter
}
/
...
...
@@ -244,15 +254,23 @@ class Action
when
/随机将一张卡从手卡\((\d+\))~放回卡组顶端/
ReturnToDeck
.
new
(
from_player
,
$1
.
to_i
+
10
,
nil
)
when
/随机舍弃~手卡~
#{
CardFilter
}
/
Discard
.
new
(
from_player
,
:hand
,
parse_card
(
$1
))
Discard
.
new
(
from_player
,
:hand
random
,
parse_card
(
$1
))
when
/随机将手卡的
#{
CardFilter
}
从游戏中除外/
Remove
.
new
from_player
,
:hand
,
parse_card
(
$1
)
Remove
.
new
from_player
,
:hand
random
,
parse_card
(
$1
)
when
/随机显示一张手卡为:
#{
CardFilter
}
/
Show
.
new
(
from_player
,
:hand
,
parse_card
(
$1
))
Show
.
new
(
from_player
,
:hand
random
,
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
)}
MultiShow
.
new
from_player
,
:hand
,
$&
.
scan
(
CardFilter
).
collect
{
|
matched
|
parse_card
(
matched
.
first
)}
when
/^(?:(\d+)
#{
CardFilter
}
\n?)+$/
from_pos
=
71
cards
=
$&
.
lines
.
collect
do
|
line
|
line
=~
/(\d+)
#{
CardFilter
}
/
from_pos
||=
$1
.
to_i
+
71
parse_card
(
$2
)
end
MultiShow
.
new
from_player
,
from_pos
,
cards
when
/将
#{
PosFilter
}
的
#{
CardFilter
}
从游戏中除外/
Remove
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
when
/
#{
CardFilter
}
从
#{
PosFilter
}
~放回卡组顶端/
...
...
@@ -263,7 +281,7 @@ class Action
ReturnToExtra
.
new
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
)
when
/从
#{
PosFilter
}
取
#{
CardFilter
}
加入手卡/
ReturnToHand
.
new
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
)
when
/(?:己方)?
#{
PosFilter
}
.*?
#{
CardFilter
}
效果发(?:\~)?动/
when
/(?:己方)?
#{
PosFilter
}
.*?
#{
CardFilter
}
(?:选择(.*)为对象>)?
效果发(?:\~)?动/
EffectActivate
.
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
))
...
...
@@ -304,8 +322,8 @@ class Action
MultiMove
.
new
(
from_player
,
from_pos
,
to_pos
,
cards
)
when
/己方
#{
PosFilter
}#{
CardFilter
}
送入对手墓地/
SendToOpponentGraveyard
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
))
when
/
#{
PosFilter
}#{
CardFilter
}
选择(我方)?-
#{
PosFilter
}
-
#{
CardFilter
}
为效果对象/
Target
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
),
$3
?
true
:
false
,
parse_pos
(
$4
),
parse_card
(
$
5
))
when
/
#{
PosFilter
}#{
CardFilter
}
选择(我方)?-
#{
PosFilter
}
-
(?:
#{
PositionFilter
}
\|)?
#{
CardFilter
}
为效果对象/
Target
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
),
$3
?
true
:
false
,
parse_pos
(
$4
),
parse_card
(
$
6
))
when
/
#{
PhaseFilter
}
/
ChangePhase
.
new
(
from_player
,
parse_phase
(
$1
))
when
/LP(损失|回复|变成)<(-?\d+)>/
...
...
@@ -316,6 +334,12 @@ class Action
Attack
.
new
(
from_player
,
nil
,
nil
,
parse_card
(
$1
))
when
/(?:清空)?
#{
PosFilter
}#{
CardFilter
}
的指示物(?:加一|减一)?,现为
#{
CountersFilter
}
/
Counter
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
),
:become
,
parse_counters
(
$3
))
when
/己方
#{
PosFilter
}#{
CardFilter
}
修改备注为:(.*)/
Note
.
new
(
from_player
,
parse_pos
(
$1
),
parse_card
(
$2
),
$3
)
when
/~特殊召唤
#{
CardFilter
}#{
PosFilter
}
呈
#{
PositionFilter
}
/
Token
.
new
(
from_player
,
parse_pos
(
$2
),
parse_card
(
$1
),
parse_position
(
$3
))
when
/~特殊召唤(\d+)个
#{
CardFilter
}
呈
#{
PositionFilter
}
/
MultiToken
.
new
(
from_player
,
$1
.
to_i
,
parse_card
(
$2
),
parse_position
(
$3
))
when
/添加一张手牌
#{
CardFilter
}
/
Add
.
new
(
from_player
,
parse_card
(
$1
))
when
/将
#{
PosFilter
}#{
CardFilter
}
撕掉!/
...
...
@@ -328,8 +352,10 @@ class Action
end
result
.
id
=
id
result
when
/^(
#{
CardFilter
}
\n)*$/
MultiShow
.
new
from_player
,
$&
.
lines
.
collect
{
|
card
|
parse_card
(
card
)}
when
/系统消息:.+?\(\d+\)已经退出房间/
Reset
.
new
from_player
when
/^(
#{
CardFilter
}
\n?)*$/
MultiShow
.
new
from_player
,
nil
,
$&
.
lines
.
collect
{
|
card
|
parse_card
(
card
)}
else
Unknown
.
new
str
end
...
...
lib/iduel/replay.rb
View file @
3bd44e28
...
...
@@ -17,7 +17,7 @@ class Replay
file
.
set_encoding
"GBK"
,
"UTF-8"
,
:invalid
=>
:replace
,
:undef
=>
:replace
result
=
self
.
new
(
file
)
contents
=
file
.
read
.
strip
if
contents
[
0
,
7
]
==
"<table>"
if
contents
[
'<td width="75%" valign="top">'
]
result
.
player1
=
User
.
new
(
$2
.
to_i
,
$1
)
if
contents
=~
HTML_Player_Filter
result
.
player2
=
User
.
new
(
$2
.
to_i
,
$1
)
if
contents
=~
HTML_Opponent_Filter
from_players
=
contents
.
scan
(
Regexp
.
union
(
HTML_Player_Filter
,
HTML_Opponent_Filter
)).
collect
{
|
matched
|
matched
[
0
]
?
true
:
false
}
#匹配player成功matched前两位有值,opponent成功后两位有值,["尸体", "100015", nil, nil], il, nil], [nil, nil, "游戏的徒弟", "288436"]
...
...
lib/nbx/action.rb
View file @
3bd44e28
...
...
@@ -435,7 +435,7 @@ class Action
case
from_pos
when
0
..
10
#场上
when
Integer
when
11
..
70
"第
#{
@from_pos
-
10
}
张手牌为:
#{
@card
.
escape
}
"
end
end
...
...
lib/scene_replay.rb
View file @
3bd44e28
...
...
@@ -12,7 +12,6 @@ class Scene_Replay < Scene_Watch
def
save_replay
end
def
update
#p Time.now
if
@count
and
@count
>=
60
event
=
@replay
.
get
if
event
...
...
lib/window_field.rb
View file @
3bd44e28
...
...
@@ -20,6 +20,7 @@ class Window_Field < Window
#Card_Size = [Card::CardBack.w, Card::CardBack.h]
Card_Size
=
[
54
,
81
]
attr_accessor
:action_window
WLH
=
16
def
initialize
(
x
,
y
,
field
,
player
=
true
)
@border
=
Surface
.
load
(
'graphics/field/border.png'
)
@border_horizontal
=
Surface
.
load
(
'graphics/field/border_horizontal.png'
)
#@border.transform_surface(0x66000000,90,1,1,Surface::TRANSFORM_SAFE|Surface::TRANSFORM_AA)#FUCK!
...
...
@@ -96,20 +97,33 @@ class Window_Field < Window
@contents
.
put
(
@border
,
x
-
1
,
y
-
1
)
if
status
==
1
end
if
(
6
..
10
).
include?
(
index
)
and
@cards
[
index
].
position
!=
:set
spacing
,
height
=
@font
.
text_size
(
'/'
)
spacing
=
@font
.
text_size
(
'/'
)[
0
]
atkdef_x
=
x
+
(
Card_Size
[
0
]
-
spacing
)
/
2
atkdef_y
=
y
+
Card_Size
[
1
]
-
height
@font
.
draw_blended_utf8
(
@contents
,
'/'
,
atkdef_x
,
atkdef_y
,
0xFF
,
0xFF
,
0xFF
)
@font
.
draw_blended_utf8
(
@contents
,
@cards
[
index
].
atk
.
to_s
,
atkdef_x
-
@font
.
text_size
(
@cards
[
index
].
atk
.
to_s
)[
0
],
atkdef_y
,
0xFF
,
0xFF
,
0xFF
)
@font
.
draw_blended_utf8
(
@contents
,
@cards
[
index
].
def
.
to_s
,
atkdef_x
+
spacing
,
atkdef_y
,
0xFF
,
0xFF
,
0xFF
)
atkdef_y
=
y
+
Card_Size
[
1
]
-
WLH
draw_shaded_text
(
'/'
,
atkdef_x
,
atkdef_y
)
draw_shaded_text
(
@cards
[
index
].
atk
.
to_s
,
atkdef_x
-
@font
.
text_size
(
@cards
[
index
].
atk
.
to_s
)[
0
],
atkdef_y
)
draw_shaded_text
(
@cards
[
index
].
def
.
to_s
,
atkdef_x
+
spacing
,
atkdef_y
)
#@font.draw_blended_utf8(@contents, '/' , atkdef_x, atkdef_y, 0xFF, 0xFF, 0xFF)
#@font.draw_blended_utf8(@contents, @cards[index].atk.to_s , atkdef_x - @font.text_size(@cards[index].atk.to_s)[0], atkdef_y, 0xFF, 0xFF, 0xFF)
#@font.draw_blended_utf8(@contents, @cards[index].def.to_s , atkdef_x + spacing, atkdef_y, 0xFF, 0xFF, 0xFF)
end
if
@cards
[
index
].
note
&&
!
@cards
[
index
].
note
.
empty?
note_x
=
x
note_y
=
y
+
Card_Size
[
1
]
-
WLH
*
3
draw_shaded_text
(
@cards
[
index
].
note
,
note_x
,
note_y
)
end
if
@cards
[
index
].
counters
!=
0
height
||=
@font
.
text_size
(
'/'
)[
1
]
#不太规范,凑合能用
counters_x
=
x
counters_y
=
y
+
Card_Size
[
1
]
-
height
*
2
@font
.
draw_blended_utf8
(
@contents
,
@cards
[
index
].
counters
.
to_s
,
counters_x
,
counters_y
,
0xFF
,
0xFF
,
0xFF
)
@@counter
||=
Surface
.
load
(
"graphics/field/counter.png"
)
@contents
.
put
@@counter
,
counters_x
,
counters_y
draw_shaded_text
(
" ×
#{
@cards
[
index
].
counters
}
"
,
counters_x
+
16
,
counters_y
)
end
end
def
draw_shaded_text
(
text
,
x
,
y
,
size
=
1
,
font
=
@font
)
@font
.
draw_blended_utf8
(
@contents
,
text
,
x
+
size
,
y
+
size
,
0x00
,
0x00
,
0x00
)
@font
.
draw_blended_utf8
(
@contents
,
text
,
x
,
y
,
0xFF
,
0xFF
,
0xFF
)
end
def
item_rect
(
index
)
@items
[
index
]
...
...
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