aburi6800 / Python-OnyxOfBlack

A retro 3D dungeon role-playing game made in Python.
11 stars 2 forks source link

[ToDo]武器や防具を購入するとき、同じものは買えないようにしたい #106

Closed aburi6800 closed 3 years ago

aburi6800 commented 3 years ago

今は無条件に同じものを購入できるので、それをやめたい。

aburi6800 commented 3 years ago

ただし、薬は同じものを買えないとならないため、対策が必要。 薬のみの特例なので、stateDrugsでオーバーライドするか?

aburi6800 commented 3 years ago

baseFacilityState.py: BaseFacilityStateクラスはEnforceOverridesを継承するように修正。

baseShopState.py: BaseShopStateクラスはEnforceOverridesを継承するように修正。 initメソッドでreturnStateを定義。(初期値はNone) update_buyメソッドでエラー時にreturnStateに現在のStateを設定するように修正。 update_errorメソッドで遷移先にreturnStateを設定するように修正。

stateArmorShop.py: update_equipメソッドをオーバーライド、装備者が同じものを持っているかのチェックを追加。 update_equip_saleParsonメソッドで、self.itemではなく引数のitemを設定するように修正。

stateHelmetShop.py: update_equipメソッドをオーバーライド、装備者が同じものを持っているかのチェックを追加。 update_equip_saleParsonメソッドで、self.itemではなく引数のitemを設定するように修正。

stateShieldShop.py: エラー処理を共通化したため、クラス変数STATE_NOEQUIPを削除。 STATE_NOEQUIPを削除したため、update_executeメソッドのオーバーライド、update_noequipメソッドを削除。 update_equipメソッドで、両手持ち武器を持っている場合、同じ装備を持っていた場合のエラー処理を共通化。 update_equip_saleParsonメソッドで、self.itemではなく引数のitemを設定するように修正。 STATE_NOEQUIPを削除したため、drawメソッドのオーバーライド、draw_noequipメソッドを削除。

stateWeaponShop.py: update_equipメソッドで、同じ装備を持っていた場合、盾を持っているときに両手持ち武器を装備しようとした場合のエラー処理を共通化。 update_equip_saleParsonメソッドで、self.itemではなく引数のitemを設定するように修正。