mirror of
https://github.com/bombsquad-community/plugin-manager.git
synced 2025-11-07 17:36:00 +00:00
Update simon_says.py
• Add co-op support
This commit is contained in:
parent
f6dcfc656d
commit
3f7f5299c4
1 changed files with 23 additions and 7 deletions
|
|
@ -102,6 +102,7 @@ class Player(bs.Player['Team']):
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.score = 0
|
self.score = 0
|
||||||
|
self.dead: bool = False
|
||||||
|
|
||||||
|
|
||||||
class Team(bs.Team[Player]):
|
class Team(bs.Team[Player]):
|
||||||
|
|
@ -230,8 +231,7 @@ class SimonSays(bs.TeamGameActivity[Player, Team]):
|
||||||
player.score = 0
|
player.score = 0
|
||||||
# check for immediate end if theres only 1 player
|
# check for immediate end if theres only 1 player
|
||||||
if len(self.players) == 1:
|
if len(self.players) == 1:
|
||||||
bs.timer(4000/1000, lambda: self.check_end())
|
bs.timer(4000/1000, bs.Call(self.check_end))
|
||||||
else:
|
|
||||||
bs.timer(6000/1000, self.call_round)
|
bs.timer(6000/1000, self.call_round)
|
||||||
|
|
||||||
def spawn_player(self, player: PlayerT) -> bs.Actor:
|
def spawn_player(self, player: PlayerT) -> bs.Actor:
|
||||||
|
|
@ -352,6 +352,7 @@ class SimonSays(bs.TeamGameActivity[Player, Team]):
|
||||||
|
|
||||||
def handlemessage(self, msg) -> None:
|
def handlemessage(self, msg) -> None:
|
||||||
if isinstance(msg, bs.PlayerDiedMessage):
|
if isinstance(msg, bs.PlayerDiedMessage):
|
||||||
|
msg.getplayer(Player).dead = True
|
||||||
self.check_end()
|
self.check_end()
|
||||||
else:
|
else:
|
||||||
super().handlemessage(msg)
|
super().handlemessage(msg)
|
||||||
|
|
@ -363,10 +364,25 @@ class SimonSays(bs.TeamGameActivity[Player, Team]):
|
||||||
results.set_team_score(team, team.score)
|
results.set_team_score(team, team.score)
|
||||||
self.end(results=results)
|
self.end(results=results)
|
||||||
|
|
||||||
def check_end(self) -> None:
|
def check_end(self):
|
||||||
i = 0
|
i = 0
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
if player.is_alive():
|
if player.is_alive() and not player.dead:
|
||||||
i += 1
|
i += 1
|
||||||
|
if isinstance(self.session, bs.CoopSession):
|
||||||
|
if i <= 0:
|
||||||
|
bs.timer(0.6, bs.Call(self.end_game))
|
||||||
|
else:
|
||||||
if i <= 2:
|
if i <= 2:
|
||||||
bs.timer(0.6, lambda: self.end_game())
|
bs.timer(0.6, bs.Call(self.end_game))
|
||||||
|
|
||||||
|
|
||||||
|
# ba_meta export plugin
|
||||||
|
class plugin(babase.Plugin):
|
||||||
|
def __init__(self):
|
||||||
|
## Campaign support ##
|
||||||
|
babase.app.classic.add_coop_practice_level(bs.Level(
|
||||||
|
name = 'Simon Says',
|
||||||
|
gametype=SimonSays,
|
||||||
|
settings={},
|
||||||
|
preview_texture_name='courtyardPreview'))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue