Mecha Balance and Fighter Fixes (#8081)

* Mecha Balance and Fighter Fixes

- Shields are no longer buildable by Robotics
- Fighters are now equipped with components that enable them to go fast
- Fighter step cost is now zero

* Mecha are now repairable

* Code Correction

* Mrowl
This commit is contained in:
Novacat
2021-05-18 02:52:49 -04:00
committed by GitHub
parent b4a2e215dc
commit 55533c05d9
3 changed files with 26 additions and 4 deletions

View File

@@ -14,6 +14,7 @@
initial_icon = ""
step_in = 2 //Fast
step_energy_drain = 0 //These should use fuel instead of energy
health = 400
maxhealth = 400
@@ -36,6 +37,14 @@
max_universal_equip = 1
max_special_equip = 1
starting_components = list(
/obj/item/mecha_parts/component/hull/lightweight,
/obj/item/mecha_parts/component/actuator,
/obj/item/mecha_parts/component/armor,
/obj/item/mecha_parts/component/gas,
/obj/item/mecha_parts/component/electrical
)
/obj/mecha/combat/fighter/Initialize()
. = ..()
ion_trail = new /datum/effect/effect/system/ion_trail_follow()

View File

@@ -1453,16 +1453,27 @@
else if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != I_HURT)
var/obj/item/weapon/weldingtool/WT = W
var/obj/item/mecha_parts/component/hull/HC = internal_components[MECH_HULL]
var/obj/item/mecha_parts/component/armor/AC = internal_components[MECH_ARMOR]
if (WT.remove_fuel(0,user))
if (hasInternalDamage(MECHA_INT_TANK_BREACH))
clearInternalDamage(MECHA_INT_TANK_BREACH)
to_chat(user, "<span class='notice'>You repair the damaged gas tank.</span>")
else
return
if(src.health<initial(src.health))
to_chat(user, "<span class='notice'>You repair some damage to [src.name].</span>")
src.health += min(10, initial(src.health)-src.health)
update_damage_alerts()
if((src.health<initial(src.health)) || (HC.integrity<HC.max_integrity) || (AC.integrity<AC.max_integrity))
if(src.health<initial(src.health))
to_chat(user, "<span class='notice'>You repair some damage to [src.name].</span>")
src.health += min(10, initial(src.health)-src.health)
update_damage_alerts()
else if(HC.integrity<HC.max_integrity)
to_chat(user, "<span class='notice'>You repair some damage to [HC.name].</span>")
HC.integrity += min(10, HC.max_integrity-HC.integrity)
update_damage_alerts()
else if(AC.integrity<AC.max_integrity)
to_chat(user, "<span class='notice'>You repair some damage to [AC.name].</span>")
AC.integrity += min(10, AC.max_integrity-AC.integrity)
update_damage_alerts()
else
to_chat(user, "The [src.name] is at full integrity")
return

View File

@@ -571,6 +571,7 @@
materials = list(DEFAULT_WALL_MATERIAL = 7500, "gold" = 750, "silver" = 1500, MAT_ALUMINIUM = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid
/* These are way too OP to be buildable
/datum/design/item/mecha/combat_shield
name = "linear combat shield"
desc = "Linear shield projector. Deploys a large, familiar, and rectangular shield in one direction at a time."
@@ -586,6 +587,7 @@
req_tech = list(TECH_PHORON = 3, TECH_MAGNET = 6, TECH_ILLEGAL = 4)
materials = list(DEFAULT_WALL_MATERIAL = 8000, "gold" = 2000, "silver" = 3000, "phoron" = 5000, "glass" = 3750)
build_path = /obj/item/mecha_parts/mecha_equipment/omni_shield
*/
/datum/design/item/mecha/crisis_drone
name = "Crisis Drone"