GithubHelp home page GithubHelp logo

kaansoral / adventureland Goto Github PK

View Code? Open in Web Editor NEW
188.0 188.0 58.0 137.47 MB

Adventure Land The Open Source CODE MMORPG

License: Other

JavaScript 89.40% Python 4.58% CSS 0.30% HTML 5.72% Rich Text Format 0.01%

adventureland's People

Contributors

alexanderkaiserce avatar atlusio avatar crowns3bc avatar cstamford avatar dcoles avatar dependabot[bot] avatar earthiverse avatar freezephoenix avatar kaansoral avatar kevinsandow avatar nexusnull avatar oldrippy avatar telokis avatar thediscordian avatar thmsndk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adventureland's Issues

Keep getting kicked because of 100 calls in 3 seconds...

this is lame... no matter what I change in my atleast one of my scripts now, it always seems to kick me from the game.. I can't play anymore because of it right now.. :(

this is my current iteration of the script.. -- https://github.com/JourneyOver/Adventure_Land_Codes/blob/Test_branch/Basic%20Grinding.js i've tried changing the delay several times over and nothing works.. (btw this code does kiting so it kinda needs to be fast...) (i've tried setting it to 1000 / 4 --- 2000 / 4 and even 10000 / 4 ) and it's always kicking me, but like I said before it needs to be fast so I can't really do something like 10000 / 4 ....

in all honestly I really hope you either revert the 100 calls thing or raise it some :/

Would a basic Item Comparison be a possible candidate for addition to runner_functions?

This would take items as two arguments, each an item in the format { name: itemName, level: int },
and would compare the stats on a LVL 0 character, with no gear. It would, however, take into consideration the character's class.

My question is, would this be a candidate for addition to runner_functions or should it be added to /examples?

This function would be akin to smart_move in that it's not optimal but gets the job done.

Map Editor Enhancements

Having worked with the map editor on the new BEEginner Dungeon map here is a list of improvements I'd like to have made for the map editor.

  • Show coordinates of mouse always as a little tooltip
  • Area - show a size tooltip when dragging X by Y or the likes so you can see the pixel / row / column size
  • tool tip on buttons for common shortcuts, e.g. deletion of Area, Line and so on
  • Undo feature on ctrl +z?
  • show gridlines ability to show gridlines on the map based on SIZE_X & SIZE_Y to make it easier to align things.
  • rectangle select on tile chooser to change SIZE_X and SIZE_Y, perhaps a mode you enable to select
  • select tiles /areas and move them by an offset
  • zoom on scrollwheel, either on map, or in tileset view, depending on where you are hovering instead of toggling the mode in the tilset window
  • SIZE_X & SIZE_Y should increment / decrement by STEP size using scrollwheel if input field is focus.
  • ability to customize shortcuts, perhaps even templates you can apply so the shortcuts resemble other relevant editors.
  • move my around by holding middle click?

Target of target and monster range [request]

Well "target of target" is already being discussed here -- #13 so I won't push that anymore since you plan on doing it from the looks of it.

but is there anyway to get the range of a monster (talking about how far away it can attack you, not how far away it is exactly) currently have tried json method to getting it and sadly it doesn't seem to show any signs on how to get it exactly, so either its not documented anywhere or it's not in the game at the moment. which if it's not in the game at the moment, would love to see it get added :D

Global chat

When a player gets to level 60 (just an idea) they should be able to talk through global chat, where everyone on the server can hear them. This would make the game more social I think, and building a community is important for player retention

Local chat would be just the screen you're on (this is how it works now)
Party chat would be everyone in your party

Don't let us inundate you with requests. These things can be put on the backburner for a long time
What's the link to your Slack?

How would you get target of target?

Currently I have a program set up where it identifies all "friends" aka my characters. One is considered the leader, and the remainders fall in line behind the leader. The end goal is for them to all attack the leaders target. How would I go about getting the target of the leader player?

How does one move items in their inventory?

I've looked all over the place, can't find any function to move items around in your inventory.
It's probably in html.js, but I'm requesting that a method be added to move around items.

Small bug (hehe): Arctic Bees drop leather.

This one's fairly self-explanatory, I didn't think much of it until just recently. I've noticed I've just been... getting the occasional leather here and there from the arctic bees. Is this because it's a global drop?

Runner function: Open and Close merchant Stand

This is currently an un-documented socket emit, I think this should be a runner function or two.
This comes up often enough (and I admit i've looked for it myself) that it should be implemented.

Code Organisation

As we progressively get into more and more advanced code, our files are getting larger as well.
Filled with auxiliary functions and variables, it's starting to become a pain to navigate our own code due to how long it is!
I suggest having some kind of code organisation, perhaps the CODE page could have tabs that we can name to organise our code?

Undocumented Code - The Feature

Inspired by Shenzhen IO and their "manual".

Spoiler alert if you care about Shenzhen IO

A little introduction about Shenzhen IO first if you didn't know - It's a RISC Assembly Programming game.
It comes bundled with its own instruction manual in which players will refer to, to learn the language and play the game.

However, there's undocumented code that's revealed upon finishing a certain amount of levels.
Why not use that concept and hide undocumented instructions/code inside the game world, which encourages exploration?
Maybe exposes a bit more of the game logic, explaining for example - what parent.next_pot() does, increasing the arsenal of code for players and enabling them to do more elaborate functions.
That way we can also reduce the learning curve by limiting the available variables.

game_log_rainbow version for you guys

function game_log_rainbow(message) {
  var rainbow_colors = ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#8B00FF"];
  var formatted_message = "";
  for (var i = 0; i < message.length; i++) {
    var color = rainbow_colors[i % rainbow_colors.length];
    formatted_message += `<span style="color:${color}">${message.charAt(i)}</span>`;
  }
  game_log(formatted_message);
}

Example Usage:

game_log_rainbow("// DeviousName, Warrior");

rainbow

Please give us a way to track our calls per second.

It's been very difficult adjusting my code so that the calls per second don't exceed 33. I don't really know what part of the code is causing all of these calls, or even really what a "call" is. Having a fps-like counter somewhere would be a great help.

Return object from Exchangeables on Currency or stackable reward is not descriptive

The problem

Currently, when a player opens an exchangeable, the return object on the exchange function does not return useful information in the following two cases:

  1. The player receives any currency (untested for Shells, but easily verifiable with Gold)
  2. The player receives a stackable item for an item they already have a stack for in their inventory

Some background

starting with the exchange function

//Source code of: exchange
async function exchange(item_num)
{
	parent.e_item=item_num;
	var call=await parent.exchange(1),num=undefined,name=undefined;
	if(!call.in_progress) return call;
	if(character.q.exchange) num=character.q.exchange.num;
	while(character.q.exchange || character.items[num] && character.items[num].name=="placeholder")
		await sleep(1);
	if(character.items[num]) name=character.items[num].name;
	else num=undefined;
	return {success:true,reward:name,num:num};
}

This code function executes parent.exchange, which I believe is located in js/functions.js line 3122. Then, the exchange function awaits the exchange animation via await sleep(1) calls while q.exchange is in progress.

When the exchange is finished, the function checks what item ended up in the q.exchange.num slot and returns the name (reward) and inventory slot (num) of the reward

This is where the crux of the problem lies. For items that don't stay in the slot the exchange placeholder item sat in, the return object is basically empty
image

Case 1

When opening an exchangeable, the return object only populates reward and num if the resulting item is an actual item. Currency rewards (gold, shells) result in the returned object having an undefined reward and num property

The following objects were generated with the code (executed in the in-game snippet runner),

exchange(ITEM_INDEX).then( (s) => console.log(s) )

image
^ A functioning example: Raw Emerald that contained a Weapon Box. reward isweaponbox because the emerald resulted in a weaponbox, and num is 26, because that's the slot the item ended up in.

image
^ A broken example: Green Envelope that contained 50,000 gold

Looking back to the exchange function, reward gets set to name if & only if character.items[num] is not falsey. num in this context is the character.q.exchange.num, which is the inventory index of the placeholder item during the exchange. In most cases, this placeholder item index is also the slot the rewarded item ends up in. However, once exchanges finish that reward a currency, the currency doesn't remain as an item in your inventory. Because it doesn't stick around in your inventory, character.items[num] goes back to being falsey, which keeps reward undefined and resets num to undefined

Case 2

In another example, the return object also breaks when you receive a stackable item for which you already have a non-full stack of.

The exchange's placheolder item sits in a non-empty slot in the character's inventory. If the reward is a stackable item, the item joins an existing non-full stack. This leads to another empty return object, since the reward does not end up in the inventory slot that the placeholder item was in.

When opening a Green Envelope and receiving a Firecracker while there are no other firecrackers in my inventory, the following object is returned
image

However, with that firecracker still in my inventory, receiving another returns an empty object.
image

Conclusion

I don't know how to fix this, otherwise I would've opened a PR with the fix.

Add way to play on self hosted server with steam client

I bought game and played it mostly on steam client, and some of my code choices are steam client specific (loading source code from local folder, etc). But as it seems now there is no easy way to play from steam client on self-hosted server.

It would be nice to have that option.
If someone would come up with some kind of workaround it would be great too! (I play on windows 10 machine).

Special ability

Do we have these features in runner_functions.js?

  • Use special ability
  • Check special ability cooldown

Could we get more documentation on what each character has as a special ability?
Possibly in the future an icon on your skillbar that shows the cooldown?


Fixed: I noticed since yesterday if I am alt tabbed and come back there's no longer a million enemies on the same screen. Good work!
Bug: If I stay on one screen for a long time, (hours) then move over to the next screen, there's a bunch of enemies there which are already dead. If I target them it says "Goo X"
They are still being targeted even though I am checking if ( !parent.entities[id].dead && parent.entities[id].hp > 0 )
When an enemy dies, is it being broadcast to the whole map? If not then maybe increase the broadcast distance

The new 33 calls per second limit is killing me!

I keep getting this error: "Disconnected Reason: You've made 100 calls in 3 seconds. That's too much."

What constitutes a call? I keep getting this error despite how I try to change my code.

Is this limit shared between characters on the account?

Upgrade function

Hello!

I want to set the level limit of the upgrade function, can you please give us the additional code to make it happen?

Thanks,

Adventurer :)

add_chat function

The add_chat function (which takes a name and message, correct?) only seems to add chat for the player, not for nearby players. It's possible this is intended, but it might not be. Or I'm doing it wrong, that's a possibility.

parent.add_chat(character.name, "hi");

You could spoof chat of other characters if you gave us access to this though, but a version that would let you do this only using your own name would be nice.

"panic button"

Is there a way to code to have the game immediately town if my hp gets to low? As if i afk and use up all my potions?

Document Geometry

Would it be possible to document the array values contained in G.geometry? e.g. x_lines, y_lines, groups, etc? I don't have a good sense for that these are - thanks!

New Idea: Apothecary NPC

The Apothecary NPC would have several features relating to potions.

  • For starters, one would be able to split a given potion or elixir into smaller vials, each 1/3 of the duration, at the price of 1/9 of the cost of the elixir/potion.
  • A second feature would be that it would be able to 'water down' potions, making 3 vials of the potion with 1/3 the strength. This would be at 1/3 the cost of the potion/elixir.
  • A third feature would be that it can 'concentrate' potions and such, taking 3 of an elixir/potion, and make 1 with the same or less duration, at 1x the cost of the potion/elixir.
  • In addition, middle tier elixirs and such would be able to be bought from it, but for larger prices then the seashells one would need to get them.

UI Requests

It'd be nice to be able to resize the chat window, change the font size, and/or retaining focus on the chat window after submitting a message.

Considering a coding game would warrant quite a bit of discussion of code in-game, maybe formatting styles as well in game?

Multiboxing - specific attempts to de-incentivize or balance?

So while farming in Halloween i noticed a party of 2 players next to me, obviously dual boxing. Guy had a healbot. Even with just another character it seems way way to good for multiboxers in a game where you can have an automatic healbot and automatic farming. If i had a healbot i would be way ahead of where i am now, taking on much harder mobs for better loot/xp. Unless something is done quick anyone who multiboxes will easily get way ahead of anyone else. TO be honest i don't want to play a game that will get dominated by them, and i know most people wouldn't want to either. Im saying this now because reactive instead of proactive changes are going to be much MUCH less effective, especially as time goes on. I really think multiboxing needs to be banned for this game to have much of any future.

I myself after one day of playing this game have amassed roughly 11-13m gold, decent gear, got to level 44, and have gotten 25+ candies/rare candies. I will level much slower, use more gold, and have worse gear compared to any multiboxer even if its only dual. A healbot looks like it requires minimal funding, just some decent + int gear and a lot of MP potions which are easily fund-able.

Back sprite is inconsistent with side sprites when wearing a hat

When you walk sideways you look like so:
изображение
As you can see, no red hood visible on that sprite, but when you turn your back, you see red hood:
изображение
Which is inconsistent with side view and also looks scuffed.

Possible solution would be:
Add to the CX jar effect giving not only hat, but also "back", which contains hair continuation as on side parts.
(Im not pixel artists, just as rough example):
изображение

Name plates

When pressing N to view player names, overlapping/close by players have their plates overlap, making us unable to see where a specific player is, maybe shift nameplate focus where our mouse is focused on?

on_party_request()

Can we get a callback function similar to on_party_invite() but for requests as well? (ie, when someone is already in a party, and you "request" them to join their party, a function such as on_party_invite() should be fired)

Figure out if a player atacks me while afk

Hello everyone, thus far im doing alright in this game, but I was wondering if i could AFK efficiently in the pvp server.
The point is, can I make myself target a player that atacked me instantly/after killing the mob I was on?
What functions besides "get_player(name)" exist for targetting players?
Thank you

Kiting

The ability to walk away from the monster I'm attacking while still attacking Its mostly important for ranged characters as without the use of range you have a lot greater chance of dying while afk then melee

Just dont know how I would go about writing this code for a general use on any character

Minor: Stack Splitting

Currently there are no ways of splitting a stack, for example a stack of potions or candies.
I just wanted to combine my accessories once and I have to take out my entire stack of 116 :(

Party Invite & Accept [Request]

Hey Adventurers!

Like the header states, could we get a party invitation and accept code, ideally upon login. Seems a bit tricky though!

Additional argument for get_nearest_monster();

How about an added argument that will allow players to target a monster based on its name / mtype and call it like 'monster_name' or something.
Like making it an alternative if min_xp and max_att aren't set.

ex.

get_nearest_monster(
{ 
    monster_name : "squigtoad" ,    // this one
    no_target : true ,
    path_check : true 
});

or like an array of monsters or something like this

get_nearest_monster(
{ 
    monster_name : ["squigtoad","bee"] ,    // this one
    no_target : true ,
    path_check : true 
});

I know we can just make one on our own, but hey. :)

New year tree movement bug

If you happened to logoff at place of New Year Tree, and log back in while event is on - you are stuck in place, can't move, and ai "can't find path" to any location.
изображение

How to make the character stop itself?

    parent.stop_character_runner(character.name);

Does not "disengage" the running script.

UPD1: clearInterval(this); does not work.
UPD2: const loop = setInterval( function(){ clearInterval(loop); stops the loop but interface says the runner is still going.
UPD3: if I execute use_skill("toggle_run_code") as a snippet, it starts the runner but does not stop, says: "skill not found".

Heal function

how can i auto heal a specific player or a party member using heal();?

WIP BEEginner Dungeon

This is a WIP issue where I intend to fletch out a beginner level dungeon with bees as the theme, current writing on mobile, so my editing is limited :p

Motivation

  • a low tier dungeon that is simpler with less gear requirements than crypt
  • learn how to make a dungeon and document it for others to make new content

Goals

  • Teach how to use a key to enter a dungeon
  • Tracking instance id
  • joining instance id with multiple characters
  • differences between passive and aggressive mobs perhaps?
  • swarm mechanic from spike?

The development of the bee dungeon is happening in the following branch on my personal fork
main...thmsndk:adventureland:feature/bee_dungeon it contains a few things about devcontainers it should not contain, so once it is ready / in a release candidate state. I'll make a PR from a more clean branch :)

Dungeon Description

Map

image

Core Design

  • Your characters spawns at the entrance
    • it is horizontal to keep the range close to the queen so the queen can be detected easily in parent.entities to keep it simple for new players
  • The entrance is guarded by some initial bees, theese bees are roaming and do not respawn
    • Real honey bee nests have workers guarding the entrance, so I felt this made sense.
  • Queen Bee is located in the middle of the room
    • Spawns 1..2 worker bees every 8s at a random spawn location (S1,S2,S3,S4), a random player that has attacked the queen is chosen to be the target
      • We spawn them at one of the locations so there is a longer travel time from the location they spawn to the player that is targeted to give players time to react to being terrified
    • Spawns 0..1 drone bees every 20s at a position near the queen, a random player that has attacked the queen is chosen to be the target

Tileset

honey_bee_nest tileset by thmsn
image

  • Horizontal hexagon walls
    • Gap / Entrance
    • "Ceiling" tile for the last wall
    • "Top" tile for a wall placed in the middle or at the bottom
  • diagonal hexagon walls
  • Vertical hexagon walls
  • Vertical walls
  • Floor
  • Door / Entrance
  • larvae cells
  • animated honey drops
  • honey flowing out of cell, both static and animated
  • bee statue for entrance?
  • spawn place markings

Balance Points

  • Worker Bees, Drone Bees

    • How often should they spawn
    • How many should spawn?
    • How much health should it have?
    • How much attack?
  • Queen

    • hp? attack?
  • Should spawned minions target the same player, or be spread over more players?

  • Should Worker bees be spawned at the same spawn point or spread over each spawn point?

Mechanics still being considered

  • Worker is a supporter like Elena and heals the queen
  • Worker has a Sting ability that has a high chance to kill the worker bee

Mechanics not being considered for a beginner dungeon

  • respawning of mobs like xmagex
    • queen would lay eggs, after N time a larvae would emerge, after N time a bee would emerge

How to enter

You can craft a key to enter the dungeon.
Recipe is subject to change but should consist of basic mob drops.
N x bee wings + N x slime core + more?

Monsters

Queen Bee

Spawns minion bees at an interval.
The minions could be random or spawned in specific pairs

Minion Bees

  • worker bee that heals the queen?
  • soldier bee that attacks the player?
  • others?

Upon killing the queen a reward is granted.
Should killing minion bees give / drop anything?
What rewards should be dropped from Queen? What about xp and gold?

New Items

TODO describe the new honey items
names,stats and everything is WIP and might change
Snippet to explore existing gear by type

console.dir(
  Object.entries(G.items).reduce((acc, [itemName, item]) => {
    acc[item.type] = acc[item.type] || {};
    acc[item.type][itemName] = Object.fromEntries(
      Object.entries(item).sort(([a], [b]) => a.localeCompare(b))
    );
    return acc;
  }, {}),
  { depth: null }
);

Misc

id name type note
honeykey - key
honey - material
propolis - material
wax - material

Consumeable

id name type note
honeyelixir - elixir a/r piercing + sugarrush
honeypot - pot heals both mp & hp, craftable, drops

Equipable

What is extra_stat?

id name type note
honeybelt - belt A stats belt that gives less stat than a dedicated stat belt? gives stats based on class? stats belts gives 4 stat and 3 on compund
honeycape - cape should be worse than cape? there is no early game cape. cape gives 10 armor, 8 resist, 4 stat base, upgrade = 0.1 stat, 2 armor, 1 resist
honeyorb - orb stat orb? 4, upgrade 3, + ability?
honeyhelmet - helmet worse than heavy, better than basic? 5-25 armor, 6-28 resistance, 1-3 stat. upgrade 1 stat, 0.5-5.5 armor, 0.5-5.5 resist
honeychest - chest 8-42 armor 6-28 resistance 1-3 stat, upgrade 1 stat, 0.5-5.5 armor / resistance
honeypants - pants 7-35 armor, 4-21 resistance, 1-3 stat, upgrade same as chest
honeyboots - shoes 3-14 armor 1-3 stat 5-7 speed, upgrade 1 stat, 0.5 - 5.5. armor, 0.625 - 1.125 speed, 0-2.75 resistance
honeygloves - gloves 6-28 armor 6-28 armor 3-14 resistance 1-3 stat, upgrade same as chest
honeyearring - earring stat earrings, like belt?
honeyering - ring stat rings? like belt? gives 2 stat, compound 2
honeycomb - shield slows attacker? can we debuff, like dreturn?
honeyamulet - amulet hmm? aura? gold?

Offhand for mages?
Quiver for rangers? (honey jar with arrows in it?)
Weapons?
Honey/propolis/wax coated stinger?

Tracktrix Achievements

  • other mobs have small increments of mp /hp for 10/100
    • 10 kills gives 5 hp for bee and goo
    • 100 kills gives 10 hp for crab, goo
  • mp is pretty usefull for all levels of the game
  • xp is another trait that could be useful for any stage of player.
  • maybe even some small incriment of crit like .25 so a newer player will realize how worthwhile it is to seek out
const achievementsByStatAndKills = Object.entries(G.monsters)
  .flatMap(([monsterKey, monster]) =>
    (monster.achievements || []).map(([kills, type, stat, amount]) => ({
      monsterKey,
      kills,
      type,
      stat,
      amount,
    }))
  )
  .reduce((acc, achievement) => {
    acc[achievement.stat] = acc[achievement.stat] || {};
    acc[achievement.stat][achievement.kills] = acc[achievement.stat][achievement.kills] || {};
    acc[achievement.stat][achievement.kills][achievement.monsterKey] = (acc[achievement.stat]?.[achievement.kills]?.[achievement.monsterKey] || 0) + achievement.amount;
    return acc;
  }, {});

console.dir(achievementsByStatAndKills);

Queen (WIP)

"achievements":[
  [1,"stat","hp",5],
  [5,"stat","mp",5],
  [10,"stat","xp",1],
  [50,"stat","armor",5],
  [1000,"stat","gold",1],
  [2500,"stat","crit",0.25],
  # [10000,"stat","attack",2],
  # [100000,"stat","apiercing",2],
  # [1000000,"stat","attack",3],
  # [10000000,"stat","xp",1],
]

Worker (WIP)

"achievements":[
  [25,"stat","hp",5],
  [50,"stat","mp",5],
  [1000,"stat","gold",0.5],
]

Drone (WIP)

"achievements":[
  [25,"stat","hp",5],
  [50,"stat","mp",5],
  [1000,"stat","gold",0.5],
]

Misc old ideas & Notes

We need to determine what the dungeon should teach the new players.

I'd like to teach them to use keys, keys could be craftable from bee drops, so you are not afraid to use them like I was first time I got a crypt key

What mechanics should there be? Should it be combat focused?
Perhaps multiple modes, either 1 chosen at random or multiple phases?

  • one helping bees build their hive by gathering / producing /crafting honey
  • another one defending the hive against wasps?
  • bee queen with waves of worker bees you have to defeat

The modes could also be different tiers of the dungeon that you either unlock or get a new key to upon completion

-Should cutebees spawn in this dungeon?
should bee kills in this dungeon count towards the server spawning a cute bee?

Link to discord issue for real-time discussion
https://discord.com/channels/238332476743745536/1176224676809293844/1176224676809293844

Scenario 1 - Bee Queen with waves

Entering the dungeon

Currently we have two ideas

  • Crafting a key with ordinary bee drops
    • N x Bee Wings + A stinger? or perhaps just the bee wings.
  • No Key required to enter the instance (perhaps some limit on how many instances you can make)
    • Killing the Hive drops a Queen Bee Key that allows you to enter the Queen Bee room

Phase 1

A Hive that spawns bees, this is a swaming mechanic, and you will probably die in the long run if you don't kill the hive.
Upon killing the Hive Phase 2 starts
perhaps you get a reward / drop for killing the Hive

Phase 2

A Queen Bee emerges from the hive or perhaps you can enter the "Queen Room"
Bee Soldier spawns - perhaps you have to kill the soldiers before you can damage the queen, with a larger window than crabx
Defeating the queen bee gives drops. This should be the real reward for completing the dungeon

More phases?

Mechanics learned

  • A swam mechanic, this prepares you for spike
  • Phases - death of hive spawns new mob - prepares you for xmage
  • crabx - invulnerability windows

Axioms notes
https://discord.com/channels/238332476743745536/259894563047473172/1017907139865485382
There is also a thread I'll try and go trough it and copy notes.

Bee Inspiration
https://www.perfectbee.com/learn-about-bees/the-life-of-bees/inside-and-out-of-the-beehive#:~:text=The%20vast%20majority%20of%20the,produce%20little%20flecks%20of%20wax.

https://carolinahoneybees.com/bees-in-a-hive/
https://www.woah.org/en/disease/diseases-of-bees/
https://extension.uga.edu/publications/detail.html?number=B1045&title=honey-bees-and-beekeeping

https://carolinahoneybees.com/bee-anatomy-parts-of-a-bee/
http://www.usfarad.org/honey-bee-biology-basics.html

Code Saving

Currently refreshing the browser sets your code to default.

Not sure if unintended, but it would be nice to have code auto save every few minutes. Maybe have save slots especially for code?

Discord Integration Custom channels

Currently you can configure your bot token in variables.js but the webhooks / channels it goes to are hardcoded to the adventureland discord.

general messages seems to go to #game_events and if the message contains joined Adventure Land it will go to #new_players

At the very minimum you should be able to specify the general events channel, and the new player channel in variables.js or something equivalent.

function discord_call(message) {
if (gameplay == "hardcore" || gameplay == "test") {
return;
}
if (is_sdk) {
return server_log("Discord: " + message);
}
var url = "https://discordapp.com/api/channels/404333059018719233/messages";
if (message.search(" joined Adventure Land") != -1) {
url = "https://discordapp.com/api/channels/839163123499794481/messages";
}
request(
{
url: url,
headers: { Authorization: "Bot " + variables.discord_token },
method: "POST",
json: {
content: message,
},
},
function (err, response, body) {
//console.log(response);
},
);
}

Function to search a item in inventory by name

function searchInv(name)
{
for(var i = 0; i <= 41; i++)
if(character.items[i].name == name){
return i;
}
}

the problem I found was when character.items[] == null the function broke, I think the solution is to set that null as undefined

Use prettier to unify coding style

Before introducing other linters like eslint we should get the formatting in order.

As reasoning I'd like to quote prettier:

What is Prettier?

  • An opinionated code formatter
  • Has few options

Why?

  • No need to discuss style in code review
  • Saves you time and energy

For the options part I'd like it if @kaansoral decides the way his projects should look like:

  • Tab WIdth seems to be 2 - at least where spaces were used instead of tabs (already prettier default)
  • Tabs - the code currently mostly uses tabs, this could be "semi" enforced with this option, but it's neither default nor would I suggest using it
  • Semicolons - the current code uses them, they are the prettier default, no fuss
  • Single Quotes - there are is a 20:1 ration of double quotes to single quote, I suggest using double quotes here (majority & prettier default)
  • Bracket Spacing: true is default and increases readability - though it has not been used currently, so it could be disabled

String Template Literals dont render as expected

I think I may have found a bug!

setInterval(function(){
	const now = Date.now()
	set_message(`NOW: ${now}`)
},1000); 

Will print

Now:

But changing set_message to remove the space

set_message(`NOW:${now}`)

Prints as expected.

Known issue?

Minor: Ping Adjustments

As I'm neither in the US or UK, at times I have ping issues.
However, in "pro" mode, ping only works once instead of a continual ping which would be far more useful than a single ping.
Or you can just do the default of windows ping, a 4 packet ping and returns an average.
My internet is quite dodgy :(

Or you can just send us the server IP and let us ping it ourselves (Probably a bad idea)

A Bug relating to respawning in the arena

When you die in the arena, your X coordinates are set to either null or "main", which results in you receiving a movement penalty on attempting to move, resulting in yet another death, which continues the loop. The only way I've found to exit the loop is use_skill("use_town").

This seems to be prevalent across servers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.