From 9587d6b4d4389f6108e2be0ff5c0f4a495ff842d Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 25 Sep 2024 15:30:09 +0200 Subject: player class decoupled from character id --- server/src/entity/bot.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'server/src/entity/bot.rs') diff --git a/server/src/entity/bot.rs b/server/src/entity/bot.rs index cd505c4f..fe4d711f 100644 --- a/server/src/entity/bot.rs +++ b/server/src/entity/bot.rs @@ -18,7 +18,7 @@ use super::{Entity, EntityContext}; use anyhow::Result; use hurrycurry_bot::{BotAlgo, DynBotAlgo}; -use hurrycurry_protocol::{PacketS, PlayerID}; +use hurrycurry_protocol::{PacketS, PlayerClass, PlayerID}; use log::info; use rand::random; use std::any::Any; @@ -27,19 +27,19 @@ pub type DynBotDriver = BotDriver; pub struct BotDriver { algo: T, - join_data: Option<(String, i32)>, + join_data: Option<(String, i32, PlayerClass)>, id: PlayerID, interacting: bool, left: bool, } impl BotDriver { - pub fn new(name: String, character: i32, algo: T) -> Self { + pub fn new(name: String, character: i32, class: PlayerClass, algo: T) -> Self { Self { algo, id: PlayerID(0), interacting: false, - join_data: Some((name, character)), + join_data: Some((name, character, class)), left: false, } } @@ -49,13 +49,14 @@ impl Entity for BotDriver { self.left } fn tick(&mut self, c: EntityContext<'_>) -> Result<()> { - if let Some((name, character)) = self.join_data.take() { + if let Some((name, character, class)) = self.join_data.take() { self.id = PlayerID(random()); // TODO bad code, can collide info!("spawn {:?} ({name:?}, {character})", self.id); c.packet_in.push_back(PacketS::Join { name, character, id: Some(self.id), + class, }) } -- cgit v1.2.3-70-g09d2