reve 0.0.99 → 0.0.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +22 -0
- data/Rakefile +2 -1
- data/lib/reve/classes.rb +243 -4
- data/lib/reve/exceptions.rb +10 -0
- data/lib/reve.rb +130 -54
- data/test/test_reve.rb +132 -17
- data/test/xml/certificate_tree.xml +231 -0
- data/test/xml/char_medals.xml +12 -0
- data/test/xml/character_sheet.xml +275 -24
- data/test/xml/characterid.xml +2 -2
- data/test/xml/corp_medals.xml +23 -0
- data/test/xml/corp_member_medals.xml +20 -0
- data/test/xml/errors/error_525.xml +5 -0
- metadata +9 -3
data/test/test_reve.rb
CHANGED
@@ -216,7 +216,7 @@ class TestReve < Test::Unit::TestCase
|
|
216
216
|
names = [ 'CCP Garthagk', 'Raquel Smith' ] # 797400947,892008733
|
217
217
|
ids = []
|
218
218
|
assert_nothing_raised do
|
219
|
-
ids = @api.
|
219
|
+
ids = @api.names_to_ids :url => XML_BASE + 'characterid.xml', :names => names
|
220
220
|
end
|
221
221
|
assert_equal 2, ids.size
|
222
222
|
ids.each do |id|
|
@@ -851,16 +851,18 @@ class TestReve < Test::Unit::TestCase
|
|
851
851
|
assert_equal false, skill.skill_in_training
|
852
852
|
end
|
853
853
|
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
854
|
+
=begin
|
855
|
+
# Tests Reve::API#get_xml's segment that fetches from http
|
856
|
+
def test_no_skill_in_training_clean_from_svn
|
857
|
+
skill = nil
|
858
|
+
assert_nothing_raised do
|
859
|
+
skill = @api.skill_in_training(:characterid => 123, :url => URI.parse('http://svn.crudvision.com/reve/trunk/test/xml/skill_in_training-none.xml'))
|
860
|
+
end
|
861
|
+
assert_not_nil @api.last_hash
|
862
|
+
assert_kind_of Time, @api.cached_until
|
863
|
+
assert_equal false, skill.skill_in_training
|
859
864
|
end
|
860
|
-
|
861
|
-
assert_kind_of Time, @api.cached_until
|
862
|
-
assert_equal false, skill.skill_in_training
|
863
|
-
end
|
865
|
+
=end
|
864
866
|
|
865
867
|
def test_amarr_titan_skill_in_training_clean
|
866
868
|
Reve::API.training_skill_url = XML_BASE + 'skill_in_training-amarr-titan.xml'
|
@@ -879,6 +881,88 @@ class TestReve < Test::Unit::TestCase
|
|
879
881
|
assert_not_nil skill.end_sp
|
880
882
|
end
|
881
883
|
|
884
|
+
def test_corporate_medals
|
885
|
+
Reve::API.corporate_medals_url = XML_BASE + 'corp_medals.xml'
|
886
|
+
medals = nil
|
887
|
+
assert_nothing_raised do
|
888
|
+
medals = @api.corporate_medals
|
889
|
+
end
|
890
|
+
assert_equal(12, medals.size)
|
891
|
+
medals.each do |medal|
|
892
|
+
assert_kind_of(Reve::Classes::CorporateMedal, medal)
|
893
|
+
assert_kind_of(Numeric, medal.id)
|
894
|
+
assert_kind_of(NilClass, medal.issued_at) # Doesn't exist for this class, look at created_at
|
895
|
+
assert_kind_of(Time, medal.created_at)
|
896
|
+
assert_kind_of(String, medal.description)
|
897
|
+
assert_kind_of(Numeric, medal.creator_id)
|
898
|
+
assert_kind_of(String, medal.title)
|
899
|
+
end
|
900
|
+
end
|
901
|
+
|
902
|
+
def test_corporate_member_medals
|
903
|
+
Reve::API.corp_member_medals_url = XML_BASE + 'corp_member_medals.xml'
|
904
|
+
medals = nil
|
905
|
+
assert_nothing_raised do
|
906
|
+
medals = @api.corporate_member_medals
|
907
|
+
end
|
908
|
+
assert_equal(9, medals.size)
|
909
|
+
medals.each do |medal|
|
910
|
+
assert_kind_of(Reve::Classes::CorporateMemberMedal, medal)
|
911
|
+
assert_kind_of(Numeric, medal.id)
|
912
|
+
assert_kind_of(Time, medal.issued_at)
|
913
|
+
assert_kind_of(Numeric, medal.character_id)
|
914
|
+
assert_kind_of(String, medal.reason)
|
915
|
+
assert_kind_of(Numeric, medal.issuer_id)
|
916
|
+
assert_kind_of(String, medal.status)
|
917
|
+
assert medal.is_public?
|
918
|
+
assert ! medal.is_private?
|
919
|
+
end
|
920
|
+
end
|
921
|
+
|
922
|
+
def test_character_medals
|
923
|
+
Reve::API.character_medals_url = XML_BASE + 'char_medals.xml'
|
924
|
+
obj = nil
|
925
|
+
assert_nothing_raised do
|
926
|
+
obj = @api.character_medals
|
927
|
+
end
|
928
|
+
assert_kind_of(Reve::Classes::CharacterMedals, obj)
|
929
|
+
assert_equal(1, obj.current_corporation.size)
|
930
|
+
assert obj.other_corporation.empty?
|
931
|
+
obj.current_corporation.each do |medal|
|
932
|
+
assert_kind_of(Reve::Classes::CharacterMedal, medal)
|
933
|
+
assert_kind_of(Numeric, medal.id)
|
934
|
+
assert_kind_of(Time, medal.issued_at)
|
935
|
+
assert_kind_of(String, medal.reason)
|
936
|
+
assert_kind_of(Numeric, medal.issuer_id)
|
937
|
+
assert_kind_of(String, medal.status)
|
938
|
+
assert medal.is_public?
|
939
|
+
assert ! medal.is_private?
|
940
|
+
end
|
941
|
+
|
942
|
+
end
|
943
|
+
|
944
|
+
def test_certificate_sheet
|
945
|
+
Reve::API.certificate_tree_url = XML_BASE + 'certificate_tree.xml'
|
946
|
+
tree = nil
|
947
|
+
assert_nothing_raised do
|
948
|
+
tree = @api.certificate_tree
|
949
|
+
end
|
950
|
+
# going to hell
|
951
|
+
assert_kind_of(Reve::Classes::CertificateTree, tree)
|
952
|
+
assert_equal(1, tree.categories.size)
|
953
|
+
assert tree.categories.all? { |cat| cat.kind_of?(Reve::Classes::CertificateCategory) }
|
954
|
+
assert tree.categories.all? { |cat| cat.id.kind_of?(Numeric) && cat.name.kind_of?(String) }
|
955
|
+
assert_equal(6, tree.categories.first.classes.size) # just 1 category
|
956
|
+
assert tree.categories.first.classes.all? { |klass| klass.kind_of?(Reve::Classes::CertificateClass) }
|
957
|
+
assert tree.categories.first.classes.all? { |klass| klass.id.kind_of?(Numeric) && klass.name.kind_of?(String) }
|
958
|
+
assert tree.categories.first.classes.collect { |klass| klass.certificates }.flatten.all? { |cert| cert.id.kind_of?(Numeric) && cert.grade.kind_of?(Numeric) && cert.corporation_id.kind_of?(Numeric) && cert.description.kind_of?(String) }
|
959
|
+
assert_equal(20, tree.categories.first.classes.collect { |klass| klass.certificates }.flatten.size)
|
960
|
+
assert_equal(54, tree.categories.first.classes.collect { |klass| klass.certificates }.flatten.collect { |cert| cert.required_skills }.flatten.size)
|
961
|
+
assert tree.categories.first.classes.collect { |klass| klass.certificates }.flatten.collect { |cert| cert.required_skills }.flatten.all? { |req| req.id.kind_of?(Numeric) && req.level.kind_of?(Numeric) }
|
962
|
+
assert_equal(29, tree.categories.first.classes.collect { |klass| klass.certificates }.flatten.collect { |cert| cert.required_certificates }.flatten.size)
|
963
|
+
assert tree.categories.first.classes.collect { |klass| klass.certificates }.flatten.collect { |cert| cert.required_certificates }.flatten.all? { |req| req.id.kind_of?(Numeric) && req.grade.kind_of?(Numeric) }
|
964
|
+
end
|
965
|
+
|
882
966
|
def test_character_sheet_clean
|
883
967
|
Reve::API.character_sheet_url = XML_BASE + 'character_sheet.xml'
|
884
968
|
sheet = nil
|
@@ -903,15 +987,43 @@ class TestReve < Test::Unit::TestCase
|
|
903
987
|
assert_not_nil sheet.perception
|
904
988
|
assert_not_nil sheet.willpower
|
905
989
|
|
906
|
-
assert_equal
|
990
|
+
assert_equal 5, sheet.enhancers.size, "Implant size mismatch"
|
907
991
|
sheet.enhancers.each do |enhancer|
|
908
992
|
assert_kind_of Reve::Classes::AttributeEnhancer, enhancer
|
909
993
|
end
|
910
|
-
assert_equal
|
994
|
+
assert_equal 44842126, sheet.skills.inject(0) { |sum,s| sum += s.skillpoints }, "Skillpoint total mismatch"
|
911
995
|
|
912
996
|
sheet.skills.each do |skill|
|
913
997
|
assert_kind_of Reve::Classes::Skill, skill
|
914
998
|
end
|
999
|
+
assert_equal(57, sheet.certificate_ids.size,"Certificate ID size mismatch")
|
1000
|
+
assert sheet.certificate_ids.all? { |cid| cid.kind_of?(Fixnum) }
|
1001
|
+
|
1002
|
+
# role aliases
|
1003
|
+
assert ! sheet.corporate_roles_at_hq.empty?
|
1004
|
+
assert ! sheet.corporate_roles.empty?
|
1005
|
+
assert ! sheet.corporate_roles_at_base.empty?
|
1006
|
+
assert ! sheet.corporate_roles_at_other.empty?
|
1007
|
+
# role proper methods
|
1008
|
+
assert ! sheet.corporationRolesAtHQ.empty?
|
1009
|
+
assert ! sheet.corporationRoles.empty?
|
1010
|
+
assert ! sheet.corporationRolesAtBase.empty?
|
1011
|
+
assert ! sheet.corporationRolesAtOther.empty?
|
1012
|
+
|
1013
|
+
[ :corporate_roles_at_hq, :corporate_roles, :corporate_roles_at_base, :corporate_roles_at_other ].each do |role_kind|
|
1014
|
+
r_ary = sheet.send(role_kind)
|
1015
|
+
assert r_ary.all? { |r| r.kind_of?(Reve::Classes::CorporateRole) }
|
1016
|
+
assert r_ary.all? { |r| r.name.kind_of?(String) }
|
1017
|
+
assert r_ary.all? { |r| r.id.kind_of?(Numeric) }
|
1018
|
+
end
|
1019
|
+
|
1020
|
+
assert ! sheet.corporate_titles.empty?
|
1021
|
+
assert sheet.corporate_titles.all? { |t| t.kind_of?(Reve::Classes::CorporateTitle) }
|
1022
|
+
assert sheet.corporate_titles.all? { |t| t.name.kind_of?(String) }
|
1023
|
+
assert sheet.corporate_titles.all? { |t| t.id.kind_of?(Numeric) }
|
1024
|
+
|
1025
|
+
|
1026
|
+
|
915
1027
|
end
|
916
1028
|
|
917
1029
|
# Can we reassign a URL?
|
@@ -939,17 +1051,19 @@ class TestReve < Test::Unit::TestCase
|
|
939
1051
|
assert_equal File.open(File.join(XML_BASE, 'skill_in_training-none.xml')).read, xmldoc
|
940
1052
|
end
|
941
1053
|
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
1054
|
+
=begin
|
1055
|
+
def test_get_xml_from_web
|
1056
|
+
xmldoc = @api.send(:get_xml, 'http://svn.crudvision.com/reve/trunk/test/xml/skill_in_training-none.xml', {} )
|
1057
|
+
assert_equal File.open(File.join(XML_BASE, 'skill_in_training-none.xml')).read, xmldoc
|
1058
|
+
end
|
1059
|
+
=end
|
946
1060
|
|
947
1061
|
def test_get_xml_from_filesystem_missing_file
|
948
1062
|
assert_raise Errno::ENOENT do
|
949
1063
|
xmldoc = @api.send(:get_xml, File.join(XML_BASE,rand.to_s), {} )
|
950
1064
|
end
|
951
1065
|
end
|
952
|
-
|
1066
|
+
=begin
|
953
1067
|
# if this starts to fail make sure the 404 ErrorDocument includes '404 Not Found'
|
954
1068
|
def test_get_xml_from_web_missing_file
|
955
1069
|
begin
|
@@ -959,6 +1073,7 @@ class TestReve < Test::Unit::TestCase
|
|
959
1073
|
assert e.message.include?('404 Not Found')
|
960
1074
|
end
|
961
1075
|
end
|
1076
|
+
=end
|
962
1077
|
|
963
1078
|
def test_format_url_request_one_arg
|
964
1079
|
req = @api.send(:format_url_request, { :a => "Hello" })
|
@@ -0,0 +1,231 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<eveapi version="2">
|
3
|
+
<currentTime>2008-12-07 17:24:08</currentTime>
|
4
|
+
<result>
|
5
|
+
<rowset name="categories" key="categoryID" columns="categoryID,categoryName">
|
6
|
+
<row categoryID="3" categoryName="Core">
|
7
|
+
<rowset name="classes" key="classID" columns="classID,className">
|
8
|
+
<row classID="2" className="Core Fitting">
|
9
|
+
<rowset name="certificates" key="certificateID" columns="certificateID,grade,corporationID,description">
|
10
|
+
<row certificateID="5" grade="1" corporationID="1000125" description="This certificate represents a basic level of competence in fitting ships. It certifies that the holder is able to use baseline modules which improve power and CPU capabilities such as Co-Processors, Power Diagnostic Systems and Reactor Control Units. This is the first step towards broadening your fitting options.">
|
11
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
12
|
+
<row typeID="3413" level="3" />
|
13
|
+
<row typeID="3424" level="2" />
|
14
|
+
<row typeID="3426" level="3" />
|
15
|
+
<row typeID="3432" level="1" />
|
16
|
+
</rowset>
|
17
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade" />
|
18
|
+
</row>
|
19
|
+
<row certificateID="8" grade="5" corporationID="1000125" description="This certificate represents an elite level of competence in fitting ships. It certifies that the holder has maximized their fitting capabilities. You have now reached the point where you should be able to use any valid module configuration without fitting issues.">
|
20
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
21
|
+
<row typeID="11207" level="5" />
|
22
|
+
</rowset>
|
23
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
24
|
+
<row certificateID="7" grade="1" />
|
25
|
+
</rowset>
|
26
|
+
</row>
|
27
|
+
<row certificateID="7" grade="3" corporationID="1000125" description="This certificate represents an improved level of competence in fitting ships. It certifies that the holder is able to use all available fitting modules. At this stage you have an extremely wide range of fitting options available.">
|
28
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
29
|
+
<row typeID="3424" level="5" />
|
30
|
+
<row typeID="3432" level="5" />
|
31
|
+
<row typeID="11207" level="4" />
|
32
|
+
</rowset>
|
33
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
34
|
+
<row certificateID="6" grade="1" />
|
35
|
+
</rowset>
|
36
|
+
</row>
|
37
|
+
<row certificateID="6" grade="2" corporationID="1000125" description="This certificate represents a standard level of competence in fitting ships. It certifies that the holder is able to use Micro Auxiliary Power Cores and many Tech 2 fitting modules. The holder knows that MAPCs are the best way to increase power output on Frigate-class ships. This provides you with a broad range of fitting options">
|
38
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
39
|
+
<row typeID="3318" level="4" />
|
40
|
+
<row typeID="3413" level="5" />
|
41
|
+
<row typeID="3418" level="4" />
|
42
|
+
<row typeID="3426" level="5" />
|
43
|
+
<row typeID="3432" level="4" />
|
44
|
+
</rowset>
|
45
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
46
|
+
<row certificateID="5" grade="1" />
|
47
|
+
</rowset>
|
48
|
+
</row>
|
49
|
+
</rowset>
|
50
|
+
</row>
|
51
|
+
<row classID="3" className="Core Capacitor">
|
52
|
+
<rowset name="certificates" key="certificateID" columns="certificateID,grade,corporationID,description">
|
53
|
+
<row certificateID="1" grade="1" corporationID="1000125" description="This certificate represents a basic level of competence in capacitor functionality. It certifies that the holder can fit all Tech 1 capacitor-related modules and has baseline skills in capacitor recharge and base capacity. This enables you to somewhat optimize your capacitor and run a variety of modules without running out of capacitor power.">
|
54
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
55
|
+
<row typeID="3417" level="3" />
|
56
|
+
<row typeID="3418" level="3" />
|
57
|
+
<row typeID="3424" level="2" />
|
58
|
+
</rowset>
|
59
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade" />
|
60
|
+
</row>
|
61
|
+
<row certificateID="4" grade="5" corporationID="1000125" description="This certificate represents an elite level of competence in capacitor functionality. It certifies that the holder has maximized their capacitor-related skills. At this point you can run a huge range of configurations without worrying about capacitor usage.">
|
62
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
63
|
+
<row typeID="3418" level="5" />
|
64
|
+
</rowset>
|
65
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
66
|
+
<row certificateID="2" grade="1" />
|
67
|
+
</rowset>
|
68
|
+
</row>
|
69
|
+
<row certificateID="2" grade="2" corporationID="1000125" description="This certificate represents a standard level of competence in capacitor functionality. It certifies that the holder can fit all available capacitor-related modules and has good capacitor skills. The holder is aware that increasing base recharge and capacity both increase their capacitor's overall recharge rate. At this stage you can optimize capacitor flow and run a large number of modules without capacitor concerns.">
|
70
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
71
|
+
<row typeID="3417" level="5" />
|
72
|
+
<row typeID="3418" level="4" />
|
73
|
+
<row typeID="3424" level="4" />
|
74
|
+
</rowset>
|
75
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
76
|
+
<row certificateID="1" grade="1" />
|
77
|
+
</rowset>
|
78
|
+
</row>
|
79
|
+
</rowset>
|
80
|
+
</row>
|
81
|
+
<row classID="4" className="Core Targeting">
|
82
|
+
<rowset name="certificates" key="certificateID" columns="certificateID,grade,corporationID,description">
|
83
|
+
<row certificateID="10" grade="2" corporationID="1000125" description="This certificate represents a standard level of competence with targeting systems. It certifies that the holder has considerable skill in target acquisition and management and is able to use all targeting-related modules. This allows you to lock a large number of targets very quickly and at long range.">
|
84
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
85
|
+
<row typeID="3428" level="4" />
|
86
|
+
<row typeID="3431" level="4" />
|
87
|
+
<row typeID="3432" level="5" />
|
88
|
+
<row typeID="3430" level="1" />
|
89
|
+
</rowset>
|
90
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
91
|
+
<row certificateID="9" grade="1" />
|
92
|
+
</rowset>
|
93
|
+
</row>
|
94
|
+
<row certificateID="11" grade="5" corporationID="1000125" description="This certificate represents an elite level of competence with targeting systems. It certifies that the holder has unsurpassed skill in target acquisition and management. This allows you to lock a huge number of targets almost instantaneously and at extreme range.">
|
95
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
96
|
+
<row typeID="3428" level="5" />
|
97
|
+
<row typeID="3431" level="5" />
|
98
|
+
<row typeID="3430" level="3" />
|
99
|
+
</rowset>
|
100
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
101
|
+
<row certificateID="10" grade="1" />
|
102
|
+
</rowset>
|
103
|
+
</row>
|
104
|
+
<row certificateID="9" grade="1" corporationID="1000125" description="This certificate represents a basic level of competence with targeting systems. It certifies that the holder has some skill in target acquisition and management and can make use of a range of targeting-related modules. This allows you to lock a number of targets quickly and at medium range.">
|
105
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
106
|
+
<row typeID="3428" level="2" />
|
107
|
+
<row typeID="3429" level="4" />
|
108
|
+
<row typeID="3431" level="3" />
|
109
|
+
<row typeID="3432" level="1" />
|
110
|
+
</rowset>
|
111
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade" />
|
112
|
+
</row>
|
113
|
+
</rowset>
|
114
|
+
</row>
|
115
|
+
<row classID="5" className="Core Navigation">
|
116
|
+
<rowset name="certificates" key="certificateID" columns="certificateID,grade,corporationID,description">
|
117
|
+
<row certificateID="12" grade="1" corporationID="1000125" description="This certificate represents a basic level of competence in ship handling. It certifies that the holder has a solid base of skills relating to speed and agility. Once you qualify for this certificate your ships will move and turn that little bit faster.">
|
118
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
119
|
+
<row typeID="3327" level="3" />
|
120
|
+
<row typeID="3449" level="3" />
|
121
|
+
<row typeID="3453" level="2" />
|
122
|
+
<row typeID="3455" level="2" />
|
123
|
+
</rowset>
|
124
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade" />
|
125
|
+
</row>
|
126
|
+
<row certificateID="3" grade="3" corporationID="1000125" description="This certificate represents an improved level of competence in ship handling. It certifies that the holder can push their ship's speed to its design maximums, as well as turning rapidly and warping efficiently. The holder is aware that the amount of capacitor used when warping depends on skill, distance and shiptype. Once you qualify for this certificate your ships will easily outrun lesser pilots.">
|
127
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
128
|
+
<row typeID="3327" level="5" />
|
129
|
+
<row typeID="3449" level="5" />
|
130
|
+
<row typeID="3453" level="4" />
|
131
|
+
<row typeID="3455" level="4" />
|
132
|
+
</rowset>
|
133
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
134
|
+
<row certificateID="13" grade="1" />
|
135
|
+
</rowset>
|
136
|
+
</row>
|
137
|
+
<row certificateID="13" grade="2" corporationID="1000125" description="This certificate represents a standard level of competence in ship handling. It certifies that the holder has a good spread of skills relating to speed and agility. Once you qualify for this certificate your ships will "turn and burn" in a much more responsive manner.">
|
138
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
139
|
+
<row typeID="3449" level="4" />
|
140
|
+
<row typeID="3455" level="3" />
|
141
|
+
<row typeID="3453" level="3" />
|
142
|
+
<row typeID="3327" level="4" />
|
143
|
+
</rowset>
|
144
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
145
|
+
<row certificateID="12" grade="1" />
|
146
|
+
</rowset>
|
147
|
+
</row>
|
148
|
+
<row certificateID="14" grade="5" corporationID="1000125" description="This certificate represents an elite level of competence in ship handling. It certifies that the holder has unsurpassed skills in ship speed, agility and warp efficiency. Once you qualify for this certificate you'll find that your ship responds almost before you've issued the order, and you'll cross vast distances in warp with minimal capacitor use.">
|
149
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
150
|
+
<row typeID="3453" level="5" />
|
151
|
+
<row typeID="3455" level="5" />
|
152
|
+
</rowset>
|
153
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
154
|
+
<row certificateID="3" grade="1" />
|
155
|
+
</rowset>
|
156
|
+
</row>
|
157
|
+
</rowset>
|
158
|
+
</row>
|
159
|
+
<row classID="6" className="Core Competency">
|
160
|
+
<rowset name="certificates" key="certificateID" columns="certificateID,grade,corporationID,description">
|
161
|
+
<row certificateID="16" grade="2" corporationID="1000125" description="This certificate represents a standard skillset in core skills. It certifies that the holder has a standard level of competence in core areas of fitting, capacitor, targeting, integrity and navigation. This gives you a well-rounded core of skills to build a profession on.">
|
162
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel" />
|
163
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
164
|
+
<row certificateID="2" grade="1" />
|
165
|
+
<row certificateID="6" grade="1" />
|
166
|
+
<row certificateID="10" grade="1" />
|
167
|
+
<row certificateID="13" grade="1" />
|
168
|
+
<row certificateID="15" grade="1" />
|
169
|
+
<row certificateID="20" grade="1" />
|
170
|
+
</rowset>
|
171
|
+
</row>
|
172
|
+
<row certificateID="18" grade="5" corporationID="1000125" description="This certificate represents an elite skillset in core skills. It certifies that the holder has an elite level of competence in core areas of fitting, capacitor, targeting, integrity and navigation. This forms an exceptionally strong core skillset which will benefit you in any profession you choose to pursue.">
|
173
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel" />
|
174
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
175
|
+
<row certificateID="4" grade="1" />
|
176
|
+
<row certificateID="8" grade="1" />
|
177
|
+
<row certificateID="11" grade="1" />
|
178
|
+
<row certificateID="14" grade="1" />
|
179
|
+
<row certificateID="16" grade="1" />
|
180
|
+
<row certificateID="21" grade="1" />
|
181
|
+
</rowset>
|
182
|
+
</row>
|
183
|
+
<row certificateID="15" grade="1" corporationID="1000125" description="This certificate represents a basic skillset in core skills. It certifies that the holder has a basic level of competence in core areas of fitting, capacitor, targeting, integrity and navigation. This gives you a solid foundation to build from.">
|
184
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel" />
|
185
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
186
|
+
<row certificateID="1" grade="1" />
|
187
|
+
<row certificateID="5" grade="1" />
|
188
|
+
<row certificateID="9" grade="1" />
|
189
|
+
<row certificateID="12" grade="1" />
|
190
|
+
<row certificateID="19" grade="1" />
|
191
|
+
</rowset>
|
192
|
+
</row>
|
193
|
+
</rowset>
|
194
|
+
</row>
|
195
|
+
<row classID="7" className="Core Integrity">
|
196
|
+
<rowset name="certificates" key="certificateID" columns="certificateID,grade,corporationID,description">
|
197
|
+
<row certificateID="19" grade="1" corporationID="1000125" description="This certificate represents a basic level of competence in structural integrity management. It certifies that the holder has solid damage-absorbtion skills. This will allow you to hold together for longer in combat before exploding.">
|
198
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
199
|
+
<row typeID="3392" level="3" />
|
200
|
+
<row typeID="3394" level="3" />
|
201
|
+
<row typeID="3419" level="3" />
|
202
|
+
</rowset>
|
203
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade" />
|
204
|
+
</row>
|
205
|
+
<row certificateID="20" grade="2" corporationID="1000125" description="This certificate represents a standard level of competence in structural integrity management. It certifies that the holder has Good damage-absorbtion skills. This will allow you to last considerably longer in combat, perhaps giving you the edge you need to secure victory.">
|
206
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
207
|
+
<row typeID="3392" level="4" />
|
208
|
+
<row typeID="3394" level="4" />
|
209
|
+
<row typeID="3419" level="4" />
|
210
|
+
</rowset>
|
211
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
212
|
+
<row certificateID="19" grade="1" />
|
213
|
+
</rowset>
|
214
|
+
</row>
|
215
|
+
<row certificateID="21" grade="5" corporationID="1000125" description="This certificate represents an elite level of competence in structural integrity management. It certifies that the holder has outstanding damage-absorbtion skills. This will allow you to last for long periods in combat, giving you plenty of time to defeat lesser opponents.">
|
216
|
+
<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
|
217
|
+
<row typeID="3392" level="5" />
|
218
|
+
<row typeID="3394" level="5" />
|
219
|
+
<row typeID="3419" level="5" />
|
220
|
+
</rowset>
|
221
|
+
<rowset name="requiredCertificates" key="certificateID" columns="certificateID,grade">
|
222
|
+
<row certificateID="20" grade="1" />
|
223
|
+
</rowset>
|
224
|
+
</row>
|
225
|
+
</rowset>
|
226
|
+
</row>
|
227
|
+
</rowset>
|
228
|
+
</row>
|
229
|
+
</rowset>
|
230
|
+
</result>
|
231
|
+
</eveapi>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<eveapi version="2">
|
3
|
+
<currentTime>2008-12-09 16:07:35</currentTime>
|
4
|
+
<result>
|
5
|
+
<rowset name="currentCorporation" key="medalID" columns="medalID,reason,status,issuerID,issued">
|
6
|
+
<row medalID="5990" reason="Making VAF Mart which defined VAF as a corp and made us known to Eve Universe" status="public" issuerID="1570039227" issued="2008-11-30 21:17:08" />
|
7
|
+
</rowset>
|
8
|
+
<rowset name="otherCorporations" key="medalID" columns="medalID,reason,status,issuerID,issued,corporationID,title,description" />
|
9
|
+
</result>
|
10
|
+
|
11
|
+
<cachedUntil>2008-12-10 15:07:35</cachedUntil>
|
12
|
+
</eveapi>
|