Package lineage2.gameserver.model.entity.events.objects

Source Code of lineage2.gameserver.model.entity.events.objects.DoorObject

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package lineage2.gameserver.model.entity.events.objects;

import lineage2.gameserver.instancemanager.ReflectionManager;
import lineage2.gameserver.model.entity.Reflection;
import lineage2.gameserver.model.entity.events.GlobalEvent;
import lineage2.gameserver.model.instances.DoorInstance;

/**
* @author Mobius
* @version $Revision: 1.0 $
*/
public class DoorObject implements SpawnableObject, InitableObject
{
  /**
   *
   */
  private static final long serialVersionUID = 1L;
  /**
   * Field _id.
   */
  private final int _id;
  /**
   * Field _door.
   */
  private DoorInstance _door;
  /**
   * Field _weak.
   */
  private boolean _weak;
 
  /**
   * Constructor for DoorObject.
   * @param id int
   */
  public DoorObject(int id)
  {
    _id = id;
  }
 
  /**
   * Method initObject.
   * @param e GlobalEvent
   * @see lineage2.gameserver.model.entity.events.objects.InitableObject#initObject(GlobalEvent)
   */
  @Override
  public void initObject(GlobalEvent e)
  {
    _door = e.getReflection().getDoor(_id);
  }
 
  /**
   * Method spawnObject.
   * @param event GlobalEvent
   * @see lineage2.gameserver.model.entity.events.objects.SpawnableObject#spawnObject(GlobalEvent)
   */
  @Override
  public void spawnObject(GlobalEvent event)
  {
    refreshObject(event);
  }
 
  /**
   * Method despawnObject.
   * @param event GlobalEvent
   * @see lineage2.gameserver.model.entity.events.objects.SpawnableObject#despawnObject(GlobalEvent)
   */
  @Override
  public void despawnObject(GlobalEvent event)
  {
    Reflection ref = event.getReflection();
    if (ref == ReflectionManager.DEFAULT)
    {
      refreshObject(event);
    }
    else
    {
    }
  }
 
  /**
   * Method refreshObject.
   * @param event GlobalEvent
   * @see lineage2.gameserver.model.entity.events.objects.SpawnableObject#refreshObject(GlobalEvent)
   */
  @Override
  public void refreshObject(GlobalEvent event)
  {
    if (!event.isInProgress())
    {
      _door.removeEvent(event);
    }
    else
    {
      _door.addEvent(event);
    }
    if (_door.getCurrentHp() <= 0)
    {
      _door.decayMe();
      _door.spawnMe();
    }
    _door.setCurrentHp(_door.getMaxHp() * (isWeak() ? 0.5 : 1.), true);
    close(event);
  }
 
  /**
   * Method getUId.
   * @return int
   */
  public int getUId()
  {
    return _door.getDoorId();
  }
 
  /**
   * Method getUpgradeValue.
   * @return int
   */
  public int getUpgradeValue()
  {
    return _door.getUpgradeHp();
  }
 
  /**
   * Method setUpgradeValue.
   * @param event GlobalEvent
   * @param val int
   */
  public void setUpgradeValue(GlobalEvent event, int val)
  {
    _door.setUpgradeHp(val);
    refreshObject(event);
  }
 
  /**
   * Method open.
   * @param e GlobalEvent
   */
  public void open(GlobalEvent e)
  {
    _door.openMe(null, !e.isInProgress());
  }
 
  /**
   * Method close.
   * @param e GlobalEvent
   */
  public void close(GlobalEvent e)
  {
    _door.closeMe(null, !e.isInProgress());
  }
 
  /**
   * Method getDoor.
   * @return DoorInstance
   */
  public DoorInstance getDoor()
  {
    return _door;
  }
 
  /**
   * Method isWeak.
   * @return boolean
   */
  public boolean isWeak()
  {
    return _weak;
  }
 
  /**
   * Method setWeak.
   * @param weak boolean
   */
  public void setWeak(boolean weak)
  {
    _weak = weak;
  }
}
TOP

Related Classes of lineage2.gameserver.model.entity.events.objects.DoorObject

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.