tenebrous-sheets/proto/cofd.proto

100 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 player = 2;
string campaign = 3;
string description = 4;
int32 strength = 6;
int32 dexterity = 7;
int32 stamina = 8;
int32 intelligence = 9;
int32 wits = 10;
int32 resolve = 11;
int32 presence = 12;
int32 manipulation = 13;
int32 composure = 14;
map<string, Skill> physical_skills = 16;
map<string, Skill> mental_skills = 17;
map<string, Skill> social_skills = 18;
repeated Merit merits = 15;
repeated Condition conditions = 19;
int32 size = 20;
int32 health = 21;
int32 willpower = 22;
int32 experience_points = 23;
int32 beats = 24;
repeated Item items = 25;
repeated Attack attacks = 26;
map<string, string> other_data = 27;
oneof system_fields {
CoreFields core = 28;
MageFields mage = 29;
ChangelingFields changeling = 30;
}
}