Merge pull request #417 from Drooopyyy/master

Fixed issues from #368
This commit is contained in:
Eric Froemling 2022-06-04 14:52:49 -07:00 committed by GitHub
commit b09a24f97c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 35 additions and 12 deletions

View File

@ -1,6 +1,7 @@
### 1.7.1 (20597, 2022-06-04)
- V2 account logic fixes
- Polishing V2 web-based login flow
- Minor fixes in some minigames (Thanks Droopy!)
### 1.7.0 (20591, 2022-06-02)
- V2 accounts are now available (woohoo!). These are called 'BombSquad Accounts' in the account section. V2 accounts communicate with a completely new server and will be the foundation for lots of new functionality in the future. However they also function as a V1 account so existing functionality should still work. Note that the new 'workspaces' feature for V2-accounts is not yet enabled in this build, but it will be in the next few builds. Also note that account types such as GameCenter and Google-Play will be 'upgraded' to V2 accounts in the future so there is no need to try this out if you use one of those. But if you use device-accounts you might want to create yourself a V2 account, since device-accounts will remain V1-only (though you can link an old device-account to a v2-enabled account if you want to keep your progress). Getting a V2 account now also gives you a chance to reserve a nice account-tag before all the good ones are taken.

View File

@ -175,12 +175,16 @@ class AssaultGame(ba.TeamGameActivity[Player, Team]):
def _handle_base_collide(self, team: Team) -> None:
try:
player = ba.getcollision().opposingnode.getdelegate(
PlayerSpaz, True).getplayer(Player, True)
spaz = ba.getcollision().opposingnode.getdelegate(PlayerSpaz, True)
except ba.NotFoundError:
return
if not player.is_alive():
if not spaz.is_alive():
return
try:
player = spaz.getplayer(Player, True)
except ba.NotFoundError:
return
# If its another team's player, they scored.

View File

@ -274,6 +274,11 @@ class CaptureTheFlagGame(ba.TeamGameActivity[Player, Team]):
# If the enemy flag is already here, score!
if team.enemy_flag_at_base:
# And show team name which scored (but actually we could
# show here player who returned enemy flag).
self.show_zoom_message(ba.Lstr(resource='nameScoresText',
subs=[('${NAME}', team.name)]),
color=team.color)
self._score(team)
else:
team.enemy_flag_at_base = True
@ -435,11 +440,14 @@ class CaptureTheFlagGame(ba.TeamGameActivity[Player, Team]):
"""
player: Optional[Player]
try:
player = ba.getcollision().sourcenode.getdelegate(
PlayerSpaz, True).getplayer(Player, True)
spaz = ba.getcollision().sourcenode.getdelegate(PlayerSpaz, True)
except ba.NotFoundError:
# This can happen if the player leaves but his corpse touches/etc.
player = None
return
if not spaz.is_alive():
return
player = spaz.getplayer(Player, True)
if player:
player.touching_own_flag += (1 if connecting else -1)

View File

@ -239,11 +239,15 @@ class KingOfTheHillGame(ba.TeamGameActivity[Player, Team]):
def _handle_player_flag_region_collide(self, colliding: bool) -> None:
try:
player = ba.getcollision().opposingnode.getdelegate(
PlayerSpaz, True).getplayer(Player, True)
spaz = ba.getcollision().sourcenode.getdelegate(PlayerSpaz, True)
except ba.NotFoundError:
return
if not spaz.is_alive():
return
player = spaz.getplayer(Player, True)
# Different parts of us can collide so a single value isn't enough
# also don't count it if we're dead (flying heads shouldn't be able to
# win the game :-)

View File

@ -224,9 +224,15 @@ class RaceGame(ba.TeamGameActivity[Player, Team]):
collision = ba.getcollision()
try:
region = collision.sourcenode.getdelegate(RaceRegion, True)
player = collision.opposingnode.getdelegate(PlayerSpaz,
True).getplayer(
Player, True)
spaz = collision.opposingnode.getdelegate(PlayerSpaz, True)
except ba.NotFoundError:
return
if not spaz.is_alive():
return
try:
player = spaz.getplayer(Player, True)
except ba.NotFoundError:
return