summaryrefslogtreecommitdiff
path: root/npc/012-6/nurse.txt
blob: 8e8d9af9652f9281707c13079d42906815b8a4e9 (plain) (blame)
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
// TMW-2 Script
// Author:
//    Jesusalva
//    Crazyfefe
// Notes:
//  HurnscaldQuest_BloodDonor
//      1 - Donation finished
//      2 - Donation in progress
//  Structure
//      Status, Next Attempt Timer

012-6,56,67,6	script	Hurnscald's Nurse	NPC_FEMALE,{
    .@q2=getq2(HurnscaldQuest_BloodDonor);
    if (.@q2 > gettimetick(2)) {
        npctalk3 l("You can donate blood again in %s", FuzzyTime(.@q2));
        Nurse(.name$, 10, 6);
        close;
    }
    mesn;
    mesq l("Hello there. Do you want to donate blood?");
    mesc l("Donating blood will BLOCK YOUR MOVEMENT for three minutes.");
    mesc l("Do not disconnect while waiting. You need 100% HP to donate.");

L_BLCore:
    mes "";
    select
        l("I need infirmary services."),
        l("Info"),
        rif(readparam(Hp) == readparam(MaxHp), l("Yes, please use my blood to save lifes."));
    mes "";
    switch (@menu) {
        case 1:
            Nurse(.name$, 10, 6);
            close;
        case 2:
            mesn;
            mesq l("Donating blood is a noble act, which allows to save lifes.");
            next;
            mesn;
            mesq l("When people loses too much blood, they die, unless we can lend them somebody's else blood.");
            next;
            mesn;
            mesq l("Not everyone can be a blood donor. For example, you must be healthy.");
            mesq l("You can find more info about this on these links:");
            mes "";
            mes "[@@https://www.blood.co.uk/|https://www.blood.co.uk/@@]";
            mes "[@@https://www.nhsbt.nhs.uk/what-we-do/blood-services/blood-donation/|https://www.nhsbt.nhs.uk/what-we-do/blood-services/blood-donation/@@]";
            mes l("France: [@@https://dondesang.efs.sante.fr/|https://dondesang.efs.sante.fr/@@]");
            mes l("Brazil: [@@http://www.prosangue.sp.gov.br/home/Default.html|http://www.prosangue.sp.gov.br/home/Default.html@@]");
            next;
            goto L_BLCore;
        case 3:
            mesn;
            mesq l("Please don't sound like I was some sort of vampire or something...");
            next;
            mesn;
            mesq l("This will take only a short while.");
            next;
            setq1 HurnscaldQuest_BloodDonor, 2;
            percentheal -90, 0;
            addtimer(180000, "Hurnscald's Nurse::OnDonationComplete");
            slide 34, 29;
            setpcblock(PCBLOCK_SOFT, true);
            dispbottom l("Any movement/skill/item will be without effect until time is up.");
            closedialog;
            close;
    }

    close;

OnDonationComplete:
    if (checkpcblock() & PCBLOCK_ATTACK)
        setpcblock(PCBLOCK_SOFT, false);
    slide 58, 67;
    percentheal 100, 0;
    getexp readparam(Hp)*2, readparam(Hp)/100;
    .@q3=getq3(HurnscaldQuest_BloodDonor)+1;
    // Cooldown: 60*60*24*30: 30 days
    setq HurnscaldQuest_BloodDonor, 1, gettimetick(2)+(2592000), .@q3;
    if (BaseLevel >= 30)
        getitem Bread, 1;
    if (BaseLevel >= 50)
        getitem ChocolateBar, 1;
    if (BaseLevel >= 70)
        getitem BottleOfWoodlandWater, 1;
    mesn;
    mesq l("Thanks for donating blood. You can donate again in 30 days.");
    mesq l("You should eat and drink water after donating blood. Thanks for saving lifes!");
    if (.@q3 == 5) {
        getitem Slippers, 1;
        next;
        mesn;
        mesq l("Now you must feel homelike already here... take these slippers so your feet stays warm!");
    }
    close;

OnInit:
    .@npcId = getnpcid(.name$);
    //setunitdata(.@npcId, UDT_HEADTOP, BrimmedFeatherHat);
    setunitdata(.@npcId, UDT_HEADMIDDLE, MiniSkirt);
    setunitdata(.@npcId, UDT_HEADBOTTOM, ShortTankTop);
    setunitdata(.@npcId, UDT_HAIRSTYLE, 12);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 16);

    .sex = G_FEMALE;
    .distance = 5;
    end;

}