mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Sidewinder Again: Now With Sprites! (#18007)
* AND WE'RE BACK * SO MUCH SIMPLER * better facing * Update mecha.dm * SPACES? * e * construction time hopefully * haha oops * e * SPRITED * Gets rid of useless thing * Update all_nodes.dm
This commit is contained in:
@@ -414,8 +414,8 @@ def parse_multirow(var_name, var_value, details, multirows_completed):
|
||||
keys.append(var_name)
|
||||
multirows_completed += keys
|
||||
return details
|
||||
elif var_name in ("mecha_durand_created", "mecha_firefighter_created", "mecha_gygax_created", "mecha_honker_created", "mecha_odysseus_created", "mecha_phazon_created", "mecha_ripley_created"):
|
||||
mecha_vars ={"mecha_durand_created":"Durand", "mecha_firefighter_created":"APLU \"Firefighter\"", "mecha_gygax_created":"Gygax", "mecha_honker_created":"H.O.N.K", "mecha_odysseus_created":"Odysseus", "mecha_phazon_created":"Phazon", "mecha_ripley_created":"APLU \"Ripley\""}
|
||||
elif var_name in ("mecha_durand_created", "mecha_firefighter_created", "mecha_gygax_created", "mecha_honker_created", "mecha_odysseus_created", "mecha_phazon_created", "mecha_ripley_created", "mecha_sidewinder_created"):
|
||||
mecha_vars ={"mecha_durand_created":"Durand", "mecha_firefighter_created":"APLU \"Firefighter\"", "mecha_gygax_created":"Gygax", "mecha_honker_created":"H.O.N.K", "mecha_odysseus_created":"Odysseus", "mecha_phazon_created":"Phazon", "mecha_ripley_created":"APLU \"Ripley\"", "mecha_sidewinder_created":"Sidewinder"}
|
||||
details = {mecha_vars[var_name]:var_value}
|
||||
del mecha_vars[var_name]
|
||||
query_where = "round_id = {0} AND (".format(query_row[2])
|
||||
@@ -460,8 +460,8 @@ simple_tallies = ["admin_secrets_fun_used", "admin_verb", "assembly_made", "brot
|
||||
nested_tallies = ["admin_toggle", "cargo_imports", "changeling_objective", "changeling_powers", "cult_objective", "export_sold_cost", "hivelord_core", "item_used_for_combat", "job_preferences", "mining_equipment_bought", "played_url", "preferences_verb", "testmerged_prs", "traitor_objective", "traitor_uplink_items_bought", "vending_machine_usage", "wizard_objective", "wizard_spell_improved"]
|
||||
associatives = ["colonies_dropped", "commendation", "high_research_level"]
|
||||
special_cases = ["immortality_talisman", "newscaster_channels", "radio_usage", "shuttle_gib", "slime_babies_born", "slime_core_harvested"]
|
||||
multirow = ["ahelp_close", "ahelp_icissue", "ahelp_reject", "ahelp_reopen", "ahelp_resolve", "ahelp_unresolved", "alert_comms_blue", "alert_comms_green", "alert_keycard_auth_bsa", "alert_keycard_auth_maint", "arcade_loss_hp_emagged", "arcade_loss_hp_normal", "arcade_loss_mana_emagged", "arcade_loss_mana_normal", "arcade_win_emagged", "arcade_win_normal", "cyborg_engineering", "cyborg_janitor", "cyborg_medical", "cyborg_miner", "cyborg_peacekeeper", "cyborg_security", "cyborg_service", "cyborg_standard", "escaped_human", "escaped_total", "mecha_durand_created", "mecha_firefighter_created", "mecha_gygax_created", "mecha_honker_created", "mecha_odysseus_created", "mecha_phazon_created", "mecha_ripley_created", "round_end_clients", "round_end_ghosts", "survived_human", "survived_total"]
|
||||
renames = {"ahelp_stats":["ahelp_close", "ahelp_icissue", "ahelp_reject", "ahelp_reopen", "ahelp_resolve", "ahelp_unresolved"], "ais_created":["cyborg_ais_created"], "arcade_results":["arcade_loss_hp_emagged", "arcade_loss_hp_normal", "arcade_loss_mana_emagged", "arcade_loss_mana_normal", "arcade_win_emagged", "arcade_win_normal"], "cyborg_modules":["cyborg_engineering", "cyborg_janitor", "cyborg_medical", "cyborg_miner", "cyborg_peacekeeper", "cyborg_security", "cyborg_service", "cyborg_standard"], "immortality_talisman_uses":["immortality_talisman"], "keycard_auths":["alert_keycard_auth_bsa", "alert_keycard_auth_maint"], "mechas_created":["mecha_durand_created", "mecha_firefighter_created", "mecha_gygax_created", "mecha_honker_created", "mecha_odysseus_created", "mecha_phazon_created", "mecha_ripley_created"], "mmis_filled":["cyborg_mmis_filled"], "newspapers_printed":["newscaster_newspapers_printed"], "round_end_stats":["escaped_human", "escaped_total", "round_end_clients", "round_end_ghosts", "survived_human", "survived_total"], "security_level_changes":["alert_comms_blue", "alert_comms_green"]}
|
||||
multirow = ["ahelp_close", "ahelp_icissue", "ahelp_reject", "ahelp_reopen", "ahelp_resolve", "ahelp_unresolved", "alert_comms_blue", "alert_comms_green", "alert_keycard_auth_bsa", "alert_keycard_auth_maint", "arcade_loss_hp_emagged", "arcade_loss_hp_normal", "arcade_loss_mana_emagged", "arcade_loss_mana_normal", "arcade_win_emagged", "arcade_win_normal", "cyborg_engineering", "cyborg_janitor", "cyborg_medical", "cyborg_miner", "cyborg_peacekeeper", "cyborg_security", "cyborg_service", "cyborg_standard", "escaped_human", "escaped_total", "mecha_durand_created", "mecha_firefighter_created", "mecha_gygax_created", "mecha_honker_created", "mecha_odysseus_created", "mecha_phazon_created", "mecha_ripley_created", "mecha_sidewinder_created", "round_end_clients", "round_end_ghosts", "survived_human", "survived_total"]
|
||||
renames = {"ahelp_stats":["ahelp_close", "ahelp_icissue", "ahelp_reject", "ahelp_reopen", "ahelp_resolve", "ahelp_unresolved"], "ais_created":["cyborg_ais_created"], "arcade_results":["arcade_loss_hp_emagged", "arcade_loss_hp_normal", "arcade_loss_mana_emagged", "arcade_loss_mana_normal", "arcade_win_emagged", "arcade_win_normal"], "cyborg_modules":["cyborg_engineering", "cyborg_janitor", "cyborg_medical", "cyborg_miner", "cyborg_peacekeeper", "cyborg_security", "cyborg_service", "cyborg_standard"], "immortality_talisman_uses":["immortality_talisman"], "keycard_auths":["alert_keycard_auth_bsa", "alert_keycard_auth_maint"], "mechas_created":["mecha_durand_created", "mecha_firefighter_created", "mecha_gygax_created", "mecha_honker_created", "mecha_odysseus_created", "mecha_phazon_created", "mecha_ripley_created", "mecha_sidewinder_created"], "mmis_filled":["cyborg_mmis_filled"], "newspapers_printed":["newscaster_newspapers_printed"], "round_end_stats":["escaped_human", "escaped_total", "round_end_clients", "round_end_ghosts", "survived_human", "survived_total"], "security_level_changes":["alert_comms_blue", "alert_comms_green"]}
|
||||
key_types = {"amount":["ais_created", "immortality_talisman_uses", "mmis_filled", "newspapers_printed", "admin_cookies_spawned", "cyborg_frames_built", "newscaster_stories", "nuclear_challenge_mode"],
|
||||
"associative":["colonies_dropped", "commendation", "high_research_level"],
|
||||
"nested tally":["admin_toggle", "arcade_results", "cargo_imports", "changeling_objective", "changeling_powers", "cult_objective", "export_sold_cost", "hivelord_core", "item_used_for_combat", "job_preferences", "keycard_auths", "mining_equipment_bought", "played_url", "preferences_verb", "round_end_stats", "testmerged_prs", "traitor_objective", "traitor_uplink_items_bought", "vending_machine_usage", "wizard_objective", "wizard_spell_improved"],
|
||||
|
||||
@@ -23,10 +23,12 @@
|
||||
#define EXOSUIT_MODULE_HONK (1<<5)
|
||||
/// Module is compatible with Phazon Exosuit models
|
||||
#define EXOSUIT_MODULE_PHAZON (1<<6)
|
||||
/// Module is compatible with Sidewinder Exosuit models
|
||||
#define EXOSUIT_MODULE_SIDEWINDER (1<<7)
|
||||
|
||||
/// Module is compatible with "Working" Exosuit models - Ripley and Firefighter
|
||||
#define EXOSUIT_MODULE_WORKING EXOSUIT_MODULE_RIPLEY | EXOSUIT_MODULE_FIREFIGHTER
|
||||
/// Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon
|
||||
#define EXOSUIT_MODULE_COMBAT EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON
|
||||
/// Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand, Phazon, and Sidewinder
|
||||
#define EXOSUIT_MODULE_COMBAT EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON | EXOSUIT_MODULE_SIDEWINDER
|
||||
/// Module is compatible with "Medical" Exosuit modelsm - Odysseus
|
||||
#define EXOSUIT_MODULE_MEDICAL EXOSUIT_MODULE_ODYSSEUS
|
||||
|
||||
45
code/game/mecha/combat/sidewinder.dm
Normal file
45
code/game/mecha/combat/sidewinder.dm
Normal file
@@ -0,0 +1,45 @@
|
||||
/obj/mecha/combat/sidewinder
|
||||
desc = "A squat, nimble, and rather confining exosuit taking advantage of advanced synthetic muscles to move around. Originally used for entertainment in mech \"sports\", many have found it to be well-suited for more practical applications."
|
||||
name = "\improper Sidewinder"
|
||||
icon_state = "sidewinder"
|
||||
step_in = 2.5 //Faster than a gygax
|
||||
dir_in = 1 //Facing North.
|
||||
force = 15
|
||||
max_integrity = 200
|
||||
deflect_chance = 10
|
||||
armor = list(MELEE = 40, BULLET = 20, LASER = 20, ENERGY = 15, BOMB = 40, BIO = 100, RAD = 75, FIRE = 100, ACID = 100) //Good for harsh environments, less good vs gun
|
||||
max_temperature = 25000
|
||||
infra_luminosity = 6
|
||||
wreckage = /obj/structure/mecha_wreckage/sidewinder
|
||||
internal_damage_threshold = 25 //Reinforced internal components
|
||||
max_equip = 3
|
||||
step_energy_drain = 3
|
||||
guns_allowed = FALSE //Melee only
|
||||
omnidirectional_attacks = TRUE //Thus the name
|
||||
melee_cooldown = 7
|
||||
turnsound = 'sound/mecha/mechmove01.ogg'
|
||||
|
||||
/obj/mecha/combat/sidewinder/click_action(atom/target,mob/user,params)
|
||||
//Check all this stuff because this has to happen BEFORE we call the parent so that we can sword in the right direction
|
||||
if(!occupant || occupant != user ) //No pilot
|
||||
return
|
||||
if(!locate(/turf) in list(target,target.loc)) //Prevents inventory from being drilled
|
||||
return
|
||||
if(user.incapacitated()) //Pilot can't move
|
||||
return
|
||||
if(completely_disabled || is_currently_ejecting) //mech can't move
|
||||
return
|
||||
if(state) //Maintenance mode, can't move
|
||||
occupant_message(span_warning("Maintenance protocols in effect."))
|
||||
return
|
||||
if(!get_charge()) //No power, can't move
|
||||
return
|
||||
if(src == target) //We can't face ourselves
|
||||
return
|
||||
if(!equipment_disabled) //EMP will disable the turning temporarily
|
||||
var/initial_direction = dir
|
||||
face_atom(target)
|
||||
var/new_direction = dir
|
||||
if(initial_direction != new_direction) //Make sure we actually turned
|
||||
playsound(src,'sound/mecha/mechmove01.ogg',40,1)
|
||||
return ..()
|
||||
@@ -62,6 +62,7 @@
|
||||
"Durand",
|
||||
"H.O.N.K",
|
||||
"Phazon",
|
||||
"Sidewinder",
|
||||
"Exosuit Equipment",
|
||||
"Exosuit Ammunition",
|
||||
"Cyborg Upgrade Modules",
|
||||
@@ -252,6 +253,8 @@
|
||||
category_override += "H.O.N.K"
|
||||
if(mech_types & EXOSUIT_MODULE_PHAZON)
|
||||
category_override += "Phazon"
|
||||
if(mech_types & EXOSUIT_MODULE_SIDEWINDER)
|
||||
category_override += "Sidewinder"
|
||||
|
||||
|
||||
var/list/part = list(
|
||||
|
||||
@@ -526,14 +526,14 @@
|
||||
user.visible_message("[user] cuts the internal armor layer from [parent].", span_notice("You cut the internal armor layer from [parent]."))
|
||||
if(21)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures Gygax Armor Plates.", span_notice("You secure Gygax Armor Plates."))
|
||||
user.visible_message("[user] secures the Gygax Armor Plates.", span_notice("You secure the Gygax Armor Plates."))
|
||||
else
|
||||
user.visible_message("[user] pries Gygax Armor Plates from [parent].", span_notice("You pry Gygax Armor Plates from [parent]."))
|
||||
user.visible_message("[user] pries the Gygax Armor Plates from [parent].", span_notice("You pry the Gygax Armor Plates from [parent]."))
|
||||
if(22)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds Gygax Armor Plates to [parent].", span_notice("You weld Gygax Armor Plates to [parent]."))
|
||||
user.visible_message("[user] welds the Gygax Armor Plates to [parent].", span_notice("You weld the Gygax Armor Plates to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens Gygax Armor Plates.", span_notice("You unfasten Gygax Armor Plates."))
|
||||
user.visible_message("[user] unfastens the Gygax Armor Plates.", span_notice("You unfasten the Gygax Armor Plates."))
|
||||
return TRUE
|
||||
|
||||
/datum/component/construction/unordered/mecha_chassis/firefighter
|
||||
@@ -1105,14 +1105,14 @@
|
||||
user.visible_message("[user] cuts the internal armor layer from [parent].", span_notice("You cut the internal armor layer from [parent]."))
|
||||
if(21)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures Durand Armor Plates.", span_notice("You secure Durand Armor Plates."))
|
||||
user.visible_message("[user] secures the Durand Armor Plates.", span_notice("You secure the Durand Armor Plates."))
|
||||
else
|
||||
user.visible_message("[user] pries Durand Armor Plates from [parent].", span_notice("You pry Durand Armor Plates from [parent]."))
|
||||
user.visible_message("[user] pries the Durand Armor Plates from [parent].", span_notice("You pry the the Durand Armor Plates from [parent]."))
|
||||
if(22)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds Durand Armor Plates to [parent].", span_notice("You weld Durand Armor Plates to [parent]."))
|
||||
user.visible_message("[user] welds the Durand Armor Plates to [parent].", span_notice("You weld the Durand Armor Plates to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens Durand Armor Plates.", span_notice("You unfasten Durand Armor Plates."))
|
||||
user.visible_message("[user] unfastens the Durand Armor Plates.", span_notice("You unfasten the Durand Armor Plates."))
|
||||
return TRUE
|
||||
|
||||
//PHAZON
|
||||
@@ -1347,14 +1347,14 @@
|
||||
user.visible_message("[user] cuts phase armor layer from [parent].", span_notice("You cut the phase armor layer from [parent]."))
|
||||
if(24)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures Phazon Armor Plates.", span_notice("You secure Phazon Armor Plates."))
|
||||
user.visible_message("[user] secures the Phazon Armor Plates.", span_notice("You secure the Phazon Armor Plates."))
|
||||
else
|
||||
user.visible_message("[user] pries Phazon Armor Plates from [parent].", span_notice("You pry Phazon Armor Plates from [parent]."))
|
||||
user.visible_message("[user] pries the Phazon Armor Plates from [parent].", span_notice("You pry the Phazon Armor Plates from [parent]."))
|
||||
if(25)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds Phazon Armor Plates to [parent].", span_notice("You weld Phazon Armor Plates to [parent]."))
|
||||
user.visible_message("[user] welds the Phazon Armor Plates to [parent].", span_notice("You weld the Phazon Armor Plates to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens Phazon Armor Plates.", span_notice("You unfasten Phazon Armor Plates."))
|
||||
user.visible_message("[user] unfastens the Phazon Armor Plates.", span_notice("You unfasten the Phazon Armor Plates."))
|
||||
if(26)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] carefully inserts the anomaly core into [parent] and secures it.",
|
||||
@@ -1491,3 +1491,145 @@
|
||||
else
|
||||
user.visible_message("[user] unfastens the external armor layer.", span_notice("You unfasten the external armor layer."))
|
||||
return TRUE
|
||||
|
||||
/datum/component/construction/unordered/mecha_chassis/sidewinder
|
||||
result = /datum/component/construction/mecha/sidewinder
|
||||
steps = list(
|
||||
/obj/item/mecha_parts/part/sidewinder_torso,
|
||||
/obj/item/mecha_parts/part/sidewinder_left_arm,
|
||||
/obj/item/mecha_parts/part/sidewinder_right_arm,
|
||||
/obj/item/mecha_parts/part/sidewinder_left_leg,
|
||||
/obj/item/mecha_parts/part/sidewinder_right_leg,
|
||||
/obj/item/mecha_parts/part/sidewinder_head
|
||||
)
|
||||
|
||||
/datum/component/construction/mecha/sidewinder
|
||||
result = /obj/mecha/combat/sidewinder
|
||||
base_icon = "sidewinder"
|
||||
|
||||
circuit_control = /obj/item/circuitboard/mecha/sidewinder/main
|
||||
circuit_periph = /obj/item/circuitboard/mecha/sidewinder/peripherals
|
||||
circuit_weapon = /obj/item/circuitboard/mecha/sidewinder/targeting
|
||||
|
||||
inner_plating = /obj/item/stack/sheet/mineral/plastitanium
|
||||
inner_plating_amount = 5
|
||||
|
||||
outer_plating=/obj/item/mecha_parts/part/sidewinder_armor
|
||||
outer_plating_amount=1
|
||||
|
||||
/datum/component/construction/mecha/sidewinder/action(datum/source, atom/used_atom, mob/user)
|
||||
return check_step(used_atom,user)
|
||||
|
||||
/datum/component/construction/mecha/sidewinder/custom_action(obj/item/I, mob/living/user, diff)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
switch(index)
|
||||
if(1)
|
||||
user.visible_message("[user] connects [parent] synthetic muscle systems", span_notice("You connect [parent] synthetic muscle systems."))
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] activates [parent] synthetic muscle systems.", span_notice("You activate [parent] synthetic muscle systems."))
|
||||
else
|
||||
user.visible_message("[user] disconnects [parent] synthetic muscle systems", span_notice("You disconnect [parent] synthetic muscle systems."))
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the wiring to [parent].", span_notice("You add the wiring to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] deactivates [parent] synthetic muscle systems.", span_notice("You deactivate [parent] synthetic muscle systems."))
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the wiring of [parent].", span_notice("You adjust the wiring of [parent]."))
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [parent].", span_notice("You remove the wiring from [parent]."))
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] into [parent].", span_notice("You install [I] into [parent]."))
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [parent].", span_notice("You disconnect the wiring of [parent]."))
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the mainboard.", span_notice("You secure the mainboard."))
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [parent].", span_notice("You remove the central computer mainboard from [parent]."))
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] into [parent].", span_notice("You install [I] into [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the mainboard.", span_notice("You unfasten the mainboard."))
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the peripherals control module.", span_notice("You secure the peripherals control module."))
|
||||
else
|
||||
user.visible_message("[user] removes the peripherals control module from [parent].", span_notice("You remove the peripherals control module from [parent]."))
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] into [parent].", span_notice("You install [I] into [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", span_notice("You unfasten the peripherals control module."))
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the kinetics control module.", span_notice("You secure the kinetics control module."))
|
||||
else
|
||||
user.visible_message("[user] removes the kinetics control module from [parent].", span_notice("You remove the kinetics control module from [parent]."))
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] to [parent].", span_notice("You install [I] to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the kinetics control module.", span_notice("You unfasten the kinetics control module."))
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the scanner module.", span_notice("You secure the scanner module."))
|
||||
else
|
||||
user.visible_message("[user] removes the scanner module from [parent].", span_notice("You remove the scanner module from [parent]."))
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] to [parent].", span_notice("You install [I] to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the scanner module.", span_notice("You unfasten the scanner module."))
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the capacitor.", span_notice("You secure the capacitor."))
|
||||
else
|
||||
user.visible_message("[user] removes the capacitor from [parent].", span_notice("You remove the capacitor from [parent]."))
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] into [parent].", span_notice("You install [I] into [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the capacitor.", span_notice("You unfasten the capacitor."))
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the power cell.", span_notice("You secure the power cell."))
|
||||
else
|
||||
user.visible_message("[user] pries the power cell from [parent].", span_notice("You pry the power cell from [parent]."))
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the internal armor layer to [parent].", span_notice("You install the internal armor layer to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the power cell.", span_notice("You unfasten the power cell."))
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the internal armor layer.", span_notice("You secure the internal armor layer."))
|
||||
else
|
||||
user.visible_message("[user] pries internal armor layer from [parent].", span_notice("You pry internal armor layer from [parent]."))
|
||||
if(19)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the internal armor layer to [parent].", span_notice("You weld the internal armor layer to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the internal armor layer.", span_notice("You unfasten the internal armor layer."))
|
||||
if(20)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs [I] to [parent].", span_notice("You install [I] to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] cuts the internal armor layer from [parent].", span_notice("You cut the internal armor layer from [parent]."))
|
||||
if(21)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the Sidewinder Armor Plates.", span_notice("You secure the Sidewinder Armor Plates."))
|
||||
else
|
||||
user.visible_message("[user] pries the Sidewinder Armor Plates from [parent].", span_notice("You pry the Sidewinder Armor Plates from [parent]."))
|
||||
if(22)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the Sidewinder Armor Plates to [parent].", span_notice("You weld the Sidewinder Armor Plates to [parent]."))
|
||||
else
|
||||
user.visible_message("[user] unfastens the Sidewinder Armor Plates.", span_notice("You unfasten the Sidewinder Armor Plates."))
|
||||
return TRUE
|
||||
|
||||
@@ -299,6 +299,49 @@
|
||||
icon_state = "phazon_armor"
|
||||
|
||||
|
||||
///////// sidewinder
|
||||
|
||||
/obj/item/mecha_parts/chassis/sidewinder
|
||||
name = "\improper Sidewinder chassis"
|
||||
construct_type = /datum/component/construction/unordered/mecha_chassis/sidewinder
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_torso
|
||||
name = "\improper Sidewinder torso"
|
||||
desc = "A Sidewinder torso part. Contains a light power unit, processing units, and life support systems."
|
||||
icon_state = "sidewinder_harness"
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_head
|
||||
name = "\improper Sidewinder head"
|
||||
desc = "A Sidewinder head. A light armor shell houses advanced surveillance and environmental sensors."
|
||||
icon_state = "sidewinder_head"
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_left_arm
|
||||
name = "\improper Sidewinder left arm"
|
||||
desc = "A Sidewinder left arm. Data and power sockets are compatible with most exosuit tools and it has the dexterity to use them effectively."
|
||||
icon_state = "sidewinder_l_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_right_arm
|
||||
name = "\improper Sidewinder right arm"
|
||||
desc = "A Sidewinder right arm. Data and power sockets are compatible with most exosuit tools and it has the dexterity to use them effectively."
|
||||
icon_state = "sidewinder_r_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_left_leg
|
||||
name = "\improper Sidewinder left leg"
|
||||
desc = "A Sidewinder left leg. Wrapped in advanced synthetic muscle fibers, it grants remarkable agility to the exosuit."
|
||||
icon_state = "sidewinder_l_leg"
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_right_leg
|
||||
name = "\improper Sidewinder right leg"
|
||||
desc = "A sidewinder right leg. Wrapped in advanced synthetic muscle fibers, it grants remarkable agility to the exosuit."
|
||||
icon_state = "sidewinder_r_leg"
|
||||
|
||||
/obj/item/mecha_parts/part/sidewinder_armor
|
||||
gender = PLURAL
|
||||
name = "\improper Sidewinder armor plates"
|
||||
desc = "A set of armor plates designed for the Sidewinder. They act as a thin shell to protect the most vulnerable areas without limiting mobility."
|
||||
icon_state = "sidewinder_armor"
|
||||
|
||||
|
||||
///////// Circuitboards
|
||||
|
||||
/obj/item/circuitboard/mecha
|
||||
@@ -386,3 +429,15 @@
|
||||
/obj/item/circuitboard/mecha/clarke/main
|
||||
name = "Clarke Central Control module (Exosuit Board)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
/obj/item/circuitboard/mecha/sidewinder/peripherals
|
||||
name = "Sidewinder Peripherals Control module (Exosuit Board)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/circuitboard/mecha/sidewinder/targeting
|
||||
name = "Sidewinder Kinetics and Mobility Control module (Exosuit Board)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/circuitboard/mecha/sidewinder/main
|
||||
name = "Sidewinder Central Control module (Exosuit Board)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
@@ -227,3 +227,8 @@
|
||||
name = "\improper Odysseus wreckage"
|
||||
icon_state = "odysseus-broken"
|
||||
orig_mecha = /obj/mecha/medical/odysseus
|
||||
|
||||
/obj/structure/mecha_wreckage/sidewinder
|
||||
name = "\improper Sidewinder wreckage"
|
||||
icon_state = "sidewinder-broken"
|
||||
orig_mecha = /obj/mecha/combat/sidewinder
|
||||
|
||||
@@ -149,6 +149,30 @@
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/sidewinder_main
|
||||
name = "\"Sidewinder\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Sidewinder\" Central Control module."
|
||||
id = "sidewinder_main"
|
||||
build_path = /obj/item/circuitboard/mecha/sidewinder/main
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/sidewinder_peri
|
||||
name = "\"Sidewinder\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Sidewinder\" Peripheral Control module."
|
||||
id = "sidewinder_peri"
|
||||
build_path = /obj/item/circuitboard/mecha/sidewinder/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/sidewinder_targ
|
||||
name = "\"Sidewinder\" Kinetics & Mobility Control module"
|
||||
desc = "Allows for the construction of a \"Sidewinder\" Kinetics & Mobility Control module."
|
||||
id = "sidewinder_targ"
|
||||
build_path = /obj/item/circuitboard/mecha/sidewinder/targeting
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
////////////////////////////////////////
|
||||
/////////// Mecha Equpment /////////////
|
||||
////////////////////////////////////////
|
||||
|
||||
@@ -553,6 +553,79 @@
|
||||
construction_time = 150
|
||||
category = list("Clarke")
|
||||
|
||||
//Sidewinder
|
||||
/datum/design/sidewinder_chassis
|
||||
name = "Exosuit Chassis (\"Sidewinder\")"
|
||||
id = "sidewinder_chassis"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/chassis/sidewinder
|
||||
materials = list(/datum/material/iron=15000, /datum/material/titanium=5000)
|
||||
construction_time = 100
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_torso
|
||||
name = "Exosuit Torso (\"Sidewinder\")"
|
||||
id = "sidewinder_torso"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_torso
|
||||
materials = list(/datum/material/iron=15000, /datum/material/glass=10000, /datum/material/titanium=8000, /datum/material/plasma=4000)
|
||||
construction_time = 300
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_head
|
||||
name = "Exosuit Head (\"Sidewinder\")"
|
||||
id = "sidewinder_head"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_head
|
||||
materials = list(/datum/material/iron=10000, /datum/material/glass=5000, /datum/material/titanium=2000, /datum/material/plasma=5000)
|
||||
construction_time = 200
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_left_arm
|
||||
name = "Exosuit Left Arm (\"Sidewinder\")"
|
||||
id = "sidewinder_left_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_left_arm
|
||||
materials = list(/datum/material/iron=15000, /datum/material/titanium=2000, /datum/material/plasma=1500, /datum/material/gold=1000)
|
||||
construction_time = 200
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_right_arm
|
||||
name = "Exosuit Right Arm (\"Sidewinder\")"
|
||||
id = "sidewinder_right_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_right_arm
|
||||
materials = list(/datum/material/iron=15000, /datum/material/titanium=2000, /datum/material/plasma=1500, /datum/material/gold=1000)
|
||||
construction_time = 200
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_left_leg
|
||||
name = "Exosuit Left Leg (\"Sidewinder\")"
|
||||
id = "sidewinder_left_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_left_leg
|
||||
materials = list(/datum/material/iron=15000, /datum/material/titanium=2000, /datum/material/plasma=1000, /datum/material/gold=1000)
|
||||
construction_time = 200
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_right_leg
|
||||
name = "Exosuit Right Leg (\"Sidewinder\")"
|
||||
id = "sidewinder_right_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_right_leg
|
||||
materials = list(/datum/material/iron=15000, /datum/material/titanium=2000, /datum/material/plasma=1000, /datum/material/gold=1000)
|
||||
construction_time = 200
|
||||
category = list("Sidewinder")
|
||||
|
||||
/datum/design/sidewinder_armor
|
||||
name = "Exosuit Armor (\"Sidewinder\")"
|
||||
id = "sidewinder_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/sidewinder_armor
|
||||
materials = list(/datum/material/iron=15000,/datum/material/plasma=10000,/datum/material/titanium=10000)
|
||||
construction_time = 600
|
||||
category = list("Sidewinder")
|
||||
|
||||
//Exosuit Equipment
|
||||
/datum/design/ripleyupgrade
|
||||
name = "Ripley MK-I to MK-II conversion kit"
|
||||
|
||||
@@ -790,6 +790,15 @@
|
||||
"phazon_peri", "phazon_targ", "phazon_armor")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/sidewinder
|
||||
id = "mech_sidewinder"
|
||||
display_name = "EXOSUIT: Sidewinder"
|
||||
description = "Sidewinder exosuit designs"
|
||||
prereq_ids = list("adv_weaponry", "mech_gygax")
|
||||
design_ids = list("sidewinder_chassis", "sidewinder_torso", "sidewinder_head", "sidewinder_left_arm", "sidewinder_right_arm", "sidewinder_left_leg", "sidewinder_right_leg", "sidewinder_main",
|
||||
"sidewinder_peri", "sidewinder_targ", "sidewinder_armor")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/adv_mecha_tools
|
||||
id = "adv_mecha_tools"
|
||||
display_name = "Advanced Exosuit Equipment"
|
||||
|
||||
@@ -423,6 +423,10 @@
|
||||
ui_x = -736
|
||||
ui_y = -128
|
||||
|
||||
/datum/techweb_node/sidewinder
|
||||
ui_x = -736
|
||||
ui_y = -196
|
||||
|
||||
/datum/techweb_node/adv_mecha
|
||||
ui_x = -576
|
||||
ui_y = -96
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 38 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 77 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 151 KiB |
@@ -948,6 +948,7 @@
|
||||
#include "code\game\mecha\combat\marauder.dm"
|
||||
#include "code\game\mecha\combat\phazon.dm"
|
||||
#include "code\game\mecha\combat\reticence.dm"
|
||||
#include "code\game\mecha\combat\sidewinder.dm"
|
||||
#include "code\game\mecha\equipment\mecha_equipment.dm"
|
||||
#include "code\game\mecha\equipment\tools\medical_tools.dm"
|
||||
#include "code\game\mecha\equipment\tools\mining_tools.dm"
|
||||
|
||||
Reference in New Issue
Block a user