package module.map;
import module.character.api.ICharacter;
import module.item.SingleItemList;
import module.map.api.IDoor;
import module.map.constants.CDoorAttribute.doorAttribute;
import module.map.constants.CDoorAttribute.doorStatus;
public class BaseDoor implements IDoor {
private String description = null;
private PositionDoor pd = null;
private doorAttribute da;
private doorStatus ds;
private String keyName = null;
public BaseDoor(String desc, PositionDoor pd) {
this.description = desc;
this.pd = pd;
this.da = doorAttribute.UNLOCKABLE;
this.ds = doorStatus.CLOSED;
}
@Override
public void setDescription(String des) {
this.description = des;
}
@Override
public String getDescription() {
return this.description;
}
@Override
public void setDoorPosition(PositionDoor pd) {
this.pd = pd;
}
@Override
public PositionDoor getDoorPosition() {
return this.pd;
}
@Override
public void setDoorAttribute(doorAttribute da) {
this.da = da;
}
@Override
public doorAttribute getDoorAttribute() {
return this.da;
}
@Override
public void setDoorStatus(doorStatus ds) {
this.ds = ds;
}
@Override
public doorStatus getDoorStatus() {
return this.ds;
}
@Override
public void setKeyName(String name) {
this.keyName = name;
}
@Override
public String getKeyName() {
return this.keyName;
}
@Override
public boolean onLock(ICharacter c) {
return hasKey(c);
}
@Override
public boolean onUnlock(ICharacter c) {
return hasKey(c);
}
private boolean hasKey(ICharacter c) {
for (SingleItemList list : c.getMyGroup().getInventory().itemList) {
if (keyName.equals(list.list.get(0).getEngName()))
return true;
}
return false;
}
}