首页 > > 详细

代写program编程、辅导Overgrown Sanctuary

REQ1: The Overgrown Sanctuary
After successfully defeating Abxervyer, The Forest Watcher in the Ancient Woods, the
player notices that a new gate is now visible. Unlocking the gate with the old key, the
player finds themselves yet in another area, The Overgrown Sanctuary.
A sample Overgrown Sanctuary map
The Overgrown Sanctuary must be implemented as a new map (separate from the maps that we have
created thus far). The player still needs to unlock a gate and go through it to be able to move to the
new map.
Make sure to add another Gate in The Overgrown Sanctuary map to go back to the Abxervyer’s map.
You can assume that this is a separate gate that the player also needs to unlock.
If you remember, in the Assignment 2 specification, we mentioned that once the boss is
defeated, the location where the boss last stood turns into a gate, which leads the
player back to the Ancient Woods. Now, refactor the implementation so that this gate
leads to two destinations: back to the Ancient Woods and The Overgrown Sanctuary.
You may assume that future gates may also have multiple destinations.
Since the implementation of the gate needs to be modified, you need to include your design in the
UML class diagram for this requirement.
In the new area, the player notices familiar structures, including graveyards, huts and
bushes.
From the graveyard, an old foe, the Hollow Soldier, makes another appearance and
starts attacking the player.
You can re-use the implementation of Hollow Soldier from Assignment 1 & 2 (relating to runes) with
the exact same specifications, such as they cannot follow the player, they have 200 hit points, and so
on.
A new humanoid creature emerges from the huts, which is yet another enemy that the
player has to fight against, known as the “Eldentree Guardian” (represented by “e”). The
huts can spawn this enemy with a 20% chance at each turn. They have 250 hitpoints
and can attack the player with their limbs, dealing 50 damage with 80% accuracy. Once
defeated, they have a 25% chance of dropping a healing vial and a 15% chance of
dropping a refreshing flask. They also drop 250 runes when defeated. Additionally, they
can wander around if the player is not nearby or follow and attack the player if the
player is nearby. Finally, they can walk around in the Void with no consequences.
From the bushes, a “Living Branch” (represented by “?”) appears. The bushes can spawn
this enemy with a 90% chance at each turn. They have 75 hitpoints and deal 250
damage with 90% accuracy. Once defeated, they have a 50% chance of dropping a
Bloodberry. They also drop 500 runes when defeated. They cannot wander around and
follow the player. However, they can attack the player if the player is nearby. If they are
spawned on top of the Void, they cannot be damaged by the Void since they are immune.
Similar to previous Assignments, the new enemies cannot be spawned on or enter
floors and walls.
You may want to consider the following points in the design rationale:
- How many classes would you need to create for this requirement if you used the Assignment 1
sample solution?
- Do they contain some code duplications?
- Can you think of a potential design alternative? What would be the cons of the alternative design?
Which design did you end up using?
REQ2: The Blacksmith
Please note that the following actor will be added from the start of the game, not only after the player
enters The Overgrown Sanctuary.
Back in the building in the Abandoned Village, the player hears the rhythmic sound of a
hammer pounding against metal. Following the sound, the player discovers a
blacksmith (represented by “B”) working in the dark. Approaching the blacksmith allows
the player to upgrade their items and weapons.
You can assume that the blacksmith does not move around (that is, they will only stay at one spot in
the building).
You can put the blacksmith in the same building where the player first spawns.
When the blacksmith is nearby, the player can upgrade the following items and
weapons from their inventory:
• Each healing vial can be upgraded for 250 runes each. When consuming an
upgraded healing vial, the player’s health will be increased by 80% of their
maximum health
• Each refreshing flask can be upgraded for 175 runes each. When consuming an
upgraded refreshing flask, the player’s stamina will be increased by 100% of
their maximum stamina.
• Broadsword can be upgraded for 1000 runes. Each upgrade increases the
weapon’s damage by 10 points (not increasing the weapon’s damage multiplier).
To avoid making this weapon too powerful, the additional damage points from
the upgrades are not affected by the damage multiplier. That is, only the initial
110 damage points of the broadsword will be multiplied by the damage
multiplier, while the damage points obtained from performing the upgrades will
simply be added on top of the multiplied damage points. So, if the player uses
the focus skill on the broadsword that has been upgraded once, then the final
damage points will be 131, which is obtained from (110 * 1.1) + 10
• Great Knife can be upgraded for 2000 runes. Each upgrade increases the
weapon’s hit rate by 1 per cent.
• Giant hammer cannot be upgraded.
The player cannot sell any items to the blacksmith, and the player cannot attack the
blacksmith.
Update (9/10/2023):
Healing Vial and Refreshing Flask can only be upgraded once. Once Healing Vial or
Refreshing Flask have been upgraded, the player should not get an option to upgrade them.
On the other hand, Broadsword and Great Knife can be upgraded multiple times.
REQ3: Conversation (Episode I)
Please note that this functionality will be active from the start of the game, not only after the player
enters The Overgrown Sanctuary.
As the player awaits their weapons and items upgrades to complete, the blacksmith
decides to share their story and experience on the land of the lords with the player.
When the blacksmith is nearby, the player should be given the option to listen to the
monologue of the blacksmith. What the blacksmith says will be chosen randomly from
the following list of monologue options below. Note that some options can only be
performed when certain conditions are met.
The blacksmith’s monologue options:
• I used to be an adventurer like you, but then …. Nevermind, let’s get back to
smithing.
• It’s dangerous to go alone. Take my creation with you on your adventure!
• Ah, it’s you. Let’s get back to make your weapons stronger.
• If the player hasn’t defeated Abxervyer: Beyond the burial ground, you’ll
come across the ancient woods ruled by Abxervyer. Use my creation to slay
them and proceed further!
• If the player holds a great knife: Hey now, that’s a weapon from a foreign land
that I have not seen for so long. I can upgrade it for you if you wish.
• If Abxervyer has been defeated: Somebody once told me that a sacred tree
rules the land beyond the ancient woods until this day.
For example, if the player hasn’t defeated Abxervyer, hasn’t purchased a Great Knife
and chooses to talk to the blacksmith, possible monologue options are 1, 2, 3, and 4.
Once they buy a great knife before defeating Abxervyer, option 5 will be added to the
pool of options. Once they defeat Abxervyer, option 4 will be removed, while option 6
will be added to the list of options.
REQ4: Conversation (Episode II)
This functionality is a continuation of REQ 3
Additionally, the player should be able to listen to the monologue of the isolated
traveller found in the Ancient Woods (see Assignment 2 REQ 3). Similarly, what the
traveller says will be one option from the following list of options, chosen at random.
Some monologue options can only be performed when certain conditions are met.
Isolated traveller’s monologue options:
• Of course, I will never give you up, valuable customer!
• I promise I will never let you down with the quality of the items that I sell.
• You can always find me here. I'm never gonna run around and desert you, dear
customer!
• I'm never gonna make you cry with unfair prices.
• Trust is essential in this business. I promise I’m never gonna say goodbye to a
valuable customer like you.
• Don't worry, I’m never gonna tell a lie and hurt you.
• If the player holds a Giant Hammer: Ooh, that’s a fascinating weapon you got
there. I will pay a good price for it. You wouldn't get this price from any other
guy.
• If the player hasn’t defeated Abxervyer: You know the rules of this world, and
so do I. Each area is ruled by a lord. Defeat the lord of this area, Abxervyer, and
you may proceed to the next area.
• Once the player defeats Abxervyer & they still hold the giant hammer:
Congratulations on defeating the lord of this area. I noticed you still hold on to
that hammer. Why don’t you sell it to me? We've known each other for so long. I
can tell you probably don’t need that weapon any longer.
REQ5: A Dream?
Please note that starting from this requirement, whenever and wherever the player dies, the
functionality specified below will occur. In other words, this functionality will be active from the start of
the game, not only after the player enters The Overgrown Sanctuary.
During the battle, the player makes a small mistake and gets knocked out unconscious
by an enemy.
The player suddenly awakens right back in the building in the Abandoned Village where
their journey starts, realising that everything so far was all just a dream - or is it?
The Assignment 1 specification mentions that if the player dies due to any causes, the
game ends, and a “YOU DIED” message is displayed. In this requirement, you should
refactor the implementation as follows:
When the player dies, they will be respawned right back where they started their
journey, which is in the building in the middle of the Abandoned Village (see
Assignment 1 specification).
The maximum values of the player’s attributes will be kept as what it was before the
player dies, while the value of the attributes will be reset to full. For instance, the player
spawns with (150/150) hitpoints. Then, they consumed a bloodberry, which increased
their maximum health to 155. Once they respawned, their hitpoint should be (155/155)
instead of (150/150). This also applies to their other attributes, such as stamina.
The player should still keep every item that they carry in their inventory. For example, if
in the previous run of the game, the player picks up the broadsword, healing vials and
runes, they get to keep all of them when they respawn.
However, the runes in the player’s wallet (not in their inventory) will be reset back to 0.
These runes should be dropped in the last location where the player last stood. For
example, if the player carries 5 runes items in their inventory and has a 5000 runes
balance in their wallet, when they respawn, they get to keep the 5 runes items, but
their balance will be reset to 0. In the player’s last location, a new runes item will be
dropped containing the 5000 runes balance.
For simplicity, even if the runes balance in the player’s wallet is 0, you can still drop it
on the ground with 0 amount.
Don’t worry if the player dies due to stepping into the Void. The runes can still be dropped in the
location where the player last stood (the void). It is simply not recoverable. Optionally, you could drop
the runes at the location before the player enters the void. However, since this only improves the
gameplay, it will not be considered when marking.
All spawned enemies (not including bosses) will be removed from the map.
For bosses, their health will be reset to full if they have not been defeated.
Unlocked gates will be locked again.
All runes dropped in previous turns that the player did not pick up will also be wiped
from the map. This includes all runes dropped by enemies and the player. For instance,
in the previous turn, the player dies while carrying X amount of runes, the player’s
wallet balance will be reset to 0, and the X amount of runes are dropped in the last
location where the player stood. However, before picking up the X amount of runes
previously dropped, the player dies again. Then, the X amount of runes will be wiped
from the game, as they were not picked up by the player.

联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!