Package l2p.gameserver.model.instances

Source Code of l2p.gameserver.model.instances.L2FlameControlTowerInstance

package l2p.gameserver.model.instances;

import l2p.gameserver.instancemanager.SiegeManager;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.L2Skill;
import l2p.gameserver.model.L2Zone;
import l2p.gameserver.model.entity.siege.Siege;
import l2p.gameserver.model.entity.siege.castle.CastleSiege;
import l2p.gameserver.templates.L2NpcTemplate;

/**
* @Author: Death
* @Date: 17/9/2007
* @Time: 17:31:36
* <p/>
* TODO: обработка трэпов :)
*/
public class L2FlameControlTowerInstance extends L2ControlTowerInstance
{
  private L2Zone zone;
  private L2Skill skill;

  /**
   * Создаеь новый инстанс вышки отвечающий за ловушки.
   *
   * @param objectId ObjectID с IDFactory
   * @param template Темплейт
   */
  public L2FlameControlTowerInstance(int objectId, L2NpcTemplate template, CastleSiege siege, int maxHp)
  {
    super(objectId, template, siege, maxHp);
  }

  /**
   * Получение зоны с ловушкой, зо которую отвечает этот инстанс
   *
   * @return зона с ловушкой
   */
  public L2Zone getZone()
  {
    return zone;
  }

  /**
   * Установка зоны с ловушкой подконтрольной этому инстансу
   *
   * @param zone зона
   */
  public void setZone(L2Zone zone)
  {
    this.zone = zone;
  }

  /**
   * Возвращает скилл которым на даный момент пользуется зона
   *
   * @return скилл
   */
  public L2Skill getSkill()
  {
    return skill;
  }

  /**
   * Устанавливает скилл для подконтролькной зоны
   *
   * @param skill скилл
   */
  public void setSkill(L2Skill skill)
  {
    this.skill = skill;
  }

  /**
   * Обработка смерти вышки:
   * 1). Отключение подконтрольной зоны
   * 2). Отсылка всем кто на поле боя пакета о отключении подконтрольной зоны
   */
  @Override
  public void onDeath()
  {
    zone.setActive(false);
    sendTrapStatus();
  }

  /**
   * Спавн вышки, установка зоны в активную
   * 1). Включение подконтролькной зоны
   * 2). Отсылка всем кто на поле боя пакета о включении подконтрольной зоны
   */
  @Override
  public void onSpawn()
  {
    zone.setActive(true);
    sendTrapStatus();
    super.onSpawn();
  }

  /**
   * Отсылает пакеты о состоянии ловушек всем игрокам которые находятся на поле боя
   */
  private void sendTrapStatus()
  {
    Siege s = SiegeManager.getSiege(this, true);
    if(s == null)
    {
      System.err.println("Errow while getting siege zone for L2FlameControlTowerInstance");
      return;
    }
    for(L2Player p : s.getPlayersInZone())
    {
      s.sendTrapStatus(p, true);
    }
  }
}
TOP

Related Classes of l2p.gameserver.model.instances.L2FlameControlTowerInstance

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.