forked from Cryz/battle_royale_sim
spawn random items, and try to put on map, but i still need to investigate why items are not correctly rendered on map
This commit is contained in:
25
debug.py
25
debug.py
@@ -3,22 +3,39 @@ import random as _rand
|
|||||||
import main as _main
|
import main as _main
|
||||||
from utils import logs as _logs
|
from utils import logs as _logs
|
||||||
from bot_libs import syms as _syms
|
from bot_libs import syms as _syms
|
||||||
|
from entities.items import syms as _isyms
|
||||||
|
|
||||||
|
|
||||||
def _get_random_items():
|
def _extract_random_number_of_items(Arena):
|
||||||
|
players= Arena.get_players()
|
||||||
|
nplayers= len(players)
|
||||||
|
min_extraction= max(nplayers - 5, 3)
|
||||||
|
max_extraction= min(nplayers - 1, 8)
|
||||||
|
nitems= _rand.randint(min_extraction, max_extraction)
|
||||||
|
return nitems
|
||||||
|
|
||||||
|
def _get_random_items(Arena):
|
||||||
items= []
|
items= []
|
||||||
|
nitems= _extract_random_number_of_items(Arena)
|
||||||
|
for n in range(nitems):
|
||||||
|
itype= _rand.sample(_isyms.ITEMS_LIST, 1)[0]
|
||||||
|
items.append(itype)
|
||||||
return items
|
return items
|
||||||
|
|
||||||
def _debug_data():
|
def _debug_data():
|
||||||
players= _syms.COLORS_NAMES
|
players= _syms.COLORS_NAMES
|
||||||
|
nelected_players= _rand.randint(6, 12)
|
||||||
|
elected_players= _rand.sample(players, nelected_players)
|
||||||
|
|
||||||
Arena= _main.init_arena()
|
Arena= _main.init_arena()
|
||||||
for player in players:
|
for player in elected_players:
|
||||||
Arena.add_player(player)
|
Arena.add_player(player)
|
||||||
|
_logs.log_debug('Players: {elected_players}')
|
||||||
|
|
||||||
items= _get_random_items()
|
items= _get_random_items(Arena)
|
||||||
for item in items:
|
for item in items:
|
||||||
Arena.add_item(item)
|
Arena.add_item(item)
|
||||||
|
_logs.log_info('Items: {items}')
|
||||||
return Arena
|
return Arena
|
||||||
|
|
||||||
def _end_game_debug(alive_players, day):
|
def _end_game_debug(alive_players, day):
|
||||||
@@ -97,7 +114,7 @@ def init_debug_simulation():
|
|||||||
_logs.log_debug('#################')
|
_logs.log_debug('#################')
|
||||||
_logs.log_debug('#################')
|
_logs.log_debug('#################')
|
||||||
_logs.log_debug('#################')
|
_logs.log_debug('#################')
|
||||||
_time.sleep(0.3)
|
_time.sleep(0.7)
|
||||||
|
|
||||||
def init_debug_attack_loop():
|
def init_debug_attack_loop():
|
||||||
Arena= _debug_data()
|
Arena= _debug_data()
|
||||||
|
|||||||
@@ -116,10 +116,10 @@ class BrSimArena():
|
|||||||
self.players.append(player)
|
self.players.append(player)
|
||||||
self.Map.add_player_to_map(player)
|
self.Map.add_player_to_map(player)
|
||||||
|
|
||||||
def add_item(self, itype):
|
def add_item(self, item_id):
|
||||||
weapon= _items.BrSimItem(itype)
|
Item= _items.BrSimItem(item_id)
|
||||||
self.items.append(weapon)
|
self.items.append(Item)
|
||||||
self.Map.add_item_to_map(item)
|
self.Map.add_item_to_map(Item)
|
||||||
|
|
||||||
def get_players(self):
|
def get_players(self):
|
||||||
return self.players
|
return self.players
|
||||||
|
|||||||
@@ -58,14 +58,9 @@ class BrSimMap():
|
|||||||
for player in self.players:
|
for player in self.players:
|
||||||
p_coord_x, p_coord_y= player.get_coordinates()
|
p_coord_x, p_coord_y= player.get_coordinates()
|
||||||
self.game_map[p_coord_y][p_coord_x]= player
|
self.game_map[p_coord_y][p_coord_x]= player
|
||||||
#if not player.is_alive(): self.game_map[p_coord_y][p_coord_x]= self.dead_player_sym
|
|
||||||
#elif player.player_gender_is_male(): self.game_map[p_coord_y][p_coord_x]= self.player_male_sym
|
|
||||||
#elif player.player_gender_is_female(): self.game_map[p_coord_y][p_coord_x]= self.player_female_sym
|
|
||||||
#else: self.game_map[p_coord_y][p_coord_x]= self.player_nonbinary_sym
|
|
||||||
for item in self.items:
|
for item in self.items:
|
||||||
i_coord_x, i_coord_y= item.get_coordinates()
|
i_coord_x, i_coord_y= item.get_coordinates()
|
||||||
self.game_map[p_coord_y][p_coord_x]= item
|
self.game_map[p_coord_y][p_coord_x]= item
|
||||||
#self.game_map[i_coord_y][i_coord_x]= self.item_sym
|
|
||||||
|
|
||||||
def _put_resource_on_map(self, target):
|
def _put_resource_on_map(self, target):
|
||||||
#x= _random.randint(1, self.world_width -2) # from 1 to width-2 because 1 cell is occupied by the mountain
|
#x= _random.randint(1, self.world_width -2) # from 1 to width-2 because 1 cell is occupied by the mountain
|
||||||
|
|||||||
@@ -1,28 +1,35 @@
|
|||||||
import random as _random
|
import random as _random
|
||||||
from entities import resource as _resource
|
from entities import resource as _resource
|
||||||
|
from entities.items import syms as _isyms
|
||||||
|
|
||||||
class BrSimItem(_resource.BrSimResource):
|
class BrSimItem(_resource.BrSimResource):
|
||||||
|
#XXX i don't know yet if we need to call this clas
|
||||||
|
# or we need to have subclasses that inherit this one
|
||||||
|
# for example class Weapon and class Medikit (or something else)
|
||||||
|
# this decision would change everything from Arena init
|
||||||
|
|
||||||
# test
|
def __init__(self, item_id):
|
||||||
def __init__(self, item):
|
self.item= _isyms.ITEMS[item_id]
|
||||||
self.coord_x= 0
|
|
||||||
self.coord_y= 0
|
|
||||||
self.item= item
|
|
||||||
|
|
||||||
def is_item(self):
|
def is_item(self):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def get_name(self):
|
def get_data(self):
|
||||||
return self.name
|
return self.item
|
||||||
|
|
||||||
def get_item_type(self):
|
def get_name(self):
|
||||||
return self.item_type
|
idata= self.get_data()
|
||||||
|
return idata['name']
|
||||||
|
|
||||||
def get_weight(self):
|
def get_weight(self):
|
||||||
return self.weight
|
idata= self.get_data()
|
||||||
|
return idata['weight']
|
||||||
|
|
||||||
def is_weapon(self):
|
def is_weapon(self):
|
||||||
return False
|
idata= self.get_data()
|
||||||
|
return idata['is_weapon']
|
||||||
|
|
||||||
def is_cure(self):
|
def is_cure(self):
|
||||||
return False
|
#XXX not sure about it
|
||||||
|
# maybe we could have more item type, like foods, drink, poison...
|
||||||
|
return not self.is_weapon()
|
||||||
|
|||||||
@@ -35,3 +35,5 @@ ITEMS= {
|
|||||||
'range': FAR_RANGE,
|
'range': FAR_RANGE,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ITEMS_LIST= list(ITEMS.keys())
|
||||||
|
|||||||
Reference in New Issue
Block a user