Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -2306,13 +2306,13 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "25.0",
|
||||
"weight": "50.0",
|
||||
"id": "1357",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "25.0",
|
||||
"weight": "50.0",
|
||||
"id": "1317",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -2330,31 +2330,31 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "105",
|
||||
"weight": "25.0",
|
||||
"weight": "50.0",
|
||||
"id": "556",
|
||||
"maxAmount": "105"
|
||||
},
|
||||
{
|
||||
"minAmount": "105",
|
||||
"weight": "25.0",
|
||||
"weight": "50.0",
|
||||
"id": "554",
|
||||
"maxAmount": "105"
|
||||
},
|
||||
{
|
||||
"minAmount": "7",
|
||||
"weight": "8.0",
|
||||
"weight": "25.0",
|
||||
"id": "560",
|
||||
"maxAmount": "7"
|
||||
},
|
||||
{
|
||||
"minAmount": "15",
|
||||
"weight": "8.0",
|
||||
"weight": "25.0",
|
||||
"id": "565",
|
||||
"maxAmount": "15"
|
||||
},
|
||||
{
|
||||
"minAmount": "15",
|
||||
"weight": "8.0",
|
||||
"weight": "25.0",
|
||||
"id": "563",
|
||||
"maxAmount": "15"
|
||||
},
|
||||
@@ -2366,7 +2366,7 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "8.0",
|
||||
"weight": "50.0",
|
||||
"id": "9144",
|
||||
"maxAmount": "12"
|
||||
},
|
||||
@@ -2382,12 +2382,6 @@
|
||||
"id": "441",
|
||||
"maxAmount": "100"
|
||||
},
|
||||
{
|
||||
"minAmount": "100",
|
||||
"weight": "25.0",
|
||||
"id": "454",
|
||||
"maxAmount": "100"
|
||||
},
|
||||
{
|
||||
"minAmount": "100",
|
||||
"weight": "25.0",
|
||||
@@ -2396,7 +2390,7 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "50.0",
|
||||
"weight": "25.0",
|
||||
"id": "9431",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -2414,13 +2408,13 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "8.0",
|
||||
"weight": "25.0",
|
||||
"id": "407",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "8.0",
|
||||
"weight": "10.0",
|
||||
"id": "12070",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -2432,25 +2426,19 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "0.18",
|
||||
"weight": "0.154",
|
||||
"id": "11286",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "0",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "23.15",
|
||||
"weight": "10.0",
|
||||
"id": "31",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "5600.0",
|
||||
"weight": "200.0",
|
||||
"id": "0",
|
||||
"maxAmount": "1"
|
||||
}
|
||||
@@ -2880,7 +2868,7 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "0.12",
|
||||
"weight": "0.0562",
|
||||
"id": "11286",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -25185,13 +25173,13 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "19.35",
|
||||
"weight": "5.0",
|
||||
"id": "31",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "0.145",
|
||||
"weight": "0.07994",
|
||||
"id": "11286",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -25417,13 +25405,13 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "21.3",
|
||||
"weight": "6.0",
|
||||
"id": "31",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "0.14",
|
||||
"weight": "0.0728",
|
||||
"id": "11286",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -43295,7 +43283,7 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "2.8",
|
||||
"weight": "2.5",
|
||||
"id": "8901",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -46690,19 +46678,19 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "25.0",
|
||||
"weight": "8.0",
|
||||
"id": "31",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "0.15",
|
||||
"weight": "0.0768",
|
||||
"id": "11286",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "0.03",
|
||||
"weight": "0.025",
|
||||
"id": "11335",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -63408,25 +63396,25 @@
|
||||
"main": [
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "1.5",
|
||||
"weight": "1.0",
|
||||
"id": "13746",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "1.5",
|
||||
"weight": "1.0",
|
||||
"id": "13748",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "1.5",
|
||||
"weight": "1.0",
|
||||
"id": "13750",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "2.95",
|
||||
"weight": "2.0",
|
||||
"id": "13752",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -63474,7 +63462,19 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "60.0",
|
||||
"weight": "5.0",
|
||||
"id": "2366",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "5.0",
|
||||
"id": "1250",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "13734",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -63504,7 +63504,7 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "2500",
|
||||
"weight": "175.0",
|
||||
"weight": "100.0",
|
||||
"id": "7937",
|
||||
"maxAmount": "2500"
|
||||
},
|
||||
@@ -63521,20 +63521,20 @@
|
||||
"maxAmount": "500"
|
||||
},
|
||||
{
|
||||
"minAmount": "300",
|
||||
"weight": "175.0",
|
||||
"minAmount": "209",
|
||||
"weight": "125.0",
|
||||
"id": "560",
|
||||
"maxAmount": "300"
|
||||
},
|
||||
{
|
||||
"minAmount": "250",
|
||||
"weight": "175.0",
|
||||
"weight": "80.0",
|
||||
"id": "566",
|
||||
"maxAmount": "250"
|
||||
},
|
||||
{
|
||||
"minAmount": "70",
|
||||
"weight": "175.0",
|
||||
"weight": "80.0",
|
||||
"id": "384",
|
||||
"maxAmount": "70"
|
||||
},
|
||||
@@ -63552,31 +63552,31 @@
|
||||
},
|
||||
{
|
||||
"minAmount": "24",
|
||||
"weight": "100.0",
|
||||
"weight": "25.0",
|
||||
"id": "5321",
|
||||
"maxAmount": "24"
|
||||
},
|
||||
{
|
||||
"minAmount": "10",
|
||||
"weight": "24.0",
|
||||
"weight": "100.0",
|
||||
"id": "5295",
|
||||
"maxAmount": "10"
|
||||
},
|
||||
{
|
||||
"minAmount": "30",
|
||||
"weight": "75.0",
|
||||
"id": "7060",
|
||||
"id": "7061",
|
||||
"maxAmount": "30"
|
||||
},
|
||||
{
|
||||
"minAmount": "40",
|
||||
"weight": "75.0",
|
||||
"id": "5953",
|
||||
"id": "2449",
|
||||
"maxAmount": "40"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "6.6",
|
||||
"weight": "3.0",
|
||||
"id": "13754",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
@@ -63585,108 +63585,6 @@
|
||||
"weight": "3.1496",
|
||||
"id": "0",
|
||||
"maxAmount": "13"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "40.0",
|
||||
"id": "11133",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "20",
|
||||
"weight": "80.0",
|
||||
"id": "226",
|
||||
"maxAmount": "20"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "24.0",
|
||||
"id": "12070",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "100",
|
||||
"weight": "80.0",
|
||||
"id": "1754",
|
||||
"maxAmount": "100"
|
||||
},
|
||||
{
|
||||
"minAmount": "125",
|
||||
"weight": "80.0",
|
||||
"id": "450",
|
||||
"maxAmount": "125"
|
||||
},
|
||||
{
|
||||
"minAmount": "20",
|
||||
"weight": "80.0",
|
||||
"id": "452",
|
||||
"maxAmount": "20"
|
||||
},
|
||||
{
|
||||
"minAmount": "35",
|
||||
"weight": "80.0",
|
||||
"id": "2362",
|
||||
"maxAmount": "35"
|
||||
},
|
||||
{
|
||||
"minAmount": "100",
|
||||
"weight": "80.0",
|
||||
"id": "8781",
|
||||
"maxAmount": "100"
|
||||
},
|
||||
{
|
||||
"minAmount": "150",
|
||||
"weight": "80.0",
|
||||
"id": "8836",
|
||||
"maxAmount": "150"
|
||||
},
|
||||
{
|
||||
"minAmount": "75",
|
||||
"weight": "80.0",
|
||||
"id": "1514",
|
||||
"maxAmount": "75"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "20.0",
|
||||
"id": "31",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "4091",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "4093",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "1403",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "1401",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "1407",
|
||||
"maxAmount": "1"
|
||||
},
|
||||
{
|
||||
"minAmount": "1",
|
||||
"weight": "100.0",
|
||||
"id": "1405",
|
||||
"maxAmount": "1"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -40578,6 +40578,7 @@
|
||||
"grand_exchange_price": "29900",
|
||||
"stand_anim": "1662",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "1664",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4153",
|
||||
@@ -45819,6 +45820,7 @@
|
||||
"grand_exchange_price": "94300",
|
||||
"name": "Ahrim's hood",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4708",
|
||||
"bonuses": "0,0,0,6,-2,15,13,16,6,0,15,0,0,0,0"
|
||||
@@ -45849,6 +45851,7 @@
|
||||
"grand_exchange_price": "69500",
|
||||
"stand_anim": "813",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "1210",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4710",
|
||||
@@ -45887,6 +45890,7 @@
|
||||
"grand_exchange_price": "1000000",
|
||||
"name": "Ahrim's robetop",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4712",
|
||||
"bonuses": "0,0,0,30,-10,52,37,63,30,0,60,0,0,0,0"
|
||||
@@ -45914,6 +45918,7 @@
|
||||
"grand_exchange_price": "1700000",
|
||||
"name": "Ahrim's robeskirt",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4714",
|
||||
"bonuses": "0,0,0,22,-7,33,30,36,22,0,30,0,0,0,0"
|
||||
@@ -45942,6 +45947,7 @@
|
||||
"grand_exchange_price": "1300000",
|
||||
"name": "Dharok's helm",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4716",
|
||||
"bonuses": "0,0,0,-3,-1,45,48,44,-1,51,15,0,0,0,0"
|
||||
@@ -45972,6 +45978,7 @@
|
||||
"grand_exchange_price": "516900",
|
||||
"stand_anim": "2065",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "824",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4718",
|
||||
@@ -46009,6 +46016,7 @@
|
||||
"grand_exchange_price": "511400",
|
||||
"name": "Dharok's platebody",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4720",
|
||||
"bonuses": "0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0"
|
||||
@@ -46036,6 +46044,7 @@
|
||||
"grand_exchange_price": "748800",
|
||||
"name": "Dharok's platelegs",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4722",
|
||||
"bonuses": "0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0"
|
||||
@@ -46065,6 +46074,7 @@
|
||||
"grand_exchange_price": "396300",
|
||||
"name": "Guthan's helm",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4724",
|
||||
"bonuses": "0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0"
|
||||
@@ -46095,6 +46105,7 @@
|
||||
"grand_exchange_price": "588400",
|
||||
"stand_anim": "813",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "1210",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4726",
|
||||
@@ -46132,6 +46143,7 @@
|
||||
"grand_exchange_price": "316800",
|
||||
"name": "Guthan's platebody",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4728",
|
||||
"bonuses": "0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0"
|
||||
@@ -46159,6 +46171,7 @@
|
||||
"grand_exchange_price": "315600",
|
||||
"name": "Guthan's chainskirt",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4730",
|
||||
"bonuses": "0,0,0,-14,-7,75,72,73,-4,82,30,0,0,0,0"
|
||||
@@ -46187,6 +46200,7 @@
|
||||
"grand_exchange_price": "38900",
|
||||
"name": "Karil's coif",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4732",
|
||||
"bonuses": "0,0,0,-1,3,6,9,12,6,10,15,0,0,0,0"
|
||||
@@ -46217,6 +46231,7 @@
|
||||
"grand_exchange_price": "188000",
|
||||
"stand_anim": "2074",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "2077",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4734",
|
||||
@@ -46255,6 +46270,7 @@
|
||||
"grand_exchange_price": "1800000",
|
||||
"name": "Karil's leathertop",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4736",
|
||||
"bonuses": "0,0,0,-15,30,47,42,50,65,57,60,0,0,0,0"
|
||||
@@ -46282,6 +46298,7 @@
|
||||
"grand_exchange_price": "217000",
|
||||
"name": "Karil's leatherskirt",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4738",
|
||||
"bonuses": "0,0,0,-10,17,26,20,28,35,33,30,0,0,0,0"
|
||||
@@ -46327,6 +46344,7 @@
|
||||
"grand_exchange_price": "139000",
|
||||
"name": "Torag's helm",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4745",
|
||||
"bonuses": "0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0"
|
||||
@@ -46359,6 +46377,7 @@
|
||||
"attack_audios": "1332,0,0,0",
|
||||
"name": "Torag's hammers",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4747",
|
||||
"bonuses": "-4,-4,85,-4,0,0,0,0,0,0,0,72,0,0,0"
|
||||
@@ -46387,6 +46406,7 @@
|
||||
"grand_exchange_price": "346200",
|
||||
"name": "Torag's platebody",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4749",
|
||||
"bonuses": "0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0"
|
||||
@@ -46414,6 +46434,7 @@
|
||||
"grand_exchange_price": "427200",
|
||||
"name": "Torag's platelegs",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4751",
|
||||
"bonuses": "0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0"
|
||||
@@ -46443,6 +46464,7 @@
|
||||
"grand_exchange_price": "687200",
|
||||
"name": "Verac's helm",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4753",
|
||||
"bonuses": "0,0,0,-6,-2,55,58,54,0,56,15,0,3,0,0"
|
||||
@@ -46473,6 +46495,7 @@
|
||||
"grand_exchange_price": "135500",
|
||||
"stand_anim": "1832",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "1831",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4755",
|
||||
@@ -46511,6 +46534,7 @@
|
||||
"grand_exchange_price": "270000",
|
||||
"name": "Verac's brassard",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4757",
|
||||
"bonuses": "0,0,0,-6,-2,81,95,85,0,81,60,0,5,0,0"
|
||||
@@ -46538,6 +46562,7 @@
|
||||
"grand_exchange_price": "411400",
|
||||
"name": "Verac's plateskirt",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "4759",
|
||||
"bonuses": "0,0,0,-21,-7,85,82,83,0,84,30,0,4,0,0"
|
||||
@@ -106101,6 +106126,7 @@
|
||||
"grand_exchange_price": "95400",
|
||||
"name": "Dragon boots",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "11732",
|
||||
"bonuses": "0,0,0,-3,-1,16,17,18,0,0,15,4,0,0,0"
|
||||
@@ -121161,6 +121187,7 @@
|
||||
"grand_exchange_price": "43082",
|
||||
"stand_anim": "813",
|
||||
"tradeable": "true",
|
||||
"rare_item": "true",
|
||||
"run_anim": "824",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "13290",
|
||||
@@ -139539,4 +139566,4 @@
|
||||
"attack_audios": "2555,0,0,0",
|
||||
"name": "Staff of the raven"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4433,7 +4433,7 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "2329",
|
||||
"loc_data": "{1702,4823,0,0,6}"
|
||||
"loc_data": "{3093,3260,0,1,6}-{1702,4822,0,0,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "2330",
|
||||
|
||||
+6
@@ -4,6 +4,7 @@ import core.game.content.dialogue.DialoguePlugin;
|
||||
import core.game.content.dialogue.FacialExpression;
|
||||
import core.game.node.entity.npc.NPC;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.diary.DiaryType;
|
||||
import core.game.node.item.Item;
|
||||
|
||||
/**
|
||||
@@ -39,6 +40,11 @@ public final class CuratorHaigHalenDialogue extends DialoguePlugin {
|
||||
public boolean open(Object... args) {
|
||||
npc = (NPC) args[0];
|
||||
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Welcome to the museum of Varrock.");
|
||||
|
||||
if (player.getQuestRepository().getPoints() >= 50) {
|
||||
player.getAchievementDiaryManager().finishTask(player, DiaryType.VARROCK, 0, 12);
|
||||
}
|
||||
|
||||
stage = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import core.game.node.entity.player.Player;
|
||||
import core.game.node.item.ChanceItem;
|
||||
import core.game.node.item.Item;
|
||||
import core.game.node.item.WeightedChanceItem;
|
||||
import org.rs09.consts.Items;
|
||||
import rs09.game.world.GameWorld;
|
||||
import core.tools.RandomFunction;
|
||||
|
||||
@@ -25,370 +26,373 @@ import java.util.List;
|
||||
public enum ClueLevel {
|
||||
|
||||
EASY(new Item(2714), 1 << 16 | 5,
|
||||
new ChanceItem(2633, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2635, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2637, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2587, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_BERET_2633, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_BERET_2635, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WHITE_BERET_2637, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// t
|
||||
new ChanceItem(2583, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2585, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3472, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2589, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2595, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_FULL_HELMT_2587, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATEBODY_T_2583, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATELEGS_T_2585, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATESKIRT_T_3472, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_KITESHIELD_T_2589, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// g
|
||||
new ChanceItem(2591, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2593, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3473, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2597, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2631, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_FULL_HELMG_2595, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATEBODY_G_2591, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATELEGS_G_2593, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_PLATESKIRT_G_3473, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_KITESHIELD_G_2597, 1, 1, DropFrequency.UNCOMMON),
|
||||
//black h helms
|
||||
new ChanceItem(Items.BLACK_HELM_H1_10306, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H2_10308, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H3_10310, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H4_10312, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_HELM_H5_10314, 1, 1, DropFrequency.UNCOMMON),
|
||||
//black h shields
|
||||
new ChanceItem(Items.BLACK_SHIELDH1_7332, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH2_7338, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH3_7344, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH4_7350, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_SHIELDH5_7356, 1, 1, DropFrequency.UNCOMMON),
|
||||
// highway
|
||||
// man
|
||||
// mask
|
||||
new ChanceItem(7392, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.HIGHWAYMAN_MASK_2631, 1, 1, DropFrequency.UNCOMMON),
|
||||
// wizard t
|
||||
new ChanceItem(7396, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7388, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7390, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WIZARD_ROBE_T_7392, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WIZARD_HAT_T_7396, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_SKIRT_T_7388, 1, 1, DropFrequency.UNCOMMON),
|
||||
// wizard
|
||||
// g
|
||||
new ChanceItem(7386, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7394, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7362, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WIZARD_ROBE_G_7390, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_SKIRT_G_7386, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WIZARD_HAT_G_7394, 1, 1, DropFrequency.UNCOMMON),
|
||||
// studded
|
||||
// g
|
||||
new ChanceItem(7366, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7364, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STUDDED_BODY_G_7362, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STUDDED_CHAPS_G_7366, 1, 1, DropFrequency.UNCOMMON),
|
||||
// studded
|
||||
// t
|
||||
new ChanceItem(7368, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10404, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STUDDED_BODY_T_7364, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STUDDED_CHAPS_T_7368, 1, 1, DropFrequency.UNCOMMON),
|
||||
// red
|
||||
// ele
|
||||
// shirt
|
||||
new ChanceItem(10406, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10424, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10426, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10408, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_SHIRT_10404, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_LEGS_10406, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_BLOUSE_10424, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_ELE_SKIRT_10426, 1, 1, DropFrequency.UNCOMMON),
|
||||
// blue
|
||||
// ele
|
||||
// shirt
|
||||
new ChanceItem(10410, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10428, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10430, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10412, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_SHIRT_10408, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_LEGS_10410, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_BLOUSE_10428, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_ELE_SKIRT_10430, 1, 1, DropFrequency.UNCOMMON),
|
||||
// green
|
||||
// ele
|
||||
// shirt
|
||||
new ChanceItem(10414, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10432, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10434, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10316, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GREEN_ELE_SHIRT_10412, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_ELE_LEGS_10414, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_ELE_BLOUSE_10432, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_ELE_SKIRT_10434, 1, 1, DropFrequency.UNCOMMON),
|
||||
// bob
|
||||
// the
|
||||
// cat
|
||||
new ChanceItem(10318, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10320, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10322, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10324, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10392, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10316, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10318, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10320, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10322, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BOB_SHIRT_10324, 1, 1, DropFrequency.RARE),
|
||||
// emote
|
||||
// enhancers
|
||||
new ChanceItem(10394, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10396, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10398, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10366, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10458, 1, 1, DropFrequency.UNCOMMON),
|
||||
// vestement
|
||||
new ChanceItem(Items.A_POWDERED_WIG_10392, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.FLARED_TROUSERS_10394, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.PANTALOONS_10396, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SLEEPING_CAP_10398, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.AMULET_OF_MAGICT_10366, 1, 1, DropFrequency.UNCOMMON),
|
||||
// vestment
|
||||
// robes(sara,
|
||||
// guthix,
|
||||
// zammy)
|
||||
new ChanceItem(10464, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10462, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10466, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10460, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10468, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13095, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_ROBE_TOP_10458, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_ROBE_LEGS_10464, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_ROBE_TOP_10462, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_ROBE_LEGS_10466, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_ROBE_TOP_10460, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_ROBE_LEGS_10468, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// cane
|
||||
new ChanceItem(13105, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BLACK_CANE_13095, 1, 1, DropFrequency.UNCOMMON),
|
||||
// spikey
|
||||
// helmet
|
||||
new ChanceItem(1077, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1089, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1107, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1125, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1151, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1165, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1179, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1195, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1217, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1283, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1297, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1313, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1327, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1341, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1361, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1367, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1426, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(3098, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(4821, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(8779, 4, 38, DropFrequency.COMMON),
|
||||
new ChanceItem(850, 1, 4, DropFrequency.COMMON),
|
||||
new ChanceItem(334, 4, 19, DropFrequency.COMMON),
|
||||
new ChanceItem(1169, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1059, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1061, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1063, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1095, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1129, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1167, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1131, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(858, 1, 4, DropFrequency.COMMON),
|
||||
new ChanceItem(330, 3, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(1441, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(1443, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(1270, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(1097, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1133, 1, 1, DropFrequency.COMMON)),
|
||||
new ChanceItem(Items.SPIKED_HELMET_13105, 1, 1, DropFrequency.RARE),
|
||||
//comp bow
|
||||
new ChanceItem(Items.WILLOW_COMP_BOW_10280, 1, 1, DropFrequency.UNCOMMON),
|
||||
//other common crap
|
||||
new ChanceItem(Items.BLACK_PLATELEGS_1077, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_PLATESKIRT_1089, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_CHAINBODY_1107, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_PLATEBODY_1125, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_MED_HELM_1151, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_FULL_HELM_1165, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_SQ_SHIELD_1179, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_KITESHIELD_1195, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_DAGGER_1217, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_SWORD_1283, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_LONGSWORD_1297, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_2H_SWORD_1313, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_SCIMITAR_1327, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_WARHAMMER_1341, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_AXE_1361, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_BATTLEAXE_1367, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_MACE_1426, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_CLAWS_3098, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_NAILS_4821, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.OAK_PLANK_8779, 4, 38, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.WILLOW_SHORTBOW_850, 1, 4, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.TROUT_334, 4, 19, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.COIF_1169, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_GLOVES_1059, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_BOOTS_1061, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_VAMBRACES_1063, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_CHAPS_1095, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_BODY_1129, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LEATHER_COWL_1167, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.HARDLEATHER_BODY_1131, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.YEW_SHORTBOW_858, 1, 4, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SALMON_330, 3, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.EARTH_TALISMAN_1441, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.FIRE_TALISMAN_1443, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.STEEL_PICKAXE_1270, 1, 3, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.STUDDED_CHAPS_1097, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.STUDDED_BODY_1133, 1, 1, DropFrequency.COMMON)),
|
||||
|
||||
MEDIUM(new Item(2717), 1 << 16 | 6,
|
||||
new ChanceItem(2605, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Trimmed
|
||||
// addy
|
||||
// shit
|
||||
new ChanceItem(2599, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2601, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2603, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2613, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2607, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2609, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3475, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2611, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2579, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2647, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_FULL_HELMT_2605, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATEBODY_T_2599, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATELEGS_T_2601, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_KITESHIELD_T_2603, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATESKIRT_T_3474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_FULL_HELMG_2613, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATEBODY_G_2607, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATELEGS_G_2609, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_PLATESKIRT_G_3475, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAM_KITESHIELD_G_2611, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Headbands
|
||||
new ChanceItem(2645, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2649, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2605, 1, 1, DropFrequency.UNCOMMON),
|
||||
// addy
|
||||
// trimmed
|
||||
// shit
|
||||
new ChanceItem(2599, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2601, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2603, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2613, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2607, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2609, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3475, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2611, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2577, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BLACK_HEADBAND_2647, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_HEADBAND_2645, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BROWN_HEADBAND_2649, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Boots
|
||||
new ChanceItem(2579, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2647, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Headbands
|
||||
new ChanceItem(2645, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2649, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7319, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RANGER_BOOTS_2577, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.WIZARD_BOOTS_2579, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Boaters
|
||||
new ChanceItem(7321, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7323, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7325, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7327, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7372, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_BOATER_7319, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ORANGE_BOATER_7321, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_BOATER_7323, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_BOATER_7325, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_BOATER_7327, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Trimmed
|
||||
// Dragonhide
|
||||
// shit
|
||||
new ChanceItem(7380, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7370, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7378, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13103, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13097, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13109, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_BODY_T_7372, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_T_7380, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_BODYG_7370, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_G_7378, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PITH_HELMET_13103, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_CANE_13097, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.YEW_COMP_BOW_10282, 1, 1, DropFrequency.UNCOMMON),
|
||||
// animal
|
||||
// masks
|
||||
new ChanceItem(13107, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13111, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13113, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13115, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10364, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PENGUIN_MASK_13109, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SHEEP_MASK_13107, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BAT_MASK_13111, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.CAT_MASK_13113, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WOLF_MASK_13115, 1, 1, DropFrequency.UNCOMMON),
|
||||
// ammy
|
||||
// of
|
||||
// strength
|
||||
// (t)
|
||||
new ChanceItem(10420, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.STRENGTH_AMULETT_10364, 1, 1, DropFrequency.UNCOMMON),
|
||||
// white ele
|
||||
new ChanceItem(10422, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10400, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.WHITE_ELE_BLOUSE_10420, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WHITE_ELE_SKIRT_10422, 1, 1, DropFrequency.UNCOMMON),
|
||||
// black
|
||||
// ele
|
||||
new ChanceItem(10402, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10416, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLACK_ELE_SHIRT_10400, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.BLACK_ELE_LEGS_10402, 1, 1, DropFrequency.RARE),
|
||||
// purple
|
||||
// ele
|
||||
new ChanceItem(10418, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10436, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10438, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10296, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_SHIRT_10416, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_LEGS_10418, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_BLOUSE_10436, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_ELE_SKIRT_10438, 1, 1, DropFrequency.UNCOMMON),
|
||||
// addy
|
||||
// heraldic
|
||||
// helms
|
||||
new ChanceItem(10298, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10300, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10302, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10304, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10666, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H1_10296, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H2_10298, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H3_10300, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H4_10302, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_HELM_H5_10304, 1, 1, DropFrequency.UNCOMMON),
|
||||
// addy
|
||||
// heraldic
|
||||
// shield
|
||||
new ChanceItem(10669, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10672, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10675, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10678, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10446, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH1_10666, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH2_10669, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH3_10672, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH4_10675, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ADAMANT_SHIELDH5_10678, 1, 1, DropFrequency.UNCOMMON),
|
||||
// cloaks
|
||||
new ChanceItem(10448, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10450, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(1161, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1123, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1073, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1091, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1199, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1183, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1111, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1211, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1271, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1287, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1301, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1317, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1357, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1371, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1430, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(4823, 10, 40, DropFrequency.COMMON),
|
||||
new ChanceItem(9183, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1393, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1099, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1135, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(857, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(8781, 10, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(374, 6, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(380, 15, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(10452, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10454, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10456, 1, 1, DropFrequency.UNCOMMON)),
|
||||
new ChanceItem(Items.SARADOMIN_CLOAK_10446, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_CLOAK_10448, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_CLOAK_10450, 1, 1, DropFrequency.UNCOMMON),
|
||||
//mitres
|
||||
new ChanceItem(Items.SARADOMIN_MITRE_10452, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_MITRE_10454, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_MITRE_10456, 1, 1, DropFrequency.UNCOMMON),
|
||||
|
||||
new ChanceItem(Items.ADAMANT_FULL_HELM_1161, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PLATEBODY_1123, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PLATELEGS_1073, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PLATESKIRT_1091, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_KITESHIELD_1199, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_SQ_SHIELD_1183, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_CHAINBODY_1111, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_DAGGER_1211, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_PICKAXE_1271, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_SWORD_1287, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_LONGSWORD_1301, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_2H_SWORD_1317, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_AXE_1357, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_BATTLEAXE_1371, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_MACE_1430, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANTITE_NAILS_4823, 10, 40, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.ADAMANT_CROSSBOW_9183, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.FIRE_BATTLESTAFF_1393, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.GREEN_DHIDE_CHAPS_1099, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.GREEN_DHIDE_BODY_1135, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.YEW_SHORTBOW_857, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.TEAK_PLANK_8781, 10, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SWORDFISH_374, 6, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.LOBSTER_380, 15, 43, DropFrequency.COMMON)),
|
||||
|
||||
HARD(new Item(2720), 1 << 16 | 8,
|
||||
new ChanceItem(13101, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(13099, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10470, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10472, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10440, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10442, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10444, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2628, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.MAGIC_COMP_BOW_10284, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.TOP_HAT_13101, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_CANE_13099, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_STOLE_10470, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_STOLE_10472, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_STOLE_10474, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.SARADOMIN_CROZIER_10440, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GUTHIX_CROZIER_10442, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ZAMORAK_CROZIER_10444, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Trimmed
|
||||
// rune
|
||||
// shit
|
||||
new ChanceItem(2623, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2625, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2629, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2619, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3477, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2615, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2617, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2628, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2628, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3476, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2621, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2673, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_FULL_HELM_T_2627, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATEBODY_T_2623, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATELEGS_T_2625, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATESKIRT_T_3477, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_KITESHIELD_T_2629, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_FULL_HELMG_2619, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATEBODY_G_2615, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATELEGS_G_2617, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_PLATESKIRT_G_3476, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_KITESHIELD_G_2621, 1, 1, DropFrequency.UNCOMMON),
|
||||
// God
|
||||
// armour
|
||||
// shit
|
||||
new ChanceItem(2669, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2671, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3480, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2675, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2657, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2653, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2655, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2659, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2665, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2661, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3478, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2663, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(2667, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3479, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10286, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_FULL_HELM_2673, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PLATEBODY_2669, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PLATELEGS_2671, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PLATESKIRT_3480, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_KITESHIELD_2675, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_FULL_HELM_2657, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PLATEBODY_2653, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PLATELEGS_2655, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PLATESKIRT_3478, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_KITESHIELD_2659, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_FULL_HELM_2665, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PLATEBODY_2661, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PLATELEGS_2663, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PLATESKIRT_3479, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_KITESHIELD_2667, 1, 1, DropFrequency.RARE),
|
||||
// heraldic
|
||||
// shit
|
||||
new ChanceItem(10667, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10288, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10670, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10290, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10673, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10292, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10676, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10294, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10679, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7376, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H1_10286, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH1_10667, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H2_10288, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH2_10670, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H3_10290, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH3_10673, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H4_10292, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH4_10676, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_HELM_H5_10294, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RUNE_SHIELDH5_10679, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Blue
|
||||
// dragonhide
|
||||
// trimmed
|
||||
new ChanceItem(7384, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(7374, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(7382, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_BODY_T_7376, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_T_7384, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_BODY_G_7374, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DHIDE_CHAPS_G_7382, 1, 1, DropFrequency.COMMON),
|
||||
// God
|
||||
// dhide
|
||||
new ChanceItem(10368, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10370, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10372, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10376, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10378, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10380, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10384, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10386, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(10388, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_COIF_10374, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_BRACERS_10368, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_DHIDE_10370, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_CHAPS_10372, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_COIF_10382, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_BRACERS_10376, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_DRAGONHIDE_10378, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_CHAPS_10380, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_COIF_10390, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_BRACERS_10384, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_DHIDE_10386, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_CHAPS_10388, 1, 1, DropFrequency.RARE),
|
||||
// Hats
|
||||
new ChanceItem(2651, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2581, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(2639, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PIRATES_HAT_2651, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ROBIN_HOOD_HAT_2581, 1, 1, DropFrequency.UNCOMMON),
|
||||
// Cavaliers
|
||||
new ChanceItem(2641, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(2643, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1163, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1127, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1079, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1093, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1201, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1185, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1213, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1275, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1289, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1303, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1319, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1359, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1373, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1432, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(4824, 10, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(9144, 6, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(9185, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(1747, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(2503, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(861, 1, 2, DropFrequency.COMMON),
|
||||
new ChanceItem(859, 1, 2, DropFrequency.COMMON),
|
||||
new ChanceItem(8783, 6, 27, DropFrequency.COMMON),
|
||||
new ChanceItem(380, 16, 38, DropFrequency.COMMON),
|
||||
new ChanceItem(386, 7, 32, DropFrequency.COMMON),
|
||||
new ChanceItem(10382, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10374, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10389, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7398, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7399, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7400, 1, 1, DropFrequency.UNCOMMON)),
|
||||
new ChanceItem(Items.TAN_CAVALIER_2639, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.DARK_CAVALIER_2641, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_CAVALIER_2643, 1, 1, DropFrequency.COMMON),
|
||||
//rune crap
|
||||
new ChanceItem(Items.RUNE_FULL_HELM_1163, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PLATEBODY_1127, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PLATELEGS_1079, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PLATESKIRT_1093, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_KITESHIELD_1201, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_SQ_SHIELD_1185, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_DAGGER_1213, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_PICKAXE_1275, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_SWORD_1289, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_LONGSWORD_1303, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_2H_SWORD_1319, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_AXE_1359, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_BATTLEAXE_1373, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_MACE_1432, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_NAILS_4824, 10, 43, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_BOLTS_9144, 6, 23, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.RUNE_CROSSBOW_9185, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_DHIDE_CHAPS_2497, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.BLACK_DHIDE_BODY_2503, 1, 1, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.MAGIC_SHORTBOW_861, 1, 2, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.MAGIC_LONGBOW_859, 1, 2, DropFrequency.COMMON),
|
||||
//planks
|
||||
new ChanceItem(Items.MAHOGANY_PLANK_8783, 6, 27, DropFrequency.COMMON),
|
||||
//food
|
||||
new ChanceItem(Items.LOBSTER_380, 16, 38, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SHARK_386, 7, 32, DropFrequency.COMMON),
|
||||
//enchanted robes
|
||||
new ChanceItem(Items.ENCHANTED_ROBE_7398, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ENCHANTED_TOP_7399, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.ENCHANTED_HAT_7400, 1, 1, DropFrequency.UNCOMMON)),
|
||||
|
||||
;
|
||||
|
||||
@@ -396,37 +400,29 @@ public enum ClueLevel {
|
||||
* The default rewards.
|
||||
*/
|
||||
private static final ChanceItem[] DEFAULT_REWARDS = new ChanceItem[] {
|
||||
new ChanceItem(995, 500, 7000, DropFrequency.COMMON),
|
||||
new ChanceItem(10326, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7329, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7331, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(7330, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10327, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(10476, 1, 27, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(556, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(554, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(557, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(557, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(1694, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(1696, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(1698, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(1700, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(1702, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(847, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(855, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(859, 1, 1, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(3827, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3828, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3829, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3830, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3831, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3832, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3833, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3834, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3835, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3836, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3837, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(3838, 1, 1, DropFrequency.RARE)
|
||||
new ChanceItem(Items.COINS_995, 500, 7000, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.PURPLE_FIRELIGHTER_10326, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.RED_FIRELIGHTER_7329, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.BLUE_FIRELIGHTER_7331, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.GREEN_FIRELIGHTER_7330, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.WHITE_FIRELIGHTER_10327, 15, 40, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.PURPLE_SWEETS_10476, 1, 27, DropFrequency.UNCOMMON),
|
||||
new ChanceItem(Items.AIR_RUNE_556, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.FIRE_RUNE_554, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.EARTH_RUNE_557, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.WATER_RUNE_555, 1, 228, DropFrequency.COMMON),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_1_3827, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_2_3828, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_3_3829, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.SARADOMIN_PAGE_4_3830, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_1_3831, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_2_3832, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_3_3833, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.ZAMORAK_PAGE_4_3834, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_1_3835, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_2_3836, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_3_3837, 1, 1, DropFrequency.RARE),
|
||||
new ChanceItem(Items.GUTHIX_PAGE_4_3838, 1, 1, DropFrequency.RARE)
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -434,26 +430,26 @@ public enum ClueLevel {
|
||||
*/
|
||||
private static final WeightedChanceItem[] SUPER_RARE = new WeightedChanceItem[] {
|
||||
//1 Trimmed Glory = 50 = to hit 15%
|
||||
new WeightedChanceItem(10362, 1, 1, 50),
|
||||
new WeightedChanceItem(Items.AMULET_OF_GLORYT_10362, 1, 1, 50),
|
||||
//5 Gilded Items = 150 = to hit 9%
|
||||
new WeightedChanceItem(3486, 1, 1, 30),
|
||||
new WeightedChanceItem(3481, 1, 1, 30),
|
||||
new WeightedChanceItem(3483, 1, 1, 30),
|
||||
new WeightedChanceItem(3485, 1, 1, 30),
|
||||
new WeightedChanceItem(3488, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_FULL_HELM_3486, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_PLATEBODY_3481, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_PLATELEGS_3483, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_PLATESKIRT_3485, 1, 1, 30),
|
||||
new WeightedChanceItem(Items.GILDED_KITESHIELD_3488, 1, 1, 30),
|
||||
//12 3rd Age = 120 = to hit 3%
|
||||
new WeightedChanceItem(10330, 1, 1, 10),
|
||||
new WeightedChanceItem(10332, 1, 1, 10),
|
||||
new WeightedChanceItem(10334, 1, 1, 10),
|
||||
new WeightedChanceItem(10336, 1, 1, 10),
|
||||
new WeightedChanceItem(10338, 1, 1, 10),
|
||||
new WeightedChanceItem(10340, 1, 1, 10),
|
||||
new WeightedChanceItem(10342, 1, 1, 10),
|
||||
new WeightedChanceItem(10344, 1, 1, 10),
|
||||
new WeightedChanceItem(10346, 1, 1, 10),
|
||||
new WeightedChanceItem(10348, 1, 1, 10),
|
||||
new WeightedChanceItem(10350, 1, 1, 10),
|
||||
new WeightedChanceItem(10352, 1, 1, 10) };
|
||||
new WeightedChanceItem(Items.THIRD_AGE_RANGE_TOP_10330, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_RANGE_LEGS_10332, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_RANGE_COIF_10334, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_VAMBRACES_10336, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_ROBE_TOP_10338, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_ROBE_10340, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_MAGE_HAT_10342, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_AMULET_10344, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_PLATELEGS_10346, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_PLATEBODY_10348, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_FULL_HELMET_10350, 1, 1, 10),
|
||||
new WeightedChanceItem(Items.THIRD_AGE_KITESHIELD_10352, 1, 1, 10) };
|
||||
|
||||
/**
|
||||
* The casket.
|
||||
|
||||
@@ -2,7 +2,9 @@ package core.game.interaction.city;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.SceneryDefinition;
|
||||
import core.game.component.Component;
|
||||
import core.game.content.global.action.ClimbActionHandler;
|
||||
import core.game.content.global.action.DoorActionHandler;
|
||||
import core.game.interaction.OptionHandler;
|
||||
import core.game.node.Node;
|
||||
import core.game.node.entity.player.Player;
|
||||
@@ -29,8 +31,12 @@ public final class EdgevilleNodePlugin extends OptionHandler {
|
||||
SceneryDefinition.forId(30806).getHandlers().put("option:take-seed", this);
|
||||
SceneryDefinition.forId(12265).getHandlers().put("option:climb", this);
|
||||
|
||||
SceneryDefinition.forId(12266).getHandlers().put("option:open", this);
|
||||
//Dungeon Wilderness gates
|
||||
SceneryDefinition.forId(29319).getHandlers().put("option:open", this);
|
||||
SceneryDefinition.forId(29320).getHandlers().put("option:open", this);
|
||||
|
||||
|
||||
SceneryDefinition.forId(12266).getHandlers().put("option:open", this);
|
||||
SceneryDefinition.forId(26933).getHandlers().put("option:open", this);
|
||||
SceneryDefinition.forId(26934).getHandlers().put("option:close", this);
|
||||
SceneryDefinition.forId(26934).getHandlers().put("option:climb-down", this);
|
||||
@@ -72,6 +78,19 @@ public final class EdgevilleNodePlugin extends OptionHandler {
|
||||
ContentAPI.sendMessage(player, "You climb down through the trapdoor...");
|
||||
ClimbActionHandler.climbLadder(player, (Scenery) node, option);
|
||||
}
|
||||
break;
|
||||
case 29319:
|
||||
case 29320: // Edgeville Dungeon wilderness entrance
|
||||
if (option.equalsIgnoreCase("open") && player.getLocation().getY() < 9918) {
|
||||
Location endLocation = new Location(player.getLocation().getX(),player.getLocation().getY()+1);
|
||||
player.getInterfaceManager().open(new Component(382));
|
||||
player.setAttribute("wildy_gate", node);
|
||||
player.setAttribute("wildy_gate_loc",endLocation);
|
||||
}
|
||||
else{ // Leaving the wilderness
|
||||
Location endLocation = new Location(player.getLocation().getX(),player.getLocation().getY()-1);
|
||||
DoorActionHandler.handleAutowalkDoor(player, (Scenery) node,endLocation);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ public class NewsPaperPlugin extends OptionHandler {
|
||||
player.getInterfaceManager().open(new Component(530));
|
||||
final String page1 = "Varrock gets Makeover! The city of Varrock is the latest recipient of a complete makeover. When interviewed, King Roald said, 'In order to keep visitors coming to see the sights of our beautiful capital, we felt that tidying-up the city would be more effective than just issuing a decree - make sure you visit the new museum while you are here.'";
|
||||
final String page2 = "Obituaries Goblin-Died Giant Rat-Died Unicorn-Died Varrock Guard-Died Varrock Guard-Died Bear-Died. Classifieds.";
|
||||
player.getPacketDispatch().sendString(page1, 530, 2);
|
||||
player.getPacketDispatch().sendString(page2, 530, 4);
|
||||
player.getPacketDispatch().sendString(page1, 530, 7);
|
||||
player.getPacketDispatch().sendString(page2, 530, 8);
|
||||
return true;
|
||||
} else
|
||||
player.getDialogueInterpreter().open(70099, "Come to the Al Kharid Market place! Highquality", "produce at low, low prices! Show this flyer to a", "merchant for money off your next purchase,", "courtesy of Ali Morrisane!");
|
||||
|
||||
+16
-4
@@ -3,6 +3,7 @@ package core.game.interaction.object.wildyditch;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
import core.game.content.global.action.DoorActionHandler;
|
||||
import core.game.node.entity.impl.ForceMovement;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.audio.Audio;
|
||||
@@ -35,7 +36,10 @@ public final class WildernessInterfacePlugin extends ComponentPlugin {
|
||||
if (button != 18) {
|
||||
return true;
|
||||
}
|
||||
handleDitch(player);
|
||||
if (player.getAttribute("wildy_ditch") != null)
|
||||
handleDitch(player);
|
||||
else if(player.getAttribute("wildy_gate") != null)
|
||||
handleGate(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -45,9 +49,6 @@ public final class WildernessInterfacePlugin extends ComponentPlugin {
|
||||
*/
|
||||
public static void handleDitch(final Player player) {
|
||||
Scenery ditch = player.getAttribute("wildy_ditch");
|
||||
if (ditch == null) {
|
||||
return;
|
||||
}
|
||||
player.removeAttribute("wildy_ditch");
|
||||
Location l = ditch.getLocation();
|
||||
int x = player.getLocation().getX();
|
||||
@@ -71,4 +72,15 @@ public final class WildernessInterfacePlugin extends ComponentPlugin {
|
||||
ActivityManager.register(new BountyHunterActivity(CraterType.HIGH_LEVEL));
|
||||
}*/
|
||||
}
|
||||
public static void handleGate(final Player player){
|
||||
Scenery gate = player.getAttribute("wildy_gate");
|
||||
Location endLocation = player.getAttribute("wildy_gate_loc");
|
||||
|
||||
// Cleanup
|
||||
player.removeAttribute("wildy_gate");
|
||||
player.removeAttribute("wildy_gate_loc");
|
||||
|
||||
// Move player through gate/door
|
||||
DoorActionHandler.handleAutowalkDoor(player,gate,endLocation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ import core.game.world.update.flag.npc.NPCFaceLocation;
|
||||
import core.game.world.update.flag.npc.NPCForceChat;
|
||||
import core.game.world.update.flag.npc.NPCSwitchId;
|
||||
import core.tools.RandomFunction;
|
||||
import rs09.game.content.global.GlobalKillCounter;
|
||||
import rs09.game.content.jobs.JobManager;
|
||||
import rs09.game.node.entity.combat.CombatSwingHandler;
|
||||
import rs09.game.system.config.NPCConfigParser;
|
||||
@@ -534,6 +535,7 @@ public class NPC extends Entity {
|
||||
Player p = !(killer instanceof Player) ? null : (Player) killer;
|
||||
if (p != null) {
|
||||
p.incrementAttribute("/save:" + STATS_BASE + ":" + STATS_ENEMIES_KILLED);
|
||||
GlobalKillCounter.incrementKills(p, originalId);
|
||||
}
|
||||
handleDrops(p, killer);
|
||||
if (!isRespawn()) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package core.game.node.entity.npc.drop;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.NPCDefinition;
|
||||
import core.game.content.global.Bones;
|
||||
import core.game.ge.GrandExchangeDatabase;
|
||||
@@ -17,6 +18,7 @@ import core.tools.StringUtils;
|
||||
import rs09.game.ai.AIPlayer;
|
||||
import rs09.game.ai.AIRepository;
|
||||
import rs09.game.ai.general.GeneralBotCreator;
|
||||
import rs09.game.content.global.GlobalKillCounter;
|
||||
import rs09.game.content.global.NPCDropTable;
|
||||
import rs09.game.ge.OfferManager;
|
||||
import rs09.game.system.config.ItemConfigParser;
|
||||
@@ -111,9 +113,7 @@ public final class NPCDropTables {
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (item.getDefinition().getConfiguration(ItemConfigParser.RARE_ITEM, false)) {
|
||||
Repository.sendNews(player.getUsername() + " has just received: " + item.getAmount() + " x " + item.getName() + ".");
|
||||
}
|
||||
ContentAPI.announceIfRare(player, item);
|
||||
if(item.getId() == 6199 && player instanceof Player){
|
||||
player.sendMessage("<col=990000>A mystery box has fallen on the ground.</col>");
|
||||
}
|
||||
@@ -239,4 +239,4 @@ public final class NPCDropTables {
|
||||
this.modRate = modRate;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package core.game.node.entity.npc.familiar;
|
||||
|
||||
import core.game.node.entity.skill.SkillBonus;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.skill.summoning.familiar.Familiar;
|
||||
import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial;
|
||||
import core.game.node.entity.combat.equipment.WeaponInterface;
|
||||
@@ -27,6 +29,7 @@ public class LavaTitanNPC extends Familiar {
|
||||
*/
|
||||
public LavaTitanNPC(Player owner, int id) {
|
||||
super(owner, id, 6100, 12788, 4, WeaponInterface.STYLE_AGGRESSIVE);
|
||||
boosts.add(new SkillBonus(Skills.MINING, 10));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -98,7 +98,7 @@ public enum DiaryType {
|
||||
"Spin a bowl on the pottery wheel and fire it in the oven in<br><br>Barbarian Village",
|
||||
"Enter Edgeville Dungeon using the entrance to the south of<br><br>Edgeville",
|
||||
"Move your player-owned house portal to a different location<br><br>using the Varrock estate agent",
|
||||
"Speak to Haig Halen after obtaining at least 50 kudos", //TODO need to implement kudos
|
||||
"Speak to Haig Halen after obtaining at least 50 quest points", //TODO need to changes this back to kudos when implemented
|
||||
"Enter the Earth Altar using an earth tiara or talisman",
|
||||
"Have Elsie tell you a story",
|
||||
"Mine some limestone near Paterdomus, the temple to the east<br><br>of Varrock",
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
package core.game.node.entity.skill.runecrafting;
|
||||
|
||||
import core.game.container.impl.EquipmentContainer;
|
||||
import core.game.node.entity.skill.SkillPulse;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.impl.Animator.Priority;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.diary.DiaryType;
|
||||
import core.game.node.entity.skill.SkillPulse;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.item.Item;
|
||||
import rs09.game.world.GameWorld;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.game.world.update.flag.context.Graphics;
|
||||
import core.tools.RandomFunction;
|
||||
import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE;
|
||||
import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_RC;
|
||||
import rs09.game.world.GameWorld;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -176,6 +178,7 @@ public final class RuneCraftPulse extends SkillPulse<Item> {
|
||||
|
||||
if (player.getInventory().remove(item) && player.getInventory().hasSpaceFor(i)) {
|
||||
player.getInventory().add(i);
|
||||
player.incrementAttribute("/save:" + STATS_BASE + ":" + STATS_RC, amount);
|
||||
player.getSkills().addExperience(Skills.RUNECRAFTING, rune.getExperience() * amount, true);
|
||||
|
||||
// Achievement Diary handling
|
||||
@@ -195,6 +198,7 @@ public final class RuneCraftPulse extends SkillPulse<Item> {
|
||||
}
|
||||
} else {
|
||||
if (player.getInventory().remove(item)) {
|
||||
player.incrementAttribute("/save:" + STATS_BASE + ":" + STATS_RC, amount);
|
||||
for (int i = 0; i < amount; i++) {
|
||||
Rune rune = null;
|
||||
while (rune == null) {
|
||||
|
||||
@@ -99,9 +99,6 @@ public final class StallThiefPulse extends SkillPulse<Scenery> {
|
||||
if (stall == Stall.SILK_STALL) {
|
||||
player.getSavedData().getGlobalData().setSilkSteal(System.currentTimeMillis() + 1800000);
|
||||
}
|
||||
if (stall == Stall.TEA_STALL && player.getLocation().withinDistance(new Location(3266, 3413, 0))) {
|
||||
player.getAchievementDiaryManager().finishTask(player,DiaryType.VARROCK,0, 12);
|
||||
}
|
||||
if (node.isActive()) {
|
||||
SceneryBuilder.replace(((Scenery) node), ((Scenery) node).transform(stall.getEmpty(node.getId())), stall.getDelay());
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import core.game.node.entity.player.info.login.PlayerParser;
|
||||
import rs09.Server;
|
||||
import rs09.ServerConstants;
|
||||
import rs09.ServerStore;
|
||||
import rs09.game.content.global.GlobalKillCounter;
|
||||
import rs09.game.ge.OfferManager;
|
||||
import rs09.game.system.SystemLogger;
|
||||
import rs09.game.world.repository.Repository;
|
||||
@@ -91,6 +92,7 @@ public final class SystemTermination {
|
||||
} catch (Exception ignored) {}
|
||||
}
|
||||
Repository.getDisconnectionQueue().update();
|
||||
GlobalKillCounter.save();
|
||||
GrandExchangeDatabase.save();
|
||||
OfferManager.save();
|
||||
SystemLogger.flushLogs();
|
||||
@@ -102,4 +104,4 @@ public final class SystemTermination {
|
||||
// ServerStore.dump(directory + "store/");
|
||||
SystemLogger.logInfo("[SystemTerminator] Saved player accounts!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,9 @@ import core.game.world.update.flag.chunk.AnimateObjectUpdateFlag
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import core.game.world.update.flag.context.Graphics
|
||||
import rs09.game.content.dialogue.DialogueFile
|
||||
import rs09.game.content.global.GlobalKillCounter;
|
||||
import rs09.game.system.SystemLogger
|
||||
import rs09.game.system.config.ItemConfigParser;
|
||||
import rs09.game.world.GameWorld
|
||||
import rs09.game.world.GameWorld.Pulser
|
||||
import rs09.game.world.repository.Repository
|
||||
@@ -1254,4 +1256,12 @@ object ContentAPI {
|
||||
is Graphics -> Graphics.send(gfx, location)
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun announceIfRare(player: Player, item: Item) {
|
||||
if (item.definition.getConfiguration(ItemConfigParser.RARE_ITEM, false)) {
|
||||
ContentAPI.sendNews("${player.username} has just received: ${item.amount} x ${item.name}.");
|
||||
GlobalKillCounter.incrementRareDrop(player, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import core.tools.TimeStamp
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import rs09.game.content.global.GlobalKillCounter;
|
||||
import rs09.game.ge.GEAutoStock
|
||||
import rs09.game.system.SystemLogger
|
||||
import rs09.game.system.config.ServerConfigParser
|
||||
@@ -74,6 +75,7 @@ object Server {
|
||||
startTime = System.currentTimeMillis()
|
||||
val t = TimeStamp()
|
||||
SystemLogger.logInfo("Initializing Server Store...")
|
||||
GlobalKillCounter.init()
|
||||
ServerStore.init()
|
||||
SystemLogger.logInfo("Initialized ${ServerStore.counter} store files.")
|
||||
GameWorld.prompt(true)
|
||||
|
||||
@@ -284,10 +284,16 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"no",
|
||||
"We are no strangers to love",
|
||||
"You know the rules and so do I",
|
||||
"A full commitments what Im thinking of",
|
||||
"You wouldnt get this from any other guy",
|
||||
"A full commitment's what I'm thinking of",
|
||||
"You wouldn't get this from any other guy",
|
||||
"I just wanna tell you how I'm feeling",
|
||||
"Gotta make you understand",
|
||||
"Never gonna give you up",
|
||||
"Never gonna let you down",
|
||||
"Never gonna run around and desert you",
|
||||
"Never gonna make you cry",
|
||||
"Never gonna say goodbye",
|
||||
"Never gonna tell a lie and hurt you",
|
||||
"why",
|
||||
"why",
|
||||
"why",
|
||||
@@ -309,7 +315,7 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"A blessing in disguise ${real.username}",
|
||||
"Break a leg",
|
||||
"Cut somebody some slack",
|
||||
"Youre in the right place!",
|
||||
"You're in the right place!",
|
||||
"Thanks so much.",
|
||||
"I really appreciate you ${real.username}",
|
||||
"Excuse me ${real.username}?",
|
||||
@@ -318,7 +324,7 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"How does that sound ${real.username}?",
|
||||
"That sounds great ${real.username}.",
|
||||
"I’m learning English.",
|
||||
"I dont understand.",
|
||||
"I don't understand.",
|
||||
"Could you repeat that please ${real.username}?",
|
||||
"Could you please talk slower ${real.username}?",
|
||||
"Thank you. That helps a lot.",
|
||||
@@ -376,11 +382,11 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"bowdi boy",
|
||||
"i love bowdi... sometimes",
|
||||
"${real.username} = ${real.username}",
|
||||
"Im bacon.. go on dad... say it",
|
||||
"Im going to leave.",
|
||||
"Im happy ${real.username}",
|
||||
"Im not ready yet ${real.username}",
|
||||
"Im very busy. I dont have time now.",
|
||||
"I'm bacon.. go on dad... say it",
|
||||
"I'm going to leave.",
|
||||
"I'm happy ${real.username}",
|
||||
"I'm not ready yet ${real.username}",
|
||||
"I'm very busy. I don't have time now.",
|
||||
"Is that enough ${real.username}?",
|
||||
"I thought the clothes were cheaper ${real.username}",
|
||||
"Ive been here for two days ${real.username}.",
|
||||
@@ -395,16 +401,157 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"Very good, thanks ${real.username}",
|
||||
"Your things are all here i think?",
|
||||
"Long time no see ${real.username}",
|
||||
"I couldnt agree more ${real.username}",
|
||||
"I couldn't agree more ${real.username}",
|
||||
"It cost me a fortune ${real.username}",
|
||||
"I am dog tired",
|
||||
"Don’t take it personally",
|
||||
"Dont take it personally",
|
||||
"We will be having a good time",
|
||||
"Same as always ${real.username}",
|
||||
"No problem",
|
||||
"Anyway I should get going ${real.username}",
|
||||
"I cant help you there ${real.username}",
|
||||
"I agree 100% ${real.username}"
|
||||
"I agree 100% ${real.username}",
|
||||
"I've gone mentally insane",
|
||||
"My descent into madness is complete",
|
||||
"Get real",
|
||||
"Cry about it",
|
||||
"Cope",
|
||||
"Seethe",
|
||||
"Yes mate",
|
||||
"I am mentally deranged",
|
||||
"I've gone past the point of insanity",
|
||||
"I am beyond the point of no return",
|
||||
"Sounds tricky.",
|
||||
"Guthiiiiiiiiiiiiiiiiiiiiiiiiiiiiiixxx!!!!!!",
|
||||
"530 gang for life",
|
||||
"${real.username}, have you read the rules?",
|
||||
"${real.username}, have you checked out the Discord?",
|
||||
"why are the leprechauns moving?",
|
||||
"I am beyond the point of no return!",
|
||||
"Nothin' personnel, kid.",
|
||||
"All your base are belong to us",
|
||||
"May Guthix bring you balance.",
|
||||
"May Guthix bring you balance.",
|
||||
"May Guthix bring you balance.",
|
||||
"Thy death was not in vain, for it brought some balance to the world. May Guthix bring you rest.",
|
||||
"May you walk the path, and never fall, for Guthix walks beside thee on thy journey. May Guthix bring you peace.",
|
||||
"All things must end, as all begin; Only Guthix knows the role thou must play. May Guthix bring you balance.",
|
||||
"In life, in death, in joy, in sorrow: May thine experience show thee balance. May Guthix bring you balance.",
|
||||
"Thou must do as thou must, no matter what. Thine actions bring balance to this world. May Guthix bring you balance.",
|
||||
"The river flows, the sun ignites, May you stand with Guthix in thy fights. May Guthix bring you balance.",
|
||||
"A journey of a single step, May take thee over a thousand miles. May Guthix bring you balance.",
|
||||
"Zamorak give me strength!",
|
||||
"Zamorak give me strength!",
|
||||
"Zamorak give me strength!",
|
||||
"May your bloodthirst never be sated, and may all your battles be glorious. Zamorak bring you strength.",
|
||||
"There is no opinion that cannot be proven true...by crushing those who choose to disagree with it. Zamorak give me strength!",
|
||||
"Battles are not lost and won; They simply remove the weak from the equation. Zamorak give me strength!",
|
||||
"Those who fight, then run away, shame Zamorak with their cowardice. Zamorak give me strength!",
|
||||
"Battle is by those who choose to disagree with it. Zamorak give me strength!",
|
||||
"Strike fast, strike hard, strike true: The strength of Zamorak will be with you. Zamorak give me strength!",
|
||||
"The weak deserve to die, so the strong may flourish. This is the creed of Zamorak.",
|
||||
"This is Saradomin's wisdom.",
|
||||
"This is Saradomin's wisdom.",
|
||||
"This is Saradomin's wisdom.",
|
||||
"Go in peace in the name of Saradomin; may his glory shine upon you like the sun.",
|
||||
"Thy cause was false, thy skills did lack; See you in Lumbridge when you get back.",
|
||||
"Protect your self, protect your friends. Mine is the glory that never ends. This is Saradomin's wisdom.",
|
||||
"The darkness in life may be avoided, by the light of wisdom shining. This is Saradomin's wisdom.",
|
||||
"Show love to your friends, and mercy to your enemies, and know that the wisdom of Saradomin will follow. This is Saradomin's wisdom.",
|
||||
"A fight begun, when the cause is just, will prevail over all others. This is Saradomin's wisdom.",
|
||||
"The currency of goodness is honour; It retains its value through scarcity. This is Saradomin's wisdom.",
|
||||
"For Camelot!",
|
||||
"Firmly grasp it!",
|
||||
"My legs!",
|
||||
"Build more farms.",
|
||||
"B sale at Varrock ${real.username}, don't miss out!",
|
||||
"Drop party follow me",
|
||||
"Ryan where is barbass, you said two days Ryan",
|
||||
"Barbass never",
|
||||
"What da dog doin' doe?",
|
||||
"A",
|
||||
"Ae",
|
||||
"Mof",
|
||||
"Moth",
|
||||
"Fluff",
|
||||
"Bwuh",
|
||||
"I'm literally just mothin' bro",
|
||||
"Certified 2009scape classic.",
|
||||
"Make sure to like, comment and subscribe ${real.username} it really helps",
|
||||
"Real 2009scape hours!!! Murder that like if you up!!!!",
|
||||
"W00t!",
|
||||
"Owned!",
|
||||
"Pwned!",
|
||||
"Lol n00b",
|
||||
"Epic ownage ${real.username}",
|
||||
"Gielinor is a strange place, ${real.username}. Best have your wits about you.",
|
||||
"Mad bloggers bro",
|
||||
"Vibe check",
|
||||
"Drip check",
|
||||
"Uhuhuhuhuhuhuhuhu",
|
||||
"Ahhhhhhhhhhhhhhhh",
|
||||
"yall got any deez?",
|
||||
"Deez nuts",
|
||||
"When she give you that yoinky sploinky",
|
||||
"Sir, this is a 2009scape.",
|
||||
"Oh dear! You are dead!",
|
||||
"Cor blimey, mate! What are ye doing in me pockets?",
|
||||
"yeah i got funnies",
|
||||
"read muv luv",
|
||||
"Why doesn't she love me bros?",
|
||||
"${real.username} is off the goop don't listen to the clown",
|
||||
"do yall got laptops",
|
||||
"cfunny play the alien warp sound effect",
|
||||
"Ware to all whom doom hither, where cope is all yet constant.",
|
||||
"Who wants to come GWD?",
|
||||
"How do I make money?",
|
||||
"Ironmen stand alone together!",
|
||||
"based",
|
||||
"where is she",
|
||||
"*S N I I I I I I I I I F F F F F F F F F F F*",
|
||||
"Hey ${real.username}, who was in Paris?",
|
||||
"Huh whuh?",
|
||||
"who's lone?",
|
||||
"who *is* he?",
|
||||
"Hi ${real.username}, I'm Dad!",
|
||||
"anyone wanna play melty blood after I high alch these bows?",
|
||||
"buru nyaaaa",
|
||||
"Number 15, Taverley Dungeon Black Dragons.",
|
||||
"House party at Rimmington! Host: ${real.username}!",
|
||||
"Spending 200m! Trade me, no junk!",
|
||||
"Surprise exam, ${real.username}!",
|
||||
"Nice outfit ${real.username}, does it come in mens?",
|
||||
"Nice outfit ${real.username}, does it come in womens?",
|
||||
"Nice outfit ${real.username}, does it come in children's size 12?",
|
||||
":)",
|
||||
":D",
|
||||
"die screaming",
|
||||
"Only on Tuesdays",
|
||||
"we stan 2009scape",
|
||||
"There is no spoon",
|
||||
"Where's the cow level?",
|
||||
"Join 2009scape Clan Chat!",
|
||||
"Join 2009scape Cc!",
|
||||
"Chop chop!",
|
||||
"Runescape rox my sox!!!!!!1",
|
||||
"Type ::scripts for all 99s",
|
||||
"Help I just died to Evil Chicken and I lost my stuff!",
|
||||
"Can you fight Bandos in this game?",
|
||||
"one bad gloop",
|
||||
"${real.username} is not cute or funny",
|
||||
"You have committed crimes against Gielinor and her people. What say you?",
|
||||
"Barrows trauma",
|
||||
"Uhuhuhuhuhu please Barrows give me the K top ahhhhhh",
|
||||
"Selling rare lobby 1m",
|
||||
"Rise and grind bloatscapers, let's get this bread",
|
||||
"Nice",
|
||||
"Sandwiches, ${real.username}!",
|
||||
"What a grand and intoxicating innocence!",
|
||||
"With this character's death, the thread of prophecy is severed.",
|
||||
"You must gather your party before venturing forth.",
|
||||
"Praise Andrew Gower",
|
||||
"Please help me I can't stop playing 2009scape",
|
||||
"Are you ignoring me, ${real.username}?!"
|
||||
)
|
||||
val current = LocalDateTime.now()
|
||||
|
||||
@@ -513,6 +660,7 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"I saw Kermit kissing santaaaa claus",
|
||||
"You are a mean one, Mr. Grinch",
|
||||
"Deck the hallsss",
|
||||
"You doin' anything for Christmas, ${real.username}?",
|
||||
"ITS BEGINNING TO LOOK A LOT LIKE CHRISTAAMASSSSS"
|
||||
|
||||
)
|
||||
@@ -523,6 +671,8 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"1 more day!!!!!",
|
||||
"Dont forget to put cookies and milk out tonight!!",
|
||||
"${real.username} do you like christmas??",
|
||||
"Dont peek at your presents! Its not Christmas yet!",
|
||||
"Santa's coming tonight!!!! :)",
|
||||
"Happy Christmas eve ${real.username} :)"
|
||||
)
|
||||
|
||||
@@ -531,6 +681,9 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"What did you get for christmas ${real.username}?",
|
||||
"ITS CHRISTMASSSS!!!",
|
||||
"Christmas party time!!",
|
||||
"Merry Christmas!!!",
|
||||
"What presents did you get, ${real.username}?",
|
||||
"36?! But last year.. last year I had 37!",
|
||||
"${real.username} vibing with the christmas spirit",
|
||||
"Cant believe its christmas!!",
|
||||
"We need to have a christmas party ${real.username}!!",
|
||||
@@ -549,7 +702,10 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"We should do something for New Years eve today ${real.username}!",
|
||||
"Happy New Years Eve ${real.username}",
|
||||
"1 More day left in 2021 thank god",
|
||||
"Whats your New Years resolution ${real.username}?"
|
||||
"Whats your New Years resolution ${real.username}?",
|
||||
"Man this sucks, I'm working on New Years...",
|
||||
"You doin' anything for New Years, ${real.username}?",
|
||||
"Ok who's coming to mine to get on the piss?"
|
||||
)
|
||||
|
||||
val NewYears = listOf(
|
||||
@@ -557,7 +713,11 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"Its New Years Day ${real.username}!",
|
||||
"HAPPY NEW YEAR ${real.username}!!!",
|
||||
"2022 lets fucking gooooooo",
|
||||
"What are your goals for 2022 ${real.username}?"
|
||||
"What are your goals for 2022 ${real.username}?",
|
||||
"I better call grandma! :)",
|
||||
"Happy New Year!",
|
||||
"Wooooooooooooooooooooooo!!!!",
|
||||
"New year new me!"
|
||||
)
|
||||
|
||||
val Valentines = listOf(
|
||||
@@ -631,11 +791,66 @@ class Adventurer(val style: CombatStyle): Script() {
|
||||
"Who else loves easter like i do??",
|
||||
"${real.username} and i are going easter egg hunting",
|
||||
"${real.username} and i are going to look for the easter bunny!!",
|
||||
"I ate so much chocolate oh god my stomach",
|
||||
"Mmmmmm choccies...",
|
||||
"Where did Woah hide the stash of eggs?",
|
||||
"Hint for anyone who sees this you must dig above eagles peak"
|
||||
)
|
||||
|
||||
|
||||
val Halloween = listOf(
|
||||
"Trick or treat!!!",
|
||||
"Boo! Hahahahaha!!",
|
||||
"Have you got your costume on, ${real.username}?",
|
||||
"How much candy did you get, ${real.username}?",
|
||||
"Don't dead open inside",
|
||||
"Costume party at my POH!! Follow me!",
|
||||
"Trick, then!",
|
||||
"Brrrainssssssss...",
|
||||
"'Cause this is thriller, thriller night, and no one's gonna save you from the beast about to strike!",
|
||||
"This is Hallowe'en, this is Hallowe'en, pumpkins scream in the dead of night!",
|
||||
"This is Hallowe'en, everybody make a scene, Trick or treat till the neighbors gonna die of fright!",
|
||||
"In this town we call home, everyone hail to the pumpkin song!",
|
||||
"Watch out for Skeleton Jack!",
|
||||
"The headless-what-man? Horse? Never heard of those.",
|
||||
"Bring me their souls!",
|
||||
"I'll take any sweets you don't want, ${real.username}",
|
||||
"Whatever you do, don't come to Draynor Manor on this spooky night.",
|
||||
"Ahhhh! ${real.username}, you scared me! :(",
|
||||
"I'm making soup from some leftover pumpkins, want any?",
|
||||
"I'm gonna be so sick from eating all these sweets...",
|
||||
"Rise from the grave, my minions! Tis' Hallowe'en!",
|
||||
"This Scream Fortress 2 update hits kinda different...",
|
||||
"Nice costume Woah",
|
||||
"Nice costume, ${real.username}!",
|
||||
"Ooh, a piece of candy.",
|
||||
"Time to join the skeleton war, ${real.username}.",
|
||||
"Spooky scary skeletons!",
|
||||
"Spooky scary skeletons!",
|
||||
"Spooky scary skeletons!",
|
||||
"Spooky scary skeletons, send shivers down your spine!",
|
||||
"Shrieking skulls will shock your soul, seal your doom tonight!",
|
||||
"Spooky scary skeletons, speak with such a screech!",
|
||||
"You'll shake and shudder in surprise, when you hear these zombies shriek!",
|
||||
"'Cause spooky scary skeletons, shout startling shrilly screams!",
|
||||
"Spooky scary skeletons, will wake you with a boo!",
|
||||
"*doot doot*"
|
||||
)
|
||||
|
||||
when {
|
||||
|
||||
//Celebrates Halloween
|
||||
formatted.contentEquals("2021-10-31") -> {
|
||||
if (Random.nextBoolean()) {
|
||||
val chat = Halloween.random()
|
||||
bot.sendChat(chat)
|
||||
bot.updateMasks.register(ChatFlag(ChatMessage(bot, chat, 0, 0)))
|
||||
}else{
|
||||
val chat = dialogue.random()
|
||||
bot.sendChat(chat)
|
||||
bot.updateMasks.register(ChatFlag(ChatMessage(bot, chat, 0, 0)))
|
||||
}
|
||||
}
|
||||
|
||||
//Celebrates lead up to Christmas!
|
||||
until in 2..24 -> {
|
||||
if (Random.nextBoolean()){
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package rs09.game.content.activity.barrows
|
||||
|
||||
import api.ContentAPI
|
||||
import core.game.component.Component
|
||||
import core.game.container.access.InterfaceContainer
|
||||
import core.game.content.global.BossKillCounter
|
||||
@@ -93,9 +94,10 @@ object RewardChest {
|
||||
player.interfaceManager.open(Component(Components.TRAIL_REWARD_364))
|
||||
BossKillCounter.addtoBarrowsCount(player)
|
||||
for(item in rewards){
|
||||
ContentAPI.announceIfRare(player, item);
|
||||
if(!player.inventory.add(item)){
|
||||
GroundItemManager.create(item,player)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,11 +6,13 @@ import rs09.game.content.ame.events.certer.CerterNPC
|
||||
import rs09.game.content.ame.events.drilldemon.SeargentDamienNPC
|
||||
import rs09.game.content.ame.events.evilchicken.EvilChickenNPC
|
||||
import rs09.game.content.ame.events.sandwichlady.SandwichLadyRENPC
|
||||
import rs09.game.content.ame.events.genie.GenieNPC
|
||||
import rs09.game.content.global.WeightBasedTable
|
||||
import rs09.game.content.global.WeightedItem
|
||||
|
||||
enum class RandomEvents(val npc: RandomEventNPC, val loot: WeightBasedTable? = null) {
|
||||
SANDWICH_LADY(SandwichLadyRENPC()),
|
||||
GENIE(GenieNPC()),
|
||||
CERTER(CerterNPC(),WeightBasedTable.create(
|
||||
WeightedItem(Items.COINS_995,1,100,2.0),
|
||||
WeightedItem(Items.SPINACH_ROLL_1969,1,1,2.0),
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package rs09.game.content.ame.events.genie
|
||||
|
||||
import api.ContentAPI
|
||||
import core.game.content.dialogue.FacialExpression
|
||||
import core.cache.def.impl.ItemDefinition
|
||||
import core.game.component.Component
|
||||
import core.game.node.entity.combat.ImpactHandler
|
||||
import core.game.node.item.GroundItemManager
|
||||
import core.game.node.item.Item
|
||||
import rs09.game.content.dialogue.DialogueFile
|
||||
import rs09.tools.END_DIALOGUE
|
||||
|
||||
class GenieDialogue : DialogueFile() {
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
val assigned = player!!.getAttribute("genie:item",0)
|
||||
npcl(FacialExpression.NEUTRAL, "Ah, so you are there, ${player!!.name.capitalize()}. I'm so glad you summoned me. Please take this lamp and make your wish.")
|
||||
ContentAPI.addItemOrDrop(player!!, assigned)
|
||||
player!!.antiMacroHandler.event?.terminate()
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package rs09.game.content.ame.events.genie
|
||||
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.tools.RandomFunction
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
import rs09.game.content.ame.RandomEventNPC
|
||||
import rs09.game.content.global.WeightBasedTable
|
||||
|
||||
class GenieNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.GENIE_409) {
|
||||
val phrases = arrayOf("Greetings, @name!","Ehem... Master @name?","Are you there, Master @name?","No one ignores me!")
|
||||
var assigned_item = 0
|
||||
val items = arrayOf(Items.LAMP_2528)
|
||||
|
||||
override fun tick() {
|
||||
if(RandomFunction.random(1,15) == 5){
|
||||
sendChat(phrases.random().replace("@name",player.name.capitalize()))
|
||||
}
|
||||
super.tick()
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
super.init()
|
||||
assignItem()
|
||||
sendChat(phrases.random().replace("@name",player.name.capitalize()))
|
||||
}
|
||||
|
||||
fun assignItem(){
|
||||
assigned_item = items.random()
|
||||
player.setAttribute("genie:item",assigned_item)
|
||||
}
|
||||
|
||||
override fun talkTo(npc: NPC) {
|
||||
player.dialogueInterpreter.open(GenieDialogue(),npc)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package rs09.game.content.global
|
||||
|
||||
import core.game.node.entity.player.Player
|
||||
import rs09.game.system.SystemLogger
|
||||
import java.io.File
|
||||
import java.io.FileReader
|
||||
import java.io.FileWriter
|
||||
import org.json.simple.JSONArray
|
||||
import org.json.simple.JSONObject
|
||||
import org.json.simple.parser.JSONParser
|
||||
import rs09.ServerConstants
|
||||
import core.game.node.item.Item
|
||||
|
||||
object GlobalKillCounter {
|
||||
val kills: HashMap<String, HashMap<Long, Long>> = HashMap()
|
||||
val rare_drops: HashMap<String, HashMap<Long, Long>> = HashMap()
|
||||
|
||||
fun init() {
|
||||
val file = File(ServerConstants.DATA_PATH + File.separator + "global_kill_stats.json")
|
||||
if(!file.exists()) {
|
||||
return
|
||||
}
|
||||
|
||||
val reader = FileReader(file)
|
||||
val parser = JSONParser()
|
||||
try {
|
||||
val data = parser.parse(reader) as JSONObject
|
||||
val tmp_kills = data.get("kills")
|
||||
populate(kills, tmp_kills)
|
||||
val tmp_rare_drops = data.get("rare_drops")
|
||||
populate(rare_drops, tmp_rare_drops)
|
||||
} catch (e: Exception){
|
||||
SystemLogger.logErr("Failed parsing ${file.name} - stack trace below.")
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun populate(field: HashMap<String, HashMap<Long, Long>>, obj: Any?) {
|
||||
if(obj != null && obj is JSONObject) {
|
||||
for((player, tmp_kc) in obj.asIterable()) {
|
||||
if(player is String) {
|
||||
val kc: HashMap<Long, Long> = HashMap()
|
||||
for((npc_id, count) in (tmp_kc as JSONObject).asIterable()) {
|
||||
kc.put(java.lang.Long.parseLong(npc_id as String), count as Long)
|
||||
}
|
||||
field.put(player, kc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun saveField(field: HashMap<String, HashMap<Long, Long>>): JSONObject {
|
||||
val tmp_kills = JSONObject()
|
||||
for((player, kc) in field.asIterable()) {
|
||||
val tmp_kc = JSONObject()
|
||||
for((id, count) in kc.asIterable()) {
|
||||
tmp_kc.put(id, count)
|
||||
}
|
||||
tmp_kills.put(player, tmp_kc)
|
||||
}
|
||||
return tmp_kills
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun save() {
|
||||
val data = JSONObject()
|
||||
data.put("kills", saveField(kills))
|
||||
data.put("rare_drops", saveField(rare_drops))
|
||||
val file = File(ServerConstants.DATA_PATH + File.separator + "global_kill_stats.json")
|
||||
FileWriter(file).use { it.write(data.toJSONString()); it.flush(); it.close() }
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun incrementKills(player: Player, npc_id: Int) {
|
||||
val player_kills = kills.getOrPut(player.username, { HashMap() })
|
||||
val old_amount = player_kills.getOrElse(npc_id.toLong(), { 0 })
|
||||
player_kills.put(npc_id.toLong(), 1 + old_amount)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun incrementRareDrop(player: Player, item: Item) {
|
||||
val player_drops = rare_drops.getOrPut(player.username, { HashMap() })
|
||||
val old_amount = player_drops.getOrElse(item.id.toLong(), { 0 })
|
||||
player_drops.put(item.id.toLong(), item.amount + old_amount)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getKills(player: Player, npc_id: Int): Long {
|
||||
return kills.getOrElse(player.username, { HashMap() }).getOrElse(npc_id.toLong(), { 0 })
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getKills(player: Player, npc_ids: IntArray): Long {
|
||||
var sum: Long = 0
|
||||
for(npc_id in npc_ids) {
|
||||
sum += getKills(player, npc_id)
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getRareDrops(player: Player, item_id: Int): Long {
|
||||
return rare_drops.getOrElse(player.username, { HashMap() }).getOrElse(item_id.toLong(), { 0 })
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ const val STATS_DEATHS = "deaths"
|
||||
const val STATS_LOGS = "logs_chopped"
|
||||
const val STATS_FISH = "fish_caught"
|
||||
const val STATS_ROCKS = "rocks_mined"
|
||||
const val STATS_RC = "essence_crafted"
|
||||
const val STATS_ALKHARID_GATE = "alkharid_gate"
|
||||
const val FISHING_TRAWLER_GAMES_WON = "fishing-trawler-games"
|
||||
const val FISHING_TRAWLER_LEAKS_PATCHED = "fishing-trawler-leaks-patched"
|
||||
|
||||
+177
-50
@@ -4,10 +4,168 @@ import core.game.component.Component
|
||||
import core.game.content.global.BossKillCounter
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import org.rs09.consts.Items;
|
||||
import org.rs09.consts.NPCs;
|
||||
import rs09.game.content.global.GlobalKillCounter;
|
||||
import rs09.game.interaction.InterfaceListener
|
||||
import rs09.game.system.command.Command
|
||||
import rs09.game.system.command.sets.CommandSet
|
||||
import rs09.game.world.repository.Repository
|
||||
|
||||
val TUROTH_IDS = intArrayOf(NPCs.TUROTH_1622, NPCs.TUROTH_1623, NPCs.TUROTH_1626, NPCs.TUROTH_1627, NPCs.TUROTH_1628, NPCs.TUROTH_1629, NPCs.TUROTH_1630)
|
||||
val KURASK_IDS = intArrayOf(NPCs.KURASK_1608, NPCs.KURASK_1609, NPCs.KURASK_4229, NPCs.KURASK_7811)
|
||||
val GARGOYLE_IDS = intArrayOf(NPCs.GARGOYLE_1610, NPCs.GARGOYLE_1827, NPCs.GARGOYLE_6389)
|
||||
val SPIRITUAL_MAGE_IDS = intArrayOf(NPCs.SPIRITUAL_MAGE_6221, NPCs.SPIRITUAL_MAGE_6231, NPCs.SPIRITUAL_MAGE_6257, NPCs.SPIRITUAL_MAGE_6278)
|
||||
val GREEN_DRAGON_IDS = intArrayOf(NPCs.GREEN_DRAGON_941, NPCs.GREEN_DRAGON_4677, NPCs.GREEN_DRAGON_4678, NPCs.GREEN_DRAGON_4679, NPCs.GREEN_DRAGON_4680, NPCs.BRUTAL_GREEN_DRAGON_5362)
|
||||
val BLUE_DRAGON_IDS = intArrayOf(NPCs.BLUE_DRAGON_55, NPCs.BLUE_DRAGON_4681, NPCs.BLUE_DRAGON_4682, NPCs.BLUE_DRAGON_4683, NPCs.BLUE_DRAGON_4684, NPCs.BLUE_DRAGON_5178)
|
||||
val RED_DRAGON_IDS = intArrayOf(NPCs.RED_DRAGON_53, NPCs.RED_DRAGON_4669, NPCs.RED_DRAGON_4670, NPCs.RED_DRAGON_4671, NPCs.RED_DRAGON_4672)
|
||||
val BLACK_DRAGON_IDS = intArrayOf(NPCs.BLACK_DRAGON_54, NPCs.BLACK_DRAGON_4673, NPCs.BLACK_DRAGON_4674, NPCs.BLACK_DRAGON_4675, NPCs.BLACK_DRAGON_4676)
|
||||
val BRONZE_DRAGON_IDS = intArrayOf(NPCs.BRONZE_DRAGON_1590)
|
||||
val IRON_DRAGON_IDS = intArrayOf(NPCs.IRON_DRAGON_1591)
|
||||
val STEEL_DRAGON_IDS = intArrayOf(NPCs.STEEL_DRAGON_1592, NPCs.STEEL_DRAGON_3590)
|
||||
val MITHRIL_DRAGON_IDS = intArrayOf(NPCs.MITHRIL_DRAGON_5363, NPCs.MITHRIL_DRAGON_8424)
|
||||
val SKELETAL_WYVERN_IDS = intArrayOf(NPCs.SKELETAL_WYVERN_3068, NPCs.SKELETAL_WYVERN_3069, NPCs.SKELETAL_WYVERN_3070, NPCs.SKELETAL_WYVERN_3071)
|
||||
|
||||
val SPACER = "<str> </str>";
|
||||
val NUM_PAGES = 3
|
||||
|
||||
fun sendStats(player: Player, other: Player, page: Int){
|
||||
prepareInterface(player, other, page)
|
||||
val globalData = other.savedData.globalData
|
||||
for(i in (68..97)) {
|
||||
when(page) {
|
||||
0 -> {
|
||||
when(i) {
|
||||
//Various stats
|
||||
97 -> sendLine(player,"Easy Clues: ${other.treasureTrailManager.completedClues[0]}",i)
|
||||
68 -> sendLine(player,"Medium Clues: ${other.treasureTrailManager.completedClues[1]}",i)
|
||||
69 -> sendLine(player,"Hard Clues: ${other.treasureTrailManager.completedClues[2]}",i)
|
||||
70 -> sendLine(player,SPACER,i)
|
||||
71 -> sendLine(player,"Slayer Tasks: ${other.slayer.totalTasks}",i)
|
||||
72 -> sendLine(player,"Quest Points: ${other.questRepository.points}",i)
|
||||
73 -> sendLine(player,"Ironman Mode: ${other.ironmanManager.mode.name.toLowerCase()}",i)
|
||||
74 -> sendLine(player,"Deaths: ${other.getAttribute("$STATS_BASE:$STATS_DEATHS",0)}",i)
|
||||
75 -> sendLine(player,SPACER,i)
|
||||
76 -> sendLine(player,"Logs Chopped: ${other.getAttribute("$STATS_BASE:$STATS_LOGS",0)}",i)
|
||||
77 -> sendLine(player,"Rocks Mined: ${other.getAttribute("$STATS_BASE:$STATS_ROCKS",0)}",i)
|
||||
78 -> sendLine(player,"Fish Caught: ${other.getAttribute("$STATS_BASE:$STATS_FISH",0)}",i)
|
||||
79 -> sendLine(player, "Essence Crafted: ${other.getAttribute("$STATS_BASE:$STATS_RC",0)}", i)
|
||||
|
||||
//Boss KC
|
||||
82 -> sendLine(player, "KBD KC: ${globalData.bossCounters.get(BossKillCounter.KING_BLACK_DRAGON.ordinal)}",i)
|
||||
83 -> sendLine(player, "TDs KC: ${globalData.bossCounters.get(BossKillCounter.TORMENTED_DEMONS.ordinal)}",i)
|
||||
84 -> sendLine(player, "Supreme KC: ${globalData.bossCounters.get(BossKillCounter.DAGANNOTH_SUPREME.ordinal)}",i)
|
||||
85 -> sendLine(player, "Rex KC: ${globalData.bossCounters.get(BossKillCounter.DAGANNOTH_REX.ordinal)}",i)
|
||||
86 -> sendLine(player, "Prime KC: ${globalData.bossCounters.get(BossKillCounter.DAGANNOTH_PRIME.ordinal)}",i)
|
||||
87 -> sendLine(player, "Barrows KC: ${globalData.barrowsLoots}",i)
|
||||
88 -> sendLine(player, "Chaos Ele: ${globalData.bossCounters.get(BossKillCounter.CHAOS_ELEMENTAL.ordinal)}",i)
|
||||
89 -> sendLine(player, "Mole KC: ${globalData.bossCounters.get(BossKillCounter.GIANT_MOLE.ordinal)}",i)
|
||||
90 -> sendLine(player, "Sara KC: ${globalData.bossCounters.get(BossKillCounter.SARADOMIN.ordinal)}",i)
|
||||
91 -> sendLine(player, "Zammy KC: ${globalData.bossCounters.get(BossKillCounter.ZAMORAK.ordinal)}",i)
|
||||
92 -> sendLine(player, "Bandos KC: ${globalData.bossCounters.get(BossKillCounter.BANDOS.ordinal)}",i)
|
||||
93 -> sendLine(player, "Arma KC: ${globalData.bossCounters.get(BossKillCounter.ARMADYL.ordinal)}",i)
|
||||
94 -> sendLine(player, "Jad KC: ${globalData.bossCounters.get(BossKillCounter.JAD.ordinal)}",i)
|
||||
95 -> sendLine(player, "KQ KC: ${globalData.bossCounters.get(BossKillCounter.KALPHITE_QUEEN.ordinal)}",i)
|
||||
96 -> sendLine(player, "Corp KC: ${globalData.bossCounters.get(BossKillCounter.CORPOREAL_BEAST.ordinal)}",i)
|
||||
else -> sendLine(player,"",i)
|
||||
}
|
||||
}
|
||||
1 -> {
|
||||
when(i) {
|
||||
97 -> sendLine(player, "Turoths: ${GlobalKillCounter.getKills(other, TUROTH_IDS)}", i)
|
||||
68 -> sendLine(player, "Kurasks: ${GlobalKillCounter.getKills(other, KURASK_IDS)}", i)
|
||||
69 -> sendLine(player, "Leaf-bladed swords: ${GlobalKillCounter.getRareDrops(other, Items.LEAF_BLADED_SPEAR_4158)}", i)
|
||||
70 -> sendLine(player,SPACER,i)
|
||||
71 -> sendLine(player, "Gargoyles: ${GlobalKillCounter.getKills(other, GARGOYLE_IDS)}", i)
|
||||
72 -> sendLine(player, "Granite mauls: ${GlobalKillCounter.getRareDrops(other, Items.GRANITE_MAUL_4153)}", i)
|
||||
73 -> sendLine(player,SPACER,i)
|
||||
74 -> sendLine(player, "Spiritual mages: ${GlobalKillCounter.getKills(other, SPIRITUAL_MAGE_IDS)}", i)
|
||||
75 -> sendLine(player, "Dragon boots: ${GlobalKillCounter.getRareDrops(other, Items.DRAGON_BOOTS_11732)}", i)
|
||||
76 -> sendLine(player,SPACER,i)
|
||||
77 -> sendLine(player, "Abyssal demons: ${GlobalKillCounter.getKills(other, NPCs.ABYSSAL_DEMON_1615)}", i)
|
||||
78 -> sendLine(player, "Abyssal whips: ${GlobalKillCounter.getRareDrops(other, Items.ABYSSAL_WHIP_4151)}", i)
|
||||
79 -> sendLine(player,SPACER,i)
|
||||
80 -> sendLine(player, "Dark beasts: ${GlobalKillCounter.getKills(other, NPCs.DARK_BEAST_2783)}", i)
|
||||
81 -> sendLine(player, "Dark bows: ${GlobalKillCounter.getRareDrops(other, Items.DARK_BOW_11235)}", i)
|
||||
|
||||
82 -> sendLine(player, "Green Dragons: ${GlobalKillCounter.getKills(other, GREEN_DRAGON_IDS)}", i)
|
||||
83 -> sendLine(player, "Blue Dragons: ${GlobalKillCounter.getKills(other, BLUE_DRAGON_IDS)}", i)
|
||||
84 -> sendLine(player, "Red Dragons: ${GlobalKillCounter.getKills(other, RED_DRAGON_IDS)}", i)
|
||||
85 -> sendLine(player, "Black Dragons: ${GlobalKillCounter.getKills(other, BLACK_DRAGON_IDS)}", i)
|
||||
86 -> sendLine(player,SPACER,i)
|
||||
87 -> sendLine(player, "Bronze Dragons: ${GlobalKillCounter.getKills(other, BRONZE_DRAGON_IDS)}", i)
|
||||
88 -> sendLine(player, "Iron Dragons: ${GlobalKillCounter.getKills(other, IRON_DRAGON_IDS)}", i)
|
||||
89 -> sendLine(player, "Steel Dragons: ${GlobalKillCounter.getKills(other, STEEL_DRAGON_IDS)}", i)
|
||||
90 -> sendLine(player, "Mithril Dragons: ${GlobalKillCounter.getKills(other, MITHRIL_DRAGON_IDS)}", i)
|
||||
91 -> sendLine(player, "Skeletal Wyverns: ${GlobalKillCounter.getKills(other, SKELETAL_WYVERN_IDS)}", i)
|
||||
92 -> sendLine(player,SPACER,i)
|
||||
93 -> sendLine(player, "Draconic visages: ${GlobalKillCounter.getRareDrops(other, Items.DRACONIC_VISAGE_11286)}", i)
|
||||
|
||||
else -> sendLine(player,"",i)
|
||||
}
|
||||
}
|
||||
2 -> {
|
||||
when(i) {
|
||||
97 -> sendLine(player, "Ahrim's hood: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_HOOD_4708)}", i)
|
||||
68 -> sendLine(player, "Ahrim's staff: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_STAFF_4710)}", i)
|
||||
69 -> sendLine(player, "Ahrim's robetop: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_ROBETOP_4712)}", i)
|
||||
70 -> sendLine(player, "Ahrim's robeskirt: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_ROBESKIRT_4714)}", i)
|
||||
71 -> sendLine(player,SPACER,i)
|
||||
72 -> sendLine(player, "Dharok's helm: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_HELM_4716)}", i)
|
||||
73 -> sendLine(player, "Dharok's greataxe: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_GREATAXE_4718)}", i)
|
||||
74 -> sendLine(player, "Dharok's platebody: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_PLATEBODY_4720)}", i)
|
||||
75 -> sendLine(player, "Dharok's platelegs: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_PLATELEGS_4722)}", i)
|
||||
76 -> sendLine(player,SPACER,i)
|
||||
77 -> sendLine(player, "Guthan's helm: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_HELM_4724)}", i)
|
||||
78 -> sendLine(player, "Guthan's warspear: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_WARSPEAR_4726)}", i)
|
||||
79 -> sendLine(player, "Guthan's platebody: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_PLATEBODY_4728)}", i)
|
||||
80 -> sendLine(player, "Guthan's chainskirt: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_CHAINSKIRT_4730)}", i)
|
||||
|
||||
82 -> sendLine(player, "Karil's coif: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_COIF_4732)}", i)
|
||||
83 -> sendLine(player, "Karil's crossbow: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_CROSSBOW_4734)}", i)
|
||||
84 -> sendLine(player, "Karil's leathertop: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_LEATHERTOP_4736)}", i)
|
||||
85 -> sendLine(player, "Karil's leatherskirt: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_LEATHERSKIRT_4738)}", i)
|
||||
86 -> sendLine(player,SPACER,i)
|
||||
87 -> sendLine(player, "Torag's helm: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_HELM_4745)}", i)
|
||||
88 -> sendLine(player, "Torag's hammers: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_HAMMERS_4747)}", i)
|
||||
89 -> sendLine(player, "Torag's platebody: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_PLATEBODY_4749)}", i)
|
||||
90 -> sendLine(player, "Torag's platelegs: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_PLATELEGS_4751)}", i)
|
||||
91 -> sendLine(player,SPACER,i)
|
||||
92 -> sendLine(player, "Verac's helm: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_HELM_4753)}", i)
|
||||
93 -> sendLine(player, "Verac's flail: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_FLAIL_4755)}", i)
|
||||
94 -> sendLine(player, "Verac's brassard: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_BRASSARD_4757)}", i)
|
||||
95 -> sendLine(player, "Verac's plateskirt: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_PLATESKIRT_4759)}", i)
|
||||
else -> sendLine(player,"",i)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
player.interfaceManager.open(Component(26))
|
||||
}
|
||||
|
||||
fun sendLine(player: Player, line: String, child: Int) {
|
||||
player.packetDispatch.sendString(line,26,child)
|
||||
}
|
||||
|
||||
fun prepareInterface(player: Player,other: Player, page: Int){
|
||||
player.setAttribute("stats-page-info", StatsPageInfo(other, page))
|
||||
if(page == 0) {
|
||||
player.packetDispatch.sendInterfaceConfig(26,62,true)
|
||||
player.packetDispatch.sendInterfaceConfig(26,65,true)
|
||||
} else {
|
||||
sendLine(player, "Previous", 65)
|
||||
}
|
||||
if(page == NUM_PAGES - 1) {
|
||||
player.packetDispatch.sendInterfaceConfig(26,64,true)
|
||||
player.packetDispatch.sendInterfaceConfig(26,66,true)
|
||||
} else {
|
||||
sendLine(player, "Next", 66)
|
||||
}
|
||||
player.packetDispatch.sendString(other.username + "'s Stats - Page ${page + 1}",26,101)
|
||||
}
|
||||
|
||||
data class StatsPageInfo(val other: Player, val page: Int) {}
|
||||
|
||||
@Initializable
|
||||
class StatsCommandSet : CommandSet(Command.Privilege.STANDARD) {
|
||||
override fun defineCommands() {
|
||||
@@ -28,64 +186,33 @@ class StatsCommandSet : CommandSet(Command.Privilege.STANDARD) {
|
||||
return@define
|
||||
}
|
||||
|
||||
sendStats(player,other)
|
||||
sendStats(player,other, 0)
|
||||
}
|
||||
}
|
||||
|
||||
fun sendStats(player: Player){
|
||||
sendStats(player,player)
|
||||
sendStats(player,player, 0)
|
||||
}
|
||||
|
||||
fun sendStats(player: Player, other: Player){
|
||||
prepareInterface(player,other)
|
||||
val globalData = other.savedData.globalData
|
||||
for(i in (67..96)){
|
||||
when(i){
|
||||
//Various stats
|
||||
67 -> sendLine(player,"Easy Clues: ${other.treasureTrailManager.completedClues[0]}",97)
|
||||
68 -> sendLine(player,"Medium Clues: ${other.treasureTrailManager.completedClues[1]}",i)
|
||||
69 -> sendLine(player,"Hard Clues: ${other.treasureTrailManager.completedClues[2]}",i)
|
||||
70 -> sendLine(player,"<str> </str>",i)
|
||||
71 -> sendLine(player,"Slayer Tasks: ${other.slayer.totalTasks}",i)
|
||||
72 -> sendLine(player,"Quest Points: ${other.questRepository.points}",i)
|
||||
73 -> sendLine(player,"Ironman Mode: ${other.ironmanManager.mode.name.toLowerCase()}",i)
|
||||
74 -> sendLine(player,"Deaths: ${other.getAttribute("$STATS_BASE:$STATS_DEATHS",0)}",i)
|
||||
75 -> sendLine(player,"<str> </str>",i)
|
||||
76 -> sendLine(player,"Logs Chopped: ${other.getAttribute("$STATS_BASE:$STATS_LOGS",0)}",i)
|
||||
77 -> sendLine(player,"Rocks Mined: ${other.getAttribute("$STATS_BASE:$STATS_ROCKS",0)}",i)
|
||||
78 -> sendLine(player,"Fish Caught: ${other.getAttribute("$STATS_BASE:$STATS_FISH",0)}",i)
|
||||
}
|
||||
|
||||
//Boss KC
|
||||
82 -> sendLine(player, "KBD KC: ${globalData.bossCounters.get(BossKillCounter.KING_BLACK_DRAGON.ordinal)}",i)
|
||||
83 -> sendLine(player, "TDs KC: ${globalData.bossCounters.get(BossKillCounter.TORMENTED_DEMONS.ordinal)}",i)
|
||||
84 -> sendLine(player, "Supreme KC: ${globalData.bossCounters.get(BossKillCounter.DAGANNOTH_SUPREME.ordinal)}",i)
|
||||
85 -> sendLine(player, "Rex KC: ${globalData.bossCounters.get(BossKillCounter.DAGANNOTH_REX.ordinal)}",i)
|
||||
86 -> sendLine(player, "Prime KC: ${globalData.bossCounters.get(BossKillCounter.DAGANNOTH_PRIME.ordinal)}",i)
|
||||
87 -> sendLine(player, "Barrows KC: ${globalData.barrowsLoots}",i)
|
||||
88 -> sendLine(player, "Chaos Ele: ${globalData.bossCounters.get(BossKillCounter.CHAOS_ELEMENTAL.ordinal)}",i)
|
||||
89 -> sendLine(player, "Mole KC: ${globalData.bossCounters.get(BossKillCounter.GIANT_MOLE.ordinal)}",i)
|
||||
90 -> sendLine(player, "Sara KC: ${globalData.bossCounters.get(BossKillCounter.SARADOMIN.ordinal)}",i)
|
||||
91 -> sendLine(player, "Zammy KC: ${globalData.bossCounters.get(BossKillCounter.ZAMORAK.ordinal)}",i)
|
||||
92 -> sendLine(player, "Bandos KC: ${globalData.bossCounters.get(BossKillCounter.BANDOS.ordinal)}",i)
|
||||
93 -> sendLine(player, "Arma KC: ${globalData.bossCounters.get(BossKillCounter.ARMADYL.ordinal)}",i)
|
||||
94 -> sendLine(player, "Jad KC: ${globalData.bossCounters.get(BossKillCounter.JAD.ordinal)}",i)
|
||||
95 -> sendLine(player, "KQ KC: ${globalData.bossCounters.get(BossKillCounter.KALPHITE_QUEEN.ordinal)}",i)
|
||||
96 -> sendLine(player, "Corp KC: ${globalData.bossCounters.get(BossKillCounter.CORPOREAL_BEAST.ordinal)}",i)
|
||||
else -> sendLine(player,"",i)
|
||||
class StatsInterface : InterfaceListener() {
|
||||
val COMPONENT_ID = 26
|
||||
|
||||
override fun defineListeners() {
|
||||
on(COMPONENT_ID, 61) { player, _, _, _, _, _ ->
|
||||
val info: StatsPageInfo? = player.getAttribute("stats-page-info", null)
|
||||
if(info != null) {
|
||||
sendStats(player, info.other, info.page-1)
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
on(COMPONENT_ID, 63) { player, _, _, _, _, _ ->
|
||||
val info: StatsPageInfo? = player.getAttribute("stats-page-info", null)
|
||||
if(info != null) {
|
||||
sendStats(player, info.other, info.page+1)
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
player.interfaceManager.open(Component(26))
|
||||
}
|
||||
|
||||
fun sendLine(player: Player, line: String, child: Int){
|
||||
player.packetDispatch.sendString(line,26,child)
|
||||
}
|
||||
|
||||
fun prepareInterface(player: Player,other: Player){
|
||||
player.packetDispatch.sendInterfaceConfig(26,64,true)
|
||||
player.packetDispatch.sendInterfaceConfig(26,62,true)
|
||||
player.packetDispatch.sendInterfaceConfig(26,65,true)
|
||||
player.packetDispatch.sendInterfaceConfig(26,66,true)
|
||||
player.packetDispatch.sendString(other.username + "'s Stats",26,101)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user