MapleSummon.java
上传用户:gwt600
上传日期:2021-06-03
资源大小:704k
文件大小:3k
源码类别:

游戏

开发平台:

Java

  1. /*
  2. This file is part of the OdinMS Maple Story Server
  3.     Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc> 
  4.                        Matthias Butz <matze@odinms.de>
  5.                        Jan Christian Meyer <vimes@odinms.de>
  6.     This program is free software: you can redistribute it and/or modify
  7.     it under the terms of the GNU Affero General Public License version 3
  8.     as published by the Free Software Foundation. You may not use, modify
  9.     or distribute this program under any other version of the
  10.     GNU Affero General Public License.
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.     GNU Affero General Public License for more details.
  15.     You should have received a copy of the GNU Affero General Public License
  16.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. package net.sf.odinms.server.maps;
  19. import java.awt.Point;
  20. import net.sf.odinms.client.MapleCharacter;
  21. import net.sf.odinms.client.MapleClient;
  22. import net.sf.odinms.client.SkillFactory;
  23. import net.sf.odinms.tools.MaplePacketCreator;
  24. /**
  25.  *
  26.  * @author Jan
  27.  */
  28. public class MapleSummon extends AbstractAnimatedMapleMapObject {
  29. private MapleCharacter owner;
  30. private int skillLevel;
  31. private int skill;
  32. private int hp;
  33. private SummonMovementType movementType;
  34. public MapleSummon(MapleCharacter owner, int skill, Point pos, SummonMovementType movementType) {
  35. super();
  36. this.owner = owner;
  37. this.skill = skill;
  38. this.skillLevel = owner.getSkillLevel(SkillFactory.getSkill(skill));
  39. if (skillLevel == 0) {
  40. throw new RuntimeException("Trying to create a summon for a char without the skill");
  41. }
  42. this.movementType = movementType;
  43. setPosition(pos);
  44. }
  45. public void sendSpawnData(MapleClient client) {
  46. client.getSession().write(MaplePacketCreator.spawnSpecialMapObject(this, skillLevel, false));
  47. }
  48. public void sendDestroyData(MapleClient client) {
  49. client.getSession().write(MaplePacketCreator.removeSpecialMapObject(this, false));
  50. }
  51. public MapleCharacter getOwner() {
  52. return this.owner;
  53. }
  54. public int getSkill() {
  55. return this.skill;
  56. }
  57. public int getHP() {
  58. return this.hp;
  59. }
  60. public void addHP(int delta) {
  61. this.hp += delta;
  62. }
  63. public SummonMovementType getMovementType() {
  64. return movementType;
  65. }
  66. public boolean isPuppet() {
  67. return (skill == 3111002 || skill == 3211002 || skill == 5211001);
  68. }
  69. public boolean isSummon() {
  70. return (skill == 2311006 || skill == 2321003 || skill == 2121005 || skill == 2221005 || skill == 5211002);
  71. }
  72. public int getSkillLevel() {
  73. return skillLevel;
  74. }
  75. @Override
  76. public MapleMapObjectType getType() {
  77. return MapleMapObjectType.SUMMON;
  78. }
  79. }