Add logic for transcending weapons
This commit is contained in:
parent
86ea169319
commit
8f28e34217
1 changed files with 36 additions and 4 deletions
|
|
@ -73,18 +73,50 @@ module Api
|
|||
|
||||
def update_uncap_level
|
||||
weapon = GridWeapon.find(weapon_params[:id])
|
||||
object = weapon.weapon
|
||||
max_uncap_level = max_uncap_level(object)
|
||||
|
||||
render_unauthorized_response if current_user && (weapon.party.user != current_user)
|
||||
|
||||
weapon.uncap_level = weapon_params[:uncap_level]
|
||||
return unless weapon.save!
|
||||
greater_than_max_uncap = weapon_params[:uncap_level].to_i > max_uncap_level
|
||||
can_be_transcended = object.transcendence && weapon_params[:transcendence_step] && weapon_params[:transcendence_step]&.to_i&.positive?
|
||||
|
||||
render json: GridWeaponBlueprint.render(weapon, view: :nested, root: :grid_weapon),
|
||||
status: :created
|
||||
uncap_level = if greater_than_max_uncap || can_be_transcended
|
||||
max_uncap_level
|
||||
else
|
||||
weapon_params[:uncap_level]
|
||||
end
|
||||
|
||||
transcendence_step = if object.transcendence && weapon_params[:transcendence_step]
|
||||
weapon_params[:transcendence_step]
|
||||
else
|
||||
0
|
||||
end
|
||||
|
||||
weapon.update!(
|
||||
uncap_level: uncap_level,
|
||||
transcendence_step: transcendence_step
|
||||
)
|
||||
|
||||
return unless weapon.persisted?
|
||||
|
||||
render json: GridWeaponBlueprint.render(weapon, view: :nested, root: :grid_weapon)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def max_uncap_level(weapon)
|
||||
if weapon.flb && !weapon.ulb && !weapon.transcendence
|
||||
4
|
||||
elsif weapon.ulb && !weapon.transcendence
|
||||
5
|
||||
elsif weapon.transcendence
|
||||
6
|
||||
else
|
||||
3
|
||||
end
|
||||
end
|
||||
|
||||
def check_weapon_compatibility
|
||||
return if compatible_with_position?(incoming_weapon, weapon_params[:position])
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue