//Stimulant modifier. Applied in varying strengths by hyperzine and caffienated drinks //Increases sprinting speed, walk speed, and stamina regen /datum/modifier/stimulant var/sprint_speed_added = 0 var/regen_added = 0 var/delay_added = 0 /datum/modifier/stimulant/activate() ..() if (isliving(target)) var/mob/living/L = target sprint_speed_added = 0.2 * strength L.sprint_speed_factor += sprint_speed_added regen_added = L.stamina_recovery * 0.3 * strength L.stamina_recovery += regen_added delay_added = -1.5 * strength L.move_delay_mod += delay_added /datum/modifier/stimulant/deactivate() ..() if (isliving(target)) var/mob/living/L = target L.sprint_speed_factor -= sprint_speed_added L.stamina_recovery -= regen_added L.move_delay_mod -= delay_added //Adrenaline, granted by synaptizine and inaprovaline, with different strengths for each //Allows the body to endure more, increasing speed a little, stamina a lot, stamina regen a lot, //and reducing sprint costs //Synaptizine applies it at strength 1, inaprovaline applies it at strength 0.6 //Is applied using strengthen override mode, so synaptizine will replace inaprovaline if both are present /datum/modifier/adrenaline var/speed_added = 0 var/stamina_added = 0 var/cost_added = 0 var/regen_added = 0 /datum/modifier/adrenaline/activate() ..() if (isliving(target)) var/mob/living/L = target speed_added += 0.1*strength L.sprint_speed_factor += speed_added stamina_added = L.max_stamina * strength L.max_stamina += stamina_added cost_added = -0.35 * strength L.sprint_cost_factor += cost_added regen_added = max ((L.stamina_recovery * 0.7 * strength), 5) L.stamina_recovery += regen_added /datum/modifier/adrenaline/deactivate() ..() if (isliving(target)) var/mob/living/L = target L.stamina_recovery -= regen_added L.max_stamina -= stamina_added L.sprint_cost_factor -= cost_added L.sprint_speed_factor -= speed_added /datum/modifier/luminous var/lightrange = 0 /datum/modifier/luminous/activate() ..() if (isliving(target)) var/mob/living/L = target lightrange = strength L.set_light(lightrange, 1, LIGHT_COLOR_FIRE) /datum/modifier/luminous/deactivate() ..() if (isliving(target)) var/mob/living/L = target L.set_light(0) //Doubleburn napalm modifier. Applied by Zo'rane Fire //Increases damage dealt by burn sources /datum/modifier/napalm var/added_burn_mod var/delta /datum/modifier/napalm/activate() ..() delta = strength if (isliving(target)) var/mob/living/L = target added_burn_mod = L.burn_mod * delta - L.burn_mod L.burn_mod += added_burn_mod /datum/modifier/napalm/deactivate() ..() if (isliving(target)) var/mob/living/L = target L.burn_mod -= added_burn_mod /datum/modifier/napalm/custom_validity() if(istype(target, /mob/living)) var/mob/living/L = target if(L.fire_stacks) return 1 return 0 //Berserk Modifier //Causes a hulk like effect /datum/modifier/berserk var/last_shock_stage = 0 /datum/modifier/berserk/activate() ..() if(ishuman(target)) var/mob/living/carbon/human/H = target to_chat(H, "An uncontrollable rage overtakes your thoughts!") H.add_client_color(/datum/client_color/berserk) last_shock_stage = H.shock_stage H.shock_stage = 0 H.SetParalysis(0) H.SetStunned(0) H.SetWeakened(0) H.setHalLoss(0) H.lying = 0 H.update_canmove() /datum/modifier/berserk/process() if(..()) if(ishuman(target)) var/mob/living/carbon/human/H = target H.drowsyness = max(H.drowsyness - 5, 0) H.AdjustParalysis(-1) H.AdjustStunned(-1) H.AdjustWeakened(-1) H.adjustHalLoss(-1) /datum/modifier/berserk/deactivate() ..() if(ishuman(target)) var/mob/living/carbon/human/H = target to_chat(H, "Your rage fades away, your thoughts are clear once more!") H.remove_client_color(/datum/client_color/berserk) H.shock_stage = last_shock_stage