-
Notifications
You must be signed in to change notification settings - Fork 0
/
combat_actor_spec.rb
80 lines (72 loc) · 2.91 KB
/
combat_actor_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# -*- coding: utf-8 -*-
describe Eretheal::CombatActor do
subject { Enemy }
let(:character) { FactoryGirl.create :character, equip: FactoryGirl.create(:equip) }
let(:enemy) { FactoryGirl.create :enemy }
let(:sword) { FactoryGirl.create :inventory_item, item: FactoryGirl.create(:sword_item, speed: -1, status_adjustment: FactoryGirl.create(:status_adjustment, dex: 1)), character: character}
let(:armor) { FactoryGirl.create :inventory_item, item: FactoryGirl.create(:armor_item, status_adjustment: FactoryGirl.create(:status_adjustment, vit: 1)), character: character}
before do
sword.equip
armor.equip
enemy.level = 1
end
context '能力値が装備品の修正を受けていること' do
it { character.total_dex.should eq 7 }
it { character.total_vit.should eq 7 }
context 'Enemyであれば修正値は受けないこと' do
it { enemy.total_vit.should eq enemy.vit }
end
context '能力値がメモ化されていること' do
before do
character.total_dex
character.equip.weapon = nil
end
it { character.total_dex.should eq 7 }
end
end
context 'HP最大値を整数として得られること' do
it { character.max_hp.should be_integer }
it { enemy.max_hp.should be_integer }
end
context 'MP最大値を整数として得られること' do
it { character.max_mp.should be_integer }
it { enemy.max_mp.should be_integer }
end
context '武器攻撃時のスピードを整数として得られること' do
it { character.attack_speed_with_weapon.should be_integer }
it { enemy.attack_speed_with_weapon.should be_integer }
end
context '魔法攻撃時のスピードを整数として得られること' do
it { character.attack_speed_with_magic.should be_integer }
it { enemy.attack_speed_with_magic.should be_integer }
end
context 'スピード値が整数として得られること' do
it { character.speed.should be_integer }
it { enemy.speed.should be_integer }
end
context '武器のアイテムタイプを得られること' do
it { character.weapon_item_type.should eq 'sword' }
it { enemy.weapon_item_type.should be_nil }
context 'なにも装備していないときは拳属性になること' do
before do
character.equip.weapon = nil
end
it { character.weapon_item_type.should eq 'fist' }
end
end
context 'Actionをセットできること' do
let(:skill) { FactoryGirl.create :skill }
before do
character.assigned_skills << FactoryGirl.create(:assigned_skill, skill: skill)
character.action = skill
enemy.action = skill
end
it { character.action.should eq skill }
it { enemy.action.should eq skill}
context 'Actionではないものをセットしたとき' do
it '例外が発生すること' do
expect { character.action = FactoryGirl.create :item }.to raise_error
end
end
end
end