Skip to content
Permalink
Browse files

tutorial 7: explain cycling through multiple interactions (#1599)

  • Loading branch information...
MDT-Maikel committed Feb 8, 2016
1 parent 0d358ce commit a88a890960c9258367420a6d10f9236d22e6bc18
@@ -181,18 +181,17 @@ protected func InitializePlayer(int plr)
SetPlayerZoomByViewRange(plr, 400, nil, PLRZOOM_Direct | PLRZOOM_LimitMax);

// Determine player movement keys.
var left = GetPlayerControlAssignment(plr, CON_Left, true, true);
var right = GetPlayerControlAssignment(plr, CON_Right, true, true);
var up = GetPlayerControlAssignment(plr, CON_Up, true, true);
var down = GetPlayerControlAssignment(plr, CON_Down, true, true);
var interact = GetPlayerControlAssignment(plr, CON_Interact, true, true);
var control_keys = Format("[%s] [%s] [%s] [%s]", up, left, down, right);
var interact_prev = GetPlayerControlAssignment(plr, CON_InteractNext_Right, true, true);
var interact_next = GetPlayerControlAssignment(plr, CON_InteractNext_Left, true, true);
var interact_cycle = GetPlayerControlAssignment(plr, CON_InteractNext_CycleObject, true, true);
var interact_cancel = GetPlayerControlAssignment(plr, CON_InteractNext_Stop, true, true);

// Create tutorial guide, add messages, show first.
guide = CreateObjectAbove(TutorialGuide, 0, 0, plr);
guide->AddGuideMessage(Format("$MsgTutorialFindRubies$", interact, control_keys));
guide->AddGuideMessage(Format("$MsgTutorialTalkToPilot$", interact_prev, interact_next, interact_cycle, interact_cancel));
guide->ShowGuideMessage();
AddEffect("TutorialFindStalactite", nil, 100, 2);
var effect = AddEffect("TutorialTalkedToPilot", nil, 100, 2);
effect.plr = plr;
return;
}

@@ -240,9 +239,39 @@ global func FxGoalOutroStop(object target, proplist effect, int reason, bool tem


/*-- Guide Messages --*/
// Finds when the Clonk has done 'X', and changes the message.

global func FxTutorialFindStalactiteTimer(object target, proplist effect, int timer)
public func OnHasTalkedToPilot()
{
RemoveEffect("TutorialTalkedToPilot");
return;
}

global func FxTutorialTalkedToPilotTimer()
{
return FX_OK;
}

global func FxTutorialTalkedToPilotStop(object target, proplist effect, int reason, bool temp)
{
if (temp)
return FX_OK;

// Determine player movement keys.
var left = GetPlayerControlAssignment(effect.plr, CON_Left, true, true);
var right = GetPlayerControlAssignment(effect.plr, CON_Right, true, true);
var up = GetPlayerControlAssignment(effect.plr, CON_Up, true, true);
var down = GetPlayerControlAssignment(effect.plr, CON_Down, true, true);
var interact = GetPlayerControlAssignment(effect.plr, CON_Interact, true, true);
var control_keys = Format("[%s] [%s] [%s] [%s]", up, left, down, right);

guide->AddGuideMessage(Format("$MsgTutorialFindRubies$", interact, control_keys));
guide->ShowGuideMessage();
var new_effect = AddEffect("TutorialFoundStalactite", nil, 100, 2);
new_effect.plr = effect.plr;
return FX_OK;
}

global func FxTutorialFoundStalactiteTimer(object target, proplist effect, int timer)
{
var clonk = FindObject(Find_ID(Clonk), Find_Distance(150, 780, 200));
if (clonk)
@@ -298,10 +327,10 @@ global func FxTutorialCollectGemsTimer(object target, proplist effect, int timer
protected func OnGuideMessageShown(int plr, int index)
{
// Show airship parking space.
if (index == 1)
if (index == 2)
TutArrowShowPos(688, 220, 135);
// Show dynamite placement location.
if (index == 3)
if (index == 4)
TutArrowShowPos(800, 200, 60);
return;
}
@@ -9,7 +9,8 @@ MsgRepeatRound=&Lernrunde wiederholen
MsgRepeatRoundDesc=Diese Lernrunde wiederholen.

# Tutorial messages
MsgTutorialFindRubies=Schau an, du bist weit oben auf einigen Himmelsinseln. Sprich mit dem Piloten und frag ihn nach Hinweisen über diese Gegend. Nimm danach das Luftschiff und such den Edelstein-Stalaktit, der von einer Himmelsinsel hängen soll. Du kannst das Luftschiff mit [%s] anfassen und mit %s steuern.
MsgTutorialTalkToPilot=Schau an, du bist weit oben auf einigen Himmelsinseln. Sprich mit dem Piloten und frag ihn nach Hinweisen über diese Gegend. If there are multiple objects to interact with (in this case the pilot, the airship and the lorry) you can cycle through them with [%s] and [%s]. To cycle through multiple interactions of the same object use [%s] and to cancel the interaction selection use [%s].
MsgTutorialFindRubies=Nimm jetzt das Luftschiff und such den Edelstein-Stalaktit, der von einer Himmelsinsel hängen soll. Du kannst das Luftschiff mit [%s] anfassen und mit %s steuern.
MsgTutorialParkAirship=Ah, du hast den Stalaktit gefunden. Es ist Zeit, Edelsteine herauszusprengen! Parke das Luftschiff vor den Strickleitern dort.
MsgTutorialLadderJump=Gut. Dein Kollege wird ab jetzt das Luftschiff steuern. Du kannst bist zum Rubingestein springen. Springe an eine Strickleiter und dein Clonk wird sich automatisch festhalten. Mit den Bewegungstasten ([%s]/[%s]) kannst du an den Leitern die Seiten wechseln oder sie loslassen. Wenn du nach oben kletterst und die Richtungstasten der Richtung drückst, an der du gerade an einer Leiter hängst, kannst du auch abspringen.
MsgTutorialBlastGems=Gut, jetzt kannst du einige Dynamitstangen an dem Stalaktit befestigen und danach zum Luftschiff zurückkehren. Drück danach den Zünder, um den Stalaktiten zu sprengen.
@@ -9,7 +9,8 @@ MsgRepeatRound=&Repeat this round
MsgRepeatRoundDesc=Restart this scenario.

# Tutorial messages
MsgTutorialFindRubies=You are high up in the sky in an area with several sky islands. Talk to the pilot for some advice about the area and then take the airship and find the ruby stalactite hanging from one of the islands. You can grab the airship with [%s] and then steer it with %s.
MsgTutorialTalkToPilot=You are high up in the sky in an area with several sky islands. Talk to the pilot for some advice about the area. If there are multiple objects to interact with (in this case the pilot, the airship and the lorry) you can cycle through them with [%s] and [%s]. To cycle through multiple interactions of the same object use [%s] and to cancel the interaction selection use [%s].
MsgTutorialFindRubies=Now take the airship and find the ruby stalactite hanging from one of the islands. You can grab the airship with [%s] and cycling through the interactions and then steer it with %s.
MsgTutorialParkAirship=Ah you found the ruby stalactite. Now it is time to blast it to gems! Park your airship in front of the rope ladders over there.
MsgTutorialLadderJump=Good, now your companion will control the airship and you can jump to the ruby stalactite. Jump towards a hanging rope ladder and you will automatically grab it. You can switch sides or let go of the ladder by pressing the movement keys [%s]/[%s]. Instead of letting go you can also jump off the ladder if you press the movement key corresponding to the side your a hanging on while climbing up.
MsgTutorialBlastGems=Okay, you can now plant some dynamite sticks on the stalactite and get back on board of the airship. Then fuse the dynamite to blast the stalactite.
@@ -54,7 +54,7 @@ public func Dlg_Pilot_7(object clonk)

public func Dlg_Pilot_Closed(object clonk)
{
GameCall("OnHasTalkedToFireman", clonk);
GameCall("OnHasTalkedToPilot", clonk);
return true;
}

0 comments on commit a88a890

Please sign in to comment.
You can’t perform that action at this time.