tenebrous-sheets/proto/cofd.proto

104 lines
2.0 KiB
Protocol Buffer

syntax = "proto3";
package models.proto.cofd;
//TODO do we want a single "morality" value, or keep it separate
//inside the system-specific fields?
//Information and values specific to the core game.
message CoreFields {
int32 integrity = 1;
}
//Information and values specific to Mage 2E.
message MageFields {
int32 widsom = 1;
}
//Information and values specific to Changeling 2E.
message ChangelingFields {
int32 clarity = 1;
}
//Base sheet for Chronicles of Darkness systems.
message CofdSheet {
message Merit {
int32 dots = 1;
string name = 2;
}
message Condition {
string name = 1;
}
///Entry for a skill
message Skill {
int32 dots = 1;
string name = 2;
sint32 untrained_penalty = 3;
repeated string specializations = 4;
}
//A generic item with a name, physical description, and rules text.
message Item {
string name = 1;
string description = 2;
string rules = 3;
}
//An entry for an attack. Usually a weapon.
message Attack {
string name = 1;
int32 dice_pool = 2;
int32 damage = 3;
int32 range = 4;
sint32 initiative_modifier = 5;
int32 size = 6;
}
string name = 1;
string gender = 2;
string concept = 3;
int32 age = 4;
string player = 5;
string chronicle = 6;
string description = 7;
int32 strength = 8;
int32 dexterity = 9;
int32 stamina = 10;
int32 intelligence = 11;
int32 wits = 12;
int32 resolve = 13;
int32 presence = 14;
int32 manipulation = 15;
int32 composure = 16;
map<string, Skill> physical_skills = 17;
map<string, Skill> mental_skills = 18;
map<string, Skill> social_skills = 19;
repeated Merit merits = 20;
repeated Condition conditions = 21;
int32 size = 22;
int32 health = 23;
int32 willpower = 24;
int32 experience_points = 25;
int32 beats = 26;
repeated Item items = 27;
repeated Attack attacks = 28;
map<string, string> other_data = 29;
oneof system_fields {
CoreFields core = 30;
MageFields mage = 31;
ChangelingFields changeling = 32;
}
}