mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-14 18:39:27 -05:00
Merge branch 'main' into achievement-adjustments
This commit is contained in:
@@ -114,11 +114,11 @@ if is_production:
|
|||||||
#maps["desertland"]["key"]="jayson_desertland_copy"
|
#maps["desertland"]["key"]="jayson_desertland_copy"
|
||||||
pass
|
pass
|
||||||
|
|
||||||
game_version=798
|
game_version=808
|
||||||
SALES=4+5+388+5101+125/20 #donation+manual+macos+steam+sales
|
SALES=4+5+388+5101+125/20 #donation+manual+macos+steam+sales
|
||||||
update_notes=[
|
update_notes=[
|
||||||
"Last Update [April 25th]",
|
"Valentine's Day Event",
|
||||||
"Cost reduction trial"
|
"Last Update [3rd of Fabruary]",
|
||||||
]
|
]
|
||||||
ip_to_subdomain={ #IMPORTANT: SPECIAL PAGE RULES ARE NEEDED: https://dash.cloudflare.com/b6f5a13bded5fdd273e4a1cd3777162d/adventure.land/page-rules - uss1 / eus1 was best
|
ip_to_subdomain={ #IMPORTANT: SPECIAL PAGE RULES ARE NEEDED: https://dash.cloudflare.com/b6f5a13bded5fdd273e4a1cd3777162d/adventure.land/page-rules - uss1 / eus1 was best
|
||||||
"35.187.255.184":"asia1",
|
"35.187.255.184":"asia1",
|
||||||
|
|||||||
+9
-23
@@ -16,24 +16,10 @@ drops={
|
|||||||
|
|
||||||
],
|
],
|
||||||
"global":[
|
"global":[
|
||||||
#[0.00001,"ornament"],
|
|
||||||
#[0.00003,"mistletoe"],
|
|
||||||
#[0.00001,"candycane"],
|
|
||||||
#[0.000001,"open","xN"],
|
|
||||||
#[0.00006,"ornament"],
|
|
||||||
#[0.00018,"mistletoe"],
|
|
||||||
#[0.00005,"candycane"],
|
|
||||||
#[0.00001,"open","xN"],
|
|
||||||
#[0.00005,"candy0"], #originally 4X [11/10/19]
|
|
||||||
#[0.00125,"candy1"], #originally 4X [11/10/19]
|
|
||||||
#[0.000015,"goldenegg"], #originally 0.000005
|
#[0.000015,"goldenegg"], #originally 0.000005
|
||||||
#[0.000001,"5bucks"],
|
[0.0000001,"5bucks"],
|
||||||
#[0.0002,"gift0"],
|
#[0.0002,"gift0"],
|
||||||
#[0.004,"gift1"],
|
#[0.004,"gift1"],
|
||||||
#[0.0006,"ornament"],
|
|
||||||
#[0.0018,"mistletoe"],
|
|
||||||
#[0.0005,"candycane"],
|
|
||||||
#[0.0001,"open","xN"],
|
|
||||||
#[0.0004,"redenvelope"],
|
#[0.0004,"redenvelope"],
|
||||||
#[0.00005,"goldenegg"],
|
#[0.00005,"goldenegg"],
|
||||||
#[0.009,"open","eastereggs"], #originally 0.009
|
#[0.009,"open","eastereggs"], #originally 0.009
|
||||||
@@ -41,7 +27,7 @@ drops={
|
|||||||
#[0.0001,"redenvelopev3"],
|
#[0.0001,"redenvelopev3"],
|
||||||
#[0.00005,"greenenvelope"],
|
#[0.00005,"greenenvelope"],
|
||||||
#[0.0001,"redenvelopev4"],
|
#[0.0001,"redenvelopev4"],
|
||||||
#[0.001,"candypop"],
|
[0.001,"candypop"],
|
||||||
],
|
],
|
||||||
"main":[
|
"main":[
|
||||||
[0.0007,"ringsj"],
|
[0.0007,"ringsj"],
|
||||||
@@ -520,19 +506,19 @@ drops={
|
|||||||
],
|
],
|
||||||
"statamulet":[
|
"statamulet":[
|
||||||
[1,"intamulet"],
|
[1,"intamulet"],
|
||||||
[1.2,"stramulet"],
|
[1,"stramulet"],
|
||||||
[1,"dexamulet"],
|
[1,"dexamulet"],
|
||||||
],
|
],
|
||||||
"statbelt":[
|
"statbelt":[
|
||||||
[1,"intbelt"],
|
[1,"intbelt"],
|
||||||
[1.05,"strbelt"],
|
[1,"strbelt"],
|
||||||
[1,"dexbelt"],
|
[1,"dexbelt"],
|
||||||
],
|
],
|
||||||
"statring":[
|
"statring":[
|
||||||
[1,"intring"],
|
[1,"intring"],
|
||||||
[1,"vitring"],
|
[1,"vitring"],
|
||||||
[1,"dexring"],
|
[1,"dexring"],
|
||||||
[1.2,"strring"],
|
[1,"strring"],
|
||||||
],
|
],
|
||||||
"basicelixir":[
|
"basicelixir":[
|
||||||
[1,"elixirvit0"],
|
[1,"elixirvit0"],
|
||||||
@@ -718,6 +704,7 @@ drops={
|
|||||||
[0.3,"lmace",None,None,"lucky"],
|
[0.3,"lmace",None,None,"lucky"],
|
||||||
[1,"oxhelmet",None,None,"lucky"],
|
[1,"oxhelmet",None,None,"lucky"],
|
||||||
[0.1,"cdragon",None,None,"lucky"],
|
[0.1,"cdragon",None,None,"lucky"],
|
||||||
|
[0.1,"snakeoil"], #2025
|
||||||
],
|
],
|
||||||
"eastereggs":[
|
"eastereggs":[
|
||||||
[1,"egg0"],
|
[1,"egg0"],
|
||||||
@@ -855,7 +842,6 @@ drops={
|
|||||||
[1,"cupid"],
|
[1,"cupid"],
|
||||||
],
|
],
|
||||||
"candy0":[
|
"candy0":[
|
||||||
[1,"pmaceofthedead"],
|
|
||||||
[0.008,"spookyamulet"],
|
[0.008,"spookyamulet"],
|
||||||
[1,"gold",480000],
|
[1,"gold",480000],
|
||||||
[0.0005,"cxjar",1,"hat410"],
|
[0.0005,"cxjar",1,"hat410"],
|
||||||
@@ -971,10 +957,10 @@ drops={
|
|||||||
[0.5,"empty"],
|
[0.5,"empty"],
|
||||||
],
|
],
|
||||||
"weaponofthedead":[
|
"weaponofthedead":[
|
||||||
[0.85,"bowofthedead"],
|
[1,"bowofthedead"],
|
||||||
[0.35,"swordofthedead"],
|
[1,"swordofthedead"],
|
||||||
[1,"maceofthedead"],
|
[1,"maceofthedead"],
|
||||||
[0.1,"pmaceofthedead"],
|
[1,"pmaceofthedead"],
|
||||||
[1,"staffofthedead"],
|
[1,"staffofthedead"],
|
||||||
[1,"daggerofthedead"],
|
[1,"daggerofthedead"],
|
||||||
],
|
],
|
||||||
|
|||||||
+6
-6
@@ -198,7 +198,7 @@ armor={
|
|||||||
"set":"fury",
|
"set":"fury",
|
||||||
"tier":1.5,
|
"tier":1.5,
|
||||||
"type":"helmet",
|
"type":"helmet",
|
||||||
"class":["rogue","warrior"],
|
"class":["rogue","warrior","ranger","paladin"],
|
||||||
"skin":"fury",
|
"skin":"fury",
|
||||||
"scroll":True,
|
"scroll":True,
|
||||||
#"evasion":1,
|
#"evasion":1,
|
||||||
@@ -2031,7 +2031,7 @@ accessories={
|
|||||||
"skin":"mearring",
|
"skin":"mearring",
|
||||||
"luck":8,
|
"luck":8,
|
||||||
"compound":{
|
"compound":{
|
||||||
"luck":1,
|
"luck":4,
|
||||||
},
|
},
|
||||||
"name":"Mistletoe Earring",
|
"name":"Mistletoe Earring",
|
||||||
"g":12000000,
|
"g":12000000,
|
||||||
@@ -2226,7 +2226,7 @@ accessories={
|
|||||||
"skin":"stramulet",
|
"skin":"stramulet",
|
||||||
"str":4,
|
"str":4,
|
||||||
"compound":{
|
"compound":{
|
||||||
"str":2,
|
"str":3,
|
||||||
},
|
},
|
||||||
"name":"Amulet of Strength",
|
"name":"Amulet of Strength",
|
||||||
"g":30000,
|
"g":30000,
|
||||||
@@ -2244,7 +2244,7 @@ accessories={
|
|||||||
"t2stramulet":{
|
"t2stramulet":{
|
||||||
"type":"amulet",
|
"type":"amulet",
|
||||||
"skin":"t2stramulet",
|
"skin":"t2stramulet",
|
||||||
"str":5,
|
"str":6,
|
||||||
"resistance":30,
|
"resistance":30,
|
||||||
"compound":{
|
"compound":{
|
||||||
"str":3,
|
"str":3,
|
||||||
@@ -2258,10 +2258,10 @@ accessories={
|
|||||||
"t2intamulet":{
|
"t2intamulet":{
|
||||||
"type":"amulet",
|
"type":"amulet",
|
||||||
"skin":"t2intamulet",
|
"skin":"t2intamulet",
|
||||||
"int":5,
|
"int":6,
|
||||||
"armor":30,
|
"armor":30,
|
||||||
"compound":{
|
"compound":{
|
||||||
"int":2,
|
"int":3,
|
||||||
"armor":20,
|
"armor":20,
|
||||||
},
|
},
|
||||||
"name":"Amulet of the Fierce Mage",
|
"name":"Amulet of the Fierce Mage",
|
||||||
|
|||||||
+3
-2
@@ -544,7 +544,7 @@ maps={
|
|||||||
#"key":"jayson_ALMap2_v2.Xmas",
|
#"key":"jayson_ALMap2_v2.Xmas",
|
||||||
#"key":"jayson_ALMap2_v2.CNewYear",
|
#"key":"jayson_ALMap2_v2.CNewYear",
|
||||||
#"key":"jayson_ALMap2_v2_xmas", #xmas
|
#"key":"jayson_ALMap2_v2_xmas", #xmas
|
||||||
#"key":"jayson_ALMap2_v2.lunarNewYear",
|
"key":"jayson_ALMap2_v2.lunarNewYear",
|
||||||
"name":"Mainland",
|
"name":"Mainland",
|
||||||
"npcs":[
|
"npcs":[
|
||||||
#{"id":"newupgrade","position":[-203,-174]},
|
#{"id":"newupgrade","position":[-203,-174]},
|
||||||
@@ -1173,7 +1173,7 @@ maps={
|
|||||||
"monsters":[
|
"monsters":[
|
||||||
{"type":"stompy","boundary":[30,-2954,836,-2536],"count":1},
|
{"type":"stompy","boundary":[30,-2954,836,-2536],"count":1},
|
||||||
{"type":"wolf","boundary":[30,-2954,836,-2536],"count":7,"grow":True}, #added grow 31/1/2024
|
{"type":"wolf","boundary":[30,-2954,836,-2536],"count":7,"grow":True}, #added grow 31/1/2024
|
||||||
#{"type":"rudolph","boundary":[1065,-1598,1418,-1449],"count":1}, #xmas
|
{"type":"rudolph","boundary":[1065,-1598,1418,-1449],"count":1}, #xmas
|
||||||
{"type":"arcticbee","boundary":[682,-967,1482,-779],"count":10,"grow":True},
|
{"type":"arcticbee","boundary":[682,-967,1482,-779],"count":10,"grow":True},
|
||||||
{"type":"wolfie","boundary":[-367,-2234,29,-1819],"count":4,"grow":True}, #added grow 31/1/2024
|
{"type":"wolfie","boundary":[-367,-2234,29,-1819],"count":4,"grow":True}, #added grow 31/1/2024
|
||||||
{"type":"wolfie","boundary":[236,-2232,460,-1847],"count":3,"grow":True}, #added grow 31/1/2024
|
{"type":"wolfie","boundary":[236,-2232,460,-1847],"count":3,"grow":True}, #added grow 31/1/2024
|
||||||
@@ -1221,6 +1221,7 @@ maps={
|
|||||||
"npcs":[
|
"npcs":[
|
||||||
{"id":"transporter","position":[-14,-477]},
|
{"id":"transporter","position":[-14,-477]},
|
||||||
{"id":"locksmith","position":[316,-270]},
|
{"id":"locksmith","position":[316,-270]},
|
||||||
|
{"id":"scrollsmith","position":[606,-1590]},
|
||||||
],
|
],
|
||||||
"monsters":[
|
"monsters":[
|
||||||
{"type":"plantoid","boundary":[-1013,-472,-575,-130],"count":4,"grow":True}, #added grow 31/1/2024
|
{"type":"plantoid","boundary":[-1013,-472,-575,-130],"count":4,"grow":True}, #added grow 31/1/2024
|
||||||
|
|||||||
@@ -891,6 +891,13 @@ npcs={
|
|||||||
"type":"fullstatic",
|
"type":"fullstatic",
|
||||||
"name":"Smith",
|
"name":"Smith",
|
||||||
},
|
},
|
||||||
|
"scrollsmith":{
|
||||||
|
"role":"scrollsmith",
|
||||||
|
"skin":"bsoldier",
|
||||||
|
"says":"X",
|
||||||
|
"type":"fullstatic",
|
||||||
|
"name":"Sir Bob",
|
||||||
|
},
|
||||||
"transporter":{
|
"transporter":{
|
||||||
"role":"transport",
|
"role":"transport",
|
||||||
"skin":"spell",
|
"skin":"spell",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -372,7 +372,7 @@ sprites={
|
|||||||
"columns":4,
|
"columns":4,
|
||||||
"matrix":[
|
"matrix":[
|
||||||
[None,"nexus",None,None],
|
[None,"nexus",None,None],
|
||||||
[None,None,None,None],
|
[None,None,"bsoldier",None],
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"military3":{
|
"military3":{
|
||||||
|
|||||||
@@ -761,6 +761,7 @@ def block_account(name,days,reason="",toggle=False):
|
|||||||
if toggle and gf(owner,"blocked_until") and owner.info.blocked_until>datetime.now(): days=-1
|
if toggle and gf(owner,"blocked_until") and owner.info.blocked_until>datetime.now(): days=-1
|
||||||
if days<=0:
|
if days<=0:
|
||||||
owner.info.blocked_until=really_old
|
owner.info.blocked_until=really_old
|
||||||
|
owner.banned=False
|
||||||
owner.put()
|
owner.put()
|
||||||
return "un-blocked %s"%owner.k()
|
return "un-blocked %s"%owner.k()
|
||||||
else:
|
else:
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
+10
-1
@@ -2953,6 +2953,14 @@ function lock_item(num)
|
|||||||
return push_deferred("locksmith");
|
return push_deferred("locksmith");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function destat_item(num)
|
||||||
|
{
|
||||||
|
if(num===undefined) num=s_item;
|
||||||
|
socket.emit("destat",{num:num});
|
||||||
|
return push_deferred("destat");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function seal_item(num)
|
function seal_item(num)
|
||||||
{
|
{
|
||||||
if(num===undefined) num=l_item;
|
if(num===undefined) num=l_item;
|
||||||
@@ -3204,6 +3212,7 @@ function reopen()
|
|||||||
else if(rendered_target=="dismantler") render_dismantler();
|
else if(rendered_target=="dismantler") render_dismantler();
|
||||||
else if(rendered_target=="none") render_none_shrine();
|
else if(rendered_target=="none") render_none_shrine();
|
||||||
else if(rendered_target=="locksmith") render_locksmith();
|
else if(rendered_target=="locksmith") render_locksmith();
|
||||||
|
else if(rendered_target=="scrollsmith") render_scrollsmith();
|
||||||
// else if(rendered_target=="secondhands") render_secondhands(); // Manual resets
|
// else if(rendered_target=="secondhands") render_secondhands(); // Manual resets
|
||||||
if(inventory) reset_inventory();
|
if(inventory) reset_inventory();
|
||||||
|
|
||||||
@@ -3270,7 +3279,7 @@ function reset_inventory(condition)
|
|||||||
{
|
{
|
||||||
if(inventory)
|
if(inventory)
|
||||||
{
|
{
|
||||||
if(condition && !in_arr(rendered_target,["upgrade","compound","exchange","npc","merchant","craftsman","dismantler","none","locksmith"])) return;
|
if(condition && !in_arr(rendered_target,["upgrade","compound","exchange","npc","merchant","craftsman","dismantler","none","locksmith","scrollsmith"])) return;
|
||||||
render_inventory(true);
|
render_inventory(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+13
@@ -2194,6 +2194,15 @@ function init_socket(args)
|
|||||||
}
|
}
|
||||||
else if(response=="magiport_failed") ui_log("Magiport failed","gray"),no_no_no(2);
|
else if(response=="magiport_failed") ui_log("Magiport failed","gray"),no_no_no(2);
|
||||||
else if(response=="revive_failed") ui_log("Revival failed","gray"),no_no_no(1);
|
else if(response=="revive_failed") ui_log("Revival failed","gray"),no_no_no(1);
|
||||||
|
else if(response=="scrollsmith_cant")
|
||||||
|
{
|
||||||
|
ui_log("Can't destat this item","gray")
|
||||||
|
}
|
||||||
|
else if(response=="scrollsmith_success")
|
||||||
|
{
|
||||||
|
ui_log("Spent " + data.gold.toLocaleString() + " gold","gray");
|
||||||
|
ui_log("De-statted the item","gray");
|
||||||
|
}
|
||||||
else if(response=="locksmith_cant")
|
else if(response=="locksmith_cant")
|
||||||
{
|
{
|
||||||
ui_log("Can't lock/unlock this item","gray")
|
ui_log("Can't lock/unlock this item","gray")
|
||||||
@@ -3295,6 +3304,10 @@ function npc_right_click(event){
|
|||||||
{
|
{
|
||||||
render_interaction({auto:true,dialog:"locksmith",skin:"asoldier"});
|
render_interaction({auto:true,dialog:"locksmith",skin:"asoldier"});
|
||||||
}
|
}
|
||||||
|
if(this.role=="scrollsmith")
|
||||||
|
{
|
||||||
|
render_interaction({auto:true,dialog:"scrollsmith",skin:"bsoldier"});
|
||||||
|
}
|
||||||
if(this.role=="compound")
|
if(this.role=="compound")
|
||||||
{
|
{
|
||||||
render_compound_shrine(1);
|
render_compound_shrine(1);
|
||||||
|
|||||||
+42
-1
@@ -1,4 +1,4 @@
|
|||||||
var u_item=null,u_scroll=null,u_offering=null,c_items=e_array(3),c_scroll=null,c_offering=null,c_last=0,e_item=null,p_item=null,l_item=null,cr_items=e_array(9),cr_last=0,ds_item=null;
|
var u_item=null,u_scroll=null,u_offering=null,c_items=e_array(3),c_scroll=null,c_offering=null,c_last=0,e_item=null,p_item=null,l_item=null,s_item=null,cr_items=e_array(9),cr_last=0,ds_item=null;
|
||||||
|
|
||||||
var settings_shown=0;
|
var settings_shown=0;
|
||||||
function show_settings()
|
function show_settings()
|
||||||
@@ -1142,6 +1142,30 @@ function render_locksmith(mode)
|
|||||||
if(!inventory) render_inventory(),inventory_opened_for=topleft_npc;
|
if(!inventory) render_inventory(),inventory_opened_for=topleft_npc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function render_scrollsmith()
|
||||||
|
{
|
||||||
|
var button="DE-STAT",f="destat_item",shade="shade_chest";
|
||||||
|
reset_inventory(1);
|
||||||
|
topleft_npc="scrollsmith"; rendered_target=topleft_npc;
|
||||||
|
s_item=null;
|
||||||
|
var html="<div style='background-color: black; border: 5px solid gray; padding: 20px; font-size: 24px; display: inline-block; vertical-align: top; text-align: center'>";
|
||||||
|
/*html+="<div class='ering ering1 mb10'>";
|
||||||
|
html+="<div class='ering ering2'>";
|
||||||
|
html+="<div class='ering ering3'>";
|
||||||
|
//html+="<div class='ering ering4'>";*/
|
||||||
|
html+="<div>";
|
||||||
|
html+=item_container({shade:shade,cid:'sitem',s_op:0.4,draggable:false,droppable:true});
|
||||||
|
html+="</div>";
|
||||||
|
//html+="</div>";
|
||||||
|
/*html+="</div>";
|
||||||
|
html+="</div>";
|
||||||
|
html+="</div>";*/
|
||||||
|
html+="<div style='margin-top: 12px'><div class='gamebutton clickable' onclick='"+f+"()'>"+button+"</div></div>";
|
||||||
|
html+="</div>";
|
||||||
|
$("#topleftcornerui").html(html);
|
||||||
|
if(!inventory) render_inventory(),inventory_opened_for=topleft_npc;
|
||||||
|
}
|
||||||
|
|
||||||
function render_recipe(element,type,name)
|
function render_recipe(element,type,name)
|
||||||
{
|
{
|
||||||
last_selector="#recipe-item";
|
last_selector="#recipe-item";
|
||||||
@@ -2201,6 +2225,7 @@ function render_skill(selector,skill_name,args)
|
|||||||
if(skill.range_multiplier && skill.range_bonus) html+=bold_prop_line("Range",to_pretty_float(skill.range_multiplier||1)+"X + "+skill.range_bonus,"gray");
|
if(skill.range_multiplier && skill.range_bonus) html+=bold_prop_line("Range",to_pretty_float(skill.range_multiplier||1)+"X + "+skill.range_bonus,"gray");
|
||||||
else if(skill.range_multiplier) html+=bold_prop_line("Range",to_pretty_float(skill.range_multiplier||1)+"X of Character Range","gray");
|
else if(skill.range_multiplier) html+=bold_prop_line("Range",to_pretty_float(skill.range_multiplier||1)+"X of Character Range","gray");
|
||||||
if(skill.level) html+=bold_prop_line("Level Requirement",skill.level,"gray");
|
if(skill.level) html+=bold_prop_line("Level Requirement",skill.level,"gray");
|
||||||
|
if(skill.wtype) html+=bold_prop_line("Weapon Requirement", is_array(skill.wtype) ? skill.wtype.join(", ") : skill.wtype,"gray");
|
||||||
if(skill.max) html+=bold_prop_line("Max",skill.max,"gray");
|
if(skill.max) html+=bold_prop_line("Max",skill.max,"gray");
|
||||||
if(skill.type=="passive") html+="<div><span style='color: #696C68;'>Passive</span></div>";
|
if(skill.type=="passive") html+="<div><span style='color: #696C68;'>Passive</span></div>";
|
||||||
if(skill.damage_type)
|
if(skill.damage_type)
|
||||||
@@ -3741,6 +3766,17 @@ function on_rclick(current)
|
|||||||
$("#citem"+inum).parent().html("");
|
$("#citem"+inum).parent().html("");
|
||||||
$("#litem").html(html);
|
$("#litem").html(html);
|
||||||
}
|
}
|
||||||
|
else if(topleft_npc=="scrollsmith")
|
||||||
|
{
|
||||||
|
var current=character.items[inum],def=null;
|
||||||
|
if(current) def=G.items[current.name];
|
||||||
|
if(!def) return;
|
||||||
|
if(s_item!==null) return;
|
||||||
|
s_item=inum; cache_i[inum]=-1;
|
||||||
|
var html=$("#citem"+inum).all_html();
|
||||||
|
$("#citem"+inum).parent().html("");
|
||||||
|
$("#sitem").html(html);
|
||||||
|
}
|
||||||
else if(topleft_npc=="upgrade")
|
else if(topleft_npc=="upgrade")
|
||||||
{
|
{
|
||||||
var current=character.items[inum],def=null;
|
var current=character.items[inum],def=null;
|
||||||
@@ -4634,6 +4670,11 @@ function render_interaction(type,sub_type,args)
|
|||||||
html+="Lock - Prevents anything that can destroy an item, selling, upgrading, you name it! Seal - Locks the item in a way that unlocking it takes two days. Unlock - Frees it. Got it? Good. Cost? 250 big ones.";
|
html+="Lock - Prevents anything that can destroy an item, selling, upgrading, you name it! Seal - Locks the item in a way that unlocking it takes two days. Unlock - Frees it. Got it? Good. Cost? 250 big ones.";
|
||||||
html+="<span style='float: right; margin-top: 5px'><div class='slimbutton' onclick='render_locksmith(\"lock\")'>LOCK</div> <div class='slimbutton' onclick='render_locksmith(\"seal\")'>SEAL</div> <div class='slimbutton' onclick='render_locksmith(\"unlock\")'>UNLOCK</div></span>";
|
html+="<span style='float: right; margin-top: 5px'><div class='slimbutton' onclick='render_locksmith(\"lock\")'>LOCK</div> <div class='slimbutton' onclick='render_locksmith(\"seal\")'>SEAL</div> <div class='slimbutton' onclick='render_locksmith(\"unlock\")'>UNLOCK</div></span>";
|
||||||
}
|
}
|
||||||
|
else if(type=="scrollsmith")
|
||||||
|
{
|
||||||
|
html+="De-stat an item. Give you back the scrolls used on the item, as though the item were level 0. Returns the item back to you along with scrolls. Got it? Good. Cost? Depends on the scroll. 10 times the value of the scrolls that will be returned to you.";
|
||||||
|
html+="<span style='float: right; margin-top: 5px'><div class='slimbutton' onclick='render_scrollsmith()'>DE-STAT</div></span>";
|
||||||
|
}
|
||||||
else if(type=="crafting")
|
else if(type=="crafting")
|
||||||
{
|
{
|
||||||
html+="I can craft or dismantle items for you. Price differs from item to item. Check out my recipes if you are interested!";
|
html+="I can craft or dismantle items for you. Price differs from item to item. Check out my recipes if you are interested!";
|
||||||
|
|||||||
+54
-10
@@ -171,8 +171,8 @@ var events = {
|
|||||||
// SEASONS
|
// SEASONS
|
||||||
holidayseason: false,
|
holidayseason: false,
|
||||||
lunarnewyear: false,
|
lunarnewyear: false,
|
||||||
valentines: false,
|
valentines: true,
|
||||||
pinkgoo: 0, // every N minutes - 60
|
pinkgoo: 60, // every N minutes - 60
|
||||||
snowman: 20 * 60, // 1200 normally - 60 - at sprocess_game_data
|
snowman: 20 * 60, // 1200 normally - 60 - at sprocess_game_data
|
||||||
egghunt: 0, // every N minutes - 60
|
egghunt: 0, // every N minutes - 60
|
||||||
halloween: false,
|
halloween: false,
|
||||||
@@ -2034,7 +2034,7 @@ function drop_something(player, monster, share) {
|
|||||||
// 3) item drops if the calculated falls below the drop rate threshold
|
// 3) item drops if the calculated falls below the drop rate threshold
|
||||||
|
|
||||||
let dropRate = item[0];
|
let dropRate = item[0];
|
||||||
let rollModifier = share / player.luckm / monster.level / monster_mult;
|
let rollModifier = share * player.luckm * monster.level * monster_mult;
|
||||||
let playerRoll = Math.random() / rollModifier;
|
let playerRoll = Math.random() / rollModifier;
|
||||||
|
|
||||||
return playerRoll < dropRate;
|
return playerRoll < dropRate;
|
||||||
@@ -3011,7 +3011,6 @@ function commence_attack(attacker, target, atype) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var pid = randomStr(6);
|
var pid = randomStr(6);
|
||||||
var eta = 0;
|
|
||||||
info.first_attack = info.attack = attack;
|
info.first_attack = info.attack = attack;
|
||||||
info.def = def;
|
info.def = def;
|
||||||
def.damage_type = info.damage_type;
|
def.damage_type = info.damage_type;
|
||||||
@@ -3028,7 +3027,7 @@ function commence_attack(attacker, target, atype) {
|
|||||||
source: atype,
|
source: atype,
|
||||||
x: target.x,
|
x: target.x,
|
||||||
y: target.y,
|
y: target.y,
|
||||||
eta: 400,
|
eta: 0,
|
||||||
m: target.m,
|
m: target.m,
|
||||||
pid: pid,
|
pid: pid,
|
||||||
};
|
};
|
||||||
@@ -3052,12 +3051,12 @@ function commence_attack(attacker, target, atype) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!(G.projectiles[def.projectile] && G.projectiles[def.projectile].instant)) {
|
if (!(G.projectiles[def.projectile] && G.projectiles[def.projectile].instant)) {
|
||||||
eta = (1000 * dist) / G.projectiles[def.projectile].speed;
|
action.eta = Math.floor((1000 * dist) / G.projectiles[def.projectile].speed);
|
||||||
} else {
|
} else {
|
||||||
action.instant = true;
|
action.instant = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
info.eta = future_ms(eta);
|
info.eta = future_ms(action.eta);
|
||||||
|
|
||||||
if (info.heal) {
|
if (info.heal) {
|
||||||
action.heal = attack;
|
action.heal = attack;
|
||||||
@@ -3073,7 +3072,7 @@ function commence_attack(attacker, target, atype) {
|
|||||||
info.action = action;
|
info.action = action;
|
||||||
xy_emit(attacker, "action", action, target.id);
|
xy_emit(attacker, "action", action, target.id);
|
||||||
|
|
||||||
if (!eta) {
|
if (!action.eta) {
|
||||||
projectiles_loop();
|
projectiles_loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5605,6 +5604,48 @@ function init_io() {
|
|||||||
resend(player, "reopen+nc+inv");
|
resend(player, "reopen+nc+inv");
|
||||||
success_response({ num: num, cevent: true });
|
success_response({ num: num, cevent: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
socket.on("destat", function (data) {
|
||||||
|
var player = players[socket.id];
|
||||||
|
if (!player || player.user) {
|
||||||
|
return fail_response("cant_in_bank");
|
||||||
|
}
|
||||||
|
if (!player.computer && simple_distance(G.maps.desertland.ref.scrollsmith, player) > B.sell_dist) {
|
||||||
|
return fail_response("distance");
|
||||||
|
}
|
||||||
|
var item = player.items[data.num];
|
||||||
|
if (!item) {
|
||||||
|
return fail_response("no_item");
|
||||||
|
}
|
||||||
|
var def = G.items[item.name];
|
||||||
|
if (item.stat_type == null) {
|
||||||
|
return fail_response("scrollsmith_cant");
|
||||||
|
}
|
||||||
|
var scrolltype = item.stat_type + "scroll";
|
||||||
|
if (scrolltype == "mp_costscroll") {
|
||||||
|
scrolltype = "mpcostscroll";
|
||||||
|
}
|
||||||
|
var scrolldef = G.items[scrolltype];
|
||||||
|
if (!scrolldef) {
|
||||||
|
return fail_response("scrollsmith_cant"); // Just in case there isn't actually an item associated with the scroll... should never happen, though.
|
||||||
|
}
|
||||||
|
var needed = [1, 10, 100, 1000, 9999, 9999, 9999];
|
||||||
|
var ograde = calculate_item_grade(def, { name: item.name, level: 0 });
|
||||||
|
var cost = needed[ograde] * scrolldef.g * 10;
|
||||||
|
if (player.gold < cost) {
|
||||||
|
return fail_response("gold_not_enough");
|
||||||
|
}
|
||||||
|
if (!can_add_items(player, list_to_pseudo_items([[needed[ograde], scrolltype]]))) {
|
||||||
|
return fail_response("inv_size");
|
||||||
|
}
|
||||||
|
player.gold -= cost;
|
||||||
|
add_item(player, scrolltype, { q: needed[ograde] });
|
||||||
|
delete item.stat_type;
|
||||||
|
socket.emit("game_response", { response: "scrollsmith_success", gold: cost });
|
||||||
|
player.citems[data.num] = cache_item(player.items[data.num]);
|
||||||
|
resend(player, "reopen+nc");
|
||||||
|
success_response();
|
||||||
|
});
|
||||||
socket.on("locksmith", function (data) {
|
socket.on("locksmith", function (data) {
|
||||||
var player = players[socket.id];
|
var player = players[socket.id];
|
||||||
var item = player.items[data.item_num];
|
var item = player.items[data.item_num];
|
||||||
@@ -6595,8 +6636,11 @@ function init_io() {
|
|||||||
new_monster(player.in, { type: def.spawn, stype: "trap", x: player.x, y: player.y, owner: player.name });
|
new_monster(player.in, { type: def.spawn, stype: "trap", x: player.x, y: player.y, owner: player.name });
|
||||||
consume_one(player, data.num);
|
consume_one(player, data.num);
|
||||||
} else if (def.gives) {
|
} else if (def.gives) {
|
||||||
if (player.last.potion && mssince(player.last.potion) < 0) {
|
if (player.last.potion) {
|
||||||
return fail_response("not_ready");
|
const ms = -mssince(player.last.potion);
|
||||||
|
if (ms > 0) {
|
||||||
|
return fail_response("not_ready", { ms: ms });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (item.l) {
|
if (item.l) {
|
||||||
return fail_response("item_locked");
|
return fail_response("item_locked");
|
||||||
|
|||||||
@@ -270,6 +270,10 @@ function sprocess_game_data() {
|
|||||||
|
|
||||||
if (events.holidayseason) {
|
if (events.holidayseason) {
|
||||||
events.snowman = 60;
|
events.snowman = 60;
|
||||||
|
D.drops.maps.global.push([0.0006, "ornament"]);
|
||||||
|
D.drops.maps.global.push([0.0018, "mistletoe"]);
|
||||||
|
D.drops.maps.global.push([0.0005, "candycane"]);
|
||||||
|
D.drops.maps.global.push([0.0001, "open", "xN"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user