src/Artifact.javasrc/Artifact.javaclassArtifactextendsCave{
publicint creatureIndex =0;
publicArtifact(int index,String type,int creatureIndex){
super(type, index);
this.creatureIndex = creatureIndex;
}
@Override
publicString toString(){
// Return neater output of the class data
return"[Artifact]: \n\tOwner Index = "
+Integer.toString(this.creatureIndex)
+" \n\tArtifact Type = "+this.type;
}
}
src/Cave.javasrc/Cave.javapublicclassCave{
publicint index =0;
publicString type =null;
publicString name =null;
/***
* Constructor
* @param index
*/
publicCave(int index){
this.index = index;
}
publicCave(int index,String type,String name){
this.index = index;
this.type = type;
this.name = name;
}
publicCave(int index,String name){
this.index = index;
this.name = name;
}
publicCave(String type,int index){
this.index = index;
this.type = type;
}
}
src/Creature.javasrc/Creature.javaimport java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
classCreatureextendsCaveimplementsActionListener,Runnable{
publicint partyIndex =0;
publicint empathyValue;
publicint fearValue;
publicdouble carryingCapacity;
publicint age;
publicint weight;
publicdouble height;
publicArrayList<Treasure> treasures =newArrayList<Treasure>();
publicArrayList<Artifact> artifacts =newArrayList<Artifact>();
publicArrayList<Jobs> jobs =newArrayList<Jobs>();
publiclong jobTime =0;
publicJobs currentJob =null;
publicvolatileboolean runJob =false;
publicvolatileboolean cancelJob =false;
JButton cancelButton =newJButton("Cancel Job");
JButton startButton =newJButton("Start Job");
publicCreature(int index,String type,String name,int partyIndex,
int empathyValue,int fearValue,double carryingCapacity){
super(index, type, name);
this.partyIndex = partyIndex;
this.empathyValue = empathyValue;
this.fearValue = fearValue;
this.carryingCapacity = carryingCapacity;
}
publicCreature(int index,String type,String name,int partyIndex,
int empathyValue,int fearValue,double carryingCapacity,int age,
int weight,double height){
super(index, type, name);
this.partyIndex = partyIndex;
this.empathyValue = empathyValue;
this.fearValue = fearValue;
this.carryingCapacity = carryingCapacity;
this.age = age;
this.weight = weight;
this.height = height;
}
publicvoid addTreature(Treasure t){
if(t !=null&& t instanceofTreasure&& t.creatureIndex !=0){
this.treasures.add(t);
}
}
publicvoid addArtifact(Artifact a){
if(a !=null&& a instanceofArtifact&& a.creatureIndex !=0){
this.artifacts.add(a);
}
}
@Override
publicString toString(){
String output ="";
output +="[Creature]: \n\tType = "+this.type +" \n\tName = "
+this.name +" \n\tParty Index = "
+Integer.toString(this.partyIndex)+" \n\tEmpathy Value = "
+Integer.toString(this.empathyV.