mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-08-04 05:16:21 -04:00
Added aborting for missions, finished delivery missions, cleaned up code
This commit is contained in:
@@ -24,6 +24,8 @@ package resources.objectives;
|
||||
import engine.resources.objects.SWGObject;
|
||||
import engine.resources.scene.Point3D;
|
||||
import main.NGECore;
|
||||
import resources.common.OutOfBand;
|
||||
import resources.common.ProsePackage;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.mission.MissionObject;
|
||||
import resources.objects.tangible.TangibleObject;
|
||||
@@ -33,6 +35,8 @@ import services.mission.MissionObjective;
|
||||
public class DeliveryMissionObjective extends MissionObjective {
|
||||
|
||||
private TangibleObject deliveryObject;
|
||||
private CreatureObject missionGiver;
|
||||
private CreatureObject dropOffNpc;
|
||||
private NGECore core = NGECore.getInstance();
|
||||
|
||||
public DeliveryMissionObjective(MissionObject parent) {
|
||||
@@ -46,18 +50,44 @@ public class DeliveryMissionObjective extends MissionObjective {
|
||||
return;
|
||||
|
||||
String template = "object/mobile/shared_dressed_commoner_tatooine_sullustan_male_06.iff";
|
||||
|
||||
Point3D startLoc = parent.getStartLocation();
|
||||
Point3D destination = parent.getDestination();
|
||||
|
||||
// TODO: Randomize this process.
|
||||
CreatureObject missionGiver = (CreatureObject) core.staticService.spawnObject(template, parent.getPlanet().name, 0, startLoc.x, startLoc.y, startLoc.z, 0, 1);
|
||||
if (missionGiver == null)
|
||||
return;
|
||||
|
||||
missionGiver.setCustomName("a commoner");
|
||||
missionGiver.setAttachment("conversationFile", "missions/deliver");
|
||||
missionGiver.setAttachment("radial_filename", "object/conversation");
|
||||
missionGiver.setAttachment("assignedMission", getMissionObject());
|
||||
missionGiver.setAttachment("assignedMission", getMissionObject().getObjectId());
|
||||
missionGiver.setOptionsBitmask(264);
|
||||
setMissionGiver(missionGiver);
|
||||
|
||||
CreatureObject dropOffNpc = (CreatureObject) core.staticService.spawnObject(template, parent.getPlanet().name, 0, destination.x, destination.y, destination.z, 0, 1);
|
||||
if (dropOffNpc == null)
|
||||
return;
|
||||
|
||||
dropOffNpc.setCustomName("a commoner");
|
||||
dropOffNpc.setAttachment("conversationFile", "missions/deliver");
|
||||
dropOffNpc.setAttachment("radial_filename", "object/conversation");
|
||||
dropOffNpc.setAttachment("assignedMission", getMissionObject().getObjectId());
|
||||
dropOffNpc.setOptionsBitmask(264);
|
||||
setDropOffNpc(dropOffNpc);
|
||||
|
||||
if (getObjectivePhase() == 0) {
|
||||
WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet());
|
||||
waypoint.setPosition(startLoc);
|
||||
waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + parent.getMissionId());
|
||||
waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t");
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setActive(true);
|
||||
getMissionObject().setAttachedWaypoint(waypoint);
|
||||
} else if (getObjectivePhase() == 1) {
|
||||
WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet());
|
||||
waypoint.setPosition(parent.getDestination());
|
||||
waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t");
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setActive(true);
|
||||
getMissionObject().setAttachedWaypoint(waypoint);
|
||||
@@ -66,16 +96,62 @@ public class DeliveryMissionObjective extends MissionObjective {
|
||||
setActive(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void complete() {
|
||||
CreatureObject completer = (CreatureObject) getMissionObject().getGrandparent();
|
||||
|
||||
if (completer == null)
|
||||
return;
|
||||
|
||||
int reward = getMissionObject().getCreditReward();
|
||||
|
||||
completer.addBankCredits(reward);
|
||||
|
||||
completer.sendSystemMessage(new OutOfBand(new ProsePackage("@mission/mission_generic:success_w_amount", reward)), (byte) 0);
|
||||
|
||||
abort();
|
||||
|
||||
core.objectService.destroyObject(getMissionObject());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drop() {
|
||||
public void abort() {
|
||||
if (deliveryObject != null)
|
||||
core.objectService.destroyObject(deliveryObject.getObjectId());
|
||||
|
||||
if (missionGiver != null)
|
||||
core.objectService.destroyObject(missionGiver, 360);
|
||||
|
||||
if (dropOffNpc != null)
|
||||
core.objectService.destroyObject(dropOffNpc, 360);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
|
||||
setObjectivePhase(getObjectivePhase() + 1);
|
||||
|
||||
switch(getObjectivePhase()) {
|
||||
case 1:
|
||||
WaypointObject waypoint = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet());
|
||||
waypoint.setPosition(parent.getDestination());
|
||||
waypoint.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t");
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setActive(true);
|
||||
getMissionObject().setMissionTargetName("Dropoff Location");
|
||||
getMissionObject().setAttachedWaypoint(waypoint);
|
||||
System.out.println("Waypoint set to " + parent.getDestination().x + " and " + parent.getDestination().z);
|
||||
break;
|
||||
case 2:
|
||||
WaypointObject returnWp = (WaypointObject) core.objectService.createObject("object/waypoint/shared_waypoint.iff", parent.getPlanet());
|
||||
returnWp.setPosition(parent.getStartLocation());
|
||||
returnWp.setName("@mission/" + parent.getMissionTitle() + ":" + "m" + parent.getMissionId() + "t");
|
||||
returnWp.setColor(WaypointObject.ORANGE);
|
||||
returnWp.setActive(true);
|
||||
getMissionObject().setMissionTargetName("Return");
|
||||
getMissionObject().setAttachedWaypoint(returnWp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean createDeliveryItem() {
|
||||
@@ -103,4 +179,13 @@ public class DeliveryMissionObjective extends MissionObjective {
|
||||
public TangibleObject getDeliveryObject() { return deliveryObject; }
|
||||
|
||||
public void setDeliveryObject(TangibleObject object) { this.deliveryObject = object; }
|
||||
|
||||
public CreatureObject getMissionGiver() { return missionGiver; }
|
||||
|
||||
public void setMissionGiver(CreatureObject missionGiver) { this.missionGiver = missionGiver; }
|
||||
|
||||
public CreatureObject getDropOffNpc() { return dropOffNpc; }
|
||||
|
||||
public void setDropOffNpc(CreatureObject dropOffNpc) { this.dropOffNpc = dropOffNpc; }
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user