diff --git a/config.py b/config.py index 94f27cb..2a4775a 100644 --- a/config.py +++ b/config.py @@ -118,6 +118,8 @@ game_version=822 SALES=4+5+388+5101+125/20 #donation+manual+macos+steam+sales update_notes=[ "Last Update [August 7th]", + "PR: improve date functions #176", + "PR: simplify distance calculation #179", "PR: Fix display of Orb of Adventures #183", "PR: Fix Sanguine Amulet #185", "PR: Fix display of Frozen to correctly show speed reduction, fix value in G.conditions.poisoned to reflect actual frequency multiplier #188", diff --git a/design/conditions.py b/design/conditions.py index aa631fd..c7a509d 100644 --- a/design/conditions.py +++ b/design/conditions.py @@ -18,7 +18,7 @@ conditions={ "mp_cost":-200, "buff":True, "ui":True, - "explanation": "Greatly increases attack speed and reduces mana cost of attacks." + "explanation": "Greatly increases attack speed and reduces mana cost of attacks.", }, "power":{ "skin":"powerglove", @@ -28,7 +28,7 @@ conditions={ "mp_cost":-200, "buff":True, "ui":True, - "explanation": "Increases attack speed and reduces mana cost." + "explanation": "Increases attack speed and reduces mana cost.", }, "weakness":{ "skin":"condition_bad", @@ -39,7 +39,7 @@ conditions={ "dex":-10, "str":-10, "duration":20000, - "explanation": "Reduces speed, dexterity, and strength." + "explanation": "Reduces speed, dexterity, and strength.", }, "xpower":{ "skin":"goldenpowerglove", @@ -49,7 +49,7 @@ conditions={ "mp_cost":-300, "buff":True, "ui":True, - "explanation": "Greatly increases attack speed and lowers mana cost." + "explanation": "Greatly increases attack speed and lowers mana cost.", }, "stack":{ "skin":"skill_stack", @@ -74,7 +74,7 @@ conditions={ "duration":800, "buff":True, "ui":True, - "explanation": "Gives a brief burst of attack speed." + "explanation": "Gives a brief burst of attack speed.", }, "mcourage":{ "skin":"skill_mcourage", @@ -87,7 +87,7 @@ conditions={ "duration":10000, "ui":True, "buff":True, - "explanation": "Increases speed, evasion, and all types of courage." + "explanation": "Increases speed, evasion, and all types of courage.", }, "mfrenzy":{ "skin":"skill_mfrenzy", @@ -98,7 +98,7 @@ conditions={ "output":40, "ui":True, "buff":True, - "explanation": "Greatly boosts attack speed and output while lowering mana cost." + "explanation": "Greatly boosts attack speed and output while lowering mana cost.", }, "mshield":{ "skin":"skill_mshield", @@ -116,7 +116,7 @@ conditions={ "duration":5000, "ui":True, "buff":True, - "explanation": "Decreases attack and movement speed but greatly increases evasion." + "explanation": "Decreases attack and movement speed but greatly increases evasion.", }, "hardshell":{ "skin":"skill_hardshell", @@ -125,7 +125,7 @@ conditions={ "set_speed":10, "duration":8000, "buff":True, - "explanation": "Greatly increases armor but limits maximum speed to 10." + "explanation": "Greatly increases armor but limits maximum speed to 10.", }, "reflection":{ "skin":"buff_reflection", @@ -135,7 +135,7 @@ conditions={ "duration":5000, "ui":True, "buff":True, - "explanation": "Increases your chance to reflect attacks." + "explanation": "Increases your chance to reflect attacks.", }, "eburn":{ "skin":"essenceoffire", @@ -147,7 +147,7 @@ conditions={ "speed":5, "ui":True, "debuff":True, - "explanation": "Burns the target with fire essence, dealing damage over time." + "explanation": "Burns the target with fire essence, dealing damage over time.", }, "newcomersblessing":{ "skin":"newcomersblessing", @@ -159,7 +159,7 @@ conditions={ "aura":True, "ui":True, "persistent":True, - "explanation": "Increases luck, gold gain, and experience earned." + "explanation": "Increases luck, gold gain, and experience earned.", }, "eheal":{ "skin":"essenceoflife", @@ -169,7 +169,7 @@ conditions={ "duration":4*1000, "ui":True, "buff":True, - "explanation": "Heals the target over time using life essence." + "explanation": "Heals the target over time using life essence.", }, "rspeed":{ "skin":"buff_speed", @@ -184,7 +184,7 @@ conditions={ "massproduction":{ "skin":"skill_massproduction", "name":"Mass Production", - "explanation": "Reduces the time of your next upgrade or compound by 50%." + "explanation": "Reduces the time of your next upgrade or compound by 50%.", "duration":10*1000, "buff":True, "ui":True, @@ -192,7 +192,7 @@ conditions={ "massproductionpp":{ "skin":"skill_massproductionpp", "name":"Mass Production++", - "explanation": "Reduces the time of your next upgrade or compound by 90%." + "explanation": "Reduces the time of your next upgrade or compound by 90%.", "duration":10*1000, "buff":True, "ui":True, @@ -277,7 +277,7 @@ conditions={ "gold":20, "xp":25, "speed":1, - "duration":60*60*1000, + "duration":2*60*1000, "buff":True, "ui":True, }, @@ -605,7 +605,7 @@ conditions={ "skin":"condition_positive", "speed":30, "duration":3200, - "explanation": "A short burst of speed." + "explanation": "A short burst of speed.", }, "dash":{ "name":"Dashing", diff --git a/design/dimensions.py b/design/dimensions.py index 87a7fbc..f2757f2 100644 --- a/design/dimensions.py +++ b/design/dimensions.py @@ -1015,4 +1015,5 @@ positions={ #"claw":["",13,42], "friendtoken":["",15,33], + "patronsgrace":["custom",5,0], } diff --git a/design/maps.py b/design/maps.py index 46960a1..4617b43 100644 --- a/design/maps.py +++ b/design/maps.py @@ -534,7 +534,7 @@ maps={ {"id":"monsterhunter","position":[126,-413]}, {"id":"mcollector","position":[81,-283,1]}, #{"id":"newyear_tree","position":[64,-88]}, #xmas - {"id":"favor","position":[20,20]}, + {"id":"favors","position":[20,20]}, ], "monsters":[ #square diff --git a/design/npcs.py b/design/npcs.py index 9b6a804..5ad4fa1 100644 --- a/design/npcs.py +++ b/design/npcs.py @@ -84,10 +84,9 @@ npcs={ "color":"#B4FAA0", }, "favors":{ - "role":"monstertokens", - "token":"monstertoken", + "role":"favors", "name":"Favoré", - "skin":"favor", + "skin":"favore", "type":"fullstatic", "says":"Hi!", "color":"#D382B5", diff --git a/design/sprites.py b/design/sprites.py index 8a2fed1..a2697d7 100644 --- a/design/sprites.py +++ b/design/sprites.py @@ -133,7 +133,7 @@ sprites={ "rows":2, "columns":4, "matrix":[ - [None,"greengreen",None,"favor"], + [None,"greengreen",None,"favore"], [None,None,None,None], ] }, diff --git a/images/tiles/items/custom.png b/images/tiles/items/custom.png index be90578..963e995 100644 Binary files a/images/tiles/items/custom.png and b/images/tiles/items/custom.png differ diff --git a/images/tiles/items/custom.pxd b/images/tiles/items/custom.pxd new file mode 100644 index 0000000..dddea12 Binary files /dev/null and b/images/tiles/items/custom.pxd differ diff --git a/js/game.js b/js/game.js index a0edffe..8af8cff 100644 --- a/js/game.js +++ b/js/game.js @@ -2248,6 +2248,14 @@ function init_socket(args) ui_log("Spent 250,000 gold","gray"); ui_log("Sealed the item","gray"); } + else if(response=="blessed") + { + render_interaction({auto:true,skin:"favore",message:"Thank you! The server has been blessed."}); + } + else if(response=="blessed_fail") + { + render_interaction({auto:true,skin:"favore",message:"Ooops! It failed."}); + } else if(response=="monsterhunt_started" || response=="monsterhunt_already") { if(!character.s.monsterhunt) return; @@ -3286,6 +3294,10 @@ function npc_right_click(event){ render_interaction({auto:true,skin:"lionsuit",message:"This is your home server. Make sure to follow daily and nightly server events! Just click the time icon in the bottom left corner for the schedule!"}) } } + if(this.role=="favors") + { + render_interaction({auto:true,skin:"favore",message:"Would you like to bless the entire server for 3 days?",button:"Yes! [1,200 Shells]",onclick:function(){ socket.emit('bless_server'); }}); + } if(this.role=="mcollector") { render_recipes("mcollector"); diff --git a/node/server.js b/node/server.js index 8993b17..a24db35 100644 --- a/node/server.js +++ b/node/server.js @@ -7015,6 +7015,7 @@ function init_io() { server_log("buy_with_cash: " + JSON.stringify(result)); if (result.failed || !result.done) { socket.emit("game_log", "Purchase failed"); + socket.emit("game_response", "blessed_fail"); return; } player.cash = result.cash; @@ -7023,9 +7024,12 @@ function init_io() { S.blessed_by = player.name; socket.emit("game_log", "Spent " + to_pretty_num(cost) + " shells"); + socket.emit("game_response", "blessed"); resend(player, "reopen+nc+inv"); bless_loop(); + + discord_call(player.name + " blessed " + region + " " + server_name); }, ); success_response({ success: false, in_progress: true }); @@ -7366,12 +7370,16 @@ function init_io() { consume(player, data.num, data.q); //player.items[data.num]=player.citems[data.num]=null; } - if (data.statue) { + if (data.statue && distance(player, G.maps.spookytown.ref.poof) < B.sell_dist) { + var grade = (calculate_item_grade(G.items[name]) || 0) + 1; if (item.name == "shadowstone") { add = "+u+cid"; player.s.invis = { ms: 99999 }; } - if (G.items[item.name].upgrade && Math.random() < 1.0 / ((gameplay == "hardcore" && 10000) || 10000000)) { + if ( + G.items[item.name].upgrade && + Math.random() < 1.0 / ((gameplay == "hardcore" && 10000) || 3000013 * grade * grade) + ) { add = "+u+cid"; item.level = 13; player.items[data.num] = item; @@ -13081,7 +13089,13 @@ function npc_loop() { function bless_loop() { if (S.blessed_minutes) S.blessed_minutes--; - if (!S.blessed_minutes) return; + if (!S.blessed_minutes) { + delete E.blessed_minutes; + delete E.blessed_by; + return; + } + E.blessed_minutes = S.blessed_minutes; + E.blessed_by = S.blessed_by; for (var id in players) { var player = players[id], rs = false;