Exosuit Expansion: Return of the Ripley (#6767)

* Expands further upon Exosuits.

* FixFix Inflatable Deployer

* Changelog, fix oversights.

* Burst.

* Default 0
This commit is contained in:
Mechoid
2020-03-07 21:51:50 -08:00
committed by GitHub
parent 02f97a116e
commit 51fd39f84a
21 changed files with 399 additions and 47 deletions
+36
View File
@@ -0,0 +1,36 @@
// Ignition, but confined to the modifier system.
// This makes it more predictable and thus, easier to balance.
/datum/modifier/fire
name = "on fire"
desc = "You are on fire! You will be harmed until the fire goes out or you extinguish it with water."
mob_overlay_state = "on_fire"
on_created_text = "<span class='danger'>You burst into flames!</span>"
on_expired_text = "<span class='warning'>The fire starts to fade.</span>"
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
var/damage_per_tick = 5
/datum/modifier/fire/intense
mob_overlay_state = "on_fire_intense"
damage_per_tick = 10
/datum/modifier/fire/tick()
holder.inflict_heat_damage(damage_per_tick)
/*
* Modifier used by projectiles, like the flamethrower, that rely heavily on fire_stacks to persist.
*/
/datum/modifier/fire/stack_managed/tick()
..()
if(!holder.fire_stacks || holder.fire_stacks < 0)
if(prob(10))
expire()
else if(holder.fire_stacks > 0)
holder.fire_stacks -= 1
/datum/modifier/fire/stack_managed/intense
mob_overlay_state = "on_fire_intense"
damage_per_tick = 10
@@ -224,28 +224,6 @@ the artifact triggers the rage.
accuracy_dispersion = 2 // A combination of fear and immense pain or damage reults in a twitching firing arm. Flee.
// Ignition, but confined to the modifier system.
// This makes it more predictable and thus, easier to balance.
/datum/modifier/fire
name = "on fire"
desc = "You are on fire! You will be harmed until the fire goes out or you extinguish it with water."
mob_overlay_state = "on_fire"
on_created_text = "<span class='danger'>You combust into flames!</span>"
on_expired_text = "<span class='warning'>The fire starts to fade.</span>"
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
var/damage_per_tick = 5
/datum/modifier/fire/intense
mob_overlay_state = "on_fire_intense"
damage_per_tick = 10
/datum/modifier/fire/tick()
holder.inflict_heat_damage(damage_per_tick)
// Applied when near something very cold.
// Reduces mobility, attack speed.
/datum/modifier/chilled
+5 -1
View File
@@ -109,5 +109,9 @@
if(drowsy) apply_effect(drowsy, DROWSY, blocked)
if(agony) apply_effect(agony, AGONY, blocked)
if(flammable) adjust_fire_stacks(flammable)
if(ignite) IgniteMob()
if(ignite)
if(ignite >= 3)
add_modifier(/datum/modifier/fire/stack_managed/intense, 60 SECONDS)
else
add_modifier(/datum/modifier/fire/stack_managed, 45 * ignite SECONDS)
return 1
+1 -1
View File
@@ -104,7 +104,7 @@
var/projectile_type = /obj/item/projectile
var/penetrating = 0 //If greater than zero, the projectile will pass through dense objects as specified by on_penetrate()
//Effects
var/incendiary = 0 //1 for ignite on hit, 2 for trail of fire. 3 maybe later for burst of fire around the impact point. - Mech
var/incendiary = 0 //1 for ignite on hit, 2 for trail of fire. 3 for intense fire. - Mech
var/flammability = 0 //Amount of fire stacks to add for the above.
var/combustion = TRUE //Does this set off flammable objects on fire/hit?
var/stun = 0
@@ -245,7 +245,7 @@
icon_state = "bullet_alt"
damage = 15
damage_type = BURN
incendiary = 1
incendiary = 0.5
flammability = 2
/obj/item/projectile/bullet/incendiary/flamethrower
@@ -261,7 +261,9 @@
vacuum_traversal = 0
/obj/item/projectile/bullet/incendiary/flamethrower/large
damage = 15
damage = 5
incendiary = 3
flammability = 2
range = 6
/* Practice rounds and blanks */
+40
View File
@@ -680,6 +680,46 @@
materials = list(DEFAULT_WALL_MATERIAL = 4000, "osmium" = 3000, "glass" = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool/prybar
/datum/design/item/mecha/powercutters
name = "hydraulic cable cutter"
desc = "A large, hydraulic cablecutter."
id = "mech_wirecutter"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "osmium" = 3000, "glass" = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool/cutter
/datum/design/item/mecha/powerscrewdriver
name = "hydraulic screwdriver"
desc = "A large, hydraulic screwdriver."
id = "mech_screwdriver"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "osmium" = 3000, "glass" = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool/screwdriver
/datum/design/item/mecha/powerwelder
name = "welding laser"
desc = "A large welding laser."
id = "mech_welder"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 4000, MAT_PHORON = 3000, "glass" = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool/welding
/datum/design/item/mecha/inflatables
name = "inflatables deployer"
desc = "A large pneumatic inflatable deployer."
id = "mech_inflatables"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 2000, MAT_PLASTIC = 4000, "glass" = 1000)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/powertool/inflatables
/datum/design/item/mecha/hardpoint_clamp
name = "hardpoint actuator"
desc = "A complex device used to commandeer equipment from the ground."
id = "mech_hardpoint_clamp"
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_POWER = 5, TECH_COMBAT = 2, TECH_MAGNET = 4)
materials = list(MAT_PLASTEEL = 2500, MAT_PLASTIC = 3000, MAT_OSMIUM = 1500, MAT_SILVER = 2000)
build_path = /obj/item/mecha_parts/mecha_equipment/hardpoint_actuator
/datum/design/item/mecha/generator_nuclear
name = "Nuclear Reactor"
desc = "Exosuit-held nuclear reactor. Converts uranium and everyone's health to energy."