mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 02:12:14 +00:00
Merge pull request #9214 from Sishen1542/mechshit
properly ports neovgre from hippie
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
|
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
|
||||||
GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total
|
GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total
|
||||||
GLOBAL_VAR_INIT(clockwork_power, 0) //How many watts of power are globally available to the clockwork cult
|
GLOBAL_VAR_INIT(clockwork_power, 0) //How many watts of power are globally available to the clockwork cult
|
||||||
|
GLOBAL_VAR_INIT(neovgre_exists, 0) //Does neovgre exist?
|
||||||
|
|
||||||
GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence
|
GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence
|
||||||
GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence
|
GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence
|
||||||
|
|||||||
96
code/game/mecha/combat/neovgre.dm
Normal file
96
code/game/mecha/combat/neovgre.dm
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
/obj/mecha/combat/neovgre
|
||||||
|
name = "Neovgre, the Anima Bulwark"
|
||||||
|
desc = "Nezbere's most powerful creation, a mighty war machine of unmatched power said to have ended wars in a single night."
|
||||||
|
icon = 'icons/mecha/neovgre.dmi'
|
||||||
|
icon_state = "neovgre"
|
||||||
|
max_integrity = 500 //This is THE ratvarian superweaon, its deployment is an investment
|
||||||
|
armor = list("melee" = 50, "bullet" = 40, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) //Its similar to the clockwork armour albeit with a few buffs becuase RATVARIAN SUPERWEAPON!!
|
||||||
|
force = 50 //SMASHY SMASHY!!
|
||||||
|
internal_damage_threshold = 0
|
||||||
|
step_in = 3
|
||||||
|
pixel_x = -16
|
||||||
|
layer = ABOVE_MOB_LAYER
|
||||||
|
breach_time = 100 //ten seconds till all goes to shit
|
||||||
|
recharge_rate = 100
|
||||||
|
wreckage = /obj/structure/mecha_wreckage/durand/neovgre
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/GrantActions(mob/living/user, human_occupant = 0) //No Eject action for you sonny jim, your life for Ratvar!
|
||||||
|
internals_action.Grant(user, src)
|
||||||
|
cycle_action.Grant(user, src)
|
||||||
|
lights_action.Grant(user, src)
|
||||||
|
stats_action.Grant(user, src)
|
||||||
|
strafing_action.Grant(user, src)
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/RemoveActions(mob/living/user, human_occupant = 0)
|
||||||
|
internals_action.Remove(user)
|
||||||
|
cycle_action.Remove(user)
|
||||||
|
lights_action.Remove(user)
|
||||||
|
stats_action.Remove(user)
|
||||||
|
strafing_action.Remove(user)
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/MouseDrop_T(mob/M, mob/user)
|
||||||
|
if(!is_servant_of_ratvar(user))
|
||||||
|
to_chat(user, "<span class='brass'>BEGONE HERETIC!</span>")
|
||||||
|
return
|
||||||
|
else
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/moved_inside(mob/living/carbon/human/H)
|
||||||
|
var/list/Itemlist = H.get_contents()
|
||||||
|
for(var/obj/item/clockwork/slab/W in Itemlist)
|
||||||
|
to_chat(H, "<span class='brass'>You safely store [W] inside [src].</span>")
|
||||||
|
qdel(W)
|
||||||
|
. = ..()
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/obj_destruction()
|
||||||
|
for(var/mob/M in src)
|
||||||
|
to_chat(M, "<span class='brass'>You are consumed by the fires raging within Neovgre...</span>")
|
||||||
|
M.dust()
|
||||||
|
playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, 0)
|
||||||
|
src.visible_message("<span class = 'userdanger'>The reactor has gone critical, its going to blow!</span>")
|
||||||
|
addtimer(CALLBACK(src,.proc/go_critical),breach_time)
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/proc/go_critical()
|
||||||
|
explosion(get_turf(loc), 3, 5, 10, 20, 30)
|
||||||
|
Destroy(src)
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/container_resist(mob/living/user)
|
||||||
|
to_chat(user, "<span class='brass'>Neovgre requires a lifetime commitment friend, no backing out now!</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/process()
|
||||||
|
..()
|
||||||
|
if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hople to stop the superweapon
|
||||||
|
cell.charge = INFINITY
|
||||||
|
max_integrity = INFINITY
|
||||||
|
obj_integrity = max_integrity
|
||||||
|
CHECK_TICK //Just to be on the safe side lag wise
|
||||||
|
else if(cell.charge < cell.maxcharge)
|
||||||
|
for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src))
|
||||||
|
var/delta = min(recharge_rate, cell.maxcharge - cell.charge)
|
||||||
|
if (get_clockwork_power() <= delta)
|
||||||
|
cell.charge += delta
|
||||||
|
adjust_clockwork_power(-delta)
|
||||||
|
CHECK_TICK
|
||||||
|
|
||||||
|
/obj/mecha/combat/neovgre/Initialize()
|
||||||
|
.=..()
|
||||||
|
GLOB.neovgre_exists ++
|
||||||
|
var/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/N = new
|
||||||
|
N.attach(src)
|
||||||
|
|
||||||
|
/obj/structure/mecha_wreckage/durand/neovgre
|
||||||
|
name = "\improper Neovgre wreckage?"
|
||||||
|
desc = "On closer inspection this looks like the wreck of a durand with some spraypainted cardboard duct taped to it!"
|
||||||
|
|
||||||
|
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre
|
||||||
|
equip_cooldown = 8 //Rapid fire heavy laser cannon, simple yet elegant
|
||||||
|
energy_drain = 30
|
||||||
|
name = "Aribter Laser Cannon"
|
||||||
|
desc = "Please re-attach this to neovgre and stop asking questions about why it looks like a normal Nanotrasen issue Solaris laser cannon - Nezbere"
|
||||||
|
fire_sound = "sound/weapons/neovgre_laser.ogg"
|
||||||
|
|
||||||
|
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/can_attach(obj/mecha/combat/neovgre/M)
|
||||||
|
if(istype(M))
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
@@ -49,6 +49,8 @@
|
|||||||
var/lights = FALSE
|
var/lights = FALSE
|
||||||
var/lights_power = 6
|
var/lights_power = 6
|
||||||
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
|
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
|
||||||
|
var/breach_time = 0
|
||||||
|
var/recharge_rate = 0
|
||||||
|
|
||||||
var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it.
|
var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it.
|
||||||
//inner atmos
|
//inner atmos
|
||||||
|
|||||||
@@ -119,3 +119,33 @@
|
|||||||
var/datum/clockwork_scripture/create_object/construct/clockwork_marauder/CM = new()
|
var/datum/clockwork_scripture/create_object/construct/clockwork_marauder/CM = new()
|
||||||
CM.recent_marauders--
|
CM.recent_marauders--
|
||||||
qdel(CM)
|
qdel(CM)
|
||||||
|
|
||||||
|
//Summon Neovgre: Summon a very powerful combat mech that explodes when destroyed for massive damage.
|
||||||
|
/datum/clockwork_scripture/create_object/summon_arbiter
|
||||||
|
descname = "Powerful Assault Mech"
|
||||||
|
name = "Summon Neovgre, the Anima Bulwark"
|
||||||
|
desc = "Calls forth the mighty Anima Bulwark, a weapon of unmatched power,\
|
||||||
|
mech with superior defensive and offensive capabilities. It will \
|
||||||
|
steadily regenerate HP and triple its regeneration speed while standing \
|
||||||
|
on a clockwork tile. It will automatically draw power from nearby sigils of \
|
||||||
|
transmission should the need arise. Its Arbiter laser cannon can decimate foes \
|
||||||
|
from a range and is capable of smashing through any barrier presented to it. \
|
||||||
|
Be warned, choosing to pilot Neovgre is a lifetime commitment, once you are \
|
||||||
|
in you cannot leave and when it is destroyed it will explode catastrophically with you inside."
|
||||||
|
invocations = list("By the strength of the alloy...!!", "...call forth the Arbiter!!")
|
||||||
|
channel_time = 200 // This is a strong fucking weapon, 20 seconds channel time is getting off light I tell ya.
|
||||||
|
power_cost = 75000 //75 KW
|
||||||
|
usage_tip = "Neovgre is a powerful mech that will crush your enemies!"
|
||||||
|
invokers_required = 5
|
||||||
|
multiple_invokers_used = TRUE
|
||||||
|
object_path = /obj/mecha/combat/neovgre
|
||||||
|
tier = SCRIPTURE_APPLICATION
|
||||||
|
primary_component = BELLIGERENT_EYE
|
||||||
|
sort_priority = 2
|
||||||
|
creator_message = "<span class='brass'>Neovgre, the Anima Bulwark towers over you... your enemies reckoning has come.</span>"
|
||||||
|
|
||||||
|
/datum/clockwork_scripture/create_object/summon_arbiter/check_special_requirements()
|
||||||
|
if(GLOB.neovgre_exists)
|
||||||
|
to_chat(invoker, "<span class='brass'>\"You've already got one...\"</span>")
|
||||||
|
return FALSE
|
||||||
|
return ..()
|
||||||
|
|||||||
BIN
icons/mecha/neovgre.dmi
Normal file
BIN
icons/mecha/neovgre.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
BIN
sound/weapons/neovgre_laser.ogg
Normal file
BIN
sound/weapons/neovgre_laser.ogg
Normal file
Binary file not shown.
@@ -715,6 +715,7 @@
|
|||||||
#include "code\game\mecha\combat\gygax.dm"
|
#include "code\game\mecha\combat\gygax.dm"
|
||||||
#include "code\game\mecha\combat\honker.dm"
|
#include "code\game\mecha\combat\honker.dm"
|
||||||
#include "code\game\mecha\combat\marauder.dm"
|
#include "code\game\mecha\combat\marauder.dm"
|
||||||
|
#include "code\game\mecha\combat\neovgre.dm"
|
||||||
#include "code\game\mecha\combat\phazon.dm"
|
#include "code\game\mecha\combat\phazon.dm"
|
||||||
#include "code\game\mecha\combat\reticence.dm"
|
#include "code\game\mecha\combat\reticence.dm"
|
||||||
#include "code\game\mecha\equipment\mecha_equipment.dm"
|
#include "code\game\mecha\equipment\mecha_equipment.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user