2 #ifndef WORLDSIM_ITEM_HPP 3 #define WORLDSIM_ITEM_HPP 25 #include <Container/Table/TableInterface.hpp> 62 std::unordered_map<ItemAction, char>
mAction;
119 virtual std::string getName();
120 virtual std::string getExtendedInfo();
122 virtual std::string getQuality();
163 { std::cout<<
"The "<<getName()<<
" interacts with the "<<obj->
getName()<<
".\n"; }
165 { std::cout<<
"The "<<getName()<<
" interacts with the "<<obj->
getName()<<
".\n"; }
167 { std::cout<<
"The "<<getName()<<
" interacts with the "<<obj->
getName()<<
".\n"; }
170 std::cout<<
"Char interact\n";
175 std::cout<<
"Creature interact\n";
218 {
return "Interact with "+_w->
getName(); }
220 {
return "Interact with "+_w->
getName(); }
223 virtual void addToRecipeManager();
227 information = _information;
231 virtual Texture* currentTexture();
234 std::string getColumn(std::string _column);
235 std::string getColumnType(std::string _column);
237 std::string getSaveData();
238 void loadData(std::string);
252 std::string
getName()
override {
return "Hand"; }
254 virtual Vector <std::string>* getInteractNames(
WorldObject*)
override;
255 virtual Vector <std::string>* getInteractNames(
Static*)
override;
261 virtual void interact(
WorldObject*,
int interactType=0)
override;
278 requiresLocation=
false;
293 attributes.farmingValue=1;
299 std::string
getName()
override {
return "Hoe"; }
318 return stockpileRequirement;
324 if ( _column==
"name" )
328 else if ( _column==
"type" )
332 else if ( _column==
"quality" )
334 return DataTools::toString(getQuality());
340 if ( _column ==
"quality" )
357 std::string
getName()
override {
return "Sword"; }
359 virtual Vector <std::string>* getInteractNames(
WorldObject* _w)
override;
360 virtual Vector <std::string>* getInteractNames(
Item* _w)
override;
361 virtual Vector <std::string>* getInteractNames(
Character* _w)
override;
362 virtual Vector <std::string>* getInteractNames(
Creature* _w)
override;
363 virtual Vector <std::string>* getInteractNames(
LocalTile* _w)
override;
365 virtual void interact (
Creature* obj,
int interactionType=0)
override;
366 virtual void interact (
Character* obj,
int interactionType=0)
override;
373 return stockpileRequirement;
382 if ( _column==
"name" )
386 else if ( _column==
"type" )
390 else if ( _column==
"quality" )
392 return DataTools::toString(getQuality());
398 if ( _column ==
"quality" )
417 virtual Vector <std::string>* getInteractNames(
Character* _w);
418 virtual Vector <std::string>* getInteractNames(
Creature* _w);
421 virtual void interact (
Creature* obj,
int interactionType=0);
422 virtual void interact (
Character* obj,
int interactionType=0);
429 return stockpileRequirement;
442 attributes.huntingValue=2;
445 std::string
getName()
override {
return "Longbow"; }
453 return stockpileRequirement;
459 virtual Vector <std::string>* getInteractNames(
Creature* _target)
override;
461 virtual void interact(
Creature* _target,
int interactType=0)
override;
470 attributes.huntingValue=1;
473 std::string
getName()
override {
return "Spear"; }
480 return stockpileRequirement;
498 attributes.miningValue=1;
501 std::string
getName()
override {
return "Pickaxe"; }
507 virtual Vector <std::string>* getInteractNames(
LocalTile* _target)
override;
509 virtual void interact(
LocalTile* _target,
int interactType=0)
override;
516 return stockpileRequirement;
522 if ( _column==
"name" )
526 else if ( _column==
"type" )
530 else if ( _column==
"quality" )
532 return DataTools::toString(getQuality());
538 if ( _column ==
"quality" )
555 std::string
getName() {
return "Fishing rod"; }
557 virtual void interact (
LocalTile* _tile,
int interactionType = 0);
562 std::cout<<
"You hook the "+_w->
getName();
567 return "Fish in "+_w->
getName();
571 return "Cast fishing rod: "+_w->
getName();
593 return stockpileRequirement;
596 virtual Vector <std::string>* getInteractNames(
LocalTile* _w);
627 attributes.woodcuttingValue=1;
637 return stockpileRequirement;
644 virtual Vector <std::string>* getInteractNames(
WorldObject* _w);
645 virtual Vector <std::string>* getInteractNames(
Item* _w);
646 virtual Vector <std::string>* getInteractNames(
Character* _w);
647 virtual Vector <std::string>* getInteractNames(
Creature* _w);
648 virtual Vector <std::string>* getInteractNames(
LocalTile* _w);
652 std::cout<<
"You chop the TILE "<<obj->
getName()<<
".\n";
656 std::cout<<
"You chop the ITM "<<obj->
getName()<<
".\n";
669 return "Chop the "+_w->
getName();
697 virtual void interact (
LocalTile* obj,
int interactionType = 0)
override;
699 virtual Vector <std::string>* getInteractNames(
WorldObject* _w)
override;
700 virtual Vector <std::string>* getInteractNames(
Item* _w)
override;
701 virtual Vector <std::string>* getInteractNames(
Character* _w)
override;
702 virtual Vector <std::string>* getInteractNames(
Creature* _w)
override;
703 virtual Vector <std::string>* getInteractNames(
LocalTile* _w)
override;
712 return "Light a fire on the "+_w->
getName();
730 virtual void addToRecipeManager()
override;
757 return "Cooked fish";
762 virtual void interact (
Item*,
int interactType=0)
override;
763 virtual void interact (
Character*,
int interactType=0)
override;
764 virtual void interact (
WorldObject*,
int interactType=0)
override;
775 virtual Vector <std::string>* getInteractNames(
Item* _w)
override;
776 virtual Vector <std::string>* getInteractNames(
Character* _w)
override;
778 virtual void addToRecipeManager()
override;
792 {
return "Campfire"; }
820 if (_recipe->
canUse(
this) > 0 )
822 std::cout<<
"Return true\n";
825 std::cout<<
"Return false\n";
840 virtual void addToRecipeManager();
852 Vector <std::string>* getInteractNames(
LocalTile* _w);
853 virtual void interact (
LocalTile* obj,
int interactionType = 0);
867 Vector <std::string>* getInteractNames(
LocalTile* _w);
868 virtual void interact (
LocalTile* obj,
int interactionType = 0);
895 std::string
getName()
override {
return "Deer Pelt"; }
897 virtual void addToRecipeManager()
override;
921 return "Cooked deer meat";
923 return "Raw deer meat";
926 virtual void interact (
Item*,
int interactType=0)
override;
927 virtual void interact (
Character*,
int interactType=0)
override;
928 virtual void interact (
WorldObject*,
int interactType=0)
override;
930 virtual Vector <std::string>* getInteractNames(
Item* _w)
override;
931 virtual Vector <std::string>* getInteractNames(
Character* _w)
override;
951 std::string
getName()
override {
return "Human skin"; }
968 std::string
getName()
override {
return "Human Meat"; }
984 std::string
getName()
override {
return "Leather clothes"; }
999 std::string
getName()
override {
return "Waterskin"; }
1015 std::string
getName()
override {
return "Shelter"; }
1028 std::string
getName()
override {
return "Debug Marker"; }
1044 std::string
getName()
override {
return "Debug Marker"; }
Item_DeerPelt()
Definition: Item.hpp:891
Texture * currentTexture()
Definition: Item.hpp:616
virtual ~Item_Shelter()
Definition: Item.hpp:1012
virtual int interactTime(LocalTile *_w)
Definition: Item.hpp:578
std::string getName() override
Definition: Item.hpp:917
std::string getName() override
Definition: Item.hpp:473
Texture * currentTexture() override
Definition: Item.hpp:1047
Definition: Driver_Settings_Enums.hpp:248
Definition: Creature.hpp:34
Texture TEX_MARKER_RED
Definition: Driver_TextureList.hpp:310
Texture * currentTexture() override
Definition: Item.hpp:1031
Texture TEX_OBJECT_FISH
Definition: Driver_TextureList.hpp:259
Item_DeerMeat()
Definition: Item.hpp:909
virtual std::string getName() override
Definition: Item.hpp:725
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:313
virtual ~Item_HumanMeat()
Definition: Item.hpp:966
virtual int interactTime(WorldObject *_w)
Definition: Item.hpp:574
std::string name
Definition: Item.hpp:33
Texture * currentTexture()
Definition: Item.hpp:432
Definition: WorldObject.hpp:18
Recipe_HuntingBow()
Definition: Item.hpp:276
virtual ~Item_HumanSkin()
Definition: Item.hpp:949
Definition: Driver_Settings_Enums.hpp:272
Item_Campfire()
Definition: Item.hpp:784
Definition: Item.hpp:1022
Texture * currentTexture() override
Definition: Item.hpp:732
float throwMultiplier
Definition: Item.hpp:134
Texture * currentTexture()
Definition: Item.hpp:598
Item_Waterskin()
Definition: Item.hpp:995
virtual Vector< std::string > * getInteractNames(Character *_w)
Definition: Item.hpp:193
Definition: Driver_Settings_Enums.hpp:277
Texture TEX_MARKER_GREEN_SMALL
Definition: Driver_TextureList.hpp:313
virtual ~Item_Waterskin()
Definition: Item.hpp:997
std::string getName() override
Definition: Item.hpp:999
int bluntDamage
Definition: Item.hpp:132
Texture * currentTexture() override
Definition: Item.hpp:899
std::string getName() override
Definition: Item.hpp:357
virtual void interact(Character *obj, int interactionType=0)
Definition: Item.hpp:168
Item_Longbow()
Definition: Item.hpp:440
virtual bool canUseInRecipe(Recipe *_recipe)
Definition: Item.hpp:144
virtual void interact(Item *obj, int interactionType=0)
Definition: Item.hpp:166
Item_Log()
Definition: Item.hpp:691
int CURRENT_ANIMATION_FRAME
Definition: Driver_Settings.cpp:230
virtual bool canUseInRecipe(Recipe *_recipe)
Definition: Item.hpp:815
Texture * currentTexture() override
Definition: Item.hpp:882
Item_Floor()
Definition: Item.hpp:862
short int meleeDamage
Definition: Item.hpp:68
virtual Vector< std::string > * getInteractNames(Creature *_w)
Definition: Item.hpp:195
Definition: Static.hpp:24
virtual std::string getName() override
Definition: Item.hpp:753
Definition: Item.hpp:1036
std::string getName()
Definition: Item.hpp:555
std::unordered_map< ItemAction, char > mAction
Definition: Item.hpp:62
int pierceDamage
Definition: Item.hpp:133
bool isCooked
Definition: Item.hpp:907
std::string getInteractName(LocalTile *_w)
Definition: Item.hpp:569
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:368
std::string getName() override
Definition: Item.hpp:299
Texture TEX_ITEM_LONGBOW
Definition: Driver_TextureList.hpp:241
void add(Resource resource)
Definition: Stockpile.cpp:314
Texture * currentTexture()
Definition: Item.hpp:835
virtual ~Item_DeerPelt()
Definition: Item.hpp:893
Item_Sword()
Definition: Item.hpp:352
virtual int interactTime(LocalTile *_w)
Definition: Item.hpp:184
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:511
Texture * currentTexture() override
Definition: Item.hpp:310
Item_Marker_Green_Small()
Definition: Item.hpp:1040
virtual std::string getName()
Definition: Item.hpp:791
virtual void interact(LocalTile *obj, int interactionType=0)
Definition: Item.hpp:164
std::string getName() override
Definition: Item.hpp:252
virtual void interact(Character *obj, int interactionType=0)
Definition: Item.hpp:658
std::string getName() override
Definition: Item.hpp:445
Texture * currentTexture() override
Definition: Item.hpp:483
Texture TEX_ITEM_WATERSKIN
Definition: Driver_TextureList.hpp:262
virtual ~Item_LeatherClothes()
Definition: Item.hpp:982
Definition: Item_Attributes.hpp:14
Character * owner
Definition: Item.hpp:77
virtual ~Item_Campfire()
Definition: Item.hpp:788
Texture * currentTexture() override
Definition: Item.hpp:766
int hungerRestore
Definition: Item.hpp:83
Definition: Driver_Settings_Enums.hpp:136
Definition: Recipe.hpp:44
std::string getName()
Definition: Item.hpp:413
Texture * currentTexture() override
Definition: Item.hpp:986
std::string getName() override
Definition: Item.hpp:968
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:206
virtual void attachInformation(Item_Information *_information)
Definition: Item.hpp:225
Definition: Driver_Settings_Enums.hpp:273
Texture * currentTexture() override
Definition: Item.hpp:456
Item_Shovel()
Definition: Item.hpp:609
virtual Vector< std::string > * getInteractNames(Item *_w)
Definition: Item.hpp:191
virtual ~Item_Floor()
Definition: Item.hpp:864
Definition: Driver_Settings_Enums.hpp:247
std::string getName() override
Definition: Item.hpp:501
virtual void interact(Creature *obj, int interactionType=0)
Definition: Item.hpp:173
char ammunitionType
Definition: Item.hpp:74
virtual std::string getName()
Definition: Item.cpp:42
virtual ~Item_Wall()
Definition: Item.hpp:849
Item_PlantFibre()
Definition: Item.hpp:877
std::string getName()
Definition: Item.hpp:613
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:267
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:447
Texture * currentTexture() override
Definition: Item.hpp:1017
int chopAmount
Definition: WorldObject.hpp:52
void interact(WorldObject *_w, int interactType=0)
Definition: Item.hpp:560
Texture TEX_FLOOR_WOOD
Definition: Driver_TextureList.hpp:230
std::string getName() override
Definition: Item.hpp:895
Texture TEX_PORTRAIT_SNEK
Definition: Driver_TextureList.hpp:319
int chopTreeCost
Definition: Item.hpp:140
std::string getColumnType(std::string _column) override
Definition: Item.hpp:536
Definition: Stockpile.hpp:29
Item_Wall()
Definition: Item.hpp:847
std::string getInteractName(WorldObject *_w)
Definition: Item.hpp:663
Item_Marker_Red()
Definition: Item.hpp:1026
virtual std::string getName()
Definition: WorldObject.cpp:32
virtual Vector< std::string > * getInteractNames(LocalTile *_w)
Definition: Item.hpp:197
virtual ~Item_Fish()
Definition: Item.hpp:750
Definition: Stockpile.hpp:90
int slashDamage
Definition: Item.hpp:131
Definition: Driver_Settings_Enums.hpp:168
std::string getColumn(std::string _column) override
Definition: Item.hpp:380
Texture TEX_ITEM_PICKAXE
Definition: Driver_TextureList.hpp:253
int fishingCost
Definition: Item.hpp:141
Texture * currentTexture() override
Definition: Item.hpp:955
Texture TEX_OBJECT_LOG
Definition: Driver_TextureList.hpp:256
std::string getColumn(std::string _column) override
Definition: Item.hpp:322
short int count
Definition: Item.hpp:56
Definition: Driver_Settings_Enums.hpp:275
Texture TEX_OBJECT_PLANK
Definition: Driver_TextureList.hpp:220
Texture * currentTexture() override
Definition: Item.hpp:376
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:632
bool sameType(Item *_item)
Definition: Item.hpp:213
virtual int interactTime(WorldObject *_w) override
Definition: Item.hpp:715
virtual std::string getInteractName(LocalTile *_w)
Definition: Item.hpp:219
short int reach
Definition: Item.hpp:71
Texture * currentTexture()
Definition: Item.hpp:794
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:475
std::string getColumn(std::string _column) override
Definition: Item.hpp:520
Texture TEX_CRAFTING_LEATHER
Definition: Driver_TextureList.hpp:295
Definition: Character.hpp:38
std::string getName()
Definition: LocalTile.cpp:147
Definition: Driver_Settings_Enums.hpp:276
Texture TEX_ITEM_KNIFE
Definition: Driver_TextureList.hpp:238
Texture TEX_ITEM_FISHROD
Definition: Driver_TextureList.hpp:244
std::string getInteractName(WorldObject *_w)
Definition: Item.hpp:565
virtual ~Item_Plank()
Definition: Item.hpp:811
Texture TEX_OBJECT_CAMPFIRE[5]
Definition: Driver_TextureList.hpp:265
virtual void interact(Item *obj, int)
Definition: Item.hpp:654
Item_Information * information
Definition: Item.hpp:85
virtual bool canUseInRecipe(Recipe_Wall *_recipe)
Definition: Item.hpp:829
std::string getName() override
Definition: Item.hpp:951
Item_Hand itemHand
Definition: Item.hpp:271
Item_Shelter()
Definition: Item.hpp:1010
Texture TEX_CRAFTING_LEATHER_CLOTHES
Definition: Driver_TextureList.hpp:298
Item_Spear()
Definition: Item.hpp:468
ItemType type
Definition: Item.hpp:58
std::string getColumnType(std::string _column) override
Definition: Item.hpp:396
Texture * currentTexture()
Definition: Item.hpp:870
Texture * currentTexture() override
Definition: Item.hpp:264
Definition: Driver_Settings_Enums.hpp:128
Definition: LocalTile.hpp:34
std::string getInteractName(LocalTile *_w)
Definition: Item.hpp:667
std::string getName()
Definition: Item.hpp:630
virtual int interactTime(LocalTile *_w) override
Definition: Item.hpp:720
Texture * currentTexture()
Definition: Item.hpp:681
Texture TEX_ITEM_SHOVEL
Definition: Driver_TextureList.hpp:247
int baseDamage
Definition: Item.hpp:34
virtual ~Item_Log()
Definition: Item.hpp:695
std::string getName() override
Definition: Item.hpp:1015
std::string getName()
Definition: Item.hpp:838
virtual Vector< std::string > * getInteractNames(Static *_w)
Definition: Item.hpp:199
Item_Knife()
Definition: Item.hpp:411
bool sameType(WorldObject _obj)
Definition: Item.hpp:211
virtual Vector< std::string > * getInteractNames(WorldObject *_w)
Definition: Item.hpp:189
virtual int interactTime(WorldObject *_w)
Definition: Item.hpp:672
Texture TEX_ITEM_SWORD
Definition: Driver_TextureList.hpp:235
int consumeTime
Definition: Item.hpp:82
Texture TEX_OBJECT_TENT
Definition: Driver_TextureList.hpp:268
std::string getName() override
Definition: Item.hpp:1044
Item_Axe()
Definition: Item.hpp:625
Texture TEX_WALL_GREYBRICK_SOUTH
Definition: Driver_TextureList.hpp:224
virtual std::string getInteractName(WorldObject *_w)
Definition: Item.hpp:217
Item_Pickaxe()
Definition: Item.hpp:496
Item_Plank()
Definition: Item.hpp:809
Definition: Item.hpp:1006
std::string getColumnType(std::string _column) override
Definition: Item.hpp:338
Texture * currentTexture() override
Definition: Item.hpp:970
Texture * currentTexture() override
Definition: Item.hpp:1001
std::string getName() override
Definition: Item.hpp:984
Texture TEX_ITEM_FOOD_STEAK_RAW
Definition: Driver_TextureList.hpp:279
virtual int canUse(WorldObject *)
Definition: Recipe.hpp:62
Definition: Recipe.hpp:95
Item_HumanSkin()
Definition: Item.hpp:947
std::string getName() override
Definition: Item.hpp:1028
Item_LeatherClothes()
Definition: Item.hpp:980
short int throwDamage
Definition: Item.hpp:69
Item_HumanMeat()
Definition: Item.hpp:964
std::string getInteractName(LocalTile *_w) override
Definition: Item.hpp:710
Texture * currentTexture() override
Definition: Item.hpp:504
Item_Fish()
Definition: Item.hpp:744
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:424
virtual ~Item_DeerMeat()
Definition: Item.hpp:915
virtual int interactTime(WorldObject *_w)
Definition: Item.hpp:181
Texture * currentTexture()
Definition: Item.hpp:855
Texture TEX_ITEM_FOOD_COOKED_FISH
Definition: Driver_TextureList.hpp:273
Texture TEX_ITEM_AXE
Definition: Driver_TextureList.hpp:250
static StockpileRequirement getStockpileRequirement()
Definition: Item.hpp:587
virtual ~Item_PlantFibre()
Definition: Item.hpp:879
Texture TEX_ITEM_FOOD_STEAK_COOKED
Definition: Driver_TextureList.hpp:276
Item_Fishrod()
Definition: Item.hpp:551
virtual void interact(LocalTile *obj, int interactionType=0)
Definition: Item.hpp:650
virtual void interact(WorldObject *obj, int interactionType=0)
Definition: Item.hpp:162
Item_Attributes attributes
Definition: Item.hpp:60
Definition: Driver_Settings_Enums.hpp:280
Texture TEX_CRAFTING_FLAX
Definition: Driver_TextureList.hpp:292
Item_Hand()
Definition: Item.hpp:250
Texture * currentTexture() override
Definition: Item.hpp:933
Item_Hoe()
Definition: Item.hpp:291
ItemType
Definition: Driver_Settings_Enums.hpp:268