Code Monkey home page Code Monkey logo

wateremblem's People

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

wateremblem's Issues

Dead enemies still a target

After killing an enemy, if I hover over it I can still see it's modal. Also, I can still move -through- the enemy with another player. In the screenshot below, I killed the first enemy using Jaffar and Heath, and then I moved Nino through the dead enemy space.

enemy

After selecting attack, I can target the dead enemy, but I can't actually go into battle with it.

Bug with ending battle early

If the player kills the last attacking enemy (The enemy initiates the attack on the enemy phase, and is the last enemy on the map) and the attacking enemy had a droppable item (and if the map condition is to kill all enemies), the map will fade out before the player can choose what item to discard.

Hook dialog system to map transition.

With map transition now in place, we will need to hook our existing dialog system to the map transition chain. The chain of events should be as follows:

  1. Start game
  2. Transition to map 1
  3. Map 1 pre-battle dialog
  4. Map 1 battle (until objective complete)
  5. Map 1 post-battle dialog
  6. Transition to map 2
  7. Map 2 pre-battle dialog
  8. Map 2 battle (until objective complete)
  9. Map 2 post-battle dialog
  10. Transition to map 3
  11. Map 3 pre-battle dialog
  12. (and so on...)

Create display for map objective

As of now, a player is unable to determine the winning objective for the map. The player would have to play guessing games as to what the objective is (i.e., the player could have waited for 100 turns after defeating all enemies when the real objective was to seize a tile; the player has no way of knowing).

We would like to create some method of informing the player the map's objective such that at the same time, it is not intrusive to the player. As a suggestion, this can be placed at one of the unused corners of the game screen if no unit's movement tiles are displayed. But if a better solution can be found, then implement it that way instead.

Bug with inventory items

Upon trying to implement a new feature, I noticed a bug: trying to place a bow/lance/axe within the player's inventory results in the image below:

screen shot 2014-04-17 at 8 59 10 pm
And here is the code:

// Items
            this.item[0] = ig.game.itemCatalog.sword1;  this.item_uses[0] = this.item[0].uses;
            this.item[1] = ig.game.itemCatalog.item1;   this.item_uses[1] = this.item[1].uses;
            this.item[2] = ig.game.itemCatalog.bow1;  this.item_uses[2] = this.item[2].uses;
            this.item[3] = ig.game.itemCatalog.lance1;  this.item_uses[3] = this.item[3].uses;
            this.item[4] = null; this.item_uses[4] = null;

Trying to place a bow/lance/axe into the player's inventory results in the image being updated, but the name/uses is incorrect, it keeps using a name from the swords list.

This also happens with any other player; I tried replacing the Wyvern Lord's first weapon (which is a sword), and the same thing happens if I give him a lance/axe/bow.

Any idea why this might occur?

Player stats do not reflect changes in terrain

Having a player occupy a terrain tile with bonuses does not actually reflect in the stats. Some work is needed to get this done, as I don't believe we incorporated this into the current system yet.

Implement ranged attack method

A major feature of Fire Emblem is to have ranged attacking, which allows the player to be more strategic when selecting how to advance. While this is not a crucial element to releasing the game, it would open up more variety and allow for more units to be playable.

Clicking enemy during player's turn locks game in menu.

Clicking an enemy unit during the player unit's turn brings up the action menu as if the player unit has moved already when it actually has not moved yet. The major issue is that this menu cannot be escaped by pressing the escape key when it actually should. The only workaround if this scenario occurs is to click on a player unit first (no visuals will happen yet) and then press the escape key.

Unequip button no longer works properly

Choosing to unequip a weapon no longer functions as it should. By attempting to unequip the currently equipped weapon, it will not actually unequip it. When going into battle, it will still show that weapon as being equipped, and the player's stats do not actually revert when trying to unequip said weapon.

Discard button no longer works properly/weird functionality with status screen

If the player decides to discard the first item in their inventory, viewing that unit's status screen will show that their inventory is empty.

Furthermore, if the player discards the first item in their inventory, then tries to tries to trade with the first unit using a second unit, this happens:

screen shot 2015-01-12 at 10 38 11 am

What happened is that I traded (using the second unit) and placed an iron bow in the first unit's first inventory slot. This restores the display of the inventory on the status screen, however all the icons now resemble the iron bow icon.

Pressing escape removes movement grid

Pressing escape to cancel out of menus or in general will remove the display of the movement grid. Ideally, we'd want to once again snap to the active unit, and display their movement range.

Make all character portraits uniform

In the currently dialog for the first map, we can see that some of the character portraits are floating. This is due to differences in character portraits (Some are for the status screen, some are for the dialog and item equipping screens). These will need to be made uniform (ideally, just a single set of images all with the same dimensions).

There might also be a need to create a separate set of flipped images, in case we cannot flip them directly in impact.

Setup player/enemy phase images

Whenever the player/enemy phase begins, it would be nice to display the proper modal. This will give better separation and enhance the player's intuition of gameplay.

End Turn does not always increment current turn counter.

Pressing the End Turn button, although it cycles through all available units on the map (recently fixed from issue #71), the current turn counter does not always increment properly. Instead, End Turn will need to be pressed twice the number of times to reach the desired turn number.

Assume the current turn is at 1.
The 1st time End Turn is pressed, the turn counter will remain at 1.
The 2nd time End Turn is pressed, the turn counter will increment to 2.
The 3rd time End turn is pressed, the turn counter will remain at 2.
The 4th time End Turn is pressed, the turn counter will increment to 3.
The 5th time End Turn is pressed, the turn counter will remain at 3.
The 6th time End Turn is pressed, the turn counter will increment to 4.
(and so on...)

Status screen update

Now that issue #50 has been solved (great job @chessmasterhong), the character status screen needs to be updated. If an enemy is dead, you can still see it's stats by cycling through the units. This is only an enhancement, but would be great to implement.

Customizations to Enemy Spawner

When building maps, there are some things that might be useful to add into the enemy spawner:

  1. Ability to add a key-value pair denoting what item an entity should drop. We currently don't have a way of setting individual items to units that will be dropped upon defeat.
  2. This one is probably higher priority: the ability to forcefully spawn a specific unit. This is useful for spawning bosses for maps.
  3. Is it possible to add in a key-value which denotes which turn a unit should start to move? For maps, it would be bad (and overwhelming) for the player if all the enemy units started to rush towards them at the start of the map. We need some way to control the waves. The only time an enemy unit will override this behavior is if a player moves within their range.

Implement level up screen.

Currently, we lack a visual method to display a player unit's level up and its level up stat bonuses. The objective is to extend the console logs from the experience and level system to provide the player with a screen clearly indicating the bonuses for the unit upon level up.

This enhancement complements the experience progress bar in #68.

Trading items with another player unit does not check if item is a valid equipable item.

Currently, any item can be traded into another player unit's equipment slot (slot 0) without restrictions. This can result in units equipping items that they should not be able to equip. The restriction of unit-specific item type equips was put into place by pull request #67.

Ideally, the objective is to extend the checks implemented in #67 to the trade system.

Below shows an example of a mage unit (right side) equipping a bow when it was specifically coded to only equip tomes. Even weirder is a unit (left side) equipping a consumable item.

capture

Experience progress bar after a battle

After a battle (after all of the animations have run, but before the fade), it would be a great feature to have a progress bar which shows up and indicates the experience gained by the player.

Having this would also pave the way for a visual level up system to be implemented, which is fairly important. While the level up system exists currently, it only outputs to the console, which isn't useful for the player.

This doesn't have high priority, but if a progress bar could be implemented, I can also implement a system which will occur on level up and have a nice display to show what stats are being increased.

Implement credits screen.

It would be nice finishing touch to acknowledge all contributors of this project in the form of a credits screen. After discussion with @DrkSephy, we have come to the conclusion to implement an "upwards-scrolling movie credits style" effect for our credits screen.

The credits screen will be displayed upon game completion (after the last map is finished) or if the player clicks on the "Credits" button on the start screen. After the credits is finished, the game will always return back to the start screen.

End Turn does not end all player unit turns when there are no enemies

Currently, the "End Turn" feature (ends all player unit turns, then switches to the enemy turn) does not work as expected when there are no more enemies.

This can be seen in two different map conditions:

  1. Survive for X amount of turns. Generally, the player will wipe out all enemy units before the turn limit, so this is one case where this bug can be noticed.
  2. Seize the tile objectives. Once again, players would generally wipe out the map before attempting to seize the tile.

Critical Hits Miss

After testing the new critical hit animations, it seems that critical hits can miss. The expected functionality is that whenever a critical hit is triggered, it is a guaranteed hit regardless of the hit percentage of the unit.

Allow dynamic placement of party on map.

Currently, the party spawning position is hardcoded in main.js. The spawning position will remain the same regardless of which map the player is on. This will be a problem when we begin to have multiple maps. The objective is to be able to dynamically place the party in various positions depending on the map, ideally through Weltmeister just like the enemy spawner.

Design actual maps

The game currently has only a single (large) test map. For the release, there should be at least 3 - 5 maps, which will highlight the different map objects (seize the tile, defeat all enemies, survive for several turns).

I'll work on creating these maps and brainstorming enemy placement, so that once director has been implemented, we can insert these maps.

Inventories do not carry over to next map

Receiving items works correctly, however when starting a new map, the player's inventories will revert back to their base inventory. This includes item usage as well.

I am assigning this to @chessmasterhong for the time being, since you probably have a better idea of how the map transition system works than I do at the moment.

Battle summary modal not appearing

When selecting a target to attack, the player hovers over an enemy unit. However, the battle summary modal showing the stats on both sides of the battle do now show up. The culprit is this section of code here:

        // Draw battle summary modal on cursor hover while selecting an enemy to attack
        if(this.battleState === 'attack' && this.units[this.activeUnit] === this.targetedUnit) {
            // console.log("hello");
            if(this.hoveredUnit !== null && this.attackTargets.length > 0) {
                for(var i = 0; i < this.attackTargets.length; i++) {
                    // This if statement is never true        
                    if(this.hoveredUnit === this.attackTargets[i]) {

Play different music per map

Currently, music runs independently from the current map. This means that different maps will play the same music without stopping the music unless the music was set to stop explicitly.

The objective is to be able to assign different music to different maps such that when the map is loaded, the previous map's music will automatically stop and the new map's music will begin. This will require further extension (implemented in commit ae2df9a) of the Director plugin to allow a mapping of a specific music per map.

Viewing the unit stats screen subsequent times using the same active player unit on the same turn locks the game in screen.

During the player unit's turn, if the player views the unit stats screen (hovering over any unit and pressing the SHIFT key) any subsequent time and tries to escape (using the ESCAPE key), the player is unable to leave the screen, leaving the game in an unplayable state. This occurs only when using the same active player unit and on the same turn. If the active player unit changes or is in a new turn, this issue will not take effect.

An example of when this scenario will most likely occur is when a player repeatedly checks the units on the battlefield on the same turn perhaps due to strategical planning (which can happen quite frequently).

The player should be able to enter and leave the unit stats screen as many times as desired provided that the active unit is a player unit.

Displaying stat screen/terrain modal is not intiutive to user

Currently, to display the stat screen, the terrain modal must not be showing. If the player presses escape twice, then they end up seeing the terrain modal (as expected), and otherwise the player can hover over a unit, press shift and display the stat screen. The only problem with this is that to exit out of the stat screen, the player must press escape, which will now display the terrain modal (escape was pressed twice up to this point).

This functionality makes it a bit unintuitive to the player as to when they can do what action, and we'd like to not introduce new buttons for escape specific screens. As such, distinguishing conditions must be placed on when we display either screen.

Enemy phase modal does not display for the proper duration.

As indicated in pull request #81 in Update 3, the enemy phase modal does not appear for the proper duration. Instead, it briefly flashes the "Enemy Phase" modal and disappears. The flow of battle still proceeds as normal.

The "Enemy Phase" modal should display for the same amount of time as the "Player Phase" modal before allowing the enemy unit to begin performing their actions.

Prevent enemy spawner from stacking enemies

Currently, the enemy spawner can create enemies on top of each other, leaving the player with no way to selectively attack them on the first turn. There are ways to circumvent this by smart placement of the spawners, but that wouldn't be an actual solution.

Enemy plays ranged attack animation when attacking from player unit's left tile.

It seems that there are still some remnants of ranged attacking. The below screenshot shows a dracozombie attempting to attack me adjacently:

adjacent

However, the battle scene depicts a ranged combat scene.
ranged

This could be due to some remnants of ranged attacking being left inside of the code. In order to reproduce this, simply load up the first map, and end your turn. Let the enemy attack you, and it should demonstrate the behavior above.

Player units can stack on top of each other.

Currently, player units can stack on top of each other (i.e., two or more player units on one tile) with no notification of invalid movement from the game. In fact, the game even proceeds with displaying the action menu in this scenario.

Ideally, there can only be one unit on each tile upon the unit's turn completion, whether it is a player of enemy unit. In addition, the unit should not be able to perform any action while they are stacked on top of another unit. Currently, there are two suggestions of implementation:

  1. Add a check to see if the destination tile is occupied before moving the current unit to the tile. If the destination tile is occupied, deny the unit's movement to the tile and let them pick another tile to move to. (OR)
  2. Allow the unit free movement (no destination tile check) but instead, remove the action menu display should the current unit stop on top of another unit.

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.