Skip to content

Commit

Permalink
fix(content): thessalia dialogue, bunny_ears, scythe (#1203)
Browse files Browse the repository at this point in the history
  • Loading branch information
dhemms authored Feb 9, 2025
1 parent 492d40b commit 9a1ae0d
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 10 deletions.
4 changes: 2 additions & 2 deletions data/src/pack/varp.pack
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
4=mcannon_coord
5=grail_progress
6=coal_truck
7=varp_7
8=varp_8
7=bunny_ears_unlocked
8=scythe_unlocked
9=beehive_free
10=cog_progress
11=fishingcompo_progress
Expand Down
2 changes: 2 additions & 0 deletions data/src/scripts/_test/scripts/cheats/cheat_reset.rs2
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ if (p_finduid(uid) = true) {
%tutorial_progress = 0;
%chompybird_progress = 0;
%chompybird_kills = 0;
%bunny_ears_unlocked = 0;
%scythe_unlocked = 0;

p_logout;
} else {
Expand Down
6 changes: 4 additions & 2 deletions data/src/scripts/_unpack/all.varp
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[varp_7]
[bunny_ears_unlocked]
scope=perm

[varp_8]
[scythe_unlocked]
scope=perm

[damagetype]
protect=no
Expand Down
80 changes: 75 additions & 5 deletions data/src/scripts/areas/area_varrock/scripts/thessalia.rs2
Original file line number Diff line number Diff line change
@@ -1,14 +1,81 @@
// source: https://www.youtube.com/watch?v=VK_A2Vf9VE8
// todo: options to retrieve scythe/bunny ears

[opnpc1,thessalia]
~chatnpc("<p,happy>Do you want to buy any fine clothes?");
@multi2("What have you got?", thessalia_b1_s1, "No, thank you.", thessalia_b1_s2);
if (%bunny_ears_unlocked = 0 & %scythe_unlocked = 0) { // player has not unlocked bunny_ears or scythe
@thessalia_want_to_buy;
} else if (%bunny_ears_unlocked = 1 & %scythe_unlocked = 1) { // player unlocked both
if ((inv_total(inv, bunny_ears) >= 1 | inv_total(bank, bunny_ears) >= 1 | inv_total(worn, bunny_ears) >= 1) &
(inv_total(inv, scythe) >= 1 | inv_total(bank, scythe) >= 1 | inv_total(worn, scythe) >= 1)) { // player unlocked both, and has both
@thessalia_want_to_buy;
} else if (inv_total(inv, bunny_ears) >= 1 | inv_total(bank, bunny_ears) >= 1 | inv_total(worn, bunny_ears) >= 1) { // player unlocked both, but lost scythe
~chatnpc("<p,happy>Do you want to buy any fine clothes? Or would you like your scythe back?");
@thessalia_lost_scythe;
} else if (inv_total(inv, scythe) >= 1 | inv_total(bank, scythe) >= 1 | inv_total(worn, scythe) >= 1) { // player unlocked both, but lost bunny_ears
~chatnpc("<p,happy>Do you want to buy any fine clothes? Or would you like your bunny ears back?");
@thessalia_lost_bunny_ears;
} else { // player unlocked both, but lost both
~chatnpc("<p,happy>Do you want to buy any fine clothes? Or would you like your scythe and bunny ears back?");
@thessalia_lost_bunny_ears_and_scythe;
}
} else if (%bunny_ears_unlocked = 1 & %scythe_unlocked = 0) { // player unlocked bunny_ears, not scythe
if (inv_total(inv, bunny_ears) >= 1 | inv_total(bank, bunny_ears) >= 1 | inv_total(worn, bunny_ears) >= 1) { //player unlocked bunny_ears, and has bunny_ears
@thessalia_want_to_buy;
} else { // player unlocked bunny_ears, but lost bunny ears
~chatnpc("<p,quiz>Do you want to buy any fine clothes? Or would you like your bunny ears back?");
@thessalia_lost_bunny_ears;
}
} else if (%bunny_ears_unlocked = 0 & %scythe_unlocked = 1) { // player unlocked scythe, not bunny_ears
if (inv_total(inv, scythe) >= 1 | inv_total(bank, scythe) >= 1 | inv_total(worn, scythe) >= 1) { // player unlocked scythe, and has scythe
@thessalia_want_to_buy;
} else { // player unlocked scythe, but lost scythe
~chatnpc("<p,happy>Do you want to buy any fine clothes? Or would you like your scythe back?");
@thessalia_lost_scythe;
}
}

[label,thessalia_want_to_buy]
~chatnpc("<p,quiz>Do you want to buy any fine clothes?");
@thessalia_what_have_you_got;

[label,thessalia_what_have_you_got]
@multi2("What have you got?", thessalia_b1_s1,
"No, thank you.", thessalia_b1_s2);

[label,thessalia_lost_bunny_ears]
@multi3("What have you got?", thessalia_b1_s1,
"No, thank you.", thessalia_b1_s2,
"Can I have my bunny ears back?", thessalia_return_bunny_ears);

[label,thessalia_lost_scythe]
@multi3("What have you got?", thessalia_b1_s1,
"No, thank you.", thessalia_b1_s2,
"Can I have my scythe back?", thessalia_return_scythe);

[label,thessalia_lost_bunny_ears_and_scythe]
@multi4("What have you got?", thessalia_b1_s1,
"No, thank you.", thessalia_b1_s2,
"Can I have my scythe back?", thessalia_return_scythe,
"Can I have my bunny ears back?", thessalia_return_bunny_ears);

[label,thessalia_return_scythe]
~chatplayer("<p,quiz>Can I have my scythe back?");
~chatnpc("<p,happy>Certainly. Here you go.");
inv_add(inv, scythe, 1);
~chatnpc("<p,quiz>Now, would you like to buy any clothes?");
@thessalia_what_have_you_got;

[label,thessalia_return_bunny_ears]
~chatplayer("<p,quiz>Can I have my bunny ears back?");
~chatnpc("<p,happy>Certainly. Here you go.");
inv_add(inv, bunny_ears, 1);
~chatnpc("<p,quiz>Now, would you like to buy any clothes?");
@thessalia_what_have_you_got;

[label,thessalia_b1_s1]
~chatplayer("<p,quiz>What have you got?");
~chatnpc("<p,happy>Well, I have a number of fine pieces of clothing on sale or, if you prefer I can offer you an exclusive, total clothing makeover?");
@multi2("Tell me more about this makeover.", thessalia_b2_s1, "I'd just like to buy some clothes.", thessalia_b2_s2);
@multi2("Tell me more about this makeover.", thessalia_b2_s1,
"I'd just like to buy some clothes.", thessalia_b2_s2);

[label,thessalia_b1_s2]
~chatplayer("<p,neutral>No, thank you.");
Expand All @@ -20,7 +87,10 @@
~chatnpc("<p,happy>Here at Thessalia's fine clothing boutique, we offer a unique service where we will totally revamp your outfit to your choosing, for... wait for it...");
~chatnpc("<p,happy>A fee of only 500 gold coins! Tired of always wearing the same old outfit, day in, day out? This is the service for you!");
~chatnpc("<p,happy>So what do you say? Interested? We can change either your top, or your legwear for only 500 gold an item!");
@multi4("I'd like to change my top please.", thessalia_b3_s1, "I'd like to change my legwear please.", thessalia_b3_s2, "I'd just like to buy some clothes.", thessalia_b2_s2, "No, thank you.", thessalia_b1_s2);
@multi4("I'd like to change my top please.", thessalia_b3_s1,
"I'd like to change my legwear please.", thessalia_b3_s2,
"I'd just like to buy some clothes.", thessalia_b2_s2,
"No, thank you.", thessalia_b1_s2);

[label,thessalia_b3_s1]
%option1 = 0;
Expand Down
22 changes: 22 additions & 0 deletions data/src/scripts/player/scripts/untradeable_holiday_items.rs2
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// this file may be better somewhere else, but is currently used to track untradeable holiday items

// message: https://runescape.wiki/w/Scythe
[opobj3,scythe]
if (inv_total(inv, scythe) >= 1 | inv_total(bank, scythe) >= 1 | inv_total(worn, scythe) >= 1) {
mes("You already have a scythe, you don't need another one.");
return;
} else {
%scythe_unlocked = 1; //currently the only place this is set. if they are introduced to the game in another way, this needs setting elsewhere
@pickup_obj(obj_coord, obj_type, obj_count);
}

// RSC message: https://classic.runescape.wiki/w/Bunny_ears#/media/File:Collecting_Bunny_Ears_(only_have_one_head).jpg
[opobj3,bunny_ears]
if (inv_total(inv, bunny_ears) >= 1 | inv_total(bank, bunny_ears) >= 1 | inv_total(worn, bunny_ears) >= 1) {
mes("You don't need another set of bunny ears.");
mes("You only have one head.");
return;
} else {
%bunny_ears_unlocked = 1; //currently the only place this is set. if they are introduced to the game in another way, this needs setting elsewhere
@pickup_obj(obj_coord, obj_type, obj_count);
}
2 changes: 1 addition & 1 deletion data/src/scripts/skill_magic/scripts/spells/telegrab.rs2
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ if((oc_category(obj_type) = trail_clue_easy | oc_category(obj_type) = trail_clue
}
// These use a different mes compared to obj's with the telegrab_disabled param (maybe make a 2nd param)
if(obj_type = holy_grail | obj_type = ghost_skull | obj_type = ice_arrow | obj_type = boy_ball | obj_type = Ethenea | obj_type = liquid_honey | obj_type = sulphuric_broline | obj_type = plague_sample | (oc_category(obj_type) = cog)
| obj_type = orb_of_light1 | obj_type = orb_of_light2 | obj_type = orb_of_light3 | obj_type = orb_of_light4 | obj_type = fire_feather | obj_type = grips_keyring) {
| obj_type = orb_of_light1 | obj_type = orb_of_light2 | obj_type = orb_of_light3 | obj_type = orb_of_light4 | obj_type = fire_feather | obj_type = grips_keyring | obj_type = bunny_ears | obj_type = scythe) {
mes("I can't use Telekinetic Grab on this object.");
return;
}
Expand Down

0 comments on commit 9a1ae0d

Please sign in to comment.