wxrcg 0.2.0 → 0.3.0

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.
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
@@ -1,3 +1,13 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: damage_types
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255)
8
+ # code :string(255)
9
+ #
10
+
1
11
  class DamageType < ActiveRecord::Base
2
12
  has_many :weapons
3
13
  end
@@ -1,3 +1,12 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: encumbrance_types
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255) not null
8
+ #
9
+
1
10
  class EncumbranceType < ActiveRecord::Base
2
11
  has_many :weapons
3
12
  end
@@ -1,3 +1,19 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: races
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255)
8
+ # str_mod :integer default(0)
9
+ # dex_mod :integer default(0)
10
+ # con_mod :integer default(0)
11
+ # int_mod :integer default(0)
12
+ # wis_mod :integer default(0)
13
+ # cha_mod :integer default(0)
14
+ # any :boolean
15
+ #
16
+
1
17
  class Race < ActiveRecord::Base
2
18
  has_many :characters
3
19
  end
@@ -1,3 +1,14 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: sizes
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255)
8
+ # created_at :datetime
9
+ # updated_at :datetime
10
+ #
11
+
1
12
  class Size < ActiveRecord::Base
2
13
  has_many :characters
3
14
  has_many :weapons
@@ -1,3 +1,12 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: training_types
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255)
8
+ #
9
+
1
10
  class TrainingType < ActiveRecord::Base
2
11
  has_many :weapons
3
12
  end
@@ -1,3 +1,22 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: weapons
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255) not null
8
+ # training_type_id :integer
9
+ # encumbrance_type_id :integer
10
+ # damage_id :integer
11
+ # damage_type_id :integer
12
+ # damage2_id :integer
13
+ # critical_id :integer
14
+ # size_id :integer
15
+ # cost :integer
16
+ # range :integer
17
+ # weight :integer
18
+ #
19
+
1
20
  root = File.dirname(__FILE__)
2
21
  require File.join(root,"training_type")
3
22
  require File.join(root,"encumbrance_type")
@@ -18,7 +37,7 @@ class Weapon < ActiveRecord::Base
18
37
  belongs_to :size
19
38
  has_and_belongs_to_many :weapon_special_qualities
20
39
 
21
- def has_quality(quality)
40
+ def has_quality=(quality)
22
41
  weapon_special_qualities << quality
23
42
  end
24
43
 
@@ -1,3 +1,12 @@
1
+ # == Schema Information
2
+ # Schema version: 2009101820235913
3
+ #
4
+ # Table name: weapon_special_qualities
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255) not null
8
+ #
9
+
1
10
  class WeaponSpecialQuality < ActiveRecord::Base
2
11
  has_and_belongs_to_many :weapons
3
12
  end
@@ -0,0 +1,87 @@
1
+ class WxRCG_frame < Wx::Frame
2
+ def initialize(class_level_list)
3
+ super(nil, :title => "wxRuby Character Generator!")
4
+ @panel = Wx::Panel.new(self)
5
+ # Sizers
6
+ @grid_sizer = Wx::GridSizer.new(0,6,0,0)
7
+ @box_sizer = Wx::BoxSizer.new(Wx::VERTICAL)
8
+
9
+ #Name
10
+ @name_label = Wx::StaticText.new(@panel, -1, "Character Name")
11
+ @name_edit = Wx::TextCtrl.new(@panel, -1)
12
+
13
+ #Current Levels
14
+ @cw_label = Wx::StaticText.new(@panel, -1, "Current Levels")
15
+ @cw_text = Wx::StaticText.new(@panel, -1, "")
16
+
17
+ #Race Choice
18
+ @level_label = Wx::StaticText.new(@panel, -1, "Class")
19
+ @level_choice = Wx::Choice.new(@panel, -1)
20
+ #Set up Choices
21
+ choices = class_level_list
22
+ choices.each {|choice| @level_choice.append(choice.class_name)}
23
+
24
+ # Save Button
25
+ @save_btn = Wx::Button.new(@panel,:label=>'Save')
26
+
27
+ # load Button
28
+ @load_btn = Wx::Button.new(@panel,:label=>'Load')
29
+
30
+ #Set up Labels
31
+ @blank_txt = Wx::StaticText.new(@panel,-1,"")
32
+
33
+ #save button
34
+ @grid_sizer.add(@blank_txt,0,Wx::ALIGN_CENTER|Wx::ALL,5)
35
+ @grid_sizer.add(@blank_txt,0,Wx::ALIGN_CENTER|Wx::ALL,5)
36
+ @grid_sizer.add(@blank_txt,0,Wx::ALIGN_CENTER|Wx::ALL,5)
37
+ @grid_sizer.add(@blank_txt,0,Wx::ALIGN_CENTER|Wx::ALL,5)
38
+ @grid_sizer.add(@load_btn,0,Wx::ALIGN_CENTER|Wx::ALL,5)
39
+ @grid_sizer.add(@save_btn,0,Wx::ALIGN_CENTER|Wx::ALL,5)
40
+ @box_sizer.add(@name_label,0,Wx::ALIGN_CENTER|Wx::ALL,5)
41
+ @box_sizer.add(@name_edit,0,Wx::ALIGN_CENTER|Wx::ALL,5)
42
+ @box_sizer.add(@cw_label,0,Wx::ALIGN_CENTER|Wx::ALL,5)
43
+ @box_sizer.add(@cw_text,0,Wx::ALIGN_CENTER|Wx::ALL,5)
44
+ @box_sizer.add(@level_label,0,Wx::ALIGN_CENTER|Wx::ALL,5)
45
+ @box_sizer.add(@level_choice,0,Wx::ALIGN_CENTER|Wx::ALL,5)
46
+ @box_sizer.add(@grid_sizer,0,Wx::ALIGN_CENTER|Wx::ALL,5)
47
+
48
+ #Event Handling
49
+ evt_text(@name_edit.get_id()) { |event| name_edit_event(event)}
50
+ evt_button(@save_btn.get_id()) { |event| save_button_event(event)}
51
+ evt_button(@load_btn.get_id()) { |event| load_button_event(event)}
52
+ evt_choice(@level_choice.get_id()) { |event| level_choice_event(event)}
53
+
54
+
55
+ @panel.set_sizer(@box_sizer)
56
+ @panel.layout
57
+ @panel.get_sizer.fit(self)
58
+
59
+ show
60
+ end
61
+
62
+ def name_edit_event(event)
63
+ @character.name = @name_edit.get_value
64
+ end
65
+
66
+ def save_button_event(event)
67
+ @character.save
68
+ end
69
+
70
+ def level_choice_event(event)
71
+ klass = @level_choice.get_string_selection
72
+ level = ClassLevel.find(:first, :conditions=>["class_name = ? AND level = ?", klass, (@character.levels_in(klass)+1)])
73
+ puts "#{level.class_name}:#{level.level}"
74
+ @character.class_levels << level
75
+ @cw_text.set_label(@character.levels)
76
+ end
77
+
78
+ def load_button_event(event)
79
+ csd = Char_select_dialog.new(self)
80
+ if csd.show_modal == Wx::ID_OK then
81
+ @character = csd.character
82
+ @name_edit.set_value(@character.name)
83
+ @cw_text.set_label(@character.levels)
84
+ end
85
+ end
86
+
87
+ end
@@ -155,7 +155,7 @@ class Weapon_screen_frame < Wx::Frame
155
155
  #Update the special qualities tables
156
156
  @sqs.each do |sq|
157
157
  if sq.is_checked then
158
- weapon.has_quality(WeaponSpecialQuality.find_by_name(sq.get_label))
158
+ weapon.has_quality = WeaponSpecialQuality.find_by_name(sq.get_label)
159
159
  end
160
160
  end
161
161
 
@@ -0,0 +1,6 @@
1
+ desc "Add schema information (as comments) to model files"
2
+
3
+ task :annotate_models do
4
+ require File.join(File.dirname(__FILE__), "../lib/annotate_models.rb")
5
+ AnnotateModels.do_annotations
6
+ end
@@ -0,0 +1,48 @@
1
+ namespace :db do
2
+
3
+ # We need some things to be able to run the migrations
4
+ require 'active_record'
5
+ require 'yaml'
6
+ require "csv"
7
+ require "fileutils"
8
+
9
+ # We need a database connection, and to load in the models.
10
+ require File.join(File.dirname(__FILE__),'..','lib','initdb')
11
+
12
+ Dir.new(File.join(WXRCG_ROOT,'lib','models')).each {|file| load File.join(WXRCG_ROOT,'lib','models', file) unless file == "." or file ==".."}
13
+
14
+
15
+ # Tasks Begin here
16
+
17
+ desc "Re-create the database from migrations."
18
+ task :rebuild => :environment do
19
+ configs = Init.config
20
+
21
+ configs.each do |conf|
22
+ puts conf.to_s
23
+ puts "Dropping DB: #{conf[1]["database"]}"
24
+ drop_database(conf[1])
25
+ end
26
+ puts "Migrating DB"
27
+ ActiveRecord::Migrator.migrate('db/migrate', nil )
28
+ puts "Populating DB"
29
+ ActiveRecord::Migrator.migrate('db/populate', nil )
30
+ end
31
+
32
+ desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
33
+ task :migrate => :environment do
34
+ ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
35
+ end
36
+
37
+ desc "Populate the database through scripts in db/populate."
38
+ task :populate => :environment do
39
+ ActiveRecord::Migrator.migrate('db/populate', nil )
40
+ end
41
+
42
+ task :environment do
43
+ end
44
+
45
+ def drop_database(config)
46
+ FileUtils.rm(config['database']) unless !File.exists?(config['database'])
47
+ end
48
+ end
@@ -0,0 +1,11 @@
1
+ namespace :doc do
2
+ desc "Generate documentation for the application. Set custom template with TEMPLATE=/path/to/rdoc/template.rb or title with TITLE=\"Custom Title\""
3
+ Rake::RDocTask.new("app") { |rdoc|
4
+ rdoc.rdoc_dir = 'doc/app'
5
+ rdoc.template = ENV['template'] if ENV['template']
6
+ rdoc.title = ENV['title'] || "wxRCG Docs"
7
+ rdoc.options << '--line-numbers' << '--inline-source'
8
+ rdoc.options << '--charset' << 'utf-8'
9
+ rdoc.rdoc_files.include('lib/**/*.rb')
10
+ }
11
+ end
@@ -0,0 +1,18 @@
1
+ begin
2
+ require 'jeweler'
3
+ Jeweler::Tasks.new do |gemspec|
4
+ gemspec.name = "wxrcg"
5
+ gemspec.summary = "Some basic tools for helping DMs/players run PathfinderRPG games."
6
+ 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."
7
+ gemspec.email = "nevyn@anferny.me.uk"
8
+ gemspec.homepage = "http://codaset.com/nevynxxx/wxrcg#"
9
+ gemspec.authors = ["Nevynxxx"]
10
+ gemspec.add_dependency('sqlite3-ruby')
11
+ gemspec.add_dependency('activerecord')
12
+ gemspec.add_dependency('wxruby-ruby19', '>= 2.0.0')
13
+
14
+ end
15
+ Jeweler::GemcutterTasks.new
16
+ rescue LoadError
17
+ puts "Jeweler not available. Install it with: sudo gem install jeweler -s http://gems.github.com"
18
+ end
@@ -0,0 +1,8 @@
1
+ task :default => [:test_models]
2
+
3
+ desc "Run basic tests"
4
+ Rake::TestTask.new("test_models") { |t|
5
+ t.pattern = 'tests/*_model_test.rb'
6
+ t.verbose = true
7
+ t.warning = false
8
+ }
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class ClassLevelTest < ActiveSupport::TestCase
4
+ # Replace this with your real tests.
5
+ test "the truth" do
6
+ assert true
7
+ end
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wxrcg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nevynxxx
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-15 00:00:00 +01:00
12
+ date: 2009-10-28 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -49,6 +49,7 @@ email: nevyn@anferny.me.uk
49
49
  executables:
50
50
  - stats
51
51
  - dm_screen
52
+ - wxrcg
52
53
  - weapon_add
53
54
  extensions: []
54
55
 
@@ -64,28 +65,40 @@ files:
64
65
  - bin/dm_screen
65
66
  - bin/stats
66
67
  - bin/weapon_add
68
+ - bin/wxrcg
67
69
  - config/database.yml
70
+ - db/csv/characters.csv
71
+ - db/csv/weapon_special_qualities_weapons.csv
72
+ - db/csv/weapons.csv
68
73
  - db/development.sqlite
69
- - db/development.sqlite3
70
- - db/sqlite scripts/create_armours.sql
71
- - db/sqlite scripts/create_categories.sql
72
- - db/sqlite scripts/create_characters.sql
73
- - db/sqlite scripts/create_races.sql
74
- - db/sqlite scripts/create_weapons.sql
75
- - db/sqlite scripts/critical.sql
76
- - db/sqlite scripts/damage.sql
77
- - db/sqlite scripts/damage_type.sql
78
- - db/sqlite scripts/encumbrance_type.sql
79
- - db/sqlite scripts/training_type.sql
80
- - db/sqlite scripts/weapon_special_qualities_weapons.sql
74
+ - db/migrate/2009101820235900_create_weapon_special_qualities_weapons.rb
75
+ - db/migrate/2009101820235901_create_characters.rb
76
+ - db/migrate/2009101820235902_create_weapons.rb
77
+ - db/migrate/2009101820235903_create_critical.rb
78
+ - db/migrate/2009101820235904_create_encumbrance_type.rb
79
+ - db/migrate/2009101820235905_create_categories.rb
80
+ - db/migrate/2009101820235906_create_training_type.rb
81
+ - db/migrate/2009101820235908_create_damage.rb
82
+ - db/migrate/2009101820235909_create_damage_type.rb
83
+ - db/migrate/2009101820235911_create_races.rb
84
+ - db/migrate/2009101820235912_create_armours.rb
85
+ - db/migrate/20091021094104_create_class_levels.rb
86
+ - db/migrate/20091024124832_create_sizes.rb
87
+ - db/migrate/20091025152901_add_characters_class_levels.rb
88
+ - db/populate/90011024124832_populate_weapons.rb
89
+ - db/populate/90091024173652_populate_characters.rb
90
+ - db/populate/90091028112137_populate_class_levels.rb
81
91
  - db/test.sqlite
82
- - lib/character.old.rb
92
+ - lib/annotate_models.rb
83
93
  - lib/controllers/character_controller.rb
84
94
  - lib/controllers/dm_screen_controller.rb
85
95
  - lib/controllers/weapon_controller.rb
86
96
  - lib/initdb.rb
87
97
  - lib/models/armour.rb
98
+ - lib/models/category.rb
88
99
  - lib/models/character.rb
100
+ - lib/models/class_level.rb
101
+ - lib/models/class_level_special_quality.rb
89
102
  - lib/models/critical.rb
90
103
  - lib/models/damage.rb
91
104
  - lib/models/damage_type.rb
@@ -98,10 +111,17 @@ files:
98
111
  - lib/views/abilities_frame.rb
99
112
  - lib/views/char_select_dialog.rb
100
113
  - lib/views/dm_screen_frame.rb
114
+ - lib/views/level_frame.rb
101
115
  - lib/views/weapon_screen_frame.rb
102
116
  - log/.keep_me
117
+ - tasks/annotate_models_tasks.rake
118
+ - tasks/databases.rake
119
+ - tasks/documentation.rake
120
+ - tasks/gemcutter.rake
121
+ - tasks/unit_tests.rake
103
122
  - tests/armour_model_test.rb
104
123
  - tests/character_model_test.rb
124
+ - tests/class_level_test.rb
105
125
  - tests/critical_model_test.rb
106
126
  - tests/damage_model_test.rb
107
127
  - tests/damage_type_model_test.rb
File without changes
@@ -1,16 +0,0 @@
1
- drop table armours;
2
- create table armours (
3
- id integer not null primary key,
4
- name varchar(255),
5
- category_id integer,
6
- cost integer,
7
- bonus integer,
8
- max_dex integer,
9
- check_pen integer,
10
- spell_fail integer,
11
- speed_30 integer,
12
- speed_20 integer,
13
- weight integer
14
- );
15
- insert into armours values (NULL,'Hide',2,15,4,4,-3,20,20,15,25);
16
- insert into armours values (NULL,'None',0,0,0,0,0,0,0,0,0);