spell.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // Created by IgorBat on 21.04.2018.
  3. //
  4. #include "abstractfactory.h"
  5. #include "skills/spell.h"
  6. #include <iostream>
  7. #include <algorithm>
  8. #include <cassert>
  9. #include <string>
  10. #include <QFile>
  11. #include <QString>
  12. #include <QTextStream>
  13. Spell::Spell(QString parameters) {
  14. QStringList params = parameters.split("\n");
  15. assert(params.size() >= 1);
  16. spell_name_ = param[0];
  17. QString spell_folder = ":/assets/skills/" + spell_name_ + "/";
  18. loadSpellDescr(spell_folder);
  19. loadSpellIcon(spell_folder);
  20. loadSpellTraits(spell_folder);
  21. }
  22. void Spell::loadSpellDescr(QString spell_folder) {
  23. QFile file(spell_folder + "descr.txt");
  24. file.open(QIODevice::ReadOnly);
  25. QTextStream in(&file);
  26. in.setCodec("UTF-8");
  27. spell_descr_ = in.readAll();
  28. }
  29. void Spell::loadSpellIcon(QString spell_folder) {
  30. spell_icon_.load(spell_folder + "icon.png");
  31. }
  32. void Spell::loadSpellTraits(QString spell_folder) {
  33. /*
  34. * you can do it by yourself, i need to sleep
  35. */
  36. }
  37. QString Spell::getSpellName() const {
  38. return spell_name_;
  39. }
  40. QString Spell::getSpellDescr() const {
  41. return spell_descr_;
  42. }
  43. QImage Spell::getSpellIcon() const {
  44. return spell_icon_;
  45. }
  46. int Spell::getDistance(){
  47. return distance_;
  48. }
  49. void setDistance(int value){
  50. distance_ = value;
  51. }
  52. bool getForCell(){
  53. return forCell_;
  54. }
  55. void setForCell(bool value){
  56. forCell_ = value;
  57. }
  58. bool Spell::canCastToCell(Cell* destination, Cell* from){
  59. if(from -> lenOfActualPath(destination) == 1) return true;
  60. return false;
  61. }