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.
- data/.gitignore +1 -0
- data/Rakefile +4 -27
- data/VERSION +1 -1
- data/bin/wxrcg +20 -0
- data/db/csv/characters.csv +4 -0
- data/db/csv/weapon_special_qualities_weapons.csv +8 -0
- data/db/csv/weapons.csv +21 -0
- data/db/development.sqlite +0 -0
- data/db/migrate/2009101820235900_create_weapon_special_qualities_weapons.rb +21 -0
- data/db/migrate/2009101820235901_create_characters.rb +27 -0
- data/db/migrate/2009101820235902_create_weapons.rb +21 -0
- data/db/migrate/2009101820235903_create_critical.rb +19 -0
- data/db/migrate/2009101820235904_create_encumbrance_type.rb +16 -0
- data/db/migrate/2009101820235905_create_categories.rb +18 -0
- data/db/migrate/2009101820235906_create_training_type.rb +15 -0
- data/db/migrate/2009101820235908_create_damage.rb +28 -0
- data/db/migrate/2009101820235909_create_damage_type.rb +21 -0
- data/db/migrate/2009101820235911_create_races.rb +26 -0
- data/db/migrate/2009101820235912_create_armours.rb +23 -0
- data/db/migrate/20091021094104_create_class_levels.rb +21 -0
- data/db/migrate/20091024124832_create_sizes.rb +21 -0
- data/db/migrate/20091025152901_add_characters_class_levels.rb +12 -0
- data/db/populate/90011024124832_populate_weapons.rb +37 -0
- data/db/populate/90091024173652_populate_characters.rb +31 -0
- data/db/populate/90091028112137_populate_class_levels.rb +46 -0
- data/lib/annotate_models.rb +139 -0
- data/lib/initdb.rb +45 -19
- data/lib/models/armour.rb +18 -0
- data/lib/models/category.rb +11 -0
- data/lib/models/character.rb +39 -3
- data/lib/models/class_level.rb +18 -0
- data/lib/models/class_level_special_quality.rb +2 -0
- data/lib/models/critical.rb +10 -0
- data/lib/models/damage.rb +10 -0
- data/lib/models/damage_type.rb +10 -0
- data/lib/models/encumbrance_type.rb +9 -0
- data/lib/models/race.rb +16 -0
- data/lib/models/size.rb +11 -0
- data/lib/models/training_type.rb +9 -0
- data/lib/models/weapon.rb +20 -1
- data/lib/models/weapon_special_quality.rb +9 -0
- data/lib/views/level_frame.rb +87 -0
- data/lib/views/weapon_screen_frame.rb +1 -1
- data/tasks/annotate_models_tasks.rake +6 -0
- data/tasks/databases.rake +48 -0
- data/tasks/documentation.rake +11 -0
- data/tasks/gemcutter.rake +18 -0
- data/tasks/unit_tests.rake +8 -0
- data/tests/class_level_test.rb +8 -0
- metadata +35 -15
- data/db/development.sqlite3 +0 -0
- data/db/sqlite scripts/create_armours.sql +0 -16
- data/db/sqlite scripts/create_categories.sql +0 -10
- data/db/sqlite scripts/create_characters.sql +0 -21
- data/db/sqlite scripts/create_races.sql +0 -9
- data/db/sqlite scripts/create_weapons.sql +0 -16
- data/db/sqlite scripts/critical.sql +0 -12
- data/db/sqlite scripts/damage.sql +0 -21
- data/db/sqlite scripts/damage_type.sql +0 -15
- data/db/sqlite scripts/encumbrance_type.sql +0 -10
- data/db/sqlite scripts/training_type.sql +0 -8
- data/db/sqlite scripts/weapon_special_qualities_weapons.sql +0 -17
- data/lib/character.old.rb +0 -72
data/lib/models/damage_type.rb
CHANGED
@@ -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
|
data/lib/models/race.rb
CHANGED
@@ -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
|
data/lib/models/size.rb
CHANGED
@@ -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
|
data/lib/models/training_type.rb
CHANGED
data/lib/models/weapon.rb
CHANGED
@@ -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
|
158
|
+
weapon.has_quality = WeaponSpecialQuality.find_by_name(sq.get_label)
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
@@ -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
|
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.
|
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-
|
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/
|
70
|
-
- db/
|
71
|
-
- db/
|
72
|
-
- db/
|
73
|
-
- db/
|
74
|
-
- db/
|
75
|
-
- db/
|
76
|
-
- db/
|
77
|
-
- db/
|
78
|
-
- db/
|
79
|
-
- db/
|
80
|
-
- db/
|
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/
|
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
|
data/db/development.sqlite3
DELETED
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);
|