freg  0.3
Free-Roaming Elementary Game
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Weapons.cpp
Go to the documentation of this file.
1  /* freg, Free-Roaming Elementary Game with open and interactive world
2  * Copyright (C) 2012-2014 Alexander 'mmaulwurff' Kromm
3  * mmaulwurff@gmail.com
4  *
5  * This file is part of FREG.
6  *
7  * FREG is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * FREG is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with FREG. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #include "blocks/Weapons.h"
21 #include "blocks/Inventory.h"
22 #include "BlockManager.h"
23 #include "Shred.h"
24 
25 // Weapon::
26  QString Weapon::FullName() const {
27  switch ( Sub() ) {
28  case STONE: return QObject::tr("Pebble");
29  case IRON: return QObject::tr("Spike");
30  case BONE: return QObject::tr("Bone");
31  case SKY: return QObject::tr("Air");
32  case SUB_NUT: return SubNameUpper(SUB_NUT);
33  default: return QObject::tr("Stick (%1)").arg(SubName(Sub()));
34  }
35  }
36 
37  int Weapon::Weight() const { return Block::Weight()/4; }
40 
41  int Weapon::DamageLevel() const {
42  switch ( Sub() ) {
43  default: return 1;
44  case WOOD: return 4;
45  case BONE: return 5;
46  case STONE: return 7;
47  case IRON: return 10;
48  case STEEL: return 12;
49  case ADAMANTINE: return 20;
50  }
51  }
52 
53  int Weapon::DamageKind() const {
54  switch ( Sub() ) {
55  case IRON: return DAMAGE_THRUST;
56  case SKY: return DAMAGE_ULTIMATE;
57  default: return DAMAGE_CRUSH;
58  }
59  }
60 
61 // Pick::
62  int Pick::DamageKind() const { return DAMAGE_MINE; }
63 
64  QString Pick::FullName() const {
65  return QObject::tr("Pick (%1)").arg(SubName(Sub()));
66  }
67 
68 // Shovel::
69  int Shovel::DamageKind() const { return DAMAGE_DIG; }
70 
71  QString Shovel::FullName() const {
72  return QObject::tr("Shovel (%1)").arg(SubName(Sub()));
73  }
74 
75 // Hammer::
76  int Hammer::DamageKind() const { return DAMAGE_CRUSH; }
77 
78  QString Hammer::FullName() const {
79  return QObject::tr("Hammer (%1)").arg(SubName(Sub()));
80  }
81 
82 // Axe::
83  int Axe::DamageKind() const { return DAMAGE_CUT; }
84 
85  QString Axe::FullName() const {
86  return QObject::tr("Axe (%1)").arg(SubName(Sub()));
87  }
16
Definition: header.h:176
10
Definition: header.h:170
push_reaction
Definition: header.h:95
int DamageKind() const override
Definition: Weapons.cpp:76
static QString SubName(int sub)
Returns translated substance name.
Definition: Block.cpp:69
static QString SubNameUpper(int sub)
Returns translated substance name with first upper letter.
Definition: Block.cpp:77
QString FullName() const override
Definition: Weapons.cpp:78
virtual int Weight() const
Definition: Block.cpp:242
QString FullName() const override
Definition: Weapons.cpp:64
wearable Wearable() const override
Definition: Weapons.cpp:38
2
Definition: Block.h:41
int DamageKind() const override
Definition: Weapons.cpp:83
1
Definition: Block.h:40
int DamageKind() const override
Definition: Weapons.cpp:62
int DamageLevel() const override
Definition: Weapons.cpp:41
int Weight() const override
Definition: Weapons.cpp:37
3
Definition: header.h:163
QString FullName() const override
Definition: Weapons.cpp:85
Provides declaration for class Inventory for freg.
QString FullName() const override
Definition: Weapons.cpp:71
push_reaction PushResult(dirs) const override
Definition: Weapons.cpp:39
int Sub() const
Definition: Block.h:144
wearable
Definition: Block.h:28
12
Definition: header.h:172
0
Definition: Block.h:39
Definition: header.h:101
23
Definition: header.h:183
24
Definition: header.h:184
dirs
Definition: header.h:85
22
Definition: header.h:182
0
Definition: header.h:160
QString FullName() const override
Definition: Weapons.cpp:26
int DamageKind() const override
Definition: Weapons.cpp:53
int DamageKind() const override
Definition: Weapons.cpp:69