wxrcg 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +4 -27
  3. data/VERSION +1 -1
  4. data/bin/wxrcg +20 -0
  5. data/db/csv/characters.csv +4 -0
  6. data/db/csv/weapon_special_qualities_weapons.csv +8 -0
  7. data/db/csv/weapons.csv +21 -0
  8. data/db/development.sqlite +0 -0
  9. data/db/migrate/2009101820235900_create_weapon_special_qualities_weapons.rb +21 -0
  10. data/db/migrate/2009101820235901_create_characters.rb +27 -0
  11. data/db/migrate/2009101820235902_create_weapons.rb +21 -0
  12. data/db/migrate/2009101820235903_create_critical.rb +19 -0
  13. data/db/migrate/2009101820235904_create_encumbrance_type.rb +16 -0
  14. data/db/migrate/2009101820235905_create_categories.rb +18 -0
  15. data/db/migrate/2009101820235906_create_training_type.rb +15 -0
  16. data/db/migrate/2009101820235908_create_damage.rb +28 -0
  17. data/db/migrate/2009101820235909_create_damage_type.rb +21 -0
  18. data/db/migrate/2009101820235911_create_races.rb +26 -0
  19. data/db/migrate/2009101820235912_create_armours.rb +23 -0
  20. data/db/migrate/20091021094104_create_class_levels.rb +21 -0
  21. data/db/migrate/20091024124832_create_sizes.rb +21 -0
  22. data/db/migrate/20091025152901_add_characters_class_levels.rb +12 -0
  23. data/db/populate/90011024124832_populate_weapons.rb +37 -0
  24. data/db/populate/90091024173652_populate_characters.rb +31 -0
  25. data/db/populate/90091028112137_populate_class_levels.rb +46 -0
  26. data/lib/annotate_models.rb +139 -0
  27. data/lib/initdb.rb +45 -19
  28. data/lib/models/armour.rb +18 -0
  29. data/lib/models/category.rb +11 -0
  30. data/lib/models/character.rb +39 -3
  31. data/lib/models/class_level.rb +18 -0
  32. data/lib/models/class_level_special_quality.rb +2 -0
  33. data/lib/models/critical.rb +10 -0
  34. data/lib/models/damage.rb +10 -0
  35. data/lib/models/damage_type.rb +10 -0
  36. data/lib/models/encumbrance_type.rb +9 -0
  37. data/lib/models/race.rb +16 -0
  38. data/lib/models/size.rb +11 -0
  39. data/lib/models/training_type.rb +9 -0
  40. data/lib/models/weapon.rb +20 -1
  41. data/lib/models/weapon_special_quality.rb +9 -0
  42. data/lib/views/level_frame.rb +87 -0
  43. data/lib/views/weapon_screen_frame.rb +1 -1
  44. data/tasks/annotate_models_tasks.rake +6 -0
  45. data/tasks/databases.rake +48 -0
  46. data/tasks/documentation.rake +11 -0
  47. data/tasks/gemcutter.rake +18 -0
  48. data/tasks/unit_tests.rake +8 -0
  49. data/tests/class_level_test.rb +8 -0
  50. metadata +35 -15
  51. data/db/development.sqlite3 +0 -0
  52. data/db/sqlite scripts/create_armours.sql +0 -16
  53. data/db/sqlite scripts/create_categories.sql +0 -10
  54. data/db/sqlite scripts/create_characters.sql +0 -21
  55. data/db/sqlite scripts/create_races.sql +0 -9
  56. data/db/sqlite scripts/create_weapons.sql +0 -16
  57. data/db/sqlite scripts/critical.sql +0 -12
  58. data/db/sqlite scripts/damage.sql +0 -21
  59. data/db/sqlite scripts/damage_type.sql +0 -15
  60. data/db/sqlite scripts/encumbrance_type.sql +0 -10
  61. data/db/sqlite scripts/training_type.sql +0 -8
  62. data/db/sqlite scripts/weapon_special_qualities_weapons.sql +0 -17
  63. data/lib/character.old.rb +0 -72
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  *.log
2
2
  *.gemspec
3
3
  pkg
4
+ doc
data/Rakefile CHANGED
@@ -1,30 +1,7 @@
1
1
  require 'rake'
2
2
  require 'rake/testtask'
3
+ require 'rake/rdoctask'
3
4
 
4
- task :default => [:test_models]
5
-
6
- desc "Run basic tests"
7
- Rake::TestTask.new("test_models") { |t|
8
- t.pattern = 'tests/*_model_test.rb'
9
- t.verbose = true
10
- t.warning = false
11
- }
12
- begin
13
- require 'jeweler'
14
- Jeweler::Tasks.new do |gemspec|
15
- gemspec.name = "wxrcg"
16
- gemspec.summary = "Some basic tools for helping DMs/players run PathfinderRPG games."
17
- gemspec.description = "Some basic tools for helping DMs/players run PathfinderRPG games.\nThis project uses trademarks and/or copyrights owned by Paizo Publishing, LLC, which are used under Paizo's Community Use Policy. We are expressly prohibited from charging you to use or access this content. This project is not published, endorsed, or specifically approved by Paizo Publishing. For more information about Paizo's Community Use Policy, please visit paizo.com/communityuse. For more information about Paizo Publishing and Paizo products, please visit paizo.com."
18
- gemspec.email = "nevyn@anferny.me.uk"
19
- gemspec.homepage = "http://codaset.com/nevynxxx/wxrcg#"
20
- gemspec.authors = ["Nevynxxx"]
21
- gemspec.add_dependency('sqlite3-ruby')
22
- gemspec.add_dependency('activerecord')
23
- gemspec.add_dependency('wxruby-ruby19', '>= 2.0.0')
24
-
25
- end
26
- Jeweler::GemcutterTasks.new
27
- rescue LoadError
28
- puts "Jeweler not available. Install it with: sudo gem install jeweler -s http://gems.github.com"
29
- end
30
-
5
+ # Load rake tasks like rails does
6
+ root = File.dirname(__FILE__)
7
+ Dir[File.join(root,"tasks","**","*.rake")].sort.each { |ext| load ext }
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby
2
+ root = File.dirname(__FILE__)
3
+ require "wx"
4
+ require File.join(root,"..","lib","initdb.rb")
5
+ require File.join(root,"..","lib","models","character")
6
+ require File.join(root,"..","lib","models","class_level")
7
+ require File.join(root,"..","lib","views","level_frame")
8
+ require File.join(root,"..","lib","views","char_select_dialog")
9
+
10
+ class WxRCG < Wx::App
11
+ def on_init
12
+ WxRCG_frame.new(level_list)
13
+ end
14
+
15
+ def level_list
16
+ ClassLevel.find :all, :group => "class_name"
17
+ end
18
+ end
19
+
20
+ WxRCG.new.main_loop
@@ -0,0 +1,4 @@
1
+ "id","name","race_id","armour_id","weapon_id","size_id","str","dex","con","int","wis","cha","floating_race_mod","hp","bab"
2
+ "1","Drogheda","5","1","4","5","14","14","13","13","13","7","str","12","1"
3
+ "2","Moopara","6","2","4","5","12","12","11","12","11","15","","9","0"
4
+ "3","Snarf","4","2","4","5","16","10","9","8","8","16","cha","9","0"
@@ -0,0 +1,8 @@
1
+ "weapon_special_quality_id","weapon_id"
2
+ "5","1"
3
+ "1","3"
4
+ "3","8"
5
+ "2","13"
6
+ "6","13"
7
+ "4","1"
8
+ "2","14"
@@ -0,0 +1,21 @@
1
+ "id","name","training_type_id","encumbrance_type_id","damage_id","damage_type_id","damage2_id","critical_id","size_id","cost","range","weight"
2
+ "2","Quaterstaff","1","4","6","1","6","1","5","","","5"
3
+ "3","Gunatlet","1","1","4","1","1","1","5","2","","1"
4
+ "4","Unarmed strike","1","1","4","1","1","1","5","","",""
5
+ "5","Dagger","1","2","5","6","1","3","5","2","10","1"
6
+ "6","Dagger, punching","1","2","5","2","1","2","5","2","","1"
7
+ "7","Guntlet, Spiked","1","2","5","2","1","1","5","5","","1"
8
+ "8","Mace, Light","1","2","6","1","1","1","5","5","","4"
9
+ "9","Sickle","1","2","6","3","1","1","5","6","","2"
10
+ "10","Club","1","3","6","1","1","1","5","","10","3"
11
+ "11","Mace, heavy","1","3","7","1","1","1","5","12","","8"
12
+ "12","Morningstar","1","3","7","9","1","1","5","8","","6"
13
+ "13","Shortspear","1","3","6","2","1","1","5","1","20","3"
14
+ "14","Longspear","1","4","7","2","1","2","5","5","","9"
15
+ "15","Spear","1","4","7","2","1","2","5","2","20","6"
16
+ "16","Blowgun","1","5","3","2","1","1","5","2","20","1"
17
+ "17","Crossbow, heavy","1","5","8","2","1","3","5","50","120","8"
18
+ "18","Crossbow, light","1","5","7","2","1","3","5","35","80","4"
19
+ "19","Dart","1","5","5","2","1","1","5","","20",""
20
+ "20","Javelin","1","2","6","2","1","1","5","1","30","2"
21
+ "21","Sling","1","5","5","1","1","1","5","","50",""
Binary file
@@ -0,0 +1,21 @@
1
+ class CreateWeaponSpecialQualitiesWeapons < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :weapon_special_qualities do |t|
4
+ t.column :name, :string, :null => false
5
+ end
6
+
7
+ create_table :weapon_special_qualities_weapons, :id => false do |t|
8
+ t.column :weapon_special_quality_id, :integer, :null => false
9
+ t.column :weapon_id, :integer, :null => false
10
+ end
11
+
12
+ qs = ["Non-Lethal","Brace","Trip","Monks","Double","Reach"]
13
+
14
+ qs.each{|q| WeaponSpecialQuality.create(:name => q)}
15
+ end
16
+
17
+ def self.down
18
+ drop_table :weapon_special_qualities
19
+ drop_table :weapon_special_qualities_weapons
20
+ end
21
+ end
@@ -0,0 +1,27 @@
1
+ class CreateCharacters < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :characters do |t|
4
+ t.column :name, :string, :null => false
5
+ t.column :race_id, :integer
6
+ t.column :armour_id, :integer
7
+ t.column :weapon_id, :integer
8
+ t.column :size_id, :integer
9
+ t.column :str, :integer
10
+ t.column :dex, :integer
11
+ t.column :con, :integer
12
+ t.column :int, :integer
13
+ t.column :wis, :integer
14
+ t.column :cha, :integer
15
+ t.column :floating_race_mod, :string
16
+ t.column :hp, :integer
17
+ t.column :bab, :integer
18
+ end
19
+ end
20
+
21
+ def self.down
22
+ drop_table :characters
23
+ end
24
+ end
25
+ #insert into characters values (NULL,'Drogheda',5,1,1,5,14,14,13,13,13,7,'str',12,1);
26
+ #insert into characters values (NULL,'Moopara',6,2,1,5,12,12,11,12,11,15,NULL,9,0);
27
+ #insert into characters values (NULL,'Snarf',4,2,1,5,16,10,9,8,8,16,'cha',9,0);
@@ -0,0 +1,21 @@
1
+ class CreateWeapons < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :weapons do |t|
4
+ t.column :name, :string, :null => false
5
+ t.column :training_type_id, :integer
6
+ t.column :encumbrance_type_id, :integer
7
+ t.column :damage_id, :integer
8
+ t.column :damage_type_id, :integer
9
+ t.column :damage2_id, :integer
10
+ t.column :critical_id, :integer
11
+ t.column :size_id, :integer
12
+ t.column :cost, :integer
13
+ t.column :range, :integer
14
+ t.column :weight, :integer
15
+ end
16
+ end
17
+
18
+ def self.down
19
+ drop_table :weapons
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ class CreateCritical < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :criticals do |t|
4
+ t.column :range, :string
5
+ t.column :multiplier, :integer
6
+ end
7
+
8
+ Critical.create(:range =>nil,:multiplier =>2)
9
+ Critical.create(:range =>nil,:multiplier =>3)
10
+ Critical.create(:range =>'19-20',:multiplier =>2)
11
+ Critical.create(:range =>'19-20',:multiplier =>3)
12
+ Critical.create(:range =>'18-20',:multiplier =>2)
13
+ Critical.create(:range =>'18-20',:multiplier =>3)
14
+ end
15
+
16
+ def self.down
17
+ drop_table :criticals
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ class CreateEncumbranceType < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :encumbrance_types do |t|
4
+ t.column :name, :string, :null => false
5
+ end
6
+ EncumbranceType.create(:name => 'Unarmed');
7
+ EncumbranceType.create(:name => 'Light');
8
+ EncumbranceType.create(:name => 'One-Handed');
9
+ EncumbranceType.create(:name => 'Two-Handed');
10
+ EncumbranceType.create(:name => 'Ranged');
11
+ end
12
+
13
+ def self.down
14
+ drop_table :encumbrance_types
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ class CreateCategories < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :categories do |t|
5
+ t.column :name, :string
6
+ end
7
+
8
+ Category.create(:name => "Light")
9
+ Category.create(:name => "Medium")
10
+ Category.create(:name => "Heavy")
11
+ Category.create(:name => "Shields")
12
+ Category.create(:name => "Extras")
13
+ end
14
+
15
+ def self.down
16
+ drop_table :categories
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ class CreateTrainingType < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :training_types do |t|
5
+ t.column :name, :string
6
+ end
7
+ TrainingType.create(:name=>'Simple')
8
+ TrainingType.create(:name=>'Martial')
9
+ TrainingType.create(:name=>'Exotic')
10
+ end
11
+
12
+ def self.down
13
+ drop_table :training_types
14
+ end
15
+ end
@@ -0,0 +1,28 @@
1
+ class CreateDamage < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :damages do |t|
5
+ t.column :no, :integer
6
+ t.column :sides, :integer
7
+ end
8
+ Damage.create( :no => 0, :sides => 0);
9
+ Damage.create( :no => 1, :sides => 1);
10
+ Damage.create( :no => 1, :sides => 2);
11
+ Damage.create( :no => 1, :sides => 3);
12
+ Damage.create( :no => 1, :sides => 4);
13
+ Damage.create( :no => 1, :sides => 6);
14
+ Damage.create( :no => 1, :sides => 8);
15
+ Damage.create( :no => 1, :sides => 10);
16
+ Damage.create( :no => 1, :sides => 12);
17
+ Damage.create( :no => 2, :sides => 4);
18
+ Damage.create( :no => 2, :sides => 6);
19
+ Damage.create( :no => 2, :sides => 8);
20
+ Damage.create( :no => 3, :sides => 6);
21
+ Damage.create( :no => 3, :sides => 8);
22
+ Damage.create( :no => 4, :sides => 8);
23
+ end
24
+
25
+ def self.down
26
+ drop_table :damages
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ class CreateDamageType < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :damage_types do |t|
4
+ t.column :name, :string
5
+ t.column :code, :string
6
+ end
7
+ DamageType.create(:name => 'Bludgeoning', :code =>'B')
8
+ DamageType.create(:name => 'Piercing', :code =>'P')
9
+ DamageType.create(:name => 'Slashing', :code =>'S')
10
+ DamageType.create(:name => 'Bludgeoning or Slashing', :code =>'B or S')
11
+ DamageType.create(:name => 'Bludgeoning and Slashing', :code =>'B & S')
12
+ DamageType.create(:name => 'Piercing or Slashing', :code =>'P or S')
13
+ DamageType.create(:name => 'Piercing and Slashing', :code =>'P & S')
14
+ DamageType.create(:name => 'Bludgeoning or Piercing', :code =>'B or P')
15
+ DamageType.create(:name => 'Bludgeoning and Piercing', :code =>'B & P')
16
+ end
17
+
18
+ def self.down
19
+ drop_table :damage_types
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ class CreateRaces < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :races do |t|
5
+ t.column :name, :string
6
+ t.column :str_mod, :integer, :default => 0
7
+ t.column :dex_mod, :integer, :default => 0
8
+ t.column :con_mod, :integer, :default => 0
9
+ t.column :int_mod, :integer, :default => 0
10
+ t.column :wis_mod, :integer, :default => 0
11
+ t.column :cha_mod, :integer, :default => 0
12
+ t.column :any, :boolean, :default => false
13
+ end
14
+ Race.create(:name=>"Dwarf",:con_mod=>2,:wis_mod=>2,:cha_mod=>-2)
15
+ Race.create(:name=>"Elf",:dex_mod=>2,:con_mod=>-2,:int_mod=>2)
16
+ Race.create(:name=>"Gnome",:str_mod=>-2,:con_mod=>2,:cha_mod=>2)
17
+ Race.create(:name=>"Half-Elf",:any=> true)
18
+ Race.create(:name=>"Half-Orc",:any=> true)
19
+ Race.create(:name=>"Halfling",:str_mod=>-2,:dex_mod=>2,:wis_mod=>2)
20
+ Race.create(:name=>"Human",:any=> true)
21
+ end
22
+
23
+ def self.down
24
+ drop_table :races
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ class CreateArmours < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :armours do |t|
4
+ t.column :name, :string
5
+ t.column :category_id, :integer
6
+ t.column :cost, :integer
7
+ t.column :bonus, :integer
8
+ t.column :max_dex, :integer
9
+ t.column :check_pen, :integer
10
+ t.column :spell_fail, :integer
11
+ t.column :speed_30, :integer
12
+ t.column :speed_20, :integer
13
+ t.column :weight, :integer
14
+ end
15
+ Armour.create( :name =>'Hide',:category_id=>2,:cost=>15,:bonus=>4,
16
+ :max_dex=>4,:check_pen=>-3,:spell_fail=>20,:speed_30=>20,:speed_20=>15,:weight=>25);
17
+ Armour.create( :name =>'None')
18
+ end
19
+
20
+ def self.down
21
+ drop_table :armours
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ class CreateClassLevels < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :class_levels do |t|
4
+ t.column :class_name, :string
5
+ t.column :level, :integer
6
+ t.column :bab, :integer
7
+ t.column :fort, :integer
8
+ t.column :ref, :integer
9
+ t.column :will, :integer
10
+ t.timestamps
11
+ end
12
+ create_table :class_level_special_qualities do |t|
13
+ t.column name, :string
14
+ end
15
+ end
16
+
17
+ def self.down
18
+ drop_table :class_levels
19
+ drop_table :class_level_special_qualities
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ class CreateSizes < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :sizes do |t|
4
+ t.column :name, :string
5
+ t.timestamps
6
+ end
7
+ Size.create(:name=>'Fine')
8
+ Size.create(:name=>'Diminutive')
9
+ Size.create(:name=>'Tiny')
10
+ Size.create(:name=>'Small')
11
+ Size.create(:name=>'Medium')
12
+ Size.create(:name=>'Large')
13
+ Size.create(:name=>'Huge')
14
+ Size.create(:name=>'Gargantuan')
15
+ Size.create(:name=>'Colossal')
16
+ end
17
+
18
+ def self.down
19
+ drop_table :sizes
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ class AddCharactersClassLevels < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :characters_class_levels, :id => false do |t|
4
+ t.column :character_id, :integer
5
+ t.column :class_level_id, :integer
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ delete_table :characters_class_levels
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ class PopulateWeapons < ActiveRecord::Migration
2
+ def self.up
3
+ self.down
4
+ source = File.join(WXRCG_ROOT,"db","csv","weapons.csv")
5
+ puts "Populating Weapons"
6
+ CSV.foreach(source, headers: true) do |row|
7
+ values = {
8
+ :name => row[1],
9
+ :training_type_id => row[2],
10
+ :encumbrance_type_id => row[3],
11
+ :damage_id => row[4],
12
+ :damage_type_id=> row[5],
13
+ :damage2_id => row[6],
14
+ :critical_id => row[7],
15
+ :size_id => row[8],
16
+ :cost => row[9],
17
+ :range => row[10],
18
+ :weight=> row[11]}
19
+
20
+ Weapon.create(values)
21
+
22
+ end
23
+ source = File.join(WXRCG_ROOT,"db","csv","weapon_special_qualities_weapons.csv")
24
+ puts "Populating Weapon special qualities"
25
+ CSV.foreach(source, headers: true) do |row|
26
+ puts "#{row[1]},#{row[0]}"
27
+ weapon = Weapon.find(row[1])
28
+ quality = WeaponSpecialQuality.find(row[0])
29
+ puts"Weapon: #{weapon.name}, Quality: #{quality.name}"
30
+ weapon.has_quality=quality
31
+ end
32
+ end
33
+
34
+ def self.down
35
+ Weapon.destroy_all
36
+ end
37
+ end