peeves.
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
id_arg_index = 3
|
id_arg_index = 3
|
||||||
var/max_charges = 3
|
var/max_charges = 3
|
||||||
var/recharge_delay = 20 SECONDS //How long after we've been shot before we can start recharging.
|
var/recharge_delay = 20 SECONDS //How long after we've been shot before we can start recharging.
|
||||||
var/recharge_rate = 1 //How quickly the shield recharges once it starts charging. Can be a decimal.
|
var/recharge_rate = 1 //How quickly the shield recharges once it starts charging. Can be a decimal. set to zero to disable.
|
||||||
var/accepted_slots
|
var/accepted_slots
|
||||||
var/shield_state = "shield-old" //the state of the shield overlay.
|
var/shield_state = "shield-old" //the state of the shield overlay.
|
||||||
var/broken_state //null
|
var/broken_state //null
|
||||||
@@ -85,13 +85,13 @@
|
|||||||
var/atom/movable/A = i
|
var/atom/movable/A = i
|
||||||
recharge(A, recharge_rate, checked)
|
recharge(A, recharge_rate, checked)
|
||||||
|
|
||||||
/datum/element/shielded/proc/recharge(atom/movable/A, amount, list/checked = list())
|
/datum/element/shielded/proc/recharge(atom/movable/A, amount, list/checked = list(), forced = FALSE)
|
||||||
var/old_charges = charges_per_atom[A]
|
var/old_charges = charges_per_atom[A]
|
||||||
if(old_charges >= max_charges || world.time < last_use_per_atom[A])
|
if(old_charges >= max_charges || (!forced && world.time < last_use_per_atom[A]))
|
||||||
return
|
return
|
||||||
var/new_charges = min(old_charges + recharge_rate, max_charges)
|
var/new_charges = CLAMP(old_charges + recharge_rate, 0, max_charges)
|
||||||
charges_per_atom[A] = new_charges
|
charges_per_atom[A] = new_charges
|
||||||
if(new_charges % 1)
|
if(round(old_charges) >= round(new_charges)) //only send outputs if it effectively gained at least one charge
|
||||||
return
|
return
|
||||||
var/mob/living/L
|
var/mob/living/L
|
||||||
var/skip_in = FALSE
|
var/skip_in = FALSE
|
||||||
|
|||||||
@@ -239,6 +239,6 @@
|
|||||||
to_chat(user, "<span class='warning'>The rune can only be used on battlemage armour!</span>")
|
to_chat(user, "<span class='warning'>The rune can only be used on battlemage armour!</span>")
|
||||||
return
|
return
|
||||||
var/datum/element/shielded/S = SSdcs.GetElement(list(/datum/element/shielded, 0, W.max_charges, W.recharge_delay, W.recharge_rate, ITEM_SLOT_OCLOTHING, W.shield_state))
|
var/datum/element/shielded/S = SSdcs.GetElement(list(/datum/element/shielded, 0, W.max_charges, W.recharge_delay, W.recharge_rate, ITEM_SLOT_OCLOTHING, W.shield_state))
|
||||||
S.recharge(W, 8)
|
S.recharge(W, 8, forced = TRUE)
|
||||||
to_chat(user, "<span class='notice'>You charge \the [W]. It can now absorb [S.charges_per_atom[W]] hits.</span>")
|
to_chat(user, "<span class='notice'>You charge \the [W]. It can now absorb [S.charges_per_atom[W]] hits.</span>")
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
Reference in New Issue
Block a user