/obj/vehicle/sealed/mecha/working/ripley desc = "Autonomous Power Loader Unit MK-I. Designed primarily around heavy lifting, the Ripley can be outfitted with utility equipment to fill a number of roles." name = "\improper APLU MK-I \"Ripley\"" icon_state = "ripley" silicon_icon_state = "ripley-empty" movedelay = 1.5 //Move speed, lower is faster. /// How fast the mech is in low pressure var/fast_pressure_step_in = 1.5 /// How fast the mech is in normal pressure var/slow_pressure_step_in = 2 max_temperature = 20000 max_integrity = 200 lights_power = 7 deflect_chance = 15 armor = list(MELEE = 40, BULLET = 20, LASER = 10, ENERGY = 20, BOMB = 40, BIO = 0, RAD = 20, FIRE = 100, ACID = 100) max_equip = 6 wreckage = /obj/structure/mecha_wreckage/ripley internals_req_access = list(ACCESS_ENGINE, ACCESS_ROBOTICS, ACCESS_MINING) enclosed = FALSE //Normal ripley has an open cockpit design enter_delay = 10 //can enter in a quarter of the time of other mechs exit_delay = 10 /// Amount of Goliath hides attached to the mech var/hides = 0 /// List of all things in Ripley's Cargo Compartment var/list/cargo = new /// How much things Ripley can carry in their Cargo Compartment var/cargo_capacity = 15 /obj/vehicle/sealed/mecha/working/ripley/Move() . = ..() update_pressure() /obj/vehicle/sealed/mecha/working/ripley/check_for_internal_damage(list/possible_int_damage, ignore_threshold = FALSE) if (!enclosed) possible_int_damage -= (MECHA_INT_TEMP_CONTROL + MECHA_INT_TANK_BREACH) //if we don't even have an air tank, these two doesn't make a ton of sense. . = ..() /obj/vehicle/sealed/mecha/working/ripley/Initialize(mapload) . = ..() AddComponent(/datum/component/armor_plate,3,/obj/item/stack/sheet/animalhide/goliath_hide,list(MELEE = 10, BULLET = 5, LASER = 5)) /obj/vehicle/sealed/mecha/working/ripley/generate_actions() initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/mech_eject) if(enclosed) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_internals, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_cycle_equip, VEHICLE_CONTROL_EQUIPMENT) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_toggle_lights, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/mech_view_stats, VEHICLE_CONTROL_SETTINGS) initialize_controller_action_type(/datum/action/vehicle/sealed/mecha/strafe, VEHICLE_CONTROL_DRIVE) if(max_occupants > 1) initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/swap_seat) /obj/vehicle/sealed/mecha/working/ripley/Destroy() for(var/atom/movable/A in cargo) A.forceMove(drop_location()) step_rand(A) cargo.Cut() return ..() /obj/vehicle/sealed/mecha/working/ripley/mkii desc = "Autonomous Power Loader Unit MK-II. This prototype Ripley is refitted with a pressurized cabin, trading its prior speed for atmospheric protection and armor." name = "\improper APLU MK-II \"Ripley\"" icon_state = "ripleymkii" fast_pressure_step_in = 2 //step_in while in low pressure conditions slow_pressure_step_in = 4 //step_in while in normal pressure conditions movedelay = 4 max_temperature = 30000 max_integrity = 250 armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 60, BIO = 0, RAD = 70, FIRE = 100, ACID = 100) wreckage = /obj/structure/mecha_wreckage/ripley/mkii enclosed = TRUE enter_delay = 40 silicon_icon_state = null /obj/vehicle/sealed/mecha/working/ripley/firefighter desc = "Autonomous Power Loader Unit MK-II-F. This model is refitted with additional thermal protection." name = "\improper APLU \"Firefighter\"" icon_state = "firefighter" movedelay = 4 fast_pressure_step_in = 2 slow_pressure_step_in = 4 max_temperature = 65000 max_integrity = 250 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 60, BIO = 0, RAD = 70, FIRE = 100, ACID = 100) max_equip = 5 // More armor, less tools enclosed = TRUE enter_delay = 40 /obj/vehicle/sealed/mecha/working/ripley/deathripley desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE" name = "\improper DEATH-RIPLEY" icon_state = "deathripley" fast_pressure_step_in = 2 //step_in while in low pressure conditions slow_pressure_step_in = 3 //step_in while in normal pressure conditions movedelay = 4 lights_power = 7 wreckage = /obj/structure/mecha_wreckage/ripley/deathripley normal_step_energy_drain = 0 enclosed = TRUE enter_delay = 40 silicon_icon_state = null /obj/vehicle/sealed/mecha/working/ripley/deathripley/Initialize(mapload) . = ..() var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill ME.attach(src) /obj/vehicle/sealed/mecha/working/ripley/deathripley/real desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE. FOR REAL" /obj/vehicle/sealed/mecha/working/ripley/deathripley/real/Initialize(mapload) . = ..() for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) E.detach() qdel(E) LAZYCLEARLIST(equipment) var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill/real ME.attach(src) /obj/vehicle/sealed/mecha/working/ripley/mining desc = "An old, dusty mining Ripley." name = "\improper APLU \"Miner\"" obj_integrity = 75 //Low starting health /obj/vehicle/sealed/mecha/working/ripley/mining/Initialize(mapload) . = ..() if(cell) cell.charge = FLOOR(cell.charge * 0.25, 1) //Starts at very low charge if(prob(70)) //Maybe add a drill if(prob(15)) //Possible diamond drill... Feeling lucky? var/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill/D = new D.attach(src) else var/obj/item/mecha_parts/mecha_equipment/drill/D = new D.attach(src) else //Add plasma cutter if no drill var/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/P = new P.attach(src) //Add ore box to cargo cargo.Add(new /obj/structure/ore_box(src)) //Attach hydraulic clamp var/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/HC = new HC.attach(src) for(var/obj/item/mecha_parts/mecha_tracking/B in trackers)//Deletes the beacon so it can't be found easily qdel(B) var/obj/item/mecha_parts/mecha_equipment/mining_scanner/scanner = new scanner.attach(src) /obj/vehicle/sealed/mecha/working/ripley/Exit(atom/movable/O) if(O in cargo) return FALSE return ..() /obj/vehicle/sealed/mecha/working/ripley/Topic(href, href_list) ..() if(href_list["drop_from_cargo"]) var/obj/O = locate(href_list["drop_from_cargo"]) in cargo if(O) to_chat(occupants, "[icon2html(src, occupants)]You unload [O].") O.forceMove(drop_location()) cargo -= O log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]", LOG_MECHA) return /obj/vehicle/sealed/mecha/working/ripley/contents_explosion(severity, target, origin) for(var/X in cargo) var/obj/O = X if(prob(30/severity)) cargo -= O O.forceMove(drop_location()) . = ..() /obj/vehicle/sealed/mecha/working/ripley/get_stats_part() var/output = ..() output += "Cargo Compartment Contents: