UserHeroModel.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. namespace loyalsoft;
  3. /**
  4. * 玩家的英雄的实体数据
  5. */
  6. class UserHeroModel {
  7. /**
  8. * 唯一的英雄ID
  9. * @var string
  10. */
  11. public $uid;
  12. /**
  13. * 英雄的模板ID
  14. * @var string
  15. */
  16. public $typeId;
  17. /**
  18. * 英雄的当前等级
  19. * @var int
  20. */
  21. public $level;
  22. /**
  23. * 英雄当前等阶
  24. * @var string
  25. */
  26. public $grade;
  27. /**
  28. * 英雄的收集的当前等级满级的累计经验值
  29. * @var int
  30. */
  31. public $maxXp;
  32. /**
  33. * 英雄的当前总经验值
  34. * @var int
  35. */
  36. public $xp;
  37. /**
  38. * 当前等阶 默认是0.
  39. * 0= 绿 1=蓝 2= 红 3= 紫 4= 橙 5
  40. * @var int
  41. * @deprecated since version 0
  42. */
  43. public $strengthLevel;
  44. /**
  45. * 当前星级 默认是0星
  46. * @var int
  47. * @deprecated since version 0
  48. */
  49. public $curStar;
  50. /**
  51. * 当前神血的 血脉等级 默认是0
  52. * @var int
  53. * @deprecated since version 0
  54. */
  55. public $curBloodId;
  56. /**
  57. * 当前卡牌的锁定状态
  58. * true = 锁定
  59. * @var bool
  60. * @deprecated since version 0
  61. */
  62. public $isLocked;
  63. /**
  64. * 技能数据
  65. * @var object
  66. * @deprecated since version 0
  67. */
  68. public $skills;
  69. /**
  70. * 子技能列表(已解锁子技能id)
  71. * @var dic<int,[]int>
  72. */
  73. public $subSkills;
  74. /**
  75. *
  76. * @var object
  77. */
  78. public $equip;
  79. /**
  80. * 当前主线的好感度进度
  81. * @var object
  82. * @deprecated since version 0
  83. */
  84. public $curMainFavor;
  85. /**
  86. * 所有的已经拥有的好感度进度
  87. * @var array
  88. * @deprecated since version 0
  89. */
  90. public $favors;
  91. /**
  92. *
  93. * 构造函数
  94. */
  95. public function __construct() {
  96. $this->level = 1;
  97. $this->xp = 0;
  98. $this->maxXp = 0;
  99. $this->strengthLevel = 0;
  100. $this->curBloodId = 0;
  101. $this->curStar = 0;
  102. $this->isLocked = false;
  103. $this->curMainFavor = 'E';
  104. $this->favors = ArrayInit();
  105. $this->favors[] = 'E';
  106. $this->grade = "D";
  107. //-----------初始化技能的默认数据
  108. $temp = ObjectInit();
  109. $temp->normalSkill = JsonUtil::decode('{"level":1}');
  110. $temp->manuSkill1 = JsonUtil::decode('{"level":1}');
  111. $temp->manuSkill2 = JsonUtil::decode('{"level":1}');
  112. $temp->manuSkill3 = JsonUtil::decode('{"level":1}');
  113. $temp->passiveSkill = JsonUtil::decode('{"level":1}');
  114. $temp->captainSkill = JsonUtil::decode('{"level":1}');
  115. $this->skills = $temp;
  116. $this->subSkills = ObjectInit();
  117. //----初始化装备的默认数据
  118. $this->equip = ObjectInit();
  119. $tempEq = ObjectInit();
  120. $tempEq->weapon = JsonUtil::decode('{"itemuid":0}');
  121. $tempEq->armor = JsonUtil::decode('{"itemuid":0}');
  122. $tempEq->ring = JsonUtil::decode('{"itemuid":0}');
  123. $this->equip = $tempEq;
  124. }
  125. /**
  126. * 判断技能是否可升级
  127. * @param type $mainSkillId
  128. * @param type $subSkillId Description
  129. * @return type
  130. */
  131. public function IsSkillUpdateAble($mainSkillId, $subSkillId) {
  132. $sarr = array("D" => 1, "C" => 2, "B" => 3, "A" => 4, "S" => 5);
  133. $isOk = false;
  134. if (CommUtil::isPropertyExists($this->subSkills, $mainSkillId)) {
  135. if (CommUtil::isPropertyExists($this->subSkills->$mainSkillId, $subSkillId)) {
  136. $sm = GameConfig::subSkill_getItem($subSkillId);
  137. switch ($sm->upgradeConditionType) {
  138. case 1: // 角色等级
  139. $isOk = $this->level >= int($sm->upgradeParameter);
  140. break;
  141. case 2: // 角色品阶
  142. $cur = (array_key_exists($this->grade, $sarr) ? $sarr[$this->grade] : 0);
  143. $require = (array_key_exists($sm->upgradeParameter, $sarr) ? $sarr[$sm->upgradeParameter] : 0);
  144. $isOk = $cur >= $require;
  145. break;
  146. default:
  147. break;
  148. }
  149. }
  150. }
  151. return $isOk;
  152. }
  153. /**
  154. * 判断技能是否可解锁
  155. * @param type $mainSkillId
  156. * @param type $subSkillId Description
  157. * @return type
  158. */
  159. public function IsSkillUnlockAble($mainSkillId, $subSkillId) {
  160. $sarr = array("D" => 1, "C" => 2, "B" => 3, "A" => 4, "S" => 5);
  161. $isOk = false;
  162. if (CommUtil::isPropertyExists($this->subSkills, $mainSkillId)) {
  163. if (CommUtil::isPropertyExists($this->subSkills->$mainSkillId, $subSkillId)) {
  164. $sm = GameConfig::subSkill_getItem($subSkillId);
  165. switch ($sm->unlockConditionType) {
  166. case 1: // 角色等级
  167. $isOk = $this->level >= int($sm->unlockParameter);
  168. break;
  169. case 2: // 角色品阶
  170. $cur = (array_key_exists($this->grade, $sarr) ? $sarr[$this->grade] : 0);
  171. $require = (array_key_exists($sm->unlockParameter, $sarr) ? $sarr[$sm->unlockParameter] : 0);
  172. $isOk = $cur >= $require;
  173. break;
  174. default:
  175. break;
  176. }
  177. }
  178. }
  179. return $isOk;
  180. }
  181. }