package handling.world;
import java.io.Serializable;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public class MapleParty
implements Serializable {
private static final long serialVersionUID = 9179541993413738569L;
private MaplePartyCharacter leader;
private List<MaplePartyCharacter> members = new LinkedList();
private int id;
private int expeditionLink = -1;
private boolean disbanded = false;
public MapleParty(int id, MaplePartyCharacter chrfor) {
this.leader = chrfor;
this.members.add(this.leader);
this.id = id;
}
public MapleParty(int id, MaplePartyCharacter chrfor, int expeditionLink) {
this.leader = chrfor;
this.members.add(this.leader);
this.id = id;
this.expeditionLink = expeditionLink;
}
public boolean containsMembers(MaplePartyCharacter member) {
return this.members.contains(member);
}
public void addMember(MaplePartyCharacter member) {
this.members.add(member);
}
public void removeMember(MaplePartyCharacter member) {
this.members.remove(member);
}
public void updateMember(MaplePartyCharacter member) {
for (int i = 0; i < this.members.size(); i++) {
MaplePartyCharacter chr = (MaplePartyCharacter) this.members.get(i);
if (chr.equals(member)) {
this.members.set(i, member);
}
}
}
public MaplePartyCharacter getMemberById(int id) {
for (MaplePartyCharacter chr : this.members) {
if (chr.getId() == id) {
return chr;
}
}
return null;
}
public MaplePartyCharacter getMemberByIndex(int index) {
return (MaplePartyCharacter) this.members.get(index);
}
public Collection<MaplePartyCharacter> getMembers() {
return new LinkedList(this.members);
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public MaplePartyCharacter getLeader() {
return this.leader;
}
public void setLeader(MaplePartyCharacter nLeader) {
this.leader = nLeader;
}
public int getExpeditionId() {
return this.expeditionLink;
}
public int hashCode() {
int prime = 31;
int result = 1;
result = 31 * result + this.id;
return result;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
MapleParty other = (MapleParty) obj;
if (this.id != other.id) {
return false;
}
return true;
}
public boolean isDisbanded() {
return this.disbanded;
}
public void disband() {
this.disbanded = true;
}
}