Merge pull request #140 from bombsquad-community/arms_race_update

Throw bomb in arms_race with grab/punch
This commit is contained in:
Rikko 2023-05-22 00:38:59 +05:30 committed by GitHub
commit 63a82579e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 3 deletions

View file

@ -325,9 +325,20 @@
"name": "Freaku",
"email": "",
"discord": "[Just] Freak#4999"
},
{
"name": "LoupGarou",
"email": "LoupGarou5418@outlook.com",
"discord": "ʟօʊքɢǟʀօʊ#3063"
}
],
"versions": {
"1.1.0": {
"api_version": 7,
"commit_sha": "2e2540a",
"released_on": "20-05-2023",
"md5sum": "e06fbfeb1c0c4c78e04054caab3d593f"
},
"1.0.0": {
"api_version": 7,
"commit_sha": "7219487",

View file

@ -30,7 +30,8 @@ class State:
self.next = None
self.index = None
def apply(self, spaz):
def apply(self, player, spaz):
spaz.disconnect_controls_from_player()
spaz.connect_controls_to_player(enable_punch=self.punch,
enable_bomb=self.bomb,
@ -42,6 +43,18 @@ class State:
spaz.bomb_type = self.bomb
spaz.set_score_text(self.name)
def set_controls():
player.actor.node.bomb_pressed = True
player.actor.on_bomb_release()
release_input = (ba.InputType.PUNCH_RELEASE, ba.InputType.PICK_UP_RELEASE)
if not self.bomb is None:
for release in release_input:
player.assigninput(
release,
set_controls
)
def get_setting(self):
return (self.name)
@ -155,11 +168,12 @@ class ArmsRaceGame(ba.TeamGameActivity[Player, Team]):
self.spawn_player(player)
# overriding the default character spawning..
def spawn_player(self, player):
if player.state is None:
player.state = self.states[0]
super().spawn_player(player)
player.state.apply(player.actor)
player.state.apply(player, player.actor)
def isValidKill(self, m):
if m.getkillerplayer(Player) is None:
@ -177,7 +191,8 @@ class ArmsRaceGame(ba.TeamGameActivity[Player, Team]):
self.stats.player_scored(msg.getkillerplayer(Player), 10, kill=True)
if not msg.getkillerplayer(Player).state.final:
msg.getkillerplayer(Player).state = msg.getkillerplayer(Player).state.next
msg.getkillerplayer(Player).state.apply(msg.getkillerplayer(Player).actor)
msg.getkillerplayer(Player).state.apply(
msg.getkillerplayer(Player), msg.getkillerplayer(Player).actor)
else:
msg.getkillerplayer(Player).team.score += 1
self.end_game()