Tyr Mini-Patch (#9824)

This commit is contained in:
FluffMedic
2025-01-08 02:09:44 -05:00
committed by GitHub
parent 4393318848
commit 0834d8040a
9 changed files with 302 additions and 83 deletions

View File

@@ -0,0 +1,173 @@
/obj/item/rig/ch/tyrprecursor
name = "alien hardsuit control module"
desc = "A orange hardsuit gleaming with energy and alien metals."
suit_type = "tyrprecursor hardsuit"
icon = 'modular_chomp/icons/obj/rig_modules_ch.dmi'
icon_state = "tyrprecursor_rig"
armor = list(melee = 20, bullet = 20, laser = 20, energy = 20, bomb = 90, bio = 100, rad = 10)
slowdown = 0
chest_type = /obj/item/clothing/suit/space/rig/ch/tyrprecursor
helm_type = /obj/item/clothing/head/helmet/space/rig/ch/precursor
glove_type = /obj/item/clothing/gloves/gauntlets/rig/ch/precursor
boot_type = /obj/item/clothing/shoes/magboots/rig/ch/precursor
req_access = list()
req_one_access = list()
/obj/item/clothing/suit/space/rig/ch/tyrprecursor
name = "protective vest"
icon = 'icons/obj/clothing/spacesuits_ch.dmi'
desc = "Light weight but oddly protective plating."
var/shieldhealth = 200
var/cooldown = null // world.time of when this was last triggered.
var/cooldown_duration = 2 MINUTES
/obj/item/clothing/suit/space/rig/ch/tyrprecursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(shieldhealth < 0)
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
shieldhealth -= damage
cooldown = world.time + cooldown_duration
return TRUE
return FALSE
/obj/item/clothing/suit/space/rig/ch/tyrprecursor/proc/activate_ability(var/mob/living/wearer)
cooldown = world.time + cooldown_duration
shieldhealth = 200
/obj/item/clothing/suit/space/rig/ch/tyrprecursor/equipped(var/mob/living/carbon/human/H)
..()
if(istype(H) && H.head == src && H.is_sentient())
START_PROCESSING(SSobj, src)
/obj/item/clothing/suit/space/rig/ch/tyrprecursor/dropped(var/mob/living/carbon/human/H)
..()
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/suit/space/rig/ch/tyrprecursor/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/suit/space/rig/ch/tyrprecursor/process()
if(isliving(loc))
var/mob/living/L = loc
if(world.time >= cooldown && L.is_sentient() && shieldhealth < 1)
activate_ability(L)
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor
name = "helmet"
icon = 'icons/obj/clothing/hats_ch.dmi'
desc = "A protective dome for your head."
var/shieldhealth = 200
var/cooldown = null // world.time of when this was last triggered.
var/cooldown_duration = 2 MINUTES
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(shieldhealth < 0)
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
shieldhealth -= damage
cooldown = world.time + cooldown_duration
return TRUE
return FALSE
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor/proc/activate_ability(var/mob/living/wearer)
cooldown = world.time + cooldown_duration
shieldhealth = 200
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor/equipped(var/mob/living/carbon/human/H)
..()
if(istype(H) && H.head == src && H.is_sentient())
START_PROCESSING(SSobj, src)
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor/dropped(var/mob/living/carbon/human/H)
..()
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/head/helmet/space/rig/ch/tyrprecursor/process()
if(isliving(loc))
var/mob/living/L = loc
if(world.time >= cooldown && L.is_sentient() && shieldhealth < 1)
activate_ability(L)
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor
name = "gloves"
icon = 'icons/obj/clothing/gloves_ch.dmi'
desc = "Gloves created with alien tech"
var/shieldhealth = 200
var/cooldown = null // world.time of when this was last triggered.
var/cooldown_duration = 2 MINUTES
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(shieldhealth < 0)
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
shieldhealth -= damage
cooldown = world.time + cooldown_duration
return TRUE
return FALSE
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor/proc/activate_ability(var/mob/living/wearer)
cooldown = world.time + cooldown_duration
shieldhealth = 200
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor/equipped(var/mob/living/carbon/human/H)
..()
if(istype(H) && H.head == src && H.is_sentient())
START_PROCESSING(SSobj, src)
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor/dropped(var/mob/living/carbon/human/H)
..()
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/gloves/gauntlets/rig/ch/tyrprecursor/process()
if(isliving(loc))
var/mob/living/L = loc
if(world.time >= cooldown && L.is_sentient() && shieldhealth < 1)
activate_ability(L)
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor
name = "boots"
icon = 'icons/obj/clothing/shoes_ch.dmi'
desc = "A pair of grabby boots"
var/shieldhealth = 200
var/cooldown = null // world.time of when this was last triggered.
var/cooldown_duration = 2 MINUTES
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(shieldhealth < 0)
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
shieldhealth -= damage
cooldown = world.time + cooldown_duration
return TRUE
return FALSE
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor/proc/activate_ability(var/mob/living/wearer)
cooldown = world.time + cooldown_duration
shieldhealth = 200
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor/equipped(var/mob/living/carbon/human/H)
..()
if(istype(H) && H.head == src && H.is_sentient())
START_PROCESSING(SSobj, src)
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor/dropped(var/mob/living/carbon/human/H)
..()
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/shoes/magboots/rig/ch/tyrprecursor/process()
if(isliving(loc))
var/mob/living/L = loc
if(world.time >= cooldown && L.is_sentient() && shieldhealth < 1)
activate_ability(L)

View File

@@ -839,7 +839,7 @@
name = "Eclipse Expirmental Janus"
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 80, bio = 100, rad = 100)
specialattackprojectile = /obj/item/projectile/energy/darkspike
pilot_type = /mob/living/simple_mob/humanoid/merc/ranged
pilot_type = /mob/living/simple_mob/humanoid/eclipse/head/tyrlead
icon_state = "eclipse_janus"
attackcycle = 1
@@ -946,7 +946,7 @@
//Phase three 2 wierd patterns, and 1 strange attack.
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/proc/phasethree_cycleone(atom/target)
specialattackprojectile = /obj/item/projectile/energy/infernosphere
specialattackprojectile = /obj/item/projectile/bullet/eclipsejanus
addtimer(CALLBACK(src, PROC_REF(spin_to_win), target, 2), 2 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
@@ -956,7 +956,7 @@
attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/proc/phasethree_cyclethree(atom/target) //eight spinning death beams
specialattackprojectile = /obj/item/projectile/energy/darkspike
specialattackprojectile = /obj/item/projectile/bullet/eclipsejanus
addtimer(CALLBACK(src, PROC_REF(random_firing), target, 20, 1, 0.2 SECONDS), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
@@ -1045,4 +1045,48 @@
if(ranged_attack_delay)
ranged_post_animation(A)
return TRUE
return TRUE
//Jank code?
/obj/item/projectile/energy/spintowin
name = "burning plasma"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "plasma"
damage = 50
speed = 15
var/spinvaule = 120
/obj/item/projectile/energy/spintowin/Move()
. = ..()
yo ++
xo ++
/obj/item/gun/energy/curse_tyrshotgun/debuggun
projectile_type = /obj/item/projectile/energy/spintowin
/obj/item/projectile/energy/randospeed
name = "burning plasma"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "plasma"
damage = 50
speed = 15
var/spinvaule = 3
/obj/item/projectile/energy/randospeed/Move()
. = ..()
if(prob(50))
speed += spinvaule
else
speed -= spinvaule
/mob/living/simple_mob/mechanical/mecha/eclipse/eventplaceholder //So I can use the random fire BH for one time event mobs
name = "Expirmental Mecha Unit"
specialattackprojectile = /obj/item/projectile/beam/midlaser
armor = list(melee = 40, bullet = 40, laser = 40, energy = 40, bomb = 40, bio = 100, rad = 100)
icon_state = "orb"
wreckage = /obj/structure/loot_pile/mecha/odd_gygax
special_attack_cooldown = 320
/mob/living/simple_mob/mechanical/mecha/eclipse/do_special_attack(atom/A)
addtimer(CALLBACK(src, PROC_REF(random_firing), A, 12, 3, 0.5 SECONDS), 0.5 SECONDS, TIMER_DELETE_ME)

View File

@@ -29,7 +29,7 @@
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "shotgun_blast"
damage = 50
range = 4
range = 5
check_armour = "laser"
/obj/item/projectile/energy/wp_shotgun/on_hit(var/atom/movable/target, var/blocked = 0)
@@ -44,14 +44,14 @@
name = "laser blast"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "blaster_blast"
damage = 40
damage = 60
range = 5
check_armour = "laser"
/obj/item/projectile/beam/precursor_tyr
name = "laser"
icon_state = "laser"
damage = 30
damage = 50
damage_type = BURN
check_armour = "laser"
range = 5