GJSS 0.21

[Groovy] Class Game

java.lang.Object
  scripts.System
      Game

class Game
extends System

ゲーム全体の処理を扱います。


Property Summary
def argumenttime

議論時間の長さを表します。

def bitetarget

狼の襲撃対象を表します。

def issecret

非開示かどうかを表します。

def killedMessages

死亡メッセージをここへ一時的にプールします。

def nighttime

夜時間の長さを表します。

def revoteCount

現在の再投票回数を表します。

def revotelimit

1日あたりの最大再投票回数を表します。

def strings

ローカライズされた文字列のバンドルです。

 
Method Summary
def checkExecution()

処刑投票が終了したかどうかを返します。

def checkStep()

ゲームを進められるかどうかを返します。

def dealRoles()

役職配布時の処理です。

def endPhase()

議論・夜時間を終了します。

def execution()

処刑処理を実行します。

def getActorsData()

ツール本体の参加者欄に表示させる情報をリストで返します。

def getOptionList()

ゲームのオプションの項目をリストで返します。

def judge()

ゲームが終了するかどうかを返します。

def noticeKilled(def message)

死亡メッセージを通知するまでプールしておきます。

def noticeResults(def result)

参加者の役職及びゲームの勝敗結果を通知します。

def resetActors()

各参加者のresetメソッドを実行します。

def startPhase()

議論・夜時間それぞれを開始します。

def timerCounted(def minutes, def seconds)

ツール本体のタイマーがカウントされるごとに呼び出されます。

def update()

時間を進め、朝は死亡者を通知します。

 
Methods inherited from class System
addActor, addHistory, checkNameDuplication, dealRoles, getActor, getNamebySkypeid, getRole, getState, getStateNames, makeChats, noticeRoles, noticeall, removeActor, sendMessage
 

Property Detail

argumenttime

def argumenttime
議論時間の長さを表します。単位は分です。
ゲームのオプションにより変更されます。


bitetarget

def bitetarget
狼の襲撃対象を表します。


issecret

def issecret
非開示かどうかを表します。非開示の場合はゲーム中ツール本体の参加者欄に役職および朝の死因が表示されなくなり、ゲームが終了すると自動で開示に切り替わります。
これはSkype人狼を配信に載せる際、視聴者から役職および死因を隠したい場合に使用します。
ゲームのオプションにより変更されます。


killedMessages

def killedMessages
死亡メッセージをここへ一時的にプールします。


nighttime

def nighttime
夜時間の長さを表します。単位は分です。
ゲームのオプションにより変更されます。


revoteCount

def revoteCount
現在の再投票回数を表します。これがrevotelimitを上回ると引き分けとなります。


revotelimit

def revotelimit
1日あたりの最大再投票回数を表します。ここの回数分再投票が行われても処刑対象が決定しない場合は引き分けとなります。
ただしこれが0の場合は無制限に再投票となります。
ゲームのオプションにより変更されます。


strings

def strings
ローカライズされた文字列のバンドルです。


 
Method Detail

checkExecution

def checkExecution()
処刑投票が終了したかどうかを返します。再投票になる場合はそれを通知した上でfalseを返します。
Returns:
全員の投票が済んでいないか再投票を行う場合はfalse、そうでなければtrue


checkStep

def checkStep()
ゲームを進められるかどうかを返します。
このメソッドはツール本体から呼び出されるため必須です。
Returns:
ゲームを進めるための条件が全て揃っていればtrue、そうでなければfalse


dealRoles

def dealRoles()
役職配布時の処理です。
See Also:
System.dealRoles


endPhase

def endPhase()
議論・夜時間を終了します。処刑や噛みその他update()を実行します。
このメソッドはツール本体から呼び出されるため必須です。
Returns:
議論・夜時間を終わらせるかどうか。falseを返すと終了しません。


execution

def execution()
処刑処理を実行します。投票結果を通知した上で、決着がついた場合は対象者を処刑し、つかなかった場合は引き分けとします。


getActorsData

def getActorsData()
ツール本体の参加者欄に表示させる情報をリストで返します。このメソッドを書き換えることで参加者欄の表示をカスタマイズすることが出来ます。
リストの要素はそれぞれ参加者欄の各行の情報を表し、リストを内包します。
内包されるリストは4つ以上の要素を持ちます。0番目の要素はStateの優先度で、これが50以下の場合は死亡状態として行が赤くなります。1番目の要素は参加者名を表し、各行の0列目(名前)として表示されます。ここは実際の参加者名である必要があり、それ以外のものを入れて参加者名を隠すというようなことは出来ません。2・3番目の要素はそれぞれ各行の1列目(役職)・2列目(生存/死亡)として表示されます。4番目以降は列を追加した場合にそれぞれ対応する場所に表示されます。対応する列が無い場合は特に意味を持ちません。4番目の要素はデフォルトでは参加者を役職の優先度順に並べ替えるために使用され、参加者欄には表示されません。
このメソッドはツール本体から呼び出されますが、存在しない場合はデフォルトの処理が行われます。
Returns:
参加者欄に表示させる情報のリスト


getOptionList

def getOptionList()
ゲームのオプションの項目をリストで返します。このメソッドを書き換えることでゲームのオプションに項目を追加出来ます。
リストの各要素はさらにゲームのオプションそれぞれの項目を設定するためのリストを内包します。
内包されるリストは3つ、または4つの要素を持ちます。0番目の要素は項目名、1番目はその項目が扱うGameオブジェクトのプロパティ名、2番目はそのプロパティの型(IntegerBooleanStringのいずれか)を表します。そして3番目の要素はコンボボックスとして表示させるためのオプションで、コンボボックスのアイテム名と値を対にしたマップを格納します。
def list = [];
 // 数値入力のスピンボックス
 list << [strings.getString("option.item_a"), "item_a", "Integer"];
 // チェックボックス
 list << [strings.getString("option.item_b"), "item_b", "Boolean"];
 // 文字列AまたはBを選択するコンボボックス
 list << [strings.getString("option.item_c"), "item_c", "String",
     [strings.getString("option.item_c.a"): "A", strings.getString("option.item_c.b"): "B"]
 ];

なお、このメソッドはツール本体から呼び出されるため必須です。
Returns:
ゲームのオプションの項目リスト


judge

def judge()
ゲームが終了するかどうかを返します。ゲームが終了する場合はnoticeRoles()を実行します。
startPhase()から呼び出されます。
Returns:
trueならゲーム終了、falseなら続行します。


noticeKilled

def noticeKilled(def message)
死亡メッセージを通知するまでプールしておきます。これは通知順から死因が判らなくなるようにするための処置です。


noticeResults

def noticeResults(def result)
参加者の役職及びゲームの勝敗結果を通知します。非開示モードだった場合は開示に変更します。
judge()から呼び出されます。
Parameters:
result - 村陣営勝利なら0、狼陣営勝利なら1、妖狐陣営勝利なら2。引き分けの場合は-1


resetActors

def resetActors()
各参加者のresetメソッドを実行します。


startPhase

def startPhase()
議論・夜時間それぞれを開始します。ゲームの終了条件を満たした場合は開始されません。
このメソッドはツール本体から呼び出されるため必須です。


timerCounted

def timerCounted(def minutes, def seconds)
ツール本体のタイマーがカウントされるごとに呼び出されます。残り時間によって何らかの処理を行う場合にこのメソッドを利用出来ます。
Parameters:
minutes - 残り時間(分)
seconds - 残り時間(秒)
Returns:
ツール本体が参加者に残り時間の通知を行うかどうか。trueを返すとツール本体が通知処理を行います。falseの場合はスクリプト側で実装する必要があります。


update

def update()
時間を進め、朝は死亡者を通知します。
また各参加者のupdateメソッドをそれぞれ役職のupdate順にしたがって実行し、resetActors()も実行します。
endPhase()から呼び出されます。


 

GJSS 0.21