private Message GetCharacterData(Character character, GetCharacterDataMessage.DataType dataType) { switch (dataType) { case GetCharacterDataMessage.DataType.INFO: return(GetCharacterInfoData(character)); case GetCharacterDataMessage.DataType.ASPECTS: case GetCharacterDataMessage.DataType.CONSEQUENCES: case GetCharacterDataMessage.DataType.EXTRAS: case GetCharacterDataMessage.DataType.STUNTS: return(GetCharacterPropertiesDescriptionData(character, dataType)); case GetCharacterDataMessage.DataType.FATEPOINT: return(GetCharacterFatePointData(character)); case GetCharacterDataMessage.DataType.STRESS: return(GetCharacterStressData(character)); default: return(null); } }
private Message GetCharacterPropertiesDescriptionData(Character character, GetCharacterDataMessage.DataType dataType) { CharacterPropertiesDescriptionMessage message; switch (dataType) { case GetCharacterDataMessage.DataType.ASPECTS: message = new CharacterAspectsDescriptionMessage(); message.properties = new CharacterPropertyDescription[character.Aspects.Count]; for (int i = 0; i < character.Aspects.Count; ++i) { message.properties[i] = StreamableFactory.CreateCharacterPropertyDescription(character.Aspects[i]); } break; case GetCharacterDataMessage.DataType.CONSEQUENCES: message = new CharacterConsequencesDescriptionMessage(); if (character.Consequences == null) { message.properties = new CharacterPropertyDescription[0]; } else { message.properties = new CharacterPropertyDescription[character.Consequences.Count]; for (int i = 0; i < character.Consequences.Count; ++i) { message.properties[i] = StreamableFactory.CreateCharacterPropertyDescription(character.Consequences[i]); } } break; case GetCharacterDataMessage.DataType.EXTRAS: message = new CharacterExtrasDescriptionMessage(); if (character.Extras == null) { message.properties = new CharacterPropertyDescription[0]; } else { message.properties = new CharacterPropertyDescription[character.Extras.Count]; for (int i = 0; i < character.Extras.Count; ++i) { message.properties[i] = StreamableFactory.CreateCharacterPropertyDescription(character.Extras[i]); } } break; case GetCharacterDataMessage.DataType.STUNTS: message = new CharacterStuntsDescriptionMessage(); if (character.Stunts == null) { message.properties = new CharacterPropertyDescription[0]; } else { message.properties = new CharacterPropertyDescription[character.Stunts.Count]; for (int i = 0; i < character.Stunts.Count; ++i) { message.properties[i] = StreamableFactory.CreateCharacterPropertyDescription(character.Stunts[i]); } } break; default: return(null); } message.characterID = character.ID; return(message); }