psu_missions: Added The Black Nest. Slightly better traps handling.

Not much is working there though.
This commit is contained in:
Loïc Hoguin 2010-07-17 19:05:29 +02:00
parent a6184ed532
commit 49016cafaa
4 changed files with 61 additions and 6 deletions

View File

@ -125,6 +125,26 @@
%~ {1001223, [{type, mission}, {file, "data/missions/true-darkness.3.s.quest.nbl"}, {start, [0, 802, 0]}]},
{1001224, [{type, mission}, {file, "data/missions/true-darkness.3.s2.quest.nbl"}, {start, [0, 802, 0]}]},
% The Black Nest
{1003000, [{type, mission}, {file, "data/missions/black-nest.1.c.quest.nbl"}, {start, [0, 6301, 0]}]},
{1003001, [{type, mission}, {file, "data/missions/black-nest.1.b.quest.nbl"}, {start, [0, 6301, 0]}]},
{1003002, [{type, mission}, {file, "data/missions/black-nest.1.a.quest.nbl"}, {start, [0, 6301, 0]}]},
{1003003, [{type, mission}, {file, "data/missions/black-nest.1.s.quest.nbl"}, {start, [0, 6301, 0]}]},
{1003004, [{type, mission}, {file, "data/missions/black-nest.1.s2.quest.nbl"}, {start, [0, 6301, 0]}]},
{1003010, [{type, mission}, {file, "data/missions/black-nest.2.c.quest.nbl"}, {start, [0, 6303, 0]}]},
%~ {1003011, [{type, mission}, {file, "data/missions/black-nest.2.b.quest.nbl"}, {start, [0, 6303, 0]}]},
%~ {1003012, [{type, mission}, {file, "data/missions/black-nest.2.a.quest.nbl"}, {start, [0, 6303, 0]}]},
%~ {1003013, [{type, mission}, {file, "data/missions/black-nest.2.s.quest.nbl"}, {start, [0, 6303, 0]}]},
{1003014, [{type, mission}, {file, "data/missions/black-nest.2.s2.quest.nbl"}, {start, [0, 6303, 0]}]},
{1003020, [{type, mission}, {file, "data/missions/black-nest.3.c.quest.nbl"}, {start, [0, 6803, 0]}]},
{1003021, [{type, mission}, {file, "data/missions/black-nest.3.b.quest.nbl"}, {start, [0, 6803, 0]}]},
%~ {1003022, [{type, mission}, {file, "data/missions/black-nest.3.a.quest.nbl"}, {start, [0, 6803, 0]}]},
{1003023, [{type, mission}, {file, "data/missions/black-nest.3.s.quest.nbl"}, {start, [0, 6803, 0]}]},
%~ {1003024, [{type, mission}, {file, "data/missions/black-nest.3.s2.quest.nbl"}, {start, [0, 6803, 0]}]},
% Phantom Ruins (Linear Line counter)
%~ {1060300, [{type, mission}, {file, "data/missions/phantom-ruins.c.quest.nbl"}, {start, [0, 8002, 0]}]},
@ -306,6 +326,26 @@
{[1001224, 0], [{file, "data/missions/true-darkness.3.s2.zone-0.nbl"}]},
{[1001224, 1], [{file, "data/missions/true-darkness.3.s2.zone-1.nbl"}]},
% The Black Nest
{[1003000, 0], [{file, "data/missions/black-nest.1.c.zone.nbl"}]},
{[1003001, 0], [{file, "data/missions/black-nest.1.b.zone.nbl"}]},
{[1003002, 0], [{file, "data/missions/black-nest.1.a.zone.nbl"}]},
{[1003003, 0], [{file, "data/missions/black-nest.1.s.zone.nbl"}]},
{[1003004, 0], [{file, "data/missions/black-nest.1.s2.zone.nbl"}]},
{[1003010, 0], [{file, "data/missions/black-nest.2.c.zone.nbl"}]},
%~ {[1003011, 0], [{file, "data/missions/black-nest.2.b.zone.nbl"}]},
%~ {[1003012, 0], [{file, "data/missions/black-nest.2.a.zone.nbl"}]},
%~ {[1003013, 0], [{file, "data/missions/black-nest.2.s.zone.nbl"}]},
{[1003014, 0], [{file, "data/missions/black-nest.2.s2.zone.nbl"}]},
{[1003020, 0], [{file, "data/missions/black-nest.3.c.zone.nbl"}]},
{[1003021, 0], [{file, "data/missions/black-nest.3.b.zone.nbl"}]},
%~ {[1003022, 0], [{file, "data/missions/black-nest.3.a.zone.nbl"}]},
{[1003023, 0], [{file, "data/missions/black-nest.3.s.zone.nbl"}]},
%~ {[1003024, 0], [{file, "data/missions/black-nest.3.s2.zone.nbl"}]},
% Phantom Ruins (Linear Line counter)
%~ {[1060300, 0], [{file, "data/missions/phantom-ruins.c-0.zone.nbl"}]},
@ -667,8 +707,8 @@
{ 25, [{quests, "data/counters/colony.dallgun.pack"}, {bg, 255}, {options, << 16#01003c00:32, 0, 3, 3, 0,
0, 0, 0, 0, 0, % Phantom Ruins C-S
3, 3, 3, 3, 3, 0, % The Black Nest C-S2 variant 1
3, 3, 3, 3, 3, 0, % The Black Nest C-S2 variant 2
3, 3, 3, 3, 3, 0, % The Black Nest C-S2 variant 3
3, 0, 0, 0, 3, 0, % The Black Nest C-S2 variant 2
3, 3, 0, 3, 0, 0, % The Black Nest C-S2 variant 3
0, 0, 0, 0, 0, % True Darkness C-S2 variant 1
3, 0, 3, 3, 0, % True Darkness C-S2 variant 2
3, 3, 3, 0, 3, % True Darkness C-S2 variant 3

View File

@ -870,13 +870,13 @@ handle(16#0f0a, Data) ->
[[EventID|_], BlockID] = psu_missions:key_event(User#users.instanceid, ObjectID),
send_1205(EventID, BlockID, 0),
send_1213(ObjectID, 1);
13 -> % floor_button on
13 -> % floor_button on (also sent when clearing a few of the rooms in black nest)
% 1205 1213
ignore;
14 -> % floor_button off
% 1205(same, with 1 as last value) 1213(same, with 0 as last value)
ignore;
%~ 19 -> % @todo (somewhere in phantom ruins block 4)
%~ 19 -> % activate trap
%~ ignore;
20 -> % enter counter/elevator/room/spaceport/pick key/use key
ignore;

View File

@ -56,6 +56,9 @@ object_init(InstanceID, BlockID, [floor_button|Tail], ListNb, ObjectNb, ObjectID
%% @todo Apparently shoot_button has a TargetID. I'm sure why though.
object_init(InstanceID, BlockID, [shoot_button|Tail], ListNb, ObjectNb, ObjectID, TargetID) ->
object_init(InstanceID, BlockID, Tail, ListNb, ObjectNb + 1, ObjectID + 1, TargetID + 1);
%% @todo All kinds of traps have a TargetID, even if they're not targettable.
object_init(InstanceID, BlockID, [trap|Tail], ListNb, ObjectNb, ObjectID, TargetID) ->
object_init(InstanceID, BlockID, Tail, ListNb, ObjectNb + 1, ObjectID + 1, TargetID + 1);
%% @todo Not sure why but it works that way in True Darkness.
object_init(InstanceID, BlockID, [boss_gate|Tail], ListNb, ObjectNb, ObjectID, TargetID) ->
object_init(InstanceID, BlockID, Tail, ListNb, ObjectNb + 1, ObjectID + 1, TargetID + 1);
@ -75,7 +78,7 @@ object_init(InstanceID, BlockID, [{'spawn', NbTargets, TrigEventID, _ReqEventID}
object_init(InstanceID, BlockID, [{warp, DestX, DestY, DestZ, DestDir}|Tail], ListNb, ObjectNb, ObjectID, TargetID) ->
egs_db:objects_insert(#objects{id=[InstanceID, {warp, BlockID, ListNb, ObjectNb}], instanceid=InstanceID, type=warp, blockid=BlockID, args={DestX, DestY, DestZ, DestDir}}),
object_init(InstanceID, BlockID, Tail, ListNb, ObjectNb + 1, ObjectID, TargetID);
%% @todo Not sure where these 2 come from yet, assuming crystal but might not be that.
%% @todo Apparently crystal has 2 TargetIDs. Presumably because it has both on/off states.
object_init(InstanceID, BlockID, [crystal|Tail], ListNb, ObjectNb, ObjectID, TargetID) ->
object_init(InstanceID, BlockID, Tail, ListNb, ObjectNb + 1, ObjectID + 1, TargetID + 2);
%% A few object types don't have an ObjectID nor a TargetID. Disregard them completely.

View File

@ -212,6 +212,8 @@ parse_object_args(35, _Params, _Data) ->
parse_object_args(43, _Params, _Data) ->
shoot_button;
%% @todo Seems to be a zonde turret "trap".
parse_object_args(44, _Params, _Data) ->
trap;
@ -231,7 +233,17 @@ parse_object_args(62, _Params, _Data) ->
pp_cube;
parse_object_args(64, _Params, _Data) ->
hidden_minimap_section.
hidden_minimap_section;
%% @todo Seems to be a megid turret "trap".
parse_object_args(70, _Params, _Data) ->
trap;
%% @todo Seems to be a ceiling fall-on-you-and-explode "trap". Possibly also poison room.
parse_object_args(71, _Params, _Data) ->
trap.
convert_eventid(16#ffff) ->
false;