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
@@ -133,9 +133,6 @@
return 0
return 1
/obj/item/mecha_parts/mecha_equipment/proc/handle_movement_action() //Any modules that have special effects or needs when taking a step or floating through space.
return
/obj/item/mecha_parts/mecha_equipment/proc/action(atom/target)
return
@@ -0,0 +1,19 @@
/*
* File containing all the default 'handlers' for Exosuit equipment, hopefully to make all dynX calls extinct.
*/
// Used for impacting (thrown) objects, and damage value.
/obj/item/mecha_parts/mecha_equipment/proc/handle_ranged_contact(var/obj/A, var/inc_damage = 0)
return max(0, inc_damage)
// Used for melee strikes with an object, and a mob, and damage value.
/obj/item/mecha_parts/mecha_equipment/proc/handle_melee_contact(var/obj/item/weapon/W, var/mob/living/user, var/inc_damage = 0)
return max(0, inc_damage)
// Used for projectile impacts from bullet_act.
/obj/item/mecha_parts/mecha_equipment/proc/handle_projectile_contact(var/obj/item/projectile/Proj, var/inc_damage = 0)
return max(0, inc_damage)
// Used for on-movement actions.
/obj/item/mecha_parts/mecha_equipment/proc/handle_movement_action() //Any modules that have special effects or needs when taking a step or floating through space.
return
+26 -5
View File
@@ -11,6 +11,30 @@
equip_type = EQUIP_HULL
/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/get_equip_info()
if(!chassis) return
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[src.name]"
/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/handle_melee_contact(var/obj/item/weapon/W, var/mob/living/user, var/inc_damage = null)
if(!action_checks(user))
return inc_damage
chassis.log_message("Attacked by [W]. Attacker - [user]")
if(prob(chassis.deflect_chance*deflect_coeff))
to_chat(user, "<span class='danger'>\The [W] bounces off \the [chassis]'s armor.</span>")
chassis.log_append_to_last("Armor saved.")
inc_damage = 0
else
chassis.occupant_message("<span class='danger'>\The [user] hits [chassis] with [W].</span>")
user.visible_message("<span class='danger'>\The [user] hits [chassis] with [W].</span>", "<span class='danger'>You hit [src] with [W].</span>")
inc_damage *= damage_coeff
set_ready_state(0)
chassis.use_power(energy_drain)
spawn()
do_after_cooldown()
return max(0, inc_damage)
/*
/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/can_attach(obj/mecha/M as obj)
if(..())
if(!M.proc_res["dynattackby"])
@@ -27,10 +51,6 @@
..()
return
/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/get_equip_info()
if(!chassis) return
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[src.name]"
/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
if(!action_checks(user))
return chassis.dynattackby(W,user)
@@ -46,4 +66,5 @@
set_ready_state(0)
chassis.use_power(energy_drain)
do_after_cooldown()
return
return
*/
@@ -11,6 +11,45 @@
equip_type = EQUIP_HULL
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/handle_projectile_contact(var/obj/item/projectile/Proj, var/inc_damage)
if(istype(Proj, /obj/item/projectile/test))
return inc_damage// Don't care about test projectiles, just what comes after them
if(!action_checks(src))
return inc_damage
if(prob(chassis.deflect_chance*deflect_coeff))
chassis.occupant_message("<span class='notice'>The armor deflects incoming projectile.</span>")
chassis.visible_message("The [chassis.name] armor deflects the projectile.")
chassis.log_append_to_last("Armor saved.")
inc_damage = 0
else
inc_damage *= src.damage_coeff
set_ready_state(0)
chassis.use_power(energy_drain)
spawn()
do_after_cooldown()
return max(0, inc_damage)
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/handle_ranged_contact(var/obj/A, var/inc_damage = 0)
if(!action_checks(A))
return inc_damage
if(prob(chassis.deflect_chance*deflect_coeff))
chassis.occupant_message("<span class='notice'>The [A] bounces off the armor.</span>")
chassis.visible_message("The [A] bounces off \the [chassis]'s armor")
chassis.log_append_to_last("Armor saved.")
inc_damage = 0
else if(istype(A, /obj))
inc_damage *= damage_coeff
set_ready_state(0)
chassis.use_power(energy_drain)
spawn()
do_after_cooldown()
return max(0, inc_damage)
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/get_equip_info()
if(!chassis) return
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[src.name]"
/*
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/can_attach(obj/mecha/M as obj)
if(..())
if(!M.proc_res["dynbulletdamage"] && !M.proc_res["dynhitby"])
@@ -29,10 +68,6 @@
..()
return
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/get_equip_info()
if(!chassis) return
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[src.name]"
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/proc/dynbulletdamage(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/test))
return // Don't care about test projectiles, just what comes after them
@@ -69,4 +104,5 @@
set_ready_state(0)
chassis.use_power(energy_drain)
do_after_cooldown()
return
return
*/
@@ -0,0 +1,34 @@
/*
* A special device used to pick up and equip other exosuit components on the fly, without leaving an Exosuit. Costly.
*/
/obj/item/mecha_parts/mecha_equipment/hardpoint_actuator
name = "hardpoint actuator clamp"
icon_state = "mecha_clamp"
equip_cooldown = 10 SECONDS
energy_drain = 600
equip_type = EQUIP_HULL
origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_POWER = 4, TECH_COMBAT = 1, TECH_MAGNET = 4)
/obj/item/mecha_parts/mecha_equipment/hardpoint_actuator/action(atom/target)
if(!action_checks(target))
return
if(istype(target,/obj/item/mecha_parts/mecha_equipment))
var/obj/item/mecha_parts/mecha_equipment/ME = target
if(ME.can_attach(chassis))
occupant_message("[ME] can be integrated. Stand by.")
if(do_after(chassis.occupant, 3 SECONDS, target))
if(ME.can_attach(chassis) && action_checks(target))
ME.attach(chassis)
occupant_message("[ME] successfully integrated.")
else
occupant_message("[ME] cannot be integrated due to lack of free hardpoints.")
else
occupant_message("[target] is not compatible with any present hardpoints.")
set_ready_state(0)
chassis.use_power(energy_drain)
do_after_cooldown()
return
@@ -0,0 +1,47 @@
/obj/item/mecha_parts/mecha_equipment/tool/powertool/inflatables
name = "inflatable deployment mechanism"
desc = "An exosuit-mounted inflatable barrier deployer. Useful!"
icon_state = "mecha_inflatables"
origin_tech = list(TECH_MATERIAL = 5, TECH_MAGNET = 3)
equip_cooldown = 3
energy_drain = 30
range = MELEE
equip_type = EQUIP_UTILITY
ready_sound = 'sound/effects/spray.ogg'
required_type = list(/obj/mecha/working/ripley)
tooltype = /obj/item/weapon/inflatable_dispenser/robot
var/obj/item/weapon/inflatable_dispenser/my_deployer = null
/obj/item/mecha_parts/mecha_equipment/tool/powertool/inflatables/Initialize()
..()
my_deployer = my_tool
/obj/item/mecha_parts/mecha_equipment/tool/powertool/inflatables/Topic(href, href_list)
..()
if(href_list["toggle_deployable_mode"])
my_deployer.attack_self()
update_chassis_page()
return
/obj/item/mecha_parts/mecha_equipment/tool/powertool/inflatables/get_equip_info()
if(!chassis) return
var/data_return = "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[chassis.selected==src?"<b>":"<a href='?src=\ref[chassis];select_equip=\ref[src]'>"][src.name][chassis.selected==src?"</b>":"</a>"] - <a href='?src=\ref[src];toggle_deployable_mode=1'>Deploy [my_deployer.mode?"Door":"Wall"]</a><br>\
&nbsp; - Doors left: <span style=\"color:#ff0;\">[my_deployer.stored_doors]</span>/[my_deployer.max_doors]<br>\
&nbsp; - Walls left: <span style=\"color:#ff0;\">[my_deployer.stored_walls]</span>/[my_deployer.max_walls]"
return data_return
/obj/item/mecha_parts/mecha_equipment/tool/powertool/inflatables/action(atom/target, params)
if(!action_checks(target))
return
if(istype(target, /turf))
my_deployer.try_deploy_inflatable(target, chassis.occupant)
if(istype(target, /obj/item/inflatable) || istype(target, /obj/structure/inflatable))
my_deployer.pick_up(target, chassis.occupant)
set_ready_state(0)
chassis.use_power(energy_drain)
do_after_cooldown()
return
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/item/mecha_parts/mecha_equipment/tool/passenger
name = "passenger compartment"
desc = "A mountable passenger compartment for exosuits. Rather cramped."
icon_state = "mecha_abooster_ccw"
icon_state = "mecha_passenger"
origin_tech = list(TECH_ENGINEERING = 1, TECH_BIO = 1)
energy_drain = 10
range = MELEE
@@ -38,4 +38,18 @@
desc = "An exosuit-mounted pneumatic prybar."
icon_state = "mecha_crowbar"
tooltype = /obj/item/weapon/tool/crowbar/power
ready_sound = 'sound/mecha/gasdisconnected.ogg'
ready_sound = 'sound/mecha/gasdisconnected.ogg'
/obj/item/mecha_parts/mecha_equipment/tool/powertool/cutter
name = "pneumatic cablecutter"
desc = "An exosuit-mounted pneumatic cablecutter."
icon_state = "mecha_cablecutter"
tooltype = /obj/item/weapon/tool/wirecutters/power
ready_sound = 'sound/mecha/gasdisconnected.ogg'
/obj/item/mecha_parts/mecha_equipment/tool/powertool/screwdriver
name = "pneumatic screwdriver"
desc = "An exosuit-mounted pneumatic screwdriver."
icon_state = "mecha_screwdriver"
tooltype = /obj/item/weapon/tool/screwdriver/power
ready_sound = 'sound/mecha/gasdisconnected.ogg'
@@ -0,0 +1,34 @@
/obj/item/mecha_parts/mecha_equipment/tool/powertool/welding
name = "welding laser"
desc = "An exosuit-mounted welding laser."
icon_state = "mecha_laser-rig"
origin_tech = list(TECH_MATERIAL = 4, TECH_MAGNET = 3, TECH_POWER = 4, TECH_PHORON = 2)
equip_cooldown = 3
energy_drain = 15
range = MELEE
equip_type = EQUIP_UTILITY
ready_sound = 'sound/items/Ratchet.ogg'
required_type = list(/obj/mecha/working/ripley)
tooltype = /obj/item/weapon/weldingtool/electric/mounted/exosuit
/obj/item/mecha_parts/mecha_equipment/tool/powertool/welding/action(var/atom/target)
..()
var/datum/beam/weld_beam = null
if(is_ranged())
var/atom/movable/beam_origin = chassis
weld_beam = beam_origin.Beam(target, icon_state = "solar_beam", time = 0.3 SECONDS)
if(!do_after(chassis.occupant, 0.3 SECONDS, target))
qdel(weld_beam)
/obj/item/mecha_parts/mecha_equipment/tool/powertool/welding/attach(obj/mecha/M as obj)
..()
if(enable_special)
range = MELEE|RANGED
my_tool.reach = 7
else
range = MELEE
my_tool.reach = 1
@@ -15,6 +15,7 @@
equip_type = EQUIP_HULL
/*
/obj/item/mecha_parts/mecha_equipment/shocker/can_attach(obj/mecha/M as obj)
if(..())
if(!M.proc_res["dynattackby"] && !M.proc_res["dynattackhand"] && !M.proc_res["dynattackalien"])
@@ -25,9 +26,11 @@
..()
chassis.proc_res["dynattackby"] = src
return
*/
/obj/item/mecha_parts/mecha_equipment/shocker/proc/dynattackby(obj/item/weapon/W, mob/living/user)
/obj/item/mecha_parts/mecha_equipment/shocker/handle_melee_contact(var/obj/item/weapon/W, var/mob/living/user, var/inc_damage = null)
if(!action_checks(user) || !active)
return
user.electrocute_act(shock_damage, src)
return chassis.dynattackby(W,user)
return inc_damage
+17 -3
View File
@@ -622,7 +622,12 @@
else if(istype(A, /obj))
var/obj/O = A
if(O.throwforce)
src.take_damage(O.throwforce)
var/pass_damage = O.throwforce
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
pass_damage = ME.handle_ranged_contact(A, pass_damage)
src.take_damage(pass_damage)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
return
@@ -652,7 +657,12 @@
var/ignore_threshold
if(istype(Proj, /obj/item/projectile/beam/pulse))
ignore_threshold = 1
src.take_damage(Proj.damage, Proj.check_armour)
var/pass_damage = Proj.damage
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
pass_damage = ME.handle_projectile_contact(Proj, pass_damage)
src.take_damage(pass_damage, Proj.check_armour)
if(prob(25)) spark_system.start()
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),ignore_threshold)
@@ -748,7 +758,11 @@
else
src.occupant_message("<font color='red'><b>[user] hits [src] with [W].</b></font>")
user.visible_message("<font color='red'><b>[user] hits [src] with [W].</b></font>", "<font color='red'><b>You hit [src] with [W].</b></font>")
src.take_damage(W.force,W.damtype)
var/pass_damage = W.force
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
pass_damage = ME.handle_projectile_contact(W, user, pass_damage)
src.take_damage(pass_damage,W.damtype)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
return
@@ -643,6 +643,10 @@
var/obj/item/weapon/rig/suit = H.back
if(istype(suit))
return suit.cell
if(istype(src.loc, /obj/item/mecha_parts/mecha_equipment))
var/obj/item/mecha_parts/mecha_equipment/mounting = src.loc
if(mounting.chassis && mounting.chassis.cell)
return mounting.chassis.cell
return null
/obj/item/weapon/weldingtool/electric/mounted
@@ -651,4 +655,26 @@
/obj/item/weapon/weldingtool/electric/mounted/cyborg
toolspeed = 0.5
/obj/item/weapon/weldingtool/electric/mounted/exosuit
var/obj/item/mecha_parts/mecha_equipment/equip_mount = null
flame_intensity = 1
eye_safety_modifier = 2
always_process = TRUE
/obj/item/weapon/weldingtool/electric/mounted/exosuit/Initialize()
..()
if(istype(loc, /obj/item/mecha_parts/mecha_equipment))
equip_mount = loc
/obj/item/weapon/weldingtool/electric/mounted/exosuit/process()
..()
if(equip_mount && equip_mount.chassis)
var/obj/mecha/M = equip_mount.chassis
if(M.selected == equip_mount && get_fuel())
setWelding(TRUE, M.occupant)
else
setWelding(FALSE, M.occupant)
#undef WELDER_FUEL_BURN_INTERVAL
+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."
@@ -0,0 +1,42 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Mechoid
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Hardpoint Actuator equipment for Exosuits, allowing them (And most effectively, Ripleys) to swap components on the fly, after a short delay."
- rscadd: "Exo Inflatables Deployer, allowing exosuits to pick up and deploy inflatables."
- rscadd: "Exo screwdriver, wirecutters, and welding laser, to help round-out the tool-based equipment types."
- rscadd: "Fire modifiers based on stacks added, to be used by the damage system tweaked above."
- tweak: "Incendiary exo weapons tweaked to conform with fire change."
- tweak: "Ignition effects from weapons changed from the old fire-system to the modifier fire system."
- bugfix: "Shocker now retaliates properly against melee."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 40 KiB

+6 -1
View File
@@ -795,6 +795,7 @@
#include "code\game\mecha\combat\marauder.dm"
#include "code\game\mecha\combat\phazon.dm"
#include "code\game\mecha\equipment\mecha_equipment.dm"
#include "code\game\mecha\equipment\mecha_equipment_dynamicprocs.dm"
#include "code\game\mecha\equipment\tools\armor_melee.dm"
#include "code\game\mecha\equipment\tools\armor_ranged.dm"
#include "code\game\mecha\equipment\tools\cable_layer.dm"
@@ -804,9 +805,12 @@
#include "code\game\mecha\equipment\tools\energy_relay.dm"
#include "code\game\mecha\equipment\tools\extinguisher.dm"
#include "code\game\mecha\equipment\tools\generator.dm"
#include "code\game\mecha\equipment\tools\hardpoint_actuator.dm"
#include "code\game\mecha\equipment\tools\inflatables.dm"
#include "code\game\mecha\equipment\tools\jetpack.dm"
#include "code\game\mecha\equipment\tools\orescanner.dm"
#include "code\game\mecha\equipment\tools\passenger.dm"
#include "code\game\mecha\equipment\tools\powertool.dm"
#include "code\game\mecha\equipment\tools\rcd.dm"
#include "code\game\mecha\equipment\tools\repair_droid.dm"
#include "code\game\mecha\equipment\tools\shield.dm"
@@ -815,8 +819,8 @@
#include "code\game\mecha\equipment\tools\syringe_gun.dm"
#include "code\game\mecha\equipment\tools\teleporter.dm"
#include "code\game\mecha\equipment\tools\tools.dm"
#include "code\game\mecha\equipment\tools\weldinglaser.dm"
#include "code\game\mecha\equipment\tools\wormhole.dm"
#include "code\game\mecha\equipment\tools\wrench.dm"
#include "code\game\mecha\equipment\weapons\honk.dm"
#include "code\game\mecha\equipment\weapons\weapons.dm"
#include "code\game\mecha\equipment\weapons\ballistic\automatic.dm"
@@ -1927,6 +1931,7 @@
#include "code\modules\mob\update_icons.dm"
#include "code\modules\mob\_modifiers\aura.dm"
#include "code\modules\mob\_modifiers\cloning.dm"
#include "code\modules\mob\_modifiers\fire.dm"
#include "code\modules\mob\_modifiers\medical.dm"
#include "code\modules\mob\_modifiers\modifiers.dm"
#include "code\modules\mob\_modifiers\modifiers_misc.dm"