1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
// The village head is in the right mine.
#appendto Dialogue
public func Dlg_VillageHead_Init(object clonk)
{
var lantern = clonk->CreateContents(Lantern);
lantern->TurnOn();
AddEffect("IntVillageHead", clonk, 100, 5, this);
return true;
}
public func Dlg_VillageHead_1(object clonk)
{
MessageBox("$DlgVillageHeadThank$", clonk, dlg_target);
return true;
}
public func Dlg_VillageHead_2(object clonk)
{
MessageBox("$DlgVillageHeadHelp$", clonk, clonk);
return true;
}
public func Dlg_VillageHead_3(object clonk)
{
MessageBox("$DlgVillageHeadTools$", clonk, dlg_target);
return true;
}
public func Dlg_VillageHead_4(object clonk)
{
MessageBox("$DlgVillageHeadProblem$", clonk, clonk);
return true;
}
public func Dlg_VillageHead_5(object clonk)
{
MessageBox("$DlgVillageHeadGap$", clonk, dlg_target);
return true;
}
public func Dlg_VillageHead_6(object clonk)
{
MessageBox("$DlgVillageHeadFix$", clonk, clonk);
return true;
}
public func Dlg_VillageHead_7(object clonk)
{
MessageBox("$DlgVillageHeadPickaxe$", clonk, dlg_target);
return true;
}
public func Dlg_VillageHead_8(object clonk)
{
MessageBox("$DlgVillageHeadYes$", clonk, clonk);
StopDialogue();
SetDialogueProgress(1);
return true;
}
public func Dlg_VillageHead_9(object clonk)
{
var foundry = FindObject(Find_ID(Foundry));
if (!foundry || ObjectCount(Find_ID(Ore), Find_Container(foundry)) < 3)
{
MessageBox("$DlgVillageHeadPutOre$", clonk, dlg_target);
StopDialogue();
SetDialogueProgress(9);
return true;
}
this.has_finished = true;
MessageBox("$DlgVillageHeadThanks$", clonk, dlg_target);
StopDialogue();
SetDialogueProgress(9);
return true;
}
public func Dlg_VillageHead_Closed(object clonk)
{
GameCall("OnHasTalkedToVillageHead", clonk);
if (this.has_finished)
GameCall("OnHasTalkedToVillageHeadFinished", clonk);
return true;
}
public func FxIntVillageHeadStart(object target, proplist effect, bool temp)
{
if (temp)
return FX_OK;
effect.move_up = false;
effect.state = 0;
return FX_OK;
}
public func FxIntVillageHeadTimer(object target, proplist effect, int time)
{
if (!effect.move_up)
return FX_OK;
if (effect.state == 0 && !target->GetCommand())
{
if (target->GetX() < 626)
effect.state = 1;
else
target->SetCommand("MoveTo", nil, 620, 650);
return FX_OK;
}
if (effect.state == 1)
{
var case = FindObject(Find_ID(ElevatorCase));
if (case->GetY() > 644)
effect.state = 2;
else if (case->Ready(target))
case->CallCase(target);
return FX_OK;
}
if (effect.state == 2)
{
var case = FindObject(Find_ID(ElevatorCase));
if (case->GetY() < 382)
effect.state = 3;
else
{
if (!target->GetCommand())
target->SetCommand("Grab", case);
case->ControlUp(target);
}
return FX_OK;
}
if (effect.state == 3)
{
target->SetCommand("UnGrab");
target->AppendCommand("MoveTo", nil, target->GetX() - 40, target->GetY());
effect.state = 4;
return FX_OK;
}
return FX_OK;
}
|