mirror of
https://github.com/bombsquad-community/plugin-manager.git
synced 2025-10-08 14:54:36 +00:00
[ci] auto-format
This commit is contained in:
parent
1668115069
commit
546a8d0a4a
5 changed files with 1138 additions and 1111 deletions
|
|
@ -23,6 +23,7 @@ from bascenev1lib.actor.playerspaz import PlayerSpaz
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from typing import Any, Sequence, Optional, List, Dict, Type, Type
|
from typing import Any, Sequence, Optional, List, Dict, Type, Type
|
||||||
|
|
||||||
|
|
||||||
class Player(bs.Player['Team']):
|
class Player(bs.Player['Team']):
|
||||||
"""Our player type for this game."""
|
"""Our player type for this game."""
|
||||||
|
|
||||||
|
|
@ -34,36 +35,38 @@ class Team(bs.Team[Player]):
|
||||||
self.score = 0
|
self.score = 0
|
||||||
|
|
||||||
# ba_meta export bascenev1.GameActivity
|
# ba_meta export bascenev1.GameActivity
|
||||||
|
|
||||||
|
|
||||||
class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
|
|
||||||
name = 'Dark Fields'
|
name = 'Dark Fields'
|
||||||
description = 'Get to the other side.'
|
description = 'Get to the other side.'
|
||||||
available_settings = [
|
available_settings = [
|
||||||
bs.IntSetting('Score to Win',
|
bs.IntSetting('Score to Win',
|
||||||
min_value=1,
|
min_value=1,
|
||||||
default=3,
|
default=3,
|
||||||
),
|
),
|
||||||
bs.IntChoiceSetting('Time Limit',
|
bs.IntChoiceSetting('Time Limit',
|
||||||
choices=[
|
choices=[
|
||||||
('None', 0),
|
('None', 0),
|
||||||
('1 Minute', 60),
|
('1 Minute', 60),
|
||||||
('2 Minutes', 120),
|
('2 Minutes', 120),
|
||||||
('5 Minutes', 300),
|
('5 Minutes', 300),
|
||||||
('10 Minutes', 600),
|
('10 Minutes', 600),
|
||||||
('20 Minutes', 1200),
|
('20 Minutes', 1200),
|
||||||
],
|
],
|
||||||
default=0,
|
default=0,
|
||||||
),
|
),
|
||||||
bs.FloatChoiceSetting('Respawn Times',
|
bs.FloatChoiceSetting('Respawn Times',
|
||||||
choices=[
|
choices=[
|
||||||
('Shorter', 0.25),
|
('Shorter', 0.25),
|
||||||
('Short', 0.5),
|
('Short', 0.5),
|
||||||
('Normal', 1.0),
|
('Normal', 1.0),
|
||||||
('Long', 2.0),
|
('Long', 2.0),
|
||||||
('Longer', 4.0),
|
('Longer', 4.0),
|
||||||
],
|
],
|
||||||
default=1.0,
|
default=1.0,
|
||||||
),
|
),
|
||||||
bs.BoolSetting('Epic Mode', default=False),
|
bs.BoolSetting('Epic Mode', default=False),
|
||||||
bs.BoolSetting('Players as center of interest', default=True),
|
bs.BoolSetting('Players as center of interest', default=True),
|
||||||
]
|
]
|
||||||
|
|
@ -90,25 +93,24 @@ class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
|
|
||||||
self._scoreRegionMaterial = bs.Material()
|
self._scoreRegionMaterial = bs.Material()
|
||||||
self._scoreRegionMaterial.add_actions(
|
self._scoreRegionMaterial.add_actions(
|
||||||
conditions=("they_have_material",shared.player_material),
|
conditions=("they_have_material", shared.player_material),
|
||||||
actions=(("modify_part_collision","collide",True),
|
actions=(("modify_part_collision", "collide", True),
|
||||||
("modify_part_collision","physical",False),
|
("modify_part_collision", "physical", False),
|
||||||
("call","at_connect", self._onPlayerScores)))
|
("call", "at_connect", self._onPlayerScores)))
|
||||||
|
|
||||||
self.slow_motion = self._epic_mode
|
self.slow_motion = self._epic_mode
|
||||||
self.default_music = (bs.MusicType.EPIC if self._epic_mode else None)
|
self.default_music = (bs.MusicType.EPIC if self._epic_mode else None)
|
||||||
|
|
||||||
|
|
||||||
def on_transition_in(self) -> None:
|
def on_transition_in(self) -> None:
|
||||||
super().on_transition_in()
|
super().on_transition_in()
|
||||||
gnode = bs.getactivity().globalsnode
|
gnode = bs.getactivity().globalsnode
|
||||||
gnode.tint = (0.5,0.5,0.5)
|
gnode.tint = (0.5, 0.5, 0.5)
|
||||||
|
|
||||||
a = bs.newnode('locator',attrs={'shape':'box','position':(12.2,0,.1087926362),
|
a = bs.newnode('locator', attrs={'shape': 'box', 'position': (12.2, 0, .1087926362),
|
||||||
'color':(5,0,0),'opacity':1,'draw_beauty':True,'additive':False,'size':[2.5,0.1,12.8]})
|
'color': (5, 0, 0), 'opacity': 1, 'draw_beauty': True, 'additive': False, 'size': [2.5, 0.1, 12.8]})
|
||||||
|
|
||||||
b = bs.newnode('locator',attrs={'shape':'box','position':(-12.1,0,.1087926362),
|
b = bs.newnode('locator', attrs={'shape': 'box', 'position': (-12.1, 0, .1087926362),
|
||||||
'color':(0,0,5),'opacity':1,'draw_beauty':True,'additive':False,'size':[2.5,0.1,12.8]})
|
'color': (0, 0, 5), 'opacity': 1, 'draw_beauty': True, 'additive': False, 'size': [2.5, 0.1, 12.8]})
|
||||||
|
|
||||||
def on_begin(self) -> None:
|
def on_begin(self) -> None:
|
||||||
# self._has_begun = False
|
# self._has_begun = False
|
||||||
|
|
@ -132,21 +134,22 @@ class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
self._scoreRegions = []
|
self._scoreRegions = []
|
||||||
defs = bs.getactivity().map.defs
|
defs = bs.getactivity().map.defs
|
||||||
self._scoreRegions.append(bs.NodeActor(bs.newnode('region',
|
self._scoreRegions.append(bs.NodeActor(bs.newnode('region',
|
||||||
attrs={'position':defs.boxes['goal1'][0:3],
|
attrs={'position': defs.boxes['goal1'][0:3],
|
||||||
'scale':defs.boxes['goal1'][6:9],
|
'scale': defs.boxes['goal1'][6:9],
|
||||||
'type': 'box',
|
'type': 'box',
|
||||||
'materials':(self._scoreRegionMaterial,)})))
|
'materials': (self._scoreRegionMaterial,)})))
|
||||||
self.mines = []
|
self.mines = []
|
||||||
self.spawnMines()
|
self.spawnMines()
|
||||||
bs.timer(0.8 if self.slow_motion else 1.7,self.start)
|
bs.timer(0.8 if self.slow_motion else 1.7, self.start)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
# self._has_begun = True
|
# self._has_begun = True
|
||||||
self._show_info()
|
self._show_info()
|
||||||
bs.timer(random.randrange(3,7),self.doRandomLighting)
|
bs.timer(random.randrange(3, 7), self.doRandomLighting)
|
||||||
if not self._epic_mode:
|
if not self._epic_mode:
|
||||||
setmusic(bs.MusicType.SCARY)
|
setmusic(bs.MusicType.SCARY)
|
||||||
animate_array(bs.getactivity().globalsnode,'tint',3,{0:(0.5,0.5,0.5),2:(0.2,0.2,0.2)})
|
animate_array(bs.getactivity().globalsnode, 'tint', 3,
|
||||||
|
{0: (0.5, 0.5, 0.5), 2: (0.2, 0.2, 0.2)})
|
||||||
|
|
||||||
for p in self.players:
|
for p in self.players:
|
||||||
self.doPlayer(p)
|
self.doPlayer(p)
|
||||||
|
|
@ -157,10 +160,10 @@ class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
else:
|
else:
|
||||||
self.doPlayer(player)
|
self.doPlayer(player)
|
||||||
|
|
||||||
def doPlayer(self,player):
|
def doPlayer(self, player):
|
||||||
pos = (-12.4,1,random.randrange(-5,5))
|
pos = (-12.4, 1, random.randrange(-5, 5))
|
||||||
player = self.spawn_player_spaz(player,pos)
|
player = self.spawn_player_spaz(player, pos)
|
||||||
player.connect_controls_to_player(enable_punch=False,enable_bomb=False)
|
player.connect_controls_to_player(enable_punch=False, enable_bomb=False)
|
||||||
player.node.is_area_of_interest = self._center_of_interest
|
player.node.is_area_of_interest = self._center_of_interest
|
||||||
|
|
||||||
def _show_info(self) -> None:
|
def _show_info(self) -> None:
|
||||||
|
|
@ -176,52 +179,53 @@ class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
self._scoreboard.set_team_value(team, team.score, self._score_to_win)
|
self._scoreboard.set_team_value(team, team.score, self._score_to_win)
|
||||||
|
|
||||||
def doRandomLighting(self):
|
def doRandomLighting(self):
|
||||||
bs.timer(random.randrange(3,7),self.doRandomLighting)
|
bs.timer(random.randrange(3, 7), self.doRandomLighting)
|
||||||
if self.isUpdatingMines: return
|
if self.isUpdatingMines:
|
||||||
|
return
|
||||||
|
|
||||||
delay = 0
|
delay = 0
|
||||||
for mine in self.mines:
|
for mine in self.mines:
|
||||||
if mine.node.exists():
|
if mine.node.exists():
|
||||||
pos = mine.node.position
|
pos = mine.node.position
|
||||||
bs.timer(delay,babase.Call(self.do_light,pos))
|
bs.timer(delay, babase.Call(self.do_light, pos))
|
||||||
delay += 0.005 if self._epic_mode else 0.01
|
delay += 0.005 if self._epic_mode else 0.01
|
||||||
|
|
||||||
def do_light(self,pos):
|
def do_light(self, pos):
|
||||||
light = bs.newnode('light',attrs={
|
light = bs.newnode('light', attrs={
|
||||||
'position': pos,
|
'position': pos,
|
||||||
'volume_intensity_scale': 1.0,
|
'volume_intensity_scale': 1.0,
|
||||||
'radius':0.1,
|
'radius': 0.1,
|
||||||
'color': (1,0,0)
|
'color': (1, 0, 0)
|
||||||
})
|
})
|
||||||
bs.animate(light, 'intensity', { 0: 2.0, 3.0: 0.0})
|
bs.animate(light, 'intensity', {0: 2.0, 3.0: 0.0})
|
||||||
bs.timer(3.0, light.delete)
|
bs.timer(3.0, light.delete)
|
||||||
|
|
||||||
def spawnMines(self):
|
def spawnMines(self):
|
||||||
delay = 0
|
delay = 0
|
||||||
h_range = [10,8,6,4,2,0,-2,-4,-6,-8,-10]
|
h_range = [10, 8, 6, 4, 2, 0, -2, -4, -6, -8, -10]
|
||||||
for h in h_range:
|
for h in h_range:
|
||||||
for i in range(random.randint(3,4)):
|
for i in range(random.randint(3, 4)):
|
||||||
x = h+random.random()
|
x = h+random.random()
|
||||||
y = random.randrange(-5,6)+(random.random())
|
y = random.randrange(-5, 6)+(random.random())
|
||||||
pos = (x,1,y)
|
pos = (x, 1, y)
|
||||||
bs.timer(delay,babase.Call(self.doMine,pos))
|
bs.timer(delay, babase.Call(self.doMine, pos))
|
||||||
delay += 0.015 if self._epic_mode else 0.04
|
delay += 0.015 if self._epic_mode else 0.04
|
||||||
bs.timer(5.0,self.stopUpdateMines)
|
bs.timer(5.0, self.stopUpdateMines)
|
||||||
|
|
||||||
def stopUpdateMines(self):
|
def stopUpdateMines(self):
|
||||||
self.isUpdatingMines = False
|
self.isUpdatingMines = False
|
||||||
|
|
||||||
def updateMines(self):
|
def updateMines(self):
|
||||||
if self.isUpdatingMines: return
|
if self.isUpdatingMines:
|
||||||
|
return
|
||||||
self.isUpdatingMines = True
|
self.isUpdatingMines = True
|
||||||
for m in self.mines:
|
for m in self.mines:
|
||||||
m.node.delete()
|
m.node.delete()
|
||||||
self.mines = []
|
self.mines = []
|
||||||
self.spawnMines()
|
self.spawnMines()
|
||||||
|
|
||||||
|
def doMine(self, pos):
|
||||||
def doMine(self,pos):
|
b = bomb.Bomb(position=pos, bomb_type='land_mine').autoretain()
|
||||||
b = bomb.Bomb(position=pos,bomb_type='land_mine').autoretain()
|
|
||||||
b.add_explode_callback(self._on_bomb_exploded)
|
b.add_explode_callback(self._on_bomb_exploded)
|
||||||
b.arm()
|
b.arm()
|
||||||
self.mines.append(b)
|
self.mines.append(b)
|
||||||
|
|
@ -229,8 +233,8 @@ class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
def _on_bomb_exploded(self, bomb: Bomb, blast: Blast) -> None:
|
def _on_bomb_exploded(self, bomb: Bomb, blast: Blast) -> None:
|
||||||
assert blast.node
|
assert blast.node
|
||||||
p = blast.node.position
|
p = blast.node.position
|
||||||
pos = (p[0],p[1]+1,p[2])
|
pos = (p[0], p[1]+1, p[2])
|
||||||
bs.timer(0.5,babase.Call(self.doMine,pos))
|
bs.timer(0.5, babase.Call(self.doMine, pos))
|
||||||
|
|
||||||
def _onPlayerScores(self):
|
def _onPlayerScores(self):
|
||||||
player: Optional[Player]
|
player: Optional[Player]
|
||||||
|
|
@ -252,19 +256,20 @@ class DarkFieldsGame(bs.TeamGameActivity[Player, Team]):
|
||||||
self._scoreSound.play()
|
self._scoreSound.play()
|
||||||
pos = player.actor.node.position
|
pos = player.actor.node.position
|
||||||
|
|
||||||
animate_array(bs.getactivity().globalsnode,'tint',3,{0:(0.5,0.5,0.5),2.8:(0.2,0.2,0.2)})
|
animate_array(bs.getactivity().globalsnode, 'tint', 3, {
|
||||||
|
0: (0.5, 0.5, 0.5), 2.8: (0.2, 0.2, 0.2)})
|
||||||
self._update_scoreboard()
|
self._update_scoreboard()
|
||||||
|
|
||||||
light = bs.newnode('light',
|
light = bs.newnode('light',
|
||||||
attrs={
|
attrs={
|
||||||
'position': pos,
|
'position': pos,
|
||||||
'radius': 0.5,
|
'radius': 0.5,
|
||||||
'color': (1, 0, 0)
|
'color': (1, 0, 0)
|
||||||
})
|
})
|
||||||
bs.animate(light, 'intensity', {0.0: 0, 0.1: 1, 0.5: 0}, loop=False)
|
bs.animate(light, 'intensity', {0.0: 0, 0.1: 1, 0.5: 0}, loop=False)
|
||||||
bs.timer(1.0, light.delete)
|
bs.timer(1.0, light.delete)
|
||||||
|
|
||||||
player.actor.handlemessage(bs.DieMessage( how=bs.DeathType.REACHED_GOAL))
|
player.actor.handlemessage(bs.DieMessage(how=bs.DeathType.REACHED_GOAL))
|
||||||
self.updateMines()
|
self.updateMines()
|
||||||
|
|
||||||
if any(team.score >= self._score_to_win for team in self.teams):
|
if any(team.score >= self._score_to_win for team in self.teams):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Ported to api 8 by brostos using baport.(https://github.com/bombsquad-community/baport)
|
# Ported to api 8 by brostos using baport.(https://github.com/bombsquad-community/baport)
|
||||||
## Made by MattZ45986 on GitHub
|
# Made by MattZ45986 on GitHub
|
||||||
## Ported by: Freaku / @[Just] Freak#4999
|
# Ported by: Freaku / @[Just] Freak#4999
|
||||||
|
|
||||||
|
|
||||||
import babase
|
import babase
|
||||||
|
|
@ -9,26 +9,27 @@ import bascenev1 as bs
|
||||||
from bascenev1lib.game.elimination import EliminationGame
|
from bascenev1lib.game.elimination import EliminationGame
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ba_meta require api 8
|
# ba_meta require api 8
|
||||||
# ba_meta export bascenev1.GameActivity
|
# ba_meta export bascenev1.GameActivity
|
||||||
class GFGame(EliminationGame):
|
class GFGame(EliminationGame):
|
||||||
name = 'Gravity Falls'
|
name = 'Gravity Falls'
|
||||||
|
|
||||||
def spawn_player(self, player):
|
def spawn_player(self, player):
|
||||||
actor = self.spawn_player_spaz(player, (0,5,0))
|
actor = self.spawn_player_spaz(player, (0, 5, 0))
|
||||||
if not self._solo_mode:
|
if not self._solo_mode:
|
||||||
bs.timer(0.3, babase.Call(self._print_lives, player))
|
bs.timer(0.3, babase.Call(self._print_lives, player))
|
||||||
|
|
||||||
# If we have any icons, update their state.
|
# If we have any icons, update their state.
|
||||||
for icon in player.icons:
|
for icon in player.icons:
|
||||||
icon.handle_player_spawned()
|
icon.handle_player_spawned()
|
||||||
bs.timer(1,babase.Call(self.raise_player, player))
|
bs.timer(1, babase.Call(self.raise_player, player))
|
||||||
return actor
|
return actor
|
||||||
|
|
||||||
def raise_player(self, player):
|
def raise_player(self, player):
|
||||||
if player.is_alive():
|
if player.is_alive():
|
||||||
try:
|
try:
|
||||||
player.actor.node.handlemessage("impulse",player.actor.node.position[0],player.actor.node.position[1]+.5,player.actor.node.position[2],0,5,0, 3,10,0,0, 0,5,0)
|
player.actor.node.handlemessage(
|
||||||
except: pass
|
"impulse", player.actor.node.position[0], player.actor.node.position[1]+.5, player.actor.node.position[2], 0, 5, 0, 3, 10, 0, 0, 0, 5, 0)
|
||||||
bs.timer(0.05,babase.Call(self.raise_player,player))
|
except:
|
||||||
|
pass
|
||||||
|
bs.timer(0.05, babase.Call(self.raise_player, player))
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Ported to api 8 by brostos using baport.(https://github.com/bombsquad-community/baport)
|
# Ported to api 8 by brostos using baport.(https://github.com/bombsquad-community/baport)
|
||||||
# ba_meta require api 8
|
# ba_meta require api 8
|
||||||
|
|
||||||
#Copy pasted from ExplodoRun by Blitz,just edited Bots and map 😝
|
# Copy pasted from ExplodoRun by Blitz,just edited Bots and map 😝
|
||||||
|
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
@ -19,20 +19,24 @@ if TYPE_CHECKING:
|
||||||
from typing import Any, Type, Dict, List, Optional
|
from typing import Any, Type, Dict, List, Optional
|
||||||
|
|
||||||
## MoreMinigames.py support ##
|
## MoreMinigames.py support ##
|
||||||
|
|
||||||
|
|
||||||
def ba_get_api_version():
|
def ba_get_api_version():
|
||||||
return 6
|
return 6
|
||||||
|
|
||||||
|
|
||||||
def ba_get_levels():
|
def ba_get_levels():
|
||||||
return [babase._level.Level(
|
return [babase._level.Level(
|
||||||
'Infinite Ninjas',gametype=InfiniteNinjasGame,
|
'Infinite Ninjas', gametype=InfiniteNinjasGame,
|
||||||
settings={},
|
settings={},
|
||||||
preview_texture_name = 'footballStadiumPreview'),
|
preview_texture_name='footballStadiumPreview'),
|
||||||
babase._level.Level(
|
babase._level.Level(
|
||||||
'Epic Infinite Ninjas',gametype=InfiniteNinjasGame,
|
'Epic Infinite Ninjas', gametype=InfiniteNinjasGame,
|
||||||
settings={'Epic Mode':True},
|
settings={'Epic Mode': True},
|
||||||
preview_texture_name = 'footballStadiumPreview')]
|
preview_texture_name='footballStadiumPreview')]
|
||||||
## MoreMinigames.py support ##
|
## MoreMinigames.py support ##
|
||||||
|
|
||||||
|
|
||||||
class Player(bs.Player['Team']):
|
class Player(bs.Player['Team']):
|
||||||
"""Our player type for this game."""
|
"""Our player type for this game."""
|
||||||
|
|
||||||
|
|
@ -41,6 +45,8 @@ class Team(bs.Team[Player]):
|
||||||
"""Our team type for this game."""
|
"""Our team type for this game."""
|
||||||
|
|
||||||
# ba_meta export bascenev1.GameActivity
|
# ba_meta export bascenev1.GameActivity
|
||||||
|
|
||||||
|
|
||||||
class InfiniteNinjasGame(bs.TeamGameActivity[Player, Team]):
|
class InfiniteNinjasGame(bs.TeamGameActivity[Player, Team]):
|
||||||
name = "Infinite Ninjas"
|
name = "Infinite Ninjas"
|
||||||
description = "How long can you survive from Ninjas??"
|
description = "How long can you survive from Ninjas??"
|
||||||
|
|
@ -50,7 +56,7 @@ class InfiniteNinjasGame(bs.TeamGameActivity[Player, Team]):
|
||||||
lower_is_better=False)
|
lower_is_better=False)
|
||||||
default_music = bs.MusicType.TO_THE_DEATH
|
default_music = bs.MusicType.TO_THE_DEATH
|
||||||
|
|
||||||
def __init__(self, settings:dict):
|
def __init__(self, settings: dict):
|
||||||
settings['map'] = "Football Stadium"
|
settings['map'] = "Football Stadium"
|
||||||
self._epic_mode = settings.get('Epic Mode', False)
|
self._epic_mode = settings.get('Epic Mode', False)
|
||||||
if self._epic_mode:
|
if self._epic_mode:
|
||||||
|
|
@ -68,20 +74,21 @@ class InfiniteNinjasGame(bs.TeamGameActivity[Player, Team]):
|
||||||
self._timer = OnScreenTimer()
|
self._timer = OnScreenTimer()
|
||||||
bs.timer(2.5, self._timer.start)
|
bs.timer(2.5, self._timer.start)
|
||||||
|
|
||||||
#Bots Hehe
|
# Bots Hehe
|
||||||
bs.timer(2.5,self.street)
|
bs.timer(2.5, self.street)
|
||||||
|
|
||||||
def street(self):
|
def street(self):
|
||||||
for a in range(self.wave):
|
for a in range(self.wave):
|
||||||
p1 = random.choice([-5,-2.5,0,2.5,5])
|
p1 = random.choice([-5, -2.5, 0, 2.5, 5])
|
||||||
p3 = random.choice([-4.5,-4.14,-5,-3])
|
p3 = random.choice([-4.5, -4.14, -5, -3])
|
||||||
time = random.choice([1,1.5,2.5,2])
|
time = random.choice([1, 1.5, 2.5, 2])
|
||||||
self._bots.spawn_bot(ChargerBot, pos=(p1,0.4,p3),spawn_time = time)
|
self._bots.spawn_bot(ChargerBot, pos=(p1, 0.4, p3), spawn_time=time)
|
||||||
self.wave += 1
|
self.wave += 1
|
||||||
|
|
||||||
def botrespawn(self):
|
def botrespawn(self):
|
||||||
if not self._bots.have_living_bots():
|
if not self._bots.have_living_bots():
|
||||||
self.street()
|
self.street()
|
||||||
|
|
||||||
def handlemessage(self, msg: Any) -> Any:
|
def handlemessage(self, msg: Any) -> Any:
|
||||||
|
|
||||||
# A player has died.
|
# A player has died.
|
||||||
|
|
@ -130,5 +137,3 @@ class InfiniteNinjasGame(bs.TeamGameActivity[Player, Team]):
|
||||||
|
|
||||||
# Ends the activity.
|
# Ends the activity.
|
||||||
self.end(results)
|
self.end(results)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -17,15 +17,18 @@ from bascenev1lib.actor.onscreentimer import OnScreenTimer
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from typing import Any, Type, Dict, List, Optional
|
from typing import Any, Type, Dict, List, Optional
|
||||||
|
|
||||||
|
|
||||||
def ba_get_api_version():
|
def ba_get_api_version():
|
||||||
return 6
|
return 6
|
||||||
|
|
||||||
|
|
||||||
def ba_get_levels():
|
def ba_get_levels():
|
||||||
return [babase._level.Level(
|
return [babase._level.Level(
|
||||||
'Lame Fight',
|
'Lame Fight',
|
||||||
gametype=LameFightGame,
|
gametype=LameFightGame,
|
||||||
settings={},
|
settings={},
|
||||||
preview_texture_name='courtyardPreview')]
|
preview_texture_name='courtyardPreview')]
|
||||||
|
|
||||||
|
|
||||||
class Player(bs.Player['Team']):
|
class Player(bs.Player['Team']):
|
||||||
"""Our player type for this game."""
|
"""Our player type for this game."""
|
||||||
|
|
@ -35,6 +38,8 @@ class Team(bs.Team[Player]):
|
||||||
"""Our team type for this game."""
|
"""Our team type for this game."""
|
||||||
|
|
||||||
# ba_meta export bascenev1.GameActivity
|
# ba_meta export bascenev1.GameActivity
|
||||||
|
|
||||||
|
|
||||||
class LameFightGame(bs.TeamGameActivity[Player, Team]):
|
class LameFightGame(bs.TeamGameActivity[Player, Team]):
|
||||||
name = "Lame Fight"
|
name = "Lame Fight"
|
||||||
description = "Save World With Super Powers"
|
description = "Save World With Super Powers"
|
||||||
|
|
@ -44,7 +49,7 @@ class LameFightGame(bs.TeamGameActivity[Player, Team]):
|
||||||
lower_is_better=True)
|
lower_is_better=True)
|
||||||
default_music = bs.MusicType.TO_THE_DEATH
|
default_music = bs.MusicType.TO_THE_DEATH
|
||||||
|
|
||||||
def __init__(self, settings:dict):
|
def __init__(self, settings: dict):
|
||||||
settings['map'] = "Courtyard"
|
settings['map'] = "Courtyard"
|
||||||
super().__init__(settings)
|
super().__init__(settings)
|
||||||
self._timer: Optional[OnScreenTimer] = None
|
self._timer: Optional[OnScreenTimer] = None
|
||||||
|
|
@ -58,39 +63,46 @@ class LameFightGame(bs.TeamGameActivity[Player, Team]):
|
||||||
self._timer = OnScreenTimer()
|
self._timer = OnScreenTimer()
|
||||||
bs.timer(4.0, self._timer.start)
|
bs.timer(4.0, self._timer.start)
|
||||||
|
|
||||||
#Bots Hehe
|
# Bots Hehe
|
||||||
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(3,3,-2),spawn_time = 3.0))
|
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(3, 3, -2), spawn_time=3.0))
|
||||||
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(-3,3,-2),spawn_time = 3.0))
|
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(-3, 3, -2), spawn_time=3.0))
|
||||||
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(5,3,-2),spawn_time = 3.0))
|
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(5, 3, -2), spawn_time=3.0))
|
||||||
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(-5,3,-2),spawn_time = 3.0))
|
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(-5, 3, -2), spawn_time=3.0))
|
||||||
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(0,3,1),spawn_time = 3.0))
|
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(0, 3, 1), spawn_time=3.0))
|
||||||
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(0,3,-5),spawn_time = 3.0))
|
bs.timer(1.0, lambda: self._bots.spawn_bot(ChargerBot, pos=(0, 3, -5), spawn_time=3.0))
|
||||||
bs.timer(9.0, lambda: self._bots.spawn_bot(BomberBotProShielded, pos=(-7,5,-7.5),spawn_time = 3.0))
|
bs.timer(9.0, lambda: self._bots.spawn_bot(
|
||||||
bs.timer(9.0, lambda: self._bots.spawn_bot(BomberBotProShielded, pos=(7,5,-7.5),spawn_time = 3.0))
|
BomberBotProShielded, pos=(-7, 5, -7.5), spawn_time=3.0))
|
||||||
bs.timer(9.0, lambda: self._bots.spawn_bot(BomberBotProShielded, pos=(7,5,1.5),spawn_time = 3.0))
|
bs.timer(9.0, lambda: self._bots.spawn_bot(
|
||||||
bs.timer(9.0, lambda: self._bots.spawn_bot(BomberBotProShielded, pos=(-7,5,1.5),spawn_time = 3.0))
|
BomberBotProShielded, pos=(7, 5, -7.5), spawn_time=3.0))
|
||||||
bs.timer(12.0, lambda: self._bots.spawn_bot(TriggerBotProShielded, pos=(-1,7,-8),spawn_time = 3.0))
|
bs.timer(9.0, lambda: self._bots.spawn_bot(
|
||||||
bs.timer(12.0, lambda: self._bots.spawn_bot(TriggerBotProShielded, pos=(1,7,-8),spawn_time = 3.0))
|
BomberBotProShielded, pos=(7, 5, 1.5), spawn_time=3.0))
|
||||||
bs.timer(15.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(0,3,-5),spawn_time = 3.0))
|
bs.timer(9.0, lambda: self._bots.spawn_bot(
|
||||||
bs.timer(20.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(0,3,1),spawn_time = 3.0))
|
BomberBotProShielded, pos=(-7, 5, 1.5), spawn_time=3.0))
|
||||||
bs.timer(20.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(-5,3,-2),spawn_time = 3.0))
|
bs.timer(12.0, lambda: self._bots.spawn_bot(
|
||||||
bs.timer(20.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(5,3,-2),spawn_time = 3.0))
|
TriggerBotProShielded, pos=(-1, 7, -8), spawn_time=3.0))
|
||||||
bs.timer(30,self.street)
|
bs.timer(12.0, lambda: self._bots.spawn_bot(
|
||||||
|
TriggerBotProShielded, pos=(1, 7, -8), spawn_time=3.0))
|
||||||
|
bs.timer(15.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(0, 3, -5), spawn_time=3.0))
|
||||||
|
bs.timer(20.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(0, 3, 1), spawn_time=3.0))
|
||||||
|
bs.timer(20.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(-5, 3, -2), spawn_time=3.0))
|
||||||
|
bs.timer(20.0, lambda: self._bots.spawn_bot(ExplodeyBot, pos=(5, 3, -2), spawn_time=3.0))
|
||||||
|
bs.timer(30, self.street)
|
||||||
|
|
||||||
def street(self):
|
def street(self):
|
||||||
bs.broadcastmessage("Lame Guys Are Here!",color = (1,0,0))
|
bs.broadcastmessage("Lame Guys Are Here!", color=(1, 0, 0))
|
||||||
for a in range(-1,2):
|
for a in range(-1, 2):
|
||||||
for b in range(-3,0):
|
for b in range(-3, 0):
|
||||||
self._bots.spawn_bot(BrawlerBotProShielded, pos=(a,3,b),spawn_time = 3.0)
|
self._bots.spawn_bot(BrawlerBotProShielded, pos=(a, 3, b), spawn_time=3.0)
|
||||||
|
|
||||||
def spawn_player(self, player: Player) -> bs.Actor:
|
def spawn_player(self, player: Player) -> bs.Actor:
|
||||||
spawn_center = (0, 3, -2)
|
spawn_center = (0, 3, -2)
|
||||||
pos = (spawn_center[0] + random.uniform(-1.5, 1.5), spawn_center[1],
|
pos = (spawn_center[0] + random.uniform(-1.5, 1.5), spawn_center[1],
|
||||||
spawn_center[2] + random.uniform(-1.5, 1.5))
|
spawn_center[2] + random.uniform(-1.5, 1.5))
|
||||||
spaz = self.spawn_player_spaz(player,position = pos)
|
spaz = self.spawn_player_spaz(player, position=pos)
|
||||||
p = ["Bigger Blast","Stronger Punch","Shield","Speed"]
|
p = ["Bigger Blast", "Stronger Punch", "Shield", "Speed"]
|
||||||
Power = random.choice(p)
|
Power = random.choice(p)
|
||||||
spaz.bomb_type = random.choice(["normal","sticky","ice","impact","normal","ice","sticky"])
|
spaz.bomb_type = random.choice(
|
||||||
|
["normal", "sticky", "ice", "impact", "normal", "ice", "sticky"])
|
||||||
bs.broadcastmessage(f"Now You Have {Power}")
|
bs.broadcastmessage(f"Now You Have {Power}")
|
||||||
if Power == p[0]:
|
if Power == p[0]:
|
||||||
spaz.bomb_count = 3
|
spaz.bomb_count = 3
|
||||||
|
|
@ -103,10 +115,12 @@ class LameFightGame(bs.TeamGameActivity[Player, Team]):
|
||||||
if Power == p[3]:
|
if Power == p[3]:
|
||||||
spaz.node.hockey = True
|
spaz.node.hockey = True
|
||||||
return spaz
|
return spaz
|
||||||
|
|
||||||
def _check_if_won(self) -> None:
|
def _check_if_won(self) -> None:
|
||||||
if not self._bots.have_living_bots():
|
if not self._bots.have_living_bots():
|
||||||
self._won = True
|
self._won = True
|
||||||
self.end_game()
|
self.end_game()
|
||||||
|
|
||||||
def handlemessage(self, msg: Any) -> Any:
|
def handlemessage(self, msg: Any) -> Any:
|
||||||
|
|
||||||
# A player has died.
|
# A player has died.
|
||||||
|
|
@ -154,5 +168,3 @@ class LameFightGame(bs.TeamGameActivity[Player, Team]):
|
||||||
|
|
||||||
# Ends the activity.
|
# Ends the activity.
|
||||||
self.end(results)
|
self.end(results)
|
||||||
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue