Fixed waypoint not updating for Arakyds, Fixed waypoint not updating on first run of seekers, Added Identify Target

This commit is contained in:
Waverunner
2014-07-06 13:14:48 -04:00
parent 65072425af
commit 2c45fbe6ab
2 changed files with 71 additions and 6 deletions
+27 -1
View File
@@ -33,8 +33,8 @@ def handleSelection(core, owner, target, option):
pos = SpawnPoint.getRandomPosition(owner.getPosition(), 1, 3, owner.getPlanetId())
ori = owner.getOrientation()
seeker = core.staticService.spawnObject('object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff', owner.getPlanet().getName(), 0, pos.x, pos.y, pos.z, ori.y, ori.w)
time.sleep(3)
owner.sendSystemMessage('@mission/mission_generic:seeker_droid_standby', 0)
time.sleep(3)
seeker.setPosture(8)
time.sleep(6.5)
core.objectService.destroyObject(seeker)
@@ -42,5 +42,31 @@ def handleSelection(core, owner, target, option):
return
if option == 137 and target:
id = owner.getPlayerObject().getBountyMissionId()
if id is None or id == 0:
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
return
mission = core.objectService.getObject(id)
if mission is None:
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
return
if mission.getObjective().isSeekerActive():
owner.sendSystemMessage('@mission/mission_generic:bounty_already_tracking', 0)
return
if target.getUses() == 0:
core.objectService.destroyObject(target)
else:
target.setUses(target.getUses() - 1)
pos = SpawnPoint.getRandomPosition(owner.getPosition(), 1, 3, owner.getPlanetId())
ori = owner.getOrientation()
seeker = core.staticService.spawnObject('object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff', owner.getPlanet().getName(), 0, pos.x, pos.y, pos.z, ori.y, ori.w)
owner.sendSystemMessage('@mission/mission_generic:seeker_droid_standby', 0)
time.sleep(3)
seeker.setPosture(8)
time.sleep(6.5)
core.objectService.destroyObject(seeker)
mission.getObjective().beginIdentifyTarget(core, owner)
return
return
@@ -304,18 +304,18 @@ public class BountyMissionObjective extends MissionObjective {
WaypointObject missionWp = mission.getWaypoint();
if (missionWp.getPlanetCRC() != CRC.StringtoCRC(target.getPlanet().name)) {
if (missionWp == null || missionWp.getPlanetCRC() != CRC.StringtoCRC(target.getPlanet().name)) {
WaypointObject waypoint = (WaypointObject) getMissionObject().getWaypoint();
waypoint.setActive(true);
waypoint.setColor(WaypointObject.ORANGE);
waypoint.setName(getMissionObject().getTargetName());
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
waypoint.setStringAttribute("", "");
getMissionObject().setWaypoint(waypoint);
waypoint.setPosition(target.getWorldPosition());
mission.setWaypoint(waypoint);
} else {
missionWp.setPosition(target.getWorldPosition());
mission.setWaypoint(missionWp);
getMissionObject().setWaypoint(missionWp);
}
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
actor.sendSystemMessage("@mission/mission_generic:target_continue_tracking", DisplayType.Broadcast);
@@ -331,6 +331,46 @@ public class BountyMissionObjective extends MissionObjective {
}
}
public void beginIdentifyTarget(NGECore core, CreatureObject actor) {
if (seekerActive)
return;
setSeekerActive(true);
setSeekerPlanet(actor.getPlanet().name);
Executors.newSingleThreadScheduledExecutor().schedule(() -> {
MissionObject mission = getMissionObject();
SWGObject target = core.objectService.getObject(markObjId);
if (target == null) {
actor.sendSystemMessage("@mission/mission_generic:player_target_inactive", DisplayType.Broadcast);
return;
} else if (target.getPlanet().getName() != getSeekerPlanet()) {
actor.sendSystemMessage("@mission/mission_generic:target_not_on_planet", DisplayType.Broadcast);
return;
}
WaypointObject missionWp = mission.getWaypoint();
if (missionWp == null || missionWp.getPlanetCRC() != CRC.StringtoCRC(target.getPlanet().name)) {
WaypointObject waypoint = (WaypointObject) getMissionObject().getWaypoint();
waypoint.setActive(true);
waypoint.setColor(WaypointObject.ORANGE);
waypoint.setName(getMissionObject().getTargetName());
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
waypoint.setStringAttribute("", "");
waypoint.setPosition(target.getWorldPosition());
mission.setWaypoint(waypoint);
} else {
missionWp.setPosition(target.getWorldPosition());
mission.setWaypoint(missionWp);
}
actor.sendSystemMessage("Your target was identified as " + target.getCustomName() + ".", DisplayType.Broadcast); // Can't find this in the string files
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
}, 60, TimeUnit.SECONDS);
}
public void beginArakydUpdate(final CreatureObject actor) {
arakydActive = true;
Executors.newScheduledThreadPool(1).schedule(() -> {
@@ -350,8 +390,7 @@ public class BountyMissionObjective extends MissionObjective {
waypoint.setName(getMissionObject().getTargetName());
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
waypoint.setStringAttribute("", "");
actor.getClient().getSession().write(getMissionObject().getBaseline3().set("waypoint", waypoint));
getMissionObject().setWaypoint(waypoint);
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
actor.sendSystemMessage("@mission/mission_generic:target_located_" + target.getPlanet().getName(), DisplayType.Broadcast);