mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: CHOMPStation2 <chompsation2@gmail.com> Co-authored-by: Raeschen <rycoop29@gmail.com> Co-authored-by: Changelogs <action@github.com> Co-authored-by: Aroliacue <96730930+Aroliacue@users.noreply.github.com> Co-authored-by: Eli <fracshun@gmail.com> Co-authored-by: tacoguy7765093 <karokaromaro@gmail.com> Co-authored-by: Nadyr <41974248+Darlantanis@users.noreply.github.com> Co-authored-by: TheGreatKitsune <88862343+TheGreatKitsune@users.noreply.github.com> Co-authored-by: Missile597 <150307788+Missile597@users.noreply.github.com>
189 lines
5.7 KiB
Plaintext
189 lines
5.7 KiB
Plaintext
|
|
/obj/mecha/combat/gorilla
|
|
desc = span_red("<b><BLITZKRIEEEEEEEG!</b>")
|
|
name = "Sd.Kfz. 269 Mechakampfwagen Gorilla Ausf. A"
|
|
icon = 'icons/mecha/AxisMech.dmi'
|
|
icon_state = "pzrmech"
|
|
initial_icon = "pzrmech"
|
|
pixel_x = -16
|
|
step_in = 10
|
|
health = 5000
|
|
maxhealth = 5000
|
|
opacity = 0 // Because there's big tall legs to look through. Also it looks fucky if this is set to 1.
|
|
deflect_chance = 50
|
|
max_temperature = 35000 //Just a bit better than the Durand.
|
|
infra_luminosity = 3
|
|
wreckage = /obj/effect/decal/mecha_wreckage/gorilla
|
|
add_req_access = 0
|
|
internal_damage_threshold = 25
|
|
force = 60
|
|
max_equip = 5
|
|
//This will (Should) never be in the hands of players. If it is, the one who inflicted this monster upon the server can edit these vars to not be insane.
|
|
max_hull_equip = 5
|
|
max_weapon_equip = 5
|
|
max_utility_equip = 5
|
|
max_universal_equip = 5
|
|
max_special_equip = 2
|
|
|
|
smoke_possible = 1
|
|
zoom_possible = 1
|
|
thrusters_possible = 1
|
|
|
|
/obj/mecha/combat/gorilla/Initialize()
|
|
. = ..()
|
|
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src) // This thing basically cannot function without an external power supply.
|
|
ME.attach(src)
|
|
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/cannon(src)
|
|
ME.attach(src)
|
|
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive(src)
|
|
ME.attach(src)
|
|
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg(src)
|
|
ME.attach(src)
|
|
return
|
|
|
|
/obj/mecha/combat/gorilla/mechstep(direction)
|
|
var/result = step(src,direction)
|
|
var/stepsound = rand(1,2)
|
|
if(result)
|
|
switch(stepsound)
|
|
if(1)
|
|
playsound(src,'sound/mecha/bigmech_lstep.ogg',40,1)
|
|
if(2)
|
|
playsound(src,'sound/mecha/bigmech_rstep.ogg',40,1)
|
|
return result
|
|
|
|
/obj/mecha/combat/gorilla/mechturn(direction)
|
|
dir = direction
|
|
var/turnsound = rand(1,2)
|
|
switch(turnsound)
|
|
if(1)
|
|
playsound(src,'sound/mecha/bigmech_lturn.ogg',40,1)
|
|
if(2)
|
|
playsound(src,'sound/mecha/bigmech_rturn.ogg',40,1)
|
|
return 1
|
|
|
|
/obj/mecha/combat/gorilla/mechturn(direction)
|
|
dir = direction
|
|
var/turnsound = rand(1,2)
|
|
switch(turnsound)
|
|
if(1)
|
|
playsound(src,'sound/mecha/bigmech_lturn.ogg',40,1)
|
|
if(2)
|
|
playsound(src,'sound/mecha/bigmech_rturn.ogg',40,1)
|
|
return 1
|
|
|
|
/obj/mecha/combat/gorilla/relaymove(mob/user,direction)
|
|
if(user != src.occupant) //While not "realistic", this piece is player friendly.
|
|
user.loc = get_turf(src)
|
|
user << "You climb out from [src]"
|
|
return 0
|
|
if(!can_move)
|
|
return 0
|
|
if(zoom)
|
|
if(world.time - last_message > 20)
|
|
src.occupant_message("Unable to move while in zoom mode.")
|
|
last_message = world.time
|
|
return 0
|
|
if(connected_port)
|
|
if(world.time - last_message > 20)
|
|
src.occupant_message("Unable to move while connected to the air system port")
|
|
last_message = world.time
|
|
return 0
|
|
if(state || !has_charge(step_energy_drain))
|
|
return 0
|
|
var/tmp_step_in = step_in
|
|
var/tmp_step_energy_drain = step_energy_drain
|
|
var/move_result = 0
|
|
if(internal_damage&MECHA_INT_CONTROL_LOST)
|
|
move_result = mechsteprand()
|
|
else if(src.dir!=direction)
|
|
move_result = mechturn(direction)
|
|
else
|
|
move_result = mechstep(direction)
|
|
if(move_result)
|
|
if(istype(src.loc, /turf/space))
|
|
if(!src.check_for_support())
|
|
float_direction = direction
|
|
start_process(MECHA_PROC_MOVEMENT)
|
|
can_move = 0
|
|
spawn(tmp_step_in) can_move = 1
|
|
use_power(tmp_step_energy_drain)
|
|
return 1
|
|
return 0
|
|
|
|
|
|
/obj/mecha/combat/gorilla/get_stats_part()
|
|
var/output = ..()
|
|
output += {"<b>Smoke:</b> [smoke_reserve]"}
|
|
return output
|
|
|
|
|
|
/obj/mecha/combat/gorilla/get_commands()
|
|
var/output = {"<div class='wr'>
|
|
<div class='header'>Special</div>
|
|
<div class='links'>
|
|
<a href='?src=\ref[src];toggle_zoom=1'>Toggle zoom mode</a><br>
|
|
<a href='?src=\ref[src];smoke=1'>Smoke</a>
|
|
</div>
|
|
</div>
|
|
"}
|
|
output += ..()
|
|
return output
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/cannon
|
|
name = "8.8cm KwK 47"
|
|
desc = "<i>Precision German engineering!</i>" // Why would you ever take this off the mech, anyway?
|
|
icon_state = "mecha_uac2"
|
|
equip_cooldown = 60 // 6 seconds
|
|
projectile = /obj/item/projectile/bullet/cannon
|
|
fire_sound = 'sound/weapons/Gunshot_cannon.ogg'
|
|
projectiles = 1
|
|
projectile_energy_cost = 1000
|
|
salvageable = 0 // We don't want players ripping this off a dead mech. Could potentially be a prize for beating it if Devs bless me and someone offers a nerf idea.
|
|
|
|
/obj/item/projectile/bullet/cannon
|
|
name ="armor-piercing shell"
|
|
icon = 'icons/obj/projectiles.dmi'
|
|
icon_state = "shell"
|
|
damage = 1000 // In order to 1-hit any other mech and royally fuck anyone unfortunate enough to get in the way.
|
|
|
|
/obj/item/projectile/bullet/cannon/on_hit(var/atom/target, var/blocked = 0)
|
|
explosion(target, 0, 0, 2, 4)
|
|
return 1
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/cannon/weak
|
|
name = "8.8 cm KwK 36"
|
|
equip_cooldown = 120 // 12 seconds.
|
|
projectile = /obj/item/projectile/bullet/cannon/weak
|
|
projectile_energy_cost = 400
|
|
salvageable = 1
|
|
|
|
/obj/item/projectile/bullet/cannon/weak
|
|
name ="canister shell"
|
|
icon_state = "canister"
|
|
damage = 120 //Do not get fucking shot.
|
|
|
|
/* // GLITCHY UND LAGGY. Will later look into fixing.
|
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/mg42
|
|
name = "Maschinengewehr 60"
|
|
icon_state = "mecha_uac2"
|
|
equip_cooldown = 10
|
|
projectile = /obj/item/projectile/bullet/midbullet2
|
|
fire_sound = 'sound/weapons/mg42.ogg'
|
|
projectiles = 1000
|
|
projectiles_per_shot = 5
|
|
deviation = 0.3
|
|
projectile_energy_cost = 20
|
|
fire_cooldown = 1
|
|
salvageable = 0 // We don't want players ripping this off a dead mech.
|
|
*/
|
|
|
|
/obj/effect/decal/mecha_wreckage/gorilla
|
|
name = "Gorilla wreckage"
|
|
desc = "... Blitzkrieg?"
|
|
icon = 'icons/mecha/mecha64x64.dmi'
|
|
icon_state = "pzrwreck"
|
|
plane = MOB_PLANE
|
|
pixel_x = -16
|
|
anchored = TRUE // It's fucking huge. You aren't moving it.
|