This allows for easier modification of how attributes are calculated, and doesn't require a new dogma-engine for any attribute change.
138 lines
3.5 KiB
Protocol Buffer
138 lines
3.5 KiB
Protocol Buffer
syntax = "proto2";
|
|
|
|
package esf;
|
|
|
|
message TypeDogma {
|
|
message TypeDogmaEntry {
|
|
message DogmaAttributes {
|
|
required int32 attributeID = 1;
|
|
required float value = 2;
|
|
}
|
|
|
|
message DogmaEffects {
|
|
required int32 effectID = 1;
|
|
required bool isDefault = 2;
|
|
}
|
|
|
|
repeated DogmaAttributes dogmaAttributes = 1;
|
|
repeated DogmaEffects dogmaEffects = 2;
|
|
}
|
|
|
|
map<int32, TypeDogmaEntry> entries = 1;
|
|
}
|
|
|
|
message Types {
|
|
message Type {
|
|
required string name = 1;
|
|
required int32 groupID = 2;
|
|
required int32 categoryID = 3;
|
|
required bool published = 4;
|
|
|
|
optional int32 factionID = 5;
|
|
optional int32 marketGroupID = 6;
|
|
optional int32 metaGroupID = 7;
|
|
optional float capacity = 8;
|
|
optional float mass = 9;
|
|
optional float radius = 10;
|
|
optional float volume = 11;
|
|
}
|
|
|
|
map<int32, Type> entries = 1;
|
|
}
|
|
|
|
message Categories {
|
|
message Category {
|
|
required string name = 1;
|
|
required bool published = 2;
|
|
}
|
|
|
|
map<int32, Category> entries = 1;
|
|
}
|
|
|
|
message Groups {
|
|
message Group {
|
|
required string name = 1;
|
|
required int32 categoryID = 2;
|
|
required bool published = 3;
|
|
}
|
|
|
|
map<int32, Group> entries = 1;
|
|
}
|
|
|
|
message MarketGroups {
|
|
message MarketGroup {
|
|
required string name = 1;
|
|
|
|
optional int32 parentGroupID = 2;
|
|
optional int32 iconID = 3;
|
|
}
|
|
|
|
map<int32, MarketGroup> entries = 1;
|
|
}
|
|
|
|
message DogmaAttributes {
|
|
message DogmaAttribute {
|
|
required string name = 1;
|
|
required bool published = 2;
|
|
required float defaultValue = 3;
|
|
required bool highIsGood = 4;
|
|
required bool stackable = 5;
|
|
}
|
|
|
|
map<int32, DogmaAttribute> entries = 1;
|
|
}
|
|
|
|
message DogmaEffects {
|
|
message DogmaEffect {
|
|
message ModifierInfo {
|
|
enum Domain {
|
|
itemID = 0;
|
|
shipID = 1;
|
|
charID = 2;
|
|
otherID = 3;
|
|
structureID = 4;
|
|
target = 5;
|
|
targetID = 6;
|
|
}
|
|
|
|
enum Func {
|
|
ItemModifier = 0;
|
|
LocationGroupModifier = 1;
|
|
LocationModifier = 2;
|
|
LocationRequiredSkillModifier = 3;
|
|
OwnerRequiredSkillModifier = 4;
|
|
EffectStopper = 5;
|
|
}
|
|
|
|
required Domain domain = 1;
|
|
required Func func = 2;
|
|
optional int32 modifiedAttributeID = 3;
|
|
optional int32 modifyingAttributeID = 4;
|
|
optional int32 operation = 5;
|
|
optional int32 groupID = 6;
|
|
optional int32 skillTypeID = 7;
|
|
}
|
|
|
|
required string name = 1;
|
|
required int32 effectCategory = 2;
|
|
required bool electronicChance = 3;
|
|
required bool isAssistance = 4;
|
|
required bool isOffensive = 5;
|
|
required bool isWarpSafe = 6;
|
|
required bool propulsionChance = 7;
|
|
required bool rangeChance = 8;
|
|
|
|
optional int32 dischargeAttributeID = 9;
|
|
optional int32 durationAttributeID = 10;
|
|
optional int32 rangeAttributeID = 11;
|
|
optional int32 falloffAttributeID = 12;
|
|
optional int32 trackingSpeedAttributeID = 13;
|
|
optional int32 fittingUsageChanceAttributeID = 14;
|
|
optional int32 resistanceAttributeID = 15;
|
|
|
|
repeated ModifierInfo modifierInfo = 16;
|
|
}
|
|
|
|
map<int32, DogmaEffect> entries = 1;
|
|
}
|