room notes, etc #139
| @ -2,7 +2,7 @@ use serde::{Serialize, Deserialize}; | ||||
| 
 | ||||
| 
 | ||||
| use crate::entity::character::{CharacterEntityId, SectionID}; | ||||
| use crate::ship::room::{Episode, Difficulty, RoomMode}; | ||||
| use crate::ship::room::{Episode, Difficulty}; | ||||
| 
 | ||||
| 
 | ||||
| #[derive(PartialEq, Eq, Copy, Clone, Debug, Hash, PartialOrd, Ord, Serialize, Deserialize)] | ||||
| @ -62,34 +62,6 @@ pub struct NewRoomEntity { | ||||
|     pub difficulty: Difficulty, | ||||
| } | ||||
| 
 | ||||
| impl NewRoomEntity { | ||||
|     fn new(name: String, section_id: SectionID, mode: RoomMode) -> NewRoomEntity { | ||||
|         NewRoomEntity { | ||||
|             name: name, | ||||
|             section_id: section_id, | ||||
|             mode: match mode { | ||||
|                 RoomMode::Single {..} => RoomEntityMode::Single, | ||||
|                 RoomMode::Multi {..} => RoomEntityMode::Multi, | ||||
|                 RoomMode::Challenge {..} => RoomEntityMode::Challenge, | ||||
|                 RoomMode::Battle {..} => RoomEntityMode::Battle, | ||||
|             }, | ||||
|             episode: match mode { | ||||
|                 RoomMode::Single { episode, .. } => episode, | ||||
|                 RoomMode::Multi { episode, ..} => episode , | ||||
|                 RoomMode::Challenge { episode, ..} => episode, | ||||
|                 RoomMode::Battle { episode, ..} => episode, | ||||
|             }, | ||||
|             difficulty: match mode { | ||||
|                 RoomMode::Single { difficulty, .. } => difficulty, | ||||
|                 RoomMode::Multi { difficulty, ..} => difficulty , | ||||
|                 RoomMode::Challenge {..} => Difficulty::Normal, | ||||
|                 RoomMode::Battle { difficulty, ..} => difficulty, | ||||
|             }, | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #[derive(Debug, Copy, Clone, Serialize)] | ||||
| pub enum RoomNote { | ||||
|     Create { | ||||
|  | ||||
| @ -909,7 +909,6 @@ where | ||||
| 
 | ||||
| 
 | ||||
| pub(super) fn convert_item_drop_to_floor_item<'a, EG, TR>( | ||||
|     character_id: CharacterEntityId, | ||||
|     item_drop: ItemDrop, | ||||
| ) -> impl Fn((ItemStateProxy, TR), ()) | ||||
|              -> BoxFuture<'a, Result<((ItemStateProxy, TR), FloorItem), anyhow::Error>> + Clone | ||||
|  | ||||
| @ -477,7 +477,7 @@ where | ||||
|     entity_gateway.with_transaction(move |transaction| async move { | ||||
|         let item_state_proxy = ItemStateProxy::new(item_state.clone()); | ||||
|         let ((item_state_proxy, transaction), floor_item) = ItemStateAction::default() | ||||
|             .act(actions::convert_item_drop_to_floor_item(character_id, item_drop)) | ||||
|             .act(actions::convert_item_drop_to_floor_item(item_drop)) | ||||
|             .act(actions::item_note_enemy_drop(character_id, room_id, monster_type)) | ||||
|             .act(actions::add_item_to_local_floor(character_id)) | ||||
|             .commit((item_state_proxy, transaction)) | ||||
| @ -501,7 +501,7 @@ where | ||||
|     entity_gateway.with_transaction(move |transaction| async move { | ||||
|         let item_state_proxy = ItemStateProxy::new(item_state.clone()); | ||||
|         let ((item_state_proxy, transaction), floor_item) = ItemStateAction::default() | ||||
|             .act(actions::convert_item_drop_to_floor_item(character_id, item_drop)) | ||||
|             .act(actions::convert_item_drop_to_floor_item(item_drop)) | ||||
|             .act(actions::item_note_box_drop(character_id, room_id)) | ||||
|             .act(actions::add_item_to_local_floor(character_id)) | ||||
|             .commit((item_state_proxy, transaction)) | ||||
|  | ||||
| @ -3,7 +3,7 @@ use futures::stream::{FuturesOrdered, StreamExt}; | ||||
| use libpso::packet::ship::*; | ||||
| use crate::common::serverstate::ClientId; | ||||
| use crate::ship::ship::{SendShipPacket, ShipError, Clients, ShipEvent}; | ||||
| use crate::ship::room::{Rooms, QuestCategoryType}; | ||||
| use crate::ship::room::Rooms; | ||||
| use crate::ship::map::enemy::RareMonsterAppearTable; | ||||
| use crate::ship::location::{ClientLocation}; | ||||
| use crate::ship::packet::builder::quest; | ||||
|  | ||||
| @ -9,7 +9,7 @@ use crate::common::serverstate::ClientId; | ||||
| use crate::common::leveltable::LEVEL_TABLE; | ||||
| use crate::entity::gateway::EntityGateway; | ||||
| use crate::entity::character::SectionID; | ||||
| use crate::entity::room::{RoomEntity, RoomEntityId, NewRoomEntity, RoomEntityMode, RoomNote}; | ||||
| use crate::entity::room::{NewRoomEntity, RoomEntityMode, RoomNote}; | ||||
| use crate::ship::drops::DropTable; | ||||
| use crate::ship::ship::{SendShipPacket, Clients, ShipEvent}; | ||||
| use crate::ship::room::{Rooms, Episode, Difficulty, RoomState, RoomMode}; | ||||
| @ -124,6 +124,7 @@ pub async fn room_name_request(id: ClientId, | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[allow(clippy::too_many_arguments)] | ||||
| pub async fn join_room<EG>(id: ClientId, | ||||
|                            pkt: MenuSelect, | ||||
|                            entity_gateway: &mut EG, | ||||
|  | ||||
| @ -1,6 +1,5 @@ | ||||
| use std::collections::HashMap; | ||||
| use std::convert::{From, Into, TryFrom, TryInto}; | ||||
| use std::path::PathBuf; | ||||
| use std::convert::{From, Into, TryFrom}; | ||||
| use async_std::sync::{Arc, RwLock, RwLockReadGuard}; | ||||
| use futures::future::BoxFuture; | ||||
| use futures::stream::{FuturesOrdered, Stream}; | ||||
| @ -361,6 +360,7 @@ impl RoomState { | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     #[allow(clippy::too_many_arguments)] | ||||
|     pub fn new (room_id: RoomEntityId, | ||||
|                 mode: RoomEntityMode, | ||||
|                 episode: Episode, | ||||
|  | ||||
| @ -859,7 +859,7 @@ impl<EG: EntityGateway + Clone> ServerState for ShipServerState<EG> { | ||||
|                     let mut entity_gateway = self.entity_gateway.clone(); | ||||
|                     Box::pin(async move { | ||||
|                         entity_gateway.add_room_note(room.room_id, RoomNote::PlayerJoin { | ||||
|                             character_id: character_id, | ||||
|                             character_id, | ||||
|                         }).await | ||||
|                     })}).await; | ||||
|                 if neighbors.is_empty() { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user