M06 DTS location hints? and better visibility for Versalife employees
- [ ] DTS hints about where it's NOT? https://discord.com/channels/823629359931195394/823629360929046530/1238928798750216332
- [ ] maybe just put Maggie Chow as a randomized goal and give them mutual exclusions so they can't be in the same map... Should May Sung be with her?
- [ ] remove possibility of DTS in vanilla? the streets map already has enough locations
- [ ] ~~obvious one being a datacube in the police vault saying something like "we already searched the canals/streets/lucky money and it wasn't there"~~
- [ ] ~~in Maggie's office "I can't find my DTS anywhere in my apartment" or "I couldn't find my DTS anywhere on my street, it must be far away"~~
- [ ] versalife employees could be easier to spot?
- [ ] put them closer to the front so they're visible from afar
- [x] give the nervous worker a different look?
- [ ] maybe keep hundley and nervous worker on the same floor?
some discussion here: https://discord.com/channels/823629359931195394/823629360929046530/1270915196982005870
From Nitram about the vanilla DTS location:
Ideas for the vanilla locations:
- Remove it.
- Tong infolink begins when you get near it, no having to open the case.
- Tong infolink begins when you initiate the opening of the case (don't need to wait for it to open). [this already works btw lol]
- Whole structure is breakable.
We can do this when we start randomizing Maggie's location
Maggie's vanilla location could maybe be tweaked to be visible through the window from the ground? but it's a tough angle
Not sure if I like this, it reduces the amount of time spent in some beloved maps and reduces some fun hunting. Also maybe it should be the Lumpath_Street_Guard instead of Maggie
anyways here's the code I wrote for this, maybe will revisit
diff --git a/DXRMissions/DeusEx/Classes/DXRMissionsM06.uc b/DXRMissions/DeusEx/Classes/DXRMissionsM06.uc
index 221ac10b..f8e4ee05 100644
--- a/DXRMissions/DeusEx/Classes/DXRMissionsM06.uc
+++ b/DXRMissions/DeusEx/Classes/DXRMissionsM06.uc
@@ -5,7 +5,7 @@ var bool M08Briefing;
function int InitGoals(int mission, string map)
{
- local int goal, loc, loc2;
+ local int goal, loc, loc2, dts, maggie;
switch(map) {
case "06_HONGKONG_VERSALIFE":
@@ -47,22 +47,43 @@ function int InitGoals(int mission, string map)
AddActorLocation(loc, 1, vect(3, 886, 789.101990), rot(0,0,0));// MAHOGANY desk
return 62;
+ //#region DTS
case "06_HONGKONG_WANCHAI_STREET":
case "06_HONGKONG_WANCHAI_CANAL":
case "06_HONGKONG_WANCHAI_MARKET":
case "06_HONGKONG_WANCHAI_UNDERWORLD":
- goal = AddGoal("06_HONGKONG_WANCHAI_STREET", "Dragon's Tooth Sword", NORMAL_GOAL, 'WeaponNanoSword0', PHYS_None);
- AddGoalActor(goal, 1, 'DataLinkTrigger0', PHYS_None);// DL_Tong_00: Now bring the sword to Max Chen at the Lucky Money Club
-
- AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "Sword Case", NORMAL_GOAL | VANILLA_GOAL, vect(-1857.841064, -158.911865, 2051.345459), rot(0, 0, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "in Maggie's shower", NORMAL_GOAL, vect(-1294.841064, -1861.911865, 2190.345459), rot(0, 0, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "on Jock's bed", NORMAL_GOAL, vect(342.584808, -1802.576172, 1713.509521), rot(0, 0, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "in the sniper nest", NORMAL_GOAL, vect(204.923828, -195.652588, 1795), rot(0, 40000, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "in the hold of the boat", NORMAL_GOAL, vect(2293, 2728, -598), rot(0, 10808, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "in the Canal Waterside Apartment", NORMAL_GOAL, vect(1775, 2065, -317), rot(0, 0, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "in the Old China Hand kitchen", NORMAL_GOAL, vect(-1623, 3164, -393), rot(0, -49592, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_UNDERWORLD", "in the Lucky Money
freezer", NORMAL_GOAL, vect(-1780, -2750, -333), rot(0, 27104, 0));
- AddGoalLocation("06_HONGKONG_WANCHAI_MARKET", "in the police vault", NORMAL_GOAL, vect(-480, -720, -107), rot(0, -5564, 0));
+ maggie = AddGoal("06_HONGKONG_WANCHAI_STREET", "Maggie Chow", GOAL_TYPE2, 'MaggieChow0', PHYS_FALLING);
+
+ dts = AddGoal("06_HONGKONG_WANCHAI_STREET", "Dragon's Tooth Sword", NORMAL_GOAL, 'WeaponNanoSword0', PHYS_None);
+ AddGoalActor(dts, 1, 'DataLinkTrigger0', PHYS_None);// DL_Tong_00: Now bring the sword to Max Chen at the Lucky Money Club
+
+ // street
+ loc = AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "Maggie's Apartment", GOAL_TYPE2 | VANILLA_GOAL, vect(-91.403961,-1675.242798,1966.149170), rot(0, -9508, 0));
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "Sword Case", NORMAL_GOAL | VANILLA_GOAL, vect(-1857.841064, -158.911865, 2051.345459), rot(0, 0, 0));
+ AddMutualExclusion(loc, loc2);
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "in Maggie's shower", NORMAL_GOAL, vect(-1294.841064, -1861.911865, 2190.345459), rot(0, 0, 0));+ AddMutualExclusion(loc, loc2);
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "on Jock's bed",
NORMAL_GOAL, vect(342.584808, -1802.576172, 1713.509521), rot(0, 0, 0));
+ AddMutualExclusion(loc, loc2);
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_STREET", "in the sniper nest", NORMAL_GOAL, vect(204.923828, -195.652588, 1795), rot(0, 40000, 0));
+ AddMutualExclusion(loc, loc2);
+
+ // canal
+ loc = AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "Maggie at Canal",
GOAL_TYPE2 | VANILLA_GOAL, vect(165.380600, 1047.135864, 43.101326), rot(0, 0,
0));
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "in the hold of the boat", NORMAL_GOAL, vect(2293, 2728, -598), rot(0, 10808, 0));
+ AddMutualExclusion(loc, loc2);
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "in the Canal Waterside Apartment", NORMAL_GOAL, vect(1775, 2065, -317), rot(0, 0, 0));
+ AddMutualExclusion(loc, loc2);
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_CANAL", "in the Old China
Hand kitchen", NORMAL_GOAL, vect(-1623, 3164, -393), rot(0, -49592, 0));
+ AddMutualExclusion(loc, loc2);
+
+ // lucky money and market
+ loc = AddGoalLocation("06_HONGKONG_WANCHAI_UNDERWORLD", "Maggie at Lucky Money", GOAL_TYPE2 | VANILLA_GOAL, vect(-1019.098450, -1300.728149, -340.900085), rot(0, 16384, 0));
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_UNDERWORLD", "in the Lucky Money freezer", NORMAL_GOAL, vect(-1780, -2750, -333), rot(0, 27104, 0));
+ AddMutualExclusion(loc, loc2);
+ loc = AddGoalLocation("06_HONGKONG_WANCHAI_MARKET", "Maggie at Market", GOAL_TYPE2 | VANILLA_GOAL, vect(-315.659729, -572.678223, 43.100243), rot(0,
32768, 0));
+ loc2 = AddGoalLocation("06_HONGKONG_WANCHAI_MARKET", "in the police vault", NORMAL_GOAL, vect(-480, -720, -107), rot(0, -5564, 0));
+ AddMutualExclusion(loc, loc2);
goal = AddGoal("06_HONGKONG_WANCHAI_UNDERWORLD","Max Chen",GOAL_TYPE1,'MaxChen0',PHYS_FALLING);
AddGoalActor(goal, 1, 'TriadRedArrow5', PHYS_Falling); //Maybe I should actually find these guys by bindname? They're "RightHandMan"
@@ -89,6 +110,7 @@ function int InitGoals(int mission, string map)
AddActorLocation(loc, 2, vect(-1204,-2758,21), rot(0,23892,0));
return 63;
+ //#endregion
}
return mission+1000;
@@ -272,6 +294,7 @@ function CreateGoal(out Goal g, GoalLocation Loc)
local WeaponNanoSword dts;
local DataLinkTrigger dlt;
local NervousWorker nw;
+ local MaggieChow maggie;
switch(g.name) {
case "Dragon's Tooth Sword":
@@ -291,6 +314,19 @@ function CreateGoal(out Goal g, GoalLocation Loc)
g.actors[0].a=nw;
nw.ConBindEvents();
break;
+
+ case "Maggie Chow":
+ maggie = #var(prefix)MaggieChow(Spawnm(class'#var(prefix)MaggieChow',, 'DXRMissions', Loc.positions[0].pos));
+ g.actors[0].a = maggie;
+ //RemoveReactions(maggie);
+ //maggie.BindName = "NicoletteDuClare";
+ //maggie.FamiliarName = "Young Woman";
+ //maggie.UnfamiliarName = "Young Woman";
+ maggie.bInvincible = true;
+ maggie.SetOrders('Dancing');
+ //maggie.ConBindEvents();
+ //maggie.RaiseAlarm = RAISEALARM_Never;
+ break;
}
}
if the goal is more permutations of the route, maybe we randomize Gordon Quick instead
he's required, so the mutual exclusions won't be freebies (if we even do it with mutual exclusions)