mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-09 22:26:23 +01:00
Merge pull request #5085 from VOREStation/upstream-merge-6026
[MIRROR] Precursotech Janus
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
max_universal_equip = 3
|
||||
max_special_equip = 4
|
||||
|
||||
/obj/mecha/combat/phazon/New()
|
||||
/obj/mecha/combat/phazon/equipped/New()
|
||||
..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tool/rcd
|
||||
ME.attach(src)
|
||||
@@ -40,7 +40,7 @@
|
||||
spawn()
|
||||
if(can_move)
|
||||
can_move = 0
|
||||
flick("phazon-phase", src)
|
||||
flick("[initial_icon]-phase", src)
|
||||
src.loc = get_step(src,src.dir)
|
||||
src.use_power(phasing_energy_drain)
|
||||
sleep(step_in*3)
|
||||
@@ -63,6 +63,10 @@
|
||||
set popup_menu = 0
|
||||
if(usr!=src.occupant)
|
||||
return
|
||||
|
||||
query_damtype()
|
||||
|
||||
/obj/mecha/combat/phazon/proc/query_damtype()
|
||||
var/new_damtype = alert(src.occupant,"Melee Damage Type",null,"Brute","Fire","Toxic")
|
||||
switch(new_damtype)
|
||||
if("Brute")
|
||||
@@ -94,4 +98,77 @@
|
||||
phasing = !phasing
|
||||
send_byjax(src.occupant,"exosuit.browser","phasing_command","[phasing?"Dis":"En"]able phasing")
|
||||
src.occupant_message("<font color=\"[phasing?"#00f\">En":"#f00\">Dis"]abled phasing.</font>")
|
||||
return
|
||||
return
|
||||
|
||||
/obj/mecha/combat/phazon/janus
|
||||
name = "Phazon Prototype Janus Class"
|
||||
desc = "An exosuit which a more crude civilization such as yours might describe as WTF?."
|
||||
description_fluff = "An incredibly high-tech exosuit constructed out of salvaged alien and cutting-edge modern technology.\
|
||||
This machine, theoretically, is capable of travelling through time, however due to the strange nature of its miniaturized \
|
||||
supermatter-fueled bluespace drive, it is uncertain how this ability manifests."
|
||||
icon_state = "janus"
|
||||
initial_icon = "janus"
|
||||
step_in = 1
|
||||
dir_in = 1 //Facing North.
|
||||
step_energy_drain = 3
|
||||
health = 350
|
||||
maxhealth = 350
|
||||
deflect_chance = 30
|
||||
damage_absorption = list("brute"=0.6,"fire"=0.7,"bullet"=0.7,"laser"=0.9,"energy"=0.7,"bomb"=0.5)
|
||||
max_temperature = 10000
|
||||
infra_luminosity = 3
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/janus
|
||||
internal_damage_threshold = 25
|
||||
force = 20
|
||||
phasing = FALSE
|
||||
phasing_energy_drain = 300
|
||||
|
||||
max_hull_equip = 2
|
||||
max_weapon_equip = 1
|
||||
max_utility_equip = 2
|
||||
max_universal_equip = 2
|
||||
max_special_equip = 2
|
||||
|
||||
/obj/mecha/combat/phazon/janus/take_damage(amount, type="brute")
|
||||
..()
|
||||
if(phasing)
|
||||
phasing = FALSE
|
||||
radiation_repository.radiate(get_turf(src), 30)
|
||||
log_append_to_last("WARNING: BLUESPACE DRIVE INSTABILITY DETECTED. DISABLING DRIVE.",1)
|
||||
visible_message("<span class='alien'>The [src.name] appears to flicker, before its silhouette stabilizes!</span>")
|
||||
return
|
||||
|
||||
/obj/mecha/combat/phazon/janus/dynbulletdamage(var/obj/item/projectile/Proj)
|
||||
if((Proj.damage && !Proj.nodamage) && !istype(Proj, /obj/item/projectile/beam) && prob(max(1, 33 - round(Proj.damage / 4))))
|
||||
src.occupant_message("<span class='alien'>The armor absorbs the incoming projectile's force, negating it!</span>")
|
||||
src.visible_message("<span class='alien'>The [src.name] absorbs the incoming projectile's force, negating it!</span>")
|
||||
src.log_append_to_last("Armor negated.")
|
||||
return
|
||||
else if((Proj.damage && !Proj.nodamage) && istype(Proj, /obj/item/projectile/beam) && prob(max(1, (50 - round((Proj.damage / 2) * damage_absorption["laser"])) * (1 - (Proj.armor_penetration / 100))))) // Base 50% chance to deflect a beam,lowered by half the beam's damage scaled to laser absorption, then multiplied by the remaining percent of non-penetrated armor, with a minimum chance of 1%.
|
||||
src.occupant_message("<span class='alien'>The armor reflects the incoming beam, negating it!</span>")
|
||||
src.visible_message("<span class='alien'>The [src.name] reflects the incoming beam, negating it!</span>")
|
||||
src.log_append_to_last("Armor reflected.")
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/mecha/combat/phazon/janus/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(prob(max(1, (50 - round((W.force / 2) * damage_absorption["brute"])) * (1 - (W.armor_penetration / 100)))))
|
||||
src.occupant_message("<span class='alien'>The armor absorbs the incoming attack's force, negating it!</span>")
|
||||
src.visible_message("<span class='alien'>The [src.name] absorbs the incoming attack's force, negating it!</span>")
|
||||
src.log_append_to_last("Armor absorbed.")
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/mecha/combat/phazon/janus/query_damtype()
|
||||
var/new_damtype = alert(src.occupant,"Gauntlet Phase Emitter Mode",null,"Force","Energy","Stun")
|
||||
switch(new_damtype)
|
||||
if("Force")
|
||||
damtype = "brute"
|
||||
if("Energy")
|
||||
damtype = "fire"
|
||||
if("Stun")
|
||||
damtype = "halloss"
|
||||
src.occupant_message("Melee damage type switched to [new_damtype]")
|
||||
return
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//DO NOT ADD MECHA PARTS TO THE GAME WITH THE DEFAULT "SPRITE ME" SPRITE!
|
||||
//I'm annoyed I even have to tell you this! SPRITE FIRST, then commit.
|
||||
#define EQUIP_HULL 1
|
||||
#define EQUIP_WEAPON 2
|
||||
#define EQUIP_UTILITY 3
|
||||
#define EQUIP_SPECIAL 4
|
||||
#define EQUIP_HULL "hull"
|
||||
#define EQUIP_WEAPON "weapon"
|
||||
#define EQUIP_UTILITY "utility"
|
||||
#define EQUIP_SPECIAL "core"
|
||||
//VOREStation Addition begin: MICROMECHS
|
||||
#define EQUIP_MICRO_UTILITY 5
|
||||
#define EQUIP_MICRO_WEAPON 6
|
||||
#define EQUIP_MICRO_UTILITY "micro_utility"
|
||||
#define EQUIP_MICRO_WEAPON "micro_weapon"
|
||||
//VOREStation Addition end: MICROMECHS
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment
|
||||
@@ -35,6 +35,9 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>\The [src] will fill [equip_type?"a [equip_type]":"any"] slot.</span>")
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/New()
|
||||
..()
|
||||
|
||||
@@ -1301,4 +1301,570 @@
|
||||
return 1
|
||||
|
||||
/datum/construction/mecha/phazon_chassis/action(obj/item/I,mob/user as mob)
|
||||
return check_all_steps(I,user)
|
||||
return check_all_steps(I,user)
|
||||
|
||||
/datum/construction/mecha/phazon_chassis/spawn_result()
|
||||
var/obj/item/mecha_parts/chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/phazon(const_holder)
|
||||
const_holder.icon = 'icons/mecha/mech_construction.dmi'
|
||||
const_holder.icon_state = "phazon0"
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/datum/construction/reversible/mecha/phazon
|
||||
result = "/obj/mecha/combat/phazon"
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="External armor is wrenched."),
|
||||
//2
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="External armor is installed."),
|
||||
//3
|
||||
list("key"=/obj/item/stack/material/plasteel,
|
||||
"backkey"=/obj/item/weapon/weldingtool,
|
||||
"desc"="Internal armor is welded."),
|
||||
//4
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="Internal armor is wrenched"),
|
||||
//5
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Internal armor is installed"),
|
||||
//6
|
||||
list("key"=/obj/item/stack/material/steel,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Hand teleporter is secured"),
|
||||
//7
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Hand teleporter is installed"),
|
||||
//8
|
||||
list("key"=/obj/item/weapon/hand_tele,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="SMES coil is secured"),
|
||||
//9
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="SMES coil is installed"),
|
||||
//10
|
||||
list("key"=/obj/item/weapon/smes_coil/super_capacity,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Targeting module is secured"),
|
||||
//11
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Targeting module is installed"),
|
||||
//12
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/phazon/targeting,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Peripherals control module is secured"),
|
||||
//13
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Peripherals control module is installed"),
|
||||
//14
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/phazon/peripherals,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Central control module is secured"),
|
||||
//15
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Central control module is installed"),
|
||||
//16
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/phazon/main,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The wiring is adjusted"),
|
||||
//17
|
||||
list("key"=/obj/item/weapon/tool/wirecutters,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The wiring is added"),
|
||||
//18
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//19
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="The hydraulic systems are connected."),
|
||||
//20
|
||||
list("key"=IS_WRENCH,
|
||||
"desc"="The hydraulic systems are disconnected.")
|
||||
)
|
||||
|
||||
/datum/construction/reversible/mecha/phazon/action(obj/item/I,mob/user as mob)
|
||||
return check_step(I,user)
|
||||
|
||||
/datum/construction/reversible/mecha/phazon/custom_action(index, diff, obj/item/I, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
switch(index)
|
||||
if(20)
|
||||
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
|
||||
holder.icon_state = "phazon1"
|
||||
if(19)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
|
||||
holder.icon_state = "phazon2"
|
||||
else
|
||||
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
|
||||
holder.icon_state = "phazon0"
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
|
||||
holder.icon_state = "phazon3"
|
||||
else
|
||||
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
|
||||
holder.icon_state = "phazon1"
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].")
|
||||
holder.icon_state = "phazon4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "phazon2"
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "phazon5"
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
|
||||
holder.icon_state = "phazon3"
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the mainboard.", "You secure the mainboard.")
|
||||
holder.icon_state = "phazon6"
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/phazon/main(get_turf(holder))
|
||||
holder.icon_state = "phazon4"
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "phazon7"
|
||||
else
|
||||
user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
|
||||
holder.icon_state = "phazon5"
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.")
|
||||
holder.icon_state = "phazon8"
|
||||
else
|
||||
user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/phazon/peripherals(get_turf(holder))
|
||||
holder.icon_state = "phazon6"
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "phazon9"
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
|
||||
holder.icon_state = "phazon7"
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.")
|
||||
holder.icon_state = "phazon10"
|
||||
else
|
||||
user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/phazon/targeting(get_turf(holder))
|
||||
holder.icon_state = "phazon8"
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the SMES coil to [holder].", "You install the SMES coil to [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "phazon11"
|
||||
else
|
||||
user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.")
|
||||
holder.icon_state = "phazon9"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the SMES coil.", "You secure the SMES coil.")
|
||||
holder.icon_state = "phazon12"
|
||||
else
|
||||
user.visible_message("[user] removes the SMES coil from [holder].", "You remove the SMES coil from [holder].")
|
||||
new /obj/item/weapon/smes_coil/super_capacity(get_turf(holder))
|
||||
holder.icon_state = "phazon10"
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the hand teleporter to [holder].", "You install the hand teleporter to [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "phazon13"
|
||||
else
|
||||
user.visible_message("[user] unfastens the SMES coil.", "You unfasten the SMES coil.")
|
||||
holder.icon_state = "phazon11"
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the hand teleporter.", "You secure the hand teleporter.")
|
||||
holder.icon_state = "phazon14"
|
||||
else
|
||||
user.visible_message("[user] removes the hand teleporter from [holder].", "You remove the hand teleporter from [holder].")
|
||||
new /obj/item/weapon/hand_tele(get_turf(holder))
|
||||
holder.icon_state = "phazon12"
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the internal armor layer to [holder].", "You install the internal armor layer to [holder].")
|
||||
holder.icon_state = "phazon19"
|
||||
else
|
||||
user.visible_message("[user] unfastens the hand teleporter.", "You unfasten the hand teleporter.")
|
||||
holder.icon_state = "phazon13"
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.")
|
||||
holder.icon_state = "phazon20"
|
||||
else
|
||||
user.visible_message("[user] pries the internal armor layer from [holder].", "You pry the internal armor layer from [holder].")
|
||||
var/obj/item/stack/material/steel/MS = new /obj/item/stack/material/steel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "phazon14"
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the internal armor layer to [holder].", "You weld the internal armor layer to [holder].")
|
||||
holder.icon_state = "phazon21"
|
||||
else
|
||||
user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.")
|
||||
holder.icon_state = "phazon19"
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the external reinforced armor layer to [holder].", "You install the external reinforced armor layer to [holder].")
|
||||
holder.icon_state = "phazon22"
|
||||
else
|
||||
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
|
||||
holder.icon_state = "phazon20"
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.")
|
||||
holder.icon_state = "phazon23"
|
||||
else
|
||||
user.visible_message("[user] pries the external armor layer from [holder].", "You pry external armor layer from [holder].")
|
||||
var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "phazon21"
|
||||
if(1)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the external armor layer to [holder].", "You weld the external armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.")
|
||||
holder.icon_state = "phazon22"
|
||||
return 1
|
||||
|
||||
/datum/construction/reversible/mecha/phazon/spawn_result()
|
||||
..()
|
||||
feedback_inc("mecha_phazon_created",1)
|
||||
return
|
||||
|
||||
//////////////////////
|
||||
// Janus
|
||||
//////////////////////
|
||||
/datum/construction/mecha/janus_chassis
|
||||
result = "/obj/mecha/combat/phazon/janus"
|
||||
steps = list(list("key"=/obj/item/mecha_parts/part/janus_torso),//1
|
||||
list("key"=/obj/item/mecha_parts/part/janus_left_arm),//2
|
||||
list("key"=/obj/item/mecha_parts/part/janus_right_arm),//3
|
||||
list("key"=/obj/item/mecha_parts/part/janus_left_leg),//4
|
||||
list("key"=/obj/item/mecha_parts/part/janus_right_leg),//5
|
||||
list("key"=/obj/item/mecha_parts/part/janus_head)
|
||||
)
|
||||
|
||||
/datum/construction/mecha/janus_chassis/custom_action(step, obj/item/I, mob/user)
|
||||
user.visible_message("[user] has connected [I] to [holder].", "You connect [I] to [holder]")
|
||||
holder.overlays += I.icon_state+"+o"
|
||||
qdel(I)
|
||||
return 1
|
||||
|
||||
/datum/construction/mecha/janus_chassis/action(obj/item/I,mob/user as mob)
|
||||
return check_all_steps(I,user)
|
||||
|
||||
/datum/construction/mecha/janus_chassis/spawn_result()
|
||||
var/obj/item/mecha_parts/chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/janus(const_holder)
|
||||
const_holder.icon = 'icons/mecha/mech_construction.dmi'
|
||||
const_holder.icon_state = "janus0"
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/datum/construction/reversible/mecha/janus
|
||||
result = "/obj/mecha/combat/phazon/janus"
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="External armor is installed."),
|
||||
//2
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="External armor is attached."),
|
||||
//3
|
||||
list("key"=/obj/item/stack/material/morphium,
|
||||
"backkey"=/obj/item/weapon/weldingtool,
|
||||
"desc"="Internal armor is welded"),
|
||||
//4
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Internal armor is wrenched"),
|
||||
//5
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Internal armor is attached."),
|
||||
//6
|
||||
list("key"=/obj/item/stack/material/durasteel,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Durand auxiliary board is secured."),
|
||||
//7
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Durand auxiliary board is installed"),
|
||||
//8
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/durand/peripherals,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Phase coil is secured"),
|
||||
//9
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Phase coil is installed"),
|
||||
//10
|
||||
list("key"=/obj/item/prop/alien/phasecoil,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Gygax balance system secured"),
|
||||
//11
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Gygax balance system installed"),
|
||||
//12
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/gygax/peripherals,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Targeting module is secured"),
|
||||
//13
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Targeting module is installed"),
|
||||
//14
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/imperion/targeting,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Peripherals control module is secured"),
|
||||
//15
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Peripherals control module is installed"),
|
||||
//16
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/imperion/peripherals,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="Central control module is secured"),
|
||||
//17
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="Central control module is installed"),
|
||||
//18
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/imperion/main,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The wiring is adjusted"),
|
||||
//19
|
||||
list("key"=/obj/item/weapon/tool/wirecutters,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The wiring is added"),
|
||||
//20
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//21
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="The hydraulic systems are connected."),
|
||||
//22
|
||||
list("key"=IS_WRENCH,
|
||||
"desc"="The hydraulic systems are disconnected.")
|
||||
)
|
||||
|
||||
/datum/construction/reversible/mecha/janus/action(obj/item/I,mob/user as mob)
|
||||
return check_step(I,user)
|
||||
|
||||
/datum/construction/reversible/mecha/janus/custom_action(index, diff, obj/item/I, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
switch(index)
|
||||
if(22)
|
||||
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
|
||||
holder.icon_state = "janus1"
|
||||
if(21)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
|
||||
holder.icon_state = "janus2"
|
||||
else
|
||||
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
|
||||
holder.icon_state = "janus0"
|
||||
if(20)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
|
||||
holder.icon_state = "janus3"
|
||||
else
|
||||
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
|
||||
holder.icon_state = "janus1"
|
||||
if(19)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].")
|
||||
holder.icon_state = "janus4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "janus2"
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "janus5"
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
|
||||
holder.icon_state = "janus3"
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the mainboard.", "You secure the mainboard.")
|
||||
holder.icon_state = "janus6"
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/imperion/main(get_turf(holder))
|
||||
holder.icon_state = "janus4"
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "janus7"
|
||||
else
|
||||
user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
|
||||
holder.icon_state = "janus5"
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.")
|
||||
holder.icon_state = "janus8"
|
||||
else
|
||||
user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/imperion/peripherals(get_turf(holder))
|
||||
holder.icon_state = "janus6"
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "janus9"
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
|
||||
holder.icon_state = "janus7"
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.")
|
||||
holder.icon_state = "janus10"
|
||||
else
|
||||
user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/imperion/targeting(get_turf(holder))
|
||||
holder.icon_state = "janus8"
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the Gygax control module into [holder].", "You install the Gygax control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "janus11"
|
||||
else
|
||||
user.visible_message("[user] unfastens the Gygax control module.", "You unfasten the Gygax control module.")
|
||||
holder.icon_state = "janus9"
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the Gygax control module.", "You secure the Gygax control module.")
|
||||
holder.icon_state = "janus12"
|
||||
else
|
||||
user.visible_message("[user] removes the Gygax control module from [holder].", "You remove the Gygax control module from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/gygax/peripherals(get_turf(holder))
|
||||
holder.icon_state = "janus10"
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the phase coil into [holder].", "You install the phase coil into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "janus13"
|
||||
else
|
||||
user.visible_message("[user] unfastens the Gygax control module.", "You unfasten the Gygax control module.")
|
||||
holder.icon_state = "janus11"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the phase coil.", "You secure the phase coil.")
|
||||
holder.icon_state = "janus14"
|
||||
else
|
||||
user.visible_message("[user] removes the phase coil from [holder].", "You remove the phase coil from [holder].")
|
||||
new /obj/item/prop/alien/phasecoil(get_turf(holder))
|
||||
holder.icon_state = "janus12"
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the Durand control module into [holder].", "You install the Durand control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "janus15"
|
||||
else
|
||||
user.visible_message("[user] unfastens the phase coil.", "You unfasten the phase coil.")
|
||||
holder.icon_state = "janus13"
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the Durand control module.", "You secure the Durand control module.")
|
||||
holder.icon_state = "janus16"
|
||||
else
|
||||
user.visible_message("[user] removes the Durand control module from [holder].", "You remove the Durand control module from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/durand/peripherals(get_turf(holder))
|
||||
holder.icon_state = "janus14"
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the internal armor layer to [holder].", "You install the internal armor layer to [holder].")
|
||||
holder.icon_state = "janus17"
|
||||
else
|
||||
user.visible_message("[user] unfastens the Durand control module.", "You unfasten the Durand control module.")
|
||||
holder.icon_state = "janus15"
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.")
|
||||
holder.icon_state = "janus18"
|
||||
else
|
||||
user.visible_message("[user] pries the internal armor layer from [holder].", "You pry the internal armor layer from [holder].")
|
||||
var/obj/item/stack/material/durasteel/MS = new /obj/item/stack/material/durasteel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "janus16"
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the internal armor layer to [holder].", "You weld the internal armor layer to [holder].")
|
||||
holder.icon_state = "janus19"
|
||||
else
|
||||
user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.")
|
||||
holder.icon_state = "janus17"
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the external reinforced armor layer to [holder].", "You install the external reinforced armor layer to [holder].")
|
||||
holder.icon_state = "janus20"
|
||||
else
|
||||
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
|
||||
holder.icon_state = "janus18"
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.")
|
||||
holder.icon_state = "janus21"
|
||||
else
|
||||
user.visible_message("[user] pries the external armor layer from [holder].", "You pry external armor layer from [holder].")
|
||||
var/obj/item/stack/material/morphium/MS = new /obj/item/stack/material/morphium(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "janus19"
|
||||
if(1)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the external armor layer to [holder].", "You weld the external armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.")
|
||||
holder.icon_state = "janus20"
|
||||
return 1
|
||||
|
||||
/datum/construction/reversible/mecha/janus/spawn_result()
|
||||
..()
|
||||
feedback_inc("mecha_janus_created",1)
|
||||
return
|
||||
|
||||
@@ -292,3 +292,43 @@
|
||||
origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3)
|
||||
construction_time = 200
|
||||
construction_cost = list(DEFAULT_WALL_MATERIAL=15000)*/
|
||||
|
||||
////////// Janus
|
||||
|
||||
/obj/item/mecha_parts/chassis/janus
|
||||
name = "Janus Chassis"
|
||||
origin_tech = list(TECH_MATERIAL = 7)
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/janus_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/janus_torso
|
||||
name="Imperion Torso"
|
||||
icon_state = "janus_harness"
|
||||
origin_tech = list(TECH_DATA = 5, TECH_MATERIAL = 7, TECH_BLUESPACE = 2, TECH_POWER = 6, TECH_PRECURSOR = 2)
|
||||
|
||||
/obj/item/mecha_parts/part/janus_head
|
||||
name="Imperion Head"
|
||||
icon_state = "janus_head"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 5, TECH_MAGNET = 6, TECH_PRECURSOR = 1)
|
||||
|
||||
/obj/item/mecha_parts/part/janus_left_arm
|
||||
name="Prototype Gygax Left Arm"
|
||||
icon_state = "janus_l_arm"
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 2)
|
||||
|
||||
/obj/item/mecha_parts/part/janus_right_arm
|
||||
name="Prototype Gygax Right Arm"
|
||||
icon_state = "janus_r_arm"
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 2)
|
||||
|
||||
/obj/item/mecha_parts/part/janus_left_leg
|
||||
name="Prototype Durand Left Leg"
|
||||
icon_state = "janus_l_leg"
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3, TECH_ARCANE = 1)
|
||||
|
||||
/obj/item/mecha_parts/part/janus_right_leg
|
||||
name="Prototype Durand Right Leg"
|
||||
icon_state = "janus_r_leg"
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3, TECH_ARCANE = 1)
|
||||
|
||||
@@ -212,3 +212,8 @@
|
||||
/obj/effect/decal/mecha_wreckage/hoverpod
|
||||
name = "Hover pod wreckage"
|
||||
icon_state = "engineering_pod-broken"
|
||||
|
||||
/obj/effect/decal/mecha_wreckage/janus
|
||||
name = "Janus wreckage"
|
||||
icon_state = "janus-broken"
|
||||
description_info = "Due to the incredibly intricate design of this exosuit, it is impossible to salvage components from it."
|
||||
|
||||
@@ -52,6 +52,23 @@
|
||||
name = T_BOARD_MECHA("Durand central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon/peripherals
|
||||
name = T_BOARD_MECHA("Phazon peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 6, TECH_ILLEGAL = 6)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon/targeting
|
||||
name = T_BOARD_MECHA("Phazon weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 6, TECH_COMBAT = 7)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon/main
|
||||
name = T_BOARD_MECHA("Phazon central control")
|
||||
origin_tech = list(TECH_DATA = 6, TECH_BLUESPACE = 5)
|
||||
icon_state = "mainboard"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/honker
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
|
||||
@@ -223,6 +223,67 @@
|
||||
time = 60
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 37500, "uranium" = 7500)
|
||||
|
||||
/datum/design/item/mechfab/janus
|
||||
category = "Janus"
|
||||
req_tech = list(TECH_MATERIAL = 7, TECH_BLUESPACE = 5, TECH_MAGNET = 6, TECH_PHORON = 3, TECH_ARCANE = 1, TECH_PRECURSOR = 2)
|
||||
|
||||
/datum/design/item/mechfab/janus/chassis
|
||||
name = "Janus Chassis"
|
||||
id = "janus_chassis"
|
||||
build_path = /obj/item/mecha_parts/chassis/janus
|
||||
time = 100
|
||||
materials = list(MAT_DURASTEEL = 19000, MAT_MORPHIUM = 10500, MAT_PLASTEEL = 5500, MAT_LEAD = 2500)
|
||||
req_tech = list(TECH_MATERIAL = 7, TECH_BLUESPACE = 5, TECH_MAGNET = 6, TECH_PHORON = 3, TECH_ARCANE = 1, TECH_PRECURSOR = 3)
|
||||
|
||||
/datum/design/item/mechfab/janus/torso
|
||||
name = "Imperion Torso"
|
||||
id = "janus_torso"
|
||||
build_path = /obj/item/mecha_parts/part/janus_torso
|
||||
time = 300
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_DURASTEEL = 8000, MAT_MORPHIUM = 10000, MAT_GOLD = 5000, MAT_VERDANTIUM = 5000)
|
||||
|
||||
/datum/design/item/mechfab/janus/head
|
||||
name = "Imperion Head"
|
||||
id = "janus_head"
|
||||
build_path = /obj/item/mecha_parts/part/janus_head
|
||||
time = 200
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 6000, MAT_GOLD = 5000)
|
||||
|
||||
/datum/design/item/mechfab/janus/left_arm
|
||||
name = "Prototype Gygax Left Arm"
|
||||
id = "janus_left_arm"
|
||||
build_path = /obj/item/mecha_parts/part/janus_left_arm
|
||||
time = 200
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_DIAMOND = 7000)
|
||||
|
||||
/datum/design/item/mechfab/janus/right_arm
|
||||
name = "Prototype Gygax Right Arm"
|
||||
id = "janus_right_arm"
|
||||
build_path = /obj/item/mecha_parts/part/janus_right_arm
|
||||
time = 200
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_DIAMOND = 7000)
|
||||
|
||||
/datum/design/item/mechfab/janus/left_leg
|
||||
name = "Prototype Durand Left Leg"
|
||||
id = "janus_left_leg"
|
||||
build_path = /obj/item/mecha_parts/part/janus_left_leg
|
||||
time = 200
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_URANIUM = 7000)
|
||||
|
||||
/datum/design/item/mechfab/janus/right_leg
|
||||
name = "Prototype Durand Right Leg"
|
||||
id = "janus_right_leg"
|
||||
build_path = /obj/item/mecha_parts/part/janus_right_leg
|
||||
time = 200
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 30000, MAT_METALHYDROGEN = 3000, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_URANIUM = 7000)
|
||||
|
||||
/datum/design/item/mechfab/janus/phase_coil
|
||||
name = "Janus Phase Coil"
|
||||
id = "janus_coil"
|
||||
build_path = /obj/item/prop/alien/phasecoil
|
||||
time = 600
|
||||
materials = list(MAT_SUPERMATTER = 2000, MAT_PLASTEEL = 60000, MAT_URANIUM = 3250, MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_GOLD = 5000, MAT_VERDANTIUM = 5000, MAT_DIAMOND = 10000, MAT_LEAD = 15000)
|
||||
|
||||
/datum/design/item/mecha
|
||||
build_type = MECHFAB
|
||||
category = "Exosuit Equipment"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 30 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 222 KiB |
Reference in New Issue
Block a user