mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-26 14:03:28 -04:00
Improved updateLevelRequiredItems
logic regarding rings, fixes #2740
This fixes the main issue of #2740, allowing the player to play the level if the required ring is equipped on either ring slot.
There's still a small problem: if the player already had a ring equipped in the `right-ring` slot, the Ring of flowers will not display as required due to this [line](0df6da7efa/app/views/play/menu/InventoryModal.coffee (L436)
). This seems to be a different issue though, probably related to the `unequipLevelRestrictedItems` logic.
This commit is contained in:
parent
0df6da7efa
commit
63299c4d80
1 changed files with 13 additions and 3 deletions
|
@ -430,10 +430,20 @@ module.exports = class InventoryModal extends ModalView
|
|||
updateLevelRequiredItems: (equipment) ->
|
||||
return unless requiredGear = @options.level.get 'requiredGear'
|
||||
return unless heroClass = @selectedHero?.get 'heroClass'
|
||||
|
||||
ringSlots = ['left-ring', 'right-ring']
|
||||
|
||||
for slot, items of requiredGear when items.length
|
||||
equipped = equipment[slot]
|
||||
continue if equipped in items
|
||||
continue if equipped # Actually, just let them play if they have equipped anything in that slot (and we haven't unequipped it due to restrictions).
|
||||
if slot in ringSlots
|
||||
validSlots = ringSlots
|
||||
else
|
||||
validSlots = [slot]
|
||||
|
||||
continue if validSlots.some (slot) ->
|
||||
equipped = equipment[slot]
|
||||
equipped in items
|
||||
|
||||
continue if equipment[slot] # Actually, just let them play if they have equipped anything in that slot (and we haven't unequipped it due to restrictions).
|
||||
items = (item for item in items when heroClass in (@items.findWhere(original: item)?.classes ? []))
|
||||
continue unless items.length # If the required items are for another class, then let's not be finicky.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue